논문 07-32-10-15 한국통신학회논문지 '07-10 Vol. 32 No. 10 저전력소모임베디드프로세서코어자동생성시스템의설계 준회원김동원 *, 정회원황선영 * Design of an Automatic Generation System for Embedded Processor Cores with Minimal Power Consumption Dong-Won Kim* Associate Member, Sun-Young Hwang* Regular Member 요 약 본논문은머신기술언어를이용하여전력소모가최소화된임베디드코어자동생성시스템의설계에대해기술한다. 머신기술언어를사용하여어플리케이션에적합한임베디드코어를빠른시간에설계하기위해어플리케이션실행시동적전력소모가최소화된코어를생성하는시스템을구축하였다. 제안된시스템은각인스트럭션의파이프라인스테이지의행위정보로부터파이프라인해저드를찾아내며처리하는능력을가진임베디드코어를생성한다. 생성된코어는파워소모가최소화되게만들어져있다. 자동생성시스템의검증을위해 ARM9, MIPS R3000에대해 SMDL로기술하고전력최적화과정을거쳐 HDL 코드를자동생성하였으며, 어플리케이션에대해시뮬레이션을수행하여소모되는전력을측정하였다. 실험결과로생성된프로세서는정확한동작을수행하였고, 어플리케이션과생성된코어에따라동적전력소모가 20%~40% 줄어드는것을확인하였다. Key Words : MDL, ASIP, Automatic Generation, Spurious Switching Activity, Low Power ABSTRACT This paper describes the system which automatically generates power-minimized embedded cores from MDL descriptions. An automatic generation system is constructed which generated embedded cores which consumes less power for application programs. From the usage information on pipeline stages for each instruction, the proposed system generates embedded cores with the capability of detecting/resolving pipeline hazards. The generated cores are configured such that the power consumption is minimized. The proposed system has been tested by generating HDL codes for ARM9, MIPS R3000 architectures. Experimental results show functional accuracy of the generated cores, and show that power reduction of 20%~40% has been observed for benchmark programs. Ⅰ. 서론 최근반도체기술의발전으로인해 VLSI 설계방법이회로수준을넘어시스템수준으로진화하 고있다. 시스템설계부분에서유저의요구는기능과실행속도뿐아니라전력소모에의높은성능을요구한다. 복잡한시스템개발에서다양한요구사항을 tradeoff까지고려하며진행하기에는 time-to- 본논문은 2007 년도 서울시산학연협력사업 의 나노 IP/SoC 설계기술혁신사업단 의지원으로이루어졌으며 IDEC 에서제공한 CAD tool 을이용해 simulation 과 synthesis 를수행하였습니다. * 서강대학교전자공학과 CAD&ES 연구실 (hwang@sogang.ac.kr) 논문번호 :KICS2007-06-276, 접수일자 :2007 년 6 월 14 일, 최종논문접수일자 :2007 년 10 월 2 일 1042
논문 / 저전력소모임베디드프로세서코어자동생성시스템의설계 market 요구를만족시키기어렵다. 이러한문제점을해결하기위해최근의설계방식은설계물의유연성과재사용률을높이고있는추세이다. 이러한유연성, 재사용률그리고어플리케이션의최적화를위해고정된범용프로세서대신 ASIP (Application Specific Instruction-set Processors) 이사용되고있다 [1][2]. 기존의 SoC 설계가기능구현과고속동작에초점이맞추어져있었으나, 최근에는휴대용기기의수요증가로인해한정된배터리사용시간동안장시간동작할수있는저전력설계기술개발이활발히진행되고있다. 지금까지 MDL 기반의프로세서코어자동생성은최근까지많은연구가진행되어왔다. 이중 nml [3], LISA [4], EXPRESSION [5], Micro Operation Description [6] 등을이용한프로세서생성에대한연구가대표적인예이다. 베를린대학에서개발한 nml은언어자체에서파이프라인을지원하지않고간단한컨트롤러만을생성할수있기때문에, 파이프라인기능이있는프로세서생성에어려움이있고전력을줄이는측면에서는특별한정책을취하지않고있다. 독일의 Aachen 대학에서개발한 LISA는 nml의단점을개선하여파이프라인기술이가능하며, TMS320c620x등의 DSP 계열의프로세서의기술이가능하다. 그러나프로세서코어생성측면에서데이터패스와디코딩정보만을추출하여고정된파이프라인컨트롤러에맵핑하는방식을취하고있어, 다양한머신의구조를생성하는데에는한계가있고전력을줄이는방법으로 gated clock을사용하고있어최근이슈가되고있는동적전력감소에적극적으로대응할수없다는문제가있다 [7]. 미국의 UCI에서개발한 EXPRESSION 은 ADL(Architecture Description Language) 를이용하여설계자가컨트롤러, 해저드검출방법과전력을줄일수있는모듈에대한정보를자세히기술해야하기때문에프로세서개발초기부터타겟프로세서에대해구체적이고정확한기술이요구된다. 일본오사카대학에서는 Micro Operation Description 을통해프로세서코어를자동생성하였으나언어특성상추상화수준이낮은 RTL 수준의기술이필요하기때문에, 타겟프로세서의컴파일러개발에제약이있으며, 블록데이터전송을위한멀티사이클인스트럭션, 파이프라인해저드처리와전력을고려하지않았다. ASIP을포함하는프로세서의매클럭사이클마다소모되는전력의편차는상당히크며, 전력소모 의편차는수행되는명령어, 어드레스모드, 사용되는레지스터파일넘버, 레지스터에저장되는값과프로그램카운터의변화등에의해생긴다 [8]. 이런전력소모의편차를줄이기위해서컴파일러를이용한코드최적화 [9] 또는프로세서모듈의 bit-switching에의한동적전력 [10] 를줄이는방안이모색되고있다. 본연구에서는설계자가 MDL 기반의설계방식으로전력에최적화된임베디드프로세서를설계할경우머신기술언어 SMDL를사용하여타겟프로세서를기술하여프로세서코어를생성하되 [11], 어플리케이션실행시소모되는동적전력을줄일수있는코어를생성하는시스템을구축하였다. 구축된시스템은 RISC 타입의 ASIP을자동생성하며, 별도의파이프라인해저드정보의기술없이해저드감지 / 처리가가능하고, 메모리엑세스등의효율적인처리를위해다중사이클인스트력션을지원한다. 생성된코어는 spurious 연산자의 bit-switching 을최소화하여동적전력소모를최소화한다. 구축된시스템은 SMDL 시스템의 retargetable 컴파일러및인스트럭션셋시뮬레이터와연동하여 ASIP의생성과검증에사용된다. 제안된시스템의평가를위해상용화된임베디드프로세서중 ARM9과 MIPS R3000을 SMDL로기술하고구축된시스템을통해프로세서모델을생성한뒤, 각각의모델을실제프로세서의동작과비교하여생성된프로세서모델의정확성을검증하였고, 어플리케이션을실행하여파워최소화모듈을추가하지않은 SMDL 생성프로세서모델과의동적전력을비교하였다. 본논문의구성은다음과같다. Ⅱ장에서는연구발표된코어생성기및임베디드프로세서코어의자동생성과정을제시하고개선된사항을기술한다. Ⅲ장에서는제안된시스템에서동적전력소모를최소화하기위한코어의생성방법을제시하고, Ⅳ장에서는제안된시스템의검증을위해파워최소화모듈을생성하지않는코어생성기의결과물과제안된생성기의결과물의전력소모를어플리케이션을이용하여비교하였다. Ⅴ장에서는결론및추후과제를제시한다. Ⅱ. 임베디드코어생성기개관 구축된임베디드코어생성기는 SMDL을파싱하여구조정보추출과메모리모델을생성하는전처리과정, 중간형태인 CDFG (Control Data Flow 1043
한국통신학회논문지 '07-10 Vol. 32 No. 10 Graph) 합성과정, 프로세서의컨트롤러, 데이터패스와전력컨드롤유닛을생성하는코어모듈생성과정, 생성된모델을합성가능한 HDL 코드로변환하는 HDL 생성과정으로이루어진다 [11]. 2.1 전처리과정 SMDL로기술된타겟프로세서를 SMDL 파서가 AST로생성하고, 생성된 AST중인스트럭션은연산자 / 레지스터와그들간의연결구조로구성된 CDFG 로변환한다. 또한중간형태의구조와메모리정보를이용하여타겟프로세서의버스연결, 핀할당, 파이프라인정보로이루어진구조정보와타겟프로세서의주메모리로사용될메모리모델을생성한다. 2.2 인스트럭션합성과연결최적화인스트럭션합성과연결최적화과정은전처리과정에서생성된각인스트럭션의 CDFG를하나의 CDFG로조합하여타겟프로세서의데이터패스모듈을생성하기위한과정으로, 모듈간의연결을최소화하여전력을줄일수있는역할을수행한다. 조합된 CDFG의노드는연산자, 레지스터와멀티플렉서를나타내며에지는버스를나타낸다. 인스트럭션합성과연결최적화는다음과같은과정으로이루어진다. 모든 CDFG의노드들을각스테이지에맞게배열하고중복되는레지스터와연산자를제거한다. 이후인스트럭션별 CDFG들로부터노드들간의연결정보를추출하고, 각연결구조의특성에따라최소화과정을거친다. 동일시작점- 동일종점의연결구조는하나의연결구조만을남기고제거한다. 다른시작점 -동일종점으로연결되는연결구조들은종점연산자의교환법칙가능여부에따라종점의특정포트에연결하거나, 컬러링알고리즘을이용하여최소의연결을가진연결구조및최소크기의멀티플렉서를추출한다. 이후각리소스를해당파이프라인스테이지에맞도록스케줄링을수행한다. 2.3 코어모듈생성과정코어모듈생성과정은 IF(Instruction Fetch)/PC (Program Counter) 블록을생성하는 IF/PC 블록생성기와데이터패스, 컨트롤러, 파이프라인해저드처리모듈, 멀티싸이클처리모듈을생성하는코어합성기와전력제어의역할을하는모듈을생성하는전력컨트롤생성기로구성된다. IF/PC 블록생성기는전처리과정에서생성한구조정보를이용하여 PBR (Program Buffer Register), PAR (Program Address Register) 를가진 PC 체인구조 [12] 의 IF/PC 블록모델을생성한다. 데이터패스는전처리과정및연결최적화과정에서의파이프라인스케줄링된 CDFG를이용하여구성하게되고, 각노드들이실행될스테이지와동작에대한정보를가진 ACT(Active Component Table)[13] 와기존에구성된 CDFG의연결정보와함께구성하여해저드처리모듈과전력컨트롤모듈을제외한데이터패스와컨트롤러를구성한다. 기존 SMDL 파이프라인해저드처리회로생성과정은데이터및컨트롤해저드전부스톨만을이용하여해저드처리를수행한다. 멀티사이클인스트럭션실행시는 ACT를분석하여처리에필요한사이클정보를멀티사이클룩업테이블에저장하여해저드스톨회로를이용하여처리한다. 2.4 외부입출력포트생성과정포트기술로부터생성되는외부입출력포트는외부구조정보중간형태중유저정의포트의이름, 속성그리고비트폭을이용하여유저가기술한타겟프로세서의외부포트를생성한다. 포트기술없이생성되는외부입출력포트는타겟프로세서가동작하기위해반드시필요한기본적인포트나외부디바이스와동기를맞추는데필요한포트들을유저기술없이자동생성한다. Ⅲ. 생성된코어의전력소모감소를위한모듈생성제안된전력소모감소를위한방식은많은전력을소비하는모듈을찾아내는전력컨트롤모듈스케줄링과정, 전력컨트롤유닛을생성하는전력컨트롤모듈바인딩과정, 인스트럭션의수행사이클중동작에필요없는부분을정지시키는 gated clock 모듈생성과정, 전력컨트롤모듈및 gated clock을제어하는컨트롤러모듈생성과정그리고실행사이클을줄이기위한해저드처리모듈과정으로이루어진다. 3.1 전력컨트롤모듈스케줄링 SMDL의일련의생성과정을거친 CDFG에는전력소모를줄이기위한방법으로 spurious 연산자의 bit-switching을줄이기위한컨트롤모듈이추가된다. 이경우전력컨트롤을위한모듈생성을모든연산모듈의입력단에생성하는방식이있으나, 컨트롤러의신호생성의오버헤드가커질가능성이있다. 위와같은오버헤드를줄이고어플리케이션에 1044
논문 / 저전력소모임베디드프로세서코어자동생성시스템의설계 적합한전력컨트롤모듈생성을위해 SMDL 코어생성기에서는다음과같은생성방식을사용한다. SMDL 시스템의 retargetable 컴파일러는저전력코드생성을지원한다. 이컴파일러는 Profile-Based Optimization을수행하여타겟프로세서에최적화된저전력코드를생성하며, 이는어플리케이션에대한 profile 정보를이용하여최적화된코드를생성하는기법이다 [18]. 그림 1은 Profile-Based Optimization 을수행하여저전력 VHDL 코드를생성하는구조를나타낸다. 컴파일러는 C 소스코드와타겟프로세서에대한 SMDL에서파생된 IF(Intermediate Form) 를입력받아 binary화된타겟코드를생성하며, 인스트럭션셋시뮬레이터생성기는타겟프로세서에대한 SMDL 기술을이용하여 profile 정보를추출할수있는 cycle-accurate 인스트럭션셋시뮬레이터를생성한다. 생성된시뮬레이터는컴파일러로부터 binary화된타겟코드를입력으로받아시뮬레이션을수행하면서각인스트럭션수행횟수, switching activity 등의 power profile 정보를생성한다. CDFG 파워분석기는인스트럭션셋시뮬레이터로부터생성된전력 profile 정보를피드백받고 IF의 CDFG를파워정보가입력된 CDFG로업데이트한다. 위의과정을특정어플리케이션이각인스트럭션의수행횟수가수렴할때까지반복수행후, 해당어플리케이션에대한각인스트럭션의수행횟수를계산해낸다. 이정보와모듈라이브러리에포함된각모듈의파워소모값을이용하여생성하려는 ASIP에서많이사용되는연산모듈들의빈도수와파워값을계산해낸다. 이값을이용하여최종적으로많은전력을소모하는모듈들의동적파워를컨트롤할수있는 CDFG를얻게된다. 그림 2. 저전력소모코어생성기시스템의개관. 표 1. MIPS R3000 에서어플리케이션의각인스트럭션의실행횟수및모듈사용여부를나타낸표의일부 연산모듈 instruction Name 실행횟수 ALU Multiplier Comparator Barrel Shifter A_in B_in A_in B_in A_in B_in A_in B_in ADD 10 on on pass pass pass pass pass pass SHL 4 pass on pass pass pass pass on on JMP 5 pass on pass pass on on on on MUL 6 pass on on on pass pass pass pass : : : : : : 연구발표된 SMDL 코어생성과정은 SMDL 기술만을이용하여코어를생성하기때문에전력최적화과정이포함되어있지않다. 생성된 ASIP의동적전력소모를최소화하기위해파워프로파일정보가들어간 CDFG에 bit-switching에의해생기는동적전력을줄일수있는모듈생성부분을추가하였다. 그림 2는이러한전력컨트롤모듈생성부분을추가로인해개선된코어생성기의개관을보이고, 표 1은 MIPS R3000을 SMDL로기술한경우파워프로파일정보가들어간 CDFG를이용하여각인스트럭션의수행횟수와 spurious operator를나타낸다. 그림 1. Profile based optimization 을수행한전력컨트롤모듈생성과정. 3.2 전력컨트롤모듈바인딩 SMDL 생성과정에서는전력을고려하지않고유저가기술한대로프로세서가생성되는방식을사용한시스템에동적전력소모감소를위해전력컨트롤모듈을추가한파워스케줄링된 CDFG를이용하여모듈에대한우선순위를정한다. 해당모듈이특정인스트럭션이실행될경우 spurious 연산자일경우에대비하여모듈전방에아래와같은모듈을자동으로배치하여연산모듈의동적전력소모를줄인다. 이경우다음과같은세가지방식으로나눌수있다. 1045
한국통신학회논문지 '07-10 Vol. 32 No. 10 (a) 그림 3. 로드인에이블레지스터를이용한 bit-switching 컨트롤. (a) 전력컨트롤모듈스케줄링적용전. (b) 전력컨트롤모듈스케줄링적용후. (b) (a) (b) 그림 5. Load enable 랫치를이용한 guarded logic. (a) 전력컨트롤모듈스케줄링적용전. (b) 전력컨트롤모듈스케줄링적용후. (a) (b) 그림 4. Retentive 멀티플렉서를이용한 bit-switching 컨트롤. (a) 전력컨트롤모듈스케줄링적용전. (b) 전력컨트롤모듈스케줄링적용후. 3.2.1 로드인에이블레지스터바인딩파이프라인레지스터가 N-1 스테이지와 N 스테이지사이에존재하고, 연산자가 N 스테이지에존재하면서해당파이프라인레지스터에직접연결되어있는경우, 그림 3과같이파이프라인스테이지레지스터를 load enable register로대체하여 spurious 연산자의 bit-switching을막는다. 이경우에회로의면적에큰영향을주지않는다는장점이있다. 3.2.2 Retentive 멀티블렉서바인딩 파이프라인레지스터가 N-1 스테이지와 N 스테이지사이에존재하고, 연산자가 N 스테이지에존재하면서해당파이프라인레지스터에직접연결되어있지않은경우, 그림 4와같이 retentive 멀티플렉서를연결하여 spurious 연산자의 bit-switching을막는다. 이를위해 retentive 멀티플렉서가추가되나각인스트럭션의 CDFG 스케줄링과정에서 2개의 operand가하나의목적지를가리킬경우멀티플렉서를추가해주어야하기때문에실질적으로면적이나전력에부담을주지못한다. 3.2.3 랫치바인딩 파이프라인레지스터가 N-1 스테이지와 N 스테이지사이에존재하고, 연산자가 N 스테이지에존재하며그림 5와같이멀티패스가존재할경우에 load enable 랫치를이용하여 bit-switching을막도록한다. 랫치를사용할경우값이 enable 되지않으면 enable 되었을때보다데이터 bit-switching의파워소모가 0.1% 미만으로떨어지게되는강점이존재한다 [14]. 물론 RTL 회로에랫치사이즈만큼의면적부담이작용하나, 실험결과회로전체적인면에서볼경우에는 0.5% 미만으로면적이증가하게된다. 3.3 Gated Clock 제어모듈생성현재 ASIP 설계에서클럭신호는파워소비의큰부분을차지하고있다. 이원인은첫째로신호가항시변하고있다는점이고, 두번째는클럭트리로인하여실제회로에서많은면적을차지하고있는데에있다. 이러한클럭에의한파워소모를줄이기위해가장많이사용되는방법이 gated clock이다 [14]. Gated clock을사용하기위해서는전력스케줄링된 CDFG로부터각인스트럭션의파이프라인동작정보를추출하여각사이클당사용되는스테이지와그렇지않은스테이지를구분해낸후에인스트럭션패치스테이지를제외한각파이프라인레지스터에 gated clock을사용하도록한다. 그림 6은 MIPS R3000 코어에서파이프라인레지스터를 gated clock을이용하여컨트롤하는예를나타낸다. 그림 6 (a) 에서는인스트럭션이실행되는순서를나타낸다. MIPS R3000이실행스테이지에서 JUMP 인스트럭션의어드레스를계산할경우에, 그림 6 (b) 와같은형태로인스트럭션이각스테이지에서실행된다. 이때메모리스테이지와 EX_MEM 파이프라인레지스터에아무런의미가없는 JUMP 인스트럭션의쓰레기값이들어가 bit-switching 을일으키게된다. 이러한점을방지하기위해생성되는코어의컨트롤러는각스테이지의파이프라인레지스터에연결된 gated clock을이용하여컨트롤러가그림 6 (c) 와같이제어하는방식을사용한다. 1046
논문 / 저전력소모임베디드프로세서코어자동생성시스템의설계 (a) (b) 그림 7. 개선된파이프라인해저드처리생성회로. 스테이지에서 disable시켜 spurious 연산자의 bit-switching을막아동적전력을줄일수있게한다. (c) 그림 6. MIPS R3000 에서 gated clock 의컨트롤예. (a) 인스트럭션순서. (b) 의미없는파이프라인스테이지의수행예. (c) Gated clock 을이용한제어예시. 3.4 전력컨트롤모듈컨트롤러생성 전력스케줄링된 CDFG로부터추가된전력컨트롤모듈을구성된 ACT에추가한다. 추가된부분은데이터패스를바꾸지않고여기에모듈을추가시키는방식을사용하기때문에추가모듈에의한 ACT 확장에는문제가없다. 이후각인스트럭션에해당하는 CDFG에서에지정보를추출하고스케줄링된 CDFG에서추출한에지와동일한루트를가지는에지를찾아낸다. 이루트에포함되지않는루트의연산모듈입력에해당하는전력컨트롤모듈을전부인스트럭션이실행되는 3.5 해저드처리모듈생성 SMDL 생성과정에서는스톨만을이용하여해저드처리를수행할경우어플리케이션을실행할경우실행속도가늘어나게되며, 이로인해생기는추가스톨에의해파워도소모되는구조를가지고있다. 코어생성기에서는이러한부분을방지하기위해인터널포워딩이연산유닛과저장유닛사이에서수행될수있도록필요한버스와모듈을자동생성할수있도록한다. 그림 7은 MIPS R3000에서생성되는인터널포워딩처리유닛을나타낸것이다. 메모리로드후에이로드값을다음인스트럭션에서연산에사용할경우, 반드시인스트럭션패치부분을스톨시켜주어야한다. 이때메모리스테이지와실행스테이지의차이가있을경우에는그차이수만큼스톨시켜주는방식을사용한다. 스톨은 multi cycle lookup table에 read address와 write address를넣어비교하고동시에 instruction sequence를분석할수있는기능을추가하는방식으로수행된다. 1047
한국통신학회논문지 '07-10 Vol. 32 No. 10 Ⅳ. 실험결과 제안된시스템에서타겟프로세서의생성을검증하기위해상용화된임베디드프로세서코어인 ARM9 [15], MIPS R3000 [16][17] 을타겟프로세서로정하고, SMDL 을사용하여 ' 내부구조기술 ' 부분과 ' 외부구조기술 ' 부분을기술하였다. 기술된타겟프로세서기술들을제안된시스템에입력하여각각의타겟프로세서코어들을생성하였고, 생성된타겟프로세서코어의동작의정확성을여러벤치마크를통해검증하였다. 동시에전력을측정하여기존자동생성방식에서생성된코어의소비전력과제안된자동생성방식의생성된코어의소비전력과면적증가를비교하였다. 각실험에사용된어플리케이션은 retargetable 컴파일러 SRCC를이용하여컴파일된실행코드를사용하였다. 제안된시스템은 UNIX 기반의 SUN-Sparc Workstation에서구현되었으며, 합성에사용된툴은 Synopsys사의 Design Compiler이다. 합성환경으로공정은매그너칩 0.25μm을사용하였고, 동작주파수는 70 MHz, 동작온도는 25, 동작전압은 3.3 V 로셋팅하였다. 4.1 ARM9 코어의생성실험 ARM9 모델을생성하는실험에서는실제프로세서와마찬가지로하버드아키텍처에파이프라인은 5단이며, 클럭은 2-phase non-overlapping 클럭을사용하였다. 표 2는 8-point 2-radix FFT와 4x4 매트릭스곱셈의기존코어생성기와제안된코어생성기의전력과면적측면에서의차이를보인다. 표 2와같이각어플리케이션에대한동적전력소모가전력컨트롤회로를포함한코어가이러한회로를포함하지않은회로에비해동적전력소모가크게줄어듦을알수있다. 생성된모델은 5단파이프라인에인스트럭션버스와데이터버스가분리되었으며버스나리소스충돌은발생하지않았다. FFT 연산실행시는 4,056 사이클, 매트릭스곱셈연산시 1,908 사이클이소요되었다. 이때사용된전력은사용된합성결과타겟프로세서는 16,231게이트로, 전력컨트롤모듈추가시는 17,689게 표 2. ARM9 에서의어플리케이션실행결과 8-point 2-radix FFT 4x4 Multiplication 기존방법 (uw) 제안된방법 (uw) 파워소모비교 (%) 32.2 18.4-42.9 21.2 15.2-28.3 면적비교 (%) +8.9 이트로설계되어 8.9% 가증가되었다. 이때증가된면적은대부분전력컨트롤모듈을컨트롤하는컨트롤러와인터널포워딩으로인해생긴부분이다. 4.2 MIPS R3000 코어의생성실험 MIPS R3000 모델을생성하는실험에서는실제프로세서와마찬가지로하버드아키텍처에파이프라인은 5단으로, 클럭은 2-phase non-overlapping 클럭을사용하였다. 표 3은 8-point 2-radix FFT와 4x4 매트릭스곱셈의기존코어생성기와제안된코어생성기의전력과면적측면에서의차이를보인다. 표 3과같이각어플리케이션에대한동적전력소모가전력컨트롤회로를포함한코어가이러한회로를포함하지않은회로에비해동적전력소모가크게줄어듦을알수있다. 생성된모델은 5단파이프라인에인스트럭션버스와데이터버스가분리되었으며버스나리소스충돌은발생하지않았다. FFT 연산실행시는 4,502 사이클, 매트릭스곱셈연산시 2,011 사이클이소요되었다. 이때사용된전력은사용된합성결과타겟프로세서는 21,653게이트로, 전력컨트롤모듈추가시는 24,021게이트로설계되어 10.9% 가증가되었다. MIPS R3000이 ARM9에비해제안된방법에의한동적전력소모율이적은이유는 ARM9에비해기본적으로필요한모듈의양이적기때문이다. 표 3. MIPS R3000 에서의어플리케이션실행결과 8-point 2-radix FFT 4x4 Multiplication 기존방법 (uw) 제안된방법 (uw) 파워소모비교 (%) 42.2 30.3-28.2 30.1 23.9-21.1 Ⅵ. 결론및추후과제 면적비교 (%) +10.9 본논문은머신기술언어 SMDL 을이용하여임베디드프로세서코어를자동생성하는시스템인임베디드코어생성기에서 spurious 연산자의 bit-switching 전력을줄일수있는방법을제안하였다. 제안된시스템은기존시스템의전처리과정, 코어모듈생성과정, HDL 코드생성과정에전력컨트롤모듈을추가하여타겟프로세서의코어를생성한다. 제안된시스템이생성한프로세서는 SMDL retargetable 컴파일러에의해생성된만들어진어플리케이션을실행할시, 기존생성과정에서만들어진코어보다 20% 이상동적전력이줄어듬을확인할수있었다. 1048
논문 / 저전력소모임베디드프로세서코어자동생성시스템의설계 실험은상용화된임베디드프로세서중 ARM9, MIPS R3000을 SMDL로기술하고, 제안된시스템을이용하여프로세서모델을생성하였다. 생성된모델의전력소비를비교하기위해기존코어생성기에서생성된프로세서모델과전력컨트롤모듈이포함되어생성된프로세서모델의전력을비교하고그결과를제시하였다. 추후과제로는파워를많이소비하는부분인버스, 메모리및캐쉬를컨트롤할수있는회로와상위레벨의파워관리방식인 DVS 및 DVM 과연동할수있는회로생성이필요하다. 참고문헌 [1] N. Dutt and K. Choi, Configurable Processor for Embedded Computing, IEEE Computer, Vol. 36, No. 1, pp. 120-123, Jan. 2003. [2] 최기영, 조영철, SoC 설계방법의최근동향, 대한전자공학회지, 30권 9호, pp. 17-27, 2003 년 9월. [3] A. Fauth, M. Fredericks, and A. Knoll, Generation of Hardware Machine Models from Instruction Set Descriptions, in Proc. IEEE Workshop VLSI Signal Processing, Veldhoven, Netherlands, pp. 242-250, Oct. 1993. [4] O. Schliebusch et al, A Novel Methodology for the Design of Application-Specific Instruction- Set Processors (ASIPs) Using a Machine Description Language, IEEE Trans. CAD of Int. Circuits and Systems, Vol. 20, No. 11, pp. 1338-1354, Nov. 2001. [5] P. Mishra, A. Kejariwal, and N. Dutt, Rapid Exploration of Pipelined Processors through Automatic Generation of Synthesizable RTL Model, in Proc. IEEE Int. Workshop on Rapid System Prototyping, San Diego, CA, pp. 226-232, Jun. 2003. [6] M. Itoh et al. Synthesizable HDL Generation for Pipelined Processors from a Micro- Operation Description, IEICE Trans., Vol. E83-A, No. 3, pp. 394-400, Mar. 2000. [7] A. Chattopadhyay, D. Kammler, E. Witte, 0. Schliebusch, H. Ishebabi, and B. Geukes, Automatic Low Power Optimizations during ADL-driven ASIP Design, in Proc. Int. Symp. VLSI Design, Automation and Test, pp. 1-4, Apr. 2006. [8] N. Chang and K. Kim, Real-time Per-cycle Energy Consumption Measurement of Digital Systems, IEE Electronics Letters, Vol. 36, No. 13, pp. 1169-1170, Jun. 2000. [9] M. Lee, V. Tiwari, S. Malik, and M. Fujita, Power Analysis and Minimization Techniques for Embedded DSP Software, IEEE Trans. on VLSI Systems, Vol. 5, No. 1, pp. 123-135, Mar. 1997 [10] H. Lee, J. Lee, and S. Hwang, A Novel High Level Synthesis Algorithm for Low Power ASIC Design, Journal of Microelectronic Systems Integration, Vol. 4, No. 4, pp. 219-232, Dec. 1996. [11] 조재범, 유용호, 황선영, 임베디드프로세서코어자동생성시스템의구축, 한국통신학회논문지, Vol. 30, No. 6A, pp. 526-533, Jun. 2005. [12] TEMIC Semiconductors, TSC691E Integer Unit User's Manual, 1996. [13] H. Lee and S. Hwang, Design of a High-Level Synthesis System for Automatic Generation of Pipelined Datapath, Journal of KITE, Vol. 31-A, No. 4, pp. 53-67, Mar. 1994. [14] V. Tiwari, R. Donnelly, S. Malik and R. Gonzalez, Dynamic Power Management for Microprocessor : A Case Study, IEEE 10th International Conference on VLSI Design, Jan. 1997. [15] ARM, ARM922T Technical Reference Manual (rev 0), 2001. [16] J. Hennessy and D. Patterson, Computer Architecture : A Quantitative Approach, Morgan Kaufmann Publishers Inc., 1990. [17] G. Kane, MIPS RISC Architecture, Prentice- Hall, 1998. [18] S. Pees, V. Zivojnovic, A. Hoffmann, and H. Meyr, Retargetable Timed Instruction Set Simulation of Pipelined Processor Architectures, in Proc. Int. Conf. Signal Processing Applications and Technology, Toronto, Canada, pp. 595-599, Sept. 1998. 1049
한국통신학회논문지 '07-10 Vol. 32 No. 10 김동원 (Dong-Won Kim) 준회원 2005년 2월서강대학교전자공학과졸업 2007년 8월서강대학교전자공학과공학석사취득 2007년 9월 ~ 현재알파칩스 < 관심분야 > 프로세서및 Controller 자동설계, 저전력회로설계, 머신기술언어등 황선영 (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년삼성전자 ( 주 ) 반도체기술자문 2002년 4월 ~2004년 3월서강대학교정보통신대학원장 1989년 3월 ~ 현재서강대학교전자공학과교수 < 관심분야 > SoC 설계및 framework 구성, CAD 시스템, Embedded System, DSP System 설계등 1050