Fast linear tag validation unit for use in microprocessor
First Claim
1. A cache having fast linear tag validation comprising:
- a data array configured to store a plurality of cache lines;
a linear tag array configured to store a plurality of linear tags with corresponding linear tag valid bits, wherein each linear tag corresponds to one cache line stored within the data array;
a physical tag array configured to store physical tags corresponding to the contents of the data array; and
a translation lookaside buffer configured to store linear to physical address translations, wherein the data array, the linear tag array, the physical tag array and the translation lookaside buffer are each coupled to receive a portion of a requested address, wherein the linear tag array is configured to compare a first portion of the requested address with each of the plurality of stored linear tags and validate all linear tags that correspond to the first portion of the requested address, wherein the linear tag array further comprises a content addressable memory configured to receive and compare a portion of the requested address with each of the plurality of stored linear tags in parallel, wherein the content addressable memory is configured to validate all linear tags in parallel that correspond to the first portion of the requested address.
1 Assignment
0 Petitions
Accused Products
Abstract
A linearly addressed cache capable of fast linear tag validation after a context switch or a translation lookaside buffer (TLB) flush. The cache is configured to validate multiple linear address tags to improve performance in systems which experience frequent context switches or TLB flushes. The cache comprises: a data array configured to store a plurality of cache lines, a linear tag array, a physical tag array, and a TLB. Each array is configured to receive a portion of a requested address. Each linear tag stored in the linear tag array corresponds to one cache line stored within the data array. Each physical tag stored in the physical tag array also corresponds to one cache line stored within the data array. The TLB is configured to store linear to physical address translations, while the linear tag array is configured to store status information for each linear tag. The status information comprises a linear tag valid bit and an enable compare bit. The linear tag array is configured as a content addressable memory and is configured to perform a parallel comparison of a first portion of the requested address with each of the plurality of stored linear tags. If one of the tags match, the linear tag array sets the corresponding valid bits if the corresponding enable compare bits are set. The linear tag array may also be configured to clear the enable compare bits in parallel.
-
Citations
18 Claims
-
1. A cache having fast linear tag validation comprising:
-
a data array configured to store a plurality of cache lines; a linear tag array configured to store a plurality of linear tags with corresponding linear tag valid bits, wherein each linear tag corresponds to one cache line stored within the data array; a physical tag array configured to store physical tags corresponding to the contents of the data array; and a translation lookaside buffer configured to store linear to physical address translations, wherein the data array, the linear tag array, the physical tag array and the translation lookaside buffer are each coupled to receive a portion of a requested address, wherein the linear tag array is configured to compare a first portion of the requested address with each of the plurality of stored linear tags and validate all linear tags that correspond to the first portion of the requested address, wherein the linear tag array further comprises a content addressable memory configured to receive and compare a portion of the requested address with each of the plurality of stored linear tags in parallel, wherein the content addressable memory is configured to validate all linear tags in parallel that correspond to the first portion of the requested address. - View Dependent Claims (2, 4, 5)
-
-
3. A cache having fast linear tag validation comprising
a data array configured to store a plurality of cache lines; -
a linear tag array configured to store a plurality of linear tags, wherein each linear tag corresponds to one cache line stored within the data array, wherein the linear tag array is configured to store status information for each linear tag, and wherein the status information comprises a linear tag valid bit; a physical tag array configured to store physical tags corresponding to the contents of the data array; and a translation lookaside buffer configured to store linear to physical address translations, wherein the data array, the linear tag array, the physical tag array and the translation lookaside buffer are each coupled to receive a portion of a requested address, wherein the linear tag array is configured to compare a first portion of the requested address with each of the plurality of stored linear tags, wherein the linear tag array is configured to set one or more linear tag valid bits that correspond to linear tags that match the first portion of the requested address, wherein the linear tag array further comprises a content addressable memory, wherein the content addressable memory is configured to receive and compare a portion of the requested address with each of the plurality of stored linear tags in parallel, wherein the content addressable memory is configured to set one or more linear tag valid bits that correspond to linear tags that match the first portion of the requested address, wherein the status information further comprises an enable compare bit, wherein the content addressable memory is configured to set linear tag valid bits that correspond to linear tags that match the first portion of the requested address only if the corresponding enable compare bit is set.
-
-
6. A microprocessor capable of fast linear tag validation comprising:
-
a load/store unit configured to perform load and store operations; and a cache coupled to the load store unit comprising; a physical tag array configured to store a plurality of physical tags, wherein each physical tag is associated with one of the plurality of data storage locations, and wherein the cache is configured to validate a particular set of linear tags in parallel after a context switch; a data array comprising a plurality of data storage locations, wherein the data array is configured to receive a first portion of a requested address as an input and in response output the contents of a subset of the plurality of data storage locations, and a linear tag array configured to store a plurality of linear tags and valid information, wherein each linear tag is associated with one of the plurality of data storage locations, wherein the linear tag array is configured as a content addressable memory.
-
-
7. A microprocessor capable of fast linear tag validation comprising:
-
a load/store unit configured to perform load and store operations; and a cache coupled to the load store unit comprising; a physical tag array configured to store a plurality of physical tags, wherein each physical tag is associated with one of the plurality of data storage locations, and wherein the cache is configured to validate a particular set of linear tags in parallel after a non-context switch TLB flush; a data array comprising a plurality of data storage locations, wherein the data array is configured to receive a first portion of a requested address as an input and in response output the contents of a subset of the plurality of data storage locations, and a linear tag array configured to store a plurality of linear tags and valid information, wherein each linear tag is associated with one of the plurality of data storage locations, wherein the linear tag array is configured as a content addressable memory.
-
-
8. A microprocessor capable of fast linear tag validation comprising:
-
a load/store unit configured to perform load and store operations; and a cache coupled to the load store unit comprising; a data array comprising a plurality of data storage locations, wherein the data array is configured to receive a first portion of a requested address as an input and in response output the contents of a subset of the plurality of data storage locations, and a linear tag array configured to store a plurality of linear tags and valid information, wherein each linear tag is associated with one of the plurality of data storage locations, wherein the linear tag array is configured as a content addressable memory, wherein the cache further comprises a physical tag array configured to store a plurality of physical tags, wherein each physical tag is associated with one of the plurality of data storage locations, and wherein the cache is configured to validate a particular set of linear tags in parallel after a context switch, and wherein the particular set comprises linear tags matching a second portion of the requested address. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A method for fast linear tag validation comprising:
-
maintaining status information for a plurality of stored linear address tags, wherein the plurality of stored linear address tags are used to access a linearly addressed cache; detecting a requested address that meets a first set of criteria, wherein the first set of criteria comprises; matching one of the stored linear address tags that has an invalid status, and matching one of a plurality of stored physical address tags, wherein the plurality of stored physical address tags correspond to the contents of the linearly addressed cache; and setting the status information to valid in parallel for a plurality of stored linear address tags that match the requested address and meet the first set of criteria.
-
-
14. A method for fast linear tag validation comprising:
-
maintaining status information for a plurality of stored linear address tags, wherein the plurality of stored linear address tags are used to access a linearly addressed cache; detecting a requested address that meets a first set of criteria, wherein the first set of criteria comprises; matching one of the stored linear address tags that has an invalid status, and matching one of a plurality of stored physical address tags, wherein the plurality of stored physical address tags correspond to the contents of the linearly addressed cache; and setting the status information to valid for stored linear address tags that match the requested address and meet the first set of criteria; and maintaining compare enable status for the plurality of stored linear address tags, wherein said setting is performed only upon stored linear address tags having compare enable status that is enabled. - View Dependent Claims (15, 16, 17, 18)
-
Specification