Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây [894.75 KB, 10 trang ]
Bạn đang đọc: Bài tập Datapath kiến trúc máy tính uit có đáp án
GV biện soạn: Nguyệt TTN – KTMT UIT
Bài tập chương 4 – Datapath
Hình 1.
[FILE NÀY GIẢI THEO HÌNH 1 NHÉ,THI CHO HÌNH 2CRITICAL PATH [HÌNH 2 – hình đầy đủ]+ lệnh add, sub, AND, OR, sltI-mem, Control, Mux, Regs, Mux, ALU, Mux, Regs==> nếu đề cho Control bằng 0 thì bỏ Control ra+ lệnh lwI-mem, Control, Mux, Regs, Mux, ALU, D-mem, Mux, Regs==> nếu đề cho Control bằng 0 thì bỏ Control ra+ lệnh swI-mem, Regs, Mux, ALU, D-mem+ lệnh beqa.I-mem, Regs, Mux, ALU, Mux[xét bằng]b. I-mem, Sign-Extend,Shift-left-2, Add, Mux [không xétbằng]==> Thường a là đường chính; nhưng beq còn đường tínhimm*4+PC+4 nữanên chắc chắc, dựa vào dữ kiện của bài tính thử xem đường b
có dài hơn đường a không cho chắc
Hình 2.
1
GV biện soạn: Nguyệt TTN – KTMT UIT
Bài 1. [4.1 – sách tham khảo]Cho 2 lệnh như sau:
Lệnh
Ý nghĩa
a.
add rd, rs, rt
Reg[rd] = Reg[rs] + Reg[rt]
b.
lw rt, offs[rs]
Reg[rt] = Mem[Reg[rs]+offs]
Với từng lệnh trong bảng này:1. Giá trị các tính hiệu điều khiển từ khối “Control” sẽ như thế nào?2. Các khối nào trong datapath hình 1 cần thiết, khối nào không cần thiết?3. Khối nào trong datapath hình 1 có output đầu ra, nhưng output này không được sửdụng cho lệnh? Khối nào không có output?Cho thời gian trễ [thời gian cần để hoàn thành] của từng khối trong hình 1 như sau [khốinào không có trong bảng xem như thời gian trễ bằng 0]:
I-Mem
Add
Mux
ALU
Regs
D-Mem
Control
a.
400ps
100ps
30ps
120ps
200ps
350ps
100ps
b.
500ps
150ps
100ps
180ps
220
1000ps
65ps
4. Tính thời gian trễ lớn nhất của lệnh “and” trong kiến trúc MIPS và cho biết “criticalpath” của lệnh?Chú ý: “Critical path” của một lệnh là đường đi có thời gian trễ lớn nhất trong số cácđường có thể khi lệnh thực thi.5. Tính thời gian trễ lớn nhất của lệnh “lw” trong kiến trúc MIPS và cho biết “criticalpath” của lệnh?6. Tính thời gian trễ lớn nhất của lệnh “beq” trong kiến trúc MIPS và cho biết “criticalpath” của lệnh?—oOo–Đáp án:
1.
2
Xem slide 64, có cái bảng hoặcSlide 69,70,71,72 để biết đường
đi của các lệnh, từ đó biết tín
hiệu Control
GV biện soạn: Nguyệt TTN – KTMT UIT
RegWrite MemRead MemWrite ALUOp
ALUSrc MemToReg
Branch
a.
1
0
0
Add
0 [Reg]
0 [ALU]
0
b.
1
1
0
Add
1 [Imm]
1 [Mem]
0
2.a. Tất cả các khối đều cần thiết, ngoài trừ khối “Data Memory” và bộ cộng dùng cholệnh nhảy [nếu chi tiết hơn có thể liệt kê thêm “shift left 2”, “sign-extend” và cổnglogic AND]b. Tất cả các khối đều được sử dụng, ngoài trừ bộ cộng dùng cho lệnh nhảy [nếu chitiết hơn có thể liệt kê thêm “shift left 2” và cổng logic AND]3.
Các khối có output, nhưng không sử dụng
Các khối không có output
a.
bộ cộng dùng cho lệnh nhảy
Data Memory
b.
bộ cộng dùng cho lệnh nhảy
Không [Tất cả các khối đều có
output]
4.a. Độ trễ lớn nhất: 400 + 200 + 30 + 120 + 30 + 200 = 980psCritical path: I-Mem, Regs, Mux, ALU, Mux, RegsLưu ý:Đề bài đang yêu cầu tìm critical path cuả “add” theo hình 1:Critical path: I-Mem, Regs, Mux, ALU, Mux, RegsNếu đề bài yêu cầu tìm critical path của “add” theo hình 2: thêm một Mux trước RegsCritical path: I-Mem, Mux, Regs, Mux, ALU, Mux, RegsĐộ trễ lớn nhất lúc này bằng: 400 + 30 + 200 + 30 + 120 + 30 + 200 = 1010psĐề bài đang yêu cầu tìm critical path cuả “add” theo hình 1:Critical path: I-Mem, Regs, Mux, ALU, Mux, RegsNếu đề bài yêu cầu tìm critical path của “add” theo hình 2:có hai tranh cãi:1. Nếu chỉ số thanh ghi cần ghi, tức Write register của khối Registers phải được cungcấp giá trị trong giai đoạn giải mã: Thêm Control và Mux trước Regs [Nếu control = 0 thì thêm một Mux trướcRegs]Critical path: I-Mem, Control, Mux, Regs, Mux, ALU, Mux, Regs
3
GV biện soạn: Nguyệt TTN – KTMT UIT
Độ trễ lớn nhất lúc này bằng: 400 + 100+ 30 + 200 + 30 + 120 + 30 + 200 =
1110ps
2. Nếu chỉ số thanh ghi cần ghi, tức Write register của khối Registers chỉ cần sẵn sàng ởgiai đoạn ghi kết quả [thực tế thì tới đây chỉ số thanh ghi ghi kết quả mới cần sử dụng]thì không cần thêm Mux trước Regs, tức giống như datapath hình 1.
Sinh viên làm theo 1. hoặc 2. đều được tính điểm.
b. Độ trễ lớn nhất: 500 + 220 + 100 + 180 + 100 + 220 = 1320psCritical path: I-Mem, Regs, Mux, ALU, Mux, Regs5.a. Độ trễ lớn nhất: 400 + 200 + 30 + 120 + 350 + 30 + 200 = 1330psCritical path: I-Mem, Regs, Mux, ALU, D-Mem, Mux, Regsb. Độ trễ lớn nhất: 500 + 220 + 100 + 180 + 1000 + 100 + 220 = 2320psCritical path: I-Mem, Regs, Mux, ALU, D-Mem, Mux, Regs6.a. Độ trễ lớn nhất: 400 + 200 + 30 + 120 + 30 = 780psCritical path: I-Mem, Regs, Mux, ALU, Muxb. Độ trễ lớn nhất: 500 + 220 + 100 + 180 + 100 = 1100psCritical path: I-Mem, Regs, Mux, ALU, Mux
Giải thích:
Lưu ý: câu 4, 5, 6 đang chạy datapath theo hình 1; nếu câu này theo hình 2 thì phải thêm1 Mux trước khối Registers: instruction memory, Mux, Registers, Mux, ALU, Mux
Ví dụ câu 4: critical path lúc này là “I-Mem, Mux, Regs, Mux, ALU, Mux, Regs”
4
GV biện soạn: Nguyệt TTN – KTMT UIT
Nếu đề bài yêu cầu tìm critical path của lệnh lw [trong câu 5] theo hình 2 thay vì hình 1
thì cũng tương tự như câu 4.
Còn đối với các lệnh còn lại, lệnh mà không thực hiện thao tác ghi vào thanh ghi [nhưbeq câu 6], thì dù chạy với datapath hình 2 cũng không cần thêm Mux trước Regs.—oOo–Bài 2. [4.2 – sách tham khảo]Giả sử tập lệnh có thêm hai lệnh mới như sau:
Lệnh
Ý nghĩa
a.
add3 rd, rs, rt, rx
Reg[rd] = Reg[rs] + Reg[rt] + Reg[rx]
b.
sll rd, rt, shift
Reg[rd] = Reg[rt]