TRANSACTIONAL REGISTER FILE FOR A PROCESSOR
First Claim
1. A block-based processor core for executing an instruction block, the processor core comprising:
- a transactional register file comprising a plurality of registers, each register including a previous value field and a next value field, the previous value field for storing a value corresponding to a state before execution of the instruction block on the processor core, the next value field for storing a value corresponding to a state after execution of the instruction block on the processor core, the next value field being updated when a register-write message is received and the processor core is executing non-speculatively, and the previous value field being updated when a register-write message is received and the processor core is executing speculatively; and
an execution unit configured to execute instructions of the instruction block, the execution unit configured to read register values from the previous value field of the transactional register file and to cause register-write messages to be transmitted from the processor core when the instructions of the instruction block write to the registers.
1 Assignment
0 Petitions
Accused Products
Abstract
Technology related to register files for block-based processor architectures is disclosed. In one example of the disclosed technology, a processor core including a transactional register file and an execution unit can be used to execute an instruction block. The transactional register file can include a plurality of registers, where each register includes a previous value field and a next value field. The previous value field can be updated when a register-write message is received and the processor core is in a first state. The next value field can be updated when a register-write message is received and the processor core is in a second state. The execution unit can execute instructions of the instruction block. The execution unit can be configured to read register values from the previous value field and to cause register-write messages to be transmitted from the processor core when executing instructions that write to the registers.
19 Citations
20 Claims
-
1. A block-based processor core for executing an instruction block, the processor core comprising:
-
a transactional register file comprising a plurality of registers, each register including a previous value field and a next value field, the previous value field for storing a value corresponding to a state before execution of the instruction block on the processor core, the next value field for storing a value corresponding to a state after execution of the instruction block on the processor core, the next value field being updated when a register-write message is received and the processor core is executing non-speculatively, and the previous value field being updated when a register-write message is received and the processor core is executing speculatively; and an execution unit configured to execute instructions of the instruction block, the execution unit configured to read register values from the previous value field of the transactional register file and to cause register-write messages to be transmitted from the processor core when the instructions of the instruction block write to the registers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of executing an instruction block, the method comprising:
-
receiving a first register-write message at a processor core, the first register-write message comprising a register value; selecting a previous register value field or a next register value field of an entry of a transactional register file to update based on a state of the processor core; and updating the selected register value field of the entry of the transactional register file with the register value. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A block-based processor core for executing instructions of an instruction block, the processor core comprising:
-
a communication system configured to receive and transmit messages; a transactional register file comprising a plurality of registers, each register including a previous value field and a next value field, the previous value field being configured to be updated based on the communication system receiving a register-write message when the processor core is in a first operational state, and the next value field being configured to be updated based on the communication system receiving a register-write message when the processor core is in a second operational state different from the first operational state; and execution logic configured to execute the instructions of the instruction block, the execution logic being configured to read register values from the previous value field of the transactional register file and to cause register-write messages to be transmitted by the communication system when the instructions of the instruction block write to the registers. - View Dependent Claims (18, 19, 20)
-
Specification