TỔNG QUAN TÀI LIỆU HỌC THUẬT: THIẾT KẾ BỘ XỬ LÝ ĐƠN CHU KỲ TRONG KIẾN TRÚC MÁY TÍNH


1. Tổng quan về giáo trình

Tài liệu bài giảng "Chapter 4.1: Thiết kế bộ xử lý đơn chu kỳ (Single Cycle Processor)" thuộc học phần Kiến trúc Máy tính (Computer Architecture), do Bộ môn Kỹ thuật Máy tính, Khoa Khoa học và Kỹ thuật Máy tính – Trường Đại học Bách Khoa, ĐHQG-HCM biên soạn (giảng viên Võ Tấn Phương, học kỳ Fall 2017). Đây là học phần cốt lõi trong khối kiến trúc - phần cứng thuộc chương trình đào tạo kỹ sư và cử nhân các ngành Kỹ thuật Máy tính, Khoa học Máy tính và Công nghệ Thông tin.

+-------------------------------------------------------------------------------+
|                      QUY TRÌNH THIẾT KẾ BỘ XỬ LÝ ĐƠN CHU KỲ                   |
+-------------------------------------------------------------------------------+
|  1. Phân tích ISA MIPS (R-type, I-type, J-type) & Thiết lập mô tả RTL         |
|  2. Lựa chọn các khối Datapath (PC, Register File, ALU, Extender, Memory)     |
|  3. Ghép nối Datapath & Xác định phương pháp cấp xung nhịp (Rising-Edge)      |
|  4. Xác định bảng chân trị cho 10 tín hiệu điều khiển (Main Control)          |
|  5. Thiết kế ALU Control & Tích hợp hoàn chỉnh hệ thống (Datapath + Control)  |
+-------------------------------------------------------------------------------+

Mục tiêu học tập của tài liệu tập trung vào việc trang bị cho người học phương pháp luận thiết kế một bộ xử lý trung tâm (CPU) hoàn chỉnh từ mức vi kiến trúc (microarchitecture). Người học được hướng dẫn phân tích tập lệnh, xây dựng đường dữ liệu (Datapath), thiết kế khối điều khiển (Control Unit), và phân tích các yếu tố định lượng ảnh hưởng đến hiệu suất hệ thống máy tính dựa trên mô hình thực thi một chu kỳ xung nhịp cho mỗi lệnh ($CPI = 1$).

Tài liệu tiếp cận kiến thức theo phương pháp quy nạp từng bước (step-by-step incremental design): bắt đầu từ việc khảo sát yêu cầu phần cứng của từng lệnh đơn lẻ, ghép nối các khối chức năng bằng bộ dồn kênh (Multiplexer), đến việc tổng hợp toàn bộ tín hiệu điều khiển dưới dạng phương trình logic và bảng chân trị. Cấu trúc bài giảng tạo sự liên kết trực tiếp giữa mức độ phần mềm (tập lệnh hợp ngữ MIPS) và mức độ phần cứng (các cổng logic, mạch tổ hợp và phần tử lưu trữ tuần tự).


2. Nội dung kiến thức cốt lõi

2.1. Các chủ đề chính trong bài giảng

