KR101635397B1 - 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법 - Google Patents

재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법 Download PDF

Info

Publication number
KR101635397B1
KR101635397B1 KR1020100019154A KR20100019154A KR101635397B1 KR 101635397 B1 KR101635397 B1 KR 101635397B1 KR 1020100019154 A KR1020100019154 A KR 1020100019154A KR 20100019154 A KR20100019154 A KR 20100019154A KR 101635397 B1 KR101635397 B1 KR 101635397B1
Authority
KR
South Korea
Prior art keywords
simulation
core
component
reconfigurable processor
definition file
Prior art date
Application number
KR1020100019154A
Other languages
English (en)
Other versions
KR20110100070A (ko
Inventor
조영철
류수정
김윤진
웅 서
박일현
오태욱
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020100019154A priority Critical patent/KR101635397B1/ko
Priority to US13/006,730 priority patent/US8768680B2/en
Publication of KR20110100070A publication Critical patent/KR20110100070A/ko
Application granted granted Critical
Publication of KR101635397B1 publication Critical patent/KR101635397B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/10Processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)

Abstract

멀티코어 시스템의 성능을 향상시킬 수 있도록 멀티코어 시스템의 구조 배치를 자동으로 변경하면서 시뮬레이션하는 기술이 제공된다. 일 실시예에 따른 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터는 시스템의 구조가 정의된 파일을 입력받아 그에 기술된 각 컴포넌트를 컴포넌트 라이브러리로부터 선택하고, 선택된 컴포넌트를 시뮬레이터에 미리 저장된 데이터 구조에 채워 넣어 멀티코어 시스템의 구조 모델을 생성부와 구조 모델을 기초로 응용 프로그램을 실행하고 그 결과를 출력하는 시뮬레이션 엔진을 포함한다. 이에 따라, 설정된 성능에 최적화된 멀티코어 시스템의 구조를 결정할 수 있다. 또한, 시뮬레이션의 과정이 간소화된다.

Description

