IP Library Granted Patent US 10,310,857
Granted Patent B2
US 10,310,857 · App. 14/264,716 · Granted Jun 4, 2019

Systems and methods facilitating multi-word atomic operation support for system on chip environments

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,310,857
App. No.
14/264,716
Granted
Jun 4, 2019
Kind
B2
Abstract

Systems and methods that facilitate multi-word atomic operation support for systems on chip are described. One method involves: receiving an instruction associated with a calling process, and determining a first memory width associated with execution of the instruction based on an operator of the instruction and a width of at least one operand of the instruction. The instruction can be associated with an atomic operation. In some embodiments, the instruction contains a message having a first field identifying the operator and a second field identifying the operand.

Claims (50)

1. A method, comprising:

receiving, at a processor, data defining an instruction associated with a calling process, wherein the processor is operably coupled to an atomic engine component having circuitry configured to perform one or more operations to facilitate multi-word atomic support for a system on chip, and the data comprises an opcode field defining a plurality of operations to be performed in accordance with the instruction and an operand field defining a plurality of values used to execute the plurality of operations;

determining a first memory width associated with execution of the instruction based on identities of the plurality of operators defined in the opcode field and a plurality of widths of the plurality of values defined in the operand field, wherein the determining the first memory width comprises:

determining, based on analysis of the data, a quantity of the plurality of values defined in the operand field and types of the plurality of values defined in the operand field; and

determining the first memory width as a function of the quantity and the type; and

reserving a memory location comprising a second memory width that is greater than the first memory width.

2. The method of claim 1 , further comprising:

outputting result data representing a result of applying the plurality of operators to the plurality of values defined by in the operand field for collection by the calling process.

3. The method of claim 1 , further comprising: storing the data in a First in, First out input queue.

4. The method of claim 1 , wherein the data further comprises a message sequence number field identifying a sequence number for the instruction.

5. A system on chip, comprising:

a central processing unit configured to execute an instruction defined by message data associated with a calling process, the message data comprising an opcode field defining a plurality of operations to be performed in accordance with the instruction and an operand field defining a plurality of values used as operands for the plurality of operations; and

an atomic engine component coupled to the central processing unit and configured to:

receive the message data;

determine a first memory width associated with execution of the instruction based on types of the plurality of operations defined by the opcode field and widths of the plurality of values defined by the operand field, wherein the atomic engine component is further configured to determine the first memory width by:

determining based on analysis of the message data, a quantity of the plurality of values defined by the operand field and types of the plurality of values defined by the operand field; and

determining the first memory width as a function of the quantity and the type; and

reserve and lock a memory location comprising a second memory width that is greater than the first memory width,

wherein the atomic engine component comprises circuitry configured to perform the plurality of operations as multi-word atomic operations on a memory of the system on chip.

6. The system on chip of claim 5 , wherein the atomic engine component is further configured to:

output data indicative of a result of executing the instruction for collection by the calling process.

7. The system on chip of claim 5 , wherein the message data further comprises a field identifying a sequence number for the message data.

8. The system of chip of claim 5 , wherein the atomic engine component is further configured to:

determine, based on analysis of the message data, at least one of a number of the plurality of values defined by the operand field or a type of the plurality of values defined by the operand field, and

determine the first memory width based on at least one of the number of the plurality of values or the type of the plurality of values.

9. A method comprising:

receiving, by a system-on-chip, information defining an instruction associated with a calling process, the information comprising an opcode field defining a plurality of operations to be performed as part of the instruction and an operand field defining a plurality of values used to execute the plurality of operations;

determining, by the system-on-chip, a first memory width associated with execution of the instruction based on identities of the plurality of operations defined by the opcode field and widths of the plurality of values defined by the operand field, wherein the determining comprises:

determining, based on analysis of the information, a quantity of the plurality of values defined by the operand field and types of the plurality of values defined by the operand field, and

determining the first memory width as a function of the quantity and the type; and

locking, by the system-on-chip, a memory location comprising a second memory width that is greater than the first memory width, wherein the system-on-chip comprises circuitry configured to perform one or more operations to facilitate multi-word atomic support for the system on chip.

10. The method of claim 9 , further comprising:

outputting the instruction to an input queue prior to the reserving and locking, wherein the input queue is a First in, First out input queue.

11. The method of claim 9 , further comprising:

outputting the instruction to an input queue prior to the reserving and locking, wherein the input queue is a work input queue.

12. The method of claim 1 , wherein the plurality of operators comprise at least a first atomic instruction that increments contents of a first memory location by a first value of the plurality of values and a second atomic instruction that compares contents of a second memory location to a second value of the plurality of values and stores a third value in the second memory location based on a determination that the second value and the contents of the second memory location are equal.

13. The system on chip of claim 5 , further comprising:

a second central processing unit;

a plurality of interrupt wires connecting the atomic engine component to the central processing unit and the second central processing unit; and

a plurality of pairs of input and output queues coupled between the atomic engine component and the central processing unit and between the atomic engine component and the second central processing unit, wherein the atomic engine component is further configured to:

output information indicative of the instruction, the plurality of operators, and the plurality of values in an input queue of a pair of the pairs of input and output queues.

14. The system on chip of claim 13 , wherein the input queue is further configured to receive one or more scheduled tasks associated with the instruction.

15. The system on chip of claim 13 , wherein the information is formatted as a work message facilitating the multi-word atomic operations.

16. The system on chip of claim 5 , wherein the plurality of operations comprise at least

a first atomic instruction that increments a content of a first memory location by a first value of the plurality of values, and

a second atomic instruction that compares a content of a second memory location to a second value of the plurality of values and stores a third value in the second memory location based on a determination that the second value and the content of the second memory location are equal.

17. The method of claim 9 , further comprising executing the plurality of operations using the plurality of values as operands, wherein the executing comprises at least one of:

executing a first of the plurality of operations that increments a first content of a first memory location by a first value of the plurality of values, and

executing a second of the plurality of operations that compares a second content of a second memory location with a second value of the plurality of values and stores a third value in the second memory location based on a determination that the second value and the second content of the second memory location are equal.

18. The method of claim 9 , further comprising outputting result data representing a result of executing the instruction for collection by the calling process.

Assignments (5)
CHANGE OF NAME Recorded Dec 6, 2017
From: PROJECT DENVER INTERMEDIATE HOLDINGS LLC
To: AMPERE COMPUTING LLC
Reel/Frame 044717/0683 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2017
From: MACOM CONNECTIVITY SOLUTIONS, LLC
To: PROJECT DENVER INTERMEDIATE HOLDINGS LLC
Reel/Frame 044798/0599 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2017
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: MACOM CONNECTIVITY SOLUTIONS, LLC (SUCCESSOR TO APPLIED MICRO CIRCUITS CORPORATION)
Reel/Frame 044652/0609 →
SECURITY INTEREST Recorded May 11, 2017
From: MACOM CONNECTIVITY SOLUTIONS, LLC (SUCCESSOR TO APPLIED MICRO CIRCUITS CORPORATION)
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 042444/0891 →
MERGER AND CHANGE OF NAME Recorded Apr 6, 2017
From: APPLIED MICRO CIRCUITS CORPORATION; MACOM CONNECTIVITY SOLUTIONS, LLC; MACOM CONNECTIVITY SOLUTIONS, LLC
To: MACOM CONNECTIVITY SOLUTIONS, LLC
Reel/Frame 042176/0185 →