Tải bản đầy đủ (.docx) (19 trang)

Tài liệu kiến trúc harvard

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (787.11 KB, 19 trang )

Kiến trúc Harvard

Mục lục
Trang
1. Vị trí của đề tài trong môn Kiến trúc máy tính……………2
2. Kiến trúc Harvard.
2.1 Lịch sử………………………………………………2
2.2 Định nghĩa………………………………………… 5
2.3 Đặc điểm…………………………………………….7
2.4 Ứng dụng……………………………………………12
2.4.1 Vi điều khiển PIC………………………… 13
2.4.2 Vi điều khiển AVR…………………………15
2.4.3 Vi điều khiển 8031…………………………17
3. Tài liệu tham khảo………………………………………….19
1
Kiến trúc Harvard

I. Vị trí của đề tài trong môn Kiến trúc máy tính
Kiến trúc máy tính:
1. Khái niệm chung về Hệ thống máy tính
2. Lịch sử phát triển: 4 thế hệ máy tính
3. Phân loại:
3.1. Phân loại theo kích thước, tốc độ…
3.2. Phân loại theo kiến trúc
• SISD (single instruction - single data)
• SIMD (Single Instruction Multiple Data)
• MIMD (Multiple Instruction Multiple Data)
• Hai kiến trúc phổbiến
 Von neumann
CPU <-> Bộnhớ<-> Ngoại vi


BộnhớCT <-> CPU <-> Bộnhớdữliệu <-> Ngoại vi
II. Kiến trúc Harvard.
1. Lịch sử.
Kiến trúc Harvard bắt đầu với máy tính Harvard Mark I, nó cho phép
các lệnh được đặt trong các tape đục lỗ (với 24 bit) và dữ liệu thì được
chứa trong các thẻ (với 23 ký tự). Những máy tính đầu tiên này rất
giới hạn dung lượng dữ liệu, nó được chứa hoàn toàn trong bộ xử lý
trung tâm (CPU), và không cho phép truy cập vào khu vực chứa lệnh
2
Harvard
Kiến trúc Harvard

(chương trình) như với dữ liệu (làm cho việc tạo, load, sửa chữa, v.v.
toàn bộ chương trình phải được thực hiện offline).
Hình 1: Harvard Mark-I in use, 1944
Vào năm 1939, người ta bắt đầu chế tạo chiếc máy Harvard
Mark I tại phòng thí nghiệm Endicott của IBM. Được biết đến chính
thức với tên gọi Automatic Sequence Controlled Calculator (Máy tính
được điều khiển bằng chuỗi tự động), Mark I là một máy tính cơ-điện
đa năng được chế tạo bằng tiền bạc và sự hỗ trợ nhân lực từ IBM,
dưới sự hướng dẫn của nhà toán học Howard Aiken của trường
Harvard. Bản thiết kế của nó ảnh hưởng từ Máy phân tích của
Babbage, sử dụng số thập phân và bánh xe lưu trữ cùng với công tắc
xoay kèm với rờ-le điện từ. Nó có thể lập trình được nhờ cuộn giấy
đục lỗ, và có thể cùng lúc tính toán vài đơn vị song song. Các phiên
3
Kiến trúc Harvard

bản sau đó có vài bộ đọc cuộn giấy và nó có thể thay đổi giữa các bộ
đọc dựa trên một điều kiện nào đó. Tuy nhiên, chiếc máy không hoàn

toàn là máy Turing đầy đủ. Mark I được chuyển đến Đại học
Harvard và bắt đầu được đưa vào hoạt động vào tháng 5 năm 1944.
Máy nặng 5 tấn, kết hợp 500 dặm của dây kim loại, cao 8 feet
và 51 feet dài, và có một trục 50 ft quay chạy chiều dài của nó, quay
bởi một động cơ điện 5 mã lực, chạy không ngừng trong 15 năm, âm
thanh giống như hàng chục phụ nữ đan. Để đánh giá cao quy mô của
máy này lưu ý bốn máy đánh chữ ở mặt trước của bức ảnh sau.
Hình 2: Harvard Mark I- một máy tính cơ điện
Một vài hình ảnh khác:
4
Kiến trúc Harvard

Hình 3
Hình 4
2. Định nghĩa.
Cụm từ kiến trúc Harvard được dùng để chỉ những kiến trúc
máy tính mà trong đó phân biệt rõ ràng bộ nhớ dữ liệu và bộ nhớ
chương trình, chúng có những đường truyền (bus) riêng để truy cập
5
Kiến trúc Harvard

