Scalable memory system protocol supporting programmable number of levels of indirection
A memory device includes a memory component that stores data and a processor. The processor may receive requests from a requesting component to perform a plurality of data operations, generate a plurality of packets associated with the plurality of data operations, and continuously transmit each of the plurality of packets until each of the plurality of packets are transmitted. Each of the plurality of packets after the first packet of the plurality of packets is transmitted on a subsequent clock cycle immediately after a previous packet is transmitted.
1. A system, comprising:
a memory device configured to receive a packet comprising a payload, wherein a portion of the payload comprises an indication of a number of levels of indirection separating a first address of a memory component from a final address of the memory component, and wherein the first address and the final address are associated with the payload, wherein the number of levels of indirection corresponds to one or more pointers associated with performing one or more operations via the memory component, and wherein the one or more operations comprise one or more read operations, one or more write operations, or any combination thereof; and
an array configured to be accessed by the memory device in response to the memory device receiving the packet, wherein the array is accessed by the memory device based at least in part on the one or more pointers.
2. The system of claim 1 , wherein the array is a three-dimensional array, and wherein the number of levels of indirection is equal to three.
3. The system of claim 1 , wherein the portion comprises a two-bit binary number, wherein each binary state of the two-bit binary number represents a different amount of separation between the first address and the final address.
4. The system of claim 1 , wherein the number of levels of indirection corresponds to a number of accesses to the array that the memory device may expect to encounter when retrieving contents from within the array.
5. The system of claim 1 , wherein the packet is transmitted as part of a memory-access request.
6. The system of claim 1 , wherein the one or more pointers comprise one or more addresses between the first address and the final address.
7. The system of claim 1 , wherein the memory device is configured to determine a final location within the array by:
reading the first address indicated by the payload;
determining that the first address points to a subsequent address; and
iteratively reading one or more subsequent addresses to determine the final address indicating the final location.
8. The system of claim 1 , wherein the first address corresponds to one of the one or more pointers associated with the payload.
9. A method, comprising:
receiving, via a processor, a packet comprising a payload, wherein a portion of the payload comprises an indication of a number of levels of indirection separating a first address of a memory component from a final address of the memory component, and wherein the first address and the final address are associated with the payload, wherein the number of levels of indirection corresponds to one or more pointers associated with performing one or more operations via the memory component, and wherein the one or more operations comprise one or more read operations, one or more write operations, or any combination thereof; and
accessing, via the processor, the memory component in response to receiving the packet, wherein the memory component is accessed based at least in part on the one or more pointers.
10. The method of claim 9 , wherein the memory component comprises an array.
11. The method of claim 10 , wherein the array is a multi-dimensional array.
12. The method of claim 9 , wherein the portion comprises a binary number representative of a number of the one or more pointers between the first address and the final address.
13. The method of claim 9 , wherein the number of levels of indirection corresponds to a number of accesses to the memory component that the processor may expect to encounter when retrieving contents at a memory location within the memory component.
14. The method of claim 9 , wherein the packet is transmitted as part of a memory-write request.
15. The method of claim 9 , wherein the one or more pointers comprise one or more addresses between the first address and the final address.
16. The method of claim 9 , comprising determining the final address within the memory component by:
reading the first address indicated by the payload;
determining that the first address points to a subsequent address; and
iteratively reading one or more subsequent addresses to determine the final address.
17. The method of claim 9 , wherein the first address corresponds to one of the one or more pointers associated with the payload.
18. A non-transitory computer-readable medium comprising computer-executable instructions that, when executed, are configured to cause at least one processor to perform operations comprising:
receiving a packet comprising a payload, wherein a portion of the payload comprises an indication of a number of levels of indirection separating a first address of a memory component from a final address of the memory component, and wherein the first address and the final address are associated with the payload, wherein the number of levels of indirection corresponds to one or more pointers associated with performing one or more operations via the memory component, and wherein the one or more operations comprise one or more read operations, one or more write operations, or any combination thereof; and
accessing the memory component in response to receiving the packet, wherein the memory component is accessed based at least in part on the one or more pointers.
19. The non-transitory computer-readable medium of claim 18 , wherein the number of levels of indirection corresponds to a number of accesses to the memory component that the at least one processor may expect to encounter when retrieving contents at a memory location within the memory component.
20. The non-transitory computer-readable medium of claim 18 , wherein the computer-executable instructions are configured to cause the at least one processor to perform the operations comprising determining the final address within the memory component by:
reading the first address indicated by the payload;
determining that the first address points to a subsequent address; and
iteratively reading one or more subsequent addresses to determine the final address.