Electrical computers and digital processing systems: processing – Instruction decoding – Decoding instruction to accommodate variable length...
Reexamination Certificate
1999-04-20
2001-10-23
Pan, Daniel H. (Department: 2783)
Electrical computers and digital processing systems: processing
Instruction decoding
Decoding instruction to accommodate variable length...
C712S204000, C712S213000, C711S213000, C711S209000
Reexamination Certificate
active
06308257
ABSTRACT:
FIELD OF THE INVENTION
The present invention pertains generally to the field of computer systems and more particularly to methods and apparatus for generating boundary markers that allow a processor to identify boundaries between variable-length instructions in an instruction stream to be decoded.
BACKGROUND OF THE INVENTION
Processors (including, but not limited to, general and special purpose microprocessors, micro-controllers and Digital Signal Processors (DSPs)) typically include execution units that execute of sequence of instructions, termed micro-instructions, derived from a computer program. Many computer programs are written in a high-level language that is not directly executable by the central processing unit (CPU) of a computer and the instructions of such programs must accordingly be decoded into a form suitable for execution by the CPU. For example, a program may be written in a high-level language such as C, C++ or Java, and then complied into a corresponding sequence of macro-instructions, which are in turn decoded into micro-instructions for eventual execution. Programs can of course be written directly as a series of macro-instructions (i.e., machine code).
Macro-instructions are commonly stored as contiguous data blocks in a memory resource, such as main memory (e.g., RAM) or in a cache, for retrieval and supply to a decoder unit within a processor for decoding into micro-instructions. To enable the decoder unit successfully to decode macro-instructions, it will be appreciated that is necessary to identify instruction boundaries within retrieved data blocks, that constitute the instruction stream, that indicate where one macro-instruction ends and the next begins.
The task of identifying such instruction boundaries by processors having Complex Instruction Set Computer (CISC) architectures, such as the Intel Architecture (IA) developed by Intel Corporation of Santa Clara, Calif., is complicated by the use of a variable-length instruction set (e.g., the Intel Architecture (IA) instruction set). Specifically, in Reduced Instruction Set Computer (RISC) processor architectures and instruction sets, macro-instructions typically have a fixed length, in which case the boundaries between instructions can be determined with relative ease once an initial boundary is identified, as each instruction has a known length. For a variable-length instruction set, once an initial boundary location is identified, the length of each macro-instruction must be ascertained to identify subsequent instruction boundaries. The task of identifying boundaries is further complicated by a variable-length instruction set that, for the purposes of supporting legacy programs, supports multiple data and addressing sizes. For example, this capability is achieved in the IA instruction set by the use of length-changing prefixes that alter the address and operand sizes (or lengths) of instructions from 16 to 32 bits, and vice versa.
SUMMARY OF THE INVENTION
According to the present invention, there is provided a method of generating boundary markers for an instruction stream including variable-length instructions. A plurality of sets of potential boundary markers are generated for a predetermined set of bytes within the instruction stream, each set of potential boundary markers being generated based on a respective assumption regarding a boundary byte position within the predetermined set of bytes. A set of boundary markers, from the plurality of sets of potential boundary markers, is selected as a valid set of boundary markers.
Other features of the present invention will be apparent from the accompanying drawings and from the detailed description that follows.
REFERENCES:
patent: 3602901 (1971-08-01), Jen
patent: 5450605 (1995-09-01), Grochowski
patent: 5452101 (1995-09-01), Keith
patent: 5535347 (1996-07-01), Grochowski et al.
patent: 5537629 (1996-07-01), Brown et al.
patent: 5586276 (1996-12-01), Grochowski
patent: 5586277 (1996-12-01), Brown et al.
patent: 5740392 (1998-04-01), Brennan
patent: 5758116 (1998-05-01), Lee et al.
patent: 5778246 (1998-07-01), Brennan
patent: 5821887 (1988-10-01), Zhu
patent: 5822555 (1988-10-01), Brown et al.
Diep Ken V.
Dukes James W.
Theogarajan Luke S. K.
Blakely , Sokoloff, Taylor & Zafman LLP
Intel Corporation
Pan Daniel H.
LandOfFree
Method and apparatus for generating boundary markers for an... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for generating boundary markers for an..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for generating boundary markers for an... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2604743