from Wikipedia, the free encyclopedia

As a microprogramming method, and the procedure is understood, switching, processing and control operations in an arithmetic unit , in particular an integrated calculating unit ( microcontroller , microprocessor ), below the design level of machine instructions set on microinstruction level and regulate. Microprogramming can be understood as the creation of a microinstruction set as a sequence of microinstruction sequences in a kind of control language for switches. Occasionally, the term microcode programming or microcode programming is used to create what is known as microcode Emphasized in microprogramming, which is the binary form of the microinstruction set.

The microcode programmability of an arithmetic logic unit is linked to the presence of a microprogram control unit adapted to this, which is controlled by the clockwise sequence of the microcode command sequence. The possibility of a flexibly programmable sequence control of microinstructions presupposes that in each microinstruction (engl. Micro Instruction ) itself a calculation rule for reference, i. H. Addressing on the next microinstruction to be controlled is included.

Usually, a machine language instruction set of a processor is specified during production (e.g. for reasons of compatibility) and cannot be changed. The micro-instruction set (microcode for short) forming the machine code is housed in a read-only memory such as EPROM or ROM inside or outside the arithmetic unit and is possibly loaded into the microprogram control unit when the arithmetic unit is initialized . In order to optimize circuit sequences, possibilities are nevertheless provided and precautions are taken so that a microcode can be corrected, improved or adapted in order to avoid costly new designs in the sense of a microcode bug fix . In the early days of the microprocessor era, the possibility of flexible microcode programming was inevitable and desired in order to prevent individual implementation errors that led to a new component being designed. With the advances in the verification and integrability of digital circuits, the aspect of reprogrammability seemed to lose importance for some time.

Nevertheless, interest in reprogrammability has seen a resurgence over the past few years. Microprocessors from Intel, starting with the Pentium Pro (P6) model, can be reprogrammed in microcode. The calculation error known as the FDIV bug on some of the Intel Pentium P5 processors, on the other hand, could not be remedied by microcode programming, but only by replacing the processor. With the microcode programming, the possibility exists calculation control works using microcode - Updates to optimize for specific operating systems.

The procedure for programming in the sense of compiling the micro-commands to form a micro-program is called microcoding in the English-speaking world . In this case, programming tools are used, as microassembler (engl. Micro Assembler ) are referred to. With these tools it is possible to manage micro-instruction sequences in a clear manner and to translate them into binary code. The learning software microcode simulator MikroSim conveys in a didactic way the meaning and the practical procedure for the microprogramming of a virtual computing unit.

The concept was introduced in 1951 by Maurice Wilkes .


  • HP Gumm, M. Sommer: Introduction to Computer Science . Oldenbourg, 8th edition, 2009, ISBN 978-3-486-58724-1 .
  • K. Wüst: Microprocessor technology: Fundamentals, architectures and programming of microprocessors, microcontrollers and signal processors . Vieweg + Teubner Verlag, 3rd edition, 2008, ISBN 978-3-834-80461-7 .
  • H. Bähring: Mikrorechner-Technik, Volume 1, Microprocessors and Digital Signal Processors . Springer, 3rd edition, 2002, ISBN 3-540-41648-x .
  • H. Bähring: Microcomputer technology, Volume 2, buses, memories, peripherals and microcontrollers . Springer, 3rd edition, 2002, ISBN 3-540-43693-6 .
  • Bringschulte, Ungerer: Microcontrollers and microprocessors . Springer, 2002, ISBN 3-540-43095-4 .

Web links

Individual evidence

  1. ^ MV Wilkes The Best Way to Design an Automated Calculating Machine , Manchester University Computer Inaugural Conf., 1951, pp. 16-18, reprinted in Wilkes The Genesis of Microprogramming , IEEE Annals of the History of Computing, Volume 8, 1986, p 116-126. Further detailed in Wilkes, JB Stringer Microprogramming and the Design of the Control Circuits in an Electronic Digital Computer , Proceedings of the Cambridge Philosophical Society, Volume 49, 1953, pp. 230-238