1 1998 Morgan Kaufmann Publishers Value of control signals is dependent upon: –what instruction is being executed –which step is being performed Use the information we’ve accumulated to specify a finite state machine –specify the finite state machine graphically, or –use microprogramming Implementation can be derived from specification Implementing the Control
How many state bits will we need? Graphical Specification of FSM
3 1998 Morgan Kaufmann Publishers Implementation: Finite State Machine for Control
4 1998 Morgan Kaufmann Publishers Why Microprogramming? Creating control via interconnection of basic logic elements: –Difficult to design and test –Difficult to change design Solution: use microinstructions (firmware) to generate the control settings
5 1998 Morgan Kaufmann Publishers Microprogramming What are the “microinstructions” ?
6 1998 Morgan Kaufmann Publishers A specification methodology –appropriate if hundreds of opcodes, modes, cycles, etc. –signals specified symbolically using microinstructions Will two implementations of the same architecture have the same microcode? What would a microassembler do? Microprogramming
Microinstruction format
8 1998 Morgan Kaufmann Publishers Control unit function 1)Address select logic unit issues READ to control memory 2)Word whose address is in control address register is loaded into control buffer register 3)Content of control buffer register generates control signals and next-address info for address select logic unit 4)Address select logic unit loads new address into control address register based on next address info from control buffer and ALU flags. Possibilities are: go to next instruction (add 1 to control address register -seq) jump to new place based on jump microinstruction (address stored in microinstruction - fetch) jump to machine instruction routine (new address based on opcode in the IR - dispatch)
9 1998 Morgan Kaufmann Publishers No encoding: –1 bit for each datapath operation (so no grouping) –faster, requires more memory (logic) –used for Vax 780 — an astonishing 400K of memory! Lots of encoding (more like what is described in book): –send the microinstructions through logic to get control signals –uses less memory, slower Historical context of CISC: –Too much logic to put on a single chip with everything else –Use a ROM (or even RAM) to hold the microcode –It’s easy to add new instructions Maximally vs. Minimally Encoded