Chu trình nạp – giải mã – thực hiện lệnh trong CPU
Một CPU thu nhỏ gồm PC, MAR, MDR, CIR, ACC, ALU và bộ điều khiển, nối với bộ nhớ 16 hoặc 32 ô qua bus địa chỉ, bus dữ liệu và bus điều khiển. Nạp chương trình mẫu viết bằng hợp ngữ đơn giản (LDA, ADD, SUB, STA, BRZ, BRP, BRA, OUT, HLT), đi từng nhịp xung để thấy dữ liệu chạy trên bus qua ba giai đoạn nạp, giải mã, thực hiện; đổi tốc độ xung nhịp và đếm số chu kì.
Bài Bên trong máy tính (Tin học 11, chủ đề Máy tính và xã hội tri thức) giới thiệu bộ xử lí trung tâm và cách nó thực hiện chương trình. Mô phỏng dựng một CPU theo kiểu Little Man Computer: các thanh ghi PC, MAR, MDR, CIR, ACC, bộ số học – lôgic, bộ điều khiển và bộ nhớ chính nối với nhau bằng ba bus. Lệnh và dữ liệu cùng nằm trong bộ nhớ dưới dạng số thập phân (mã lệnh ở hàng trăm, địa chỉ ở hai chữ số cuối), mỗi bước chuyển dữ liệu là một nhịp xung.
Chọn chương trình mẫu: cộng hai số, đếm lùi bằng vòng lặp hoặc tìm số lớn hơn, nhập A, B rồi bấm Bước để đi từng nhịp, Cả lệnh để làm trọn một lệnh, hoặc Chạy. Dải trên cùng cho biết đang ở giai đoạn nạp, giải mã hay thực hiện và phép chuyển thanh ghi (ví dụ MAR ← PC); địa chỉ chạy trên bus xanh dương, dữ liệu trên bus xanh lá, tín hiệu ĐỌC/GHI trên bus cam. Đổi cách hiển thị giữa hợp ngữ và mã máy, bấm một ô nhớ để xem CPU sẽ hiểu con số trong đó là lệnh gì. Kéo tốc độ xung nhịp để so thời gian chạy với một CPU 3 GHz.
Câu hỏi gợi ý:
– Vì sao PC tăng lên ngay trong giai đoạn nạp, trước khi lệnh được thực hiện?
– Lệnh ADD cần bao nhiêu chu kì xung nhịp, còn lệnh BRA cần bao nhiêu? Vì sao khác nhau?
– Với chương trình đếm lùi, tổng số chu kì tăng thế nào khi A tăng thêm 1?
Tham số điều chỉnh được
- Cách hiển thị ô nhớ
- Tốc độ xung nhịp (0,5–20 Hz)
- Giá trị A (0–50)
- Giá trị B (0–50)
- Số ô nhớ
- Chương trình mẫu