Ủng hộ tôi
Von Neumann là một mô hình máy tính ra đời năm 1945 với mục đích là tạo ra chiếc máy tính có thể được lập trình lại để xử lý những vấn đề mới. Kể từ đó đến nay, rất nhiều loại máy tính hiện đại đã được tạo ra dựa trên kiến trúc này, có thể nói Von Neumann là tổ tiên khởi nguồn cho các máy tính để bàn hay laptop ngày nay. Dựa theo Mô hình Von-neumann, máy tính được chia thành 4 chức năng ứng với 3 thành phần phần cứng:
Điều khiển và xử lý thông tin: Được đảm trách bởi Bộ xử lý, Bộ xử lý chia thành 2 thành phần chi tiết hơn:
Datapath: Thực hiện việc xử lý thông tin và lư trữ tạm thông tin trong quá trình xử lý
Bộ điều khiển (Controller, Control Unit): Thực hiện việc điều khiển datapath và các thành phần khác của máy tính hoạt động.
Lưu trữ thông tin: Được đảm trách bở Bộ nhớ chính (gọi tắt là Bộ nhớ).
Truyền/nhận thông tin: Được đảm trách bởi các thiết bị ngoại vi (gọi tắt là I/O), các thiết bị ngoại vi chia thành 2 thành phần:
Thiết bị nhập (Input): Thực hiện thu nhận thông tin, ví dụ như chuột, bàn phím, mic, …
Thiết bị xuất (Output): Thực hiện truyền thông tin ra môi trường, ví dụ như màn hình, loa, …
Bộ xử lý, Bộ nhớ chính và các thiết bị ngoại vi giao tiếp với nhau thông qua hệ thống Bus (lưu ý, một số tài liệu xem Bus như là 1 thành phần chính của máy tính, tuy nhiên trong học liệu này chúng ta chỉ đề cập đến 3 thành phần chính bao gồm: Bộ xử lý, Bộ nhớ chính và các thiết bị ngoại vi).
Mô hình Von-neumann hoạt dựa theo nguyên lý “chương trình được lưu trữ” (stored program concept), nghĩa là lệnh (dùng để điều khiển máy tính làm việc) và dữ liệu (thông tin) sẽ được lưu trữ trong Bộ nhớ chính dưới dạng các bit, mỗi nội dung trong Bộ nhớ chính đều có địa chỉ để có thể truy xuất độc lập. Để hoạt động, máy tính trải qua các bước sau (ngoại trừ bước đầu và bước 2 phải thực thi đúng thứ tự xuất hiện, các bước còn lại có thể thực hiện không theo thứ tự):
Nạp lệnh (IF, Instruction fetch): Bộ điều khiển nạp lệnh từ Bộ nhớ chính lên Bộ xử lý
Giải mã lệnh (ID, Instruction decode): Bộ điều khiển tiến hành giải mã lệnh và ra các quyết định điều khiển
Thực thi (EX, execution): Datapath thực hiện xử lý
Lưu trữ kết quả (WB – Write Back và DM - Data Memory Access)
Tính toán địa chỉ của lệnh tiếp theo.
Tổng thời gian để thực hiện các bước trên được gọi là chu kỳ thực thi lệnh.
Theo công nghệ chế tạo, Bộ xử lý có thể hoạt động ở tốc độ rất cao, lên tới hàng tỉ thao tác trên 1 giây, tuy nhiên Bộ nhớ chính chỉ có thể đáp ứng được khoảng vài triệu thao tác trên 1 giây, vì thế Bộ nhớ chính không thể liên tục đáp ứng được các yêu cầu từ Bộ xử lý. Vấn đề này được biết đến với thuật ngữ "thắt cổ chai". Để hạn chế nhược điểm này, các máy tính hiện đại ngày nay đều sử dụng kiến trúc tập lệnh nạp/lưu (hay còn gọi là kiến trúc thanh ghi - thanh ghi). Với kiến trúc nạp/lưu, hầu hết các thao tác xử lý đều diễn ra trong Bộ xử lý, Bộ xử lý chỉ truy cập Bộ nhớ khi cần lấy dữ liệu và sẽ lưu lại dữ liệu trên các thanh ghi bên trong Bộ xử lý để sử dụng về sau. Theo đó, quy trình thực thi hoàn chỉnh theo kiến trúc nạp/lưu gồm 3 bước rõ ràng:
Nạp dữ liệu từ Bộ nhớ chính lên Bộ xử lý
Xử lý trong Bộ xử lý
Lưu dữ liệu đã xử lý từ Bộ xử lý về Bộ nhớ chính