vào bộ nhớ dữ liệu và bộ nhớ chương trình (ngược lại, kiến trúc von
Neumann có bộ nhớ và bộ nhớ chương trình chung).
Hình 5: Sơ đồ kiến trúc Harvard
Mô hình:
6
Kiến trúc Harvard

Hình 6: Mô phỏng hoạt động bên trong
Tổng quát, để hình dung rõ hơn ta có sơ đồ:

Hình 7: Khái quát sơ đồ
3. Đặc điểm.
Để làm rõ đặc điểm của kiến trúc Harvard, ta so sánh nó với
kiến trúc von Neumann.
7
Kiến trúc Harvard

Ta có sơ đồ sau:
Hình 8: So sánh mô hình kiến trúc Harvard
và kiến trúc von Neumann
Trong kiến trúc von Neumann không phân biệt vùng chứa dữ
liệu và mã chương trình. Cả chương trình và dữ liệu đều được truy
nhập theo cùng một đường. Điều này cho phép đưa dữ liệu vào vùng
mã chương trình ROM, và cũng có thể lưu mã chương trình vào vùng
dữ liệu RAM và thực hiện từ đó. CPU có thể đọc một lệnh, hoặc
đọc/ghi dữ liệu từ bộ nhớ. Tuy vậy, cả hai quá trình tương tác với lệnh
hoặc với dữ liệu, không thể thực hiện cùng lúc, vì nó sử dụng chung
một đường truyền và bộ nhớ.
8
Kiến trúc Harvard

Trong một máy tính kiến trúc Harvard, CPU có thể vừa đọc một
lệnh, vừa truy cập dữ liệu từ bộ nhớ cùng lúc, do Kiến
trúc Havard tách/phân biệt vùng lưu mã chương trình và dữ liệu. Mã
chương trình chỉ có thể được lưu và thực hiện trong vùng chứa ROM
và dữ liệu cũng chỉ có thể lưu và trao đổi trong vùng RAM:
Hình 9: Quá trình đọc lệnh ở kiến trúc Harvard
và kiến trúc von Neumann
Hầu hết các vi xử lý nhúng ngày nay sử dụng kiến trúc bộ nhớ
Havard hoặc kiến trúc Havard mở rộng (tức là bộ nhớ chương trình và

dữ liệu tách biệt nhưng vẫn cho phép khả năng hạn chế để lấy dữ liệu
ra từ vùng mã chương trình). Trong kiến trúc bộ nhớ Havard mở rộng
thường sử dụng một số lượng nhỏ các con trỏ để lấy dữ liệu từ vùng
mã chương trình theo cách nhúng vào trong các lệnh tức thời. Một số
Chip vi điều khiển nhúng tiêu biểu hiện nay sử dụng cấu trúc Havard
là 8031, PIC, Atmel AVR90S. Nếu sử dụng Chip 8031 chúng ta sẽ
nhận thấy điều này thông qua việc truy nhập lấy dữ liệu ra từ vùng dữ
9
Kiến trúc Harvard

liệu RAM hoặc từ vùng mã chương trình. Chúng ta có một vài con trỏ
được sử dụng để lấy dữ liệu ra từ bộ nhớ dữ liệu RAM, nhưng chỉ có
duy nhất một con trỏ DPTR có thể được sử dụng để lấy dữ liệu ra từ
vùng mã chương trình.
Ưu điểm nổi bật của cấu trúc bộ nhớ Harvard so với kiến trúc
von Neumann là có hai kênh tách biệt để truy nhập vào vùng bộ nhớ
mã chương trình và dữ liệu nhờ vậy mà mã chương trình và dữ liệu có
thể được truy nhập đồng thời và làm tăng tốc độ luồng trao đổi với bộ
xử lý, có thể thực hiện ngay lệnh tiếp theo khi vừa kết thúc lệnh trước
đó . Nên một máy tính kiến trúc Harvard có thể chạy nhanh hơn:
Hình 10: Mô hình Bus hệ thống ở Harvard và von Neumann
Tuy nhiên tốc độ được tăng lên nhưng phải trả giá bằng sự thiết
kế phần cứng phức tạp hơn (cụ thể nhất mà chúng ta thấy, đó là việc
phải thiết kế 2 bus khác nhau cho dữ liệu và chương trình):
10
Kiến trúc Harvard

Hình 11: Nhược điểm của Harvard so với von Neumann
4. Ứng dụng:
Thực tế, Những năm gần đây, tốc độ CPU tăng lên rất nhiều lần

