Hardwired Vs Microprogrammed Control Unit Microoperations

Study guide

Hardwired vs Microprogrammed Control Unit and Microoperations: Diagrams and Comparison Table

Hardwired control unit and microprogrammed control unit explained for TU CSIT CSC213 and BIT151: the four kinds of microoperations, both block diagrams, the microprogram, and a full comparison table.

2026-10-24 | notesharu team

"Hardwired control unit" and "microprogrammed control unit" are paired in the exam so often that students should treat them as one topic. They sit across two units of TU BSc CSIT Computer Architecture (CSC213): unit 2, Register Transfer and Microoperations, which defines what the control unit has to produce, and unit 4, Microprogrammed Control, which covers the control memory approach. In BIT151 Microprocessor and Computer Architecture the same material is unit 3, Microoperations and Control Unit Design.

This article first explains microoperations and the microprogram, then gives the hardwired control unit block diagram, the microprogrammed control unit architecture, and the comparison table that most questions ask for. The unit notes are on the Microprogrammed Control notes page.

What are microoperations

A microoperation is an elementary operation performed on the data stored in registers during one clock pulse. A single instruction such as ADD is carried out as a sequence of microoperations. Written in register transfer language (RTL), a transfer is shown as $R2 \leftarrow R1$, and a conditional one as $P: R2 \leftarrow R1$, meaning the transfer happens only when the control function P is 1.

Microoperations fall into four kinds:

TypeWhat it doesExample in RTL
Register transferCopies binary information from one register to another$R2 \leftarrow R1$
ArithmeticArithmetic on numbers in registers$R3 \leftarrow R1 + R2$, $R1 \leftarrow R1 + 1$
LogicBit-wise operations on register contents$R3 \leftarrow R1 \wedge R2$, $R1 \leftarrow \overline{R1}$
ShiftMoves bits left or right$R1 \leftarrow \text{shl } R1$

The control unit's job is to decide which of these microoperations happens in each clock period, by producing the right control signals (load, increment, clear, select and ALU function signals). There are two classic ways to build that control logic.

Microprogram and microinstruction

A microinstruction is a control word that specifies one or more microoperations, and a microprogram is the sequence of microinstructions that implements one machine instruction. In the microprogrammed approach these control words are stored in a special memory called the control memory. In effect, executing a machine instruction means running a small program held inside the control unit.

Hardwired control unit

In a hardwired control unit the control signals are produced by fixed combinational logic, built from decoders, gates and a sequence counter. The control logic is wired for one specific instruction set, so changing it means redesigning the circuit.

The block diagram has these parts:

BlockRole
Instruction register (IR)Holds the current instruction; the opcode field goes to the decoder
Instruction decoderTurns the opcode into one active line per instruction, for example $D_0$ to $D_7$
Sequence counter (SC) with timing decoderGenerates the timing signals $T_0, T_1, T_2, \dots$ that step through the clock periods
Control logic gatesCombine the decoded instruction, timing signals, flags and status bits to produce the control outputs
Control outputsLD, INR, CLR inputs of registers, bus selection lines, memory read and write, ALU function

For the basic computer, a control function is a Boolean expression of these signals. For example, AR is loaded at $T_0$ and $T_2$ of the fetch and decode phases (when no interrupt is pending), and at $T_3$ of a memory-reference instruction that uses indirect addressing, so

$$LD(AR) = R'T_0 + R'T_2 + D_7' I T_3$$

with R the interrupt flip-flop, I the addressing-mode bit and $D_7'$ meaning the instruction is a memory-reference type. The sequence counter is cleared when an instruction finishes, so that the next instruction starts at $T_0$. A hardwired unit therefore needs no memory lookups to produce control signals, which makes it fast, but its design is complex and hard to modify.

Microprogrammed control unit architecture

In a microprogrammed control unit the control signals are read out of a control memory instead of being derived by gates. The architecture contains:

BlockRole
Control memoryROM that stores the microprograms, one microinstruction per word
Control address register (CAR)Holds the address of the next microinstruction to read
Control data register (pipeline register)Holds the microinstruction currently being executed
Next-address generator (sequencer)Decides the next CAR value: increment, branch, subroutine call or return, or a mapped address
Mapping logicConverts the opcode of the machine instruction into the starting address of its microprogram
Subroutine register (SBR)Saves the return address for a micro-subroutine

The operation runs as follows. At the start of each machine instruction, the opcode is mapped to the first address of the matching microprogram and loaded into CAR. The microinstruction at that address is read into the control data register, and its fields drive the datapath. Its next-address field, together with a condition test, tells the sequencer whether to increment CAR, jump to another address, or return to the fetch routine. This repeats until the microprogram ends.

A typical microinstruction format has fields for the microoperations (for example F1, F2, F3), a condition field (CD), a branch field (BR) and an address field (AD). The condition and branch fields select among "always", "if the flag is 0 or 1", and call or return, and the address field supplies the jump target.

Hardwired vs microprogrammed control unit

PointHardwiredMicroprogrammed
Control signals come fromDecoders, gates and sequence counterMicroinstructions stored in control memory
SpeedFaster, only gate delaysSlower, a memory read for each microinstruction
FlexibilityHard to change, needs redesignEasy to change, edit the microprogram
Design effortComplex for large instruction setsSystematic and simple
Cost and areaCheaper for simple machinesNeeds control memory, costlier for small machines
Instruction set sizeSuits small, simple (RISC style) setsSuits large, complex (CISC style) sets
Adding an instructionRewire the logicAdd a microprogram
Error correctionDifficultEasier, rewrite the microcode
ExamplesMany RISC processorsMany CISC processors and the original IBM System/360 models

The comparison rests on one trade-off: speed against flexibility. Hardwired logic is fast but frozen; a control memory costs time but lets the designer change or extend the instruction set by rewriting the microprogram.

How to write it in the exam

For a 5-mark "differentiate" question, write the one-line definition of each type and give six to eight rows of the comparison table. For a 10-mark question, define microoperations and list the four kinds with RTL examples, draw the block diagram of the control unit being asked (hardwired or microprogrammed), explain how the blocks work together in a short paragraph, and finish with the comparison table. If both diagrams are asked, label the sequence counter and decoders in the first, and the CAR, control memory and sequencer in the second.

The preceding material is in Register Transfer and Microoperations. BIT students can follow Microoperations and Control Unit Design in BIT151, and past papers for the full subject are on the CSC213 Computer Architecture page.

Put it into practice

Browse all subjects