Last name _Points_________ First name _Max_______42/42_
Section _A[AB]__
CSE378 Autumn 2003
Homework Problem Set #1

A (22 points)
1.1q
1.2u
1.3f
1.4a
1.5c
1.6d
1.7i
1.8k
1.9j
1.10o
1.11w
 
1.12p
1.13n
1.14r
1.15y
1.16s
1.17l
1.18g
1.19x
1.20z
1.21t
1.22b
 
1.23h
1.24m
1.25e
1.26v
1.27j
1.28b
1.29f
1.30j
1.31i
1.32e
1.33d
 
1.34g
1.35c
1.36g
1.37d
1.38c
1.39j
1.40b
1.41f
1.42h
1.43a
1.44a

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.

C (6 points)
Do a Google search using the keywords: DRAM "chip size" "defect density". Calculations were performed using the numbers from the first item listed.

Note: Die area must be in centimetres2 in the yield calculation to match the defects per area units.

YearCapacity (Kbits)Die area (sq. cm)Wafer Diameter (inches)Yield
19972621442.8885%
199910485764.01289%
200341943045.61293%

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)

F (1 point)
addi $t0, $t1, 100

G (1 point)
Screenshot here.