so với tốc độ truy cập vào bộ nhớ chính. Người ta cần quan tâm đến
việc giảm số lần truy cập vào bộ nhớ để đảm bảo tốc độ hoạt động của
CPU. Nếu trong cùng một lúc, mỗi lệnh của CPU cần phải truy cập
vào bộ nhớ 1 lần, vậy thì việc tăng tốc độ CPU chẳng còn ý nghĩa gì
nữa, bởi vì nó luôn luôn bị giới hạn bởi việc truy cập vào bộ nhớ.
Bộ nhớ có thể được thiết kế để có tốc độ truy cập cao, nhưng nó
đồng nghĩa với việc giá sản xuất sẽ cao. Giải pháp là cung cấp một
dung lượng nhỏ bộ nhớ đệm, với tốc độ truy cập rất cao, và chúng ta
gọi đó là cache (bộ nhớ đệm). Khi bộ nhớ CPU cần tương tác đang
nằm trong cache, vì việc tương tác vào đó tốn ít thời gian hơn rất
nhiều lần so với khi cache phải thay đổi và lấy dữ liệu từ bộ nhớ chính
11
Kiến trúc Harvard

đưa vào. Việc điều chỉnh cache là một vấn đề quan trọng trong việc
thiết kế máy tính.
Những thiết kế chip CPU tốc độ cao ngày này thường kết hợp
hai kiến trúc Harvard và von Neumann. Bộ nhớ cache trên chip được
phân thành cache chương trình và cache dữ liệu. Kiến trúc Harvard
được dùng khi CPU truy cập vào cache. Tuy nhiên, trong trường hợp
không có cache, dữ liệu được lấy từ bộ nhớ chính, mà bộ nhớ chính
không được chia thành vùng nhớ chương trình và vùng nhớ dữ liệu.
Như vậy, kiến trúc von Neumann được dùng ở tầm vực truy cập bộ
nhớ chính
Kiến trúc Harvard cũng thường được dùng trong một số DSP
chuyên dụng, thường dùng trong các sản phẩm xử lý âm thanh, hình
ảnh. Ví dụ như vi xử lý Blackfin của Analog Devices Inc. dùng kiến
trúc Harvard.
Thêm vào đó, hầu hết các vi điều khiển thông dụng được dùng
trong các ứng dụng điện tử như là PIC được sản xuất bởi Microchip

Technology Inc và AVR của hãng Atmel Corporation, được phát triển
dựa trên kiến trúc Harvard. Những vi xử lý này có đặc tính là có
lượng bộ nhớ dữ liệu và bộ nhớ chương trình nhỏ, rất phù hợp với
kiến trúc Harvard và tập lệnh RISC để đảm bảo hầu hết các lệnh được
thực hiện trong 1 chu kỳ máy. Việc phân chia bộ nhớ ra thành bộ nhớ
chương trình và bộ nhớ dữ liệu có thể làm cho bus dữ liệu và bus
chương trình có kích thước băng truyền khác nhau.
Ta có thể đi tìm hiểu một vài vi điều khiển có sử dụng kiến trúc
Harvard như sau:
4.1 V i điều khiển PIC :
12
Kiến trúc Harvard

PIC có bus dữ liệu 8-bit (phụ thuộc vào dòng PIC), nhưng bus
chương trình có thể là 12-bit, 14-bit hoặc 16-bit word. Điều này cho
phép mỗi một lệnh đơn có đủ chỗ chứa cho một giá trị hằng. PIC được
tổ chức phần cứng theo kiến trúc Harvard, và tập lệnh RISC (reduced
instruction set computer - máy tính với tập lệnh giản lược). Trong kiến
trúc Harvard, bộ nhớ dữ liệu và bộ nhớ chương trình nằm riêng biệt,
do đó CPU có thể làm việc trực tiếp với cả hai bộ nhớ dữ liệu và bộ
nhớ chương trình cùng một lúc, làm cho tốc độ xử lý nhanh hơn.
Hình 12: Mô hình tổng thể Vi điều khiển PIC kiến trúc Harvard
Việc bộ nhớ chương trình và bộ nhớ dữ liệu được tách riêng, do
đó, tập lệnh trong kiến trúc Harvard có thể được tối ưu tùy theo yêu
cầu kiến trúc của vi điều khiển. Bằng chứng, độ dài lệnh của dòng
PIC16 luôn luôn là 14 bit. Trong khi đó, độ dài lệnh của các vi điều
khiển kiến trúc von-Neumann là bội số của 1 byte:
13
Kiến trúc Harvard


