IP Library › Patent Application 18966268
Patent Application
App. No. 18/966,268

FULLY PIPELINED READ-MODIFY-WRITE SUPPORT

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/966,268
Abstract

Methods, apparatus, systems and articles of manufacture are disclosed to facilitate fully pipelined read-modify-write support in level 1 data cache using store queue and data forwarding. An example apparatus includes a first storage, a second storage, a store queue coupled to the first storage and the second storage, the store queue operable to receive a first memory operation specifying a first set of data, process the first memory operation for storing the first set of data in at least one of the first storage and the second storage, receive a second memory operation, and prior to storing the first set of data in the at least one of the first storage and the second storage, feedback the first set of data for use in the second memory operation.

Claims (61)

1 . A device comprising:

a cache memory; and

a cache queue coupled to the cache memory and that includes:

a first pipeline stage coupled to the cache memory and configured to, based on a first operation associated with writing a first set of data, read a second set of data;

a second pipeline stage coupled to the first pipeline stage and that includes read-modify-write circuitry configured to merge the first set of data with the second set of data to produce a third set of data; and

a third pipeline stage coupled to the second pipeline stage and configured to, based on a second operation associated with reading the first set of data, cause the third set of data that includes the first set of data to be provided to a previous pipeline stage of the cache queue prior to the third set of data being stored in the cache memory.

2 . The device of claim 1 , wherein:

the third pipeline stage includes error correcting code generation circuitry configured to generate error correcting code for the third set of data; and

the third pipeline stage is configured to cause the error correcting code to be stored in the cache memory with the third set of data.

3 . The device of claim 1 , wherein the previous pipeline stage is the second pipeline stage.

4 . The device of claim 1 , wherein:

the second operation is a read-modify-write operation; and

the third pipeline stage is configured to provide the third set of data to the read-modify-write circuitry of the second pipeline stage.

5 . The device of claim 1 , wherein:

the second pipeline stage includes arithmetic circuitry; and

the third pipeline stage is configured to provide the third set of data to the arithmetic circuitry of the second pipeline stage.

6 . The device of claim 1 , wherein:

the second pipeline stage includes atomic compare-and-swap circuitry; and

the third pipeline stage is configured to provide the third set of data to the atomic compare-and-swap circuitry of the second pipeline stage.

7 . The device of claim 1 , wherein the cache memory is a level-one (L1) main cache memory.

8 . The device of claim 1 , wherein the cache memory is a level-one (L1) victim cache memory.

9 . The device of claim 1 , wherein the third pipeline stage is configured to provide the third set of data to the first pipeline stage to be stored in the cache memory.

10 . A device comprising:

a main cache memory;

a victim cache memory; and

a cache queue coupled to the main cache memory and that includes:

a first pipeline stage coupled to the main cache memory and configured to, based on a read-modify-write operation associated with writing a first set of data, read a second set of data;

a second pipeline stage coupled to the first pipeline stage and that includes read-modify-write circuitry configured to merge the first set of data with the second set of data to produce a third set of data; and

a third pipeline stage coupled to the second pipeline stage and configured to, based on a second operation associated with reading the first set of data, cause the third set of data to be provided to a previous pipeline stage of the cache queue prior to the third set of data being stored in the main cache memory.

11 . The device of claim 10 , wherein:

the third pipeline stage includes error correcting code generation circuitry configured to generate error correcting code for the third set of data; and

the third pipeline stage is configured to cause the error correcting code to be stored in the main cache memory with the third set of data.

12 . The device of claim 10 , wherein the previous pipeline stage is the second pipeline stage.

13 . The device of claim 10 , wherein:

the second operation is a read-modify-write operation; and

the third pipeline stage is configured to provide the third set of data to the read-modify-write circuitry of the second pipeline stage.

14 . The device of claim 10 , wherein:

the second pipeline stage includes arithmetic circuitry; and

the third pipeline stage is configured to provide the third set of data to the arithmetic circuitry of the second pipeline stage.

15 . The device of claim 10 , wherein:

the second pipeline stage includes atomic compare-and-swap circuitry; and

the third pipeline stage is configured to provide the third set of data to the atomic compare-and-swap circuitry of the second pipeline stage.

16 . A device comprising:

a main cache memory;

a victim cache memory; and

a cache queue coupled to the victim cache memory and that includes:

a first pipeline stage coupled to the victim cache memory and configured to, based on a read-modify-write operation associated with writing a first set of data, read a second set of data;

a second pipeline stage coupled to the first pipeline stage and that includes read-modify-write circuitry configured to merge the first set of data with the second set of data to produce a third set of data; and

a third pipeline stage coupled to the second pipeline stage and configured to, based on a second operation associated with reading the first set of data, cause the third set of data to be provided to a previous pipeline stage of the cache queue prior to the third set of data being stored in the victim cache memory.

17 . The device of claim 16 , wherein:

the third pipeline stage includes error correcting code generation circuitry configured to generate error correcting code for the third set of data; and

the third pipeline stage is configured to cause the error correcting code to be stored in the victim cache memory with the third set of data.

18 . The device of claim 16 , wherein:

the second operation is a read-modify-write operation; and

the third pipeline stage is configured to provide the third set of data to the read-modify-write circuitry of the second pipeline stage.

19 . The device of claim 16 , wherein:

the second pipeline stage includes arithmetic circuitry; and

the third pipeline stage is configured to provide the third set of data to the arithmetic circuitry of the second pipeline stage.

20 . The device of claim 16 , wherein:

the second pipeline stage includes atomic compare-and-swap circuitry; and

the third pipeline stage is configured to provide the third set of data to the atomic compare-and-swap circuitry of the second pipeline stage.