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

Bài Tập Chương 5: Pipeline

Nguyễn Quốc An – 22520023

Bài 1
1. Chu kỳ xung clock cần cho processor là bao nhiêu nếu processor thiết kế có pipeline,
không pipeline đa chu kỳ và không pipeline đơn chu kỳ.
a)
– Chu kỳ xung clock cần cho processor nếu processor có thiết kế pipeline là: 500ps
– Chu kỳ xung clock cần cho processor nếu processor thiết kế không pipeline đa chu
kỳ là: 500ps.
– Chu kỳ xung clock cần cho processor nếu processor thiết kế và không pipeline đơn
chu kỳ là: 1650ps
b)
– Chu kỳ xung clock cần cho processor nếu processor thiết kế có pipeline là: 200ps.
– Chu kỳ xung clock cần cho processor nếu processor thiết kế không pipeline đa chu
kỳ là: 200ps.
– Chu kỳ xung clock cần cho processor nếu processor thiết kế và không pipeline đơn
chu kỳ là: 800ps.

2. Thời gian cần thiết để thực hiện lệnh “lw” cho trường hợp processor thiết kế có
pipeline, không pipeline đa chu kỳ và không pipeline đơn chu kỳ.
a)
– Thời gian cần thiết để thực hiện lệnh “lw” cho trường hợp processor thiết kế có
pipeline: 2500ps
– Thời gian cần thiết để thực hiện lệnh “lw” cho trường hợp processor thiết kế
không pipeline đa chu kỳ: 2500ps
– Thời gian cần thiết để thực hiện lệnh “lw” cho trường hợp processor thiết kế
không pipeline đơn chu kỳ: 1650ps
b)
– Thời gian cần thiết để thực hiện lệnh “lw” cho trường hợp processor thiết kế có
pipeline: 1000ps
– Thời gian cần thiết để thực hiện lệnh “lw” cho trường hợp processor thiết kế
không pipeline đa chu kỳ: 1000ps
– Thời gian cần thiết để thực hiện lệnh “lw” cho trường hợp processor thiết kế
không pipeline đơn chu kỳ: 800ps.

1
3. Thời gian cần thiết để thực hiện lệnh “add” cho trường hợp processor thiết kế có
pipeline, không pipeline đa chu kỳ và không pipeline đơn chu kỳ.
a)
– Thời gian cần thiết để thực hiện lệnh “add” cho trường hợp processor thiết kế có
pipeline: 2500ps.
– Thời gian cần thiết để thực hiện lệnh “add” cho trường hợp processor thiết kế
không pipeline đa chu kỳ: 2000ps.
– Thời gian cần thiết để thực hiện lệnh “add” cho trường hợp processor thiết kế
không pipeline không pipeline đơn chu kỳ: 1650ps.
b)
– Thời gian cần thiết để thực hiện lệnh “add” cho trường hợp processor thiết kế có
pipeline: 1000ps
– Thời gian cần thiết để thực hiện lệnh “add” cho trường hợp processor thiết kế
không pipeline đa chu kỳ: 800ps
– Thời gian cần thiết để thực hiện lệnh “add” cho trường hợp processor thiết kế
không pipeline không pipeline đơn chu kỳ: 800ps.

4. Thời gian cần thiết để thực hiện một chương trình có 10 lệnh bao gồm 4 lệnh “lw” và
6 lệnh “add” cho trường hợp processor thiết kế có pipeline, không pipeline đa chu kỳ
và không pipeline đơn chu kỳ.
a)
– Thời gian cần thiết để thực hiện một chương trình có 10 lệnh bao gồm 4 lệnh “lw”
và 6 lệnh “add” cho trường hợp processor thiết kế có pipeline: 7000ps
– Thời gian cần thiết để thực hiện một chương trình có 10 lệnh bao gồm 4 lệnh “lw”
và 6 lệnh “add” cho trường hợp processor thiết kế không pipeline đa chu kỳ:
22000ps
– Thời gian cần thiết để thực hiện một chương trình có 10 lệnh bao gồm 4 lệnh “lw”
và 6 lệnh “add” cho trường hợp processor thiết kế không pipeline đơn chu kỳ:
16500ps.
b)
– Thời gian cần thiết để thực hiện một chương trình có 10 lệnh bao gồm 4 lệnh “lw”
và 6 lệnh “add” cho trường hợp processor thiết kế có pipeline: 2800ps.
– Thời gian cần thiết để thực hiện một chương trình có 10 lệnh bao gồm 4 lệnh “lw”
và 6 lệnh “add” cho trường hợp processor thiết kế không pipeline đa chu kỳ:
8800ps.
– Thời gian cần thiết để thực hiện một chương trình có 10 lệnh bao gồm 4 lệnh “lw”
và 6 lệnh “add” cho trường hợp processor thiết kế không pipeline đơn chu kỳ:
8000ps.