재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법 {METHOD AND APPARATUS FOR SIMULATION OF MULTI CORE SYSTEM USING RECONFIGURABLE PROCESSOR CORE}
멀티코어 시스템에 관한 것으로, 보다 구체적으로는 멀티코어의 구조를 동적으로 배치하면서 시뮬레이션하는 기술과 관련된다.
멀티코어 시스템은 서로 다른 작업을 동시에 수행할 수 있는 두 개 이상의 프로세서 코어를 포함하는 것을 말한다. 이러한 시스템은 병렬 처리에 적합한 응용들(applications)에서 복수의 프로세서 코어에 적절한 작업량을 분배함으로써 시스템의 성능을 향상시킬 수 있다. 멀티코어 시스템을 이용한 병렬처리를 통해 단일코어 시스템에 비해 적은 비용으로 같은 정도의 성능 향상을 얻을 수 있다.
멀티코어 시스템은 단일코어 시스템에 비해 더 많은 프로세서 코어, 메모리, DMA(Direct Memory Access), ITC(interrupt controller), 타이머 등의 컴포넌트들이 필요하다. 이에 따라, 각 컴포넌트들 간의 연결은 더욱 복잡하게 된다. 따라서, 전체 시스템의 성능 향상 및 전력 소비를 줄이기 위해 멀티코어의 구조를 결정하는 것이 중요하다.
멀티코어 시스템의 구조를 결정하는 방법 중 하나는 숙련된 엔지니어의 직관에 의해 결정하는 것이다. 이는 엔지니어의 경험에 의존하여 가장 적합한 멀티코어의 구조를 결정하는 것을 말한다. 다만, 이러한 방법은 설계 당시 목표한 성능 및 전력 소비에 미치지 못하는 경우 그 분석 및 해결이 용이하지 않다.
또 다른 방법으로, 멀티코어의 구조를 결정하기 위해 라이브러리(library)에 등록된 컴포넌트들을 선택하고, 이를 C/C++ 언어로 된 코드를 생성할 수 있다. 생성된 코드를 컴파일하여, 이를 시뮬레이터를 생성하여 실행하게 된다. 다만, 생성된 시뮬레이터는 고정된 구조의 시뮬레이션만 가능하다.
변경된 구조의 멀티코어 시스템을 시뮬레이션하기 위해서는 여러 단계를 거쳐 다시 시뮬레이션해야 하기 때문에 시간 등이 많이 소모된다. 따라서, 빠른 시간내에 멀티코어 시스템 구조를 변경하면서 시뮬레이션을 할 수 있는 환경 구축이 필요하다.
멀티코어 시스템의 성능을 향상시킬 수 있도록 멀티코어 시스템의 구조 배치를 자동으로 변경하면서 시뮬레이션하는 기술이 제공된다.
일 실시예에 따른 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터는 시스템의 구조가 정의된 파일을 입력받아 그에 기술된 각 컴포넌트를 컴포넌트 라이브러리로부터 선택하고, 선택된 컴포넌트를 시뮬레이터에 미리 저장된 데이터 구조에 채워 넣어 멀티코어 시스템의 구조 모델을 생성부와 구조 모델을 기초로 응용 프로그램을 실행하고 그 결과를 출력하는 시뮬레이션 엔진을 포함한다. 또한, 복수의 구조 정의 파일을 이용할 수 있으며, 구조 정의 파일의 형식은 XML일 수 있다. 또한, 컴포넌트 라이브러리에 미리 컴파일된 컴포넌트 정보들이 저장될 수 있다.
일 실시예에 따른 시뮬레이터는 목적함수를 이용해 시스템의 시뮬레이션 결과가 미리 설정된 성능 조건을 만족하는지 판단하는 성능 분석부를 추가적으로 포함할 수 있다. 또한, 성능 분석부가 목적함수를 이용해 시스템의 시뮬레이션 결과가 미리 설정된 성능 조건을 만족하는지 판단하고, 만족하지 못하는 경우에는 시뮬레이터의 런-타임(run-time)시 구조 구성부에 새로운 구조 정의 파일이 입력될 수 있다. 또한, 시뮬레이터 엔진부는 동일한 멀티코어 시스템의 구조 모델에 대하여 복수의 응용 프로그램을 실행하여 시뮬레이션을 할 수 있다.
일 실시예에 따른 시뮬레이션 방법은 시스템의 구조가 정의된 파일을 입력받고, 그에 대응하는 각 컴포넌트를 컴포넌트 라이브러리부로부터 선택한다. 다음으로 선택된 컴포넌트를 데이터 구조에 채워 넣어 멀티 코어 시스템의 구조 모델을 생성하고, 구조 모델에 응용 프로그램을 실행하여 그 결과를 출력한다. 또한, 시뮬레이션 방법에 사용되는 구조 정의 파일은 복수이고, XML 형식일 수 있다. 또한, 목적함수를 이용해 시스템의 시뮬레이션 결과가 기설정된 성능 조건을 만족하는지를 판단하는 단계가 추가적으로 포함된다.
일 실시예에 따른 시뮬레이션 방법에서 성능 분석단게는 성능 분석부가 목적함수를 이용해 시스템의 시뮬레이션 결과가 기설정된 성능 조건을 만족하는지 판단하고, 만족하지 못하는 경우에는 시뮬레이터의 런-타임(run-time)시 구조 구성부에 새로운 구조 정의 파일이 입력될 수 있다. 또한, 시뮬레이션 방법에 사용되는 시뮬레이터 엔진부는 동일한 멀티코어 시스템의 구조 모델에 대하여 복수의 응용 프로그램을 실행하여 시뮬레이션할 수 있다.
설정된 성능에 최적화된 멀티코어 시스템의 구조를 결정할 수 있다. 또한, 시뮬레이션의 과정이 간소화된다. 또한, 멀티코어 시스템의 구조를 변경하면서도 시뮬레이션 속도가 감소되지 않는 효과를 가져올 수 있다.
도 1은 일 실시예에 따른 시뮬레이터의 내부 구성도,
도 2a는 일 실시예에 따른 시뮬레이터에 저장된 구조 데이터에 컴포넌트가 배열되기 전의 상태를 나타낸 도식도,
도 2b는 일 실시예에 따른 시뮬레이터에 저장된 구조 데이터에 컴포넌트가 배열된 상태를 나타낸 도식도,
도 3은 일 실시예에 따른 시뮬레이터의 동작 흐름도,
도 4는 일 실시예에 따른 시뮬레이션 방법의 순서도를 나타낸다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세하게 설명한다. 사용되는 용어들은 실시예에서의 기능을 고려하여 선택된 용어들로서, 그 용어의 의미는 사용자, 운용자의 의도 또는 판례 등에 따라 달라질 수 있다. 그러므로 후술하는 실시예들에서 사용된 용어의 의미는, 본 명세서에 구체적으로 정의된 경우에는 그 정의에 따르며, 구체적인 정의가 없는 경우는 당업자들이 일반적으로 인식하는 의미로 해석되어야 할 것이다.
도 1은 일 실시예에 따른 시뮬레이터(10)의 내부 구성도이다. 도 1을 참조하면, 시뮬레이터(10)는 구조 구성부(11), 컴포넌트 라이브러리(13), 구조 모델(15), 시뮬레이션 엔진부(17), 성능 분석부(19)를 포함할 수 있다.
구조 구성부(11)는 인터페이스 컨트롤러, 데이터 구조가 저장된 메모리로 구성될 수 있다. 구조 구성부(11)는 멀티코어 시스템의 구조 배치가 XML(extensible markup language) 형식의 데이터 파일을 입력받을 수 있다. 구조 정의 파일(20)에는 멀티코어 시스템의 각 컴포넌트들이 스키매틱(schematic) 형태로 표현될 수 있다. 이에 따라, 구조 구성부(11)가 구조 정의 파일(20)을 입력받은 후, 각 컴포넌트의 구성 및 배치, 인터페이스 상태에 대한 정보를 얻게 된다.
예를 들면, 프로세서 코어, 메모리, DMA(Direct Memory Access), ITC(interrupt controller), 타이머의 개수 및 배치 상태에 관한 정보를 포함한다. 또한, 각 컴포넌트 간의 인터페이스에 관한 정보를 포함할 수 있다. XML 형식의 파일을 사용하면, 별도의 디코딩(decoding)을 거치지 않고도 멀티코어 시스템의 배치를 파악할 수 있게 된다. 일단, 시스템의 배치구조가 파악이 되면 구조 구성부(11)는 컨트롤러를 통해 컴포넌트 라이브러리(13)를 참조하여 각 컴포넌트들을 인스턴스(instance)하게 된다.
또한, 구조 정의 파일(20)은 복수일 수 있다. 사용자는 실험적으로 여러 구조를 미리 설정하여 이를 XML 형식으로 저장해 놓을 수 있다. 이에 따라, 다양한 멀티코어 시스템의 구조를 시뮬레이션하는데 필요한 구조 정의 파일(20)이 입력될 수 있다. 구조 구성부(11)는 인스턴스된 각 컴포넌트들을 시뮬레이터에 미리 설정된 데이터 구조에 이를 채우게 된다. 미리 설정된 데이터 구조는 예를 들면, 트리(tree)형태의 데이터 구조일 수 있다. 이에 따라, 멀티코어 시스템(10)의 최종적인 구조 모델(15)이 생성된다.
컴포넌트 라이브러리(13)에는 멀티 시스템에 사용되는 여러 종류의 컴포넌트들이 컴파일된 상태로 저장되어 있다. 따라서, 구조 구성부 (11)로부터 신호를 입력받으면 언제든지 그에 해당하는 컴포넌트를 인스턴스 할 수 있다. 컴포넌트 라이브러리(13)에 저장되는 컴포넌트의 종류는 미리 설정될 수 있다. 각각의 컴포넌트에 대한 정보 예를 들면, RP 코어(210,230)는 DMAC(Direct Memory Access Controller), 구조 메모리, 캐시(chache), 인터페이스에 대하여 전력소모량, 데이터 처리 속도 등이 저장될 수 있다.
한편, 컴포넌트 라이브러리(13)에는 새로운 컴포넌트나 인터페이스를 설정할 수 있다. 다만, 컴포넌트 라이브러리(13)에는 컴파일된 컴포넌트가 저장되어 있기 때문에 새로운 컴포넌트는 별도의 컴파일 과정을 거친다. 이에 따라, 인스턴스(instance)된 컴포넌트를 데이터 구조에 채우는 경우, 별도의 컴파일 과정을 거치지 않기 때문에 시뮬레이션 과정이 간소화될 수 있다. 시뮬레이터(10)에 미리 저장된 데이터 구조에 인스턴스된 컴포넌트를 채우는 것은 후술하기로 한다.
구조 모델(15)은 앞서 설명한 데이터 구조에 컴포넌트 라이브러리(13)로부터 인스턴스된 각 컴포넌트들을 채워 넣음으로써 완성된다. 이러한 구조 모델(15)은 구조 구성부(11)에 의해 출력(40)된다. 구조 모델(15)은 별도의 컴파일(compile) 과정 없이도 시뮬레이터 엔진부(17)에 의해 곧바로 시뮬레이션 될 수 있다. 이에 따라, 시뮬레이션의 속도를 향상시킬 수 있다. 특히, 여러 조건에서의 시뮬레이션이 필요한 경우 시뮬레이션의 속도의 차이가 더욱 중요할 수 있다. 앞에서 설명한 멀티코어 시스템의 구조를 트리(tree)형 데이터 구조에 채움으로써 구조 모듈을 완성할 수 있다.
시뮬레이션 엔진부(17)는 구조 구성부(11)로부터 생성된 구조 모델(15)을 시뮬레이션 한다. 시뮬레이션의 목적은 예를 들면, 멀티코어 시스템의 전체 전력소모량, 데이터 처리속도를 파악하는데 있다. 시뮬레이션 엔진부(17)는 시뮬레이션을 마친 후 그 결과 값(40)을 출력한다. 결과 값(40)은 앞서 설명한 바와 같이, 멀티코어 시스템의 전력 소모량, 데이터 치리속도를 수치로 나타낼 수 있다.
성능 분석부(19)는 시뮬레이션 엔진부(17)로부터 시뮬레이션 결과 값(40)을 입력받는다. 결과 값(40)을 분석하여 설정된 조건을 만족시키는지 여부를 파악한다. 이를 위해, 먼저 시뮬레이션의 대상을 확정해야 한다. 예를 들어, 멀티코어의 컴포넌트 중 CPU의 개수, 캐시의 개수 등을 미리 정하게 된다. 이렇게 컴포넌트들이 제한된 상태에서의 원하는 전력 소모량 및/또는 데이터 처리 속도를 설정할 수 있다. 시뮬레이션 결과 값(40)이 설정된 조건을 만족하는 경우, 성능 분석부(19)는 현재의 구조 모듈을 최종 값으로 확정한다. 성능 분석부(19)가 생성된 구조모듈의 시뮬레이션 결과 값(40)이 설정된 조건을 만족시키지 못하면, 멀티코어 시스템의 구조의 변경을 위한 신호를 생성한다. 이는 도 3을 참고하여 후술하기로 한다.
응용 프로그램(30)은 여러 종류의 OS(operation system)나 그 밖에 실행가능한 프로그램일 수 있다. 이는 멀티코어 시스템의 구조 모델(15)에 프로그램을 실행하여 시뮬레이션하기 위함이다. 이에 따라, 특정 프로그램을 실행시킬 경우에 멀티코어 시스템의 전력 소모량이나 데이터 처리 속도를 알 수 있다. 따라서, 시뮬레이터(10) 사용자는 특정 멀티코어 시스템 구조에서 최적으로 구동되는 응용 프로그램(30)을 결정할 수 있다.
시뮬레이터(10)에서 출력되는 것은 시뮬레이션의 결과를 나타내는 데이터(40)이다. 이는 멀티코어 시스템이 특정 구조 배치에서 전력소모량이나 데이터 처리속도를 나타낸다. 또한, 동일한 멀티코어 시스템 코어의 구조 배치에서 응용 프로그램(30)을 변경한 경우에도, 각 응용 프로그램을 실행시킨 결과를 나타낸다.
도 2a는 일 실시예에 따른 시뮬레이터에 저장된 구조 데이터에 컴포넌트가 배열되기 전의 상태를 나타낸 도식도이고, 도 2b는 일 실시예에 따른 시뮬레이터에 저장된 구조 데이터에 컴포넌트가 배열된 상태를 나타낸 도식도이다.
도 2a에 나타낸 바와 같이, 데이터 구조는 데이터가 채워지지 않은 상태로 저장될 수 있다. 컴포넌트 라이브러리(13)로부터 각 컴포넌트에 대한 데이터를 인스턴스(instance)하여 데이터 구조를 채우게 된다. 예를 들면, 각 RP 코어(210,230)는 DMAC(Direct Memory Access Controller), 구조 메모리, 캐시(chache)와 연결되어 있으며, DMAC(Direct Memory Access Controller)는 SPM(Scratched Pad Memory), DMA(Direct Memory Access)와 연결될 수 있다. 만약, 각 컴포넌트들의 배치 또는 연결을 변경하는 경우에는 데이터 구조에 채워지는 배열이 달라질 수 있다.
또한, 일 실시예에 따라 데이터 구조는 다양한 형태로 설정될 수 있다. 앞서 설명한 바와 같이 반드시 멀티코어 시스템을 시뮬레이션하는데 사용될 필요는 없다. 데이터 구조에 모든 인스턴스(instance)된 컴포넌트가 채워지는 것은 아니다. 이에 따라, 시뮬레이터(10)의 사용자는 다양한 형태의 멀티코어 시스템의 구조에 대한 구조 모듈을 시뮬레이션할 수 있다.
도 2b를 참조하면, RP(Recofigurable Processor) 코어를 사용한 멀티코어 DSP(Digital Signal Processor) 서브 시스템을 구현하는데 상술한 데이터 구조(200)를 이용할 수 있다. 두 개의 RP(Reconfigurable Processor) 코어(210, 230)를 사용하는 경우, RP(Recofigurable Processor) 코어(210, 230)는 최상위 계층에 위치하면서 하위 계층인 DMAC(Direct memory access controller)(250), 구조 메모리(configuration memory), cache와 연결될 수 있다. DMAC(Direct memory access controller)(250)는 DMA(Direct memory access)(270)와 SPM(scratched pad memory)(290)를 하위 계층으로 연결될 수 있다. 또한, DMAC(Direct memory access controller)(250)와 다른 RP 코어의 DMAC는 외부의 동일한 시스템 버스(system bus)와 연결될 수 있다.
도 3은 일 실시에 따른 시뮬레이터의 동작 흐름도이다.
도 3을 참조하면, 먼저 구조 정의 파일(100)을 입력 받아 구조 모델을 생성한다(110). 다음으로 생성된 구조 모델을 시뮬레이션 한다(120). 시뮬레이션 결과 값(40)이 설정된 조건을 만족하면 현재 구조 모델을 출력한다(150). 그러나 조건을 만족하지 못하면 성능 분석부는 구조 배치의 변경을 위한 신호를 출력한다.
구조 배치의 변경(150)은 성능 조건 설정(170)을 참고하여 멀티코어 시스템의 구조를 변경한다. 설정된 성능 조건으로 컴포넌트의 수나 배열 방법의 제한이 있을 수 있다. 이에 따라, 구조 정의 파일은 제한된 컴포넌트를 이용하여 설정된 조건을 만족시킬 수 있는 구조 배치를 나타내는 데이터 형식으로 생성된다. 이는 다시 구조 구성부(10)로 입력되어 앞서 설명한 시뮬레이션 과정을 거치게 된다.
또한, 일 실시예로 멀티코어 시스템의 변경된 구조를 나타내는 구조 정의 파일(20)이 시뮬레이터(10)의 런-타임(run-time)시 입력될 수 있다. 이는 사용자가 설정된 성능을 얻기 위해 다양한 멀티코어 구조를 시뮬레이션 하는 속도의 향상을 가져온다. 종래의 시뮬레이션 방법은 하나의 고정된 멀티코어 시스템의 구조에 대해 시뮬레이션이 종료된 후에 다시 새로운 구조에 대해 시뮬레이션을 해야만 했다. 그러나, 개시된 시뮬레이터는 현재 입력된 멀티코어 시스템의 구조에 대한 시뮬레이터(10)의 런-타임(run-time)시 새로운 시스템 배치 구조가 입력되게 된다.
도 4는 일 실시예에 따른 시뮬레이션 방법에 대한 순서도이다.
구조 정의 파일을 입력받는 단계(300)는 반드시 하나의 구조 정의 파일일 필요는 없으며, 복수 개의 구조 정의 파일 중 하나를 임의로 입력받을 수 있다. 구조 정의 파일의 형식은 XML(extensible markup language)일 수 있다. 구조 정의 파일은 시뮬레이션의 런-타임(run-time)시에 입력받음으로써 다수의 멀티코어 시스템 구조를 시뮬레이션하는데 효과적이다.
다음으로 입력받은 파일에 대응하는 각 컴포넌트를 컴포넌트 라이브러리로부터 선택한다(310). 이는 XML 형식의 데이터를 분석하여 컴포넌트의 구성 정보 및 배열 정보를 획득한 뒤 실행된다. 컴포넌트 라이브러리에는 앞서 설명한 바와 같이 인스턴스된 컴포넌트들이 저장되어 있다. 이러한 컴포넌트의 인스턴스 과정은 별도의 컴파일(compile) 과정을 거치지 않기 때문에 더욱 효과적일 수 있다.
다음으로 인스턴스된 컴포넌트를 데이터 구조에 채우게 된다(330). 채우는 방법은 필수구성 컴포넌트를 상위계층으로 하여 하위 계층의 컴포넌트를 채워 나간다. 예를 들면, 데이터 구조는 최상위 계층에 하나 이상의 컴포넌트가 채워질 수 있으며, 하위 계층에는 적어도 3개의 컴포넌트가 채워질 수 있는 구조로 이루어지게 된다. 이러한 과정을 통해 최종 구조 모델이 생성된다. 멀티코어 시스템의 배치를 변경하는 경우에도 별도로 데이터 구조를 변경하지 않는다. 따라서, 다수의 멀티코어 시스템의 배치에 대한 시뮬레이션이 용이하게 된다.
다음으로 최종 생성된 구조 모델을 시뮬레이션 엔진을 통해 시뮬레이션하게 된다(350). 시뮬레이션은 미리 설정된 성능 요건에 대해 이뤄진다. 예를 들면, 제1 코어와 제2 코어를 외부 시스템 버스에 연결한 경우 데이터 처리 속도와 전력 소모량에 대한 데이터를 얻게 된다. 시뮬레이션을 마치면 그 결과 값을 출력하게 된다(370).
또 다른 실시 예에 따르면, 시뮬레이션 결과 값을 이용하여 멀티코어 시스템의 성능을 분석할 수 있다(390). 이러한 성능 분석을 통해 최고의 성능을 보이도록 멀티코어 시스템의 구조를 변경할 수 있다. 시뮬레이션 결과를 분석하여 원하는 시스템 성능을 얻지 못하면, 멀티코어 시스템 구조의 변경을 시도하게 된다. 이러한 변경은 미리 설정된 컴포넌트 구성제한 범위내에서 이뤄지게 된다. 예를 들면, 컴포넌트 중 코어(core)는 3개 이하, 로컬 버스(local bus)는 반드시 DMC, DMA와 연결되어야 한다는 것과 같은 구성제한이 따르게 된다.
멀티코어 시스템의 구조를 변경하는 것은 미리 저장된 구조 정의 파일(20) 중 일부를 선택하는 과정으로도 가능하다. 컴포넌트의 구성제한 범위내에서 배치가능한 구조에 대한 구조 정의 파일(20)을 저장할 수 있다. 따라서, 구조 구성부(11)는 시뮬레이션 하지 않은 구조 정의 파일(20)을 입력받게 된다. 변경된 구조 정의 파일(20)을 앞서 설명한 방법에 따라 구조 모델(15)을 생성하고 시뮬레이션을 하게 된다.
또 다른 실시예로, 최종 구조 모델(15)에 실행되는 응용 프로그램(30)을 변경할 수 있다. 시뮬레이션시 실행되는 응용 프로그램(30)은 여러 종류의 OS(operation system)나 그 밖에 실행가능한 프로그램일 수 있다. 이에 따라, 특정 프로그램을 실행시킬 경우에 멀티코어 시스템의 전력 소모량이나 데이터 처리 속도를 알 수 있다. 따라서, 시뮬레이터(10) 사용자는 특정 멀티코어 시스템 구조에서 최적으로 구동되는 응용 프로그램(30)을 결정할 수 있다.
이상에서 본 발명은 도면을 참조하면서 기술되는 바람직한 실시예를 중심으로 설명되었지만 이에 한정되는 것은 아니다. 따라서 본 발명은 기재된 실시예로부터 도출 가능한 자명한 변형예를 포괄하도록 의도된 특허청구범위의 기재에 의해 해석되어져야 한다.
10 : 시뮬레이터
11 : 구조 구성부 13 : 컴포넌트 라이브러리
15 : 구조 모델 17 : 시뮬레이션 엔진
19 : 성능 분석부
20 : 구조 정의 파일
30 : 응용 프로그램
40 : 결과 값

