Claims
- 1. A method for directional prefetching, comprising:
storing a first block and a second block in a prefetch buffer; associating a first block access with a backward prefetch scheme; associating a second block access with a forward prefetch scheme; and if the first block is accessed before the second block, then performing a backward prefetch with respect to the first block.
- 2. The method according to claim 1, further comprising:
if the second block is accessed before the first block, then performing a forward prefetch with respect to the second block.
- 3. The method according to claim 2, wherein the forward prefetch is a forward sequential prefetch.
- 4. The method according to claim 2, further comprising:
storing a third block in the prefetch buffer as a result of the forward prefetch with respect to the second block; and associating the third block with the forward prefetch scheme.
- 5. The method according to claim 4, further comprising:
if the third block is accessed, then performing the forward prefetch with respect to the third block.
- 6. The method according to claim 2, wherein associating the second block with the forward prefetch scheme comprises setting at least one bit in a tag of the second block indicating that the forward prefetch scheme be used if the second block is accessed.
- 7. The method according to claim 1, wherein the backward prefetch is a backward sequential prefetch.
- 8. The method according to claim 1, further comprising:
storing a third block in the prefetch buffer as a result of the backward prefetch with respect to the first block; and associating the third block with the backward prefetch scheme.
- 9. The method according to claim 8, further comprising:
if the third block is accessed, then performing the backward prefetch with respect to the third block.
- 10. The method according to claim 1, wherein the first block and the second block form an aligned set of blocks.
- 11. The method according to claim 1, wherein associating the first block access with the backward prefetch scheme comprises setting at least one bit in a tag of the first block indicating that the backward prefetch scheme be used if the first block is accessed.
- 12. The method according to claim 1, wherein performing the backward prefetch with respect to the first block comprises storing a prefetch request in a request buffer.
- 13. The method according to claim 12, wherein the prefetch request comprises a tag in which at least one bit is set to indicate that the backward prefetch scheme is being employed.
- 14. The method according to claim 13, wherein the tag of the prefetch request is used to associate a third block, which is prefetched according to the prefetch request, with the backward prefetch scheme.
- 15. The method according to claim 1, wherein the first block and the second block are adjacent blocks.
- 16. The method according to claim 1,
wherein the first block comprises a prefetch block, and wherein the second block comprises a missing block.
- 17. The method according to claim 1,
wherein the first block comprises a missing block, and wherein the second block comprises a prefetch block.
- 18. A method for directional prefetching, comprising:
(a) storing a first block having a tag with a forward bit set to indicate that a forward prefetch be performed if the first block is accessed; and (b) storing a second block having the tag with the forward bit set to indicate that a backward prefetch be performed if the second block is accessed.
- 19. The method according to claim 18, wherein the first block and the second block are stored in a prefetch buffer system.
- 20. The method according to claim 18, wherein the performing of the forward prefetch of (a) comprises storing a third block having the tag with the forward bit set to indicate that if the third block is accessed, then the forward prefetch is performed.
- 21. The method according to claim 18, wherein the performing of the backward prefetch of (b) comprises storing a third block having the tag with the forward bit set to indicate that if the third block is accessed, then the backward prefetch is performed.
- 22. A system for direction prefetching, comprising:
a prefetch buffer comprising a tag array and a data array, the tag array storing a tag that is associated with a block stored in the data array, the tag comprising at least one bit that indicates, if the block associated with the tag is accessed, whether to perform a backward prefetch scheme or a forward prefetch scheme.
- 23. The system according to claim 22, further comprising a request buffer, the request buffer storing a tag associated with a prefetch request, the tag comprising at least one bit that indicates whether the backward prefetch scheme or the forward prefetch scheme is associated with a requested prefetch block.
RELATED APPLICATIONS
[0001] This application makes reference to, claims priority to and claims benefit from United States Provisional Patent Application Serial No. 60/409,256, entitled “System and Method for Controlling Prefetching” and filed on Sep. 9, 2002; U.S. Provisional Patent Application Serial No. 60/409,240, entitled “System and Method for Caching” and filed on Sep. 9, 2002; and U.S. Provisional Patent Application Serial No. 60/409,361, entitled “System and Method for Directional Prefetching” and filed on Sep. 9, 2002.
Provisional Applications (3)
|
Number |
Date |
Country |
|
60409256 |
Sep 2002 |
US |
|
60409240 |
Sep 2002 |
US |
|
60409361 |
Sep 2002 |
US |