Hình 13: Mô hình vi điều khiển kiến trúc von-Neumann
PIC là một Vi điều khiển RISC, tập lệnh của PIC chỉ có 35 lệnh,
phần lớn các lệnh này chỉ thực hiện trong một chu kỳ máy. Chính nhờ
kiến trúc phần cứng tiên tiến, PIC tỏ ra vướt trội so với các loại Vi
điều khiển 8 bít khác về mặt tốc độ và hiệu năng sử dụng.
PIC xử lý song song (Pipeline):
Việc xử lý lệnh trong PIC được thực hiện song song, trong khi
xử lý một lệnh thì đồng thời CPU cũng nạp lệnh mới vào để quá trình
xử lý lệnh là liên tục. Chính phương thức xử lý đó giúp cho tốc độ
hoạt động của PIC nhanh hơn rất nhiều những CPU RISC khác, ví dụ
như ARM, thường cần ít nhất 2 lệnh để load một hằng số đủ kích
thước.
4.2 AVR: có cấu trúc Harvard, trong đó đường truyền cho bộ nhớ dữ
liệu (data memory bus) và đường truyền cho bộ nhớ chương trình
(program memory bus) được tách riêng. Data memory bus chỉ có 8 bit
14
Kiến trúc Harvard

và được kết nối với hầu hết các thiết bị ngoại vi, với register file.
Trong khi đó program memory bus có độ rộng 16 bits và chỉ phục vụ
cho instruction registers. Hình sau mô tả cấu trúc bộ nhớ của AVR.
Hình 14: Cấu trúc bộ nhớ của AVR.
Cấu trong bên trong của 1 AVR:
15
Kiến trúc Harvard

Hình 15. Cấu trúc bên trong AVR.
Bạn thấy rằng 32 thanh ghi trong Register File được kết nối
trực tiếp với Arithmetic Logic Unit -ALU (ALU cũng được xem là
CPU của AVR) bằng 2 line, vì thế ALU có thể truy xuất trực tiếp cùng

lúc 2 thanh ghi RF chỉ trong 1 chu kỳ xung clock (vùng được khoanh
tròn màu đỏ).
Các instruction được chứa trong bộ nhớ chương trình Flash
memory dưới dạng các thanh ghi 16 bit. Bộ nhớ chương trình được
truy cập trong mỗi chu kỳ xung clock và 1 instruction chứa trong
program memory sẽ được load vào trong instruction register,
instruction register tác động và lựa chọn register file cũng như RAM
16
Kiến trúc Harvard

cho ALU thực thi. Trong lúc thực thi chương trình, địa chỉ của dòng
lệnh đang thực thi được quyết định bởi một bộ đếm chương trình – PC
(Program counter). Đó chính là cách thức hoạt động của AVR.
AVR có ưu điểm là hầu hết các instruction đều được thực thi trong
1 chu kỳ xung clock, vì vậy có thể nguồn clock lớn nhất cho AVR có
thể nhỏ hơn 1 số vi điều khiển khác như PIC nhưng thời gian thực thi
vẫn nhanh hơn.
4.3 Bộ vi điều khiển 8031
Chíp 8031 là một thành viên của 8051. Chíp này thường được
coi như là 8051 không có ROM trên chíp vì nó có 0 K byte ROM trên
chíp. Để sử dụng chíp này ta phải bổ xung ROM ngoài cho nó. ROM
ngoài phải chứa chương trình mà 8031 sẽ nạp và thực hiện. So với
8051 mà chương trình được chứa trong ROM trên chíp bị giới hạn
bởi 4K byte, còn ROM ngoài chứa chương trinh được gắn vào 8031
thì có thể lớn đến 64K byte. Khi bổ xung cổng, như vậy chỉ còn lại 2
cổng để thao tác. Để giải quyết vấn đề này ta có thể bổ xung cổng vào
- ra cho 8031. Phối phép 8031 với bộ nhớ và cổng vào - ra chẳng hạn
với chíp 8255. Ngoài ra còn có các phiên bản khác nhau về tốc độ của
8031 từ các hãng sản xuất khác nhau, các bạn có thể tìm hiểu thêm.
Ngoài ra, Kiến trúc Harvard còn được ứng dụng cho thiết kế rất

nhiều thiết bị khác, nhưng nhóm 8 xin phép được trình bày 1 số nội
17
Kiến trúc Harvard

dung trên, mong thầy và các bạn theo dõi và cho ý kiến bổ sung cho
đề tài.
Xin cảm ơn!!!!!!
18
Kiến trúc Harvard

Tài liệu tham khảo
1. www.wattpad.com
2. www.slideshare.net
3. vi.wikipedia.org/wiki/Kiến_trúc_Harvard
4. www.hocavr.com
5. vi.wikipedia.org/wiki/Vi_điều_khiển_PIC
6. www.picvietnam.com
7. voer.edu.vn
8. www.dientuvietnam.net
9. text.123doc.vn
19

×