DSP 시스템구현시메모리최소화를위한 Fine-grained 모델...

19
I . 서 최근 VLSI 설계 기술의 비약적인 발전에 따라 한 양의 데이터를 실시간에 처리하는 디지털 신호처리 시스템의 연구와 개발이 활발히 이루어지고 있으며, 시 스템 설계와 구현 기술이 발전하고 제품의 개발 주기가 짧아짐에 따라 디지털 시스템의 빠른 설계와 제약 조건 만족하는 DSP 설계의 연구와 개발이 요구되고 있다 [1]. 특히, 최근 멀티미디어를 위한 DSP 알고리즘은 복잡도가 증가하고 연산을 위한 데이터의 양이 증가함 에 따라 데이터 압축 및 연산량의 감소를 위한 시스템 설계가 요구되고 있다. 제한된 크기의 on-chip 메모리 를 갖는 DSP 프로세서에서의 실행을 목적으로 하는 DSP 시스템 구현시, 외부 메모리의 사용이 요구될 경 우 동작 속도와 소모 전력면에서 영향을 미친다. 따라 DSP 프로세서에서 실행되는 DSP 알고리즘은 코드 크기와 메모리 사용 요구량을 최소화할 필요가 있다. 특히, multi-rate 시스템의 경우 기존의 컴파일러에서 지원하는 식으로는 생성된 코드가 대해 질 수 있어, 코드와 버퍼 요구량을 최적화하는 스케쥴링과 버퍼 할 당 알고리즘이 필요하다. 코드와 버퍼 메모리의 크기는 의존적인 관계를 가지고 있어 다양한 식을 통하여 코 드와 버퍼 메모리 사용량을 최적화하는 알고리즘이 개 발되었다[2]~[5]. COSSAP 시스템에서 context-switch 오버헤드와 모듈의 activation을 최적화하는 코드 최적화 스케쥴링 알고리즘이 채택되었다[2]. 채택된 스케쥴링 알고리즘 은 버퍼 메모리 영역의 제약이 크지 않은 시스템에서 효 율적인 throughput을 얻을 수 있으나, 프로그램머블 DSP 칩은 내부에 제한된 크기의 코드 메모리와 버퍼 메모리를 갖고 있어 추가적인 메모리 요구 시 외부 메모 리의 사용으로 요구되는 전력 소모량이 증가하고 DSP 프로그램 수행시간이 늘어난다. 이와 같은 단점을 보완하고자 U.C.Berkeley의 Ptolemy 시스템[6]에서는 버퍼 메모리 크기 최적화를 위 한 시도로 타겟 코드의 루프화를 위하여 synchronous dataflow 모델 (SDF)[7],[8]에 기반한 bottom-up 의 APGAN과 top-down 식의 RPMC 알고리즘이 구 현되었다[9]. 그러나, 이들 알고리즘은 응용에 따라 상 이한 성능을 보여 이의 적합한 선택이 주요한 문제가 되 었으며 이를 위한 해결 법을 제시하였다[10]. 스케쥴 결과에 따라 일정 크기의 버퍼 메모리를 모듈간의 데이 터 저장과 전송을 위하여 할당하게 된다. Ptolemy 시 스템은 일정 크기로 할당된 버퍼 메모리에 대하여 데이 94 DSP 시스템 구현시 메모리 최소화를 위한 Fine-grained 모델 기반의 버퍼 할당 알고리즘 황선영 · 한의범 ·김식 논문에서는 내부 메모리의 제약조건하에서 코드와 버퍼 사용량의 최소화가 요구되는 DSP 시스템 구현의 효율적인 코드 생성 알고리즘을 제안한다. 제안된 알고리즘에서는 fine-grained 식의 버퍼 생존 구간 모델에 기반한 공유 버퍼 사용 분석을 통하여 메모리 사용량을 최소화한다. 알고리즘의 성능 비교를 위해서 예제 회로들 대해 실험한 결과, 메모리 사용 측면에서 Ptolemy 시스템에서 제안한 APGAN과 RPMC 스케쥴러에 기반한 coarse-grained 분석 식의 버퍼 할당 알고리즘에 비하여 각각 평균 24.0%, 19.3%의 향상된 결과를 보인다. 황선영, 김 : 서강대학교 한의범 : 텔리뷰(주)

Transcript of DSP 시스템구현시메모리최소화를위한 Fine-grained 모델...

Page 1: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

I. 서 론

최근VLSI 설계기술의비약적인발전에따라방대한 양의 데이터를 실시간에 처리하는 디지털 신호처리시스템의연구와개발이활발히이루어지고있으며, 시스템설계와구현기술이발전하고제품의개발주기가짧아짐에따라디지털시스템의빠른설계와제약조건을만족하는DSP 설계의연구와개발이요구되고있다[1]. 특히, 최근 멀티미디어를 위한 DSP 알고리즘은복잡도가 증가하고 연산을 위한 데이터의 양이 증가함에 따라 데이터 압축 및 연산량의 감소를 위한 시스템설계가요구되고있다. 제한된크기의 on-chip 메모리를 갖는 DSP 프로세서에서의 실행을 목적으로 하는DSP 시스템 구현시, 외부 메모리의 사용이 요구될 경우 동작 속도와 소모 전력면에서 영향을 미친다. 따라서 DSP 프로세서에서실행되는 DSP 알고리즘은코드크기와 메모리 사용 요구량을 최소화할 필요가 있다.특히, multi-rate 시스템의 경우 기존의 컴파일러에서지원하는방식으로는생성된코드가방대해질수있어,코드와 버퍼 요구량을 최적화하는 스케쥴링과 버퍼 할당알고리즘이필요하다. 코드와버퍼메모리의크기는의존적인관계를가지고있어다양한방식을통하여코

드와 버퍼 메모리 사용량을 최적화하는 알고리즘이 개발되었다[2]~[5].COSSAP 시스템에서 context-switch 오버헤드와

모듈의 activation을 최적화하는코드최적화스케쥴링알고리즘이채택되었다[2]. 채택된스케쥴링알고리즘은버퍼메모리영역의제약이크지않은시스템에서효율적인 throughput을 얻을 수 있으나, 프로그램머블DSP 칩은 내부에 제한된 크기의 코드 메모리와 버퍼메모리를갖고있어추가적인메모리요구시외부메모리의 사용으로 요구되는 전력 소모량이 증가하고 DSP프로그램수행시간이늘어난다. 이와 같은 단점을 보완하고자 U.C.Berkeley의

Ptolemy 시스템[6]에서는버퍼메모리크기최적화를위한 시도로 타겟 코드의 루프화를 위하여 synchronousdataflow 모델 (SDF)[7],[8]에기반한 bottom-up 방식의 APGAN과 top-down 방식의 RPMC 알고리즘이 구현되었다[9]. 그러나, 이들 알고리즘은 응용에 따라 상이한 성능을 보여 이의 적합한 선택이 주요한 문제가 되었으며 이를 위한 해결 방법을 제시하였다[10]. 스케쥴결과에따라일정크기의버퍼메모리를모듈간의데이터 저장과 전송을 위하여 할당하게 된다. Ptolemy 시스템은일정크기로할당된버퍼메모리에대하여데이

94

DSP 시스템구현시메모리최소화를위한

Fine-grained 모델기반의버퍼할당알고리즘

황선영·한의범·김식

본논문에서는내부메모리의제약조건하에서코드와버퍼사용량의최소화가요구되는 DSP 시스템구현의효율적인 코드 생성 알고리즘을 제안한다. 제안된 알고리즘에서는 fine-grained 방식의 버퍼 생존 구간 모델에기반한공유버퍼사용분석을통하여메모리사용량을최소화한다. 알고리즘의성능비교를위해서예제회로들에대해실험한결과, 메모리사용측면에서 Ptolemy 시스템에서제안한 APGAN과 RPMC 스케쥴러에기반한coarse-grained 분석방식의버퍼할당알고리즘에비하여각각평균24.0%, 19.3%의향상된결과를보인다.

황선영, 김식 : 서강대학교

한의범: 텔리뷰(주)

Page 2: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

터의생존구간분석하고오버랩이발생하지않는데이터생존구간은버퍼메모리를공유하여데이터를저장함으로써 버퍼 메모리 사용량의 최적화를 시도하였다[11]. 이 시스템은버퍼메모리생존구간을정의함에있어서버퍼에존재하는데이터수와시간정보를고려하지않고데이터의존재여부에따라생존구간을정의하였다. Coarse-grained 모델로 정의된 이 방식은 데이터가로드됨에따라공유가능한메모리의일부영역을 간과함으로써 버퍼 메모리 영역의 사용량을 최적화할수없었다. 본논문에서제안한버퍼할당알고리즘은일반적인

