|
|
|
|
|
|
|
Figure 1.7
Examples of microinstructions. |
|
|
|
|
|
|
|
|
Whether the decoder that manages interpretation is microprogrammed or directly decoded involves subtle tradeoffs in the host machine design. Direct decoders (Figure 1.6a) are designed by using combinatorial logic (usually PLAs) to represent the various desired control point actions. The logical inputs come from the opcode (the type of instructions to be performed), the sequence counter (a small counter to keep track of which cycle within an instruction's execution is being activated), and some test information from the data registers (e.g., sign of a value) to correctly set the next control action. |
|
|
|
|
|
|
|
|
Microprogrammed decoders (Figure 1.6b) are designed using ROM (read only memory), sometimes complemented with RAM (read/write random access memory). The opcode provides an initial address to an entry (microinstruction), which specifies the control point values as well as the expected address of the next microinstruction. During the process of instruction execution, the next microinstruction address may be modified by test information. |
|
|
|
|
|
|
|
|
In microprogrammed machines [291, 305], the microinstruction defines the control point values required throughout the system as well as controls the sequencing of the interpretation of an operation. Sequencing can be performed either in-line or with the explicit address of the next microinstruction in the sequence. Microinstruction formats typically explicitly include the next microinstruction address. In most machines, the control points are encoded in some fashion in microinstruction representation, making more efficient use of the microprogram storage. Some designs highly encode the control point actions so that only a few actions may be activated in a particular cycle. This type of microinstruction is referred to as a vertical microinstruction (Figure 1.7a) and requires an additional decoder to process the encoded control point information. In contrast, other designs partition control point actions into many different classes, any of which can be activated within any given cycle. This type of microinstruction is referred to as a horizontal microinstruction (Figure 1.7b). |
|
|
|
|
|
|
|
|
Table 1.2 provides a qualitative comparison between the two approaches. Direct decoders are usually fast and small, but may complicate the design process, especially for certain operating system functions (security, con- |
|
|
|
|
|