IP Library › Granted Patent US 12,277,350
Granted Patent B1
US 12,277,350 · App. 18/385,021 · Granted Apr 15, 2025

Virtual metadata storage

Inventors: Jitendra Mohan (Santa Clara, CA); Justina Provine (Fremont, CA); Anh T. Tran (Elk Grove, CA); Ken (Keqin) Han (Fremont, CA); Enrique Musoll (San Jose, CA)
Assignee: Astera Labs, Inc.
G06F3/0664G06F3/0619G06F3/0673
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,277,350
App. No.
18/385,021
Granted
Apr 15, 2025
Kind
B1
Abstract

A decoding engine within an integrated-circuit (IC) component executes a first plurality of error detection/correction operations with respect to first and second pluralities of data volumes to generate a corresponding first and second pluralities of error syndrome values. Each data volume of the first plurality of data volumes includes a first data block and a first error correction code together with a respective one of a plurality of unique q-bit metadata values, and each data volume of the second plurality of data volumes includes a second data block and a second error correction code together with a respective one of the plurality of unique q-bit metadata values. Output circuitry within the decoding engine selects one of the plurality of q-bit metadata values to be an output q-bit metadata value according to error-count differentiation indicated by the first and second pluralities of error syndrome values.

Claims (37)

1. An integrated circuit component comprising:

control circuitry to retrieve, from an external data storage, first and second data blocks and corresponding first and second error correction codes;

decoding circuitry to:

execute a first plurality of error detection/correction operations with respect to a first plurality of data volumes to generate a corresponding first plurality of error syndrome values, each data volume of the first plurality of data volumes being constituted, at least in part, by the first data block and the first error correction code together with a respective one of a plurality of unique q-bit metadata values, q being an integer greater than or equal to one; and

execute a second plurality of error detection/correction operations with respect to a second plurality of data volumes to generate a corresponding second plurality of error syndrome values, each data volume of the second plurality of data volumes being constituted, at least in part, by the second data block and the second error correction code together with a respective one of the plurality of unique q-bit metadata values; and

output circuitry to select one of the plurality of q-bit metadata values to be an output q-bit metadata value according to error-count differentiation indicated by the first and second pluralities of error syndrome values.

2. The integrated circuit component of claim 1 further comprising circuitry to generate the first error correction code based, at least in part, on the first data block and an input q-bit metadata value and to generate the second error correction code based, at least in part, on the second data block and the input q-bit metadata value.

3. The integrated-circuit component of claim 2 further comprising an interface to receive the input q-bit metadata value and the first and second data blocks from an external device.

4. The integrated-circuit component of claim 2 wherein the output q-bit metadata value represents a recovered instance of the input q-bit metadata value.

5. The integrated-circuit component of claim 2 wherein the control circuitry comprises circuitry to store the first and second error correction codes and the first and second data blocks within the external data storage in a memory write transaction prior to retrieving the first and second data blocks and the first and second error correction codes from the external data storage.

6. The integrated-circuit component of claim 2 wherein the circuitry to generate the first error correction code and the second error correction code comprises Reed-Solomon encoding circuitry.

7. The integrated circuit component of claim 1 wherein the decoding circuitry to execute the first plurality of error detection/correction operations and the second plurality of error detection/correction operations comprises Reed-Solomon decoding circuitry.

8. The integrated circuit component of claim 1 wherein the output circuitry to select one of the plurality of q-bit metadata values to be the output q-bit metadata value according to error-count differentiation indicated by the first and second pluralities of error syndrome values comprises circuitry to determine whether the first plurality of error syndrome values includes an error syndrome value that reports (i) fewer symbol errors than all others of the error syndrome values within the first plurality, and (ii) correction of any symbol errors within the first data block.

