MEMORY SYNCHRONIZATION IN BLOCK-BASED PROCESSORS
First Claim
1. An apparatus comprising one or more block-based processor cores coupled to a memory, at least one of the cores comprising:
- a control unit configured to issue one or more memory operations encoded in an instruction block allocated to the at least one core and to commit the core when execution of the instruction block is complete;
a memory store queue configured to cache one or more operands for the one or more memory operations, wherein a result produced by performing the memory operations is not architecturally visible unless the instruction block is committed by the control unit; and
a memory interface configured to store the cached operands in the memory responsive to the instruction block committing.
1 Assignment
0 Petitions
Accused Products
Abstract
Apparatus and methods are disclosed for performing memory operations instructions in a block-based processor architecture. In certain examples of the disclosed technology, a block-based processor core coupled to memory includes a control unit configured to issue one or more memory operations encoded in an instruction block allocated to the core and to commit the core when execution of the instruction block is complete, a memory store queue configured to cache one or more operands for the one or more memory operations, where a result of performing the memory operations is not architecturally visible unless the instruction block is committed by the control unit, and a memory interface configured to store the cached operands in the memory responsive to the instruction block committing. In some examples, the block-based processor core supports memory synchronization using load linked and store conditional instructions.
-
Citations
20 Claims
-
1. An apparatus comprising one or more block-based processor cores coupled to a memory, at least one of the cores comprising:
-
a control unit configured to issue one or more memory operations encoded in an instruction block allocated to the at least one core and to commit the core when execution of the instruction block is complete; a memory store queue configured to cache one or more operands for the one or more memory operations, wherein a result produced by performing the memory operations is not architecturally visible unless the instruction block is committed by the control unit; and a memory interface configured to store the cached operands in the memory responsive to the instruction block committing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of operating a block-based processor to execute an instruction block using a memory unit coupled to the block-based processor, the method comprising:
-
executing a memory store instruction specified in the instruction block by storing one or more operands of the memory store instruction in a store queue of the block-based processor; generating a status indicator value indicating whether a memory operation specified by the memory store instruction was successful; and if the instruction block commits, attempting to perform a memory operation with the memory unit based on the operands stored in the store queue. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. One or more computer-readable storage media storing computer-readable instructions that when executed by a block-based processor, cause the processor to perform a method, the computer-readable instructions comprising:
-
instructions for analyzing source code and/or object code for an instruction block to identify one or more synchronized memory operations specified by the code; and instructions for transforming the source code and/or object code into computer-executable code for the instruction block, the computer-executable code being executable by a block-based processor and including one or more instructions for performing the identified synchronized memory operations, wherein a result of the performing is not architecturally visible until the instruction block is committed by the block-based processor. - View Dependent Claims (19, 20)
-
Specification