Nội dung tài liệu được triển khai qua 6 phần trọng tâm:

  1. Quy trình thiết kế bộ xử lý: Xác lập 5 bước chuẩn tắc:
    • Phân tích tập lệnh để xác định các thành phần của Datapath.
    • Thiết kế, lựa chọn các khối chức năng và phương pháp cấp xung nhịp.
    • Ghép nối các thành phần Datapath đáp ứng yêu cầu của từng lệnh.
    • Xác định các giá trị tín hiệu điều khiển luồng dữ liệu.
    • Thiết kế và tích hợp bộ điều khiển chính (Main Control) và bộ điều khiển ALU (ALU Control).
  2. Khảo sát tập lệnh con MIPS 32-bit: Phân loại 3 định dạng lệnh chính:
    • R-type (Op6, Rs5, Rt5, Rd5, sa5, funct6): Các lệnh số học/logic gồm add, sub, and, or, xor, slt.
    • I-type (Op6, Rs5, Rt5, immediate16): Các lệnh tính toán tức thời (addi, slti, andi, ori, xori), lệnh truy xuất bộ nhớ (lw, sw), và lệnh rẽ nhánh điều kiện (beq, bne).
    • J-type (Op6, immediate26): Lệnh nhảy không điều kiện (j).
  3. Mô tả mức chuyển thanh ghi (RTL - Register Transfer Level): Đặc tả dòng lưu chuyển dữ liệu cho từng nhóm lệnh:
    • Lệnh R-type: $Reg(Rd) \leftarrow Reg(Rs)\ \text{op}\ Reg(Rt);\ PC \leftarrow PC + 4$.
    • Lệnh nạp dữ liệu (LW): $Reg(Rt) \leftarrow MEM[Reg(Rs) + \text{sign_ext}(Im16)];\ PC \leftarrow PC + 4$.
    • Lệnh lưu dữ liệu (SW): $MEM[Reg(Rs) + \text{sign_ext}(Im16)] \leftarrow Reg(Rt);\ PC \leftarrow PC + 4$.
    • Lệnh rẽ nhánh (BEQ): $\text{if } (Reg(Rs) == Reg(Rt))\ PC \leftarrow PC + 4 + 4 \times \text{sign_ext}(Im16)\ \text{else}\ PC \leftarrow PC + 4$.
    • Lệnh nhảy (J): $PC \leftarrow PC[31:28] \mathbin{\Vert} Imm26 \mathbin{\Vert} \text{'00'}$.
  4. Các khối phần cứng trong Datapath:
    • Phần tử tổ hợp: Bộ cộng (Half Adder, Full Adder, Ripple-Carry Adder đa bit), bộ tính toán số học logic (ALU), bộ mở rộng hằng số (Extender hỗ trợ Zero-extension và Sign-extension thông qua cổng AND và bit ExtOp), các bộ dồn kênh (Multiplexers).
    • Phần tử tuần tự: Bộ đếm chương trình (thanh ghi PC), tập thanh ghi đa dụng (Register File 32 thanh ghi 32-bit gồm 2 cổng đọc RA/RB, 1 cổng ghi RW, giải mã địa chỉ và bộ đệm 3 trạng thái Tri-state buffer), bộ nhớ lệnh (Instruction Memory) và bộ nhớ dữ liệu (Data Memory) riêng biệt.
  5. Phương pháp cấp xung nhịp và phân tích định thời: Phân tích cơ chế kích hoạt cạnh lên (rising-edge triggered clocking), yêu cầu về thời gian thiết lập (Setup time - $T_s$), thời gian duy trì (Hold time - $T_h$), độ trễ từ cạnh xung đến đầu ra (Clock-to-Q delay - $T_{\text{clk-q}}$), độ trễ mạch tổ hợp cực đại ($T_{\text{max_comb}}$), và hiện tượng lệch xung nhịp (Clock skew - $T_{\text{skew}}$). Chu kỳ xung nhịp được xác định theo bất đẳng thức: $$T_{\text{cycle}} \ge T_{\text{clk-q}} + T_{\text{max_comb}} + T_s + T_{\text{skew}}$$
  6. Tổng hợp khối điều khiển:
    • Main Control: Nhận 6 bit Opcode ngõ vào, xuất 10 tín hiệu điều khiển gồm RegDst, RegWrite, ExtOp, ALUSrc, MemRead, MemWrite, MemtoReg, Beq, Bne, J.
    • ALU Control: Nhận tín hiệu điều khiển từ Opcode và 6 bit funct để sinh tín hiệu ALUCtrl.
    • Lập bảng chân trị hoàn chỉnh và trích xuất hệ phương trình logic cho các tín hiệu điều khiển.