9. The integrated circuit component of claim 8 wherein the output circuitry to select one of the plurality of q-bit metadata values to be the output q-bit metadata value according to error-count differentiation indicated by the first and second pluralities of error syndrome values further comprises circuitry to determine whether the second plurality of error syndrome values includes an error syndrome value that reports (i) fewer symbol errors than all others of the error syndrome values within the second plurality, and (ii) correction of any symbol errors within the second data block.

10. The integrated circuit component of claim 9 wherein the output circuitry to select one of the plurality of q-bit metadata values to be the output q-bit metadata value comprises circuitry to select, as the output q-bit metadata value, the q-bit metadata value included within one of the first and second pluralities of data volumes.

11. A method of operation with an integrated-circuit (IC) component, the method comprising:

retrieving first and second data blocks and corresponding first and second error correction codes from an external data storage;

executing a first plurality of error detection/correction operations with respect to a first plurality of data volumes to generate a corresponding first plurality of error syndrome values, each data volume of the first plurality of data volumes being constituted, at least in part, by the first data block and the first error correction code together with a respective one of a plurality of unique q-bit metadata values, q being an integer greater than or equal to one; and

executing a second plurality of error detection/correction operations with respect to a second plurality of data volumes to generate a corresponding second plurality of error syndrome values, each data volume of the second plurality of data volumes being constituted, at least in part, by the second data block and the second error correction code together with a respective one of the plurality of unique q-bit metadata values; and

selecting one of the plurality of q-bit metadata values to be an output metadata value according to error-count differentiation indicated by the first and second pluralities of error syndrome values.

12. The method of claim 11 further comprising:

generating the first error correction code based, at least in part, on the first data block and an input q-bit metadata value; and

generating the second error correction code based, at least in part, on the second data block and the input q-bit metadata value.

13. The method of claim 12 further comprising receiving the input q-bit metadata value and the first and second data blocks from an external device.

14. The method of claim 12 wherein the output q-bit metadata value represents a recovered instance of the input q-bit metadata value.

15. The method of claim 12 further comprising storing the first and second error correction codes and the first and second data blocks within the external data storage in a memory write transaction prior to retrieving the first and second data blocks and the first and second error correction codes from the external data storage.

16. The method of claim 12 wherein generating the first error correction code and the second error correction code comprises generating the first and second error correction codes in respective Reed-Solomon encoding operations.

17. The method of claim 11 wherein executing the first plurality of error detection/correction operations and the second plurality of error detection/correction operations comprises executing a first plurality of Reed-Solomon decoding operations and a second plurality of Reed-Solomon decoding operations, respectively.

18. The method of claim 11 wherein selecting one of the plurality of q-bit metadata values to be the output q-bit metadata value according to error-count differentiation indicated by the first and second pluralities of error syndrome values comprises determining whether the first plurality of error syndrome values includes an error syndrome value that reports (i) fewer symbol errors than all others of the error syndrome values within the first plurality, and (ii) correction of any symbol errors within the first data block.

19. The method of claim 18 wherein selecting one of the plurality of q-bit metadata values to be the output q-bit metadata value according to error-count differentiation indicated by the first and second pluralities of error syndrome values further comprises determining whether the second plurality of error syndrome values includes an error syndrome value that reports (i) fewer symbol errors than all others of the error syndrome values within the second plurality, and (ii) correction of any symbol errors within the second data block.

20. The method of claim 19 wherein selecting one of the plurality of q-bit metadata values to be the output q-bit metadata value comprises selecting, as the output q-bit metadata value, the q-bit metadata value included within one of the first and second pluralities of data volumes.

21. An integrated circuit component comprising:

means for retrieving first and second data blocks and corresponding first and second error correction codes from an external data storage;

means for:

executing a first plurality of error detection/correction operations with respect to a first plurality of data volumes to generate a corresponding first plurality of error syndrome values, each data volume of the first plurality of data volumes being constituted, at least in part, by the first data block and the first error correction code together with a respective one of a plurality of unique q-bit metadata values, q being an integer greater than or equal to one; and

