Efficient accesses of data structures using processing near memory
First Claim
Patent Images
1. A system comprising:
- one or more memory devices;
one or more processors; and
one or more memory controllers comprising;
a first interface configured to be coupled to the one or more processors;
a second interface configured to be coupled to the one or more memory devices; and
control logic;
wherein responsive to receiving a first memory access operation from a first processor via the first interface, the control logic is configured to;
in response to determining the first memory access operation does not target an atomic data structure, execute the first memory access operation;
in response to determining the first memory access operation targets an atomic data structure;
convert the first memory access operation into at least a first access and a second access;
perform the first access to metadata via the second interface, wherein the metadata corresponds to a data structure referenced by the first memory access operation; and
perform the second access to the data structure via the second interface, wherein the second access is specified by the first memory access operation.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, apparatuses, and methods for implementing efficient queues and other data structures. A queue may be shared among multiple processors and/or threads without using explicit software atomic instructions to coordinate access to the queue. System software may allocate an atomic queue and corresponding queue metadata in system memory and return, to the requesting thread, a handle referencing the queue metadata. Any number of threads may utilize the handle for accessing the atomic queue. The logic for ensuring the atomicity of accesses to the atomic queue may reside in a management unit in the memory controller coupled to the memory where the atomic queue is allocated.
6 Citations
20 Claims
-
1. A system comprising:
-
one or more memory devices; one or more processors; and one or more memory controllers comprising; a first interface configured to be coupled to the one or more processors; a second interface configured to be coupled to the one or more memory devices; and control logic; wherein responsive to receiving a first memory access operation from a first processor via the first interface, the control logic is configured to; in response to determining the first memory access operation does not target an atomic data structure, execute the first memory access operation; in response to determining the first memory access operation targets an atomic data structure; convert the first memory access operation into at least a first access and a second access; perform the first access to metadata via the second interface, wherein the metadata corresponds to a data structure referenced by the first memory access operation; and perform the second access to the data structure via the second interface, wherein the second access is specified by the first memory access operation. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A memory controller comprising:
-
a first interface configured to be coupled to one or more processors; a second interface configured to be coupled to one or more memory devices; and control logic; wherein responsive to receiving a first memory access operation from a first processor via the first interface, the control logic is configured to; in response to determining the first memory access operation does not target an atomic data structure, execute the first memory access operation; in response to determining the first memory access operation targets an atomic data structure; convert the first memory access operation into at least a first access and a second access; perform the first access to metadata via the second interface, wherein the metadata corresponds to a data structure referenced by the first memory access operation; and perform the second access to the data structure via the second interface, wherein the second access is specified by the first memory access operation. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method comprising:
in response to receiving a first memory access operation from a first processor via a first interface; in response to determining the first memory access operation does not target an atomic data structure, executing the first memory access operation; in response to determining the first memory access operation targets an atomic data structure; converting the first memory access operation into at least a first access and a second access; performing the first access to metadata via a second interface responsive to receiving a first memory access operation from a first processor via the first interface, wherein the metadata corresponds to a data structure referenced by the first operation; and performing the second access to the data structure via the second interface, wherein the second access is specified by the first memory access operation. - View Dependent Claims (16, 17, 18, 19, 20)
Specification