IP Library › Granted Patent US 12,572,474
Granted Patent B2
US 12,572,474 · App. 18/090,261 · Granted Mar 10, 2026

Sparsity compression for increased cache capacity

Inventors: Gregg Donley (Santa Clara, CA); Chintan S. Patel (Austin, TX); Vydhyanathan Kalyanasundharam (Santa Clara, CA)
Assignee: Advanced Micro Devices, Inc.
G06F12/0864G06F12/0853
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,572,474
App. No.
18/090,261
Granted
Mar 10, 2026
Kind
B2
Abstract

The disclosed computer-implemented method includes configuring a cache with a cache addressing scheme that increases a capacity of each entry of the cache, compressing a data segment for storing in the cache, and storing metadata of the compression in the cache with the compressed data segment. Various other methods, systems, and computer-readable media are also disclosed.

Claims (50)

1 . A device comprising:

a cache; and

a controller configured to:

configure a cache with a cache addressing scheme that allows storing multiple compressed entries into an entry of the cache corresponding to an uncompressed entry size;

compress a data segment for storing in the cache; and

store, as one of the multiple compressed entries in the entry of the cache, the compressed data segment with metadata of the compression appended to an end of the compressed data segment, wherein the metadata represents index locations within the data segment at which zero values appeared in the data segment prior to compression.

2 . The device of claim 1 , wherein compressing the data segment further comprises shifting non-zero values together.

3 . The device of claim 1 , wherein the metadata comprises a bitmask of the index locations.

4 . The device of claim 1 , wherein the cache addressing scheme includes hashing one or more address bits of an address for the entry of the cache to map the entry to the multiple compressed entries.

5 . The device of claim 4 , wherein the address bits correspond to upper address bits.

6 . The device of claim 1 , wherein the cache addressing scheme includes reconfiguring a shadow tag indexing scheme for the cache.

7 . The device of claim 1 , wherein the controller is further configured to decompress, using the metadata, the compressed data segment for reading.

8 . The device of claim 7 , wherein decompressing the compressed data segment further comprises applying the metadata to shift non-zero values in the compressed data segment to locations corresponding to the data segment prior to compression.

9 . A system comprising:

a cache;

a compression circuit; and

a controller configured to:

configure the cache with a cache addressing scheme that allows storing multiple compressed entries into an entry of the cache correspond to an uncompressed entry size;

compress, using the compression circuit, a data segment for storing in the cache;

append metadata of the compression to an end of the compressed data segment, wherein the metadata represents index locations within the data segment at which zero values appeared in the data segment prior to compression; and

store the compressed data segment and the metadata as one of the multiple compressed entries in the cache entry based on the cache addressing scheme.

10 . The system of claim 9 , wherein the compression circuit comprises a zero detect circuit and a shift logic.

11 . The system of claim 10 , wherein compressing the data segment further comprises:

detecting, using the zero detect circuit, the index locations for zero values in the data segment;

saving, as a bitmask, the index locations as the metadata; and

shifting, using the shift logic, non-zero values together.

12 . The system of claim 9 , wherein the cache addressing scheme comprises:

hashing one or more upper address bits of an address for the entry of the cache to map the entry to the multiple compressed entries; and

reconfiguring a shadow tag indexing scheme for the cache in accordance with the cache addressing scheme.

13 . The system of claim 9 , wherein the controller is further configured to decompress, by applying the metadata to shift non-zero values in the compressed data segment to locations corresponding to the data segment prior to compression, the compressed data segment for reading.

14 . A method comprising:

configuring a cache with a cache addressing scheme that allows storing multiple compressed entries into an entry of the cache corresponding to an uncompressed entry size;

compressing, using a compression circuit, a data segment for storing in the cache;

storing, as one of the multiple compressed entries in the entry of the cache based on the cache addressing scheme, the compressed data segment with metadata of the compression appended to an end of the compressed data segment, wherein the metadata represents index locations within the data segment at which zero values appeared in the data segment prior to compression; and

decompressing, using a decompression circuit, the compressed data segment for reading the data segment.

15 . The method of claim 14 , wherein:

the compression circuit comprises a zero detect circuit and a first shift logic, and the decompression circuit comprises a second shift logic;

compressing the data segment further comprises shifting, using the first shift logic, nonzero values together; and

decompressing the compressed data segment further comprises applying the metadata to shift, using the second shift logic, non-zero values in the compressed data segment to locations corresponding to the data segment prior to compression.

16 . The method of claim 15 , wherein the metadata comprises a bitmask of the index locations detected by the zero detect circuit for zero values in the data segment.

17 . The method of claim 14 , wherein the cache addressing scheme comprises:

hashing one or more upper address bits of an address for the entry of the cache to map the entry to the multiple compressed entries; and

reconfiguring a shadow tag indexing scheme for the cache based on the cache addressing scheme.

18 . The device of claim 1 , wherein the controller is further configured to:

determine a compression ratio for compressing the data segment;

compare the determined compression ratio with a desired compression ratio that is based on a metadata unit size; and

forego compressing the data segment in response to the determined compression ratio not achieving the desired compression ratio.

19 . The device of claim 1 , wherein the controller is further configured to:

compress a second data segment for storing in the cache; and