2.2. Bảng tổng hợp tín hiệu điều khiển của bộ xử lý đơn chu kỳ

Tên lệnh RegDst RegWrite ExtOp ALUSrc MemRead MemWrite MemtoReg Beq Bne J
R-type 1 (Rd) 1 X 0 (BusB) 0 0 0 (ALU) 0 0 0
addi / slti 0 (Rt) 1 1 (Sign) 1 (Imm) 0 0 0 (ALU) 0 0 0
andi / ori / xori 0 (Rt) 1 0 (Zero) 1 (Imm) 0 0 0 (ALU) 0 0 0
lw 0 (Rt) 1 1 (Sign) 1 (Imm) 1 0 1 (Mem) 0 0 0
sw X 0 1 (Sign) 1 (Imm) 0 1 X 0 0 0
beq X 0 X 0 (BusB) 0 0 X 1 0 0
bne X 0 X 0 (BusB) 0 0 X 0 1 0
j X 0 X X 0 0 X 0 0 1

Ghi chú: Giá trị "X" đại diện cho trạng thái tùy định (Don't Care), được tận dụng để tối ưu hóa mạch logic.


2.3. Hệ phương trình logic của khối điều khiển chính

Dựa trên bảng chân trị và bộ giải mã Opcode (Op6), các phương trình hàm logic cho các ngõ ra điều khiển được xác lập như sau:

$$\begin{aligned} \text{RegDst} &= \text{R-type} \ \text{RegWrite} &= \overline{\text{sw} + \text{beq} + \text{bne} + \text{j}} \ \text{ExtOp} &= \overline{\text{andi} + \text{ori} + \text{xori}} \ \text{ALUSrc} &= \overline{\text{R-type} + \text{beq} + \text{bne}} \ \text{MemRead} &= \text{lw} \ \text{MemWrite} &= \text{sw} \ \text{MemtoReg} &= \text{lw} \end{aligned}$$


2.4. Kiến thức nền tảng và kỹ năng phát triển

  • Nền tảng lý thuyết: Kết hợp nguyên lý thiết kế hệ thống số (Digital Logic Design) với lý thuyết tổ chức máy tính. Người học nắm vững kiến trúc máy tính theo mô hình Harvard (phân tách bộ nhớ lệnh và bộ nhớ dữ liệu nhằm đảm bảo việc nạp lệnh và truy xuất dữ liệu diễn ra đồng thời trong một chu kỳ xung nhịp duy nhất).
  • Kỹ năng phân tích: Khả năng phân tích chuỗi thời gian (timing analysis), xác định đường truyền có độ trễ dài nhất (critical path), từ đó tính toán tần số hoạt động giới hạn của vi xử lý.
  • Kỹ năng thiết kế kỹ thuật: Kỹ năng phân tích tập lệnh, thiết lập đường dữ liệu từ các khối cơ sở, lập bảng trạng thái và hiện thực hóa bộ điều khiển bằng logic tổ hợp.

3. Phương pháp giảng dạy và học tập

Tài liệu thể hiện phương pháp sư phạm cấu trúc theo mô hình diễn tiến bậc thang (scaffolding):

+-------------------------------------------------------------------------------+
|                      TIẾN TRÌNH XÂY DỰNG DATAPATH PHẦN CỨNG                   |
+-------------------------------------------------------------------------------+
|  1. Đường nạp lệnh cơ bản (PC -> Instruction Memory -> Bộ cộng PC+4)          |
|  2. Tích hợp nhánh tính toán R-type (Register File -> ALU -> Ghi Rd)          |
|  3. Tích hợp lệnh I-type (Mux chọn toán hạng 2 từ Extender, Mux chọn Rt/Rd)   |
|  4. Tích hợp bộ nhớ Data Memory (Hỗ trợ đường dẫn cho lệnh LW / SW)           |
|  5. Tích hợp mạch tính địa chỉ Next PC cho lệnh rẽ nhánh BEQ/BNE và lệnh J   |
+-------------------------------------------------------------------------------+
  • Quy trình trực quan hóa: Từng thành phần phần cứng được bổ sung theo từng bước. Mỗi bước đều chỉ rõ lý do kỹ thuật (ví dụ: bổ sung bộ dồn kênh Mux tại ngõ vào thanh ghi ghi RW để giải quyết sự xung đột vị trí trường đích giữa Rd trong lệnh R-type và Rt trong lệnh I-type). Các đường tín hiệu tích cực của từng lệnh được mã hóa màu sắc trực quan.
  • Phân tích chi tiết mức cổng logic: Bài giảng không xem các khối chức năng là "hộp đen" mà phân tích sâu cấu trúc bên trong của từng khối: từ mạch Half Adder, Full Adder ghép nối thành bộ cộng $n$-bit, đến cấu trúc giải mã (Decoder) và bộ đệm ba trạng thái (Tri-state buffer) bên trong Register File.
  • Phương pháp đánh giá và tự học:
    • Người học tự kiểm chứng bằng cách lập bảng vết tín hiệu (signal tracing) cho từng chu kỳ lệnh.
    • Thực hiện các bài toán mở rộng: thêm các lệnh mới ngoài tập lệnh mẫu (ví dụ: jal, jr, bgtz, lui) vào Datapath có sẵn, xác định các cổng logic và bộ dồn kênh cần bổ sung, đồng thời cập nhật bảng chân trị của khối điều khiển.

4. Điểm nổi bật và đặc tính kỹ thuật

  • Chuẩn hóa trên kiến trúc MIPS 32-bit: MIPS là kiến trúc vi xử lý RISC kinh điển, có cấu trúc lệnh cố định 32-bit, giúp tinh giản quá trình giải mã phần cứng.
  • Định lượng hiệu năng tường minh: Bài giảng làm rõ mối quan hệ giữa ba yếu tố quyết định hiệu năng máy tính: $$\text{CPU Time} = \text{Instruction Count (I-Count)} \times \text{CPI} \times \text{Clock Cycle Time}$$ Trong thiết kế đơn chu kỳ, chỉ số chu kỳ trung bình trên mỗi lệnh luôn cố định $\text{CPI} = 1$.
  • Chỉ rõ hạn chế cốt lõi của thiết kế đơn chu kỳ:
    • Chu kỳ xung nhịp $T_{\text{cycle}}$ bị chi phối bởi lệnh có thời gian thực thi dài nhất (thường là lệnh nạp dữ liệu lw, do phải trải qua toàn bộ các giai đoạn: Nạp lệnh $\rightarrow$ Đọc thanh ghi $\rightarrow$ Tính toán địa chỉ ALU $\rightarrow$ Đọc bộ nhớ dữ liệu $\rightarrow$ Ghi kết quả vào thanh ghi).
    • Điều này dẫn đến sự lãng phí thời gian đối với các lệnh ngắn hơn (như lệnh nhảy j hoặc lệnh cộng add), tạo tiền đề lý thuyết trực tiếp cho việc phát triển kiến trúc đa chu kỳ (Multi-Cycle Processor) và kiến trúc đường ống (Pipelined Processor).

5. Đối tượng sử dụng tài liệu

Nhóm đối tượng Yêu cầu kiến thức tiên quyết (Prerequisites) Mục đích sử dụng
Sinh viên đại học (Ngành Kỹ thuật Máy tính, Khoa học Máy tính, Điện tử - Viễn thông, Công nghệ Thông tin) - Thiết kế Logic Số / Kỹ thuật Số
- Đại số Boole và mạch tổ hợp/tuần tự
- Lập trình Hợp ngữ (Assembly MIPS) cơ bản
Làm tài liệu học tập chính khóa, ôn tập các bài kiểm tra giữa kỳ, cuối kỳ và làm nền tảng cho đồ án môn học.
Giảng viên & Trợ giảng - Chuyên môn sâu về Kiến trúc Máy tính và Thiết kế Hệ thống Vi xử lý Sử dụng làm khung bài giảng lý thuyết, xây dựng bài tập thiết kế hệ thống số, đề thi và hướng dẫn thực hành mô phỏng.
Kỹ sư phần cứng / Tự học - Kiến thức cơ sở về điện tử số và tổ chức máy tính Ôn tập kiến thức nền tảng về vi kiến trúc CPU phục vụ thiết kế phần cứng (RTL design trên Verilog/VHDL) hoặc lập trình hệ thống cấp thấp.

6. Câu hỏi thường gặp

1. Tài liệu này phù hợp với học phần nào trong chương trình đào tạo?

Tài liệu là bài giảng chính thức của học phần Kiến trúc Máy tính (mã môn học thuộc Khoa KH&KT Máy tính – ĐH Bách Khoa TP.HCM), phù hợp cho sinh viên năm thứ hai hoặc năm thứ ba.

2. Cần chuẩn bị kiến thức nền tảng nào trước khi học nội dung này?

Người học cần nắm vững kiến thức về Thiết kế Luận lý Số (các cổng logic, mạch tổ hợp, Flip-Flop, thanh ghi, bảng chân trị Karnaugh) và cấu trúc tập lệnh hợp ngữ MIPS cơ bản.

3. Điểm khác biệt cơ bản giữa thiết kế bộ xử lý đơn chu kỳ và đa chu kỳ là gì?

Trong thiết kế đơn chu kỳ, mỗi lệnh được thực thi hoàn tất trong đúng 1 chu kỳ xung nhịp ($CPI = 1$), do đó chu kỳ xung nhịp phải kéo dài bằng thời gian thực thi của lệnh chậm nhất (lw). Thiết kế đa chu kỳ chia quá trình thực thi lệnh thành nhiều chu kỳ ngắn hơn, lệnh ngắn tốn ít chu kỳ, lệnh dài tốn nhiều chu kỳ hơn, giúp tối ưu hóa tần số xung nhịp tổng thể.

4. Phương pháp tự học hiệu quả nhất đối với nội dung thiết kế Datapath là gì?

Phương pháp hiệu quả nhất là tự vẽ lại sơ đồ Datapath từ một hệ thống trống theo từng lệnh cụ thể (R-type $\rightarrow$ I-type $\rightarrow$ lw/sw $\rightarrow$ beq/bne $\rightarrow$ j), sau đó tự thiết lập bảng chân trị cho 10 tín hiệu điều khiển của Main Control mà không nhìn tài liệu đối chiếu.

5. Những chủ đề học thuật nối tiếp bài giảng này là gì?

Nội dung kế tiếp sau Chapter 4.1 là Thiết kế bộ xử lý đa chu kỳ (Multi-Cycle Processor), Kỹ thuật xử lý đường ống (Pipelining), Kỹ thuật giải quyết xung đột đường ống (Data/Control Hazards), và Hệ thống phân cấp bộ nhớ (Cache & Virtual Memory).


7. Kết luận

Tài liệu bài giảng "Thiết kế bộ xử lý đơn chu kỳ" của Bộ môn Kỹ thuật Máy tính – Đại học Bách Khoa TP.HCM cung cấp một hệ thống kiến thức toàn diện, logic và chuẩn xác về mặt kỹ thuật vi kiến trúc. Bằng cách phân tích chi tiết từ cấp độ tập lệnh MIPS, đặc tả RTL, cấu trúc mạch tổ hợp/tuần tự cho đến hệ phương trình logic của khối điều khiển, bài giảng thiết lập nền tảng vững chắc để người học tiếp cận các kiến trúc vi xử lý hiện đại và phức tạp hơn trong hệ thống máy tính.