Kiến trúc Harvard

Kiến trúc Harvard

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 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). 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 bìa đụ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 (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).

Trong một máy tính sử dụng kiến trúc von Neumann, 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ớ. 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. Một máy tính kiến trúc Harvard có thể chạy nhanh hơn, bởi vì nó có thể thực hiện ngay lệnh tiếp theo khi vừa kết thúc lệnh trước đó. 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).

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 đư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. Ví dụ như các vi điều khiển 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. 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..

Tham khảo

[sửa | sửa mã nguồn]

Liên kết ngoài

[sửa | sửa mã nguồn]
Chúng tôi bán
Bài viết liên quan
Nhân vật Izana Kurokawa trong Tokyo Revengers
Nhân vật Izana Kurokawa trong Tokyo Revengers
Izana là một người đàn ông mang nửa dòng máu Philippines, nửa Nhật Bản, có chiều cao trung bình với đôi mắt to màu tím, nước da nâu nhạt và mái tóc trắng ngắn thẳng được tạo kiểu rẽ ngôi giữa
Thuật toán A* - Thuật toán tìm đường đi ngắn nhất giữa hai điểm bất kì được Google Maps sử dụng
Thuật toán A* - Thuật toán tìm đường đi ngắn nhất giữa hai điểm bất kì được Google Maps sử dụng
Đây là thuật toán mình được học và tìm hiểu trong môn Nhập môn trí tuệ nhân tạo, mình thấy thuật toán này được áp dụng trong thực tế rất nhiều
Nhân vật Masumi Kamuro - Youkoso Jitsuryoku Shijou Shugi no Kyoushitsu e
Nhân vật Masumi Kamuro - Youkoso Jitsuryoku Shijou Shugi no Kyoushitsu e
Masumi Kamuro (神かむ室ろ 真ま澄すみ, Kamuro Masumi) là một học sinh của Lớp 1-A (Năm Nhất) và là thành viên của câu lạc bộ nghệ thuật. Cô là một người rất thật thà và trung thành, chưa hề làm gì gây tổn hại đến lớp mình.
Nhân vật Delta -  The Eminence In Shadow
Nhân vật Delta - The Eminence In Shadow
Delta (デルタ, Deruta?) (Δέλτα), trước đây gọi là Sarah (サラ, Sara?), là thành viên thứ tư của Shadow Garden