dce 2017 COMPUTER ARCHITECTURE CSE Fall 2017 Faculty of Computer Science and Engineering BK TP.HCM Department of Computer Engineering Vo Tan Phuong http://www.vn/vtphuong dce 2017 Chapter 4.1 Thiết kế bộ xử lý đơn chu kỳ (Single Cycle Processor) Computer Architecture – Chapter 4.1 © Fall 2017, CSE 2 dce 2017 Chúng ta đang ở đâu? Computer Architecture – Chapter 4.1 © Fall 2017, CSE 3 dce 2017 Bên trong bộ xử lý Computer Architecture – Chapter 4.1 © Fall 2017, CSE 4 dce 2017 Nội dung Thiết kết bộ xử lý: Các bước thực hiện Các thành phần của Datapath và cấp xung nhịp Xây dựng Datapath đầy đủ Điều khiển quá trình thực thi của các lệnh Bộ điều khiển chính và bộ điều khiển ALU Hạn chế của thiết kế bộ xử lý đơn chu kỳ Computer Architecture – Chapter 4.1 © Fall 2017, CSE 5 dce 2017 Các yếu tố ảnh hưởng đến hiệu xuất Hiệu xuất được xác định bởi: Số lệnh (Instruction count) Số chu kỳ xung nhịp trung bình trên lệnh (CPI) Thời gian của một chu kỳ xung nhịp Thiết kế bộ xử lý ảnh hưởng; I-Count CPI Thời gian của một chu kỳ CPI Cycle Thiết kế bộ xử xý đơn chu kỳ: Một lệnh thực hiện trong một chu kỳ (CPI =1) Computer Architecture – Chapter 4.1 © Fall 2017, CSE 6 dce 2017 Thiết kế một bộ xử lý: Các bước thực hiện 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 thành phần của datapath và phương pháp cấp xung nhịp Gắn các thành phần của datapath đáp ứng yêu cầu công việc của từng lệnh Xác định các giá trị của các tín hiệu điều khiển cho việc điều khiển dòng lưu chuyển của dữ liệu Thiết kế và thêm vào bộ điều khiển Computer Architecture – Chapter 4.1 © Fall 2017, CSE 7 dce 2017 Các định dạng lệnh MIPS Tấc cả các lệnh: độ rộng 32-bit Ba loại: R-type, I-type, và J-type Op6 Rs5 Rt5 Rd5 sa5 funct6 Op6 Rs5 Rt5 immediate16 Op6 immediate26 Op6: 6-bit opcode of the instruction Rs5, Rt5, Rd5: 5-bit source and destination register numbers sa5: 5-bit shift amount used by shift instructions funct6: 6-bit function field for R-type instructions immediate16: 16-bit immediate value or address offset immediate26: 26-bit target address of the jump instruction Computer Architecture – Chapter 4.1 © Fall 2017, CSE 8 dce 2017 Tập lệnh con MIPS Sử dụng tập lệnh con MIPS trong quá trình thiết kế ALU instructions (R-type): add, sub, and, or, xor, slt Immediate instructions (I-type): addi, slti, andi, ori, xori Load and Store (I-type): lw, sw Branch (I-type): beq, bne Jump (J-type): j Tương đối đầy đủ để minh họa quá trình xây dựng Bộ xử lý = datapath + control Quá trình xây dựng bộ xử lý MIPS tương tự việc xây dựng các bộ xử ký khác Computer Architecture – Chapter 4.1 © Fall 2017, CSE 9 dce 2017 Chi tiết tập lệnh con Instruction Meaning Format add rd, rs, rt addition op6 = 0 rs5 rt5 rd5 0 0x20 sub rd, rs, rt subtraction op6 = 0 rs5 rt5 rd5 0 0x22 and rd, rs, rt bitwise and op6 = 0 rs5 rt5 rd5 0 0x24 or rd, rs, rt bitwise or op6 = 0 rs5 rt5 rd5 0 0x25 xor rd, rs, rt exclusive or op6 = 0 rs5 rt5 rd5 0 0x26 slt rd, rs, rt set on less than op6 = 0 rs5 rt5 rd5 0 0x2a addi rt, rs, im16 add immediate 0x08 rs5 rt5 im16 slti rt, rs, im16 slt immediate 0x0a rs5 rt5 im16 andi rt, rs, im16 and immediate 0x0c rs5 rt5 im16 ori rt, rs, im16 or immediate 0x0d rs5 rt5 im16 xori rt, im16 xor immediate 0x0e rs5 rt5 im16 lw rt, im16(rs) load word 0x23 rs5 rt5 im16 sw rt, im16(rs) store word 0x2b rs5 rt5 im16 beq rs, rt, im16 branch if equal 0x04 rs5 rt5 im16 bne rs, rt, im16 branch not equal 0x05 rs5 rt5 im16 j im26 jump 0x02 im26 Computer Architecture – Chapter 4.1 © Fall 2017, CSE 10 dce 2017 Register Transfer Level (RTL) RTL mô tả dòng dữ liệu giữa các thanh ghi RTL cho biết ý nghĩa (công việc chính) của lệnh Tấc cả các lệnh được nạp từ địa chỉ trong thanh ghi PC Instruction RTL Description ADD Reg(Rd) ← Reg(Rs) + Reg(Rt); PC ← PC + 4 SUB Reg(Rd) ← Reg(Rs) – Reg(Rt); PC ← PC + 4 ORI Reg(Rt) ← Reg(Rs) | zero_ext(Im16); PC ← PC + 4 LW Reg(Rt) ← MEM[Reg(Rs) + sign_ext(Im16)]; PC ← PC + 4 SW MEM[Reg(Rs) + sign_ext(Im16)] ← Reg(Rt); PC ← PC + 4 BEQ if (Reg(Rs) == Reg(Rt)) PC ← PC + 4 + 4 × sign_extend(Im16) else PC ← PC + 4 Computer Architecture – Chapter 4.1 © Fall 2017, CSE 11 dce 2017 Instructions are Executed in Steps R-type Nạp lệnh: Instruction ← MEM[PC] Nạp toán hạn: data1 ← Reg(Rs), data2 ← Reg(Rt) Thực hiện phép toán: ALU_result ← func(data1, data2) Ghi vào thanh ghi: Reg(Rd) ← ALU_result Chuẩn bị lệnh kế: PC ← PC + 4 I-type Nạp lệnh : Instruction ← MEM[PC] Nạp toán hạn : data1 ← Reg(Rs), data2 ← Extend(imm16) Thực hiện phép toán : ALU_result ← op(data1, data2) Ghi vào thanh ghi : Reg(Rt) ← ALU_result Chuẩn bị lệnh kế : PC ← PC + 4 BEQ Nạp lệnh : Instruction ← MEM[PC] Nạp toán hạn : data1 ← Reg(Rs), data2 ← Reg(Rt) Kiểm tra bằng: zero ← subtract(data1, data2) Rẽ nhánh: if (zero) PC ← PC + 4 + 4×sign_ext(imm16) else PC ← PC + 4 Computer Architecture – Chapter 4.1 © Fall 2017, CSE 12 dce 2017 Instruction Execution – cont’d LW Nạp lệnh : Instruction ← MEM[PC] Nạp thanh ghi nền: base ← Reg(Rs) Tính địa chỉ: address ← base + sign_extend(imm16) Đọc ô nhớ: data ← MEM[address] Ghi vào thanh ghi: Reg(Rt) ← data Chuẩn bị lệnh kế : PC ← PC + 4 SW Nạp lệnh : Instruction ← MEM[PC] Nạp thanh ghi: base ← Reg(Rs), data ← Reg(Rt) Tính địa chỉ: address ← base + sign_extend(imm16) Ghi vào ô nhớ: MEM[address] ← data Chuẩn bị lệnh kế : PC ← PC + 4 concatenation Jump Nạp lệnh : Instruction ← MEM[PC] Tính địa chỉ đích: target ← PC[31:28] || Imm26 || ‘00’ Nhảy: PC ← target Computer Architecture – Chapter 4.1 © Fall 2017, CSE 13 dce 2017 Các thành phần yêu cầu từ tập lệnh Bộ nhớ Bộ nhớ lệnh là nơi chứa lệnh Bộ nhớ dữ liệu là nơi chứa dữ liệu Bộ thanh ghi 31 × 32-bit thanh ghi đa dụng, R0 luôn bằng giá trị 0 Đọc thanh ghi nguồn Rs Đọc thanh ghi nguồn Rt Ghi vào thanh ghi đích Rt hoặc Rd Bộ đếm chương trình (thanh ghi PC) và Bộ cộng để tăng PC = PC + 4 Bộ mở rộng dấu và 0 cho hằng số 16 bit Bộ tính toán số học luận lý ALU thực hiện tính toán Computer Architecture – Chapter 4.1 © Fall 2017, CSE 14 dce 2017 Tiếp theo. Thiết kết bộ xử lý: Các bước thực hiện Các thành phần của Datapath và cấp xung nhịp Xây dựng Datapath đầy đủ Điều khiển quá trình thực thi của các lệnh Bộ điều khiển chính và bộ điều khiển ALU Hạn chế của thiết kế bộ xử lý đơn chu kỳ Computer Architecture – Chapter 4.1 © Fall 2017, CSE 15 dce 2017 Các thành phần của Datapath Các phần tử mạch tổ hợp 32 0 zero A ALU, Adder 16 Extend 32 m u L 32 ALU result x 32 U overflow Immediate extender 1 ExtOp select ALU control Multiplexers Các phần tử lưu trữ 32 Instruction Data 32 Memory 32 32 32 PC Address Address Instruction memory 32 Data_out 32 Instruction Data_in Data memory clk Memory clk PC register Registers Mem Mem Read Write 5 32 Register file 5 RA BusA 32 RB BusB Xung nhịp 5 RW BusW Đồng bộ quá trình ghi clk 32 RegWrite Computer Architecture – Chapter 4.1 © Fall 2017, CSE 16 dce 2017 Thanh ghi Thanh ghi Data_In Tương tự D Flip-Flop n bits n-bit vào và ra Write WE Register Clock Write Enable (WE): Enable n bits Cho phép/ cấm ghi vào thanh ghi Data_Out Cấm (0): Data_Out không đổi Cho phép (1): Data_Out = Data_In sau cạnh lên của xung nhịp Xung nhịp kích cạnh lên (0 -> 1) Giá trị output được thay đổi tại cạnh lên của xung nhịp Computer Architecture – Chapter 4.1 © Fall 2017, CSE 17 dce 2017 Bộ thanh ghi MIPS (Register File) RW RA RB Bộ thanh ghi bao gồm 32 × 32-bit thanh ghi BusA và BusB: 32-bit ngõ ra cho 2 toán hạn nguồn BusW: 32-bit ngõ vào để ghi giá trị vào thanh ghi khi RegWrite = 1 Lựa chọn thanh ghi: Register RA lựa chọn thanh ghi đọc cho giá trị ở BusA 5 RA File BusA 32 5 RB lựa chọn thanh ghi đọc cho giá trị ở BusB 5 RB 32 BusB RW RW lựa chọ thanh ghi được ghi vào Clock Xung nhịp BusW Xung nhịp sử dụng khi GHI (cạnh lên) 32 RegWrite Khi đọc, bộ thanh ghi như là một mạch tổ hợp RA, RB hợp lệ => BusA, BusB là giá trị tương ứng sau thời gian truy xuất Computer Architecture – Chapter 4.1 © Fall 2017, CSE 18 dce 2017 Chi tiết bộ thanh ghi RA 5 RB 5 32 Decoder "0" Decoder "0" Tri-state R0 is WE R1 buffers not used 32 32 Decoder RW. 32 BusW BusA WE R31 RegWrite 32 32 Clock BusB Computer Architecture – Chapter 4.1 © Fall 2017, CSE 19 dce 2017 Bộ đệm 3 trạng thái Cho phép nhiều nguồn sử dụng chung một bus Hai ngõ vào: Enable Data_in Enable (to enable output) Data_in Data_out Một ngõ ra: Data_out If (Enable) Data_out = Data_in else Data_out = High Impedance state (output bị ngắt) Data_0 Bộ đệm 3 trạng thái được Output sử dụng tạo thành bộ Data_1 Select hợp kênh (multiplexor) Computer Architecture – Chapter 4.1 © Fall 2017, CSE 20 dce 2017 Mạch Half Adder XOR x Half S x y adder S C y XOR AND x y S C C 0 0 0 0 AND 0 1 1 0 1 0 1 0 1 1 0 1 Computer Architecture – Chapter 4.1 © Fall 2017, CSE 21 dce 2017 Mạch Full Adder C0 S Full adder x y C S = x + y + C0 Half adder 1 S = (x + y) + C0 Tính: S1 = x + y Tính: S2 = S1 + C0 Half adder 2 Computer Architecture – Chapter 4.
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:
- 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).
- 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ồmadd,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).
- R-type (
- 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'}$.
- 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 ghiRW, 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.
- 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
- 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}}$$
- Tổng hợp khối điều khiển:
- Main Control: Nhận 6 bit
Opcodengõ vào, xuất 10 tín hiệu điều khiển gồmRegDst,RegWrite,ExtOp,ALUSrc,MemRead,MemWrite,MemtoReg,Beq,Bne,J. - ALU Control: Nhận tín hiệu điều khiển từ
Opcodevà 6 bitfunctđể sinh tín hiệuALUCtrl. - 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.
- Main Control: Nhận 6 bit
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ữaRdtrong lệnh R-type vàRttrong 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
jhoặc lệnh cộngadd), 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).
- 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
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.