Data co-location using address hashing for high-performance processing in memory

US12158842B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12158842-B2
Application numberUS-202217956995-A
CountryUS
Kind codeB2
Filing dateSep 30, 2022
Priority dateSep 30, 2022
Publication dateDec 3, 2024
Grant dateDec 3, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A processing system allocates memory to co-locate input and output operands for operations for processing in memory (PIM) execution in the same PIM-local memory while exploiting row-buffer locality and complying with conventional memory abstraction. The processing system identifies as “super rows” virtual rows that span all the banks of a memory device. Each super row has a different bank-interleaving pattern, referred to as a “color”. A group of contiguous super rows that has the same PIM-interleaving pattern is referred to as a “color group”. The processing system assigns memory addresses to each operand (e.g., vector) of an operation for PIM execution to a super row having a different color within the same color group to co-locate the operands for each PIM execution unit and uses address hashing to alternate between banks assigned to elements of a first operand and elements of a second operand of the operation.

First claim

Opening claim text (preview).

What is claimed is: 1. A processing system, comprising: a plurality of processing in memory (PIM) execution units configured to interface with a memory that has a plurality of banks, wherein each PIM execution unit corresponds to a group of banks; and a processor configured to: assign an interleaving pattern to each super row of the memory, wherein each super row is a virtual row that spans all the banks of the memory; and allocate memory addresses to a set of operands for an operation performed by a first PIM execution unit, wherein each operand is assigned to a super row having a different interleaving pattern and all the operands in the set are allocated to super rows in a same color group. 2. The processing system of claim 1 , wherein the processor is to assign the set of operands to the group of banks associated with the first execution unit. 3. The processing system of claim 2 , wherein each operand comprises a plurality of elements, and wherein the processor is to hash the memory addresses to map elements of the operands with a same index to different banks of the memory. 4. The processing system of claim 1 , wherein the processor is to configure a row identification field of a memory address of an operand to indicate the color group that includes the super row of the operand and to indicate the bank interleaving pattern of the super row of the operand. 5. The processing system of claim 4 , wherein the processor is to configure an offset field of the memory address of the operand to indicate which element of the operand is located at which bank and row of the color group and the bank interleaving pattern of the super row of the operand. 6. The processing system of claim 1 , wherein the memory processor is to allocate an operand to two or more contiguous super rows in response to the operand exceeding a size of a super row. 7. A processing system, comprising: a plurality of processing in memory (PIM) execution units configured to interface with a memory that has a plurality of banks, wherein each PIM execution unit corresponds to a group of banks; and a processor configured to: assign an interleaving pattern to each super row of the memory, wherein each super row is a virtual row that spans all the banks of the memory; and allocate memory addresses to a set of operands for an operation performed by a first PIM execution unit, wherein each operand is assigned to a super row having a different interleaving pattern and all the operands in the set are allocated to super rows in a same color group. 8. The processing system of claim 7 , wherein the processor is to assign the set of operands to the group of banks associated with the first PIM execution unit. 9. The method of claim 8 , wherein each operand comprises a plurality of elements, and wherein allocating the memory addresses comprises hashing the memory addresses to map elements of the operands with a same index to different banks of the memory. 10. The processing system of claim 7 , wherein the processor is to configure a row identification field of a memory address of an operand to indicate the color group that includes the super row of the operand and to indicate the interleaving pattern of the super row of the operand. 11. The processing system of claim 10 , wherein the processor is to configure an offset field of the memory address of the operand to indicate which element of the operand is located at which bank and row of the color group and the interleaving pattern of the super row of the operand. 12. The method of claim 7 , further comprising wherein allocating the memory addresses comprises: in response to an operand exceeding a size of a super row, allocating the operand to two or more contiguous super rows within the group of super rows. 13. The method of claim 12 , further comprising: alternating a sequence of the interleaving patterns of the two or more contiguous super rows within the group of super rows in response to the operand being allocated to a super row having an interleaving pattern that is not a first interleaving pattern in the group of super rows. 14. The method of claim 13 , wherein allocating the memory addresses comprises assigning the set of operands to the group of banks associated with the first PIM execution unit. 15. The method of claim 14 , wherein mapping the first vector and the second vector comprises assigning the first vector and the second vector to the group of banks associated with the first PIM execution unit. 16. The method of claim 15 , wherein assigning the first vector and the second vector comprises hashing memory addresses assigned to the first vector and the second vector to map elements of the first vector and the second vector with a same index to different banks of the memory. 17. The method of claim 14 , further comprising configuring a row identification field of a memory address of the first vector to indicate the first group of super rows that includes the first super row and to indicate the first interleaving pattern of the first super row. 18. The method of claim 13 , wherein allocating the memory addresses comprises: in response to an operand exceeding a size of a super row, allocating the operand to two or more contiguous super rows within the group of super rows. 19. The method of claim 14 , further comprising: allocating to the first vector to a first plurality of contiguous super rows in the first group of super rows in response to the first vector exceeding a size of the first super row. 20. The method of claim 19 , further comprising: alternating a sequence of interleaving patterns within the first group of super rows in response to a first super row of the first plurality of contiguous super rows having an interleaving pattern that is not the first interleaving pattern in the first group of super rows.

Assignees

Inventors

Classifications

  • User address space allocation, e.g. contiguous or non contiguous base addressing · CPC title

  • Latency reduction · CPC title

  • Instructions to perform operations on packed data, e.g. vector, tile or matrix operations · CPC title

  • Interleaved addressing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12158842B2 cover?
A processing system allocates memory to co-locate input and output operands for operations for processing in memory (PIM) execution in the same PIM-local memory while exploiting row-buffer locality and complying with conventional memory abstraction. The processing system identifies as “super rows” virtual rows that span all the banks of a memory device. Each super row has a different bank-inter…
Who is the assignee on this patent?
Advanced Micro Devices Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0607. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 03 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).