Control Unit
Calculating CPI
Using the program benchmark GCC (a C compiler) we record the following
instruction mix :
load 21%
store 12%
ALU 37%
set 6%
jump (uncond) 2%
jump taken 12%
jump notaken 10%
CPI for S1 with hardwired control unit will be 5.23
(6 x .21 + 6 x .12 + 5 x .37 + 5 x .06 + 5 x .02 + 5 x .12 + 4 x .10)
CPI for S1 with microprogram control unit will be 5.35
(6 x .21 + 7 x .12 + 5 x .37 + 5 x .06 + 5 x .02 + 5 x .12 + 4 x .10)
Microprogram takes the time longer for "store", therefore its
CPI is slightly higher. For the simulation run of sum.asm program
CPI hardwired = 5.37, and CPI microprogram = 5.46
Conclusion
As the history tells us, the microprocessor followed the same trend as
earlier computer designs. Because of the limit of resource (the number
of transister in a chip), hardwired control was implemented and the instruction
set architecture was toward a simple design. The advantage of simpler
design for control unit and ease of change popularised microprogramming.
Microprogram made it possible to achieve more complex instruction sets.
With a much larger micro memory a machine as elaborate as the VAX is possible.
In 1984, DEC wanted to offer a cheaper machine with the same instruction
set as VAX. They reduced the instructions interpreted by microcode
by trapping some instructions and performing them in software. They
discovered that 20% of VAX instructions occupied 60% of the microcode,
and yet they are used (executed) only 0.2% of the time. Their simpler
subsetted of VAX, called MicroVAX-1, implemented 80% of VAX instruction
in microcode, other 20% is trapped to software, has the size of micromemory
reduced from 480K (VAX) to 64K, and perform 90% of the performance of VAX-11/780.
This is also an evidence toward a new thinking in instruction set design.