[Abstract]
[Overview]
[New Technologies]
[Bibliography]
Overview of Microprogramming
Background
Early computer scientists faced several limitations which impeded the unadulterated practice of their art. Programs were written in low-level languages and available storage space was small. For these reasons, it was in the computer scientist's best interest to have powerful low-level instructions--powerful instructions are easier to program with and take up less space in memory. However, more powerful instructions required more complex hardware interpreters which were large and unwieldy.
Microprogramming was proposed by Maurice V. Wilkes in 1951 as an alternative to these complex interpreters. His idea was to implement a hardwired program which would fetch the next instruction from the main program, decode the instruction, and perform the necessary hardware manipulations to execute the instruction. This greatly simplified the design of the control path. The microprogram could be stored in a memory array--the control store--on the CPU, and could be designed with more or less ordinary programming techniques, then later translated into a design of wires and gates.