Microcode: Difference between revisions

Content deleted Content added
mNo edit summary
m wikified
Line 1:
A '''microprogram''' is a program consisting of '''microcode''' that controls the different parts of a computer's central processing unit ([[CPU]]). The [[memory]] in which it resides is called a [[control store]]. It is the modern form of the logic of a computer's [[control unit]].
 
Before 1955, the control logic for central processing units was designed by ''ad- hoc'' methods. One of the simplest was to use rings of [[flip-flop]]s to sequence the computer's control logic.
 
In [[1955]] [[Maurice Wilkes]] had a fundamental insight. He realized that if one takes the control signals for a computer, one could understand them as being played much like a [[player- piano]] roll. That is, they are controlled by a sequence of very wide words constructed of bits.
 
A microprogram provides the bits to control these. The fundamental advance is that CPU control becomes a specialized form of a computer program. It thus transforms a complex electronic design challenge (the control of a CPU) into a less-complex programming challenge.
Line 11:
A [[microsequencer]] picked the next word of the [[control store]]. A sequencer is mostly a counter, but usually also has some way to jump to a different part of the control store depending on some data, usually data from the [[instruction register]] and always some part of the control store. The simplest sequencer is just a register loaded from a few bits of the control store.
 
A [[register]] set is a fast memory containing the data of the central processing unit. It may include the program counter, stack pointer, and other numbers that are not easily accessible to the application programmer. Often the register set is triple-ported, that is, two reigstersregisters can be read, and a third written at the same time.
 
An [[arithmetic and logic unit]] performs calculations, usually addition, logical negation, a right shift, and logical AND. It often performs other functions, as well.
Line 71:
 
After the microprogram is finalized, and extensively tested, it is sometimes used as the input to a computer program that constructs logic to produce the same data.
This program is similar to those used to optimize a [[PLD|programmable logic array]].
No known computer program can produce optimal logic, but even pretty good logic can vastly reduce the number of transistors from the number required for a ROM control store.
This reduces the cost and power used by a CPU.