DSP 시스템 기술에 사용되는 SDF 모델에 기반하여개발되었으며, 스케쥴링 알고리즘으로 응용 시스템에관계없이 최적화된 스케쥴 결과를 생성하는 DSPsim시스템의 클러스터링 알고리즘을 이용하였다[10]. 제안된버퍼메모리생존구간의분석방식은DSPsim 시스템의스케쥴결과를기반하여일정크기로고정된버퍼메모리를모듈의구동횟수와생성소모되는데이터수에따라사용영역을분할하고분할된영역에데이터가 저장되고 로드되는 시점을 정확히 분석하는 fine-grained 모델을 사용함으로써 coarse-grained 모델을이용한 ptolemy 시스템에 비하여 버퍼 메모리 사용량을줄일수있었다. 제안된클러스터링알고리즘과데이터생존구간분석방식은 Ptolemy의 APGAN 알고리즘과 생존 구간 분석 방식에 비하여 24.0%의 버퍼 메모리사용량감소를보였으며, RPMC 알고리즘과생존구간분석방식에비하여 19.3%의버퍼메모리사용량감소를보인다. 제 II장에서는제안된DSPSIM 시스템의개관을보

이고, 제 III장에서는배경이론으로DSP 시스템시뮬레이션방식과버퍼메모리최적화기법으로사용된스케쥴링과 버퍼 할당 알고리즘에 대해 기술하고, 제 IV장에서는제안된버퍼메모리최적화알고리즘을위한클러스터링 방식과, 버퍼 메모리 생존 구간 분석 방식에대하여 설명한다. 제 V장에서는 Ptolemy 시스템에서사용된 APGAN과 RPMC 알고리즘의 성능 분석을 위하여 사용된 벤치마크에 대하여 제안된 알고리즘을 적용하여생성된스케쥴결과와요구되는버퍼메모리크기를 분석하고 결과를 제시한다. 마지막으로 제 VI장에서는본논문의결론과추후과제를기술한다.

II. 배경이론

1. SDF 그래프모델

데이터흐름에기반을둔시스템의효율적인표현을위하여 SDF 그래프 모델이 Lee와 Messerschmitt에의해 제안되었다[7]. SDF 그래프 모델은 multi-rateDSP 시스템을 효율적으로 표시하기 위하여 고안되었다. 일반적으로 DSP 응용 시스템을 구성하는 대부분의모듈이실행에필요한입력데이터수와실행에따라생성되는출력데이터수가고정되어있으므로SDF 그래프모델은그래프상에이정보를포함한다.데이터 흐름에 기반을 둔 시스템을 SDF 그래프로

표현하기위하여모듈의실행에필요한데이터수와모듈의 실행 결과에 의해 생성되는 데이터 수, 아크의 초기데이터수등에대한정보가필요하다. SDF 그래프의아크 α에대하여데이터를생성하는모듈을 src(α),src(α)에 의하여 생성되는 데이터 수를 prod(α), 아크α에의하여구동되어 α에존재하는데이터를소모하는모듈을 snk(α), snk(α)에 의하여 소모되는 데이터의수를 cons(α), α에 존재하는 초기 데이터 수를delay(α)라 정의한다. SDF 그래프를 구성하는 각 모듈들의실행횟수는시스템의입력데이터에대해모듈간의 상대적인 실행 횟수인 반복 벡터(repetitionvector)로나타내며, 모듈 v에대한반복벡터는 r(v)로나타낸다. 구성모듈들에대하여 r≠0 아닌반복벡터가 존재할 때, 구성 모듈들이 자신의 반복 벡터 값만큼실행될경우모든아크에서소모되는데이터수와생성되는데이터수가같게되어실행초기상태로되돌아간다. 그림 1에 SDF 그래프의 예를 보인다. 그림에서모듈 A와 B를연결하는아크를 α라할때 src(α)는 모듈 A, snk(α)는 모듈 B를 나타내며, 모듈 A의 실행에의해생성된데이터수 prod(α)와 모듈 B에의하여소비되는 데이터 수 cons(α)는 각각 2, 3이고 초기 데이터delay(α)는 1의값을갖는다. 여기서모듈A와B의반복벡터는 r(A)=3과 r(B)=2의값을갖는다. SDF 그래프는 그림에서와 같이 모듈의 실행시 소

모생성되는데이터정보를갖고있으므로, 모듈이구성하는 시스템의 균형 (안정성) 여부, 모듈의 실행 횟수,각 아크의 버퍼 요구량, 그리고 수행 순서를 컴파일 시

DSP 시스템구현시메모리최소화를위한Fine-grained 모델기반의버퍼할당알고리즘 95

그림1. SDF 그래프

Page 3: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

96 Telecommunications Review·제11권 1호·2001. 1~2월

에 결정할 수 있다[12],[13]. 따라서 시뮬레이션 수행시결정해야하는문제들을컴파일시에결정하여 run-time 오버헤드를 줄이고 빠른 시뮬레이션 통해 설계된시스템을검증할수있다.

2. 코드루프화를통한버퍼메모리압축기법

본절에서는타겟코드가루프화되었을때버퍼메모리 크기에 미치는 영향을 보인다. SDF 그래프에서선행버텍스의수행에따라생성된토큰은후행버텍스가 수행되기 전까지 버퍼에 저장된다. 이에 선행 버텍스의반복횟수가증가함에따라생성된토큰을저장하기 위한 버퍼 메모리의 크기가 증가하게 되어, 제한된

메모리 크기하에서 타겟 코드를 수행하기 위해서는 버텍스간의 데이터 전송량을 줄이기 위한 선행 버텍스와후행버텍스의반복적수행을통한타겟코드의루프화가 요구된다[5]. 그림 2에 한 SDF에 대한 다른 스케쥴링 결과를 보인다. 그림 2(b)와 그림2(c)는 그림2(a)의 SDF에대한루프스케쥴링에따른코드의압축을 보이며, 그림 2(d)에서는 계층적 루프 스케쥴링에따라 요구되는 데이터 메모리 영역의 크기를 보인다.그림 2(b)의스케쥴A4B12C의경우각버텍스가순차적으로 수행되므로 아크에서 요구되는 버퍼의 수는 각버텍스의수행횟수와생성되는토큰수를곱한값이다.주어진 SDF의 아크 a에 요구되는 버퍼 수는 r(A)*prd(a)=4*1=4이며, 아크 b에 요구되는 버퍼 수는

그림2. 버퍼크기비교

(b) 스케쥴A4B12C에대한코드 (c) 스케쥴A4(B3C)에대한코드

(a) 예제SDF 그래프

(d) 버퍼메모리의사용

아크

a

b

합 계

스케쥴 : A4B12C

4

12

16

스케쥴 : A4(B3C)

4

3

7

Page 4: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

(a) Ptolemy 시스템의버퍼메모리생존구간모델 (b) 실제버퍼메모리사용시간

그림3. 버퍼메모리생존구간모델의예

적인결과를보이고있으나, 샘플링비율이정수배로변환되는 신호를 처리하는 시스템에 대해서 비효율적인결과를보인다. 따라서, DSP 응용시스템의성격에따라 이들 알고리즘 중에서 효율적인 알고리즘을 선택해야 하는 부담이 따른다. 이러한 문제점을 개선하기 위해서 DSPSIM 시스템에서 제안한 클러스터링 알고리즘은 형성될 클러스터의 계층화 레벨과 내외부에서 요구되는버퍼크기를함께고려함으로써DSP 응용시스템의성격에따른샘플링비율의변화에관계없이적은양의버퍼메모리를요구하는스케쥴결과를얻을수있다[10].

III. 버퍼메모리공유를통한메모리비용최적화기법

1. 버퍼메모리생존구간모델링

기존의버퍼메모리최소화는코드의루프화를이용한스케쥴링기법을적용하였다. 이때, SDF 그래프를구성하는 아크를 통해 전달되는 데이터 크기에 해당하는버퍼메모리를할당하며버퍼메모리에저장된데이터의 실제 사용 시간을 고려하지 않았다. 아크에 할당된버퍼메모리의사용시간을분석하고사용시간이오

r(B)*prd(b)=12가 된다. 반면, 그림 2(c)에 보인스케쥴A4(B3C)의경우주기적루프화를통해버텍스B와버텍스C가 1대 3의비율로수행되므로아크b에요구되는 버퍼 수는 r(B)/4*prd(b)=4가 되어, 스케쥴A4B12C의 경우와 비교했을 때 8만큼의 버퍼 메모리요구량이 감소한다. 즉, 생성 코드의 루프화를 통하여요구되는버퍼메모리크기를줄일수있다. 생성된 코드를 루프화하는 스케쥴링 알고리즘으로

