Last name _Points_________ First name
_Max_______42/42_
Section _A[AB]__
CSE378 Autumn 2003
Homework Problem Set #1
A (22 points)
1.1
q
1.2
u
1.3
f
1.4
a
1.5
c
1.6
d
1.7
i
1.8
k
1.9
j
1.10
o
1.11
w
1.12
p
1.13
n
1.14
r
1.15
y
1.16
s
1.17
l
1.18
g
1.19
x
1.20
z
1.21
t
1.22
b
1.23
h
1.24
m
1.25
e
1.26
v
1.27
j
1.28
b
1.29
f
1.30
j
1.31
i
1.32
e
1.33
d
1.34
g
1.35
c
1.36
g
1.37
d
1.38
c
1.39
j
1.40
b
1.41
f
1.42
h
1.43
a
1.44
a
B (4 points)
Number of transistors that could fit in the period = Area of period x Density
of transistors
Area of period (approximately) = 0.25 mm2
Density of transistors = Number of transistors / Area
Density of transistors from Figure 1.9 = 3.3 x 106 / 91
Density of transistors from Figure 1.18 = 5.5 x 106 / 306
Using Figure 1.9 numbers, the number of transistors that could fit in the
period = 0.25 x 3.3 x 106 / 91
= 9065 (approximately)
Using Figure 1.18 numbers, the number of transistors that could fit in the
period = 0.25 x 5.5 x 106 / 306
= 4493 (approximately)
Food for thought: Why do you think the second figure has a chip with a larger
area, yet a lower density of transistors? Hint: it has to do with the fact that
the chip in the second figure has the cache mostly off-chip.
Note: Die area must be in centimetres2 in the yield calculation to
match the defects per area units.
Year
Capacity (Kbits)
Die area (sq. cm)
Wafer Diameter (inches)
Yield
1997
262144
2.8
8
85%
1999
1048576
4.0
12
89%
2003
4194304
5.6
12
93%
D (4 points)
The code returns the mode (most commonly occuring value) in $v1 and how often
it occurs in $v0.
Not necessary to state but an interesting point: If there is more than one
mode, the one which occurs latest in the array will be returned.
E (4 points)
Total execution time = total cycles x time per cycle
Worst case occurs when the processor executes all of the instructions in the
nested loops, and follows no branches except when array has been fully
scanned. This is achieved using an array full of all the same values.
Total cycles = cycles before the label outer
+ 5000 x (cycles from the label outer to before the label inner
+ cycles from the slt instruction after the label skip to the end of the code)
+ 5000 x 5000 x cycles from the label inner to the bne instruction
= 4
+ 5000 x (5 + 8)
+ 5000 x 5000 x 9
= 225065004
Total execution time = 225065004 x 1 / 500000000
= 0.45 seconds (approximately)