earticle

논문검색

논문

작은 명령어 인코딩 프로세서를 위한 레지스터 뱅크 전환 방법의 평가

원문정보

Evaluation of Register Bank Change Mechanisms for Compact Encoding Processors

이제형, 문수묵, 최형규, 정동헌

피인용수 : 0(자료제공 : 네이버학술정보)

초록

영어

Embedded systems often require small code size due to their tight memory constraints. Although the reduced encoding architectures such as the ARM THUMB or the MIPS16 can successfully reduce the code size due to its half-sized instructions, they suffer from higher spills due to their shortened register fields which constrain available registers, thus affecting the code size and the performance negatively. One solution is reconstruction the original register file into the banked one. This can make all of the original registers available for register allocation, thus reducing the spills. This requiresefficient banked register allocation by partitioning the code into two regions, one for each register bank. One important factor that affects the partitioning is the bank change mechanism, and two bank change mechanisms have been proposed, toggling and selection. Toggling simplifies the code partitioning, while selection is flexible in the code partitioning which, in theory, can distribute the register pressure better. This paper evaluates both mechanisms in the same context of dual register banks to understand their impact on the code size and the performance. Our experimental results indicate that selection fails to achieve smaller code or better performance than toggling due to excessive inter-bank copies.

한국어

내장형 시스템은 메모리의 제약으로 인해 흔히 작은 코드사이즈를 요구한다. ARM THUMB 이나 MIPS16 과 같 이 절반 크기의 인코딩을 갖는 아키텍쳐는 코드 사이즈를 성공적으로 줄였으나, 동시에 줄어든 레지스터 필드의 크 기로 인해 가용 레지스터 개수가 줄어들고 더 많은 스필(spill) 을 양산하여 코드 사이즈와 성능에 악영향을 준다. 한 가지 해결방법은 레지스터 구조에 뱅크를 도입하는 것이다. 이렇게 하면 기존의 모든 레지스터를 레지스터 할당 에 사용할 수 있어서 스필 이 줄어든다. 이 과정에서 효과적인 레지스터 할당기법이 필요하며 우리는 코드를 두 가 지 영역으로 분할하고 각 역을 서로 다른 뱅크에 할당하는 방법을 사용한다. 코드 분할에 영향을 미치는 중요한 요 소 중 하나는 뱅크 전환 메커니즘인데 지금까지 toggling 과 selection 방법이 소개되었다. Toggling 은 코드 분할 을 간단하게 해 주는 반면 selection 은 보다 유연한 코드 분할이 가능하기에 이론적으로는 레지스터 요구도를 더 잘 분배할 수 있다. 이 논문은 두 메커니즘을 두 개의 레지스터 뱅크를 가지는 동일한 환경에 구현하여 코드 사이 즈와 성능에서의 효과를 비교하고자 한다. 실험결과를 통해 selection 은 뱅크 간의 copy 가 과도하게 삽입되는 관 계로 toggling 에 비해 작은 코드나 높은 성능을 보여주지 못했다.

목차

요약
 Abstract
 1. 서론
 2. 작은 명령어 인코딩 구조를 위한 뱅크레지스터 할당
 3. 두 가지 뱅크 전환 메커니즘
  3.1 BankToggling
  3.2 Bank Selection
 4. 영역 기반 뱅크 레지스터 할당
  4.1 Toggling 과 Selection 을 위한 Heuristic
 5. 실험 결과
  5.1 코드 사이즈의 측정
  5.2 스필 감소에 대한 분석
  5.3 성능 평가
 6. 관련연구
 7. 결론
 참고문헌

저자정보

  • 이제형 Je-Hyung Lee. 서울대학교 공과대학 전기컴퓨터공학부
  • 문수묵 Soo-Mook Moon. 서울대학교 공과대학 전기컴퓨터공학부
  • 최형규 HyungKyu Choi. 서울대학교 공과대학 전기컴퓨터공학부
  • 정동헌 Dong-Heon Jung. 서울대학교 공과대학 전기컴퓨터공학부

참고문헌

자료제공 : 네이버학술정보

    함께 이용한 논문

      0개의 논문이 장바구니에 담겼습니다.