bottom-up 방식의클러스터링과정을이용한APGAN과 top-down 방식의 분할 (partitioning) 과정을 이용한 RPMC가 제안되었다[9]. APGAN 알고리즘은 클러스터 내부에서 요구되는 버퍼 크기를 최소화하나 클러스터 외부에서 요구되는 버퍼 크기를 고려하지 않아클러스터 후 외부에서 요구되는 버퍼 크기는 최적화되지 않는다. 이에 따라 샘플링 비율이 정수배로 변환되는 신호를 처리하는 시스템에 대하여 APGAN 알고리즘은코드와데이터저장을위한버퍼크기의최적화된스케쥴결과를나타내고있으나, 샘플링비율이비정수배로 변환되는 신호를 처리하는 시스템에 대해서는 비효율적이다. 반면, RPMC 알고리즘은두개의분할외부에서요구되는버퍼크기는최소화할수있으나분할내부에서요구되는버퍼크기를고려하지않는다. 이에분할 내부에서 요구되는 버퍼 크기는 최적화되지 않으며 APGAN 알고리즘과는 반대로 샘플링 비율이 비정수배로 변환되는 신호를 처리하는 시스템에 대해 효율

A1

A2

A3

A4

A5

B1

B2

B3

A1

A2

A3

A4

A5

B1

B2

B3

Coarse-grained

(15)

DSP 시스템구현시메모리최소화를위한Fine-grained 모델기반의버퍼할당알고리즘 97

Page 5: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

98 Telecommunications Review·제11권 1호·2001. 1~2월

(a) 버퍼메모리공유전 (b) 버퍼메모리공유후

그림4. Ptolemy 시스템의버퍼메모리생존구간그래프

버랩되지 않는 영역을 공유하여 버퍼 메모리의 사용량을 줄일 수 있다. 버퍼 메모리의 사용 시간 분석을 위하여데이터에존재하는실제버퍼메모리생존구간의정의가 필요하며, 생존 구간을 정확하게 지정하는granularity 레벨에 따라 다양한 버퍼 메모리 생존 구간 모델링이 가능하다[11]. 일반적으로 생존 구간 모델링은 coarse-grained 모델과 fine-grained 모델을사용한다. Coarse-grained 모델은버퍼에존재하는데이터 수와 관계없이 데이터의 존재 여부만을 고려하여버퍼 메모리 생존 구간을 결정하는 모델이고, fine-grained 모델은 버퍼에 존재하는 데이터 수에 따라 버퍼메모리생존구간을결정하는모델이다. 그림 3은 예제 SDF 그래프와 루프화된 스케쥴 결

과 2(5A3B)3(5C3D)에대하여버퍼메모리생존구간을 모델링한그림을보인다. 그림에서 Ai는 모듈 A의i번째 실행을 의미한다. 모듈 A와 B를 연결하는 아크에할당된초기버퍼메모리크기는 15이며, 그림 3(a)와 그림 3(b)에서 이를 다른 granularity 레벨에 따라분석한버퍼메모리생존구간을보인다. 그림 3은루프화된스케쥴결과 2(5A3B)3(5C3D)

에따라모듈A와B를연결하는아크에할당된초기버

퍼 메모리 크기는 15이며, 그림 3(a)와 그림 3(b)에서다른 granularity 레벨에따라생존구간을모델링하였다. 그림 3(a)는 coarse-grained 모델에 따라 모듈 A와 B의 실행에 따라서 저장되는 데이터 수에 관계없이버퍼 메모리에 데이터가 생성되는 시점부터 데이터가모두소모되는시점까지버퍼메모리생존구간모델링한경우이다. 이 모델은모듈 A1의 실행에서 B3의 실행까지 버퍼 메모리의 사용 시간으로 정의되므로 다른버퍼 메모리와 공유가 불가능하다. 그림 3(b)는 fine-grained 모델에 따라 모듈의 실행에 따라서 저장되는데이터수를고려하고버퍼메모리의사용시간과영역이 달라짐에 따라 버퍼 메모리 생존 구간을 정의한다.이 모델은 모듈 A1의 실행에 따라 저장되는 데이터 수가 3이므로 초기 할당 크기 15중 나머지 12개의 버퍼메모리영역은다른데이터에의하여공유될수있다. 이와같이버퍼메모리의생존구간은스케쥴결과에

따라 할당된 초기 버퍼 메모리 크기, 모듈의 실행, 생성소모되는 데이터 수의 정보를 다양한 granularity 레벨로정의함으로써다른모델링이가능하다. Granularity레벨에 따라 버퍼 메모리 생존 구간의 정의가 가능하며,일반적으로 coarse-grained 모델은 생존 구간을 간단히

Page 6: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

DSP 시스템구현시메모리최소화를위한Fine-grained 모델기반의버퍼할당알고리즘 99

정의함으로써 구현의 복잡도가 적으나 버퍼 메모리 공유의 가능성을 줄이게 되며, fine-grained 모델은 버퍼메모리 공유의 가능성을 높이지만 구현의 복잡도가 증가하므로적절한 granularity 레벨의생존구간모델링이요구된다.

2. Ptolemy 시스템의버퍼메모리생존구간모델링

Ptolemy 시스템은버퍼메모리생존구간을스케쥴결과에따라할당된버퍼메모리에초기데이터가저장되는 시점부터 저장된 마지막 데이터가 소모되는 시점으로 버퍼 메모리 생존 구간으로 정의한 coarse-grained 모델을이용하여버퍼할당알고리즘의복잡도를 단순화하였다[11]. 그림 4는 예제 SDF 그래프와스케쥴 결과, 그리고 Ptolemy 시스템의 coarse-grained 모델에 의한 버퍼 메모리의 생존 구간을 보인다. 그림의생존구간그래프를단순화하기위하여모듈A의 5회실행은5A로나타내었으며, 5Ai는 5A의 i 번째실행을의미한다. 그림 4에서 SDF 그래프의 스케쥴 결과는

7(5A4B)6(7CD)9(E2F)이다. 따라서 버퍼 메모리를공유하지 않는 경우 스케쥴 결과에 의하여 초기 할당된전체 버퍼 메모리의 크기는 20+84+7+36+8=156이다. 앞서 설명한 coarse-grained 정의에 의하여모듈A와 B사이의버퍼메모리생존구간은데이터를생성하는 5A1부터 이로 인해 생성된 토큰이 모듈 B의 실행에의하여모두소모할때까지의시간인4B7이며, 요구되는버퍼의 크기는 20이다. 버퍼 메모리 생존 구간 BC는4B1부터 7C6이고 버퍼 메모리 크기는 84, 버퍼 메모리생존 구간 CD는 7C1부터 D6이고 버퍼 메모리 크기는7, 버퍼메모리생존구간DE는D1부터E9이고버퍼메

모리크기는 84, 마지막으로버퍼메모리생존구간 EF는 E1부터 2F9이다. 따라서 버퍼 메모리의 생존 구간AB, CD, EF는서로오버랩되지않으므로, 하나의버퍼메모리로 할당될 수 있다. 공유 버퍼 메모리 사용시 생존 구간 AB의 버퍼 메모리 크기가 20이고 생존 구간CD, EF의 버퍼 메모리 크기에 비하여 크므로 20을 공유 버퍼 메모리의 크기로 정하여 생존 구간 AB, CD,EF에대한데이터를저장하게되면, 공유되기전의버퍼메모리 크기 155는 공유된 후 140으로 15만큼 줄일 수있다.Coarse-grained 모델을 이용하여 생존 구간을 분

석하는경우그림 4의결과와같이두모듈B와C를연결하는 아크에 할당되는 버퍼 메모리와 모듈 D와 E를연결하는 아크에 할당되는 버퍼 메모리의 생존 구간이겹치게되어버퍼메모리를공유할수없었다. 하지만,생존 구간 BC의 버퍼 메모리와 생존 구간 DE의 버퍼메모리는 공유 버퍼 메모리를 사용하여 실행이 가능하다. 그림 5는생존구간BC와DE의버퍼가실제사용되는시간과영역을보인다.스케쥴의 6(7CD) 부분이 실행됨에 따라 사용되는

