EP2425330B1

Reliable execution using compare and transfer instruction on an smt machine

Abstract

This record has no abstract on file.

EP2425330B1, drawing sheet 1
Sheet 1 of 4

Term

3.6 yearsleft in the term

Expires 27 April 2030.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

13 claims: 3 independent, 10 dependent

  1. 1
    A system comprising:a cache (202) configured to store instructions of a computer program;and a processor (200);wherein the processor is configured to: replicate (312) an original instruction of said instructions to create a copy of the original instruction, in response to determining (306) the original instruction corresponds to a first instruction type, i.e. corresponds to any instruction except a floating-point external operation instruction that communicates outside of the floating-point circuitry;not replicate the original instruction of said instructions, in response to determining (306) the original instruction corresponds to a second instruction type, i.e. corresponds to a floating-point external operation instruction, which is to be executed by a first functional unit (218), wherein there are M copies of the first functional unit, each copy corresponding to two or more threads of a plurality of threads, where M is a positive integer;and convert (308) the original instruction of the second instruction type from a unary type having only one source operand to a binary type having two source operands;and execute (332) the original instruction of the second instruction type as converted, in response to determining a source operand of the two source operands is ready from a first thread and a source operand of the two source operands is ready from at least one other thread of the plurality of threads.
  2. 3
    A method comprising:replicating (312) an original instruction of of a plurality of instructions to create a copy of the original instruction, in response to determining (306) the original instruction corresponds to a first instruction type, i.e. corresponds to any instruction except a floating-point external operation instruction that communicates outside of the floating-point circuitry;not replicating the original instruction of said instructions, in response to determining (306) the original instruction corresponds to a second instruction type, i.e. corresponds to a floating-point external operation instruction to be executed by a first functional unit (218), wherein there are M copies of the first functional unit, each copy corresponding to two or more threads of a plurality of threads, where M is a positive integer;and converting (308) the original instruction of the second instruction type from a unary type having only one source operand to a binary type having two source operands;and executing (332) the original instruction of the second instruction type as converted, in response to determining a source operand of the two source operands is ready from a first thread and a source operand of the two source operands is ready from at least one other thread of the plurality of threads.
  3. 5
    A floating-point FP coprocessor (206, 208, 216, 218) comprising:an interface configured to communicate with an instruction fetch unit (204), a cache (202), and two or more integer execution clusters IECs (212, 214a, 214b), each IEC corresponding to a single different thread of a plurality of threads;storage elements;and circuitry, wherein the circuitry is configured to: replicate (312) an original instruction of a plurality of instructions to create a copy of the original instruction, in response to determining (306) the original instruction corresponds to a first instruction type, i.e. corresponds to any instruction except a floating-point external operation instruction that communicates outside of the floating-point circuitry;not replicate the original instruction of said instructions, in response to determining (306) the original instruction corresponds to a second instruction type, i.e. corresponds to a floating-point external operation instruction to be executed by a first functional unit (218), wherein there are M copies of the first functional unit, each copy corresponding to two or more threads of the plurality of threads, where M is a positive integer;and convert (308) the original instruction of the second instruction type from a unary type having only one source operand to a binary type having two source operands;and execute (332) the original instruction of the second instruction type as converted, in response to determining a source operand of the two source operands is ready from a first thread and a source operand of the two source operands_is ready from at least one other thread of the plurality of threads.