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:
| Type | What it does | Example in RTL |
|---|---|---|
| Register transfer | Copies binary information from one register to another | $R2 \leftarrow R1$ |
| Arithmetic | Arithmetic on numbers in registers | $R3 \leftarrow R1 + R2$, $R1 \leftarrow R1 + 1$ |
| Logic | Bit-wise operations on register contents | $R3 \leftarrow R1 \wedge R2$, $R1 \leftarrow \overline{R1}$ |
| Shift | Moves 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:
| Block | Role |
|---|---|
| Instruction register (IR) | Holds the current instruction; the opcode field goes to the decoder |
| Instruction decoder | Turns the opcode into one active line per instruction, for example $D_0$ to $D_7$ |
| Sequence counter (SC) with timing decoder | Generates the timing signals $T_0, T_1, T_2, \dots$ that step through the clock periods |
| Control logic gates | Combine the decoded instruction, timing signals, flags and status bits to produce the control outputs |
| Control outputs | LD, 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:
| Block | Role |
|---|---|
| Control memory | ROM 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 logic | Converts 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
| Point | Hardwired | Microprogrammed |
|---|---|---|
| Control signals come from | Decoders, gates and sequence counter | Microinstructions stored in control memory |
| Speed | Faster, only gate delays | Slower, a memory read for each microinstruction |
| Flexibility | Hard to change, needs redesign | Easy to change, edit the microprogram |
| Design effort | Complex for large instruction sets | Systematic and simple |
| Cost and area | Cheaper for simple machines | Needs control memory, costlier for small machines |
| Instruction set size | Suits small, simple (RISC style) sets | Suits large, complex (CISC style) sets |
| Adding an instruction | Rewire the logic | Add a microprogram |
| Error correction | Difficult | Easier, rewrite the microcode |
| Examples | Many RISC processors | Many 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 subjectsMore articles
Study guide
2D Geometric Transformation in Computer Graphics: Matrices and a Solved Numerical
2026-10-24
Study guide
6 Advantages of Cloud Computing, Availability and Programming Models: Exam Guide
2026-10-24
Study guide
Common Bus System in Computer Architecture with Diagram: Registers, Selection Table, Answer
2026-10-24
Study guide
Exception Handling in C++: try, catch, throw, Rethrow with Traced Examples and new/delete
2026-10-24
Study guide
Data Transfer Instructions in Computer Architecture: Mnemonic Tables, Types and Example
2026-10-24
Study guide
Definition of Constitution by Different Scholars and Government Power Distribution in Nepal 2015
2026-10-24