IP Library › Granted Patent US 12,412,603
Granted Patent B2
US 12,412,603 · App. 18/348,716 · Granted Sep 9, 2025

Flexible metadata allocation and caching

Inventors: Taeksang Song (San Jose, CA); Steven Woo (Saratoga, CA); Craig Hampel (Los Altos, CA); John Eric Linstadt (Palo Alto, CA)
Assignee: Rambus Inc.
G11C7/1084G11C7/1006G06F11/1064G06F12/0223G06F12/0284
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,412,603
App. No.
18/348,716
Granted
Sep 9, 2025
Kind
B2
Abstract

An apparatus and method for flexible metadata allocation and caching. In one embodiment of the method first and second requests are received from first and second applications, respectively, wherein the requests specify a reading of first and second data, respectively, from one or more memory devices. The circuit reads the first and second data in response to receiving the first and second requests. Receiving first and second metadata from the one or more memory devices in response to receiving the first and second requests. The first and second metadata correspond to the first and second data, respectively. The first and second data are equal in size, and the first and second metadata are unequal in size.

Claims (67)

1. A method of operation of a memory buffer integrated circuit (IC) device, comprising:

receiving first and second requests from first and second applications, respectively, wherein the first and second requests specify a reading of first and second data, respectively, from one or more memory devices;

receiving from the one or more memory devices, the first and second data in response to the first and second requests;

receiving first and second metadata from the one or more memory devices in response to the first and second requests;

wherein the first and second metadata correspond to the first and second data, respectively;

wherein first and second data are equal in size, and;

wherein the first and second metadata are unequal in size.

2. The method of claim 1 wherein the first and second applications are executing on first and second processors, respectively, or on one processor.

3. The method of claim 1 wherein memory allocated to store the first metadata for the first application is larger than memory allocated to store the second metadata for the second application.

4. The method of claim 1 wherein the first metadata is parity metadata, and the second metadata is security metadata.

5. The method of claim 1 further comprising:

receiving requests from a third application to read data from the one or more memory devices;

receiving data from the one or more memory devices for each request received from the third application;

wherein no metadata is received from the one or more memory devices in response to receiving the requests from the third application.

6. The method of claim 1 further comprising:

accessing a table to read first information that is mapped to an identification of the first application, wherein the first information can be used to calculate a first address in the one or more memory devices where the first metadata is stored;

accessing the table to read second information that is mapped to an identification of the second application, wherein the second information can be used to calculate a second address in the one or more memory devices where second metadata is stored.

7. The method of claim 1 further comprising:

accessing a table to read first information that is mapped to a first range of memory addresses allocated to the first application, wherein the first information can be used to calculate a first address in the one or more memory devices where the first metadata is stored;

accessing the table to read second information that is mapped to a second range of memory addresses mapped to the second application, wherein the second information can be used to calculate a second address in the one or more memory devices where second metadata is stored.

8. The method of claim 1 wherein the first metadata is read from a first cache.

9. The method of claim 1 further comprising:

allocating respective, non-overlapping memory subspaces of the one or more memory devices to store data of the first application and metadata corresponding to the data of the first application.

10. The method of claim 1 further comprising:

allocating a memory subspace of the one or more memory devices to store data of the first application and metadata corresponding to the data of the first application so that the data and metadata can be fetched sequentially.

11. A memory buffer integrated circuit (IC) device comprising:

a first circuit configured to receive first and second requests for first and second data, respectively, from first and second applications, respectively, wherein the first circuit is further configured to translate first and second addresses for the first and second data, respectively, into first and second addresses for first and second metadata, respectively, corresponding to the first and second data, respectively;

a second circuit configured to receive the first and second data from one or more memory devices in association with the first and second requests, respectively, and to read the first and second metadata from the one or more memory devices;

wherein the first and second data are equal in size, and;

wherein the first and second metadata are unequal in size.

12. The memory buffer IC of claim 11 further comprising:

an instruction memory for storing instructions;

a processor configured to execute the instructions, wherein the processor is configured to implement a method in response to executing the instructions, the method comprising:

allocating first and second address spaces in the one or more memory devices where data of the first and second applications, respectively, can be stored;

allocating third and fourth address spaces in the one or more memory devices where metadata for the first and second applications, respectively, can be stored;

wherein the third and fourth spaces are unequal in size.

