Definition
A method of implementing machine-instruction control logic through sequences of microinstructions held in a control store.
What it is
Microprogramming breaks machine instructions into smaller micro-operations and places the control words that govern them in a control store. After fetching microinstructions, the CPU successively drives registers, the ALU, buses, and memory to complete a machine instruction.
Why it emerged and what problems it solved
Hardwired controllers for complex instruction sets could grow unwieldy and be difficult to modify. Microprogramming expresses control logic as structured sequences, allowing engineers to reuse a datapath by changing the contents of the control store.
Why it matters and what it enabled
It separates the processor’s visible instructions from the internal implementation of control, reducing CPU design complexity. A microprogram is not itself a microprocessor, but it demonstrates how increasingly complex processor functions can be mapped onto limited chip resources.
Principles and impact
Problems solved
- Reduced the complexity of hardwired logic in controllers for complex instruction sets.
- Allowed machine-instruction behavior to be adjusted or extended by modifying control-store contents.
Principles
- A machine instruction is decoded into multiple micro-operations, such as register transfers, ALU operations, and memory accesses.
- Microprograms are held in a control store and fetched in sequence by a microprogram counter according to the required timing.
Improvements
- Replaced large amounts of scattered combinational logic with regular control words.
- Made it easier for different machine models to reuse or adapt implementations of similar instruction sets.
Significance
- Connected the CPU instruction-set abstraction with specific gate-level control circuits.
- Provided a manageable approach to implementing control in early processors and microprocessors.
History and applications
People
Maurice Wilkes、Ted Hoff
Organizations
University of Cambridge、Intel
Events
Wilkes proposed the idea of microprogrammed control in 1951、Microprogramming was used in controllers for various processors in the 1970s
Applications
CPU control units、Compatible instruction-set implementations、Early microprocessors and peripheral processors
Limitations
- Requires an additional control store and may increase the execution cycles per instruction.
- Microprogram errors can affect the entire instruction set, making verification and version management important.
Upstream and downstream relations
Upstream
No direct upstream relations recorded
Downstream
Sources: Intel's Microprocessor