- The function of the control unit in a digital computer is to initiate sequences of microoperations.
- When the control signals are generated by hardware using conventional logic design techniques, the control unit is said to be hardwired.
- Microprogramming is a second alternative for designing the control unit of a digital computer.
- The principle of microprogramming is an elegant and systematic method for controlling the microoperation sequences in a digital computer.
- In a bus-organized systems, the control signals that specify microoperations are groups of bits that select the paths in multiplexers, decoders, and arithmetic logic units.
- A control unit whose binary control variables are stored in memory is called a microprogrammed control unit.
- A memory that is part of a control unit is referred to as a control memory.
- Each word in control memory contains within it a microinstruction.
- A sequence of microinstructions constitutes a microprogram.
- Can be either read-only memory(ROM) or writable control memory (dynamic microprogramming)
- A computer that employs a microprogrammed control unit will have two separate memories:
- A main memory
- A control memory
- The general configuration of a microprogrammed control unit is demonstrated in the block diagram of 3.1.
- The control memory is assumed to be a ROM, within which all control information is permanently stored.
- The control address register specifies the address of the microinstruction.
- The control data register holds the microinstruction read from memory.
- Thus a microinstruction contains bits for initiating microoperations in the data processor part and bits that determine the address sequence for the control memory.
Extra Stuff:
Microprogram
- Program stored in memory that generates all the control signals required to execute the instruction set correctly
- Consists of microinstructions Microinstruction
Microinstruction
- Contains a control word and a sequencing word
- Control Word - All the control information required for one clock cycle
- Sequencing Word - Information needed to decide the next microinstruction address
- Vocabulary to write a microprogram
Control Memory (Control Storage: CS)
- Storage in the microprogrammed control unit to store the microprogram Writeable Control Memory(Writeable Control Storage:WCS)
- CS whose contents can be modified
- Allows the microprogram can be changed
- Instruction set can be changed or modified
Dynamic Microprogramming
-
-
- Computer system whose control unit is implemented with a microprogram in WCS
- Microprogram can be changed by a systems programmer or a user
-
Microrogrammed Sequencer
- The next address generator is sometimes called a microprogram sequencer, as it determines the address sequence that is read from control memory.
- Typical functions of a microprogram sequencer are:
- Incrementing the control address register by one
- Loading into the control address register an address from control memory
- Transferring an external address
- Loading an initial address to start the control operations
Pipeline Register
- The data register is sometimes called a pipeline register.
- It allows the execution of the microoperations specified by the control word simultaneously with the generation of the next microinstruction.
- This configuration requires a two-phase clock
- The system can operate by applying a single-phase clock to the address register.
- Without the control data register
- Thus, the control word and next-address information are taken directly from the control memory.
- It allows the execution of the microoperations specified by the control word simultaneously with the generation of the next microinstruction.
Advantages
- The main advantage of the microprogrammed control is the fact that once the hardware configuration is established; there should be no need for further hardware or wiring change.
- Most computers based on the reduced instruction set computer (RISC) architecture concept use hardwired control rather than a control memory with a microprogram. (Why?)
A Microprogram Control Unit that determines the Microinstruction Address to be executed in the next clock cycle
- In-line Sequencing
- Branch
- Conditional Branch
- Subroutine
- Loop
- Instruction OP-code mapping