Microprogram controller

from Wikipedia, the free encyclopedia

A microprogram controller is that part of a microprogrammed processor that controls the execution of an instruction in the processor. The control unit has access to microprograms that are stored in a memory. The microprograms control the interaction of processor units such as the ALU or the registers . With some processors, the microprograms can also be changed subsequently by means of microcode programming . Microprograms can also be seen as firmware of the CPU.

functionality

Machine codes must be converted into control signals for the individual functional units in a processor using so-called micro - commands . Under certain circumstances, several consecutive processing steps must be triggered in order to implement the function of the machine code in the form of a micro-instruction sequence.

Let us take as an example the command ADD A, B of a fictitious processor, which is to add the contents of registers A and B and write the result back to register A. The following control sequence could run in the processor:

  1. The ALU is configured for an addition.
  2. The content of register A is applied to the first input of the ALU.
  3. The content of register B is applied to the second input of the ALU.
  4. After the processing time for reading out registers A and B and the time required for performing the addition in the ALU, the result is stored in an intermediate register.
  5. The content of register A is overwritten with the value from the intermediate register.
  6. The next command is read from memory.

It would be conceivable to let steps (1, 2, 3) and (5, 6) run together in one time interval.

In order to control this process, it is possible to set up a logic that takes this control directly. The disadvantage of this “fixed wiring” of the commands is the complexity of the logic required and the lack of flexibility when changes are required.

In the case of microprogramming , such a sequence control is implemented via the microprograms stored in a memory . The machine code activates one of the microprograms, which then generates all the necessary control signals for the functional units in several steps. In the simplest case, the microprogram control unit is made up of an instruction register that contains the machine code that has just been executed, a counter for the microprogram steps and a memory that contains the individual steps. The command register and the counter together then result in the address for the microprogram memory. However, more complex microprogram control units are also possible that can execute jump instructions and branches in order to enable more complex instructions. The importance of a microprogram control unit as a control unit for the control of a virtual arithmetic unit is conveyed in a didactic way with the microcode simulator MikroSim .

development

Early processors were typically built with hard-wired logic; later, more and more microprogram control units were used. This development took place in mainframe computers as it did later in microprocessors . With the development towards ever higher clock frequencies and RISC processors, however, the trend then went back to hard-wired logic. Current processors often use a hybrid form in which frequently used instructions or instruction parts are executed with hard-wired logic, and complex or not so time-critical instructions in whole or in part with microcode.

Some processors can also change their micro-programming dynamically (ie during operation) themselves, for example to allow a different instruction set or to optimize execution . In some cases, part of the microcode that is firmly anchored in a processor can be permanently replaced by reloaded microcode, for example to compensate for errors in the processor or to implement new instructions.

Microprogram controllers are a form of programmable logic controller . Their use is not limited to processors.

literature

  • R. Hoffmann: Computer design: arithmetic units, micro-programming, RISC. 3. Edition. Oldenbourg, Munich 1993, ISBN 3-486-22174-4 (especially Chapter 5: Microprogramming).
  • HP Gumm, M. Sommer: Introduction to Computer Science . 8th edition. Oldenbourg, 2009, ISBN 978-3-486-58724-1 .
  • K. Wüst: Microprocessor technology: Fundamentals, architectures and programming of microprocessors, microcontrollers and signal processors . 3. Edition. Vieweg + Teubner Verlag, 2008, ISBN 978-3-8348-0461-7 .
  • H. Bähring: Mikrorechner-Technik, Volume 1, Microprocessors and Digital Signal Processors . 3. Edition. Springer, 2002, ISBN 3-540-41648-X .
  • H. Bähring: Microcomputer technology, Volume 2, buses, memories, peripherals and microcontrollers . 3. Edition. Springer, 2002, ISBN 3-540-43693-6 .
  • Bringschulte, Ungerer: Microcontrollers and microprocessors . Springer, 2002, ISBN 3-540-43095-4 .
  • R. Kelch: Computer basics - from binary logic to switching mechanism . Fachbuchverlag Leipzig, 2003, ISBN 3-446-22112-3 .
  • R. Kelch: Computer Basics - From Arithmetic Unit to Universal Computer . Fachbuchverlag Leipzig, 2003, ISBN 3-446-22113-1 .
  • Ch. Märtin: Introduction to Computer Architecture - Processors and Systems . Fachbuchverlag Leipzig, 2003, ISBN 3-446-22242-1 .

Web links