서지주요정보
Code generation algorithms for dual data memory banks of digital signal processors = 디지털 신호 처리기의 듀얼 데이터 메모리 뱅크를 위한 코드 생성 알고리즘
서명 / 저자 Code generation algorithms for dual data memory banks of digital signal processors = 디지털 신호 처리기의 듀얼 데이터 메모리 뱅크를 위한 코드 생성 알고리즘 / Jeong-Hun Cho.
저자명 Cho, Jeong-Hun ; 조정훈
발행사항 [대전 : 한국과학기술원, 2003].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8014757

소장위치/청구기호

학술문화관(문화관) 보존서고

DEE 03055

SMS전송

도서상태

이용가능

대출가능

반납예정일

초록정보

Virtually every vendor of {\em digital signal processors}~(DSPs) supports a Harvard architecture, which provides on-chip multi-memory banks that allow the processor to access multiple words of data from memory in a single instruction cycle. Also, all existing {\em fixed-point} DSPs are known to have irregular architecture with {\em heterogeneous} registers, which contains multiple register files that are distributed and dedicated to different sets of instructions. Although there have been several studies conducted to efficiently assign data to multi-memory banks, most of them assumed processors with relatively simple, homogeneous general-purpose registers. Therefore, several vendor-provided compilers for DSPs that I examined were unable to efficiently assign data to multiple data memory banks; thereby often failing to generate highly optimized code for their machines. As a consequence, programmers for these DSPs often manually assign program variables to memories so as to fully utilize multi-memory banks in their code. This paper reports our recent attempt to address this problem by presenting an algorithm that helps the compiler to efficiently assign data to multi-memory banks. Our algorithm differs from previous work in that it assigns variables to memory banks in separate, {\em decoupled} code generation phases, instead of a single, tightly-coupled phase. The experimental results have revealed that our decoupled algorithm greatly simplifies our code generation process; thus our compiler runs extremely fast, yet generates target code that is comparable in quality to the code generated by a coupled approach. I also presented a runtime environment for dual data memory banks and runtime memory optimization technique. Because this algorithm can be used for decreament of runtime memory, as a result, larger program can be executed in on-chip memory. Therefore, we can get performance enhancement in large programs.

일반적으로 디지털 신호 처리기 (DSP) 제공 업체는 한 명령어 사이클에 메모리로부터 여러 워드를 동시에 액세스할 수 있는 온칩(on-chip) 멀티 메모리 뱅크를 제공하는 하버드 구조를 지원한다. 또한 대부분의 DSP는 분산되어지고 명령어들에 고정되어 있는 다중 레지스터 파일을 포함하는 이종 레지스터를 가지는 비규칙적인(irregular) 구조를 가지는 것으로 알려져 있다. 비록 다중 메모리 뱅크에 효율적으로 배정을 하기위해 몇몇의 연구가 행해졌지만 그 대부분은 상대적으로 단순한 범용 동종의 레지스터를 사용한 프로세서로 가정하였다. 따라서 우리가 조사한 DSP의 업체에서 제공하는 컴파일러는 다중 메모리 뱅크에 데이터를 효율적으로 배정할 수 없기 때문에 그 DSP를 위한 최적화된 코드를 생성할 수 없었다. 결과적으로 프로그래머는 다중 메모리 뱅크를 최대한 이용하기 위해서는 직접 수작업으로 프로그램 변수를 메모리에 배정을 해야만 한다. 본 논문에서는 컴파일러에서 데이터를 다중 메모리 뱅크에 효율적으로 배정하는 알고리즘을 제시한다. 우리의 알고리즘은 이전에 행해졌던 하나의 단계에서 모든 작업을 행하는 것과는 달리 메모리 뱅크에 변수를 배정하기 위해 여러 단계로 나누어서 수행되어진다. 실험 결과로부터 우리의 알고리즘은 코드 생성 과정의 단순화로 아주 빠른 컴파일 속도를 얻을 수 있었고 이전의 작업에 필적할 만한 코드 성능을 얻음을 확인하였다. 또한 듀얼 데이터 메모리 뱅크를 지원하기 위한 실행환경을 제안하였다. 이전 연구에서 사용된 방법은 컴파일 시간에 정적으로 모든 함수들에서 사용될 변수들의 위치를 정한다. 따라서 필요없는 메모리의 위치를 할당하고 있기 때문에 메모리의 낭비가 심해지게 되는 단점이 있다. 그러나 제안한 알고리즘은 동적으로 함수에서 사용되는 변수들이 할당 되기 때문에 메모리의 낭비가 적게 된다. 또한 X 메모리와 Y 메모리의 사이즈의 균형을 맞춰 최대 실행 메모리의 크기를 줄였다. 이는 온칩메모리의 사용을 최대화 하기 때문에 결과적으로 실행속도의 향상을 가져올 수 있다.

서지기타정보

서지기타정보
청구기호 {DEE 03055
형태사항 ix, 88 p. : 삽도 ; 26 cm
언어 영어
일반주기 저자명의 한글표기 : 조정훈
지도교수의 영문표기 : Yun-Heung Paek
지도교수의 한글표기 : 백윤흥
학위논문 학위논문(박사) - 한국과학기술원 : 전기및전자공학전공,
서지주기 Reference : p. 86-88
주제 compiler
dual data memory bank
algorithm
DSP
컴파일러
듀얼 데이터 메모리 뱅크
알고리즘
디지털 신호 처리기
QR CODE qr code