Bài tập hiệu suất kiến trúc Máy tính uit

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]

Chủ Đề