8954681

Multi-Stage Command Processing Pipeline and Method for Shared Cache Access

PublishedFebruary 10, 2015
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
21 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A command processing pipeline configured to be coupled to a shared cache, the command processing pipeline comprising: a first command processing stage configured to perform a comparison, in a first clock cycle, of an address associated with a first cache command to addresses stored in the cache; a second command processing stage configured to, in a second clock cycle, (i) receive the first cache command from the first command processing stage, and (ii) based on a result of the comparison, process the first cache command by one or more of (A) providing a read access to one or both of a data memory and an error correcting code memory included in the cache, (B) providing a write access to one or both of the data memory and the error correcting code memory included in the cache, and (C) generating an error correcting code associated with data to be written to the data memory; and a third command processing stage configured to, in a third clock cycle, (i) receive the first cache command from the second command processing stage, and (ii) process the first cache command by writing data associated with the first cache command to one of a valid memory and a dirty memory included in the cache, the valid memory and the dirty memory being different from the data memory.

2

2. The command processing pipeline of claim 1 , further comprising: a fourth command processing stage configured to, in a fourth clock cycle, (i) receive the first cache command from the third command processing stage, and (ii) perform an error correcting code calculation on data read from the data memory.

3

3. The command processing pipeline of claim 2 , further comprising: a fifth command processing stage configured to, in a fifth clock cycle, (i) receive the first cache command from the fourth command processing stage, and (ii) perform an error correcting code correction on data read from the data memory.

4

4. The command processing pipeline of claim 1 , wherein the first command processing stage is further configured to: irrespective of a result of the comparison, receive, in the second clock cycle, a second cache command.

5

5. The command processing pipeline of claim 1 , wherein: the first command processing stage is further configured to perform the comparison by comparing the address associated with the first cache command with addresses stored in one or more of a tag memory, the dirty memory, and the valid memory included in the cache.

6

6. The command processing pipeline of claim 5 , wherein the result of the comparison indicates whether the first cache command is a hit or a miss, and wherein the result of the comparison is determined based at least in part on comparing the address associated with the first cache command with addresses stored in one or more of the tag memory, the dirty memory, and the valid memory included in the cache.

7

7. The command processing pipeline of claim 1 , wherein the first command processing stage, the second command processing stage and the third command processing stage are three consecutive command processing stages of the command processing pipeline.

8

8. The command processing pipeline of claim 1 , wherein each of the command processing stages of the command processing pipeline has corresponding one or two adjacent command processing stages, the command processing stages of the command processing pipeline further configured to: access a plurality of cache resources while processing the first cache command, such that each of the command processing stages accesses cache resources that are different from cache resources accessed by the corresponding one or two adjacent command processing stages.

9

9. The command processing pipeline of claim 1 , wherein: the first command processing stage is configured to perform the comparison based on accessing a first group of cache resources; and the second command processing stage is configured to process the first cache command based on accessing a second group of cache resources that is different from the first group of cache resources.

10

10. The command processing pipeline of claim 9 , wherein: the first group of cache resources comprises one or more of a tag memory, the dirty memory, and the valid memory; and the second group of cache resources comprises one or more of the data memory and the error correcting code memory.

11

11. The command processing pipeline of claim 10 , wherein: the tag memory is configured to store addresses of data currently stored in the data memory; the dirty memory is configured to store one or both of (i) addresses of data in the data memory that has been recently modified, and (ii) addresses of data in the data memory that are not currently in synchronization with a main memory coupled to the cache; the valid memory is configured to store addresses of data in the data memory that are valid; and the error correcting code memory is configured to store error correcting codes associated with data stored in the data memory.

12

12. The command processing pipeline of claim 1 , wherein: the first command processing stage is further configured to, in the second clock cycle, (i) receive a line fill update command to write data in a pre-allocated entry in the cache, in response to a cache miss of a previously issued cache command, and (ii) perform a look-up of an address associated with the line fill update command in the cache; and the second command processing stage is further configured to, in the third clock cycle, (i) receive the line fill update command from the first command processing stage, and (ii) provide a write access to each of the data memory and the error correcting code memory included in the cache.

