DOI QR코드

DOI QR Code

16비트 명령어 기반 프로세서를 위한 페어 레지스터 할당 알고리즘

Pair Register Allocation Algorithm for 16-bit Instruction Set Architecture (ISA) Processor

  • 이호균 (고려대학교 전자전기공학과) ;
  • 김선욱 (고려대학교 전기전자전파공학부) ;
  • 한영선 (경일대학교 전자공학과)
  • 투고 : 2011.11.09
  • 심사 : 2011.12.08
  • 발행 : 2011.12.31

초록

다양한 영역에서32비트 명령어 기반 마이크로프로세서의 사용이 일반화되고 있지만, 임베디드 시스템 환경에서는 여전히 16비트 명령어 기반 프로세서가 널리 사용되고 있다. 인텔 8086, 80286 및 모토로라 68000, 그리고 에이디칩스의 AE32000과 같은 프로세서들이 그 대표적인 예이다. 그러나, 16비트 명령어들은 32비트 명령어보다 그 크기로 인해 상대적으로 낮은 표현력을 가지고 있어 동일한 기능을 구현하는데 32비트 명령어 기반 프로세서에 비해 많은 명령어를 수행해야 한다는 문제점을 가지고 있다. 실행 명령어 수는 프로세서의 실행 성능과 밀접한 관련을 가지므로 16비트 명령어셋의 표현력을 향상시켜 성능 저하 문제를 해결할 필요성이 있다. 본 논문에서는 기존의 그래프 컬러링 기반 레지스터 할당(Graph-coloring based Register Allocation) 알고리즘을 보완한 페어 레지스터 할당(Pair Register Allocation) 알고리즘을 제안하고, 이를 통한 성능 분석 결과 및 추후 연구 방향을 제시하고자 한다.

Even though 32-bit ISA based microprocessors are widely used more and more, 16-bit ISA based processors are still being frequently employed for embedded systems. Intel 8086, 80286, Motorola 68000, and ADChips AE32000 are the representatives of the 16-bit ISA based processors. However, due to less expressiveness of the 16-bit ISA from its narrow bit width, we need to execute more 16-bit instructions for the same implementation compared to 32-bit instructions. Because the number of executed instructions is a very important factor in performance, we have to resolve the problem by improving the expressiveness of the 16-bit ISA. In this paper, we propose a new pair register allocation algorithm to enhance an original graph-coloring based register allocation algorithm. Also, we explain about both the performance result and further research directions.

키워드

참고문헌

  1. S.P. Morse, W.B. Pohlman and B.W. Ravenel. "The Intel 8086 Microprocessor: a 16-bit Evolution of the 8080", IEEE Computer, Vol.11, pp.18-27, 1978.
  2. D.A. Patterson. "A performance evaluation of the Intel 80286", ACM SIGARCH Comput. Archit. News, Vol.10, pp.16-18, 1982. https://doi.org/10.1145/641559.641562
  3. E. Stritter and T. Gunter. "Microsystems a Microprocessor Architecture for a Changing World: The Motorola 68000", IEEE Computer, Vol.12, pp.43-52, 1979.
  4. H. Kim, D. Jung, H. Jung, Y. Choi, J. Han, B. Min, and H. Oh. "AE32000B: a Fully Synthesizable 32-Bit Embedded Microprocessor Core", ETRI Journal, Vol.25, pp.337-344, 2003. https://doi.org/10.4218/etrij.03.0303.0008
  5. M. Poletto and V. Sarkar. "Linear Scan Register Allocation". ACM Trans. Program. Lang. Syst., Vol.21, pp.895-913, 1999. https://doi.org/10.1145/330249.330250
  6. G.J. Chaitin, "Register Allocation and Spilling via Graph Coloring". In Proc. 1892 SIGPLAN Symp. on Compiler construction, pp.98-105, 1982.
  7. EEMBC. Characterization of the EEMBC Benchmark Suite. http://eembc.org/benchmark/characterization.pdf.
  8. GNU Compiler Collection, http://gcc.gnu.org
  9. M.M. Brandis and H. Mossenbock. "Single-pass generation of static single-assignment form for structured languages". ACM Trans. Program. Lang. Syst., Vol.16, pp.1684-1698, 1994. https://doi.org/10.1145/197320.197331
  10. C. Wimmer and H. Mossenbock. "Optimized interval splitting in a linear scan register allocator". In Proc. 1st ACM/USENIX int. conf. Virtual execution environments, pp.132-141, 2005.
  11. L. Spracklen, Y. Chou, and S. G. Abraham. "Effective Instruction Prefetching in Chip Multiprocessors". In Proc. 11th Int. Symp. HPCA, pp.225-236, 2005.

피인용 문헌

  1. A LEA Implementation study on UICC-16bit vol.24, pp.4, 2014, https://doi.org/10.13089/JKIISC.2014.24.4.585