버퍼 메모리 영역을 분석하면, 모듈 7C의 수행에 대해2*7=14개의 데이터가 소모되고 모듈 D의 수행에 대하여 6개의데이터가버퍼메모리에생성하게된다. 스케쥴결과모듈 7C의실행후모듈 D가실행이되므로7C1의 실행을 위하여 소모한 데이터가 저장되어 있던0-13까지의 영역은 후에 실행되는 모듈 D1의 데이터를 저장하기 위하여 사용될 수 있다. 같은 방식으로7C2의 실행에 따라 5-27까지 이 영역이 공유 가능하며, 모듈 D2의데이터를저장하기위하여사용될수있다. 따라서 두 아크에 데이터 저장을 위하여 필요한 버퍼메모리는max(84, 36)=84이다. Coarse-grained

(a) 생존구간BC의실제데이터생존구간 (b) 생존구간DE의실제데이터생존구간

그림5. 생존구간BC, DE의실제데이터생존구간

4B14B24B34B44B54B64B77C17C27C37C47C57C6

D1

D2

D3

D4

D5

D6

E2

E3

E5

E6

E8

0 5 11 17 23 29 350 13 27 41 55 69 83

Page 7: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

100 Telecommunications Review·제11권 1호·2001. 1~2월

(a) 버퍼메모리공유전

그림6. Fine-grained 버퍼메모리모델에따른생존구간그래프

(b) 버퍼메모리공유후

Page 8: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

DSP 시스템구현시메모리최소화를위한Fine-grained 모델기반의버퍼할당알고리즘 101

4. 정적버퍼할당과동적버퍼할당

III장 2절과 III장 3절에서 granularity 레벨에따른버퍼메모리생존구간분석방식을보이고각각의장단점을설명하였다. 그림 4(b)와 그림 6(b)에서 보인버퍼메모리공유결과는이론적으로가능한값이며, 실제버퍼 메모리 할당은 정적 버퍼 할당 방식과 동적 버퍼할당 방식으로 구현된다. 정적 할당 방식은 버퍼 메모리의생존구간이오버랩되지않는범위에서공유버퍼메모리를 할당하는 방식으로 컴파일 시에 버퍼 메모리할당이 가능하다. 정적 할당 방식은 버퍼 메모리의 효율적인사용을위하여재할당을고려하지않는다. 동적할당 방식은 버퍼 메모리의 공유를 최적화하기 위하여이미할당된버퍼메모리를재배치하므로정적할당방식보다효율적이나 run-time 오버헤드를증가시킨다. 그림 7은 그림 4(a)의 생존 구간 그래프에 대하여

정적할당알고리즘과동적할당알고리즘으로버퍼메모리를할당하는과정을보인다.그림 7(a)는 정적 할당 알고리즘을 적용한 결과를

보인다. 그림에서메모리영역 0에서 19까지는생존구간 AB의버퍼메모리가할당되며, 메모리영역 19에서103까지는 생존 구간 BC의 버퍼 메모리가 할당된다.

모델은 생존 구간 분석을 단순화하여 알고리즘으로 구현하기는 쉬우나 버퍼 메모리 사용량 최적화를 위해서는적합하지않다.

3. Fine-grained 방식의버퍼메모리생존구간모델링

Fine-grained 모델을 사용한 버퍼 메모리의 생존구간을보이고모델링의문제점을알아보기로한다. 그림 6(a)와 그림 6(b)는 그림 4의 SDF 예제와 스케쥴결과에대하여데이터사용시간을분석하여생존구간그래프를 구성하는 fine-grained 모델의 생존 구간 그래프와버퍼메모리공유를보인다. Fine-grained 모델에따라버퍼메모리를공유한경

우 104개의 버퍼 메모리가 요구되며 coarse-grained모델의 경우보다 버퍼 메모리 사용량이 36만큼 줄어들었음을 알 수 있다. Fine-grained 모델은 coarse-grained 모델에 비해 메모리 사용량을 줄일 수 있으나알고리즘의 복잡도가 증가하는 문제점을 갖고 있다.Fine-grained 모델은 coarse-grained 모델로 구성된생존 구간을 데이터가 존재하는 구간에 따라 재분할해야하므로생존구간그래프를구성하는생존구간수가증가한다.

(a) 정적버퍼메모리할당

(b)동적버퍼메모리할당

그림7. 버퍼메모리할당

0

19

139

0

19

103

139

06

19

103

139

06

19

103

139

06

1519

103

139

0

20

127

0

19

103

126

06

19

103

126

06

19

90

103

126

06

19

90

126

06

19

90

126

AB(20)

BC(84)

CD(7)

DE(36)

AB(20)

BC(84) BC(84) BC(84)

CD(7) CD(7) CD(7)

DE(36)

EF(8)

20 20

84 84 84 84

3636 36

7 7 7 78

Page 9: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

102 Telecommunications Review·제11권 1호·2001. 1~2월

그림8. 공유버퍼메모리하한치

다음으로 생존 구간 CD의 버퍼 메모리는 스케쥴 결과에 따라 0에서 19까지 영역에 할당된 생존 구간 AB와오버랩되지 않으므로 0에서 6까지의 영역에 할당된다.다음으로생존구간 DE의 버퍼메모리의크기는 6-19까지의 영역과 90에서 103까지의 영역에 할당되어야하나다른버퍼메모리와생존구간이오버랩되어할당될 수 없다. 따라서 메모리 영역 103에서 139까지 생존구간DE의버퍼메모리가할당된다. 다음으로생존구간EF는스케쥴결과에6부터90까지영역에할당된생존구간 BC와오버랩되지않으므로 6부터 14영역에할당된다. 결과적으로정적할당알고리즘에따라필요로하는버퍼메모리영역은140이다.그림 7(b)에는 동적 버퍼 메모리 할당 과정을 보인

다. 그림에서 메모리 영역 0에서 19까지는 생존 구간AB의 버퍼 메모리가 할당되며, 메모리 영역 19에서103까지는 생존 구간 BC의 버퍼 메모리가 할당된다.다음으로 생존 구간 CD의 버퍼 메모리는 스케쥴 결과에 따라 0에서 19까지 영역에 할당된 생존 구간 AB와오버랩되지 않으므로 0에서 6까지의 영역에 할당된다.다음으로생존구간 DE의 버퍼메모리의크기는 6-19까지의 영역과 90에서 103까지의 영역에 할당되어야하나다른버퍼메모리와생존구간이오버랩되어할당될수없다. 따라서생존구간BC의버퍼메모리는오버랩이발

생하지 않는 구간인 6부터 90까지의 영역으로 재할당된다. 이후 90부터 126까지 영역에 생존 구간 DE의

버퍼메모리가할당된다. 다음으로생존구간EF는스케쥴 결과에 6부터 90까지 영역에 할당된 생존 구간BC와 오버랩되지않으므로 6부터 14영역에 할당된다.그림 7(b)에서 알수있듯이각아크가할당된버퍼메모리의 위치에 따라 127개의 버퍼 메모리로 주어진SDF 그래프를수행할수있다. 그러나, 127개의버퍼메모리로 수행하기 위해서는 할당 시 발생하는 충돌을막기위하여할당구간을재배치해야하는동적할당알고리즘이필요하며이는NP 문제이다[11]. 지금까지 버퍼 메모리 생존 구간 모델링과 버퍼 할

당알고리즘방식과문제점들에대하여살펴보았다. 본 논문에서는 각각의 단점을 보안하는 방식으로

coarse-grained 모델과 fine-grained 모델을 병합하여coarse-grained 모델의비효율성과 fine-grained 모델의 복잡성에 대한 해결을 제시하였고, run-time 오버헤드를 줄이기 위하여 first-fit 정적 할당 알고리즘을사용하였다.

IV. 제안된생존구간분석알고리즘의개요

Coarse-grained 모델을 이용한 생존 구간 분석 방식은버퍼할당알고리즘의복잡도를줄였으나버퍼메모리 공유 가능성을 떨어지는 단점이 있고, fine-grained 모델의 생존 구간 분석 방식은 coarse-

Page 10: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

DSP 시스템구현시메모리최소화를위한Fine-grained 모델기반의버퍼할당알고리즘 103

grained 모델비해생존구간분석에따른버퍼메모리공유 가능성을 높이지만 할당 알고리즘의 복잡도가 크게 증가된다. 본 논문에서는 coarse-grained 모델로구현된생존구간그래프에대하여버퍼메모리하한치를 결정하는 생존 구간에 대하여 fine-grained 모델을이용한분석방식을적용하고버퍼메모리공유를함으로써 알고리즘의 복잡도를 줄이고 버퍼 메모리 공유에따른 메모리 사용량을 최적화 하였다. 제안된 생존 구간분석과정은 coarse-grained 모델의생존구간그래프를 기반으로 하며, fine-grained 모델을 적용할 후보생존 구간 세트 결정 과정, fine-grained 모델에 따른버퍼 메모리 분할 과정, 그리고 버퍼 메모리 공유를 위한생존구간쌍의선택과정으로구성되며다음과같은단계로구분할수있다.

