Statically speculative compilation and execution
First Claim
Patent Images
1. A method, comprising:
- ascertaining, at run time, whether a tag corresponding to a program address is represented by current information of a hotline register corresponding to a plural-way associative cache;
selecting one of a plurality of ways of the plural-way associative cache if the tag is represented by said current information, wherein the selection is based on said current information;
accessing only the selected one of the plurality of ways if the tag is represented by said current information;
determining whether to update the hotline register if the tag is not represented by said current information; and
storing a value in the hotline register responsive to a result of the determination.
1 Assignment
0 Petitions
Accused Products
Abstract
A system, for use with a compiler architecture framework, includes performing a statically speculative compilation process to extract and use speculative static information, encoding the speculative static information in an instruction set architecture of a processor, and executing a compiled computer program using the speculative static information, wherein executing supports static speculation driven mechanisms and controls.
-
Citations
19 Claims
-
1. A method, comprising:
-
ascertaining, at run time, whether a tag corresponding to a program address is represented by current information of a hotline register corresponding to a plural-way associative cache; selecting one of a plurality of ways of the plural-way associative cache if the tag is represented by said current information, wherein the selection is based on said current information; accessing only the selected one of the plurality of ways if the tag is represented by said current information; determining whether to update the hotline register if the tag is not represented by said current information; and storing a value in the hotline register responsive to a result of the determination.
-
-
2. The method of claim 1, further comprising determining whether to access more than one of the plurality of ways in parallel if the tag is not represented by said current information.
-
3. The method of claim 2, further comprising accessing a tagline cache in response to an ascertainment that the tag is not represented by said current information, wherein the tagline cache stores information associated with a subset of cache lines of the plural-way associative cache, wherein the value is taken from the information of the tagline cache.
-
4. The method of claim 3, further comprising accessing more than one of the plurality of ways in parallel only if the subset of cache lines do not correspond to the tag.
-
5. An apparatus, comprising:
-
a processor; a compiler-managed speculative direct addressing mechanism to access only one of a plurality of ways of a plural-way associative cache to attempt to correlate one of a plurality of cache lines to a program address; and an associative cache lookup mechanism to perform a parallel access of all ways of the plurality of ways of the plural-way associative cache for the program address only if a miss occurs in response to said attempt; wherein the compiler-managed speculative direct addressing mechanism includes a hotline register having a plurality of register entries, each entry including a protection bit, way information, and tag information.
-
-
6. The apparatus of claim 5, further comprising:
a tag-cache to identify a subset of the cache lines and to provide the compiler-managed speculative direct addressing mechanism with an information update only if a miss occurs in response to said attempt and a tag associated with the program address is represented by the identified subset of the cache lines.
-
7. The apparatus of claim 6, wherein the associative cache lookup mechanism tags protection information to each cache lines of the cache lines.
-
8. An apparatus, comprising:
-
an associative cache lookup mechanism of a plural-way associative cache; a hotline register to store cache-way information; and a processing device to; determine whether a tag corresponding to a program address is represented by current information of the hotline register; in response to determining that the tag is represented by the current information of the hotline register, access only one of a plurality of ways of the plural-way associative cache based on the current information of the hotline register.
-
-
9. The apparatus of claim 8, further comprising:
-
a tagline cache to store information corresponding to a subset of cache lines; and wherein the processing device is configured to check the tagline cache in response to determining that the tag is not represented by the current information of the hotline register.
-
-
10. The apparatus of claim 9, wherein the processing device is configured to:
perform a tag check using the associative cache lookup mechanism in response to a miss on the tagline cache check.
-
11. The apparatus of claim 10, wherein the tag check using the associative cache lookup mechanism comprises access more than one of the plurality of ways in parallel.
-
12. The apparatus of claim 10, wherein the processing device is configured to update the hotline register in response to a hit on the tagline cache check.
-
13. The apparatus of claim 8, wherein the associative cache lookup mechanism is configured to tag protection information to each cache line of a portion of the cache lines.
-
14. The apparatus of claim 13, wherein the protection information includes protection bits (ASID).
-
15. The apparatus of claim 9, wherein the subset of the cache lines stored by the tagline cache includes cache line addresses for most recently accessed ones of the cache lines.
-
16. The apparatus of claim 8, further comprising a virtual memory exception handler to fetch data from main memory in response to a cache miss.
-
17. The apparatus of claim 16, wherein the cache miss comprises an L2 cache miss.
-
18. The apparatus of claim 8, further comprising a translation buffer to perform address translation in response to a cache miss.
-
19. The apparatus of claim 8, wherein the cache-way information is identified at compile time.
Specification