Computer Architecture¶
Trả lời câu hỏi: CPU/SoC làm gì và được tổ chức ra sao?
Bản ôn tập
Trang này là bản ôn tập ngắn gọn về kiến thức nền, sẽ mở rộng sau.
1. Máy tính gồm những gì¶
Một máy tính gồm ba khối chính nối với nhau qua bus:
- CPU: gồm control unit (giải mã lệnh, điều khiển) và datapath (ALU, thanh ghi) thực hiện tính toán.
- Bộ nhớ: chứa chương trình và dữ liệu.
- I/O: ngoại vi, mạng, lưu trữ.
2. Von Neumann và Harvard¶
Hai cách tổ chức bộ nhớ của máy tính:
| Von Neumann | Harvard | Modified Harvard | |
|---|---|---|---|
| Bộ nhớ lệnh và dữ liệu | Chung một bộ nhớ | Hai bộ nhớ riêng | Tách ở L1 cache, thống nhất ở bộ nhớ chính |
| Đường truy cập | Một bus | Hai bus độc lập | Hai đường ở L1, một đường ở cấp dưới |
| Ưu điểm | Đơn giản, linh hoạt (chương trình cũng là dữ liệu, nạp được như dữ liệu) | Nạp lệnh và truy cập dữ liệu song song | Giữ sự linh hoạt của von Neumann, có băng thông của Harvard |
| Nhược điểm | Von Neumann bottleneck: lệnh và dữ liệu tranh nhau một đường truy cập | Tốn tài nguyên, khó nạp chương trình vào bộ nhớ lệnh | Phức tạp hơn |
| Thường gặp | CPU đơn giản, mô hình học thuật | DSP, MCU nhỏ | Hầu hết CPU hiện nay (x86, Arm, RISC-V) |
Ý nghĩa thực tế: về mặt lập trình, CPU hiện đại vẫn là von Neumann (chương trình và dữ liệu chung một không gian địa chỉ), nhưng bên trong tách I-cache/D-cache để tránh tranh chấp giữa nạp lệnh và truy cập dữ liệu (xem Pipeline và Cache).
3. Ba tầng trừu tượng¶
| Tầng | Là gì | Trang |
|---|---|---|
| ISA | "Hợp đồng" giữa phần cứng và phần mềm: tập lệnh, thanh ghi, ngắt/ngoại lệ | ISA, RISC-V |
| Microarchitecture | Cách một CPU hiện thực ISA: pipeline, cache, bộ nhớ. Cùng ISA có thể có nhiều microarchitecture | Microarchitecture |
| SoC / system | Ghép CPU core với interconnect, bộ nhớ, ngoại vi thành hệ thống hoàn chỉnh | SoC / System |
4. Đo hiệu năng¶
| Thành phần | Chịu ảnh hưởng bởi |
|---|---|
| Số lệnh | ISA, compiler |
| CPI (chu kỳ trên mỗi lệnh) | Microarchitecture: pipeline, cache, branch prediction |
| Chu kỳ clock | Microarchitecture và công nghệ chế tạo |
Công thức này cho thấy các kỹ thuật ở phần sau tác động vào đâu. Pipeline giảm CPI về gần 1, superscalar đưa CPI xuống dưới 1, cache giảm số chu kỳ chờ bộ nhớ. Các yếu tố thường đánh đổi lẫn nhau: pipeline sâu hơn cho clock nhanh hơn nhưng branch penalty lớn hơn.
Định luật Amdahl: tăng tốc một phần của chương trình chỉ cải thiện tổng thể tương ứng với tỷ lệ thời gian phần đó chiếm. Tối ưu cho trường hợp phổ biến (common case) trước.
5. Một lệnh được xử lý như thế nào¶
Mỗi lệnh đi qua các bước: fetch (nạp lệnh) → decode (giải mã, đọc thanh ghi) → execute (tính toán) → memory (truy cập bộ nhớ) → write-back (ghi kết quả). Pipeline chồng lấp các bước này giữa nhiều lệnh, chi tiết ở trang Pipeline.
Phạm vi¶
- ISA: tập lệnh, mô hình lập trình (RISC-V, ARM).
- Microarchitecture: pipeline, cache, memory hierarchy.
- SoC / system spec: yêu cầu ở mức hệ thống (ví dụ RISC-V Server SoC).
Không thuộc phần này¶
Hiện thực bằng RTL/FPGA, timing closure, verification: xem IC Design.