Background of the Invention
The present invention relates to processors with microcoded instruction sets and, more particularly, to instruction sets which provide for processor operations in which not all the bits of an instruction word are required.
In the organization of a typical computer processor, as shown in FIG. 1, the instructions which are to be executed are stored in a memory block 10. In such an organization, the instruction signals address the locations in a ROM which contains microinstruction signals which are the basis for the control signals in the processor. Thus the processor has a ROM-address register block 17 as shown in FIG. 1. A micro-address register 13 holds the address of a memory location in the ROM 15. The register 13 is connected to the output terminals of a multiplexer 12, which selects address signals from an instruction register block 11 and an incrementor 14. The incrementor 14 increments the address held in the register 13 for sequential addressing of the microinstructions in the ROM.
Fed by the memory block 10, the instruction register block 11 holds instructions which are to be executed or immediate data (or address) and control signals which are to be sent directly to a control decode block 16. The control decode block 16 receives the microinstruction signals from the ROM 15 or direct signals from the instruction register block 11 to generate and time the control signals for the processor.
However, most processors have sets of instructions of varying length and not all the bits in an instruction word are required for an operation. For example, in instruction sets having one-byte instructions with instruction words of two or more bytes, the second byte in the instruction word may not be needed for the execution of the first byte. This implies that much of the address space of the ROM 15 is wasted because the second byte of the instruction word in the register 13 is not required to address the selected microinstruction.
In many systems, as in computer mainframes, the waste of ROM space is not significant. However, in microprocessors the contrary may be true. Such a ROM can occupy a significant fraction of the surface area of the microprocessor semiconductor chip. A reduction in size of the ROM, and hence the overall chip, is desirable for various reasons. A smaller chip decreases the chances of defects in an individual chip during the manufacturing process. Costs are lowered. The units in the microprocessor are packed closer in a smaller chip and operating speeds are increased. Finally, the smaller chip follows the trend in microprocessor-based technology. Increased miniaturization results in lighter, smaller and more convenient computers.
The present invention is thus directed towards a more efficient implementation of an instruction set in which not all the bits in an instruction word are required to carry out an operation.
Summary of the Invention
In the case of a microprocessor processing instruction words of at least first and second bytes, the instruction words formed from a set of instructions which provide for operations in which a portion of the second byte may be required, the present invention provides for the microprocessor having registers for receiving and holding the first and second byte of instructions at a time, a first ROM connected to the register for decoding the first byte into control signals for operation of said microprocessor. One of these control signals is generated whenever the portion of the second instruction byte is required.
The microprocessor also has a second ROM connected to the register for decoding the portion of the second byte into control signals. Connected to said first and second ROMs is a multiplexer which selects the decoded second byte control signals for operation of the microprocessor responsive to the first ROM control signal.
In this manner the combined size of the first and second ROMs is much smaller compared to that of a ROM which decodes both bytes all the time.
Brief Description of the Drawings
A clear understanding of the present invention may be achieved by a perusal of the following Detailed Description of Specific Embodiment(s) with reference to the following drawings:
FIG. 1 is functional block diagram of a typical computer processor system which uses microcoded instruction sets.
FIG. 2 is a representational view of an instruction word.
FIG. 3 is a block diagram of the present invention.
Detailed Description of Specific Embodiments
An example of an instruction set which provides for processor operations in which not all the bits of an instruction word are required is the instruction set for the 8088/8086 microprocessors originally sold by Intel Corporation of Santa Clara, California. A word, both data and instruction, for these related microprocessors is 16 bits wide, a concatenation of two bytes. On the other hand, the complete instruction itself can be one to seven bytes long.
Generally speaking, the first byte specifies the microprocessor's operation. Bytes two to seven are used to specify addresses when required. To handle a large range of addresses, the 8088/8086 instruction set has a "mod r/m" (or "mode register/modifier") byte. This byte specifies how the addresses are to be treated and appears as the second byte in an instruction word.
However, unless the mod r/m byte appears, there is no need to decode the second byte. Hence the capacity of a large microcoded ROM, which decodes the instruction word into microinstruction control signals to carry out the operation specified in the microprocessor, sometimes is not used.
FIG. 2 represents an instruction word of an 8088/8086 microprocessor. The set of bits 0-7 form the first byte of instruction; bits 8-15 form the second byte. The first byte of the instruction typically carries the operation code for an instruction. The second byte of instruction may carry some operation code. However, except when the second byte is used to specify the addressing mode of the addresses in the bytes to follow, i.e., the second byte is a mod r/m byte, the bits of the second byte are not utilized in address determination.
For the mod r/m byte, bits 8 and 9 specify the addressing mode. Bits 13-15 specify the part of the memory which the following bits address. The bits 13-15 act as tag bits to the following address bits. When part of a mod r/m byte, the middle bits 10-12 address particular registers in the microprocessor. When not part of a mod r/m byte, the middle bits 10-12 help to completely specify the operation denoted by the first instruction byte.
These middle bits of the second byte of instruction do not need to be implemented by microinstructions. Hence these bit signals may bypass the microcoded ROM which nominally receives an instruction word to address the microinstructions to implement the operation called for by the instruction word. In the present invention these middle bits go directly to the control decode block of the microprocessor. As represented in FIG. 1, these middle bits travel on the signal path 19.
Thus all the bits of the first byte, and bits 8-9 and bits 13-15 of the second byte, thirteen bits in all, may address the microcoded ROM. If the ROM is implemented in typical fashion, a ROM of 2.sup.13 or 8192 address locations, is required to handle all the possible addresses of the instruction word.
The present invention notes that not all these address locations are required. Unless the second byte is a mod r/m byte, bits 8-9 and 13-15 of that byte are not required. The present invention also notes the described instruction set has a consistent bit field in the instruction words during operations requiring address specification. The first byte of instruction words continues to specify the operation to be performed even though the particular bits in the mod r/m and subsequent bytes vary. This consistency of the operation code field allows the instruction word to be split as described below to achieve the benefits of the present invention.
The present invention replaces the ROM-address register block 17 in a typical processor organization as shown in FIG. 1 and splits the instruction word signal path as shown in FIG. 3. Two signal paths are respectively provided for the first and second bytes of an instruction word. From the instruction register bank 11 in FIG. 1, the first byte travels on signal path 31 to a multiplexer 21. By a signal path 33 the multiplexer 21 feeds an address register 23 which receives and holds the first byte of an instruction word. The first byte in the register 23 by an output signal path 35 addresses a ROM 25 which holds the various microinstruction control signals.
As in the case of a conventionally organized processor, an incrementor 27 is connected to the output signal path 35 from the register 23 and feeds an incremented address back to the multiplexer 21 on a path 41. Responsive to control signals, the multiplexer 21 selects the incremented addresses for instructions requiring a string of microinstructions for execution before selecting the next instruction byte on the path 31.
In a similar manner, the second byte of the instruction word travels on a signal path 32 to a multiplexer 22, which feeds an address register 24 by a path 34. The second byte addresses a ROM 26 which holds the microinstruction control signals at the locations addressed by the second byte on a path 36. For sequential microinstruction operations, an incrementor 28 receives the second byte addresses by a path 38 and feeds the incremented addresses back on a path 42 to the multiplexer 22.
The microinstruction control signals from the ROM 25 addressed by the first byte is split into two signal paths 47 and 43. The signal path 47 goes directly to the control block 16 of FIG. 1. This path carries signals which are always used by the microprocessor. The signal path 43, on the other hand, leads to one set of input terminals of a multiplexer 30, which has its output terminals connected to the control block 16 by a signal path 50.
The microinstruction control signals from the ROM 26 travel on a path 44 to a second set of input terminals of the multiplexer 30. The selection of which set of input terminals to connect to the signal path 50 is determined by a control signal on a line 40 from a control decode block 29. The block 29 is connected to an output line 45 from the ROM 25 and an output line 46 from the ROM 26. The block 29 generates the control signal on the line 40 to select which signals on the paths 43 and 44 are to be sent to the control and decode block 16.
In operation, the block 29 nominally generates a signal so that the microinstruction control signals from the ROM 25 are sent to the block 16. When the first byte in the instruction word is followed by a mod r/m byte, the first byte generates a signal on the line 45 through the ROM 25 to select the signals on the path 44, rather than on the path 43. The signals on the path 44 prepares the control decode block 16 to receive the addresses in the bytes to follow. After the address bytes have been passed to the control and decode block 16 (on the by-pass signal path 19 shown in FIG. 1), the mod r/m byte signals through the line 46 that the flow of microinstruction control signals from the ROM 25 should be resumed. The next instruction word is then passed into the address registers 23 and 24.
For the particular embodiment described with respect to the 8088/8086 instruction set, this arrangement results in ROMs of only (2.sup.8 =256 plus 2.sup.5 =64) 320 address locations. This number, compared to 8192, illustrates the savings in ROM area which is achieved through the present invention.
It should be noted that the present invention is applicable beyond the 8088/8086 instruction set. When all the bits of an instruction word are not required to carry out an operation in a microprocessor, the present invention may used to achieve a more efficient implementation.
Thus, while the description above provides a full and complete disclosure of the preferred embodiments of the present invention, various modifications, alternate constructions and equivalents may be employed without departing from the true scope and spirit of the invention. Therefore, the present invention should be limited only by the metes and bounds of the appended claims.