Method of registering and executing programmable atomic unit resources within a multi-process system
AssigneeMicron Technology, Inc.
InventorTony Brewer
Life of this patent
Estimating the term…
Abstract
Chiplet systems may include a memory controller that has programmable atomic units that execute programmable atomic transactions. These instructions are stored in one or more memory partitions of memory in the programmable atomic unit. Since the programmable atomic unit executes programmable atomic transactions that are customized for various processes, and since the programmable atomic unit is a physical resource shared by multiple processes, the processes need a way of both loading the programmable atomic unit memory with instructions and a method of calling those instructions. Disclosed are methods, systems, and devices for registering, calling, and virtualizing programmable atomic transactions.
Claims20
A method comprising:
- using a hardware processor:
- receiving an instruction from a process to register a programmable atomic transaction, the instruction identifying a set of instructions for the programmable atomic transaction;
- identifying a first identifier, the first identifier included in the instruction or assigned from a plurality of valid values;
- locating one or more contiguous partitions in an instruction memory of a programmable atomic unit, a number of contiguous partitions determined based on the number of instructions in the programmable atomic transaction;
- determining a second identifier based upon a location of a first one of the located one or more contiguous partitions;
- loading the instructions into the instruction memory of the programmable atomic unit at the located one or more contiguous partitions;
- populating a translation table with the determined first identifier and the second identifier, the first identifier uniquely identifying the programmable atomic transaction within the process and the second identifier uniquely identifying the programmable atomic transaction throughout a multi-process system;
- providing a response indicating a successful registration of the programmable atomic transaction;
- issuing a request to a memory controller of the multi-process system to perform the programmable atomic transaction, the request including a memory location of the programmable atomic transaction, the memory location based upon the second identifier;
- and
- receiving a response to the programmable atomic transaction.
A computing device comprising:
- a hardware processor configured to perform operations comprising:
- receiving an instruction from a process to register a programmable atomic transaction, the instruction identifying a set of instructions for the programmable atomic transaction;
- identifying a first identifier, the first identifier included in the instruction or assigned from a plurality of valid values;
- locating one or more contiguous partitions in an instruction memory of a programmable atomic unit, a number of contiguous partitions determined based on the number of instructions in the programmable atomic transaction;
- determining a second identifier based upon a location of a first one of the located one or more contiguous partitions;
- loading the instructions into the instruction memory of the programmable atomic unit at the located one or more contiguous partitions;
- populating a translation table with the determined first identifier and the second identifier, the first identifier uniquely identifying the programmable atomic transaction within the process and the second identifier uniquely identifying the programmable atomic transaction throughout a multi-process system;
- providing a response indicating a successful registration of the programmable atomic transaction;
- issuing a request to a memory controller of the multi-process system to perform the programmable atomic transaction, the request including a memory location of the programmable atomic transaction, the memory location based upon the second identifier;
- and
- receiving a response to the programmable atomic transaction.
A non-transitory machine-readable medium, storing instructions, which when executed by a machine, causes the machine to perform operations comprising:
- receiving an instruction from a process to register a programmable atomic transaction, the instruction identifying a set of instructions for the programmable atomic transaction;
- identifying a first identifier, the first identifier included in the instruction or assigned from a plurality of valid values;
- locating one or more contiguous partitions in an instruction memory of a programmable atomic unit, a number of contiguous partitions determined based on the number of instructions in the programmable atomic transaction;
- determining a second identifier based upon a location of a first one of the located one or more contiguous partitions;
- loading the instructions into the instruction memory of the programmable atomic unit at the located one or more contiguous partitions;
- populating a translation table with the determined first identifier and the second identifier, the first identifier uniquely identifying the programmable atomic transaction within the process and the second identifier uniquely identifying the programmable atomic transaction throughout a multi-process system;
- providing a response indicating a successful registration of the programmable atomic transaction;
- issuing a request to a memory controller of the multi-process system to perform the programmable atomic transaction, the request including a memory location of the programmable atomic transaction, the memory location based upon the second identifier;
- and
- receiving a response to the programmable atomic transaction.
Dependencies are inferred from the claim text.