An Efficient Instruction Prefetching Scheme Based on the Page Access Information

페이지 접근 정보에 기반한 효율적인 명령어 캐쉬 선인출 기법

  • 신숭현 (서울대학교 전기 컴퓨터공학부) ;
  • 김철홍 (서울대학교 전기 컴퓨터공학부) ;
  • 전주식 (서울대학교 전기 컴퓨터공학부)
  • Published : 2006.06.01

Abstract

In general, the hit ratio of the first level cache is one of the most important factors in determining the performance of computer systems. Prefetching from lower level memory structure is one of the most useful techniques for improving the hit ratio of the first level cache. In this paper, we propose a prefetch on continuous same page access (CSPA) scheme which improves the prefetch efficiency of the instruction cache and reduces prefetch cost at the same time. The proposed CSPA scheme traces the page addresses of executed instructions to count how many times the same memory page is accessed continuously. To increase the prefetch efficiency, the CSPA scheme initiates prefetch only if the number of accesses to the same page exceeds the threshold value. Generally, the size of a L1 cache block is smaller than that of a L2 cache block. Therefore, one L2 cache block contains a number of L1 cache blocks. To reduce the number of unnecessary accesses to the L2 cache due to prefetch, the CSPA scheme enables prefetch only when the missed L1 block and the prefetch L1 block are in the same L2 cache block, leading to reduced prefetch cost. According to our simulations, the proposed prefetching scheme improves the performance by up to 6.7%.

컴퓨터 시스템의 1차 캐쉬 적중률은 시스템의 성능을 평가함에 있어 가장 중요한 요소 중 하나이다. 하위 메모리 구조로부터 1차 캐쉬로의 선인출은 1차 캐쉬의 적중률을 증가시키기 위해 사용되는 대표적인 기술 중 하나이다. 본 논문에서는 명령어 캐쉬의 선인출 효율은 높이고 선인출에 소모되는 비용은 감소시키는 재 접근 페이지 선인출 정책을 제안하고자 한다. 재 접근 페이지 선인출 정책은 수행되는 명령어들의 소속 페이지를 추적하여, 이 정보를 바탕으로 일정 횟수 이상 같은 페이지를 접근하는 경우에 한하여 선인출을 수행함으로써, 명령어 캐쉬로의 선인출 횟수는 줄이고 선인출 성공률은 향상시킨다. 또한, 일반적인 컴퓨터 시스템에서 하나의 2차 캐쉬 블록에 여러 개의 1차 캐쉬 블록이 포함되는 특성을 이용하여 미스 블록과 선인출 블록이 같은 2차 캐쉬 블록에 포함된 경우로 선인출을 한정함으로써 선인출에 소모되는 비용을 줄인다. 모의 실험에 따르면 제안하는 구조는 최대 6.7%의 성능향상을 보인다.

Keywords

References

  1. Smith, A.J.: Cache Memories, Computing Surveys, Vol.14, No.3, pp.473-530, 1982 https://doi.org/10.1145/356887.356892
  2. Dahlgren, F., Dubois, M. and Stenstrom, P.: Fixed and Adaptive Sequential Prefetching in Shared-memory Multiprocessors, Proc. International Conference on Parallel Processing, 1-56-63, 1993 https://doi.org/10.1109/ICPP.1993.92
  3. Jouppi, N.P.: Improving Direct-mapped Cache Performance by the Addition of a Small Fully-associative Cache and Prefetch Buffers, Proc. 17th International Symposium on Computer Architecture, pp. 364-373, 1990 https://doi.org/10.1109/ISCA.1990.134547
  4. Reinman, G., Calder, B., and Austin, T.: Fetchdirected instruction prefetching, In 32nd International Symposium on Microarchitecture, pp. 16-27, 1999
  5. Zhang, Y., Haga, S., and Barua, R.: Execution History Guided Instruction Prefetching, In Proc. of the 16th International Conference on Supercomputing, pp. 199-208, 2002 https://doi.org/10.1145/514191.514220
  6. Batcher, K., and Walker, R.: Cluster Miss Prediction with Prefetch on Miss for Embedded CPU Instruction Caches, In Proc. of the 2004 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems, pp. 24-34, 2004 https://doi.org/10.1145/1023833.1023839
  7. Hsu, W.C. and Smith, J.E.: A Performance Study of Instruction Cache Prefetching Methods, IEEE Transactions on Computers, pp, 497-508, 1998 https://doi.org/10.1109/12.677221
  8. Lee, C., Potkonjak, M., and Mangione-Smith, W.H.: Mediabench: A tool for evaluating and synthesizing multimedia and communications systems, In Proc. of the 30th Annual International Symposium on Microarchitecture, pp. 330-335, 1997
  9. SPEC2000 benchmarks, http://www.spec.org
  10. Burger, D., Austin, T.M., and Bennett, S.: Evaluating future micro-processors: the SimpleScalar tool set. Technical Report TR-1308, Univ. of Wisconsin-Madison Computer Sciences Dept., 1996
  11. Hennessy, J.L. and Patternson, D.A.: Computer Architecture: A Quantitative Approach, Second Edition, Morgan Kaufmann Publishers, 1996
  12. Jung-H. L., Seh-woong J, Shin-D. K., and Charles C. W.: An Intelligent Cache System with Hardware Prefetching for High Performance, IEEE Transactions on Computers, pp. 607-616, 2003 https://doi.org/10.1109/TC.2003.1197127
  13. V. Milutinovic, M. Tomasevic, B. Markovic, and M. Tremblay: The Split Temporal/Spatial Cache: Initial Performance Analysis, Proceedings of the SCIzzL-5, Santa Clara, California, USA, pp. 72-78, 1996