executing a second plurality of error detection/correction operations with respect to a second plurality of data volumes to generate a corresponding second plurality of error syndrome values, each data volume of the second plurality of data volumes being constituted, at least in part, by the second data block and the second error correction code together with a respective one of the plurality of unique q-bit metadata values; and

means for selecting one of the plurality of q-bit metadata values to be an output q-bit metadata value according to error-count differentiation indicated by the first and second pluralities of error syndrome values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2023
From: MOHAN, JITENDRA; PROVINE, JUSTINA; TRAN, ANH T.; HAN, KEN (KEQIN); MUSOLL, ENRIQUE
To: ASTERA LABS, INC.
Reel/Frame 065437/0799 →
References Cited (40)
US 4507779A · Barner, Jr. et al. · 1985 [cited by applicant]
US 4541091A · Nishida et al. · 1985 [cited by applicant]
US 4541092A · Sako et al. · 1985 [cited by applicant]
US 4607367A · Ive et al. · 1986 [cited by applicant]
US 5010554A · Bechtel et al. · 1991 [cited by applicant]
US 5051998A · Murai et al. · 1991 [cited by applicant]
US 5430739A · Wei et al. · 1995 [cited by applicant]
US 5483236A · Bi · 1996 [cited by applicant]
US 5926490A · Reed et al. · 1999 [cited by applicant]
US 5961658A · Reed et al. · 1999 [cited by applicant]
US 6009549A · Bliss et al. · 1999 [cited by applicant]
US 6332206B1 · Nakatsuji et al. · 2001 [cited by applicant]
US 8694862B2 · Sazeides · 2014 [cited by examiner]
US 9569308B1 · Ware et al. · 2017 [cited by applicant]
US 10797728B1 · Varnica · 2020 [cited by applicant]
US 20010036236A1 · Kobayashi et al. · 2001 [cited by applicant]
US 20020199153A1 · Fall · 2002 [cited by applicant]
US 20030031236A1 · Dahlman et al. · 2003 [cited by applicant]
US 20100299575A1 · Roth et al. · 2010 [cited by applicant]
US 20120121084A1 · Tomlinson et al. · 2012 [cited by applicant]
US 20120284589A1 · Kim et al. · 2012 [cited by applicant]
US 20130246889A1 · Kumar et al. · 2013 [cited by applicant]
US 20140047265A1 · Das et al. · 2014 [cited by applicant]
US 20140068390A1 · Schmidberger et al. · 2014 [cited by applicant]
US 20140136931A1 · Nakamura et al. · 2014 [cited by applicant]
US 20160006459A1 · Hanham et al. · 2016 [cited by applicant]
US 20160092307A1 · Bonen et al. · 2016 [cited by applicant]
US 20160336971A1 · Fong et al. · 2016 [cited by applicant]
US 20160365876A1 · Greenspan · 2016 [cited by examiner]
US 20170255394A1 · Suh et al. · 2017 [cited by applicant]
US 20170093528A1 · Oveis et al. · 2017 [cited by applicant]
US 20180060160A1 · Fang et al. · 2018 [cited by applicant]
US 20200097359A1 · O'Connor et al. · 2020 [cited by applicant]
US 20200401475A1 · Lu · 2020 [cited by applicant]
US 20210208967A1 · Cha · 2021 [cited by examiner]
US 20220013187A1 · Santhanam · 2022 [cited by applicant]
US 20220091936A1 · La Fetra · 2022 [cited by examiner]
US 20240380415A1 · Dakshinamoorthy · 2024 [cited by examiner]
Intel Corporation, “Intel Xeon Processor E5-1600/2400/2600/4600 v3 Product Families Datasheet—vol. 2: Registers,” Jun. 2015, 414 pages. [cited by applicant]
Molka et al., “Cache Coherence Protocol and Memory Performance of the Intel Haswell-EP Architecture,” IEEE 2015, 10 pages. [cited by applicant]