Data cache which speculatively updates a predicted data cache storage location with store data and subsequently corrects mispredicted updates
First Claim
1. A method for performing a store access to a data cache comprising:
- receiving an address associated with said store access in said data cache;
reading a first data from a storage location within said data cache wherein said storage location is indexed by said address associated with said store access, said reading performed responsive to said receiving said address;
speculatively storing store data associated with said store access into said storage location subsequent to said reading said first data and prior to determining if said address is a hit in said storage location; and
restoring said first data to said storage location responsive to determining that said address is a miss in said storage location.
4 Assignments
0 Petitions
Accused Products
Abstract
A data cache configured to perform store accesses in a single clock cycle is provided. The data cache speculatively stores data within a predicted way of the cache after capturing the data currently being stored in that predicted way. During a subsequent clock cycle, the cache hit information for the store access validates the way prediction. If the way prediction is correct, then the store is complete. If the way prediction is incorrect, then the captured data is restored to the predicted way. If the store access hits in an unpredicted way, the store data is transferred into the correct storage location within the data cache concurrently with the restoration of data in the predicted storage location. Each store for which the way prediction is correct utilizes a single clock cycle of data cache bandwidth. Additionally, the way prediction structure implemented within the data cache bypasses the tag comparisons of the data cache to select data bytes for the output. Therefore, the access time of the associative data cache may be substantially similar to a direct-mapped cache access time. The present data cache is therefore suitable for high frequency superscalar microprocessors.
256 Citations
14 Claims
-
1. A method for performing a store access to a data cache comprising:
-
receiving an address associated with said store access in said data cache; reading a first data from a storage location within said data cache wherein said storage location is indexed by said address associated with said store access, said reading performed responsive to said receiving said address; speculatively storing store data associated with said store access into said storage location subsequent to said reading said first data and prior to determining if said address is a hit in said storage location; and restoring said first data to said storage location responsive to determining that said address is a miss in said storage location. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A data cache comprising:
-
a data array coupled to receive a store address corresponding to a store access and a store data corresponding to said store access, said data array including a plurality of storage locations, wherein said data array is configured to select at least a first storage location from said plurality of storage locations in response to an index portion of said store address, and wherein said data array is configured to output a first data stored in said first storage location and to subsequently update said first storage location with said store data in response to said store access prior to said data cache determining if said store access is a hit in said first storage location; a data register coupled to said data array, wherein said data register is configured to capture said first data output from said data array and to subsequently provide said first data as an input to said data array; and a control unit coupled to said data array, wherein said control unit is configured to cause said data array to restore said first data, provided as said input to said data array by said data register, into said first storage location in response to determining that said store access is a miss in said first storage location. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
Specification