•Step 1 : Coarse-grained 모델로 주어진 생존 구간에 대한 버퍼 메모리 하한치계산 및 후보 생존 구간세트를결정한다. 각후보생존구간세트는 coarse-grained 모델의 생존 구간 분석 방식으로 공유가 불가능한생존구간으로구성된다. •Step 2 : 후보 생존 구간 세트에 대하여 fineg-rained모델을적용하고이를통해데이터의존재시간에따른 실제 버퍼 메모리 사용시간과 영역을 구한다.•Step 3 : 버퍼 메모리 사용시간과 영역 정보를 이용하여 후보 생존 구간 세트중 공유가능한 버퍼 메모

리의생존구간쌍을선택한다. •Step 4 : 선택된생존구간쌍을통합하여생존구간그래프를 재구성하고 버퍼 메모리 하한치를 계산한다. •Step 5 : 재구성된생존구간그래프의버퍼메모리하한치를 기존의 버퍼 메모리 하한치와 비교하여 감소한경우선택된생존구간쌍은하나의생존구간으로 통합하고, 증가한 경우 통합 전의 생존 구간 그래프를유지한다. 메모리하한치를결정하는구간내의모든버퍼생존구간에대해하한치감소가없을때까지 Step3에서 Step5의 과정을반복수행된다. 통합된버퍼메모리생존구간은버퍼메모리를공유하게된다.

다음의 IV장 1절에서 IV장 3절까지각단계별로제안된알고리즘의적용과정을보인다.

1. Fine-grained 모델을적용할후보생존구간세트결정

본 절에서는 coarse-grained 모델로 분석된 생존구간 중 fine-grained 모델을 적용할 후보 생존 구간세트를 결정하는 과정을 보인다. 앞에 언급한 것처럼fine-grained 모델에 따른 생존 구간 분석은 복잡도가증가하므로제안된알고리즘에서는버퍼메모리하한치를 결정하는 생존 구간에 대하여만 fine-grained 모델

(a)생존구간BC의실제데이터생존구간

그림9. Fine-grained 모델에따른실제데이터생존구간

(b) 생존구간DE의실제데이터생존구간

4B1

4B2

4B3

4B4

4B5

4B6

4B7

7C1

7C2

7C3

7C4

7C5

7C6

D1D2D3D4D5D6E1E2E3E4E5E6E7E8E9

Page 11: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

104 Telecommunications Review·제11권 1호·2001. 1~2월

을사용한다. Coarse-grained 방식에 의하여 생성된 생존 구간

그래프에서 버퍼 메모리 사용량의 하한치는 임의의 시간에서생존한버퍼메모리사용량의합이최대가되는값임을 알 수 있다. 이 값은 동적 할당 알고리즘에 의하여할당가능한최소버퍼메모리사용량이므로이값을 버퍼 메모리 하한치로 사용한다. 그림 8은 예제SDF 그래프에대하여 coarse-grained 모델에따른생존구간과버퍼메모리하한치를보인다. 버퍼메모리하한치는동적할당알고리즘에의하여

할당가능한최소버퍼메모리요구량이므로이값을최소함에 따라 버퍼 메모리 사용량을 최소화 할 수 있다.따라서 제안된 알고리즘은 coarse-grained 모델로 구성된생존구간중버퍼메모리하한치를결정하는생존구간에대하여 fine-grained 모델을적용한다. 그림 8에서버퍼메모리하한치는 127이며, 이를결정하는생존구간은BC, CD, DE이며생존구간분할을위한후보생존구간세트는 {BC, CD, DE}로정해진다.

2. Fine-grained 모델에따른버퍼메모리영역분할

Fine-grained 모델의 생존 구간 분석 방식을 적용하기 위해서는 버퍼 메모리에 데이터가 생성 소모되는모듈의실행시간과모듈의실행에따라생성소모되는데이터 수를 알아야 한다. 여기서는 모듈의 실행에 따라생성소모되는데이터수로버퍼메모리사용영역을분할하고 분할된 영역에 데이터가 존재하는 시간을 분석하는과정을보인다. 먼저초기할당된버퍼메모리사용영역의분할크

기를 결정하는 방법에 대하여 설명한다. 분할된 버퍼메모리영역은다른버퍼메모리영역과의공유를목적으로한다. 따라서버퍼공유를위해선택된후보구간의 쌍 가운데 버퍼를 선점하는 쪽은 다른 쌍이 저장할

데이터를 위하여 충분한 공간을 제공하는지 여부를 판단하기 위하여 모듈의 실행에 따라서 소모되는 데이터수에따라버퍼메모리사용영역을분할한다. 후보쌍중에버퍼를늦게사용하는쪽은모듈의실행에따라서생성되는데이터수에따라버퍼메모리사용영역을분할한다. 그림 9는 모듈 B와 C, 그리고 모듈 D와 E에할당된버퍼메모리에대하여모듈의실행시생성소모되는데이터수를보인다. 그림 9(a)에서 모듈 B의 4회 실행에 따라 12개의

데이터가생성되고, 모듈 7C의 실행에따라 14개의데이터가 소모되며, 모듈 D의 실행에 따라 6개의 데이터가 생성되고 모듈 E의 실행에 따라 4개의 데이터가 소모된다. 따라서버퍼메모리를공유하기위해서는다음의두가지조건을만족해야한다. 하나는모듈C의실행이 모듈 D의 실행보다 먼저 발생해야 하며, 다른 하나는모듈C의실행에따라소모된데이터의수가모듈D의 실행에 따라 생성된 데이터의 수보다 커야 한다.두버퍼메모리의생존구간이이조건을만족하여공유될수있는지알기위해서제안된알고리즘은다음과같은방법을사용하였다. 먼저두버퍼메모리의생존구간시작시간을비교하여시작시간이빠른버퍼메모리는소모되는데이터수에따라버퍼메모리를분할하고다른버퍼메모리는생성되는데이터수에따라버퍼메모리를분할한다. 다음으로분할된각각의영역에데이터가 존재하는 시간을 구한다. 두 버퍼 메모리는 분할된영역의크기, 분할된영역에데이터가존재하는시간정보를이용하여공유여부를결정한다. 식 (1)과 식 (2)는 주어진 한 생존 구간을 AB라고

할때, 분할된버퍼메모리의 i번째영역에첫데이터가생성되는 시작 시간 start_time[ABi]와 마지막 데이터가 소모되는 종결 시간 stop_time[ABi]을 나타낸다.여기서 식의 Ndiv[AB]는 분할된 버퍼 메모리의 영역크기를 나타내며, Nprod[AB]는 모듈 A의 연속적인 실행

그림10. Fine-grained 모델에의한버퍼메모리생존구간분석

버퍼메모리영역

[0-6]

[0-6]

[0-6]

[0-6]

[0-6]

[0-6]

버퍼메모리영역

[0-13]

[14-27]

[28-41]

[42-55]

[56-69]

[70-83]

starttime

4B14B24B34B44B54B6

stoptime

7C17C27C37C47C57C6

버퍼메모리영역

[0-5]

[6-11]

[12-17]

[18-55]

[24-29]

[30-35]

stoptime

E2E3E5E6E8E9

starttime

D1D2D3D4D5D6

생존구간BC

Ndiv=14 Ndiv=6

생존구간DE

stoptime

D1D2D3D4D5D6

starttime

7C17C27C37C47C57C6

생존구간CD

Ndiv=7

Page 12: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

DSP 시스템구현시메모리최소화를위한Fine-grained 모델기반의버퍼할당알고리즘 105

에따라생성되는데이터수, Ncons[AB]는모듈B의연속적인실행에의해소모되는데이터수를의미한다.

start_time[ABi] =└Ndiv[AB] / Nprod[AB]*i┘ (1)

stop_time[ABi] =┌Ndiv[AB] / Ncons[AB]*i┐ (2)

