CPU cache prefetching: Timing evaluation of hardware implementations
- 1 May 1998
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Computers
- Vol. 47 (5) , 509-526
- https://doi.org/10.1109/12.677225
Abstract
Prefetching into CPU caches has long been known to be effective in reducing the cache miss ratio, but known implementations of prefetching have been unsuccessful in improving CPU performance. The reasons for this are that prefetches interfere with normal cache operations by making cache address and data ports busy, the memory bus busy, the memory banks busy, and by not necessarily being complete by the time that the prefetched data is actually referenced. In this paper, we present extensive quantitative results of a detailed cycle-by-cycle trace-driven simulation of a uniprocessor memory system in which we vary most of the relevant parameters in order to determine when and if hardware prefetching is useful. We find that, in order for prefetching to actually improve performance, the address array needs to be double ported and the data array needs to either be double ported or fully buffered. It is also very helpful for the bus to be very wide (e.g., 16 bytes) for bus transactions to be split and for main memory to be interleaved. Under the best circumstances, i.e., with a significant investment in extra hardware, prefetching can significantly improve performance. For implementations without adequate hardware, prefetching often decreases performance.Keywords
This publication has 24 references indexed in Scilit:
- A simulation study of two-level cachesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Data prefetching strategies for vector cache memoriesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Sequential hardware prefetching in shared-memory multiprocessorsIEEE Transactions on Parallel and Distributed Systems, 1995
- Mache: no-loss trace compactionACM SIGMETRICS Performance Evaluation Review, 1989
- Cache evaluation and the impact of workload choiceACM SIGARCH Computer Architecture News, 1985
- Cache MemoriesACM Computing Surveys, 1982
- Characterizing the Storage Process and Its Effect on the Update of Main Memory by Write ThroughJournal of the ACM, 1979
- Sequential Program Prefetching in Memory HierarchiesComputer, 1978
- Sequentiality and prefetching in database systemsACM Transactions on Database Systems, 1978
- Buses, The Skeleton of Computer StructuresPublished by Elsevier ,1978