Skip to main content


microprogramming A method of accomplishing the control unit function by describing the steps in that function as a sequence of register-transfer level operations that are much more elementary than instructions. In this method of designing and building a control unit, an additional memory, commonly called a microprogram store, contains a sequence of microinstructions. A number of microinstructions will be required to carry out an ordinary machine instruction, thus the microprogram store should be faster – have a shorter cycle time – than the normal fast memory.

Microinstructions are usually classified as either horizontal or vertical. In a horizontal microinstruction most of the bit positions have a one-to-one correspondence with specific control functions. Horizontal microinstructions provide explicit control of functions at particular points within the CPU. For example, a particular bit in the microinstruction would call for a specific register to be cleared at a specific clock time. A vertical microinstruction generally contains highly coded fields describing elementary operations to be performed by certain elements of the control unit and ALU, and the sources and destinations of information passing between these units. In such a microinstruction, a field, say of three bits, might be decoded to indicate which of eight registers is to be one source of an operation to be performed in an ALU. Other fields would define the operation and any other necessary sources. Horizontal microinstructions will in general contain more bits, or be wider, hence the word horizontal. Vertical microinstructions, although containing fewer bits, require more decoding.

Some microprogrammed control units go through two levels of microprogramming. The first level consists of addresses of horizontal microinstructions. The second level is the used or useful subset of all horizontal microinstructions. This provides for more efficient use of a horizontal microprogram memory at the expense of two memory references per microinstruction execution. In this form of microprogramming the first memory has been called the microprogram store and the second memory has been called the nanostore.

The control units of most CISC processors are microprogrammed. This permits a more orderly and flexible approach to control unit design and permits changes in a control unit by changing the memory contents. Most microprogram stores are made with ROM. These memories are generally faster and are potentially less prone to errors. Other microprogram stores, usually called writeable control stores (WCS), are made with RAM. These provide greater ease of change of control unit function; in some cases users are permitted or encouraged to “build” specialized instructions. Some microprogrammed control units have a mixture of ROM and RAM microprogram stores. These permit special microprograms to be loaded for maintenance and diagnostic purposes.

Manufacturers of supercomputers have not, in general, employed microprogramming because they have been prepared to accept the higher complexity of hardwired control for the sake of ultimate performance. The simpler designs of current RISC processors have also opted for hardwired techniques to optimize instruction-execution rates of their simple instruction sets.

Cite this article
Pick a style below, and copy the text for your bibliography.

  • MLA
  • Chicago
  • APA

"microprogramming." A Dictionary of Computing. . 20 Feb. 2019 <>.

"microprogramming." A Dictionary of Computing. . (February 20, 2019).

"microprogramming." A Dictionary of Computing. . Retrieved February 20, 2019 from

Learn more about citation styles

Citation styles gives you the ability to cite reference entries and articles according to common styles from the Modern Language Association (MLA), The Chicago Manual of Style, and the American Psychological Association (APA).

Within the “Cite this article” tool, pick a style to see how all available information looks when formatted according to that style. Then, copy and paste the text into your bibliography or works cited list.

Because each style has its own formatting nuances that evolve over time and not all information is available for every reference entry or article, cannot guarantee each citation it generates. Therefore, it’s best to use citations as a starting point before checking the style against your school or publication’s requirements and the most-recent information available at these sites:

Modern Language Association

The Chicago Manual of Style

American Psychological Association

  • Most online reference entries and articles do not have page numbers. Therefore, that information is unavailable for most content. However, the date of retrieval is often important. Refer to each style’s convention regarding the best way to format page numbers and retrieval dates.
  • In addition to the MLA, Chicago, and APA styles, your school, university, publication, or institution may have its own requirements for citations. Therefore, be sure to refer to those guidelines when editing your bibliography or works cited list.