3. Principles of Microprogrammed Control
This section details the core theory of the microprogrammed control unit, the flexible alternative to the hardwired FSM. This approach fundamentally changes the design from a complex, fixed logic circuit to a simple, programmable one.
-
3.1 Core Concept: The "Computer-within-a-Computer"
- The most effective analogy for a microprogrammed control unit is that it is a "computer-within-a-computer." The main CPU (which has assembly instructions like
ADD,LDA,JMP) is the "outer" computer. The Control Unit itself is a tiny, hidden, "inner" computer. - This inner computer has its own simple program, called a microprogram. The microprogram is composed of a sequence of instructions called micro-instructions.
- The key relationship is this: One assembly instruction (like
LDA) is interpreted by the CU as a command to run a specific micro-routine (a "subroutine" of micro-instructions). The micro-routine is the step-by-step recipe that defines how to execute that single assembly instructior.
- The most effective analogy for a microprogrammed control unit is that it is a "computer-within-a-computer." The main CPU (which has assembly instructions like
-
3.2 Architectural Components
-
To function as a simple computer, the microprogrammed CU has its own set of internal hardware components, separate from the main datapath.
-
3.2.1 Control Store (or Control Memory):
- This is a small, high-speed Read-Only Memory (ROM) that is located inside the Control Unit.
- Its sole purpose is to store the entire microprogram—that is, all the micro-routines for every assembly instruction in the CPU's instruction set (e.g., the routines for
LDA,STA,ADD,JMP, etc.).
-
3.2.2 Micro-Sequencer (Next Address Logic):
- This is the "Program Counter" for the Control Unit (often called a
uPCor "micro-Program Counter"). - Its job is to determine the address of the next micro-instruction to be fetched from the Control Store.
- It decides this address based on several inputs: the main instruction's
opcode(for the initial "decode" jump), CPU status flags (for conditional branches likeJEQ), and sequencing fields from the current micro-instruction (e.g.,SEQ_NEXT,SEQ_FETCH).
- This is the "Program Counter" for the Control Unit (often called a
-
3.2.3 Micro-instruction Register (uIR):
- This is a register that holds the current micro-instruction that was just fetched from the Control Store.
- This is the most critical component for execution: the output bits of this register are the actual control signals that are sent to the datapath.
- For example, a 16-bit
uIRmight directly output 16 control signals (likeRegister_Enable,ALU_Subtract,Memory_Write, etc.) to the rest of the CPU.
-

No comments to display
No comments to display