Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Bài 1: Xác định Clock Cycle

a) -Chu kì dài nhất của Single Clock Cycle là 150ns+100ns+100ns+150ns+100ns=600ns


-Chu kì dài nhất của 1 trong 5 stage trong Multi Clock Cycle là 150ns
-Chu kì dài nhất của 1 trong 5 stage trong Pipeline là 150ns
b) -Nếu không xet stall, thời gian thực thi của chương trình đối với các hệ thống:
+Đối với Single Cycle : 600*2+50*600*4+600 = 121800ns
+Đối với Multi Cycle : 150*4*2+50*(150*3+150*4*2+150*2)+150*3 = 99150ns
+Đối với Pipeline Cycle : 150*(2+50*4+1+4) = 31050ns
c) -Speed up của hệ thống Pipeline so với:
+Single Cycle : 121800/31050 = 3,92
+Multi Cycle : 99150/31050 = 3,19
d) -Khi delay ALU thay đổi từ 100-> 150,
+Chu kì của một clock của Multi Cycle và Pipeline không thay đối do stage dài nhất đã là
150ns nên thời gian thực thi chương trình không có sự thay đổi và Speed up của Pipeline so vs
Multi Cycle cũng tưng tự vậy. Không thay đổi.
+Single Clock Cycle có chu kì dài nhất là :150+100+150+150+100 = 650ns
+Tổng thời gian thực thi chương trình trên khi chạy với hệ thống Single Cycle là:
650*2+50*650*4+650 = 131950ns
+Speed up của Pipeline so với Single Cycle là 131950/31050 = 4,25
Bài 2: Xử lí Hazard
a)
-Sẽ có sự phụ thuộc trước khi bắt đầu vòng lặp giữ dòng lệnh thứ 1 với thứ 4 và thứ 2 vs thứ 4
-Trong khi thực hiện vòng lặp sẽ có sự phụ thuộc dữ liệu giữa dòng số 5 với dòng số 4 và dòng
số 6 với dòng số 4
b)
-Ta cần chèn vào tổng cộng là 2+4*50+3 = 205 stall
(c)
-Ta cần chèn vào tổng cộng là 4*50+3 = 203 stall
(d)
-Ta cần chèn vào tổng cộng là 1+2*50+1 = 102 stall
(e)
1. addi $t1, $zero, 100
2. addi $t2, $zero, 0
3. loop
4. addi $t1, $t1, -1
5. addi $t2, $t2, 1
6. beq $t1, $t2, exit
7. j loop
-Còn lại ta có:
+Số stall là 3 stall sau beq
+Số stall là 1 stall sau j loop ở mỗi vòng lặp
-Tổng cộng là 4*50+3 = 203 stall
Bài 3: Xử lí Hazard
a) -Có sự phụ thuộc dữ liệu giữa các dòng lệnh:
+1 với 3
+2 với 3
+4 với 6
+5 vơi 6
+6 với 7
(b) -Số stall cần là 2 + 2 + 2 = 6 stall
(c) -Có 1 stall

(e)
1. addi $t1, $zero, 100
2. addi $t2, $zero, 100
3. lw $t4, 0($a0)
4. lw $t5, 4($a0)
5. add $t3, $t1, $t2
6. and $t6, $t4, $t5
7. sw $t6, 8($a0)
-Còn tồn tại một stall giữa 4 và 5

You might also like