store, as a second compressed entry of the multiple compressed entries in the entry of the cache, the compressed second data segment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2023
From: DONLEY, GREGG; PATEL, CHINTAN S.; KALYANASUNDHARAM, VYDHYANATHAN
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 062963/0269 →
Continuity (1)
Related Publication 20250209005A1 · Jun 26, 2025
References Cited (83)
US 5835963A · Yoshioka · 1998 [cited by examiner]
US 5930832A · Heaslip · 1999 [cited by examiner]
US 6018763A · Hughes · 2000 [cited by examiner]
US 6768739B1 · Kobayashi · 2004 [cited by examiner]
US 6778181B1 · Kilgariff · 2004 [cited by examiner]
US 6850243B1 · Kilgariff · 2005 [cited by examiner]
US 6919904B1 · Kilgariff · 2005 [cited by examiner]
US 7904657B2 · Shen · 2011 [cited by examiner]
US 9430164B1 · Botelho · 2016 [cited by examiner]
US 10204046B1 · Peer · 2019 [cited by examiner]
US 10303622B2 · Balasubramonian · 2019 [cited by examiner]
US 10452316B2 · Lomelino · 2019 [cited by examiner]
US 10620861B2 · Balasubramonian · 2020 [cited by examiner]
US 10901660B1 · Frandzel · 2021 [cited by examiner]
US 11507519B2 · Kotra · 2022 [cited by examiner]
US 11615320B1 · Hung · 2023 [cited by examiner]
US 11651283B1 · Liu · 2023 [cited by examiner]
US 11676068B1 · Zimmer · 2023 [cited by examiner]
US 11687831B1 · Hung · 2023 [cited by examiner]
US 11823018B1 · Hung · 2023 [cited by examiner]
US 11842423B2 · Appu · 2023 [cited by examiner]
US 12056059B2 · Koker · 2024 [cited by examiner]
US 12093210B2 · Appu · 2024 [cited by examiner]
US 12124383B2 · Koker · 2024 [cited by examiner]
US 20050182907A1 · Shen · 2005 [cited by examiner]
US 20110004720A1 · Chiang · 2011 [cited by examiner]
US 20120137079A1 · Ueda · 2012 [cited by examiner]
US 20120198121A1 · Bell, Jr. · 2012 [cited by examiner]
US 20150067264A1 · Eckert · 2015 [cited by examiner]
US 20150269180A1 · Chen · 2015 [cited by examiner]
US 20160041905A1 · Turner · 2016 [cited by examiner]
US 20160154739A1 · Jung · 2016 [cited by examiner]
US 20160188486A1 · Sohi · 2016 [cited by examiner]
US 20160196210A1 · Noguchi · 2016 [cited by examiner]
US 20160321182A1 · Grubisic · 2016 [cited by examiner]
US 20160335188A1 · Romanovskiy · 2016 [cited by examiner]
US 20160371190A1 · Romanovskiy · 2016 [cited by examiner]
US 20170004069A1 · Li · 2017 [cited by examiner]
US 20170220488A1 · Balasubramonian · 2017 [cited by examiner]
US 20170286215A1 · Gerhard · 2017 [cited by examiner]
US 20170286220A1 · Gerhard · 2017 [cited by examiner]
US 20170364307A1 · Lomelino · 2017 [cited by examiner]
US 20170371786A1 · Srinivasan · 2017 [cited by examiner]
US 20180089091A1 · Akenine-Moller · 2018 [cited by examiner]
US 20180089094A1 · Clancy · 2018 [cited by examiner]
US 20180165213A1 · Bernat · 2018 [cited by examiner]
US 20180192100A1 · Urata · 2018 [cited by examiner]
US 20180349291A1 · Klingauf · 2018 [cited by examiner]
US 20190034349A1 · Mcavoy · 2019 [cited by examiner]
US 20190043583A1 · Majumder · 2019 [cited by examiner]
US 20190155736A1 · Hagersten · 2019 [cited by examiner]
US 20200159438A1 · Meredith · 2020 [cited by examiner]
US 20200242049A1 · Loh · 2020 [cited by examiner]
US 20200250101A1 · Patsilaras · 2020 [cited by examiner]
US 20210011800A1 · Chen · 2021 [cited by examiner]
US 20210035258A1 · Ray · 2021 [cited by examiner]
US 20210056036A1 · Breslow · 2021 [cited by examiner]
US 20210089470A1 · Hao · 2021 [cited by examiner]
US 20210149819A1 · Kotra · 2021 [cited by examiner]
US 20210165739A1 · Srinivasan · 2021 [cited by examiner]
US 20210195213A1 · Zhang · 2021 [cited by examiner]
US 20210200771A1 · Kuang · 2021 [cited by examiner]
US 20210258592A1 · Surti · 2021 [cited by examiner]
US 20220084156A1 · Kothandaraman · 2022 [cited by examiner]
US 20220100603A1 · Li · 2022 [cited by examiner]
US 20220129521A1 · Surti · 2022 [cited by examiner]
US 20220164138A1 · Yang · 2022 [cited by examiner]
US 20220188276A1 · Ben Dayan · 2022 [cited by examiner]
US 20220350751A1 · Koker · 2022 [cited by examiner]
US 20230090973A1 · Ray · 2023 [cited by examiner]
US 20230102538A1 · Ray · 2023 [cited by examiner]
US 20230104845A1 · Ray · 2023 [cited by examiner]
US 20230143760A1 · Kelley · 2023 [cited by examiner]
US 20230195628A1 · Arunkumar · 2023 [cited by examiner]
US 20230297508A1 · Zirr · 2023 [cited by examiner]
US 20230298126A1 · Woop · 2023 [cited by examiner]
US 20230298127A1 · Barczak · 2023 [cited by examiner]
US 20230298254A1 · Benthin · 2023 [cited by examiner]
US 20230298255A1 · Benthin · 2023 [cited by examiner]
US 20230306551A1 · Krishnan · 2023 [cited by examiner]
US 20230350641A1 · Tessari · 2023 [cited by examiner]
US 20240111425A1 · Kotra · 2024 [cited by examiner]
US 20240127527A1 · Smith-Lacey · 2024 [cited by examiner]