You are on page 1of 4

KIM TRA GIA K MN KIN TRC MY TNH

Hc k II, nm hc 2010-2011
Thi gian: 60 pht
Sinh vin c xem ti liu
Bi 1 (4 im)
Xem xt mt chng trnh chy trn 2 h vi x l A, B vi clock rate tng ng l 2 GHz, 3 GHz.
Ngi ta dng mt trnh bin dch dch chng trnh trn v thng k c kt qu nh bng sau:
Loi lnh
Load
Store
Lnh thc hin php ton
s thc (FP Instruction)
Lnh r nhnh (Branch
Instruction)

CPI
0.5
0.75
2.5

B x l A
T l lnh thc thi
25%
10%
30%

CPI
0.5
1.0
3.0

35%

1,5

B x l B
T l lnh thc thi
20%
25%
40%
15%

Tng s lnh thng k c l 105 cho vi x l A, v 2x105 cho vi x l B.


a). So snh hiu sut ca chng trnh ny khi chy trn vi x l A v khi chy trn vi x l B. (1
im)
CPIA = 0.5 x 0.25 + 0.1 x 0.75 + 0.3 x 2.5 + 0.35 x 1 = 1.3
TA = CPIA x ICA x 1/CRA = 1.975 x 105 x 1/(2x109) = 0.65x10-4 (s)
CPIB = 0.2 x 0.5 + 1 x 0.25 + 3 x 0.4 + 1.5 x 0.15 = 1.775
TB = CPIB x ICB x 1/CRB = 1.775 x 2x105 x 1/(3x109) = 1.1833x10-4 (s)
A nhanh hn B
b) So snh MIPS (Millons of Instructions Per Second) vi x l A v B, c th dng MIPS kt lun
hiu sut ca b vi x l no tt hn c khng ?
MIPSA/MIPSB = (105/0.65x10-4x106) /(2x105/1.1833x10-4x106) = 0.911
MIPSB > MIPSA, mc d vy ta khng th dng i lng MIPS so snh hiu sut 2 b vi x l
khc nhau
c). Ngi thit k mong mun ci tin h vi x l B ny bng cch ch ci tin phn cng thc thi
php ton s thc. Vi s ci tin ny, ngi thit k mong mun rng thi gian thc thi chng trnh
trn s nh hn 0.35x10-4(s). C th lm c vic ny khng ? (1 im)
Theo nh lut Amdahl : Timproved = Taffected/n + Tunaffected
Do Tbefore improved = TB = Taffected + Tunaffected => Tunaffected = TB Taffected = 1.1833x10-4 (s) 3 x
2x105x0.4 x 1/3x109 = 1.1833x10-4 (s) 0.8x10-4(s) = 0.3833x10-4(s)
Timproved < 0.35x10-4(s). V vy khng th lm c vic ny
d) Ngi thit k mong mun ci tin h vi x l B ny bng cch ch ci tin phn cng thc thi php
ton s thc. Cc lnh php ton s hc sau khi ci tin thc thi nhanh hn 2 ln. Tnh speedup ca
chng trnh trn cho b vi x l ny. (1 im)
Timproved = Taffected/n + Tunaffected = 0.8x10-4/2+0.3833x10-4 = 0.7833x10-4
Speedup = Tbefore improved/Timproved = 1.1833x10-4 (s)/ 0.7833x10-4 = 1.51
Bi 2 (2,5 im):
Trang 1/2

Dch hm c vit bng ngn ng C sau sang hp ng MIPS


swap_array(int a[], int b[], int size)
{
int i, temp;
for (i = 0; i < size; i = i + 1)
{
temp = a[i];
a[i] = b[i];
b[i] = temp;
}
}
Cc tham s a, b, size tng ng c truyn qua thanh ghi $a0, $a1, $a2. Khai bo kiu int l
32-bits.
loop_s:

move $t0,$zero

# i = 0

sll

$t1,$t0,2

# $t1 = i * 4

add

$t2,$a0,$t1

# $t2 = &a[i]

add

$t3,$a1,$t1

# $t3 = &b[i]

lw

$t4,0($t2)

# temp = a[i]

lw

$t5,0($t3)

# t5 = b[i]

sw

$t5,0($t2)

# a[i] = t5 (b[i])

sw

$t4,0($t3)

# b[i] = temp

addi $t0,$t0,1

# i = i + 1

slt

$t2,$t0,$a2

# $t2 = (i < size)

bne

$t2,$zero,loop_s

# if () goto loop1

jr

$ra

Bi 3 (3,5 im):
Gi s ta c hm int X(int a, int b, int n) v c li gi hm X ny t hm main. Bng
sau m t m C v m assembly MIPS tng ng:
void main()
{

X(10, 3, 3);

a ch

int X(int a, int b, int n)


{
if (n == 0)
return a;
else
return X(a-b, b, n-1);
}
M assembly

a ch

M assembly
Trang 2/2

(c s
10)
100:
104:
108:
112:
116:

(c s
10)
...
addi $a0, $zero, 10
addi $a1, $zero, 3
addi $a2, $zero, 3
jal X
add $t0, $v0, $zero
...

200: X:
204:
208:
212:
216:
220:
224:
228:
232:
236:
240:

subu $sp, $sp, 12


sw $ra, 8($sp)
sw $s0, 4($sp)
sw $s1, 0($sp)
add $s0, $a0, $zero
add $s1, $a2, $zero
add $v0, $s0, $zero
beq $s1, $zero, exit
sub $a0, $s0, $a1
subu $a2, $s1, 1
jal X

244: exit: lw $s1, 0($sp)


248:
lw $s0, 4($sp)
252:
lw $ra, 8($sp)
256:
addu $sp, $sp, 12
258:
jr $ra
262:
Gi s chng trnh s thc thi t a ch 100 (c s 10) n 116 (c s 10). Khi chng trnh thc thi
n a ch 100 (c s 10), thanh ghi sp c gi tr 1000 (c s 10) v hm main gi hm X vi cc
thng s truyn vo nh trn. Hy v trng thi cho bit cc gi tr trn vng stack v gi tr cc thanh
ghi $ra, $v0, $a2 khi thc thi lnh jal X ti a ch 112, jal X ti a ch 240, jr $ra ti
a ch 258.

Trang 3/2

Stack
sp = 1000

116
x

ra
v0

a2

s0 = x

244
10

ra
v0

s1 = x

a2

240: jal X ( thc thi


ln 1)

s0 = 10

244
7

ra
v0

240: jal X ( thc thi


ln 2)

s1 = 3

a2

s0 = 7

244
4

ra
v0

s1 = 2

a2

s0 = 7

244
1

ra
v0

s1 = 2

a2

244
1

ra
v0

a2

244
1

ra
v0

112: jal X

Stack
116
sp = 988

Stack
244
sp = 976

Stack
244
sp = 964

240: jal X ( thc thi


ln 3)

Stack
244
sp = 964

274: jr ra ( thc thi ln


1)

Stack
244
sp = 976

s0 = 10
s1 = 3

274: jr ra ( thc thi ln


2)

Stack
116
s0 = x
sp = 988

s1 = x

a2

274: jr ra ( thc thi ln


3)

Stack
x
sp = 1000

116
1

ra
v0

a2

274: jr ra ( thc thi ln


4)

-----------------------ht----------------------Trang 4/2

You might also like