IP Library Granted Patent US 9,612,834
Granted Patent B2
US 9,612,834 · App. 13/628,366 · Granted Apr 4, 2017

Processor with variable instruction atomicity

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 9,612,834
App. No.
13/628,366
Granted
Apr 4, 2017
Kind
B2
Abstract

A processor includes a plurality of execution units. At least one of the execution units is configured to execute a complex instruction that requires multiple instruction cycles to execute, and to enforce atomic execution of the complex instruction during a first-portion of the multiple instruction cycles required to execute the complex instruction. The at least one of the execution units is further configured to enable execution of the complex instruction to be interrupted for execution of a different instruction by the at least one execution unit during execution of a second portion of the multiple instruction cycles. The first portion and the second portion are non-overlapping.

Claims (54)

1. A processor, comprising:

a plurality of execution units, at least one of the execution units is configured to:

execute a first complex instruction that requires multiple instruction cycles to execute;

enforce atomic execution of the first complex instruction during a first-portion of the multiple instruction cycles required to execute the first complex instruction;

enable execution of the first complex instruction to be interrupted for execution of a second instruction by the at least one execution unit during execution of a second portion of the multiple instruction cycles; and

enforce non-atomic execution of the first complex instruction during the second portion of the multiple instruction cycles required to execute the first complex instruction;

wherein the first portion and the second portion are non-overlapping.

2. The processor of claim 1 , wherein the at least one of the execution units is configured to define at least one of the first portion and the second portion based on at least one of an opcode and an instruction identifier of the first complex instruction.

3. The processor of claim 1 , wherein the at least one of the execution units is configured to define at least one of the first portion and the second portion based on an atomic specification field of the first complex instruction.

4. The processor of claim 3 , wherein the atomic specification field comprises at least one of:

information defining one of the first portion and the second portion; and

an indicator of a location of information defining one of the first portion and the second portion.

5. The processor of claim 1 , wherein the at least one of the execution units is configured to define at least one of the first portion and the second portion based on at least one of a specified instruction cycle, a specified execution unit state, a specified status of execution, and occurrence of a predetermined trigger event.

6. The processor of claim 1 , wherein the at least one of the execution units is configured to initiate the first portion at an initial instruction cycle of the first complex instruction and terminate the first portion prior to a last instruction cycle of the first complex instruction.

7. The processor of claim 1 , wherein the at least one execution unit is configured to initiate the first portion after an initial instruction cycle of the first complex instruction and terminate the first portion at a last instruction cycle of the first complex instruction.

8. The processor of claim 1 , wherein the at least one execution unit is configured to initiate the first portion after an initial instruction cycle of the first complex instruction and terminate the first portion prior to last instruction cycle of the first complex instruction.

9. The processor of claim 1 , wherein the at least one execution unit is configured to define the first portion and the second portion based on whether the first complex instruction is being executed in one of a specified operating mode, a specified power mode, and an interrupt service routine.

10. An execution unit for executing instructions in a processor, the execution unit comprising:

instruction execution logic configured to:

execute a first complex instruction that requires a plurality of instruction cycles to execute;

impose atomic execution of the first complex instruction during a first-portion of the plurality of instruction cycles required to execute the first complex instruction;

enable execution of the first complex instruction to be interrupted for execution of a second instruction by the execution unit during execution of a second portion of the plurality of instruction cycles; and

impose non-atomic execution of the first complex instruction during the second portion of the plurality of instruction cycles required to execute the first complex instruction;

wherein the first portion and the second portion are non-overlapping.

11. The execution unit of claim 10 , wherein the execution unit is configured to define at least one of the first portion and the second portion based on one of an opcode, an instruction identifier, and an atomic specification field of the first complex instruction.

12. The execution unit of claim 11 , wherein the atomic specification field comprises at least one of:

information defining one of the first portion and the second portion; and

an indicator of a location of information defining one of the first portion and the second portion.

