전송언어 등록
Register transfer language컴퓨터 과학에서 레지스터 전송 언어(RTL)는 컴파일러에서 사용되는 것과 같이 조립 언어에 매우 가까운 일종의 중간 표현(IR)이다. 그것은 구조의 등록-전송 수준에서 데이터 흐름을 기술하는데 사용된다. 학술 논문과 교과서는 종종 RTL의 형태를 건축 중립적인 어셈블리 언어로 사용한다. RTL은 GNU 컴파일러 컬렉션(GCC), Zephyr를 포함한 여러 컴파일러에서 특정 중간 표현의 이름으로 사용되며, 유럽 컴파일러 프로젝트 CerCo와 CompCert를 포함한다.
역사
![]() |
RTL의 이면에 있는 아이디어는 먼저 "재타겟형 Peephole Optimizer의 설계와 적용"에서 설명되었다.[1]
GCC
GCC에서 RTL은 KIMPLE 표현에서 생성되어 GCC 중간에서 다양한 패스로 변환된 후 조립 언어로 변환된다.
GCC의 RTL은 대개 Lisp S-표현처럼 보이는 형태로 작성된다.
(세트 (reg:SI 140) (플러스:SI (reg:SI 138) (reg:SI 139)))
이 부작용 표현에는 "등록부 138의 내용을 등록부 139의 내용과 합쳐서 그 결과를 등록부 140에 저장"이라고 되어 있다. SI는 각 레지스터에 대한 접근 모드를 지정한다. 예제에서 그것은 "SImode," 즉 "32비트 정수로 레지스터에 액세스"이다.
생성된 RTL 순서는 GCC가 코드를 생성하는 프로세서의 특성에 어느 정도 의존한다. 그러나 RTL의 의미는 대상과 다소 독립적이다. 즉, RTL이 어떤 프로세서를 위해 생성되었는지 알 수 없이 RTL의 일부를 읽고 이해할 수 있다. 마찬가지로, RTL의 의미는 대개 프로그램의 원래 고급 언어에 의존하지 않는다.
레지스터 전송 언어는 디지털 모듈의 레지스터들 사이의 마이크로 조작 시퀀스를 상징적인 형태로 표현하기 위한 시스템이다. 디지털 컴퓨터의 내부 조직을 간결하고 정밀한 방법으로 기술할 수 있는 편리한 도구다. 디지털 시스템의 설계 프로세스를 용이하게 하는 데도 사용할 수 있다.[2]
참조
- ^ "Davidson and Fraser; The Design and Application of a Retargetable Peephole Optimizer; ToPLaS v2(2) 191-202 (April 1980)" (PDF).
- ^ Mano, Morris M. (1992). Computer System Architecture (3rd Edition). Prentice Hall. p. 94. ISBN 0131755633.