13

13. A method for accessing a shared cache using a command processing pipeline, the method comprising: receiving, by a first command processing stage and in a first clock cycle, a first cache command; performing a comparison, at the first command processing stage and in the first clock cycle, of an address associated with the first cache command to addresses stored in the cache; receiving, by a second command processing stage and in a second clock cycle, the first cache command from the first command processing stage; based on a result of the comparison, processing, by the second command processing stage and in the second clock cycle, the first cache command by one or more of (A) providing a read access to one or both of a data memory and an error correcting code memory included in the cache, (B) providing a write access to one or both of the data memory and the error correcting code memory included in the cache, and (C) generating an error correcting code associated with data to be written to the data memory; receiving, by a third command processing stage and in a third clock cycle, the first cache command from the second command processing stage; and processing, by the third command processing stage and in the third clock cycle, the first cache command by writing data associated with the first cache command to one of a valid memory and a dirty memory included in the cache, the valid memory and the dirty memory being different from the data memory.

14

14. The method of claim 13 , further comprising: receiving, by a fourth command processing stage and in a fourth clock cycle, the first cache command from the third command processing stage; and performing, by the fourth command processing stage and in the fourth clock cycle, an error correcting code calculation on data read from the data memory.

15

15. The method of claim 14 , further comprising: receiving, by a fifth command processing stage and in a fifth clock cycle, the first cache command from the fourth command processing stage; and performing, by the fifth command processing stage and in the fifth clock cycle, an error correcting code correction on data read from the data memory.

16

16. The method of claim 13 , further comprising: irrespective of a result of the comparison, receiving, at the first command processing stage and in the second clock cycle, a second cache command.

17

17. The method of claim 13 , wherein performing the comparison at the first command processing stage further comprises: performing the comparison, by comparing the address associated with the first cache command with addresses stored in one or more of a tag memory, the dirty memory, and the valid memory included in the cache.

18

18. The method of claim 17 , further comprising: determining the result of the comparison by determining whether the first cache command is a hit or a miss, based at least in part on comparing the address associated with the first cache command with addresses stored in one or more of the tag memory, the dirty memory, and the valid memory included in the cache.

19

19. The method of claim 13 , wherein each of the command processing stages of the command processing pipeline has corresponding one or two adjacent command processing stages, the method further comprising: accessing a plurality of cache resources while processing the first cache command, such that each of the command processing stages accesses cache resources that are different from cache resources accessed by the corresponding one or two adjacent command processing stages.

20

20. The method of claim 13 , wherein: performing the comparison, at the first command processing stage and in the first clock cycle, comprises performing the comparison, by accessing a first group of cache resources; and processing, by the second command processing stage and in the second clock cycle, the first cache command comprises processing the first cache command by accessing a second group of cache resources that is different from the first group of cache resources.

21

21. The method of claim 13 , further comprising: receiving, by the first command processing stage and in the second clock cycle, a line fill update command to write data in a pre-allocated entry in the cache, in response to a cache miss of a previously issued cache command; performing, by the first command processing stage and in the second clock cycle, a look-up of an address associated with the line fill update command in the cache; receiving, by the second command processing stage and in the third clock cycle, the line fill update command from the first command processing stage; and providing, by the second command processing stage and in the third clock cycle, a write access to each of the data memory and the error correcting code memory included in the cache.

Patent Metadata

Filing Date

Unknown

Publication Date

February 10, 2015

Inventors

Tarek Rohana
Gil Stoler

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “MULTI-STAGE COMMAND PROCESSING PIPELINE AND METHOD FOR SHARED CACHE ACCESS” (8954681). https://patentable.app/patents/8954681

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.