13. The memory buffer IC of claim 11 wherein the first and second applications are executing on first and second processors, respectively.

14. The memory buffer IC of claim 11 wherein the first metadata is parity metadata, and the second metadata is security metadata.

15. The memory buffer IC of claim 11 further comprising:

wherein the first circuit is configured to receive requests from a third application to read data from the memory;

wherein the second circuit is configured to read data from the one or more memory devices for each request the first circuit receives from the third application;

wherein the second circuit is not configured to read metadata from the one or more memory devices in response to first circuit receiving the requests from the third application.

16. The memory buffer IC of claim 11 wherein the first circuit comprises:

a table configured to map first information to an identification of the first application, and second information to an identification of the second application;

wherein the first information can be used to calculate a first address in the one or more memory devices where the first metadata is stored;

wherein the second information can be used to calculate a second address in the one or more memory devices where second metadata is stored.

17. The memory buffer IC of claim 11 wherein the first circuit comprises:

a table configured to map first information to an offset address for a memory space allocated to the first application, and second information to an offset address for a memory space allocated to the first application;

wherein the first information can be used to calculate a first address in the one or more memory devices where the first metadata is stored;

wherein the second information can be used to calculate a second address in the one or more memory devices where second metadata is stored.

18. A memory buffer integrated circuit (IC) device comprising:

a first circuit configured to receive requests to read data from one or more memory devices, wherein the requests are received from a plurality of applications, wherein the first circuit further configured to translate addresses for some but not all of the data into addresses for corresponding metadata;

a second circuit for reading the data from the one or more memory devices, and for reading metadata for some but not all of the data from the one or more memory devices.

19. The memory buffer IC of claim 18 further comprising:

an instruction memory for storing instructions;

a processor configured to execute the instructions, wherein the processor is configured to implement a method in response to executing the instructions, the method comprising:

allocating respective address spaces in the one or more memory devices where data of the plurality of applications can be stored;

allocating respective address spaces in the one or more memory devices where metadata for some but not all of the plurality of applications can be stored.

20. The memory buffer IC of claim 18 wherein the first circuit comprises:

a table configured to map identifications of the plurality of applications to a plurality of bits, respectively, and to a plurality of address translation values, respectively;

wherein the first circuit translates addresses using only the address translation values that are mapped to respective bits that are set to a first state in the table.

21. The memory buffer IC of claim 18 wherein the first circuit comprises:

a table configured to map a plurality of offset addresses of memory spaces allocated to the plurality of applications, respectively, to a plurality of bits, respectively, and to a plurality of address translation values, respectively;

wherein the first circuit translates addresses using only the address translation values that are mapped to respective bits that are set to a first state in the table.

22. The memory buffer IC of claim 18 wherein the first circuit comprises:

a table configured to map a plurality of address ranges, respectively, to a plurality of bits, respectively, and to a plurality of address translation values, respectively;

wherein the first circuit translates addresses using only the address translation values that are mapped to respective bits that are set to a first state in the table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2023
From: SONG, TAEKSANG; WOO, STEVEN C; HAMPEL, CRAIG E; LINSTADT, JOHN ERIC
To: RAMBUS INC.
Reel/Frame 064189/0055 →
Continuity (3)
Provisional Application 63397470 · Aug 12, 2022
Provisional Application 63359610 · Jul 8, 2022
Related Publication 20240013819A1 · Jan 11, 2024
References Cited (13)
US 8140746B2 · Trichina et al. · 2012 [cited by applicant]
US 9183078B1 · Zhu et al. · 2015 [cited by applicant]
US 9189329B1 · Zhu et al. · 2015 [cited by applicant]
US 9934194B2 · Lowery · 2018 [cited by examiner]
US 10540297B2 · Saileshwar et al. · 2020 [cited by applicant]
US 11231991B2 · Heo et al. · 2022 [cited by applicant]
US 11288188B1 · Tummala et al. · 2022 [cited by applicant]
US 20060031628A1 · Sharma · 2006 [cited by applicant]
US 20130166831A1 · Atkisson et al. · 2013 [cited by applicant]
US 20210081121A1 · Curewitz · 2021 [cited by examiner]
US 20210103388A1 · Choi et al. · 2021 [cited by applicant]
US 20210334200A1 · Xu · 2021 [cited by applicant]
US 20210405896A1 · Durham · 2021 [cited by examiner]