후보 생존 구간 세트 BC, CD, DE에 대하여, 각각의 분할된 버퍼 메모리 영역, start_time, 그리고stop_time을 구하면 다음과 같다. 먼저 생존 구간 BC의 경우 모듈 B는 4회 연속하여 실행되므로 Nprod[BC]는 4*3=12이고, 모듈 C의 경우 7회 연속하여 실행되므로 Ncons[BC]는 7*2=14이다. 따라서, 생존 구간BC는 12 또는 14의 값 Ndiv[BC] 값을 갖는다. 앞서언급한듯이생존구간 BC가 다른생존구간보다먼저발생할 경우는 BC의 버퍼 메모리 영역에 존재하는 데이터가소모되는시간이중요하므로Ndiv[BC]값은 14로결정하고, 늦은경우는BC의버퍼메모리영역에데이터가 생성되는 시간이 중요하므로 Ndiv[BC] 값은 12로결정한다. 그림 10은생존구간 BC, CD, DE를버퍼메모리분할영역크기인Ndiv 값 14, 7, 6으로분할할경우식 (1)과식 (2)에의해구한분할된버퍼메모리영역, 각 영역에첫데이터가생성되는시간, 그리고

각영역에마지막데이터가소모되는종결시간을보인다. 이 값들을이용하여두버퍼메모리의공유가가능한지를알수있다. 그림 11은 그림 10에서보인값을이용하여생존구간을분할한그래프를보인다.

3. 버퍼메모리공유를위한생존구간쌍의선택

본 절에서는 후보 생존 구간 세트에 대하여 fine-grained 모델로 분석된 버퍼 메모리의 사용 영역과 시간을이용하여버퍼메모리공유를위한생존구간쌍의선택 과정을 보인다. 그림 12는 후보 생존 구간 세트{BC, CD, DE}의 생존 구간 쌍 {BC, CD}, {CD,DE}, 그리고 {BC, DE}에 대하여 식 (1)과 식 (2)를적용하고버퍼메모리사용영역과시간정보를통한분석결과를보인다. 먼저 생존 구간 쌍 {BC, CD}를 분석하였다. 생존

구간 쌍 {BC, CD}를 fine-grained 모델로 분석한 결과는그림 12(a)와 같으며두버퍼메모리영역을공유할경우0부터6까지의영역에모듈C의실행에의하여마지막 데이터가 소모되는 시간 7C1으로 모듈 C의 실행에의하여첫데이터가저장되는시간 7C1이 오버랩되므로 버퍼 메모리의 공유가 불가능하다. 생존 구간쌍 {CD, DE}를 분석한 결과는 그림 12(b)와 같으며두버퍼메모리영역을공유할경우 0부터 5까지의영역에서 모듈 D의 실행에 따라 마지막 데이터가 소모되

그림11. Fine-grained 모델을이용한버퍼메모리영역분할그래프

Page 13: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

stoptime

D1D2D3D4D5D6

버퍼메모리영역

[0-6]

[0-6]

[0-6]

[0-6]

[0-6]

[0-6]

stoptime

7C17C27C37C47C57C6

starttime

4B14B24B34B44B54B6

starttime

7C17C27C37C47C57C6

106 Telecommunications Review·제11권 1호·2001. 1~2월

(b) 생존구간쌍{CD, DE} 분석결과

[0-5]

[6]

-

-

-

-

starttime

7C17C27C37C47C57C6

stoptime

D1D2D3D4D5D6

버퍼메모리영역

[0-5]

[6-11]

[12-17]

[18-55]

[24-29]

[30-35]

stoptime

E2E3E5E6E8E9

starttime

D1D2D3D4D5D6

오버랩

발생영역

생존구간CD 생존구간DE

Ndiv=7 Ndiv=6

(a) 생존구간쌍{BC, CD} 분석결과

[0-6]

-

-

-

-

-

버퍼메모리영역

[0-13]

[14-27]

[28-41]

[42-55]

[56-69]

[70-83]

버퍼메모리영역

[0-6]

[0-6]

[0-6]

[0-6]

[0-6]

[0-6]

오버랩발생영역

생존구간BC 생존구간CD

Ndiv=14 Ndiv=7

그림12. Fine-grained 모델에의한생존구간쌍분석

(c) 생존구간쌍{BC, DE} 분석결과

-

-

-

-

-

-

버퍼메모리영역

[0-13]

[14-27]

[28-41]

[42-55]

[56-69]

[70-83]

starttime

4B14B24B34B44B54B6

stoptime

7C17C27C37C47C57C6

버퍼메모리영역

[0-5]

[6-11]

[12-17]

[18-23]

[24-29]

[30-35]

stoptime

E2E3E5E6E8E9

starttime

D1D2D3D4D5D6

오버랩

발생영역

생존구간BC 생존구간DE

Ndiv=14 Ndiv=6

Page 14: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

DSP 시스템구현시메모리최소화를위한Fine-grained 모델기반의버퍼할당알고리즘 107

는 시간 D1과 모듈 D의실행에따라첫데이터가저장되는 시간 D1이 오버랩되므로 버퍼 메모리 공유가 불가능하다. 생존구간쌍 {BC, DE}를분석한결과는그림 12(c)와 같으며 모듈 C의 실행이 모듈 D의 실행보다먼저발생하고, 두버퍼메모리영역을공유할경우어떤 영역에서도 오버랩되지 않으므로 공유 버퍼 메모리 사용이 가능하다. 따라서 버퍼 메모리 공유가 가능하며 생존 구간 쌍 {BC, DE}가 선택되어 통합한다.통합된생존구간 BCDE의시작시간은생존구간 BC의시작시간이며종결시간은DE 생존구간의종결시간이 된다. 생존 구간 BCDE의 버퍼 메모리 크기는BC 생존 구간의 크기 84이며, 통합되기 전 생존 구간BC와 DE의 정보를 포함한다. 그림 13은 생존 구간BC와 DE를통합함에따라생성된생존구간그래프와버퍼메모리하한치를보인다.통합된 생존 구간 BCDE에 따라 새로 구성된 생존

구간 그래프의 버퍼 메모리 하한치는 104이며, 통합되기전버퍼메모리하한치 127보다감소되었음을알수있다. 즉, 생성된생존구간 BCDE가생성전의두생존구간보다버퍼메모리사용량이감소하였다. 따라서생존구간분할을계속하여수행한다. 그림 13은 생존구간 BC와 DE를 통합함에 따라 생성된 생존 구간 그래프를 보인다. 이 예제는 생존 구간 통합 후 버퍼 메모리 하한치가 감소하였으나 생존 구간 그래프에 따라통합 후의 버퍼 메모리 하한치가 증가 할 수 있다. 그림 14는 생존구간그래프의통합후버퍼메모리하한치가증가하는예를보인다. 그림 14의 생존 구간 그래프는 생존 구간 EF의 버

퍼 메모리 크기가 84인 경우를 제외하고 앞서 보인 생존구간과같다. 그림 14(a)는 버퍼 메모리생존구간을통합하기전으로버퍼메모리하한치 127을갖는다.앞서 보인 생존 구간 방식으로 생존 구간 BC와 DE가통합된다면 그림 14(b)와 같은 생존 구간 그래프가 생성되며, 버퍼 메모리하한치는 168이 된다. 이 경우는생존구간통합후버퍼메모리하한치가증가하였으므로 버퍼 메모리 사용량이 증가될 것이다. 따라서 제안된알고리즘에서는통합후버퍼메모리하한치를계산하고통합전의버퍼메모리하한치보다감소하였을경우에만생존구간을통합한다. 그림 13의 예제는 생존 구간 통합 후 버퍼 메모리

하한치가 감소하였으므로 계속해서 생존 구간 분석을수행한다. 통합후구성된생존구간그래프의버퍼메모리하한치는 104이며, 이를결정하는버퍼메모리생존구간은 AB와 BCDE 이다. 생존 구간 BCDE는 생존구간 BC와 DE의정보를포함하고생존구간 BC가생존 구간 DE보다 먼저 발생한다. 따라서 생존 구간쌍 {AB, BCDE}의공유여부는생존구간AB와BC의분석으로도충분하다. 따라서제안된알고리즘은생존구간 AB와 BC를 분석한다. 그림 15는 생존구간 AB와 BC에 대하여 각각 Ndiv=20과 12로 분할할 경우식 (1)과 식 (2)에 의해 구한 버퍼 메모리 영역, 각 영역에데이터가생성되는시간, 그리고각영역에데이터가소모되는시간을보인다.생존구간쌍 {AB, BC}를 fine-grained 모델로분

석한 결과는 그림 15와 같으며 두 버퍼 메모리 영역을공유할경우 0부터 11까지의영역에모듈 B의실행에

그림13. 생성된생존구간그래프와버퍼메모리하한치

Page 15: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

108 Telecommunications Review·제11권 1호·2001. 1~2월

(a) 생존구간통합전

그림14. 생존구간통합으로인한버퍼메모리하한치증가

(b) 생존구간통합후

래프를 실행하기 위하여 요구되는 버퍼 메모리 크기는140이었으며, 제안된방식의생존구간분석과 first-fit알고리즘을 적용한 경우 요구되는 버퍼 메모리 크기는104가 되고, coarse-grained 방식에 따른 공유 버퍼메모리의크기는140이된다.

