1đ Dựa theo đoạn chương trình hợp ngữ MIPS ở câu a, tính thời gian thực thi doạn chương trình con trên khi len bằng 10.. Biết rằng: - Lệnh tính toán số học thực thi trong 2 clock cycle
Trang 1CSE2012 Trang 1/2
KIỂM TRA GIỮA KỲ MÔN KIẾN TRÚC MÁY TÍNH Thời gian: 75 phút Sinh viên được xem tài liệu
Câu 1: (3đ)
Cho đoạn chương trình hiện thực cho hàm arraycmp ở ngôn ngữ C như sau:
int arraycmp(int a[], int b[], int len) {
int i;
for(i = 0; i < len; i++) {
if(a[i] != b[i]) return 0;
} return 1;
}
a (2đ) Chuyển chương trình trên sang hợp ngữ và mã máy của MIPS, giả sử $a0 chứa
địa chỉ của mảng a, $a1 chứa địa chỉ mảng b, $a2 chứa tham số len, thanh ghi $v0
chứa kết quả trả về và đoạn chương trình con trên bắt đầu tại địa chỉ 0x0040000
b (1đ) Dựa theo đoạn chương trình hợp ngữ MIPS ở câu a, tính thời gian thực thi doạn
chương trình con trên khi len bằng 10 Biết rằng:
- Lệnh tính toán số học thực thi trong 2 clock cycles
- Lệnh rẽ nhánh thực thi trong 3 clock cycles
- Lệnh load/store thực thi trong vòng 5 clock cycles,
- Máy tính MIPS chạy chương trình trên có tần số hoạt động 2,5GHz
Câu 2: (3đ)
Cho đoạn chương trình hợp ngữ MIPS và nội dung bộ nhớ dữ liệu như sau:
Address MIPS Assemply
0x0200 0x0204
0x0208 0x020c 0x0210 0x0214 0x0218 0x021c 0x0220 0x0224
0x0228 0x022c
0x0230 0x0234
add $t0, $zero,$zero add $t1, $zero,$zero
for_:
slti $t3,$t0,$a2 beq $t3, $zero, exit_
add $t2, $t0, $a0 lbu $t3, 0($t2) beq $t3, $zero, cont_
add $t2, $t1, $a1
sw $t3, 0($t2) addi $t1, $t1, 1 cont_:
addi $t0, $t0,1
j for_
exit_:
addi $v0, $t1, $zero
jr $ra
Trang 2CSE2012 Trang 2/2
a (1.5đ) Giả sử $a0 = 0x04000000, $a1 = 0x04000010,
$a2 = 16 Hỏi khi $t1 = 8 và chương trình đang thực thi lệnh tại địa chỉ 0x022c thì nội dung các ô nhớ địa chỉ từ 0x04000010 đến 0x040001f bằng bao nhiêu (vẽ lại các ô nhớ chứa giá trị tương ứng)
b (1.5đ) Hỏi nội dung của các ô nhớ địa chỉ từ 0x04000010 đến 0x040001f và thanh ghi $v0 bằng bao nhiêu khi chương trình thực thi lệnh tại địa chỉ 0x0234
Câu 3: (1đ)
Một chương trình có lệnh, trong đó có 10000 lệnh chia số thực Chương trình này được thực thi trên máy tính được cải tiến cho lệnh chia số thực, sau khi cải tiến, số chu kỳ để thực hiện cho lệnh chia số thực giảm đi 3 lần Tính speed up tổng thể của cải tiến này
Câu 4: (3đ)
Cho bảng thông số của một chương trình P sau khi được biên dịch bằng trình biên dịch C:
a (1.5đ) Máy tính X chạy chương trình P có tần số hoạt động 3.4GHz Tính thông số MIPS của
máy tính X
b (1.5đ)Máy tính Y có chung kiến trúc tập lệnh với máy tính X, nhưng có CPI cho nhóm lệnh thao tác bộ nhớ là 4 Biết máy tính Y có thông số MIPS bằng 1200 Tính tần số hoạt động của
máy tính Y, speed up của máy tính Y so với máy tính X khi chạy chương trình P
Address Data
0x0400000 0x12003404
0x0400004 0x23a0bc00
0x0400008 0x170400ab
0x040000c 0x23180500
0x0400010 0x00000000
0x0400014 0x00000000
0x0400018 0x00000000
0x040001c 0x00000000