논문 11-36-01-09 임베디드코어설계시효율적인설계공간탐색을위한컴파일드코드방식시뮬레이터생성시스템구축 준회원김상우 *, 정회원황선영 * Construction of a Compiled-code Simulator Generation System for Efficient Design Exploration in Embedded Core Design Sang-Woo Kim* Associate Member, Sun-Young Hwang* Regular Member 요 약 본논문은어플리케이션에최적화된임베디드시스템설계에있어효율적인설계공간을탐색할수있도록머신기술언어를기반으로한컴파일드코드방식시뮬레이터생성시스템을제안한다. 제안된시스템은 event-driven 시뮬레이션의융통성을유지하면서많은시뮬레이션시간을소요하는인스트럭션펫치와디코딩과정을정적으로결정하여빠른수행시간을갖는컴파일드코드방식시뮬레이터를생성한다. 생성된시뮬레이터는임베디드코어의성능측정을위한사이클수준과인스트럭션수준의시뮬레이션을가진다. 구축된컴파일드코드방식시뮬레이터생성기의효율성을확인하기위해 JPEG 인코더어플리케이션에대한아키텍처탐색을수행하였다. 제안된시스템은 MIPS R3000 프로세서의초기임베디드코어로시작하여어플리케이션에최적화된임베디드코어를얻어내었다. 이과정에서많은시뮬레이션시간이요구되었다. 사이클수준컴파일드코드방식시뮬레이터는 event-driven 시뮬레이션의정확성을가지며평균 21.7% 의향상된시뮬레이션의수행속도를보인다. Key Words : 컴파일드코드방식시뮬레이터, 성능측정, 임베디드시스템, 아키텍처탐색, 머신기술언어 ABSTRACT This paper proposes a compiled-code simulator generation system based-on machine description language for efficient design space exploration in designing an embedded system optimized for a specific application. The proposed system generates a compiled-code simulator which maintains the functional accuracy of an event-driven simulator by determining instruction fetch and decoding processes statically. Generated simulator takes instruction-level and cycle-level simulation for estimating performances in embedded core. To show the efficiency of the constructed compiled-code simulator generator, architecture exploration had been performed for the JPEG encoder application. Starting with MIPS R3000 processor for one embedded core, the proposed system can produce the core showing optimized execution time for the application programming. In this process, a huge amount of simulation time has been used. Cycle-level compiled-code simulator has the functional accuracy and shows performance improvement by 21.7% in terms of simulation speed on the average when compared with an event-driven simulator. 본연구는교육과학기술부의재원으로한국연구재단의지원을받아수행되었습니다. (#2010-0008043). * 서강대학교전자공학과 CAD & ES 연구실 (hwang@sogang.ac.kr) 논문번호 :KICS2010-08-373, 접수일자 :2010 년 8 월 4 일, 최종논문접수일자 : 2010 년 12 월 21 일 71
Ⅰ. 서론 모바일멀티미디어기기를중심으로발전하고있는임베디드시스템은고성능과저전력소비, 그리고다양한어플리케이션에대한수요자의요구를동시에만족하기위해시스템의핵심기능을하나의칩으로집적하는시스템반도체설계기술이중요하게되었다 [1-[3]. ASIC (Application Specific Integrated Circuits) 은특정어플리케이션에대해고성능프로세서의설계가가능하지만고려해야할어플리케이션이많을수록시스템설계복잡도가증가하므로 time-to-market을만족시키기가어렵게되어, 이미검증된 IP (Intellectual Property) 를재사용하는설계방식이사용된다 [2]. IP 기반의 ASIC 설계방식은멀티미디어, 통신시스템등의다양한어플리케이션 IP을이용하여다양한시스템설계가가능하나어플리케이션의변화와설계스펙이변동할경우에능동적으로대처하기가어렵고긴설계시간과많은비용이요구된다. ASIP (Application Specific Instruction-set Processor) 은어플리케이션에적합한프로세서구조와인스트럭션셋을가지며짧은설계기간내에사용자의다양한요구사항을만족시키는높은수준의융통성과재사용성을제공한다 [3-5]. ASIP 설계를위하여 configurable 프로세서기반의설계방식과머신기술언어기반의설계방식이제안되었다 [6-10]. Configurable 프로세서기반의설계방식은범용프로세서를바탕으로레지스터파일크기, 버스데이터폭등의매개변수설정을통해 ASIP의성능을극대화시키는설계방법이다 [6]. 이방법은타켓프로세서와관련개발도구를쉽게얻어내지만범용프로세서를기반으로제한된 ASIP을생성하기때문에설계융통성의감소와어플리케이션에최적화된프로세서설계의어려움이있다. 머신기술언어기반의설계방식은설계자가머신기술언어로기술한타겟프로세서의모델을바탕으로 ASIP 설계자동화시스템에서어플리케이션에적합한 ASIP과관련컴파일러, 시뮬레이터등을자동생성하며제한된소비전력과고성능을가진 ASIP을설계하는방법이다 [3,5,11-15]. 머신기술언어로부터컴파일러, 시뮬레이터등의자동생성은설계정확성과일관성을검증하는아키텍처탐색을수행하여어플리케이션에최적화된프로세서의설계를가능케한다 [13,14]. 아키텍처탐색은설계자가어플리케이션의특성을분석한결과를바탕으로초기프로세서모델을결정하고, ASIP의성능을향상시킬수있는설계모듈을사용하여프로세 서구조와인스트럭션셋등을개선하며어플리케이션에최적화된프로세서를얻을때까지최적화과정을반복한다 [16]. 다양하고넓은탐색공간에서어플리케이션에최적화된 ASIP과관련설계도구를빠르게얻어내는아키텍처탐색은고성능과저전력을동시에만족하는시스템반도체를적시에설계하여성공적인시장진입이가능하다 [16-18]. 시뮬레이터는 ASIP 설계결과물의검증과함께아키텍처탐색과정에서다음단계의프로세서설계를위한프로파일정보를얻어낼수있어최적화된 ASIP 설계에있어중요한설계도구이다 [17,19-23]. Event-driven 시뮬레이터를이용한아키텍처탐색은타겟프로세서의성능측정에대해높은융통성을가지므로올바른설계검증이가능하나느린시뮬레이션의수행속도로인해설계시간과비용이증가하게된다 [13,14,23]. 이를극복하기위해 event-driven 시뮬레이터의융통성을유지하는범위에서정적으로시뮬레이션을수행하는컴파일드코드방식시뮬레이터가제안되었으나, 아키텍처탐색과정의설계단계에알맞은시뮬레이션의수행속도와성능측정의정확성을고려하지않아시뮬레이션에많은시간이요구된다 [20-23]. 본논문에서는임베디드코어설계와효율적인아키텍처공간탐색을위하여머신기술언어를이용한컴파일드코드방식시뮬레이터생성시스템의설계에관해기술한다. 구현된시스템에서생성하는컴파일드코드방식시뮬레이터는 event-driven 시뮬레이션의높은융통성과성능측정의정확성을유지하면서빠른시뮬레이션의수행속도를갖기위해, 인스트럭션펫치와디코딩과정을정적으로결정하고인스트럭션 execute 과정을동적으로시뮬레이션을수행한다. 효율적인아키텍처탐색을위해설계단계에알맞은시뮬레이션속도와성능측정의정확성을가진인스트럭션수준과사이클수준에서의시뮬레이션이가능한컴파일드코드방식시뮬레이터를생성한다. 보다추상적인인스트럭션수준시뮬레이터는파이프라인구조의세부적인동작을고려하지않으므로빠른시뮬레이션의수행속도를가지며, 사이클수준시뮬레이터는타겟프로세서의파이프라인구조를총체적으로반영한시뮬레이션을수행하여성능측정의정확성이높다. 본논문의구성은다음과같다. 제2절에서는 event-driven 시뮬레이터에기반한설계공간탐색과관련개발도구를자동생성하는전체 framework를설명하고, 제3절에서는구축된컴파일드코드방식시뮬레이터생성시스템을보이고, 시뮬레이션의수행 72
논문 / 임베디드코어설계시효율적인설계공간탐색을위한컴파일드코드방식시뮬레이터생성시스템구축 속도와성능측정의정확성을고려한컴파일드코드방식시뮬레이션흐름과컴파일드코드방식시뮬레이터생성시스템에서프로파일링에대해설명한다. 제 4절에서는제안된시스템에서생성한컴파일드코드방식시뮬레이터의정확성과유용성에대한실험결과를보이며, 마지막으로제5절에서결론및추후과제를제시한다. Ⅱ. 관련연구및시스템 framework 2.1 관련연구머신기술언어로부터시뮬레이터의자동생성설계기법과설계공간탐색에관한많은연구가진행되었다. ISDL 언어로부터생성한타겟프로세서의구조적정보와행위정보를바탕으로구축된 event-driven 시뮬레이터는인스트럭션펫치와인스트럭션디코딩, 그리고 execute 과정을동적으로시뮬레이션을수행한다 [24]. 구축된시뮬레이터는높은시뮬레이션의융통성을보이나발전된프로세서구조인 VLIW 프로세서에대해 event-driven 시뮬레이션을수행할경우인스트럭션디코딩과정에많은시간이소요되어제한된설계시간내에설계검증이어렵다. LISA 언어의행위기술모델인인스트럭션수준과사이클수준에따른기술된타겟프로세서모델로부터생성한시뮬레이터는 event-driven 시뮬레이션의융통성을유지하는수준에서인스트럭션디코딩을정적으로결정하여시뮬레이션의수행속도를향상시키는컴파일드코드방식시뮬레이션을적용하는기법인 JIT-CCS (Just- In-Time Cache Compiled Simulation) 을수행한다 [22]. JIT-CCS 기법은인스트럭션디코딩과정의정보에대한재사용성을극대화시켜정적으로결정된인스트럭션디코딩과정의정보를저장하는데이터공간을많이요구하는컴파일드코드방식시뮬레이션의문제점을해결하였으나, 제한된데이터공간으로이상적인시뮬레이션과정을제시하므로보다다양한실제프로세서에대한시뮬레이션에한계가보인다 [20]. EXPRESSION 언어로부터생성한설계모듈라이브러리를기반으로구축된시뮬레이터는 event- driven 시뮬레이션의융통성을유지하는범위에서시뮬레이션의수행속도를향상시키는최적화된인스트럭션행위정보를이용하여시뮬레이션을수행한다 [20,21]. 구축된시뮬레이터는설계공간탐색을위해파이프라인구조, 데이터패스구조, 인스트럭션셋, ILP (Instruction-Level Parallelism) 을향상시키는설계모듈, 메모리구조에대한세부적인시뮬레이션을수행 한다 [19]. 설계공간탐색을통해어플리케이션에최적화된 ASIP 설계가가능하지만불필요한성능측정과정을최소화하여아키텍처탐색의성능을더욱향상할수있는방법은제안되지않고있다. 2.2 시스템의 Framework SMDL 시스템은 ASIP 설계자동화를위해구축된시스템으로머신기술언어 SMDL을이용한타겟프로세서기술로부터임베디드코어와관련컴파일러와시뮬레이터를자동생성하는임베디드코어생성기, SRCC (Sogang Retargetable Compiler Compiler), RISGen (Retargetable Instruction-set Simulator Generator) 로구성된다 [13-15]. 설계자는 SMDL 시스템에서지원하는아키텍처탐색을수행하여어플리케이션에최적화된임베디드코어와관련개발도구를얻을수있다 [16]. 그림 1은 SMDL 시스템의개관을보인다. SMDL parser는 SMDL 언어로타겟프로세서를기술된코드를입력으로구문분석을통해타겟프로세서의리소스, 파이프라인, 인스트럭션셋의구조적정보와행위정보, 그리고타겟프로세서와외부의디바이스에대한인터페이스정보를가진 IR (Intermediate Representative) 인프로세서모델을생성한다. 임베디드코어생성기, SRCC, RISGen은프로세서모델을의미분석을수행하여임베디드코어와관련컴파일러, 시뮬레이터의자동생성에필요한정보를얻는다. 임베디드코어생성기는프로세서모델로부터파이프라인스테이지리소스정보를제약조건으로파이프라인스케줄링을수행하여데이터패스모델과파이프라인스테이지에대한동작정보를가진 ACT (Active Component Table) [25] 를생성하며, 프로세서모델과 ACT를참조하여임베디드코어의그림 1. SMDL 시스템. 73
파이프라인정보, 데이터패스정보, 기능유닛간의연결정보, 그리고전력컨트롤유닛등의정보를가진임베디드코어모델을생성한다 [15]. HDL 코드생성기는생성한임베디드코어모델로부터합성가능한 HDL 코드로변환하여임베디드코어를얻는다. SRCC는프로세서모델에서합성된인스트럭션셋, reservation table, 인스트럭션 latency table을생성하여컴파일러의인스트럭션선택기와인스트럭션스케줄러를가진 back-end 모듈을생성한다 [13][26]. 생성된 back-end 모듈의컴파일러인스트럭션스케줄러는인스트럭션의 recoding을고려한스케줄링을하므로타겟프로세서에저전력동작이가능한인스트럭션을재구성한다 [26]. RISGen은프로세서모델에서시뮬레이션커널, 운영체제에동작하는시스템콜을시뮬레이션하기위한시스템콜모델, trade-off 관계에있는시뮬레이션의수행속도와성능측정의정확성에대한성능측정모델등을가진 RISGen 라이브러리를생성하며, 생성된 RISGen 라이브러리와임베디드코어모델을참조하여 event-driven 시뮬레이터 [14] 와컴파일드코드방식시뮬레이터를생성한다. SMDL 시스템의아키텍처탐색은어플리케이션프로그램의정적분석결과와시뮬레이션의결과인프로파일을입력으로한프로파일분석기를통해얻은동적분석결과를이용하여어플리케이션에최적화된타겟프로세서의구조와인스트럭션셋을결정하며, 다양한컴파일러의최적화기법을고려한고성능임베디드코어를얻는다 [13]. Ⅲ. 제안된컴파일드코드방식시뮬레이터생성시스템본절에서는제안된컴파일드코드방식시뮬레이터생성시스템의개관, 인스트럭션수준과사이클수준의컴파일드코드방식시뮬레이션흐름, 그리고컴파일드코드방식시뮬레이션흐름에서프로파일링을설명한다. 측정의정확성을고려한 basic-block 수준, 인스트럭션수준과사이클수준에알맞은성능측정할설계모듈을가진다. Basic-block 수준은컴파일러의인스트럭션스케줄링결과를이용하여보다넓은설계공간인프로세서리소스와프로세서구조에대해빠르게프로파일을얻는다. 인스트럭션수준은파이프라인구조에대한세부적인프로파일을제외한기능유닛, 레지스터파일, 인스트럭션셋, 데이터패스구조등에대해프로파일을얻으며, 사이클수준은인스트럭션수준보다더욱구체적인산술논리유닛, 분기처리유닛, 레지스터크기, 레지스터파일정보, 인스트럭션행위정보, 어드레싱모드, 파이프라인의세부적인구조등에대한프로파일을얻는다. 그림 2는컴파일드코드방식시뮬레이터생성시스템을보인다. 제안된시뮬레이터생성기는프로세서모델을참조하여생성한인스트럭션디코딩모듈, RISGen 라이브러리, 그리고컴파일드코드방식시뮬레이션엔진은 event-driven 시뮬레이션이가지는장점을유지하면서빠른시뮬레이션의수행속도를위해인스트럭션펫치와디코딩과정을정적으로결정한다. 인스트럭션디코딩모듈은바이너리코드를입력으로펫치된인스트럭션의바이너리포맷정보와필드별정보를이용하여동적으로시뮬레이션수행시에관련인스트럭션의행위정보와오퍼랜드의값을가진디코딩된인스트럭션을생성한다. 성능측정모델은사이클수준시뮬레이터와인스트럭션수준시뮬레이터의생성을위한정보 [14] 를가진다. 인스트럭션수준시뮬레이터생성을위한성능측정모델은단일인스트럭션이타겟프로세서의파이프라인스테이지에따른행위정보등을가지며, 사이클수준시뮬레이터경우는데이터해저드와컨트롤해저드를해결하는기법에따른파이프라인의세부적인구조와스테이지행위에 3.1 컴파일드코드방식시뮬레이터생성컴파일드코드방식시뮬레이터생성시스템은프로세서모델로부터생성한 RISGen 라이브러리와임베디드코어모델, 그리고어플리케이션프로그램을 retargetable 컴파일러에의해변환된바이너리코드를참조하여성능측정모델에해당되는컴파일드코드방식시뮬레이터를생성한다. 성능측정모델은서로 trade-off 관계에있는시뮬레이션의수행속도와성능 그림 2. 컴파일드코드방식시뮬레이터생성시스템. 74
논문 / 임베디드코어설계시효율적인설계공간탐색을위한컴파일드코드방식시뮬레이터생성시스템구축 대한정보등을가진다. 디코딩된인스트럭션, RISGen 라이브러리, 컴파일드코드기반시뮬레이션엔진, 그리고임베디드코어모델을참조하여컴파일드코드방식시뮬레이터를생성된다. 3.2 성능측정모델을포함한컴파일드코드방식시뮬레이션흐름생성된컴파일드코드방식시뮬레이터는 trade-off 관계에있는시뮬레이션의수행속도와성능측정의정확성에대한성능측정모델을고려하였다. 그림 3 은제안된컴파일드코드방식시뮬레이션흐름을보인다. 그림 3 (a) 과 (b) 는각각인스트럭션수준과사이클수준의컴파일드코드방식시뮬레이션흐름을보인다. 인스트럭션수준의시뮬레이터는파이프라인구조정보를이용한인스트럭션수행모듈에서단일인스트럭션이파이프라인구조에동작하고파이프라인해저드를고려하지않은시뮬레이션을수행하며, 빠른시뮬레이션의수행속도를가지므로파이프라인구조를고려하지않은프로파일을얻을경우에유용하다. 인스트럭션수준의시뮬레이션흐름은인스트럭션메모리에저장된디코딩된인스트럭션의참조할인스트럭션행위정보와오퍼랜드값을이용하여해당인스트럭션행위에서인스트럭션펫치와디코딩과정이완료된파이프라인스테이지상태로초기화하며, 인스트럭션수행모듈에서관련인스트럭션행위와프로세서리소스의현재결과를바탕으로단한번 (a) (b) 그림 3. 제안된컴파일드코드방식시뮬레이션흐름. (a) 인스트럭션수준컴파일드코드방식시뮬레이션흐름, (b) 사이클수준컴파일드코드방식시뮬레이션흐름. 에파이프라인의최종스테이지까지동적으로시뮬레이션을수행한다. 그결과를프로세서리소스에반영하며업데이트된프로세서리소스와파이프라인구조에대해프로파일링을하여프로파일저장소에저장하고, 인스트럭션메모리에서다음프로그램카운터값에해당되는디코딩된인스트럭션을위와같이동적으로시뮬레이션을수행한다. 사이클수준의시뮬레이터는정확한성능측정을위해타겟프로세서의파이프라인구조를총체적으로반영하는시뮬레이션흐름을가진다. 사이클수준의시뮬레이션흐름은인스트럭션수준의시뮬레이션과동일한초기화과정을완료하며, 해당인스트럭션행위에관련파이프라인구조의구체적인동작을동적으로시뮬레이션을수행하여프로세서리소스의값과파이프라인구조의레지스터값을업데이트한다. 하나의파이프라인스테이지를동작한파이프라인구조와프로세서리소스에대한프로파일링을하여프로파일저장소에저장한다. 파이프라인에동작가능한슬롯이있을경우는인스트럭션메모리에서다음프로그램카운터값에해당되는디코딩된인스트럭션을위와같이동적으로시뮬레이션을수행하고, 그렇지않으면파이프라인의모든슬롯들이다음파이프라인스테이지로시뮬레이션을수행한다. 3.3 컴파일드코드방식시뮬레이터생성시스템에서프로파일링인스트럭션수준과사이클수준의컴파일드코드방식시뮬레이터생성시스템에서프로파일러는코어의설계수준에알맞은프로파일을생성하여불필요한프로파일링과정과시간을최소화할수있다. 그림 4는컴파일드코드방식시뮬레이터생성시스템에서프로파일링을보인다. 프로세서모델로부터인스트럭션수준과사이클수준의성능측정정보를추출한 IR (Intermediate Representation) 은인스트럭션사이클테이블, 인스트럭션지연테이블, 파이프라인리저베이션테이블, 파이프라인해저드를해결하는기법에따른성능측정매개변수등으로구성된다. 인스트럭션수준의프로파일러를위한 IR은인스트럭션사이클테이블, 인스트럭션지연테이블, 파이프라인리저베이션테이블등이며, 파이프라인세부적인구조를고려하지않은개괄적인파이프라인구조에대한프로파일을생성한다. 인스트럭션사이클테이블은단일인스트럭션이타겟프로세서의파이프라인에동작하는사이클값을가지며, 인스트럭션지연테이블은 RAW (Read After Write), WAW (Write After 75
층적인설계모듈의프로파일항목별로구성할수있도록저장된다. 프로파일저장소의프로파일을입력으로한프로파일분석기는코어의설계모듈에관련있는성능데이터를분석한결과를생성하며, 설계자는이결과를바탕으로코어의성능이향상시킬수있도록타겟프로세서를재설계한다. 그림 4. 컴파일드코드방식시뮬레이터생성시스템에서프로파일링. Write), WAR (Write After Read) 해저드를해결하기위한인스트럭션의지연사이클값을가지며, 파이프라인리저베이션테이블은단일인스트럭션이파이프라인스테이지의행위에따른프로세서리소스정보를가진다. 인스트럭션수준의프로파일러는현재시뮬레이션상태의인스트럭션수행모듈과프로세서모델의리소스정보, 인스트럭션행위의리소스사용정보, 그리고인스트럭션수준의프로파일러를위한 IR의성능측정정보를바탕으로기능유닛, 레지스터파일, 인스트럭션셋, 데이터패스구조등에대한성능데이터를얻는다. 이전단계에시뮬레이션이완료된인스트럭션정보와인스트럭션사이클테이블, 인스트럭션지연테이블, 파이프라인리저베이션테이블을이용하여파이프라인의데이터해저드가일어나지않은범위에서단일인스트럭션의최종사이클값을구하여이전단계에해당되는임베디드코어의전체수행사이클값에더한다. 생성된성능데이터는프로파일저장소에서임베디드코어의설계모듈에따른프로파일항목별로저장된다. 사이클수준의프로파일러를위한 IR은데이터해저드와컨트롤해저드를해결하는기법에따른파이프라인의세부적인구조와프로세서리소스에대한성능측정매개변수등으로구성된다. 사이클수준의프로파일러는하나의파이프라인스테이지에대한사이클수준의시뮬레이션상태에서파이프라인구조와프로세서모델의리소스정보, 인스트럭션행위의리소스사용정보, 그리고사이클수준의프로파일러를위한 IR의성능측정정보를바탕으로산술논리유닛, 분기처리유닛, 레지스터크기, 레지스터파일정보, 인스트럭션행위정보, 어드레싱모드, 파이프라인스테이지에따른구조등에대한성능데이터를얻는다. 생성된성능데이터는인스트럭션수준의프로파일러가생성한성능데이터에비해보다다양하고세부적인임베디드코어의설계모듈에대해성능측정되었으며프로파일저장소에서계 표 1. 임베디드코어의수행성능. JPEG 인코더프로그램수행시필요사이클수 사용된시뮬레이터 Event-driven 시뮬레이터인스트럭션수준컴파일드코드방식시뮬레이터 사이클수준컴파일드코드방식시뮬레이터 Ⅳ. 실험결과 구축된컴파일드코드방식시뮬레이터자동생성시스템에서생성한시뮬레이터의정확성과유용성을검증하기위해 MIPS R3000 프로세서를 SMDL 언어로기술하여프로세서로사용하였으며, 점차최적화된프로세서를생성하는과정을밟았다 [27]. 표 1은 MIPS R3000의초기임베디드코어와아키텍처탐색을수행하여 JPEG 인코더에최적화된임베디드코어에대해시뮬레이터에따른 JPEG 인코더프로그램수행시필요사이클수를보인다 [16]. 최종임베디드코어의수행사이클결과를통해 SMDL 시스템은아키텍처탐색에효율적임을보인다. 표 2는아키텍처탐색시시뮬레이터방식에따른시뮬레이션의평균수행시간을보인다. 컴파일드코 M I P S R3000 의초기임베디드코어 JPEG 인코더에최적화된임베디드코어 비고 72,990,212 36,192,147-50.4% 표 2. 아키텍처탐색시시뮬레이션방식에따른시뮬레이션의평균수행시간. M I P S R3000 의초기임베디드코어 JPEG 인코더에최적화된임베디드코어 비고 6,007.4 ms 2,969.8 ms -50.6% 1,300.6 ms 641.7 ms -50.6% 4,705.1 ms 2,325.9 ms -50.7% 76
논문 / 임베디드코어설계시효율적인설계공간탐색을위한컴파일드코드방식시뮬레이터생성시스템구축 드방식시뮬레이터는 event-driven 시뮬레이터에비해빠르게시뮬레이션을수행하며, 인스트럭션수준의시뮬레이터는파이프라인의세부적인구조를고려하지않으므로사이클수준의시뮬레이터보다빠른수행속도를가진다. 그림 5는 JPEG 인코더에최적화된최종임베디드코어를생성될때까지시뮬레이션의평균수행시간비교를보인다. Event-driven 시뮬레이션의평균수행시간을 100로놓고인스트럭션수준컴파일드코드방식시뮬레이션과사이클수준컴파일드코드방식시뮬레이션의평균수행속도를구하였다. 인스트럭션수준컴파일드코드방식시뮬레이터는 event-driven 시뮬레이터에비해평균 78.4% 시뮬레이션시간이감소하였고, 사이클수준컴파일드코드방식시뮬레이터는 event-driven 시뮬레이터에비해평균 21.7% 시뮬레이션시간이감소하였다. JPEG 인코더에최적화된임베디드코어설계를위한아키텍처탐색의결과를통해사이클수준컴파일드코드방식시뮬레이터는동적으로동작하는인스트럭션행위와운영체제의시스템콜등을예측가능한범위내에구축된 RISGen 라이브러리를이용하여인스트럭션펫치와디코딩과정을정적으로결정하였다. 정적으로결정된인스트럭션펫치와디코딩과정에기반한동적으로시뮬레이션의결과는 event-driven 시뮬레이터의정확성과융통성을유지하며평균 21.7% 시뮬레이션수행속도가향상되었다. 인스트럭션수준컴파일드코드방식시뮬레이터는세부적인파이프라인구조를제외한기능유닛, 데이터패스, 인스트럭션셋등에대한프로파일을얻으므로임베디드코어의설계에한계가있으나, 사이클수준컴파일드코드방식시뮬레이터의느린시뮬레이션의수행속도를보완할수있다. 성능측정모델을고려한컴파일드코드방식시뮬레이터는체계적인 아키텍처탐색의단계에맞게이용하면불필요한성능측정과정을최소화할수있으므로어플리케이션에최적화된임베디드코어의설계를위한아키텍처탐색의성능향상이가능하다. Ⅴ. 결론및추후과제본논문은 event-driven 시뮬레이터의느린시뮬레이션의수행속도를보완하고성능측정과정을설계수준에맞추어효율적으로수행할수있도록성능측정모델을포함한컴파일드코드방식시뮬레이터생성시스템을제안하였다. 생성된컴파일드코드방식시뮬레이터는 event-driven 시뮬레이터의정확성과융통성을유지할수있는범위내에 RISGen 라이브러리를이용하여인스트럭션펫치와디코딩과정을정적으로결정하여빠른시뮬레이션의수행속도를가진다. 서로 trade-off 관계가있는시뮬레이션의수행속도와성능측정의정확성을고려한성능측정모델을채택하며인스트럭션수준과사이클수준의시뮬레이션수행과프로파일링이가능하다. 구축된컴파일드코드방식시뮬레이터는 ARM9 프로세서와 MIPS R3000 프로세서에서 JPEG 인코더에대한시뮬레이션을수행하여시뮬레이션의정확성을검증하였다. JPEG 인코더에최적화된임베디드코어설계를위해전용시뮬레이터로사용된 event-driven 시뮬레이터, 인스트럭션수준과사이클수준의컴파일드코드방식시뮬레이터를이용하여아키텍처탐색을수행하였으며, 그결과는사이클수준컴파일드코드방식시뮬레이터는 event-driven 시뮬레이터의정확성과융통성을유지하면서그에비해평균 21.7% 시뮬레이션수행속도가향상되었다. 인스트럭션수준컴파일드코드방식시뮬레이터는사이클수준컴파일드코드방식시뮬레이터에비해시뮬레이션의정확성이떨어지나빠른성능측정이가능하므로파이프라인의세부적인구조를고려하지않은아키텍처탐색의설계단계에사용하면보다빠르게어플리케이션에최적화된임베디드코어를설계할수있다. 추후과제는설계된임베디드코어와특정어플리케이션에최적화된 IP 등의동시시뮬레이션을수행할수있는시뮬레이터생성시스템으로확장하는연구가필요하다. 참고문헌 그림 5. 최적화된임베디드코어설계에서시뮬레이터별시뮬레이션의평균수행시간. [1] J. Rabaey and M. Pedram, Eds., Low Power 77
Design Methodologies, Kluwer Academic Pub., 1996. [2] S. Abdi, D. Shin, and D. Gajski, Automatic Communication Refinement for System Level Design, in Proc. Design Automation Conference, Anaheim, CA, pp.300-305, June 2003. [3] M. Jain, M. Balakrishnan, and A. Kumar, ASIP Design Methodologies : Survey and Issues, in Proc. IEEE/ACM Int. Conf. VLSI Design. (VLSI 2001), Bangalore, India, pp.76-81, Jan. 2001. [4] C. Liem, Retargetable Compilers for Embedded Core Processors, Kluwer Academic Pub., 1997. [5] R. Leupers, Compiler Design Issues for Embedded Processors, IEEE Design & Test of Computers, Vol.19, No.4, pp.51-58, July/Aug. 2002. [6] R. Gonzalez, Xtensa : A Configurable and Extensible Processor, IEEE Micro, Vol.20, No.2, pp.60-70, March/April 2000. [7] 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. [8] M. Itoh et al. Synthesizable HDL Generation for Pipelined Processors from a Micro-Operation Description, IEICE Trans. on Fundamentals of Electronics Communications and Computer Sciences, Vol.E83-A, No.3, pp.394-400, Mar. 2000. [9] O. Schliebusch et al, A Novel Methodology for the Design of Application-Specific Instruction Set Processors Using a Machine Description Language, IEEE Trans. Computer-Aided Design, Vol.20, No.11, pp.1338-1354, Nov. 2001. [10] 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, June 2003. [11] P. Marwedel and G. Goossens, Code Generation for Embedded Processors, Kluwer Academic Pub., 1995. [12] M. Jacome and G. Veciana, Design Challenges for New Application-Specific Processors, IEEE Design & Test of Computers, Vol.17, No.2, pp.40-50, April/June 2000. [13] 이성래, 황선영, 머쉰행위기술로부터 Retargetable 컴파일러생성시스템구축, 한국통신학회논문지 ( 네트워크및서비스 ), 32권 5호, pp.286-294, 2007년 5월. [14] 홍성민, 박창수, 황선영, DSP 프로세서용인스트럭션셋시뮬레이터자동생성기의설계에관한연구, 한국통신학회논문지 ( 무선통신 ), 32권 9호, pp.931-939, 2007년 9월. [15] 조재범, 유용호, 황선영, 임베디드프로세서코어자동생성시스템의구축, 한국통신학회논문지, 30권 6A호, pp.526-534, 2005년 6월. [16] 이성래, 황선영, Application에최적의 ASIP 설계를위한효율적인 Architecture Exploration 방법, 한국통신학회논문지 ( 통신이론및시스템 ), 32권 9호, pp.913-921, 2007년 9월. [17] T. Kempf, K. Karuri, S. Wallentowitz, G. Ascheid, R. Leupers, and H. Meyr, A SW Performance Estimation Framework for Early System-Level-Design Using Fine-grained Instrumentation, in Proc. Conf. Design Automation and Test in Europe, Munich, Germany, pp.468-473, March 2006. [18] P. Hallschmid and R. Saleh, Fast Design Space Exploration Using Local Regression Modeling With Application to ASIPs, IEEE Trans. Computer-Aided Design, Vol 27, No.3, pp.508-515, March 2008. [19] A. Khare, N. Savoiu, A. Halambi, P. Grun, N. Dutt, and A. Nicolau, V-SAT: A Visual Specification and Analysis Tool for System-On-Chip Exploration, in Proc. EUROMICRO Conf., Vol.1, Milan, Italy, pp.196-203, Sept. 1999. [20] M. Reshadi, P. Mishra, and N. Dutt, Instruction Set Compiled Simulation: A Technique for Fast and Flexible Instruction Set Simulation, in Proc. Design Automation Conference, Anaheim, CA, pp.758-763, June 2003. [21] M. Reshiadi, N. Bansal, P. Mishra, and N. Dutt, 78
논문 / 임베디드코어설계시효율적인설계공간탐색을위한컴파일드코드방식시뮬레이터생성시스템구축 An Efficient Retargetable Framework for Instruction-Set Simulation, in Proc. IEEE/ACM/IFIP Int. Conf. Hardware /Software Codesign & System Synthesis, Newport Beach, CA, pp.13-18, Oct. 2003. [22] A. Nohl, G. Braun, O. Schliebusch, R. Leupers, H. Meyr, and A. Hoffmann, A Universal Technique for Fast and Flexible Instruction-Set Architecture Simulation, in Proc. Design Automation Conference, New Orleans, LA, pp.22-27, June 2002. [23] M. Gries and K. Keutzer, Eds., Building ASIPs: The Mescal Methodology, Springer, 2005. [24] G. Hadjiyiannis and S.Devadas, Techniques for Accurate Performance Evaluation in Architecture Exploration, IEEE Trans. VLSI Systems, Vol.11, No.4, pp.601-615, Aug. 2003. [25] 이해동, 황선영, 파이프라인데이타패스자동생성을위한상위수준합성시스템의설계, 대한전자공학회논문지, 31-A권 3호, pp.290-304, 1994 년 3월. [26] S. Lee, S. Lee, and S. Hwang, A Concurrent Instruction Scheduling and Recoding Algorithm for Power Minimization in Embedded Systems, IEICE Transactions on Information and Systems, Vol.93-D, No.8, Aug 2010. [27] G. Kane and J. Heinrich, MIPS RISC Architecture, Prentice Hall, 1992. 김상우 (Sang-Woo Kim) 준회원 2009년 2월서강대학교전자공학과졸업 2009년 3월~현재서강대학교전자공학과석사과정 < 관심분야 > ASIP Design, Retargetable Compiler for Embedded System 황선영 (Sun-Young Hwang) 정회원 1976년 2월서울대학교전자공학과졸업 1976년 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 시스템, DSP 시스템설계등 79