2
5. Giả sử rằng không có khoảng thời gian rỗi (stalls) hoặc xung đột (hazards), phần truy
xuất bộ nhớ (MEM) và phần truy xuất ghi trên tập thanh ghi (WB) sử dụng bao nhiêu
% chu kỳ của toàn chương trình
a)
– Phần truy xuất bộ nhớ dữ liệu (MEM): 15% + 10% = 25%
– Phần truy xuất ghi trên tập thanh ghi (WB): 50% + 15% = 65%
b)
– Phần truy xuất bộ nhớ dữ liệu (MEM): 30% + 15% = 45%
– Phần truy xuất ghi trên tập thanh ghi (WB): 30% + 30 = 60%

6. Thời gian cần thiết để thực hiện một chương trình có 100 lệnh được phân bố như bảng
trên cho trường hợp processor thiết kế có pipeline, không pipeline đa chu kỳ và không
pipeline đơn chu kỳ.
a)
– Thời gian cần thiết để thực hiện một chương trình có 100 lệnh được phân bố như
bảng trên cho trường hợp processor thiết kế có pipeline: 5T + 99.T (với T là 1 chu
kỳ pipeline).
– Thời gian cần thiết để thực hiện một chương trình có 100 lệnh được phân bố như
bảng trên cho trường hợp processor thiết kế không pipeline đơn chu kỳ: 100T’ (với
T’ là thời gian 1 chu kỳ xung clock của đơn chu kỳ).
– Thời gian cần thiết để thực hiện một chương trình có 100 lệnh được phân bố như
bảng trên cho trường hợp processor thiết kế không pipeline đa chu kỳ: (0.15 × 5 +
0.60 × 4 + 0.25 × 3 ) 100T’’ (với T’’ là thời gian 1 chu kỳ xung clock của đa chu
kỳ, cũng bằng T của pipeline).
b)
– Thời gian cần thiết để thực hiện một chương trình có 100 lệnh được phân bố như
bảng trên cho trường hợp processor thiết kế có pipeline: 5T + 99.T (với T là 1 chu
kỳ pipeline).
– Thời gian cần thiết để thực hiện một chương trình có 100 lệnh được phân bố như
bảng trên cho trường hợp processor thiết kế không pipeline đơn chu kỳ: 100T’ (với
T’ là thời gian 1 chu kỳ xung clock của đơn chu kỳ).
– Thời gian cần thiết để thực hiện một chương trình có 100 lệnh được phân bố như
bảng trên cho trường hợp processor thiết kế không pipeline đa chu kỳ: (0.3 × 5 +
0.45 × 4 + 0.25 × 3) 100T’’ (với T’’ là thời gian 1 chu kỳ xung clock của đa chu
kỳ, cũng bằng T của pipeline).

Bài 2

3
1. Trong trường hợp pipeline 5 tầng và không dùng kỹ thuật nhìn trước (no forwarding),
sử dụng lệnh ‘nop’ để giải quyết xung đột xảy ra (nếu có) trong chuỗi lệnh trên.
a)
lw $s1, 40($s6)
add $s6, $s2, $s2
nop
nop
sw $s6, 50($s1)
Hình ảnh chu kỳ pipeline:
lw $s1, 40($s6) IF ID EX MEM WB
add $s6, $s2, $s2 IF ID EX MEM WB
nop o o o o o
nop o o o o o
sw $s6, 50($s1) IF ID EX MEM WB

b)
lw $s5, -16($s5)
nop
nop
sw $s5, -16($s5)
add $s5, $s5, $s5
Hình ảnh chu kỳ pipeline :
lw $s5, -16($s5) IF ID EX MEM WB
nop o o o o o
nop o o o o o
sw $s5, -16($s5) IF ID EX MEM WB
add $s5, $s5, $s5 IF ID EX MEM WB

2. Trong trường hợp pipeline 5 tầng và có kỹ thuật nhìn trước (forwarding), sử dụng lệnh
‘nop’ để giải quyết xung đột xảy ra (nếu có) trong chuỗi lệnh trên.
a)
lw $s1, 40($s6)
add $s6, $s2, $s2
sw $s6, 50($s1)
Hình ảnh chu kỳ pipeline :
lw $s1, 40($s6) IF ID EX MEM WB