V. 실험결과

제안된스케쥴링과버퍼할당알고리즘은UNIX 기반하의 C 언어로 구현되었고 각종 통신, 영상처리, 신호처리와 관련된 multi-rate 시스템에 대하여 실험하였다. Multi-rate 시스템의 스케쥴링 결과와 공유 버퍼 메모리 할당를 실험하기 위해서 uniform 구조를 갖는 QMF tree filterbank [14], 비대칭적 구조를 갖는nonuniform filterbank [14],[15], 그리고 각종 신호처리시스템등샘플링의변화가있는시스템에대하여적용하였다. 표 1에 제안된 알고리즘과 APGAN과RPMC 알고리즘에의한스케쥴과공유버퍼메모리할당결과를제시한다. 실험의예는Ptolemy 시스템에서APGAN과 RPMC 알고리즘검증을위해사용된 SDF그래프를 사용하였다. 예를 들어“qmf23_2d”는 1/3,2/3으로 샘플링 비율이 변화하는 2-채널 filterbank를의미한다. 다른실험예제로는사용된“nqmf23_4d”는4-채널을 가진 one-sided filterbank, “satec”는satellite receiver, “16qamModem”은 16-QAM

의하여 마지막 데이터가 소모되는 시간 4B1이 모듈 B의실행에의하여첫데이터가저장되는시간4B1과오버랩되므로버퍼메모리의공유가불가능하다. 따라서fine-grained 모델을 이용하여 생존 구간을 통합하지않는다. 최종적으로생성된생존구간그래프의버퍼메모리 하한치는 20+84=104이며, coarse-grained 모델로분석한버퍼메모리하한치는 7+84+36=127에비하여23만큼감소되었다.

4. 제안된생존구간분석방식에따른버퍼할당알고리즘의적용

Ptolemy 시스템은 coarse-grained 모델을 이용하여알고리즘의복잡도를줄이고빠른시간에버퍼메모리의 공유를 위한 생존 구간 분석을 시도하였다. 그러나 데이터 수에 따라 사용 가능한 버퍼 메모리 영역을고려하지않아공유가능한생존구간을정밀하게분석하지 못하였다. 제안된 알고리즘에서는 coarse-grained 모델과 fine-grained 모델의 장점을 이용하기위하여버퍼메모리하한치를결정하는생존구간에대해서만 fine-grained 모델을 이용하였다. 그림 16은기존의 coarse-grained 모델로 생성된생존구간그래프와 제안된 방식으로 생성된 생존 구간 그래프를first-fit 알고리즘을통하여버퍼메모리할당을수행한과정을보인다.그 결과 coarse-grained 모델의 생존 구간 분석과

first-fit 할당 알고리즘을 적용한 경우 주어진 SDF 그

Page 16: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

DSP 시스템구현시메모리최소화를위한Fine-grained 모델기반의버퍼할당알고리즘 109

버퍼메모리영역

[0-19]

[0 -19]

[0 -19]

[0 -19]

[0 -19]

[0 -19]

[0 -19]

[0-11]

[12-19]

-

-

-

-

-

그림15. Fine-grained 모델을이용한생존구간분석

starttime

5A15A25A35A45A55A65A7

stoptime

4B14B24B34B44B54B64B7

버퍼메모리영역

[0-11]

[12-23]

[24-35]

[36-47]

[48-59]

[60 -71]

[72-83]

stoptime

7C17C27C37C47C57C67C7

starttime

4B14B24B34B44B54B64B7

오버랩발생영역

생존구간AB 생존구간BC

Ndiv=20 Ndiv=12

modem을 의미하며, “4pamxmitrec”는 4-PAM을 위한 transmitter-receiver pair, “blockVox”는 vocoder,“overAddFFT”는 overlap-add FFT, 그리고“phasedArray”는 신호 검출을 위한 phased arraysystem을나타낸다. 표 1은 생성된 스케쥴 결과에 대하여 Berkeley 시

스템에서사용된버퍼메모리의생존구간을분석방식과 제안된 버퍼 메모리의 생존 구간을 분석하였다. 표1에서 2∼4번째 열은 공유 버퍼를 사용하기 전APGAN, RPMC, 그리고 DSPSIM 시스템에서 제안된 클러스터링 알고리즘을 적용한 결과 요구되는 버퍼크기를나타낸다. 다음으로 5번째, 6번째열은앞서구한각각의스케쥴링결과에대하여버퍼메모리의생존구간을 분석하고 이론적으로 공유 가능한 버퍼 메모리하한치를계산한값을나타내어 fine grained model을전체적으로사용하는경우얻을수있는예상치를기록하였으며, 7번째 열은 제안된 방식으로 버퍼 메모리의생존구간을분석하고공유버퍼메모리하한치를구한값을 나타낸다. 8행, 9행은 앞서 분석된 생존 구간에대하여 first-fit의 할당 알고리즘을 적용하여 최종적으로구한버퍼메모리요구량을나타낸다.먼저생존구간분석그래프를통하여공유버퍼메

모리 하한치를 구한 결과 APGAN 알고리즘의 경우는satellite_receiver, 16qamModem 등 5개의예제에대하여최적화된결과를보이고, RPMC 알고리즘의경우는 샘플링 비율이 정수배로 변환되는 신호를 처리하는2개의 filterbank 시스템에대하여최적화된결과를보이는반면, 제안된알고리즘은 2개의예제를제외한 12개의 예제에 대하여 우수한 결과를 보이고 있다. 예외가되는두예제의경우스케쥴링단계에서구현가능한버퍼의최소크기가다르므로버퍼할당결과에서차이가 발생하였다. first-fit 할당 알고리즘을 이용하여 버

퍼 메모리를 할당한 경우를 분석하면 APGAN, RPMC와 제안된 알고리즘이 14개의 예제 중 각각 5개, 2개,그리고12개의예제에대하여최적화된결과를보인다. 제안된알고리즘을두알고리즘과성능을비교한결

과, APGAN 알고리즘에 coarse-grained 모델을 이용한 버퍼 할당 알고리즘에 비하여 평균 24.0 %가 향상되었으며, RPMC 알고리즘에 coarse-grained 모델을이용한 버퍼 할당 알고리즘에 비하여 평균 19.3 %가향상되었다. 또한 ptolemy에서 개발한 두 알고리즘은샘플링 비율의 변화에 대하여 특정 시스템에 대해서만최적화된 결과를 보이므로 시스템의 특성을 분석하고두알고리즘중최적의것을선택해야하나제안된알고리즘을 적용한 DSPSim 시스템은 시스템의 특성에 관계없이 향상된 성능을 보인다. 또한, 제안된 알고리즘의 경우 버퍼 할당 단계에서 APGAN, RPCM과 동일하게 coarse grained model을 기반으로 사용하고, 제한된 영역에서만 fine grained 모델에 기반하여 쌍 선택을수행하므로수행시간의증가폭은크지않다.

VI. 결론및추후과제

본 논문에서는 최소화된 코드 크기를 요구하는DSP 시스템 구현에서 SDF 그래프에 기반하여 버퍼메모리 최적화의 버퍼 할당 알고리즘을 제시하였다.Ptolemy 시스템은 multi-rate 시스템의 특성에 따른버퍼메모리사용량을최소화하는스케쥴링알고리즘으로 APGAN과 RPMC을 사용하고, 스케쥴링 결과는coarse-grained 모델을 통한 버퍼 메모리 공유 기법으로 버퍼 메모리 최적화를 시도하였다. 그러나, 모듈의실행 횟수만을 고려한 AGPAN 알고리즘과 모듈간의데이터 전송량만을 고려한 RPMC 알고리즘은 특정 시

Page 17: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

110 Telecommunications Review·제11권 1호·2001. 1~2월

스템에대해서버퍼메모리최적화결과를보이는한계성때문에시스템의분석을통해적합한알고리즘을선택해야하는문제점을보였으며, 버퍼메모리공유기법을위해사용된 coarse-grained 모델은 버퍼메모리에데이터가 실제 존재하는 시간정보를 고려하지 않아 버퍼 메모리 사용량을 최적화하는 코드 생성이 불가능하였다. 이를보완한제안된알고리즘은DSPsim 시스템에서사용한클러스터링스케쥴링알고리즘을기반으로coarse-grained 모델과 fine-grained 모델을 병합한생존 구간 분석 알고리즘을 개발함으로써 APGAN과RPMC 알고리즘의결과중우수한것을선택해야하는문제점을 없애고 최소화된 메모리를 요구하는 버퍼 할당알고리즘을개발할수있었다. 제안된버퍼할당알고리즘을 적용할 경우 메모리 탑제량이 제한된 이동용DSP 응용분야의 프로그래밍에 효율적인 사용이 기대된다. 제안된 방식은 일부 생존 구간에 대하여만 fine-

