Claims
- 1. A system for controlling prefetching, comprising:
a prefetch buffer system coupled to a processing unit and to a memory, wherein the prefetch buffer system comprises a prefetch controller that is adapted to be programmable such that prefetch control features can be selected.
- 2. The system according to claim 1, wherein the prefetch controller comprises prefetch control registers (PCRs).
- 3. The system according to claim 2, wherein the PCRs can be programmed with values, the values relating to the prefetch control features.
- 4. The system according to claim 3, wherein at least one of the PCRs is programmed such that the prefetch buffer system is in a disabled state.
- 5. The system according to claim 3, wherein at least one of the PCRs is programmed such that the prefetch buffer system is in a no-prefetch state.
- 6. The system according to claim 3, wherein at least one of the PCRs is programmed such that the prefetch buffer system is in an active prefetch state.
- 7. The system according to claim 3, wherein at least one of the PCRs is programmed such that the prefetch buffer system is adapted to perform a sequential prefetch scheme.
- 8. The system according to claim 3, wherein at least one of the PCRs is programmed such that the prefetch buffer system is adapted to perform a striding prefetch scheme.
- 9. The system according to claim 3, wherein at least one of the PCRs is programmed such that the prefetch buffer system is adapted to perform a backward prefetch scheme.
- 10. The system according to claim 3,
wherein the prefetch buffer system comprises a prefetch buffer, and wherein at least one of the PCRs is programmed such that the prefetch buffer system is adapted to manipulate contents stored in the prefetch buffer.
- 11. The system according to claim 10, wherein at least one of the PCRs is programmed such that some or all of the contents in the prefetch buffer are invalidated.
- 12. The system according to claim 10, wherein at least one of the PCRs is programmed such that a particular address corresponding to a block stored in the prefetch buffer is invalidated.
- 13. The system according to claim 3, wherein at least one of the PCRs is programmed such that the prefetch buffer system is adapted to narrow a scope of a programmed prefetch scheme.
- 14. The system according to claim 1, wherein the prefetch controller is programmed as a function of feedback relating to prefetching effectiveness.
- 15. The system according to claim 1, wherein the prefetch controller is adapted to switch between prefetch schemes in accordance with programming of the prefetch controller.
- 16. The system according to claim 1, wherein the prefetch buffer system is adapted to reduce memory latency of the processing unit.
- 17. The system according to claim 1, wherein the prefetch buffer system can be programmed by software at run time.
- 18. The system according to claim 1, wherein the prefetch buffer system can be dynamically programmed to select the prefetch control features.
- 19. A method for controlling a prefetch buffer system, comprising:
programming values into particular registers of the prefetch buffer system; selecting particular prefetch scheme features based upon the programmed values in the particular registers; and performing a particular prefetch scheme according to the selected particular prefetch scheme features.
- 20. The method according to claim 19, further comprising:
invalidating one or more blocks stored in the prefetch buffer system based upon one or more of the programmed values in the particular registers of the prefetch buffer system.
- 21. The method according to claim 20, wherein the one or more invalidated blocks indicate preferred locations that can be refilled.
- 22. The method according to claim 19, wherein the particular registers comprise control registers.
- 23. A method for switching between prefetching schemes, comprising:
performing a first prefetching scheme; writing values into particular registers of a prefetch buffer system; and switching to a second prefetching scheme based on the values written into the particular registers of the prefetch buffer system.
- 24. The method according to claim 23, wherein the writing occurs in real time during operation of the prefetch buffer system.
- 25. The method according to claim 23, wherein the switching occurs in real time during operation of the prefetch buffer system.
- 26. The method according to claim 23, further comprising:
determining that the first prefetching scheme is not presently an effective prefetching scheme.
- 27. The method according to claim 23, wherein the particular registers comprise control registers.
- 28. A system for controlling a prefetch buffer system, comprising:
a processor coupled to one or more control registers of the prefetch buffer system, wherein, at run time, software being executed by the processor can change prefetching features of the prefetch buffer system.
- 29. The system according to claim 28, wherein the software can change the prefetching features of the prefetch buffer system by writing one or more values to the one or more control registers.
RELATED APPLICATIONS
[0001] This application makes reference to, claims priority to and claims benefit from U.S. Provisional Patent Application Serial No. 60/409,256, entitled “System and Method for Controlling Prefetching,” filed on Sep. 9, 2002; U.S. Provisional Patent Application Serial No. 60/409,240, entitled “System and Method for Caching,” filed on Sep. 9, 2002; U.S. Provisional Patent Application Serial No. 60/409,361, entitled “System and Method for Directional Prefetching,” filed on Sep. 9, 2002.
Provisional Applications (3)
|
Number |
Date |
Country |
|
60409256 |
Sep 2002 |
US |
|
60409240 |
Sep 2002 |
US |
|
60409361 |
Sep 2002 |
US |