Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 09: Đường dữ liệu đơn chu kỳ của MIPS (2)

Lắp ghép các thành phần đường dữ liệu,
thêm vào các đường điều khiển khi cần và
thiết kế đơn vị điều khiển.
 Tìm nạp, giải mã và thực thi từng lệnh trong
một chu kỳ clock – thiết kế đơn chu kỳ.
 không có tài nguyên đường dữ liệu nào có thể được
sử dụng nhiều hơn một lần cho mỗi lệnh, do vậy
một số phải được sao chép (e.g., đó là lý do tại sao
ta có bộ nhớ dữ liệu và bộ nhớ lệnh riêng biệt).
 việc dùng chung các thành phần đường dữ liệu giữa
hai loại lệnh khác nhau sẽ cần những mạch ghép
kênh ở ngõ vào của các thành phần dùng chung
cùng với những đường điều khiển để thực hiện việc
chọn lựa.
 Thời gian chu kỳ được xác định bởi chiều dài
của đường dẫn dài nhất
pdf 25 trang thamphan 27/12/2022 3020
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 09: Đường dữ liệu đơn chu kỳ của MIPS (2)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_vi_xu_ly_nang_cao_phan_1_thiet_ke_cpu_risc_bai_09.pdf
  • pptLec9.ppt

Nội dung text: Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 09: Đường dữ liệu đơn chu kỳ của MIPS (2)

  1. Bài giảng “Vi xử lý nâng cao” Phần 1: Thiết kế CPU RISC Bài 09: Đường dữ liệu đơn chu kỳ của MIPS (2) 1
  2. Nhắc lại : Thiết kế đường dữ liệu MIPS đơn giản Add Add 4 Shift left 2 PCSrc RegWrite ALUSrc ALU control MemWrite MemtoReg ovf zero Read Addr 1 Instruction Read Address Memory Register Read Addr 2 Data 1 Data Read File PC Instruction ALU Memory Read Data Address Write Addr Read Data 2 Write Data Write Data MemRead Sign 16Extend 32 3
  3. Đường dữ liệu đơn chu kỳ (gần đầy đủ) 0 Add Add 1 4 Shift left 2 PCSrc RegDst RegWrite ALUSrc MemWrite MemtoReg ovf zero Instr[25-21] Read Addr 1 Instruction Read Address Memory Register Instr[20-16] Read Addr 2 Data 1 Data Read File PC Instr[31-0] 0 ALU Memory Read Data 1 Address Write Addr 1 Read 0 Instr[15 Data 2 Write Data 0 -11] Write Data 1 Sign Instr[15-0] ALU MemRead Extend 16 32 control Instr[5-0] ALUOp 5
  4. Điều khiển ALU, tiếp theo  Việc điều khiển ALU sử dụng nhiều mức giải mã  đơn vị điều khiển chính tạo ra các bit ALUOp.  đơn vị điều khiển ALU tạo ra các bit ALUcontrol. Instr op funct ALUOp Action ALUcontrol lw xxxxxx 00 add 0110 sw xxxxxx 00 add 0110 beq xxxxxx 01 subtract 1110 add 10 0000 10 add 0110 subt 10 0010 10 subtract 1110 and 10 0100 10 and 0000 or 10 0101 10 or 0001 xor 10 0110 10 xor 0010 nor 10 0111 10 nor 0011 slt 10 1010 10 slt 1111 7
  5. Điều khiển ALU, tiếp Đầu vào điều khiển ALU F5 F4 F3 F2 F1 F0 ALU ALU ALU ALU ALU ALU Op 1 Op 0 control 3 control 2 control 1 control 0 XXXXXX 0 0 0 1 1 0 XXXXXX 0 1 1 1 1 0 X X 0 0 0 0 1 0 0 1 1 0 X X 0 0 1 0 1 0 1 1 1 0 X X 0 1 0 0 1 0 0 0 0 0 X X 0 1 0 1 1 0 0 0 0 1 X X 0 1 1 0 1 0 0 0 1 0 X X 0 1 1 1 1 0 0 0 1 1 X X 1 0 1 0 1 0 1 1 1 1 Add/subt Mux control  Bốn bảng giá trị 6-ngõ vào. 9
  6. Luồng dữ liệu gần đầy đủ và đơn vị điều khiển 0 Add Add 1 4 Shift left 2 PCSrc ALUOp Branch MemRead Instr[31-26] Control MemtoReg Unit MemWrite ALUSrc RegWrite RegDst ovf Instr[25-21] Read Addr 1 Instruction Read Address Memory Register Instr[20-16] Read Addr 2 Data 1 zero Data Read File PC Instr[31-0] 0 ALU Memory Read Data 1 Address Write Addr Read 0 1 Write Data Instr[15 Data 2 0 Write Data -11] 1 Sign Instr[15-0] ALU Extend 16 32 control Instr[5-0] 11
  7. Luồng dữ liệu/điều khiển của lệnh store từ 0 Add Add 1 4 Shift left 2 PCSrc ALUOp Branch MemRead Instr[31-26] Control MemtoReg Unit MemWrite ALUSrc RegWrite RegDst ovf Instr[25-21] Read Addr 1 Instruction Read Address Memory Register Instr[20-16] Read Addr 2 Data 1 zero Data Read File PC Instr[31-0] 0 ALU Memory Read Data 1 Address Write Addr Read 0 1 Write Data Instr[15 Data 2 0 Write Data -11] 1 Sign Instr[15-0] ALU Extend 16 32 control Instr[5-0] 13
  8. Luồng dữ liệu/điều khiển của lệnh rẽ nhánh 0 Add Add 1 4 Shift left 2 PCSrc ALUOp Branch MemRead Instr[31-26] Control MemtoReg Unit MemWrite ALUSrc RegWrite RegDst ovf Instr[25-21] Read Addr 1 Instruction Read Address Memory Register Instr[20-16] Read Addr 2 Data 1 zero Data Read File PC Instr[31-0] 0 ALU Memory Read Data 1 Address Write Addr Read 0 1 Write Data Instr[15 Data 2 0 Write Data -11] 1 Sign Instr[15-0] ALU Extend 16 32 control Instr[5-0] 15
  9. Mạch logic của đơn vị điều khiển  Từ bảng giá trị ta có thể thiết kế mạch logic điều Instr[31] khiển chính. Instr[30] Instr[29] Instr[28] Instr[27] Instr[26] R-type lw sw beq RegDst ALUSrc MemtoReg RegWrite MemRead MemWrite Branch ALUOp 1 ALUOp 0 17
  10. Thêm vào các lệnh nhảy Instr[25-0] Shift 1 28 32 26 left 2 PC+4[31-28] 0 Add 0 Add 1 4 Shift PCSrc Jump left 2 ALUOp Branch MemRead Instr[31-26] Control MemtoReg Unit MemWrite ALUSrc RegWrite RegDst ovf Instr[25-21] Read Addr 1 Instruction Read Address Memory Register Instr[20-16] Read Addr 2 Data 1 zero Data Read File PC Instr[31-0] 0 ALU Memory Read Data 1 Address Write Addr Read 0 1 Write Data Instr[15 Data 2 0 Write Data -11] 1 Sign Instr[15-0] ALU Extend 16 32 control Instr[5-0] 19
  11. Thời gian chu kỳ của thực hiện đơn chu kỳ  Thật không may , mặc dù đơn giản, tiếp cận đơn chu kỳ không được sử dụng do tiếp cận này rất chậm.  Chu kỳ clock phải có cùng chiều dài cho mọi lệnh.  Chiều dài dài nhất (lệnh chậm nhất) là gì? 21
  12. Ưu và khuyết điểm của đơn chu kỳ  Sử dụng chu kỳ clock không hiệu quả – chu kỳ clock phải được định thời để phù hợp với lệnh chậm nhất.  Đặc biệt khó giải quyết đối với các lệnh phức tạp như là nhân số dấu chấm động. Cycle 1 Cycle 2 Clk lw sw Waste  Có thể hoang phí diện tích do một số đơn vị chức năng phải được sao chép (e.g., mạch cộng ) vì chúng không thể được dùng chung trong thời gian một chu kỳ clock.  Đơn giản và dễ hiểu. 23
  13. Hướng phát triển  Tiếp cận khác  sử dụng thời gian chu kỳ “nhỏ hơn”.  có nhiều lệnh khác nhau chiếm số chu kỳ khác nhau.  đường dữ liệu “đa chu kỳ”. Memory IR Read Addr 1 A PC Address Register Read Read Data Read Addr 2 Data 1 File (Instr. or Data) Write Addr ALU ALUout Read B Write Data Write Data Data 2 MDR 25