IP Library › Granted Patent US 12,619,549
Granted Patent B2
US 12,619,549 · App. 18/777,905 · Granted May 5, 2026

System control using sparse data

Inventors: Michael R. Seningen (Austin, TX); Ben D. Jarrett (Austin, TX); Edward M. McCombs (Austin, TX); Greg M. Hess (Mountain View, CA)
Assignee: Apple Inc.
G06F12/10G06F12/06G06F17/16G11C5/144G11C5/148G11C7/1006G11C8/06G11C11/419
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,619,549
App. No.
18/777,905
Granted
May 5, 2026
Kind
B2
Abstract

A method and apparatus for storing and accessing sparse data is disclosed. A sparse array circuit may receive information indicative of a request to perform a read operation on a memory circuit that includes multiple banks. The sparse array circuit may compare an address included in the received information to multiple entries that correspond to address locations in the memory circuit that store sparse data. In response to a determination that the address matches a particular entry, the sparse array may generate one or more control signals that may disable the read operation, and cause a data control circuit to transmit the sparse data pattern.

Claims (52)

1 . A method comprising:

accessing, by a control circuit of a processor circuit, a set of data stored in a memory circuit of a computer system;

identifying, by the control circuit, a number of logical-0 bit values included within the set of data;

based on the identifying, determining, by the control circuit, that the set of data satisfies a sparseness condition;

based on the determining that the set of data satisfies the sparseness condition, compressing, by the control circuit, the set of data; and

storing, by the control circuit, the compressed set of data in the memory circuit.

2 . The method of claim 1 , wherein determining that the set of data satisfies a sparseness condition includes identifying one or more data patterns within the set of data; and

wherein storing the compressed set of data in the memory circuit includes omitting, from the compressed set of data, portions of the set of data that match one of the data patterns.

3 . The method of claim 2 , further comprising:

receiving, by the control circuit, a read command for a particular location in the memory circuit; and

based on determining that the particular location corresponds to an omitted portion of the set of data, halting access to the memory circuit for the particular location.

4 . The method of claim 3 , further comprising completing the read command by returning, by the control circuit, a default value without accessing the memory circuit.

5 . The method of claim 3 , further comprising completing the read command by returning, by the control circuit, a modified version of the omitted portion of the set of data.

6 . The method of claim 5 , wherein returning the modified version of the omitted portion of the set of data includes using an algorithm to generate a compressed version of a portion of the set of data corresponding to the sparseness condition.

7 . The method of claim 1 ,

determining, by the control circuit, that a given bank of the memory circuit has a threshold level of sparse data; and

sending, by the control circuit, a control signal to the memory circuit, wherein the control signal identifies the given bank.

8 . A system comprising:

a memory circuit and

a control circuit configured to:

access a set of data stored in the memory circuit;

determine whether ones of the set of data satisfy a sparseness condition;

based on a determination that a given data value in the set of data satisfies the sparseness condition, compress the given data value; and

storing the compressed data value in the memory circuit.

9 . The system of claim 8 , wherein to determine whether ones of the set of data satisfy the sparseness condition, the control circuit is further configured to identify ones of the set of data that correspond to a particular data pattern; and

wherein to store the compressed data value in the memory circuit, the control circuit is further configured to omit, from the compressed data value, at least a portion of bits of the given data value.

10 . The system of claim 8 , wherein the control circuit is further configured to:

receive a read command for a particular location in the memory circuit; and

based on a determination that the particular location corresponds to a compressed data value, halting access to the memory circuit for the particular location.

11 . The system of claim 10 , wherein to complete the read command, the control circuit is further configured to return a default value without accessing the memory circuit.

12 . The system of claim 10 , wherein to complete the read command, the control circuit is further configured to return a modified version of the given data value.

13 . The system of claim 12 , wherein to return the modified version of the given data value, the control circuit is further configured to generate a compressed version of the given data value.

14 . An apparatus comprising:

a memory circuit and

a control circuit configured to:

access a set of data stored in the memory circuit;

based on a number of logical-0 bit values identified within data values in the set of data, determine whether ones of the data values in the set of data satisfy a sparseness condition;

based on a determination that a particular number of data values in the set of data satisfy the sparseness condition, compress the set of data; and

store the compressed set of data in the memory circuit.

15 . The apparatus of claim 14 , wherein to determine whether ones of the data values in the set of data satisfy the sparseness condition, the control circuit is further configured to identify one or more data patterns within the set of data.

16 . The apparatus of claim 15 , wherein to store the compressed set of data in the memory circuit, the control circuit is further configured to omit, from the compressed set of data, portions of the set of data that match one of the data patterns.

17 . The apparatus of claim 16 , wherein the control circuit is further configured to:

receive a read command for a particular location in the memory circuit; and

based on a determination that the particular location corresponds to an omitted portion of the set of data, prevent access to the memory circuit for the particular location.

18 . The apparatus of claim 14 , wherein the memory circuit includes a plurality of banks; and

wherein the control circuit is further configured to track respective levels of sparse data stored in corresponding ones of the plurality of banks.

19 . The apparatus of claim 18 , wherein the control circuit is further configured to:

determine that a particular bank of the plurality of banks has a threshold level of sparse data; and

assert a control signal that identifies the particular bank.

20 . The apparatus of claim 19 , wherein the memory circuit is configured to:

receive the control signal; and

based on the control signal, reduce power to the identified bank.

Continuity (6)
Continuation 18475890 · Sep 27, 2023
Continuation 17662500 · May 9, 2022
Continuation 16908182 · Jun 22, 2020
Continuation 16124166 · Sep 6, 2018
Provisional Application 62564235 · Sep 27, 2017
Related Publication 20250013576A1 · Jan 9, 2025
References Cited (22)
US 7158433B2 · Riho et al. · 2007 [cited by applicant]
US 7180806B2 · Ikeda et al. · 2007 [cited by applicant]
US 7251090B2 · Brittenham · 2007 [cited by examiner]
US 8156341B2 · Lee et al. · 2012 [cited by applicant]
US 8711015B2 · Mustiere et al. · 2014 [cited by applicant]
US 8775495B2 · Lumsdaine et al. · 2014 [cited by applicant]
US 9367519B2 · Strauss et al. · 2016 [cited by applicant]
US 9436402B1 · De Santis et al. · 2016 [cited by applicant]
US 9864769B2 · Sanvido et al. · 2018 [cited by applicant]
US 11556511B2 · Surti · 2023 [cited by examiner]
US 11720252B1 · Heddes · 2023 [cited by examiner]
US 20040250042A1 · Mehta et al. · 2004 [cited by applicant]
US 20050108460A1 · David · 2005 [cited by applicant]
US 20060133173A1 · Jain et al. · 2006 [cited by applicant]
US 20070113042A1 · Adcock · 2007 [cited by applicant]
US 20070198621A1 · Lumsdaine et al. · 2007 [cited by applicant]
US 20080056017A1 · Suzuki et al. · 2008 [cited by applicant]
US 20150161399A1 · Mylly · 2015 [cited by applicant]
US 20160070918A1 · Ciordas et al. · 2016 [cited by applicant]
US 20170154126A1 · Ballentine · 2017 [cited by examiner]
US 20180239920A1 · Gupta · 2018 [cited by applicant]
US 20180373850A1 · Morgan et al. · 2018 [cited by applicant]