1. Field of the Invention
The invention relates, generally, to the operation of digital computers, and, more particularly, to apparatus and methods comprising a general purpose computer designed to support the process of interpreting machine instructions according to the operational state of one or more machine elements.
2. Description of the Prior Art
A data processing system usually includes a processor unit which executes instructions that are stored in a memory. These instructions are transferred to the processor unit sequentially under the control of a program counter. The processor must interpret each instruction that is passed to it, and direct the machine through a series of operations which correspond to executing the instruction.
According to the prior art, the interpretation of machine language programs is typically performed by a microprogrammed processor. The concept of microprogramming for performing interpretation is well known to those skilled in the digital processing field. However, for purposes of clarity and comparison, a brief explanation of microprogramming will first be presented.
In the early 1950's M. V. Wilkes proposed a computer which would have a variable instruction set. See "The Best Way To Design An Automatic Calculating Machine," Manchester University Inaugural Conference, July, 1951, pp. 16-18. Normally, a fixed set of instructions is available to the programmer, each instruction being made up of a succession of processing steps. The implementation of these steps constitutes the design of most of the machines. However, Wilkes proposed to replace rigid hardwired processing steps with a flexible means by which a programmer could assemble so-called "micro operations" into any instruction. A micro operation is a low-level instruction which, when executed, results in a processing step. Micro operations may be utilized to alter the instruction repertoire of a machine as the applications thereof vary from day to day. This was the origin of the idea of microprogramming.
Microprogramming provides a powerful means of controlling the hardware resources of a machine during each machine cycle. In particular, microprograms allow close control of hardware (register level) data manipulation. However, microprogrammed computers are typically not suitable for general purpose interpretation, i.e., interpretation of arbitrary machine languages or instructions. This is because micro operations are defined in terms of hardware structure and have heretofore been devoid of language structure constructs. Actually, the primary function of microprogrammed processors, i.e., interpretation of machine language instructions, is done indirectly, that is to say with more attention being paid to hardware resources than the language or instruction structure constructs (e.g. grammar).
A number of prior art patents are known which relate to the interaction of language or instruction structure and the hardware or machine elements.
U.S. Pat. No. 3,593,312 describes a processor using a stack which stores an information word which has, as a part thereof, a tag which identifies whether the corresponding information unit contains an extension word. The patent describes means for processing a word stored in a register and means responsive to a tag for automatically processing the extension word thereof.
U.S. Pat. No. 3,938,103 describes a microprogrammed processor which implements a high-level language processor. Hardware comprising the high-level language processor is provided to support the interpretation process. Programming is done in terms of constructs such as character extraction and stack manipulation.
U.S. Pat. No. 3,990,052 describes a microprogrammed processor which provides capabilities for computer instruction skips by direct connection of selected bits of the memory bus, or by testing selected bits of the instruction register.
Prior to the present invention there has not been a single technique of interpreting instructions based upon the operational state of one or more machine elements. More particularly, there has not been a microprogrammed processor for handling microprogram subroutines in a simple and efficient manner.