Tải bản đầy đủ (.pdf) (2 trang)

Dap an KTMT tuluan goiSV

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 (482.64 KB, 2 trang )

II - TỰ LUẬN
II.1. Chuyển đoạn mã lệnh C sau này mã lệnh MIPS Với các giá trị chứa trong các thanh ghi tương
ứng là: biến i ($s2), m ($s0), n ($s1), total ($s5), địa chỉ nền/cơ sở (base address) của mảng A ($s3),
địa chỉ nền/cơ sở (base address) của mảng B ($s4). [1.5 điểm]
Chỉ là đáp án gợi ý (các đáp án tương tự đều được tính điểm
C code:

MIPS code

int total = 0, i = 0;

addi $s5, $0, 0

// total = 0

while (i < m – n)

addi $s2, $0, 0

// i = 0

{

sub $t0, $s0, $s1 // $t0 = m – n
if (i <= n)

(0.25)

Loop:

total += A[i];



slt $t1, $s2, $t0

else

beq $t1, $0, Endloop //Loop condition (0.25)
total += B[i];

i++;

slt $t1 , $s1, $s2

}

bne $t1, $0, Else //If condition

(0.25)

A[0] = total;
sll $t1, $s2, 2

//If body

add $t1, $s3, $t1
lw $t1, 0($t1)
add $s5, $s5, $t1

(0.25)

j Endif

Else:

//Else body
sll $t1, $s2, 2
add $t1, $s4, $t1
lw $t1, 0($t1)
add $s5, $s5, $t1

(0.25)

Endif:
addi $s2, $s2, 1
j Loop
Endloop:
sw $s5, 0($s3)

(0.25)


II.2. Dùng chương trình benchmark P để so sánh hiệu suất của hai máy tính A và B có cùng kiến trúc
tập lệnh (Giả định compiler trên 2 máy thông dịch chương trình P với số lệnh như nhau). Thời gian
thực thi chương trình P trên máy B nhanh hơn máy A hai lần. Cho biết số chu kỳ trung bình trên lệnh
(CPI) của máy A và B lần lượt là 2 và 3. Tần số xung clock của máy nào lớn hơn? và lớn hơn bao
nhiêu lần? [1.5 điểm]
Solution
CPUA, CPUB: thời gian thực thi trên máy A và trên máy B

fA 

CPI A * I

CPU A

fB 

CPI B * I
CPU B

f A CPI A * I CPU B

*
fB
CPU A CPI B * I
CPI A  2
CPI B  3
CPU A  2CPU B


fA 1
  fB  3 f A
fB 3

Time A = số chu kỳA/fA = CPIA* I

---HẾT---



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×