Determining register dependency in multiple architecture...

Data processing: structural design – modeling – simulation – and em – Emulation – Of instruction

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C703S014000, C712S024000, C712S032000, C712S204000, C712S212000, C712S217000

Reexamination Certificate

active

06542862

ABSTRACT:

TECHNICAL FIELD
This invention relates to determining dependency between instructions to be executed. In particular, the invention relates to methods and apparatus for determining register dependency in multiple architecture systems.
BACKGROUND ART
Microprocessors exist that can implement multiple instruction sets by emulating one instruction set with another. One example is using a reduced instruction set computing (RISC) instruction set architecture (ISA) to implement an independent complex instruction set computing (CISC) ISA by emulating the CISC instruction with instructions native to the RISC instruction set. Instructions from the CISC ISA are called “macroinstructions.” Instructions from a RISC ISA are called “microinstructions.” Existing microprocessors do not implement these two architectures as efficiently as can be done.
To improve performance, it is desirable to execute multiple microinstructions in each clock cycle. A macroinstructions that is emulated by one or more microinstructions is called a “flow”. The flows for the emulated instruction set are contained in a ROM called “microcode.” Microcode, used to provide a sequence of microinstructions to emulate a given macroinstruction, cannot statically determine dependencies between a sequence of microinstructions that emulates a single macroinstruction, nor between a sequence of microinstructions that are used to emulate a sequence of macroinstructions. The primary reason behind this is due to register aliasing. Aliasing is a term that refers to filling in various parts of the microcode instruction with information directly from the macroinstruction, allowing different macroinstructions to be combined in the microcode. In order to allow two instructions from these two cases to be executed together, there is a need for some sort of hardware to do dependency checking.
One example of a CISC ISA is the IA-32 instruction set (also know as the ×86 instruction set). IA-32 defines eight integer registers and eight floating point registers. In IA-32 computer systems, the floating point unit (FPU) comprises a plurality of data registers. Floating point instructions treat this plurality of data registers as a register stack. All addressing of the data registers is relative to the register on the top of the stack. The register number of the current top-of-stack register is stored in a stack TOS field. Thus, load operations decrement TOS by one and load a value in to the new top-of-stack register, which store operations, store the value from the current top-of-stack register in memory and then increment TOS by one. Most floating point instructions use this register stack.
In addition to the floating point top-of-stack pointer, the FPU architecture defines a floating point tag word (FPTW). The FPTW indicates whether a stack register is empty or not. An exception occurs when an operation attempts to read the contents of an empty stack register (known as “stack underflow”) or tries to overwrite the contents of a full stack register (known as “stack overflow”). In order to properly emulate the IA-32 instruction set, both of these architectural features must be emulated.
More information regarding the FPU architecture can be found in the
Intel Architecture Software Developer's Manual, Volumes
1-3, which are hereby incorporated by reference.
SUMMARY OF INVENTION
A method consistent with the present invention to determine register dependency. The method includes providing native instructions, where one or more of the native instructions emulate an emulated instruction and the native instruction contains at least one register identifier. In addition, providing at least one flag for each native instruction where each flags indicates whether one of the at least one register identifier is valid. Finally, checking for dependencies among the valid register identifiers in the native instruction.
An apparatus consistent with the present invention determines register dependency. The apparatus includes a microprocessor to emulate an emulated instruction set using a native instruction set, where the microprocessor includes at least one register. An execution engine to provide one or more native instructions where each native instruction contains at least one register identifier. One or more flags are provided to each native instruction where each of the flags indicate whether the register identifier is valid. A bundler to check for dependency among the valid identifiers in the native instructions.


REFERENCES:
patent: 5517628 (1996-05-01), Morrison et al.
patent: 5574927 (1996-11-01), Scantlin
patent: 5790825 (1998-08-01), Traut
patent: 5859999 (1999-01-01), Morris et al.
patent: 5860017 (1999-01-01), Sharangpani et al.
patent: 5983334 (1999-11-01), Coon et al.
patent: 6055651 (2000-04-01), Sasaki et al.
patent: 6081884 (2000-06-01), Miller
patent: 6170997 (2001-01-01), Glew et al.
patent: 6199202 (2001-03-01), Coutant et al.
patent: 6272453 (2001-08-01), Hoerig et al.
patent: 1107116 (2001-06-01), None
patent: WO9722924 (1997-06-01), None
Wolfe, A., “Patents shed light on Merced's Innards”, Electronic Engineering Times, Feb. 15, 1999.
Wolfe, Alexander, Electronic Engineering Times, pp. 43-44, 1999.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Determining register dependency in multiple architecture... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Determining register dependency in multiple architecture..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Determining register dependency in multiple architecture... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3091221

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.