Efficient store queue architecture
First Claim
1. An apparatus that implements a store queue which holds pending stores and applies the stores to a memory subsystem of a processor in program order, the apparatus comprising:
- a content-addressable memory (CAM) which holds the stores that are pending and facilitates looking up the stores based on addresses for the stores;
wherein the CAM does not keep track of program order between stores to different addresses; and
a program-order queue which keeps track of program order between the stores in the CAM and thereby facilitates applying the stores to the memory subsystem in program order.
2 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of the present invention provides a store queue that applies the stores to a memory subsystem in program order. This store queue includes a content-addressable memory (CAM), which holds pending stores and facilitates looking up stores based on addresses for the stores, wherein the CAM does not keep track of program order between stores to different addresses. The store queue also includes a program-order queue which keeps track of program order between the stores in the CAM and thereby facilitates applying the stores to the memory subsystem in program order. In a variation on this embodiment, the CAM is a priority CAM which holds separate copies of multiple stores with identical addresses, and when a lookup based on an address matches multiple stores, returns the youngest matching store.
-
Citations
29 Claims
-
1. An apparatus that implements a store queue which holds pending stores and applies the stores to a memory subsystem of a processor in program order, the apparatus comprising:
-
a content-addressable memory (CAM) which holds the stores that are pending and facilitates looking up the stores based on addresses for the stores; wherein the CAM does not keep track of program order between stores to different addresses; and a program-order queue which keeps track of program order between the stores in the CAM and thereby facilitates applying the stores to the memory subsystem in program order. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer system with a store queue which holds pending stores and applies the stores to a memory subsystem of a processor in program order, the computer system comprising:
-
a processor; a memory; and a store queue within the processor, wherein the store queue includes, a content-addressable memory (CAM) which holds the stores that are pending and facilitates looking up the stores based on addresses for the stores, wherein the CAM does not keep track of program order between stores to different addresses, and a program-order queue which keeps track of program order between the stores in the CAM and thereby facilitates applying the stores to the memory subsystem in program order. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method for operating a store queue which holds pending stores and applies the stores to a memory subsystem of a processor in program order, the apparatus comprising:
-
maintaining entries for stores that are pending in a content-addressable memory (CAM) which facilitates looking up the stores based on addresses for the stores; wherein the CAM does not keep track of program order between stores to different addresses; and maintaining additional entries for stores that are pending in a program-order queue which keeps track of program order between the stores in the CAM and thereby facilitates applying the stores to the memory subsystem in program order. - View Dependent Claims (24, 25, 26, 27, 28, 29)
-
Specification