Claims (14)

  1. 시스템의 구조가 정의된 구조 정의 파일을 입력 받아 그에 기술된 각 컴포넌트를 미리 컴파일된 컴포넌트 정보가 저장되어 있는 컴포넌트 라이브러리로부터 선택하고, 선택된 컴포넌트를 시뮬레이터에 미리 저장된 데이터 구조에 채워 넣어 멀티코어 시스템의 구조 모델을 생성하는 구조 구성부; 및
    상기 구조 모델을 기초로 응용 프로그램을 실행하고 그 결과를 출력하는 시뮬레이션 엔진부;를 포함하는 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터.
  2. 삭제
  3. 제 1항에 있어서,
    상기 구조 정의 파일은 복수인 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터.
  4. 제 1항에 있어서,
    상기 구조 정의 파일은 XML 형식인 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터.
  5. 제 1항에 있어서,
    상기 시뮬레이션 엔진부로부터 획득한 시뮬레이션 결과를 이용하여 멀티코어 시스템의 성능을 분석하는 성능 분석부;
    를 더 포함하는 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터.
  6. 제5항에 있어서,
    상기 성능 분석부는,
    목적함수를 이용해 시스템의 시뮬레이션 결과가 기설정된 성능 조건을 만족하는지 판단하고, 만족하지 못하는 경우에는 시뮬레이터의 런-타임(run-time)시 상기 구조 구성부에 새로운 구조 정의 파일이 입력되는 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터.
  7. 제1항에 있어서,
    상기 시뮬레이션 엔진부는 동일한 멀티코어 시스템의 구조 모델에 대하여 복수의 응용 프로그램을 실행하여 시뮬레이션을 하는 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터.
  8. 멀터코어 시스템의 시뮬레이터가,
    시스템의 구조가 정의된 구조 정의 파일을 입력받는 단계;
    상기 입력된 파일에 대응하는 각 컴포넌트를 미리 컴파일된 컴포넌트 정보가 저장되어 있는 컴포넌트 라이브러리로부터 선택하는 단계;
    상기 선택된 컴포넌트를 시뮬레이터에 미리 저장된 데이터 구조에 채워 넣어 멀티 코어 시스템의 구조 모델을 생성하는 단계; 및
    상기 구조 모델에 응용 프로그램을 실행하여 그 결과를 출력하는 단계;
    를 포함하는 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이션 방법.
  9. 삭제
  10. 제 8항에 있어서,
    상기 구조 정의 파일은 복수인 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이션 방법.
  11. 제 8항에 있어서,
    상기 구조 정의 파일은 XML 형식인 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이션 방법.
  12. 제 8항에 있어서,
    시뮬레이션 결과 값을 이용하여 멀티코어 시스템의 성능을 분석하는 단계;
    를 더 포함하는 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이션 방법.
  13. 제 12항에 있어서,
    상기 성능 분석단계는 목적함수를 이용해 시스템의 시뮬레이션 결과가 기설정된 성능 조건을 만족하는지 판단하고, 만족하지 못하는 경우에는 시뮬레이터의 런-타임(run-time)시 새로운 구조 정의 파일이 입력되는 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이션 방법.
  14. 제8항에 있어서,
    동일한 멀티코어 시스템의 구조 모델에 대하여 복수의 응용 프로그램을 실행하여 시뮬레이션을 하는 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이션 방법.