13. The execution unit of claim 10 , wherein the execution unit is configured to define at least one of the first portion and the second portion based on at least one of a specified instruction cycle, a specified instruction state, a specified status of execution, and occurrence of a predetermined trigger event.

14. The execution unit of claim 10 , wherein the execution unit is configured to initiate the first portion at a first instruction cycle of the first complex instruction and terminate the first portion prior to a last instruction cycle of the first complex instruction.

15. The execution unit of claim 10 , wherein the execution unit is configured to initiate the first portion after a first instruction cycle of the first complex instruction and terminate the first portion at a last instruction cycle of the first complex instruction.

16. The execution unit of claim 10 , wherein the execution unit is configured to initiate the first portion after a first instruction cycle of the first complex instruction and terminate the first portion prior to last instruction cycle of the first complex instruction.

17. The execution unit of claim 10 , wherein the execution unit is configured to define at least one of the first portion and the second portion based on whether the first complex instruction is being executed in one of a specified operating mode, a specified power mode, and an interrupt service routine.

18. The execution unit of claim 10 , wherein the atomic specification field comprises level indication information and the execution unit is configured to:

compare the level indication information to a reference level value; and

conditionally impose the atomic execution based on a result of the comparison.

19. A method for executing an instruction in an execution unit of a processor, comprising:

executing, by the execution unit, a first complex instruction requiring a plurality of instruction cycles to execute;

enforcing, by the execution unit, atomic execution of the first complex instruction during a first-portion of the plurality of instruction cycles required to execute the first complex instruction;

enabling, by the execution unit, execution of the first complex instruction to be interrupted for execution of a second instruction by the execution unit during execution of a second portion of the plurality of instruction cycles; and

enforcing, by the execution unit, non-atomic execution of the first complex instruction during the second portion of the plurality of instruction cycles required to execute the first complex instruction;

wherein the first portion and the second portion do not overlap.

20. The method of claim 19 , further comprising defining, by the execution unit, at least one of

the first portion and the second portion based on one of an opcode,

an instruction identifier, and

an atomic specification field of the first complex instruction.

21. The method of claim 20 , further comprising extracting from the atomic specification field at least one of:

information defining one of the first portion and the second portion; and

an indicator of a location of information defining one of the first portion and the second portion.

22. The method of claim 19 , further comprising defining, by the execution unit, at least one of the first portion and the second portion based on at least one of a specified instruction cycle, a specified execution unit state, and occurrence of a predetermined trigger event.

23. The method of claim 19 , further comprising initiating, by the execution unit, the first portion at an initial instruction cycle of the first complex instruction and terminating the first portion prior to a last instruction cycle of the first complex instruction.

24. The method of claim 19 , further comprising initiating, by the execution unit, the first portion after an initial instruction cycle of the first complex instruction and terminating the first portion at a last instruction cycle of the first complex instruction.

25. The method of claim 19 , further comprising initiating, by the execution unit, the first portion after an initial instruction cycle of the first complex instruction and terminating the first portion prior to last instruction cycle of the first complex instruction.

26. The method of claim 19 , further comprising defining, by the execution unit, at least one of the first portion and the second portion based on whether the first complex instruction is being executed in one of a specified operating mode, a specified power mode, and an interrupt service routine.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2021
From: TEXAS INSTRUMENTS DEUTSCHLAND GMBH
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 055314/0255 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY DATA. THE RECEIVING PARTY SHOULD BE: TEXAS INSTRUMENTS DEUTSCHLAND GMBH PREVIOUSLY RECORDED ON REEL 029068 FRAME 0117. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 20, 2016
From: DIEWALD, HORST; ZIPPERER, JOHANN
To: TEXAS INSTRUMENTS DEUTSCHLAND GMBH
Reel/Frame 039414/0207 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2012
From: DIEWALD, HORST; ZIPPERER, JOHANN
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 029068/0117 →