Electrical computers and digital processing systems: processing – Processing control – Arithmetic operation instruction processing
Reexamination Certificate
2000-02-18
2004-10-19
Chan, Eddie (Department: 2183)
Electrical computers and digital processing systems: processing
Processing control
Arithmetic operation instruction processing
Reexamination Certificate
active
06807625
ABSTRACT:
TECHNICAL FIELD
The invention relates to generating flags. More particularly, the invention relates to methods and apparatus for emulating arithmetic status flags specified in an IA-32 ISA on an IA-64 Machine.
BACKGROUND ART
Many of today's highest performance computers implement a Reduced Instruction Set Computer (RISC) Instruction Set Architecture (ISA). A vast amount of today's software, however, is written for an IA-32ISA, a Complex Instruction Set Computer (CISC) architecture. In order to run the IA-32 software on a RISC machine, it is necessary for the RISC machine to emulate the instructions from the CISC ISA. This emulation is accomplished by converting each CISC macroinstruction into a sequence of one or more RISC microinstructions. To meet the performance requirements of emulation mode, it is necessary to convert often-executed macroinstructions into the shortest number of microinstructions as possible. An example of often-executed macroinstructions are add, subtract, and conditional branch. In the IA-32ISA, these instructions either produce or consume arithmetic flags (EFLAGS). Thus, the problem is how to efficiently emulate these IA-32 instructions on a RISC machine that does not have native support for arithmetic flag generation and consumption.
In the IA-32 architecture, certain instructions (an ADD, SUB, etc, instruction) will produce arithmetic flags that are implicitly written into bits of the IA-32 EFLAGS register. Prior art RISC processors convert each of these producing macroinstructions into a single microinstruction that requires two cycles to execute, the first cycle for producing the arithmetic result, and the second cycle for producing the arithmetic flags. Also in the IA-32 architecture, certain instructions (e.g., Jump if Condition is Met, Jcc) consume or test bits of the EFLAGS register. Prior art RISC processors have converted these consuming macroinstructions into microinstruction sequences that may include a single instruction capable of testing a bit of EFLAGS in a single cycle. Thus, these prior art processors require a total of three cycles to produce and consume EFLAGS.
Unfortunately, by producing and consuming flags in this manner, the prior art has these drawbacks:
1) Taking an extra cycle to generate flags for a basic instruction such as ADD degrades performance if a consuming instruction immediately follows the producing instruction. This is because the consuming instruction will be required to stall for one cycle to wait for the producer to generate the flags.
2) Extra complexity is required to detect the above-mentioned condition and generate the necessary pipeline stall.
3) Extra complexity is required to bypass the flag results if the consumer is following the producer by 1-3 cycles. This bypass hardware is typically a critical part of the implementation that affects overall speed and area.
4) If the IA-64 machine uses multiple ALU's to emulate the IA-32 ISA, then each ALU may be required to have additional hardware to implicitly generate these flags.
SUMMARY OF INVENTION
A method consistent with the present invention generates arithmetic flags. The method includes executing an instruction via an execution unit to produce a result. Performing partial computation of one or more of the flags based on the result, once the result is obtained, and storing the partial computation of the one or more flags. A final flag is obtained upon completing the computation of the one or more flags.
An apparatus consistent with the present invention generates arithmetic flags. The apparatus includes an execution unit to execute an instruction and produce a result. The execution unit preforms partial computation on the result to produce an intermediate format of the result. The intermediate format is stored in an eflags register. A consuming instruction decodes the intermediate format and produces a final result for the flags.
Those skilled in the art will appreciate these and other advantages and benefits of various embodiments of the invention upon reading the following detailed description of a preferred embodiment with reference to the below-listed drawings.
REFERENCES:
patent: 5313614 (1994-05-01), Goettelmann et al.
patent: 5481693 (1996-01-01), Blomgren et al.
patent: 5619664 (1997-04-01), Glew
patent: 5774694 (1998-06-01), Murari
patent: 5859999 (1999-01-01), Morris et al.
patent: 5860017 (1999-01-01), Sharangpani et al.
patent: 5884059 (1999-03-01), Favor et al.
patent: 6049864 (2000-04-01), Liu et al.
patent: 4195629 (1992-07-01), None
Dictionary of Computers, Information Processing, & Telecommunications, Jerry M. Rosenberg. Second Edition. John Wiley & Sons, Inc.: 1987. p. 161.*
IA-32 Intel® Architecture Software Developer's Manual vol. 1: Basic Architecture. Intel Corporation. ©1997. pp. 5-1 to 5-28.*
Dictionary of Computers, Information Processing, & Telecommunications. Jerry M. Rosenberg. Second Edition. John Wiley & Sons, Inc.: 1987. p. 359.*
American Heritage Dictionary. yourDictionary.com. ©2002.*
searchVB.com Definitions. macro. Aug. 27, 2001.*
Rosenberg, Jerry M. “Computers, Information Processing, & Telecommunications”. Second Edition. New York: John Wiley & Sons, Inc. ©1987. p. 205, Emulation.*
Mano, M. Morris. “Digital Design”. Englewood Cliffs, New Jersey: Prentice-Hall, Inc. ©1984. pp. 154-160.*
Heuring, Vincent P. and Jordan, Harry F. “Computer Systems Design and Architecture”. Reading, Massachusetts: Addison Wesley Longman, Inc. ©1997. pp. 262-270.*
Wolfe, A., “Patents shed light on Merced's Innards”, Electronic Engineering Times, Feb. 15, 1999.
Bhatia Rohit
Gibson Mark
Knebel Patrick
Safford Kevin David
Chan Eddie
Li Aimee J.
LandOfFree
Method and apparatus for efficiently generating, storing,... 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 efficiently generating, storing,..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for efficiently generating, storing,... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3288639