KR1020100019154A 2010-03-03 2010-03-03 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법 KR101635397B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100019154A KR101635397B1 (ko) 2010-03-03 2010-03-03 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법
US13/006,730 US8768680B2 (en) 2010-03-03 2011-01-14 Simulator of multi-core system employing reconfigurable processor cores and method of simulating multi-core system employing reconfigurable processor cores

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100019154A KR101635397B1 (ko) 2010-03-03 2010-03-03 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법

Publications (2)

Publication Number Publication Date
KR20110100070A KR20110100070A (ko) 2011-09-09
KR101635397B1 true KR101635397B1 (ko) 2016-07-04

Family

ID=44532069

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100019154A KR101635397B1 (ko) 2010-03-03 2010-03-03 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법

Country Status (2)

Country Link
US (1) US8768680B2 (ko)
KR (1) KR101635397B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9658849B2 (en) * 2006-07-06 2017-05-23 Imperas Software Ltd. Processor simulation environment
KR101647817B1 (ko) * 2010-03-31 2016-08-24 삼성전자주식회사 재구성 가능한 프로세서의 시뮬레이션 장치 및 방법
KR101704751B1 (ko) * 2010-12-21 2017-02-09 삼성전자주식회사 모듈 간의 타이밍 정보를 이용하는 멀티코어 시스템의 시뮬레이터, 및 그 시뮬레이션 방법
EP2720149A3 (en) * 2012-09-07 2018-01-24 Samsung Electronics Co., Ltd Apparatus and method for generating assertion based on user program code, and apparatus and method for verifying processor using assertion
CN103049310B (zh) * 2012-12-29 2016-12-28 中国科学院深圳先进技术研究院 一种基于采样的多核模拟并行加速方法
US10038744B1 (en) * 2015-06-29 2018-07-31 EMC IP Holding Company LLC Intelligent core assignment
CN110687825B (zh) * 2019-09-25 2023-07-07 中国科学院微小卫星创新研究院 卫星单机仿真系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040010401A1 (en) * 2002-07-11 2004-01-15 International Business Machines Corporation Unified simulation system and method for selectively including one or more cores in an integrated circuit simulation model
KR100813662B1 (ko) * 2006-11-17 2008-03-14 삼성전자주식회사 프로세서 구조 및 응용의 최적화를 위한 프로파일러

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452231A (en) * 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
KR100326843B1 (ko) 1999-01-26 2002-03-04 홍만표 레지스터 전송 수준의 칩 시뮬레이터 자동 생성방법
WO2000046704A2 (en) * 1999-02-05 2000-08-10 Tensilica, Inc. Automated processor generation system and method for designing a configurable processor
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US7386833B2 (en) * 2002-09-04 2008-06-10 Mentor Graphics Corp. Polymorphic computational system and method in signals intelligence analysis
GB0301993D0 (en) * 2003-01-29 2003-02-26 Univ Edinburgh System and method for rapid prototyping of asic systems
US8180620B2 (en) * 2004-01-27 2012-05-15 Arm Limited Apparatus and method for performing hardware and software co-verification testing
US7313773B1 (en) 2004-05-26 2007-12-25 Coware, Inc. Method and device for simulator generation based on semantic to behavioral translation
US7493606B2 (en) * 2004-08-03 2009-02-17 Université du Québec à Chicoutimi (UQAC) Method for compiling and executing a parallel program
US7650273B2 (en) * 2005-09-21 2010-01-19 Intel Corporation Performance simulation of multiprocessor systems
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
JP2007226375A (ja) 2006-02-22 2007-09-06 Nippon Telegr & Teleph Corp <Ntt> ソフトウェアコンポーネント再利用方法及びそのシステム
KR20080109266A (ko) 2007-06-12 2008-12-17 건국대학교 산학협력단 분자 시뮬레이션 그리드 시스템을 위한 로컬 자원 관리인터페이스 방법
JP5056511B2 (ja) * 2008-03-17 2012-10-24 富士通株式会社 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040010401A1 (en) * 2002-07-11 2004-01-15 International Business Machines Corporation Unified simulation system and method for selectively including one or more cores in an integrated circuit simulation model
KR100813662B1 (ko) * 2006-11-17 2008-03-14 삼성전자주식회사 프로세서 구조 및 응용의 최적화를 위한 프로파일러