grained 모델을적용하였으며정적할당알고리즘을적용하였다. 차후 fine-grained 모델을 사용하는 생존구간영역을확장하고보다향상된정적할당알고리즘을개발하는것이요구된다.

감사의글

본 논문은 2000년도 서강대학교 교내 연구비 지원에 의하여 이루어졌습니다. 프로그램의 개발을 위해IDEC에서 제공한 CAD 소프트웨어를 사용하였습니다.

[참고문헌]

[1] V. Madisetti, VLSI Digital SignalProcessors: An Introduction to RapidPrototyping and Design Synthesis, Bufferworth-Heinemann:Boston, MA, 1995.

[2] S. Ritz, M. Willems, and H. Meyr, 'Scheduling for Optimum Data Memory Compaction in Block Diagram Oriented Software Synthesis,' in Proc. ICASSP 95, Detroit, MI, Vol. 4, pp. 2651-2654, May 1995.

[3] S. Liao, S. Devadas, K. Keutzer, S. Tjiang, and A. Wang, 'Code Optimization Techniques for Embedded DSP Microprocessors,' in Proc. 32nd Design Automation Conference,

(b) 제안된생존구간분석과 first-fit 알고리즘적용결과

그림16. 생존구간분석과first-fit 알고리즘적용

(a) Coarse-grained 생존구간분석과 first-fit 알고리즘적용결과

0

19

139

0

19

103

139

0

19

103

139

06

19

103

139

06

19

103

139

06

1519

103

139

0

19

103

0

19

103

0

19

103

06

19

103

06

1519

103

06

19

103

BC(84) BC(84) BC(84) BC(84)

DE(36) DE(36)

AB(20) AB(20) CD(7) CD(7) CD(7) CD(7)EF(8)

AB(20) AB(20)

BCDE(84) BCDE(84) BCDE(84) BCDE(84) BCDE(84)

CD(7) CD(7) CD(7) CD(7)EF(8)

Page 18: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

DSP 시스템구현시메모리최소화를위한Fine-grained 모델기반의버퍼할당알고리즘 111

nqmf23_4d

qmf23_2d

qmf23_5d

qmf12_d

qmf12_3d

qmf235_2d

qmf235_3d

qmf235_5d

satrec

16qam Modem

4pamx mitrec

block-Vox

overAdd-FFT

phased Array

Average

RPMCvs

proposed

-19.5

-4.5

-28.0

+18.1

+37.0

-33.3

-27.0

-46.5

-40.8

0

-62.7

-32.2

-30.7

0

-19.3

APGAN

314

62

1478

34

78

140

660

13716

1542

35

49

409

1222

2496

RPMC

209

60

1271

36

88

122

492

8967

2480

35

79

472

1476

2496

APGAN

240

27

804

11

27

79

394

8254

1015

9

35

135

577

2072

DSPsim

201

58

1088

34

78

122

462

8042

1542

35

49

409

1222

2496

APGAN

237

26

741

11

25

71

380

7477

960

8

33

130

514

2064

proposed

107

20

343

11

25

38

161

3308

960

8

19

130

514

2064

RPMC

120

21

489

9

16

50

220

5560

1680

8

48

193

768

2064

proposed

107

21

361

11

27

44

181

3331

1015

9

19

135

577

2072

RPMC

133

22

502

9

17

66

248

6226

1715

9

51

199

833

2072

APGANvs

proposed

-55.4

-22.2

-55.1

0

0

-44.3

-54.1

-59.6

0

0

-45.7

0

0

0

-24.0

Scheduling Result Buffer Memory Lower Bound

%ComparisonFirst-Fit allocation

표1. APGAN, RPMC와제안된스케쥴링과버퍼할당알고리즘비교

pp. 599-604, June 1995.[4] D. Desmet and D. Genin, 'ASSYNT:

Efficient Assembly Code Generation for DSPs Starting from a Data Flowgraph,' in Proc. Int. Conf. on Acoustics, Speech, and Signal Processing, Minneapolis, Vol. 3, pp. 45-48, April 1993.

[5] S. Bhattacharyya, P. Murthy, and E. Lee, SoftwareSynthesis from Dataflow Graphs, Kluwer Academic Publishers : Norwell, MA, 1996.

[6] J. Buck, S. Ha, E. Lee, and D. Messerschmitt, 'Ptolemy: A Framwork for Simulating and Prototyping Heterogeneous Systems,' International Journal ofComputer Simulation, Vol. 4, No. 2, pp. 155-182, April 1994.

[7] E. Lee and D. Messerschmitt, 'Synchronous Data Flow,' Proceedings of IEEE, Vol. 75, No. 9, pp. 1235-1245, Sept. 1987.

[8] E. Lee and D. Messerschmitt, 'Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing,' IEEE Trans. on Computers, Vol. C-36, No. 1, pp. 24-35, Jan. 1987.

[9] S. Bhattacharyya, P. Murthy, and E. Lee, 'APGAN and RPMC : Complementary Heuristics for Translating DSP Block Diagrams into Efficient Software Implementations,' Journal of Design Automation for

Embedded Systems, Vol. 2, No. 1, pp. 33-60, Jan. 1997.

[10] 코드생성기능을갖는DSP 알고리즘

시뮬레이터의개발에관한연구, 5차년도

연차보고서, 통상산업부/정보통신부/과학기술처,

2000년1월.[11] S. Bhattacharyya and E. Lee, 'Memory Management

for Dataflow Programming of Multirate Signal Processing Algorithms,' IEEE Transactions on Signal Processing, Vol. 42, No. 5, pp. 1190-1201, May 1994.

[12] E. Lee, 'Consistency in Dataflow Graphs,' IEEE Trans. on Parallel and Dist. Syst., Vol. 2, No. 2, pp. 223-235, April 1991.

[13] R. Karp and R. Miller, 'Properties of a Model for Parallel Computations: Determinancy, Termination, Queueing,' SIAM Journal of Applied Math., Vol. 14, No. 6, pp. 1390-1411, Nov. 1996.

[14] K. Nayebi, 'Nonuniform Filter Banks : A Reconstruction and Design Theory', IEEE Transactions on Signal Processing,' Vol. 41, No. 3, pp. 1114-1127, March 1993.

[15] P. Vaidyanathan, Multirate Systems and Filter Banks, Prentice-Hall, 1993.

Page 19: DSP 시스템구현시메모리최소화를위한 Fine-grained 모델 ...eecad.sogang.ac.kr/eecad/file/059.pdf · 2018-07-31 · 최근VLSI 설계 기술 ... 짧아짐에따라디지털시스템의빠른설계

112 Telecommunications Review·제11권 1호·2001. 1~2월

한의범(Eui Beom Han)

1997. 2 : 서강대학교전자공학과 (학사)2000. 2 : 서강대학교전자공학과 (석사)2000. 3 ∼현재 : 텔리뷰(주) 소프트웨어연구팀관심분야 : 컴퓨터구조및VLSI 시스템설계E-mail : [email protected] : +82-2-705-8469Fax : +82 2-3272-3220

김식(Sik Kim)

1994. 2 : 서강대학교전자공학과 (학사)1996. 2 : 서강대학교전자공학과대학원 (석사)1996. 3 ∼ 10 : 현대전자멀티미디어연구소연구원1997. 9 ∼현재 : 서강대학교전자공학과 (박사과정)관심분야 : CAD for DSP Computer Architecture 및디지털통신/

영상압축용VLSI 시스템설계E-mail : [email protected] : +82-02-703-0582Fax : +82 2-3272-3220

황선영(Sun Young Hwang)

1976. 2 : 서울대학교전자공학과 (학사)1978. 2 : 한국과학원전기및전자공학과 (석사)1986. 10 : 미국 Stanford 대학전자전산 (박사)1976 ∼ 1981 : 삼성반도체주식회사연구원, 팀장1986 ∼ 1989 : Stanford 대학Center for Integrated Systems 연구소책임연구원

Fairchild Semiconductor Palo Alto Research Center 기술자문1989 ∼ 1992 : 삼성전자(주) 반도체기술자문1989. 3 ∼현재 : 서강대학교전자공학과교수관심분야 : CAD 시스템, Computer Architecture 및DSP Systems,

Design, VLSI 설계E-mail : [email protected] : +82-2-705-8469Fax : +82 2-3272-3220