Microprogrammed Control
Microprogrammed Control Basics
• Definition:
In microprogrammed control, the control unit
uses a control memory that stores a set of
microinstructions. These microinstructions
generate the control signals for instruction
execution.
• Microprogram vs Machine Program:
– Machine Program: Sequence of machine instructions
executed by CPU (visible to programmer).
– Microprogram: Sequence of microinstructions (stored
in control memory) that implement each machine
instruction.
• Control Memory Architecture:
– Contains control memory (ROM or RAM).
– Address register (CAR: Control Address Register) holds
microinstruction address.
– Control data register (CDR: Control Data Register) stores
the current microinstruction.
– Microinstruction fields decoded into control signals.
• Microinstruction Execution Cycle:
– Fetch microinstruction from control memory (CAR →
memory → CDR).
– Decode fields into control signals.
– Generate signals for datapath (ALU, registers, memory).
– Determine next microinstruction address (sequential or
branch).
– Repeat until the machine instruction completes.
• Microinstruction Design
Horizontal vs Vertical Encoding:
– Horizontal Encoding:
• One bit for each control signal.
• Very wide microinstructions (long word length).
• Fast execution (signals available directly).
• Low decoding hardware.
– Vertical Encoding:
• Encoded fields specify groups of signals (require
decoding).
• Shorter microinstruction length.
• Slower due to extra decoding.
• Saves memory space.
Format Design Principles:
– Each microinstruction contains:
• Control signal fields (ALU, memory, register control).
• Next address field (for sequencing).
• Branch/control field (sequential, conditional, or
jump).
– Must balance word length vs speed.
3. Minimizing Microinstruction Size
Field Encoding Techniques:
– Divide control signals into mutually exclusive groups
(e.g., only one memory signal active at a time).
– Use fields instead of separate bits to reduce width.
– Example: instead of 5 signals for registers, use a 3-bit
field to select which register is active.
Optimization Methods:
– Sharing fields across microinstructions.
– Use of micro-subroutines (reusable sequences).
– Next-address optimization (branch maps, mapping functions).
– Nanoprogramming: 2-level control memory (microinstructions
+ nanoinstructions) to reduce memory size further.
4. Applications
Multiplier Control Unit Example:
– Complex operations like multiplication require multiple steps.
– Microprogrammed control sequences microinstructions:
• Load operands.
• Perform partial product addition.
• Shift registers.
• Repeat until complete.
– Easy to implement and modify compared to a hardwired
design.
Microprogrammed CPU Control Unit:
– Each machine instruction (ADD, SUB, LOAD,
BRANCH, etc.) corresponds to a microprogram.
– Control unit steps:
• Fetch machine instruction (uses microprogram
sequence).
• Decode & branch to corresponding microprogram start
address.
• Execute microinstructions step by step.
• Return to fetch next instruction.
– Advantages:
• Flexibility (easy to modify/add instructions).
• Easier to implement CISC architectures with complex
instructions.
• Can support emulation of other ISAs.
Hardwired Control vs
Microprogrammed Control
Features Hardwired Control Microprogrammed Control
Basic Principle Control signals generated Control signals are
by fixed logic circuits generated by
(combinational & microinstructions stored in
sequential). control memory.
Implementation Uses gates, decoders, Uses control memory
flip-flops, and counters. (ROM/RAM), Control
Address Register (CAR),
Control Data Register
(CDR).
Flexibility Difficult to modify or Easy to modify (just change
update. the microprogram).
Speed Very fast (direct signal Slower due to the memory
generation). fetch of microinstructions.
Complex Not suitable for complex Suitable for complex
Instruction CISC instructions. instructions (CISC).
Support
Design Complex to design and Simpler and more
Complexity debug. systematic (like writing a
program).
Cost Less hardware is required Requires more memory
for simple ISAs. (control memory).
Best Use Case RISC processors are simple CISC processors,
real-time CPUs. emulators, and flexible
systems.
Examples Early RISC machines were x86 family (Intel, AMD),
small microcontrollers. VAX, IBM 360.
Instruction Needs redesign of Modify microcode in
Modification hardware logic. control memory.