4
add $s6, $s2, $s2 IF ID EX MEM WB
sw $s6, 50($s1) IF ID EX MEM WB

b)
lw $s5, -16($s5)
nop
sw $s5, -16($s5)
add $s5, $s5, $s5
Hình ảnh chu kỳ pipeline :
lw $s5, -16($s5) IF ID EX MEM WB
nop o o o o o
sw $s5, -16($s5) IF ID EX MEM WB
add $s5, $s5, $s5 IF ID EX MEM WB

3. Tính thời gian thực thi của chuỗi lệnh trên trong trường hợp không forwarding và có
full-forwarding? Sự tăng tốc đạt được bởi việc đưa kỹ thuật full-forwarding vào
pipeline so với không forwarding là bao nhiêu?
a)
– Chuỗi lệnh trong trường hợp không forwarding, thời gian thực thi của chuỗi lệnh
trên là: 2700ps.
– Chuỗi lệnh trong trường hợp full-forwarding, thời gian thực thi của chuỗi lệnh trên
là: 2310ps.
– Sự tăng tốc đạt được bởi việc đưa kỹ thuật full-forwarding vào pipeline so với
không forwarding là : 1.169.
b)
– Chuỗi lệnh trong trường hợp không forwarding, thời gian thực thi của chuỗi lệnh
trên là: 1800ps
– Chuỗi lệnh trong trường hợp full-forwarding, thời gian thực thi của chuỗi lệnh trên
là: 1760ps.
– Sự tăng tốc đạt được bởi việc đưa kỹ thuật full-forwarding vào pipeline so với
không forwarding là : 1.023.

4. Giả sử processor chỉ có kỹ thuật ALU-ALU forwarding (không có MEM-ALU


forwarding), sử dụng lệnh ‘nop’ để giải quyết xung đột dữ liệu
a)
lw $s1, 40($s6)
add $s6, $s2, $s2
nop

5
sw $s6, 50($s1)
b)
lw $s5, -16($s5)
nop
nop
sw $s5, -16($s5)
add $s5, $s5, $s5

5. Tính thời gian thực thi của chuỗi lệnh trên khi áp dụng ALU-ALU forwarding? Sự
tăng tốc đạt được của việc dùng ALU-ALU forwarding so với không forwarding là
bao nhiêu?
a)
– Thời gian thực thi với ALU-ALU forwarding: 8 × 325 = 2600ps
– Sự tăng tốc đạt được = 2700/2600 = 1.038
b)
– Thời gian thực thi với ALU-ALU forwarding: 9 × 220 = 1980ps
– Sự tăng tốc đạt được = 1800/1980 = 0.91

Bài 3

1. Trong trường hợp pipeline 5 tầng, không nhìn trước (no forwarding), sử dụng lệnh
nop để giải quyết nếu có xung đột xảy ra trong chuỗi lệnh trên. Tính thời gian thực thi
đoạn lệnh khi chu kỳ là 200ps

a) b)
lw $1, 40($2) add $1, $2, $3
add $2, $3, $3 nop
nop nop
nop sw $2, 0($1)
add $1, $1, $2 lw $1, 4($2)
nop nop
nop nop
sw $1, 20($2) add $2, $2, $1

c) d)
lw $1, 40($6) add $1, $5, $3
nop nop
nop nop
add $2, $3, $1 sw $1, 0($2)

6
add $1, $6, $4 lw $1,4($2)
nop* nop
sw $2, 20($4) nop
add $1, $1, $4 add $5, $5, $1
sw $1, 0($2)

2. Trong trường hợp pipeline 5 tầng, có nhìn trước (full-forwarding), sử dụng lệnh nop
để giải quyết nếu có xung đột xảy ra trong chuỗi lệnh trên. Tính thời gian thực thi
đoạn lệnh khi chu kỳ là 220ps
a) b)
lw $1, 40($2) add $1, $2, $3
add $2, $3, $3 sw $2, 0($1)
add $1, $1, $2 lw $1, 4($2)
sw $1, 20($2) nop
add $2, $2, $1

c) d)
lw $1, 40($6) add $1, $5, $3
nop sw $1, 0($2)
add $2, $3, $1 lw $1,4($2)
add $1, $6, $4 nop
sw $2, 20($4) add $5, $5, $1
add $1, $1, $4 sw $1, 0($2)

You might also like