CPSC 418: Assignment #4 Solutions
CPSC 418 - Homework #4 Solution
---------------------------------------------------------------------------
Here are the HP equations
(1) IC cost: (die + testing + package) / (final test yield)
(2) die: (wafer cost) / (die/wafer * die yield)
(3) die/wafer: pi * (wafer dia)^2 / 4*area
- pi * (wafer dia) / sqrt(2 * area)
- (test dies) / wafer
(4) die yield: wafer yield * [1 + (defects/unitarea * area)/alpha]^(-alpha)
Here are the constants I posted to the newsgroup. If you used
different constants, you will get different answers (you should still
get full marks as long as you specified which constants you were
using).
wafer diameter = 20cm
alpha (layers) = 3
wafer yield = 90%
wafer cost = $500/wafer
test dies = 0 test dies/wafer (test circuitry is placed between the
dies, in the silicon which will be destroyed when the wafer is
chopped into separate dies).
1a.
i) UltraSparc:
dies/wafer = (3.14 * (200/2)^2)/315 - (3.14 * 200)/sqrt(2 * 315) - 0
= 99.6825 - 25.0201 - 0
= 74
die yield(3) = 0.90 * [1 + (3 * 3.15)/3]^(-3) = 0.01259
(2) = 0.90 * [1 + (2 * 3.15)/3]^(-3) = 0.03021
(1) = 0.90 * [1 + (1 * 3.15)/3]^(-3) = 0.10447
(0) = 0.90 * [1 + (0 * 3.15)/3]^(-3) = 0.90
die cost(3) = 500/(74 * 0.01259) = $536.68
(2) = 500/(74 * 0.03021) = $223.66
(1) = 500/(74 * 0.1045) = $64.66
(0) = 500/(74 * 0.90) = $7.51
MIPS:
dies/wafer = (3.14 * (200/2)^2)/72 - (3.14 * 200)/sqrt(2 * 72) - 0
= 436.11 - 52.33 - 0
= 383
die yield(3) = 0.90 * [1 + (3 * 0.72)/3]^(-3) = 0.1769
(2) = 0.90 * [1 + (2 * 0.72)/3]^(-3) = 0.2776
(1) = 0.90 * [1 + (1 * 0.72)/3]^(-3) = 0.4720
(0) = 0.90 * [1 + (0 * 0.72)/3]^(-3) = 0.90
die cost(3) = 500/(383 * 0.1769) = $7.38
(2) = 500/(383 * 0.2776) = $4.70
(1) = 500/(383 * 0.4720) = $2.77
(0) = 500/(383 * 0.90) = $1.45
ii) Notice that, between eqn (3) and eqn (4), area affects die
cost as O(area ^ (alpha+1)) -- die cost is some high
exponential of area. But if defects/unit area
approaches zero, then area no longer has any affect on eqn
(4), and die cost depends on area as O(area)
With a typical alpha of 3, zero defects makes the difference
between die cost being O(area ^ 4) and O(area).
---------------------------------------------
b) From Figure 2.15 in HP, component cost should be 15-33% of list
price: 41.70 to 91.74 USD.
---------------------------------------------
c) CPI = %single_issue + %dual_issue/2 + %quad_issue/4
i) Compiler_CPI = 0.10 + 0.90/2 = 0.55
Processor_CPI = 0.20 + 0.20/2 + 0.60/4 = 0.45
ii) performance change for compiler option:
= (0.70 - 0.55)/0.55 = 0.2727
performance change for processor option:
= (0.70 - 0.45)/0.45 = 0.5556
Compiler will need a speedup of 2^(6/24) = 1.19 to be worthwhile.
Processor will need a speedup of 2^(15/24) = 1.5422 to be
worthwhile.
It looks like both are worthwhile options but compiler will be
better since it gives more speedup (an additional 8.27%) while
the processor gives only an additional 1.34% when the development
is completed.
------------------------------------------------------------------------------
2 a) Here is my disclosure -- if you filled in all the required boxes
you will receive full marks:
REQUIRED DISCLOSURE
Benchmark Ziff-Davis' PC Bench 9.0
Operating System MS-DOS 7.00
Processor 486DX, 486DX2 or 487SX
CoProcessor 80487
Processor Speed 33 MHz
Off-Chip Processor Cache 64 KB
Processor RAM 16 MB
Display Adapter ATI Ultra 32
Display DRAM 2048 KB
Display VRAM 0 KB
Hard Disk Quantum SCSI 850 MB
Hard Disk Controller Adaptec 1520
HD Controller RAM 0 KB
OS Software Cache None
OS Software Cache Size 0 KB, Windows: ? KB
ADDITIONAL INFORMATION
(deleted)
WEIGHTED SUITE Ian Mitchell's H...
DOSMark 158.28
CPUmark16 29.44
Video Score 2462.29
Disk Score 93.75
TEST Ian Mitchell's H... UNITS
Processor Tests
16-bit Protected Mode Large Mix 8.30 pass/sec
Math Coprocessor 7237.11 ops/sec
Video Mix Tests
Video Mix Text 1765.22 K chars/sec
Video Mix Graphics 4292.55 K pixels/sec
Disk Mix Test
DOS Disk Mix 93.75 K chars/sec
---------------------------------------------
b) For most students, this benchmark is inappropriate to judge
performance. I would expect that most students use their home
machines in one of the following areas:
- Windows
- games
- some version of UN*X
The benchmark will not properly measure performance for windows and
unix environments -- the operating systems and applications are
completely different. For games running under DOS, the weighting of
the benchmark may not be appropriate; most games will exercise the
graphics card significantly more than any other system resource, and
few will significantly exercise the disk. In addition, many current
games use the CDROM, which is untested by the benchmark.
One key observation that students should make: PCBench is a synthetic
benchmark. There are no actual applications included with the
benchmark. Instead, "representative fragments" of programs are
included, and thus the benchmark is liable to fall prey to the
weaknesses of synthetic benchmarks: too small, ignores dependencies of
real programs, out of date or inappropriate fragments.
If you made claims of further weakness in the benchmark (and there
probably are other problems with this benchmark), you should provide a
reference into the documentation.
------------------------------------------------------------------------------
3.
Justification marks for choosing the benchmark suite:
Here is my reasoning:
No mention of FP ==> use integer benchmarks
inherently sequential ==> use CINT95 benchmarks (not CINT95rate, which
allows parallel machines)
not a compiler expert ==> use CINT95_base results (simple compiler flags)
huge table of objects, individual objects are
pulled from the database in arbitrary order
==> use 147.vortex (object oriented database application)
Students may reasonably put forward go, compress, li or perl as
possible benchmarks as well, but vortex is the best choice. If they
chose a selection of 2-3 from those four and include vortex, don't
remove marks. Take off marks for each of the following infractions:
- didn't include vortex
- chose more than 3
- included m88ksim, gcc or ijpeg
- didn't use the base results
- didn't use CINT95
The best way to increase performance will be to add more memory.
Bigger caches will NOT work, since the program has no real working
set.
In terms of assigning marks for the choice of machine:
check that the machines at least have a different manufacturer and OS
(although they may have the same chip inside). Then add up the total
of their vortex base results for the five machines. Top total gets
full marks, and scale linearly from there. If a student didn't
include vortex, compare some other result (maybe the base g.mean) so
that he isn't penalized twice for not choosing vortex.
Last modified: Apr 97