Also Published As

Publication number Publication date
KR20110100070A (ko) 2011-09-09
US8768680B2 (en) 2014-07-01
US20110218795A1 (en) 2011-09-08

Similar Documents

Publication Publication Date Title
KR101635397B1 (ko) 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법
KR102544522B1 (ko) 데이터 처리방법 및 관련제품
CN113032963B (zh) 一种Simulink模型仿真加速方法及装置
CN103955373B (zh) 一种sdn应用集成开发环境的设计方法
US7194726B2 (en) Method for automatically decomposing dynamic system models into submodels
US8677334B2 (en) Parallelization method, system and program
CA2477048A1 (en) Method and system for integrating cores in fpga-based system-on-chip (soc)
JP2003323463A5 (ko)
JP6861844B2 (ja) ソースコードを生成するための方法
CN102521024A (zh) 基于生物信息云平台的作业调度方法
EP1963965B1 (en) Run-time tunable sample time in programming or modeling environments
Aksakalli et al. Systematic approach for generation of feasible deployment alternatives for microservices
CN115130407A (zh) 用于在处理器与fpga之间划分仿真模型的方法
CN103309676A (zh) 用于海洋数值模拟ROMS的Web服务封装方法以及系统
US9612863B2 (en) Hardware device for accelerating the execution of a systemC simulation in a dynamic manner during the simulation
US9558305B1 (en) Automatic modeling, mapping, and code generation for homogeneous and heterogeneous platforms
CN109388876A (zh) 一种地下水溶质运移数值模拟并行加速方法
Van der Steen Issues in computational frameworks
CN111240829B (zh) 一种基于时间片的多核任务调度方法、装置、存储介质及电子设备
CN103543986B (zh) Cfx的计算任务的实现方法和装置
Al-Wattar et al. An efficient evolutionary task scheduling/binding framework for reconfigurable systems
JP5056493B2 (ja) 仮想ソフトウェア生成装置
Goble MODSIM III—a tutorial
EP1965300A1 (en) A method for validating a graphical workflow translation
Suvorova et al. System level modeling of dynamic reconfigurable system-on-chip

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant