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] << shift (dịch trái shift bits) Với từng lệnh trên:1. Khối nào đang có trong hình 1 có thể sử dụng cho các lệnh này?2. Khối mới nào cần được thêm vào?3. Tín hiệu mới nào cần được thêm vào từ khối “Control” để hỗ trợ?—oOo–Đáp án:1.a. Lệnh này cần sử dụng các khối: instruction memory, Registers (cả 2 cổng đọc và cổngghi), ALUb. Lệnh này cần sử dụng các khối: instruction memory, Registers (nhưng chỉ 1 cổng đọc

và cổng ghi), đường truyền số tức thời tới ALU

Xem thêm: Darling là gì? Các từ khác có thể thay thế darling bạn đã biết rõ

2.a. Các khối mới cần được thêm vào: Thêm một cổng đọc vào khối Registers và thêm mộtALU để tính tổng Rx với Rs + Rt (hoặc sửa ALU đang có thành ALU với 3 input)b. Các khối mới cần được thêm vào: Đưa thêm tính năng dịch vào ALU hiện tại3.a. Các tín hiệu điều khiển mới cần thêm vào:– Thêm một tín hiệu điều khiển để điều khiển ALU mới (trong trường hợp ALU câu

2.2.a chọn thêm 1 ALU mới)

5

GV biện soạn: Nguyệt TTN – KTMT UIT

– Thay đổi lại khối “ALU Control” để điều khiển ALU 3 đầu vào (trong trường hợpALU câu 2.2.a chọn sửa lại ALU 2 đầu vào thành 3 đầu vào)

b.

Các tín hiệu điều khiển mới cần thêm vào:– Thay đổi lại khối “ALU Control” để điều khiển ALU có thêm tính năng sll

—oOo—

Bài 3. (4.6 – sách tham khảo)Giả sử các khối trong datapath (hình 1) có độ trễ như sau:

I-Mem

Add

Mux

ALU

Regs

D-Mem

Sign-Extend

Shift-left-2

a.

400ps

100ps

30ps

120ps

200ps

350ps

20ps

2ps

b.

500ps

150ps

100ps

180ps

220ps

1000ps

90ps

20ps

1. Giả sử việc duy nhất được thực hiện trong processor chỉ là nạp lệnh liên tục (như
hình bên dưới), chu kỳ xung clock cần cho thiết kế là bao nhiêu?

2. Giả sử processor chỉ thực hiện duy nhất mỗi lệnh nhảy (như beq nhưng không cầnđiều kiện bằng), chu kỳ xung clock cần cho thiết kế là bao nhiêu?3. Như câu 2, nhưng lệnh nhảy trong trường hợp này có xét đến điều kiện bằng (nhưbeq), chu kỳ xung clock cần cho thiết kế là bao nhiêu?Cho khối chức năng sau:

a.

Add 4 (bộ cộng dùng để cộng PC với 4)

b.

Data Memory

4. Dạng lệnh nào cần các khối chức năng trên5. Dạng lệnh nào mà các khối chức năng trên nằm trong critical path?—oOo–Đáp án:

6

GV biện soạn: Nguyệt TTN – KTMT UIT

1.a. 400psb. 500ps2.Critical path cho lệnh này: instruction memory, sign-extend, shift-left-2, bộ cộng (để tínhđịa chỉ mới) và Mux.a. 400 + 20 + 2 + 100 + 30 = 552psb. 500 + 90 + 20 + 150 + 100 = 860ps3.Ngoài đường dẫn tính địa chỉ mới cho lệnh nhảy (instruction memory, sign-extend, shiftleft-2, bộ cộng, và Mux), còn một đường dẫn khác qua: instruction memory, Registers,Mux, ALU, Mux để tính điều kiện bằng.Độ trễ của đường dẫn tính điều kiện bằng:a. 400 + 200 + 30 + 120 + 30 = 780psb. 500 + 220 + 100 + 180 + 100 = 1100psVì đường này có độ trễ dài hơn đường tính địa chỉ mới, nên chu kỳ xung clock cần chothiết kế:a. 780psb. 1100psLưu ý: hình đang giải là hình 1; nếu câu này theo hình 2 thì đường dẫn tính điều kiện

bằng của beq phải thêm 1 Mux trước khối Registers: instruction memory, Mux,

Registers, Mux, ALU, MuxLưu ý: hình đang giải là hình 1; nếu câu này theo hình 2 thì cũng tương tự (xem giải thíchtrong bài số 1)4.a. Tất cả các lệnh, ngoài trừ các lệnh nhảy thuộc nhóm “not PC-relative” (jal, jalr, j,jr)b. Các lệnh liên quan đến ‘load’ và ‘store’5.

7

GV biện soạn: Nguyệt TTN – KTMT UIT

a.

Không lệnh nào (Vì khối “Instruction memory” luôn có độ trễ cao hơn “Add 4” vàtất cả các lệnh (bao gồm cả NOP) đều cần phải qua Instruction memory cho việc

đọc lệnh).

b. ‘load’ và ‘store’—oOo–Bài 4. (4.7 – Sách tham khảo)Cho độ trễ của các khối trong datapath như sau:

I-Mem

Add

Mux

ALU

Regs

D-Mem

Sign-extend

Shift-left-2

a.

400ps

100ps

30ps

120ps

200ps

350ps

20ps

0ps

b.

500ps

150ps

100ps

180ps

220ps

1000ps

90ps

20ps

1. Chu kỳ xung clock là bao nhiêu nếu datapath chỉ hỗ trợ các lệnh thuộc nhóm logic vàsố học (như add, and, …)?2. Chu kỳ xung clock là bao nhiêu nếu datapath chỉ hỗ trợ lệnh lw?3. Chu kỳ xung clock là bao nhiêu nếu datapath hỗ trợ các lệnh: add, beq, lw, sw?Giả sử tỉ lệ các lệnh được thực hiện trong một đoạn lệnh như sau (Processor khôngpipeline):

add

addi

not

beq

lw

sw

a.

30%

15%

5%

20%

20%

10%

b.

25%

5%

5%

15%

35%

15%

4. Bao nhiêu phần trăm chu kỳ xung clock có sử dụng khối “Data memory”?5. Bao nhiêu phần chu kỳ xung clock có sử dụng khối “Sign-extend”?—oOo–Đáp án:1. Critical path: I-Mem, Regs, Mux, ALU, Mux, Regsa. 400ps + 200ps + 30ps + 120ps + 30ps + 200ps = 980psChu kỳ xung clock trong thiết kế này là 980psb. 500ps + 220ps + 100ps + 180ps + 100ps + 220ps = 1320psChu kỳ xung clock trong thiết kế này là 1320ps2. Critical path: I-Mem, Regs, Mux, ALU, D-Mem, Mux, Regs

8

GV biện soạn: Nguyệt TTN – KTMT UIT

a. 400 + 200 + 30 + 120 + 350 + 30 + 200 = 1330ps(Chu kỳ xung clock = 1330ps)b. 500 + 220 + 100 + 180 + 1000 + 30 + 220 = 2320ps(Chu kỳ xung clock = 2320ps)3. Đáp án như câu 2, vì lw có critical path dài nhất trong số các lệnh trên.4. “Data memory” bị truy xuất chỉ với lw và swa. 20% + 10% = 30%b. 35% + 15% = 50%5. Thật sự khối “Sign-extend” đều có tính toán ra một kết quả nào đó trong mỗi chu kỳ,nhưng output của nó chỉ được cần cho các lệnh addi, beq, lw và sw; và bỏ qua với cáclệnh còn lại. Vì vậy:a. 15% + 20% + 20% + 10% = 65%b. 5% + 15% + 35% + 15% = 70%—oOo–Bài 5. (4.9 – Sách tham khảo)Lệnh

a.

lw $1, 40($6)

b.

label: beq $1, $2, label

1. Mã máy của hai lệnh trên là gì2. Chỉ số cung cấp cho input “Read register 1”, “Read register 2” của khối “Registers” làgì? Các thanh ghi này có thật sự được đọc và được sử dụng không? (Xem datapathhình 2)3. Chỉ số cung cấp cho input “Write register” của khối “Registers” là gì? Thanh ghi nàycó thật sự được ghi vào không? (Xem datapath hình 2)—oOo–Đáp án:1.

Binary

Hexadecimal
9

GV biện soạn: Nguyệt TTN – KTMT UIT

a.

10001100110000010000000000101000

8CC10028

b.

Xem thêm: Những Thông Tin Thú Vị Về Giống Chó Becgie Đức GSD

00010000001000101111111111111111

1022FFFF

2.Read register 1a.

b.

6 (00110(2))
1(00001(2))

Thật sự được đọc và Read register 2

Thật sự được đọc và

được sử dụng?

được sử dụng?

Được đọc, được sử 1(00001(2))

Được

dụng

không được sử dụng

Được đọc, được sử 2(00010(2))

Được đọc, được sử

dụng

dụng

đọc,

nhưng

3.
Write register 1

Thanh ghi thật sự được ghi
không?

a.

1 (00001(2))

Được

b.

Hoặc là 2 (00010(2)) hoặc là 31 (11111(2)) (không Khôngbiết vì tín hiệu RegDst là ‘x’ trong trường hợp này

—oOo—

10

GV biện soạn : Nguyệt TTN – KTMT UITBài 1. ( 4.1 – sách tìm hiểu thêm ) Cho 2 lệnh như sau : LệnhÝ nghĩaa. add rd, rs, rtReg [ 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ị những tính hiệu điều khiển và tinh chỉnh từ khối “ Control ” sẽ như thế nào ? 2. Các khối nào trong datapath hình 1 thiết yếu, khối nào không thiết yếu ? 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 hạn trễ ( thời hạn cần để hoàn thành xong ) 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 hạn trễ bằng 0 ) : I-MemAddMuxALURegsD-MemControla. 400 ps100ps30ps120ps200ps350ps100psb. 500 ps150ps100ps180ps2201000ps65ps4. Tính thời hạn 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 hạn trễ lớn nhất trong số cácđường hoàn toàn có thể khi lệnh thực thi. 5. Tính thời hạn 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 hạn 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. Xem slide 64, có cái bảng hoặcSlide 69,70,71,72 để biết đườngđi của những lệnh, từ đó biết tínhiệu ControlGV biện soạn : Nguyệt TTN – KTMT UITRegWrite MemRead MemWrite ALUOpALUSrc MemToRegBrancha. Add0 ( Reg ) 0 ( ALU ) b. Add1 ( Imm ) 1 ( Mem ) 2. a. Tất cả những khối đều thiết yếu, ngoài trừ khối “ Data Memory ” và bộ cộng dùng cholệnh nhảy ( nếu cụ thể hơn hoàn toàn có thể liệt kê thêm “ shift left 2 ”, “ sign-extend ” và cổnglogic AND ) b. Tất cả những 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 hoàn toà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ụngCác khối không có outputa. bộ cộng dùng cho lệnh nhảyData Memoryb. bộ cộng dùng cho lệnh nhảyKhông ( Tất cả những khối đều cóoutput ) 4. a. Độ trễ lớn nhất : 400 + 200 + 30 + 120 + 30 + 200 = 980 psCritical path : I-Mem, Regs, Mux, ALU, Mux, RegsLưu ý : Đề bài đang nhu yếu tìm critical path cuả “ add ” theo hình 1 : Critical path : I-Mem, Regs, Mux, ALU, Mux, RegsNếu đề bài nhu yế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 = 1010 psĐề bài đang nhu yếu tìm critical path cuả “ add ” theo hình 1 : Critical path : I-Mem, Regs, Mux, ALU, Mux, RegsNếu đề bài nhu yế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 quá trình giải thuật :  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, RegsGV 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 = 1110 ps2. 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 chuẩn bị ởgiai đoạn ghi tác dụng ( thực tiễn thì tới đây chỉ số thanh ghi ghi hiệu 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 = 1320 psCritical path : I-Mem, Regs, Mux, ALU, Mux, Regs5. a. Độ trễ lớn nhất : 400 + 200 + 30 + 120 + 350 + 30 + 200 = 1330 psCritical path : I-Mem, Regs, Mux, ALU, D-Mem, Mux, Regsb. Độ trễ lớn nhất : 500 + 220 + 100 + 180 + 1000 + 100 + 220 = 2320 psCritical path : I-Mem, Regs, Mux, ALU, D-Mem, Mux, Regs6. a. Độ trễ lớn nhất : 400 + 200 + 30 + 120 + 30 = 780 psCritical path : I-Mem, Regs, Mux, ALU, Muxb. Độ trễ lớn nhất : 500 + 220 + 100 + 180 + 100 = 1100 psCritical path : I-Mem, Regs, Mux, ALU, MuxGiả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, MuxVí dụ câu 4 : critical path lúc này là “ I-Mem, Mux, Regs, Mux, ALU, Mux, Regs ” GV biện soạn : Nguyệt TTN – KTMT UITNếu đề bài nhu yế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ựa như như câu 4. Còn so với những lệnh còn lại, lệnh mà không thực thi 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 tìm hiểu thêm ) Giả sử tập lệnh có thêm hai lệnh mới như sau : LệnhÝ nghĩaa. add3 rd, rs, rt, rxReg [ rd ] = Reg [ rs ] + Reg [ rt ] + Reg [ rx ] b.sll rd, rt, shiftReg [ rd ] = Reg [ rt ] < < shift ( dịch trái shift bits ) Với từng lệnh trên : 1. Khối nào đang có trong hình 1 hoàn toàn có thể sử dụng cho những lệnh này ? 2. Khối mới nào cần được thêm vào ? 3. Tín hiệu mới nào cần được thêm vào từ khối “ Control ” để tương hỗ ? --- oOo--Đáp án : 1. a. Lệnh này cần sử dụng những khối : instruction memory, Registers ( cả 2 cổng đọc và cổngghi ), ALUb. Lệnh này cần sử dụng những khối : instruction memory, Registers ( nhưng chỉ 1 cổng đọcvà cổng ghi ), đường truyền số tức thời tới ALU2. a. Các khối mới cần được thêm vào : Thêm một cổng đọc vào khối Registers và thêm mộtALU để tính tổng Rx với Rs + Rt ( hoặc sửa ALU đang có thành ALU với 3 input ) b. Các khối mới cần được thêm vào : Đưa thêm tính năng dịch vào ALU hiện tại3. a. Các tín hiệu tinh chỉnh và điều khiển mới cần thêm vào : - Thêm một tín hiệu điều khiển và tinh chỉnh để tinh chỉnh và điều khiển ALU mới ( trong trường hợp ALU câu2. 2. a chọn thêm 1 ALU mới ) GV biện soạn : Nguyệt TTN – KTMT UIT - Thay đổi lại khối “ ALU Control ” để điều khiển và tinh chỉnh ALU 3 nguồn vào ( trong trường hợpALU câu 2.2. a chọn sửa lại ALU 2 đầu vào thành 3 nguồn vào ) b. Các tín hiệu tinh chỉnh và điều khiển mới cần thêm vào : - Thay đổi lại khối “ ALU Control ” để tinh chỉnh và điều khiển ALU có thêm tính năng sll---oOo---Bài 3. ( 4.6 – sách tìm hiểu thêm ) Giả sử những khối trong datapath ( hình 1 ) có độ trễ như sau : I-MemAddMuxALURegsD-MemSign-ExtendShift-left-2a. 400 ps100ps30ps120ps200ps350ps20ps2psb. 500 ps150ps100ps180ps220ps1000ps90ps20ps1. Giả sử việc duy nhất được triển khai trong processor chỉ là nạp lệnh liên tục ( nhưhình bên dưới ), chu kỳ luân hồi xung clock cần cho phong cách thiết kế là bao nhiêu ? 2. Giả sử processor chỉ triển khai duy nhất mỗi lệnh nhảy ( như beq nhưng không cầnđiều kiện bằng ), chu kỳ luân hồi xung clock cần cho phong cách thiết kế là bao nhiêu ? 3. Như câu 2, nhưng lệnh nhảy trong trường hợp này có xét đến điều kiện kèm theo bằng ( nhưbeq ), chu kỳ luân hồi xung clock cần cho phong cách thiết kế là bao nhiêu ? Cho khối tính năng sau : a. Add 4 ( bộ cộng dùng để cộng PC với 4 ) b. Data Memory4. Dạng lệnh nào cần những khối tính năng trên5. Dạng lệnh nào mà những khối tính năng trên nằm trong critical path ? --- oOo--Đáp án : GV biện soạn : Nguyệt TTN – KTMT UIT1. a. 400 psb. 500 ps2. Critical path cho lệnh này : instruction memory, sign-extend, shift-left-2, bộ cộng ( để tínhđịa chỉ mới ) và Mux. a. 400 + 20 + 2 + 100 + 30 = 552 psb. 500 + 90 + 20 + 150 + 100 = 860 ps3. Ngoài đường dẫn tính địa chỉ mới cho lệnh nhảy ( instruction memory, sign-extend, shiftleft-2, bộ cộng, và Mux ), còn một đường dẫn khác qua : instruction memory, Registers, Mux, ALU, Mux để tính điều kiện kèm theo bằng. Độ trễ của đường dẫn tính điều kiện kèm theo bằng : a. 400 + 200 + 30 + 120 + 30 = 780 psb. 500 + 220 + 100 + 180 + 100 = 1100 psVì đường này có độ trễ dài hơn đường tính địa chỉ mới, nên chu kỳ luân hồi xung clock cần chothiết kế : a. 780 psb. 1100 psLưu ý : hình đang giải là hình 1 ; nếu câu này theo hình 2 thì đường dẫn tính điều kiệnbằng của beq phải thêm 1 Mux trước khối Registers : instruction memory, Mux, Registers, Mux, ALU, MuxLưu ý : hình đang giải là hình 1 ; nếu câu này theo hình 2 thì cũng tương tự như ( xem giải thíchtrong bài số 1 ) 4. a. Tất cả những lệnh, ngoài trừ những lệnh nhảy thuộc nhóm “ not PC-relative ” ( jal, jalr, j, jr ) b. Các lệnh tương quan đến ‘ load ’ và ‘ store ’ 5. GV biện soạn : Nguyệt TTN – KTMT UITa. Không lệnh nào ( Vì khối “ Instruction memory ” luôn có độ trễ cao hơn “ Add 4 ” vàtất cả những lệnh ( gồm có cả NOP ) đều cần phải qua Instruction memory cho việcđọc lệnh ). b. ‘ load ’ và ‘ store ’ --- oOo--Bài 4. ( 4.7 – Sách tìm hiểu thêm ) Cho độ trễ của những khối trong datapath như sau : I-MemAddMuxALURegsD-MemSign-extendShift-left-2a. 400 ps100ps30ps120ps200ps350ps20ps0psb. 500 ps150ps100ps180ps220ps1000ps90ps20ps1. Chu kỳ xung clock là bao nhiêu nếu datapath chỉ tương hỗ những lệnh thuộc nhóm logic vàsố học ( như add, and, … ) ? 2. Chu kỳ xung clock là bao nhiêu nếu datapath chỉ tương hỗ lệnh lw ? 3. Chu kỳ xung clock là bao nhiêu nếu datapath tương hỗ những lệnh : add, beq, lw, sw ? Giả sử tỉ lệ những lệnh được thực thi trong một đoạn lệnh như sau ( Processor khôngpipeline ) : addaddinotbeqlwswa. 30 % 15 % 5 % 20 % 20 % 10 % b. 25 % 5 % 5 % 15 % 35 % 15 % 4. Bao nhiêu Phần Trăm chu kỳ luân hồi xung clock có sử dụng khối “ Data memory ” ? 5. Bao nhiêu phần chu kỳ luân hồi xung clock có sử dụng khối “ Sign-extend ” ? --- oOo--Đáp án : 1. Critical path : I-Mem, Regs, Mux, ALU, Mux, Regsa. 400 ps + 200 ps + 30 ps + 120 ps + 30 ps + 200 ps = 980 psChu kỳ xung clock trong phong cách thiết kế này là 980 psb. 500 ps + 220 ps + 100 ps + 180 ps + 100 ps + 220 ps = 1320 psChu kỳ xung clock trong phong cách thiết kế này là 1320 ps2. Critical path : I-Mem, Regs, Mux, ALU, D-Mem, Mux, RegsGV biện soạn : Nguyệt TTN – KTMT UITa. 400 + 200 + 30 + 120 + 350 + 30 + 200 = 1330 ps ( Chu kỳ xung clock = 1330 ps ) b. 500 + 220 + 100 + 180 + 1000 + 30 + 220 = 2320 ps ( Chu kỳ xung clock = 2320 ps ) 3. Đáp án như câu 2, vì lw có critical path dài nhất trong số những lệnh trên. 4. “ Data memory ” bị truy xuất chỉ với lw và swa. 20 % + 10 % = 30 % b. 35 % + 15 % = 50 % 5. Thật sự khối “ Sign-extend ” đều có đo lường và thống kê ra một tác dụng nào đó trong mỗi chu kỳ luân hồi, nhưng output của nó chỉ được cần cho những lệnh addi, beq, lw và sw ; và bỏ lỡ với cáclệnh còn lại. Vì vậy : a. 15 % + 20 % + 20 % + 10 % = 65 % b. 5 % + 15 % + 35 % + 15 % = 70 % --- oOo--Bài 5. ( 4.9 – Sách tìm hiểu thêm ) Lệnha. lw USD 1, 40 ( USD 6 ) b.label : beq USD 1, USD 2, label1. Mã máy của hai lệnh trên là gì2. Chỉ số phân phối cho input “ Read register 1 ”, “ Read register 2 ” của khối “ Registers ” làgì ? Các thanh ghi này có thật sự được đọc và được sử dụng không ? ( Xem datapathhình 2 ) 3. Chỉ số cung ứng cho input “ Write register ” của khối “ Registers ” là gì ? Thanh ghi nàycó thật sự được ghi vào không ? ( Xem datapath hình 2 ) --- oOo--Đáp án : 1. BinaryHexadecimalGV biện soạn : Nguyệt TTN – KTMT UITa. 100011001100000100000000001010008CC10028 b. 000100000010001011111111111111111022FFFF2. Read register 1 a. b. 6 ( 00110 ( 2 ) ) 1 ( 00001 ( 2 ) ) Thật sự được đọc và Read register 2T hật sự được đọc vàđược sử dụng ? được sử dụng ? Được đọc, được sử 1 ( 00001 ( 2 ) ) Đượcdụngkhông được sử dụngĐược đọc, được sử 2 ( 00010 ( 2 ) ) Được đọc, được sửdụngdụngđọc, nhưng3. Write register 1T khô hanh ghi thật sự được ghikhông ? a. 1 ( 00001 ( 2 ) ) Đượcb. Hoặc là 2 ( 00010 ( 2 ) ) hoặc là 31 ( 11111 ( 2 ) ) ( không Khôngbiết vì tín hiệu RegDst là ‘ x ’ trong trường hợp này---oOo---10