A dual-mode instruction prefetch scheme for improved worst case and average case program execution times
- 30 December 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
One of the obstacles to using RISC processors in a hard real-time environment is the unpredictability of caches. This unpredictability stems from basing them on a design that tries to optimize the average case execution time. We propose a dual mode instruction prefetch scheme as an alternative to instruction caching schemes. In the proposed scheme, a thread is associated with each instruction block. The thread indicates the instruction block that is to be prefetched once the block containing it is accessed by the processor. The proposed scheme operates in two different modes: real-time and non real-time modes. In the real-time mode, the prefetching of instruction blocks is made in the direction that improves the worst case execution time. For this purpose, the thread is generated by the compiler through an analysis of the worst case execution path. In the non real-time mode, the thread is dynamically updated so that it indicates the instruction block that is most likely to be accessed next is the block that was previously accessed after the present block. Therefore, the thread is made to point to such a block in the non real-time mode. The above tailoring of thread information is on a task basis and, therefore, each task in the system can choose its own mode depending on its needs. Typically real-time tasks choose the real-time mode for an improved worst case execution time whereas non time critical tasks choose the non real-time mode for an improved average case execution time. This paper shows, through analysis using a timing tool, that the proposed scheme significantly (up to 45%) improves the predicted worst case execution time in the real-time mode as compared with no prefetching scheme.<>Keywords
This publication has 10 references indexed in Scilit:
- SMART (strategic memory allocation for real-time) cache designPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Improving direct-mapped cache performance by the addition of a small fully-associative cache and prefetch buffersPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Design and evaluation of a compiler algorithm for prefetchingPublished by Association for Computing Machinery (ACM) ,1992
- Reducing memory latency via non-blocking and prefetching cachesPublished by Association for Computing Machinery (ACM) ,1992
- Software prefetchingPublished by Association for Computing Machinery (ACM) ,1991
- Experiments with a program timing tool based on source-level timing schemaPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1990
- Reasoning about time in higher-level language softwareIEEE Transactions on Software Engineering, 1989
- Aspects of Cache Memory and Instruction Buffer PerformancePublished by Defense Technical Information Center (DTIC) ,1987
- Branch Prediction Strategies and Branch Target Buffer DesignComputer, 1984
- Cache MemoriesACM Computing Surveys, 1982