Mình đang gặp khó khăn khi tìm hiểu về nguyên lý hoạt động của vi xử lý có cấu trúc vonneumann và cấu trúc harvard. Mọi người giải đáp giúp mình.
Đối với cấu trúc Vonneumann: Bộ đếm chương trình (PC) chứa địa chỉ của ô nhớ chứa lệnh (hình vẽ). Qua bộ giải mã địa chỉ sẽ trỏ tới ô lệnh nằm trong bộ nhớ ( bộ nhớ chương trình và bộ nhớ dữ liệu được gộp chung ). Lệnh trong ô nhớ được trỏ sẽ được đưa lên bus dữ liệu để gửi tới thanh ghi lệnh (IR), đồng thời lúc này PC tăng lên 1 để trỏ tới ô nhớ chứa lệnh tiếp theo. Lệnh từ thanh ghi IR sau đó được đưa vào bộ giải mã lệnh. Khối điều khiển CU sẽ thực hiện lệnh bằng cách gửi các tín hiệu điều khiển tới các thanh ghi, khối ALU… để thực hiện lệnh. Như vậy các lệnh được thực hiện tuần tự.
Đối với cấu trúc harvard, do bộ nhớ chương trình và bộ nhớ dữ liệu được tách rời. Vậy nguyên lý (hoặc trình tự) để thực hiện 1 lệnh trong cấu trúc harvard có gì khác so với cấu trúc Vonneumann mình nêu ở trên ?
Ngoài ra trong một số tài liệu có nhắc đến pipeline. Vậy pipeline có thể gọi là một nguyên lý hoạt động khác của CPU hay không?
Về nguyên lý hoạt động của CPU
Trình tự hoạt động của harvard “không khác gì” như bạn nói ở phần von neumann (bao gồm Fetch, Excute). Tuy nhiên do cấu trúc harvard nó tách bộ dữ liệu + bộ nhớ chương trình ra nên lúc Excute lệnh A (thực hiện ở bộ nhớ dữ liệu) ta có thể tận dụng luôn clock đó để Fetch lệnh B (thực hiện ở bộ nhớ chương trình) => 1 clock làm xong 1 lệnh!!. ok thiên hạ gọi là pipeling.
Việc pipeling k thực hiện trên von nuemann đc vì ta chỉ có 1 bộ nhớ tức chỉ có 1 bus.
Mình nghĩ pipeling ko phải là nguyên lý khác của cpu. Pipeling là 1 tiểu xảo. CPU cơ bản vẫn chạy như từ lúc nó đc khai sinh.
Vậy nếu mình hiểu là “CPU có cấu trúc harvard hoạt động theo nguyên lý pipeling và pipeling là một đặc trưng của cấu trúc harvard” như vậy có đúng không?
Có thể hiểu như vậy.
Okay. Cảm ơn bạn nhiều.