IP Library Granted Patent US 10,261,879
Granted Patent B2
US 10,261,879 · App. 14/757,919 · Granted Apr 16, 2019

Instruction and logic to test transactional execution status

Inventors: Ravi Rajwar (Portland, OR); Bret L. Toll (Hillsboro, OR); Konrad K. Lai (Vancouver, WA); Matthew C. Merten (Hillsboro, OR); Martin G. Dixon (Portland, OR)
Assignee: Intel Corporation
G06F11/28G06F9/3009G06F9/3016G06F9/30047G06F9/30076G06F9/30087G06F9/30098G06F9/30145G06F9/3802G06F9/384G06F9/3834G06F9/3842G06F9/466G06F9/467G06F11/1407G06F11/2236G06F11/25G06F11/263G06F12/084G06F12/0811G06F12/0828G06F12/0862G06F12/0875G06F12/0897G11C7/1072G06F2212/1032G06F2212/20G06F2212/283G06F2212/314G06F2212/452G06F2212/602G06F2212/608G06F2212/621
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,261,879
App. No.
14/757,919
Granted
Apr 16, 2019
Kind
B2
Abstract

Novel instructions, logic, methods and apparatus are disclosed to test transactional execution status. Embodiments include decoding a first instruction to start a transactional region. Responsive to the first instruction, a checkpoint for a set of architecture state registers is generated and memory accesses from a processing element in the transactional region associated with the first instruction are tracked. A second instruction to detect transactional execution of the transactional region is then decoded. An operation is executed, responsive to decoding the second instruction, to determine if an execution context of the second instruction is within the transactional region. Then responsive to the second instruction, a first flag is updated. In some embodiments, a register may optionally be updated and/or a second flag may optionally be updated responsive to the second instruction.

Claims (27)

1. A system comprising:

a plurality of processors comprising a plurality of multithreaded cores to perform out-of-order instruction execution for a plurality of threads, wherein one or more of the multithreaded cores comprise:

instruction fetch logic to fetch a plurality of instructions of one or more of the threads,

an instruction decode unit to decode the instructions,

register renaming logic to rename one or more registers for the instructions within a register file,

an instruction cache to cache one or more of the instructions to be executed,

a data cache to cache data for the instructions,

a level 2 (L2) cache unit to cache one or more of the instructions and data for the instructions, and

an execution unit to execute a first instruction among the instructions to test a status of a transactional execution region, wherein, to execute the first instruction to test the status of the transactional execution region, the execution unit is further to determine that the first instruction is within a context of the transactional execution region and, in response, set a flag register to a value indicating that the first instruction is within the context of the transactional execution region;

a processor interconnect to communicatively couple two of the processors; and

a system memory comprising dynamic random access memory communicatively coupled to the two processors.

2. The system of claim 1 , further comprising:

an accelerator unit communicatively coupled to the two processors to perform a specified function.

3. The system of claim 2 , wherein the accelerator unit comprises a field-programmable gate array (FPGA).

4. The system of claim 1 , further comprising:

an external cache communicatively coupled to one or more of the processors over an interconnect.

5. The system of claim 1 , further comprising:

at least one communication device communicatively coupled to the two processors.

6. The system of claim 1 , further comprising:

at least one storage device communicatively coupled to the two processors.

7. The system of claim 1 , wherein the execution unit is further to execute a second instruction among the instructions that indicates a beginning of the transactional execution region.

8. The system of claim 1 , wherein the execution unit is further to execute a third instruction among the instructions that indicates an end of the transaction execution region and causes memory transactions to be atomically committed or aborted.

9. The system of claim 1 , wherein the execution unit is further to execute a second instruction among the instructions and a third instruction among the instructions, wherein the second instruction indicates a beginning of the transactional execution region, and wherein the third instruction indicates an end of the transaction execution region and causes memory transactions to be atomically committed or aborted.

10. The system of claim 1 , wherein, to execute the first instruction to test the status of the transactional execution region, the execution unit is further to set a register to a value indicating a nesting level of the transactional execution region.

11. The system of claim 1 , wherein, to execute the first instruction to test the status of the transactional execution region, the execution unit is further to set a register to a value indicating at least one of a number or a size of available internal buffers for the transactional execution region.

12. The system of claim 1 , wherein, to execute the first instruction to test the status of the transactional execution region, the execution unit is further to set a register to a value indicating that a transaction for a specified memory location would overflow internal buffers and cause an abort of the transactional execution region.

13. The system of claim 1 , wherein, to execute the first instruction to test the status of the transactional execution region, the execution unit is further to set a register to a value indicating that an access to a specified memory location would conflict with another transactional execution region and cause an abort of the transactional execution region.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2016
From: RAJWAR, RAVI; TOLL, BRET L.; LAI, KONRAD K.; MERTEN, MATTHEW C.; DIXON, MARTIN G.
To: INTEL CORPORATION
Reel/Frame 038210/0067 →
Continuity (4)
Continuation 14977659 · Dec 22, 2015
Continuation 13538951 · Jun 29, 2012
Continuation In Part PCTUS2012023611 · Feb 2, 2012
Related Publication 20160202979A1 · Jul 14, 2016