EP0263288A2

Extended floating point operations supporting emulation of source instruction execution.

Abstract

In a system which emulates execution of source CPU instructions (21) and includes a translating unit (translator) (20) for converting source instructions (21) to target instructions (23) and a target CPU instruction unit (10) for processing and issuing translated target instructions, provision is made for accelerating instruction, translation, issue, and execution when certain source floating point arithmetic instructions are emulated for execution. When a source floating point arithmetic instruction is emulated, a token is placed in a wait queue in the translator (20) to prevent the translation of any source instructions and issue of any target instructions until condition and interrupt information is available and validated. In addition, emulation of source RX-type floating point instructions is enhanced by provision of registers in the instruction unit which receive X-field denoted operands, and which thereby permit a target CPU execution unit to perform the emulation by conducting register-to-register operations.

EP0263288A2, drawing sheet 1
Sheet 1 of 4

Term

Term ended

Projected expiry passed 25 August 2007, 19.1 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

5 claims: 3 independent, 2 dependent

  1. 1
    In a system for emulating the execution of source CPU instructions which includes a memory, a target instruction unit which processes and issues translated target instructions, target functional units for executing target instructions, and an instruction translating unit (translator) for receiving and converting source instructions to target instructions, an improvement for accelerating translation and execution of source instructions, said improvement comprising:means in said translator for generating a floating point token signal in response to translation of a source floating point arithmetic instruction;outcome means in said floating point unit for generating completion signals indicative of the outcome of the target floating point instruction issued in response to said translation, said completion signals being generated in advance of completing the execution of said issued target floating point instruction;a multi-stage wait queue means in said translator connected to said system means for receiving and moving said token signal to a wait stage in response to said translation and for removing said wait token signal from said wait stage in response to said completion signals;and system means connected to said wait stage for restraining the translation and issue of in­structions for so long as said wait token signal is held in said wait stage.
  2. 4
    A method for emulating execution of a source floating point RX-type instruction (source instruction) in an emulation system including a translator for translating said source instruction into an RR-type target floating point instruction (target instruction) issued by a target system instruction unit and executed by a target system floating point unit, comprising the steps of:loading the operand indicated by the X field of said source instruction into a register located in said instruction unit;issuing said target instruction to the floating point unit for execution against the operands of said source instruction;and concurrently with the issue of said target instruction, transferring said operand from said instruction unit register to said floating point unit.
  3. 5
    A method for emulating the execution of an extended source floating point RX-type in­struction (source instruction) in an emulation system including a translator for translating said source instruction into an RR-type target floating point instruction (target instruction) issued by a target system instruction unit and executed by a target system floating point unit, comprising the steps of:loading one half of the operand indicated by the X-field of said source instruction into a first register located in the instruction unit;loading the remaining half of said operand into a second register located in the instruction unit;issuing said target instruction to the floating point unit for execution against the operands of said source instruction;concurrently with the issue of said target instruction, transferring the operand half in said first register from said first register to said floating point unit;and then transferring the operand half in said second register from said second register to said floating point unit.