Prev CPSC 418 Home Page Next

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.


Prev CPSC 418 Home Page Next
Last modified: Apr 97