Method of organizing a programmable atomic unit instruction memory
AssigneeMicron Technology, Inc.
InventorTony Brewer
Life of this patent
Estimating the term…
Abstract
Disclosed in some examples, are methods, systems, devices, and machine readable mediums that store instructions for programmable atomic transactions in a memory of the programmable atomic unit prior to execution of the programmable atomic transaction. The memory in some examples may be an instruction RAM. The memory in some examples may be partitioned into partitions of a fixed size that stores a same number of instructions. Each programmable atomic transaction may use one or more contiguously located instruction partitions. By loading the instructions ahead of time, the instructions are ready for execution when the transaction is requested.
Claims20
An apparatus comprising:
- a memory controller;
- a programmable atomic unit coupled to the memory controller, the programmable atomic unit comprising:
- a memory storing a programmable atomic transaction, the memory partitioned into multiple partitions;
- a processor, the processor configured to:
- store a set of instructions in the memory of the programmable atomic unit, the set of instructions stored within at least two of the multiple partitions including a first instruction of the set of instructions stored in a first partition, the set of instructions corresponding to a programmable atomic transaction, wherein a control structure specifies a number of contiguous partitions in which the set of instructions are stored;
- receive, at the programmable atomic unit, a request from a requesting processor to execute the programmable atomic transaction, the request specifying the programmable atomic transaction by specifying the first partition on which the set of instructions is stored;
- execute the set of instructions including executing the first instruction at a location of the first partition in the memory and verifying that a current instruction is within a range of instructions specified by the first partition and the number of contiguous partitions;
- and
- responsive to reaching a last instruction or encountering an exception, send a response to the requesting processor.
A method comprising:
- storing, a set of instructions in a memory of a programmable atomic unit of a memory controller, the memory partitioned into multiple partitions, the set of instructions stored within at least two of the multiple partitions including a first instruction of the set of instructions stored in a first partition, the set of instructions corresponding to a programmable atomic transaction, wherein a control structure specifies a number of contiguous partitions in which the set of instructions are stored;
- receiving, at the programmable atomic unit, a request from a requesting processor to execute the programmable atomic transaction, the request specifying the programmable atomic transaction by specifying the first partition on which the set of instructions is stored;
- executing the set of instructions including executing the first instruction at a location of the first partition in the memory and verifying that a current instruction is within a range of instructions specified by the first partition and the number of contiguous partitions;
- and
- responsive to reaching a last instruction or encountering an exception, sending a response to the requesting processor.
A non-transitory machine-readable medium, storing instructions, which when executed, cause a memory controller to perform operations of:
- storing, a set of instructions in a memory of a programmable atomic unit of the memory controller, the memory partitioned into multiple partitions, the set of instructions stored within at least two of the multiple partitions including a first instruction of the set of instructions stored in a first partition, the set of instructions corresponding to a programmable atomic transaction, wherein a control structure specifies a number of contiguous partitions in which the set of instructions are stored;
- receiving, at the programmable atomic unit, a request from a requesting processor to execute the programmable atomic transaction, the request specifying the programmable atomic transaction by specifying the first partition on which the set of instructions is stored;
- executing the set of instructions including executing the first instruction at a location of the first partition in the memory and verifying that a current instruction is within a range of instructions specified by the first partition and the number of contiguous partitions;
- and
- responsive to reaching a last instruction or encountering an exception, sending a response to the requesting processor.
Dependencies are inferred from the claim text.