Implementation of Optimizing Compiler for Bus-based VLIW Processors

버스기반의 VLIW형 프로세서를 위한 최적화 컴파일러 구현

  • Published : 2000.04.15

Abstract

Modern microprocessors exploit instruction-level parallel processing to increase the performance. Especially VLIW processors supported by the parallelizing compiler are used more and more in specific applications such as high-end DSP and graphic processing. Bus-based VLIW architecture was proposed for these specific applications and it was designed to reduce the overhead of forwarding unit and the instruction width. In this paper, a optimizing scheduling compiler developed for the proposed bus-based VLIW processor is introduced. First, the method to model interconnections between buses and resource usage patterns is described. Then, on the basis of the modeling, machine-dependent optimization techniques such as bus-to-register promotion, copy coalescing and operand substitution were implemented. Optimization techniques for general-purpose VLIW microprocessors such as selective scheduling and enhanced pipelining scheduling(EPS) were also implemented. The experiment result shows about 20% performance gain for multimedia application benchmarks.

최근의 고성능 프로세서들은 명령어 수준의 병렬처리(Instruction Level Parallel Processing) 를 이용하여 성능향상을 꾀하고 있다. 특히 컴파일러의 도움을 받는 VLIW(Very Long Instruction Word) 방식의 프로세서는 고성능 DSP 및 그래픽 프로세싱 등 특수한 분야에서 사용이 증가하고 있다. 이러한 특수 목적의 프로세서 구조로서 버스 기반의 VLIW 구조가 제안되었으며[2], 이는 포워딩 하드웨어의 부담과 명령어 폭을 줄여주는 장점을 갖는다. 본 논문에서는 제안된 버스 기반의 VLIW 프로세서를 위해 개발된 최적화 스케쥴링 컴파일러를 소개한다. 우선 버스간 연결 및 자원사용을 모델링 하는 기법을 설명하고 이를 바탕으로 레지스터-버스 승진, 복사자 융합, 오퍼랜드 대체 등의 기계 의존적인 최적화 기법과 선택 스케쥴링, EPS(Enhanced Pipelining Scheduling) 기법 등 VLIW 스케쥴링 기법을 어떻게 구현했는지 설명한다. 이러한 최적화 기법들을 멀티미디어 응용 프로그램에 대하여 적용하여 보았고 약 20%의 성능향상을 보임을 확인하였다.

Keywords

References

  1. A. Abnous, J. Gray, A. Naylor and N. Bagherzadeh. 'VIPER: A VLIW Integer Microprocessor,' Journal of Solid-State Circuits, 28(12):1377-1382, December. 1993 https://doi.org/10.1109/4.262015
  2. Dowan Kim, Microarchitecture Design of a VLIW Microprocessor. MS thesis, Seoul National University, 1997
  3. S.-M Moon and K. Ebcioglu. 'Parallelizing Non-numerical Code with Selective Scheduling and Software Pipelining,' ACM Transactions of Programming Languages and Systems, 19(6), November, 1997 https://doi.org/10.1145/267959.269966
  4. K. Ebcioglu and T. Nakatani. 'A New Compilation Techniques for Parallelizing Loops with Unpredictable Branches on a VLIW architecture,' In Languages and Compilers for Parallel Computing, PP. 213-219. MIT Press, 1989
  5. V.H. Allen et al. Software pipelining. ACM Computing Survey, 27(3), September 1995 https://doi.org/10.1145/212094.212131
  6. A. Aho, R. Sethi and J. Ullman, Compilers: Principles, Techniques and Tools. Addison-Wesley, 1986
  7. Fred C. Chow and John L. Hennessy. 'The Priority-Based Coloring Approach to Register Allocation,' ACM Transactions on Programming Languages and Systems, Vol. 12, No. 4, pages 501-536, Oct.1990 https://doi.org/10.1145/88616.88621
  8. B. Rau, 'Iterative Modulo Scheduling: An Algorithm for Software Pipelining Loops,' Proceedings of the 27th Annual International Symposium on Microarchitecture(Micro-27), Nov. 1994 https://doi.org/10.1109/MICRO.1994.717412
  9. K. Ebcioglu, R. Grove, K.-C. Kim, G. Silberman, and I. Ziv, 'VLIW Compilation Techniques in a Superscalar Environment,' In Proceedings of the SIGPLAN 1994 Conference on Programming Language Design and Implmentation, pages 36-48, June 1994 https://doi.org/10.1145/178243.178247
  10. A.V.S. Sastry and Roy D.C. Ju, 'A New Algorithm for Scalar Register Promotion based on SSA Form' In Proceedings of the SIGPLAN 1998 Conference on Programming Language Design and Implmentation, June 1998 https://doi.org/10.1145/277650.277656