IP Library › Patent Application 18905305
Patent Application
App. No. 18/905,305

ATOMIC OPERATIONS AND HISTOGRAM OPERATIONS IN A CACHE PIPELINE

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 None
App. No.
18/905,305
Abstract

Methods, apparatus, systems and articles of manufacture to facilitate an atomic operation and/or a histogram operation in cache pipeline are disclosed An example system includes a cache storage coupled to an arithmetic component; and a cache controller coupled to the cache storage, wherein the cache controller is operable to: receive a memory operation that specifies a set of data; retrieve the set of data from the cache storage; utilize the arithmetic component to determine a set of counts of respective values in the set of data; generate a vector representing the set of counts; and provide the vector.

Claims (48)

1 . A system, comprising:

a cache memory; and

a cache controller coupled to the cache memory and configured to:

receive a histogram operation that specifies a set of data;

read the set of data from the cache memory; and

cause an arithmetic circuit to generate a vector representing a histogram of the set of data,

wherein to generate the vector, the arithmetic circuit is configured to:

initiate elements of the vector each of which corresponds to a value in the set of data; and

increment an element of the vector based on occurrence of a corresponding value in the set of data.

2 . The system of claim 1 , wherein to generate the vector, the arithmetic circuit is configured to:

select a weighting value; and

add the weighting value to the incremented element.

3 . The system of claim 1 , wherein to generate the vector, the arithmetic circuit is configured to:

determine whether to saturate the incremented element based on whether the incremented element reaches a threshold value.

4 . The system of claim 3 , wherein to generate the vector, the arithmetic circuit is configured to:

determine whether to saturate the incremented element if in a signed format.

5 . The system of claim 3 , wherein to generate the vector, the arithmetic circuit is configured to:

determine whether to saturate the incremented element if in an unsigned format.

6 . The system of claim 1 , wherein the cache controller is configured to:

prior to reading the set of data from the cache memory, determine that the set of data is stored in the cache memory.

7 . The system of claim 1 , wherein the cache controller is configured to:

prior to causing the arithmetic circuit to generate the vector, perform an error code correction (ECC) operation on the set of data.

8 . The system of claim 1 , wherein the cache controller is configured to provide the vector including the incremented element to a processor.

9 . The system of claim 1 , wherein the cache controller is configured to store the vector including the incremented element in the cache memory.

10 . The system of claim 1 , further comprising:

a store queue, wherein the arithmetic circuit is included within the store queue.

11 . The system of claim 1 , wherein:

the cache memory is a victim cache memory or a main cache memory.

12 . The system of claim 1 , wherein the arithmetic circuit is configured to generate the vector representing the histogram of the set of data based on one single read of the set of data from the cache memory.

13 . A method, comprising:

receiving a histogram operation that specifies a set of data;

based on the histogram operation:

reading the set of data from a cache memory; and

generating, by an arithmetic circuit of the cache memory, a vector representing a histogram of the set of data, which includes:

initiating, by the arithmetic circuit, elements of the vector each of which corresponds to a value in the set of data; and

incrementing, by the arithmetic circuit, an element of the vector based on occurrence of a corresponding value in the set of data; and

providing the vector including the incremented element to a processor.

14 . The method of claim 13 , wherein generating the vector comprises:

selecting, by the arithmetic circuit, a weighting value; and

adding the weighting value to the incremented element.

15 . The method of claim 13 , wherein generating the vector comprises:

determining, by the arithmetic circuit, whether to saturate the incremented element based on whether the incremented element reaches a threshold value.

16 . The method of claim 15 , wherein determining whether to saturate the incremented element comprises determining whether to saturate the incremented element if in a signed format.

17 . The method of claim 15 , wherein determining whether to saturate the incremented element comprises determining whether to saturate the incremented element if in an unsigned format.

18 . The method of claim 13 , further comprising:

prior to generating the vector, performing an error code correction (ECC) operation on the set of data.

19 . The method of claim 13 , wherein the cache memory is a victim cache memory or a main cache memory.

20 . The method of claim 13 , wherein generating the vector representing the histogram of the set of data comprises generating the vector based on one single read of the set of data from the cache memory.