Skip to content

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ữ.

Sơ đồ khối máy tính

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)

So sánh von Neumann, Harvard và modified Harvard

Ý 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

Các tầng trừu tượng

4. Đo hiệu năng

CPU time = số lệnh × CPI × chu kỳ clock
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.