C:\BELLBOOK\P001-100\HTMFILES\CSP0167.HTM (original) (raw)
Section 1
Microprogram-Based Processors
Microprogramming
Microprogramming is a form of emulation wherein one ISP is used to interpret a target ISP. The microprogramming ISP is usually kept more primitive than the target ISP in order to maintain an acceptable level of performance. Microprogramming can also be viewed as a technique that imposes an interpreter between the hardware and the target ISP. Since a microprogrammed ISP is similar to a conventional ISP that interprets macro- level programs, all the principles and techniques of ISP design apply. Increased performance, for example, is brought about by adding to the number of data-types (via hardwiring).
Conceptually, a computer can be divided into a data part and a control part. The data part is composed of registers, functional units, and interconnecting paths. The control part translates machine language instructions into an ordered sequence of control signals that manipulate the data part in order to realize the machine language instruction. A microprogrammed control part uses a stored program to generate the necessary control signals.
Figure 1 depicts a canonical microsequencer. Microinstructions are fetched from a microstore. Each microinstruction contains a set of bits for controlling the data path as well as information about where the next microinstruction is stored, which may vary according to the status of a portion of the data part. This sequencing of microinstructions provides the required sequencing of data-path functions. Microprogramming has many of the essential ingredients of programming, including branching, loops, and subroutines. However, microprogramming makes several concessions to hardware in order to achieve high performance. These concessions tie the microcode very closely to the hardware, thus increasing the complexity of microcoding over regular programming.
There are several advantages to using microprogramming to implement an ISP.
- Regularity. Microprogramming permits an orderly approach to control design. The microprogram is easy to debug and maintain. It makes the control easy to check via coding techniques (e.g., parity and Hamming code).
- Flexibility and tailorability. Microprogramming makes it possible to postpone detailed design decisions. New features can be added easily.
- Emulation. It allows interpreting other ISPs.
- Extensibility. An implementation can have its useful life extended by the addition of new features (e.g., new instructions to increase functionality, portions of operating-system code to increase performance).
- Cost-effectiveness. Microprogramming can implement complex ISPs. All these advantages do not come free. There are some disadvantages:
- Cost. There is a fixed overhead for microcoded control, which consists of the microsequencer and minimum micro-store. Very simple ISPs are best implemented directly in hardware, since their complexity does not warrant the cost overhead of a microsequencer. The actual breakpoint between hardwired and microprogrammed control depends on the semantic content of the ISP and the relative technology cost of the two implementation approaches.
- Performance. A hardwired design will be faster than a microprogrammed design built from the same technology, since the former does not have the overhead of fetching and decoding of microinstructions. With the current state of technology providing dense (i.e., with
151