KR20110061810A - 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템 - Google Patents
어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템 Download PDFInfo
- Publication number
- KR20110061810A KR20110061810A KR1020090118321A KR20090118321A KR20110061810A KR 20110061810 A KR20110061810 A KR 20110061810A KR 1020090118321 A KR1020090118321 A KR 1020090118321A KR 20090118321 A KR20090118321 A KR 20090118321A KR 20110061810 A KR20110061810 A KR 20110061810A
- Authority
- KR
- South Korea
- Prior art keywords
- module
- application specific
- specific instruction
- lookup table
- instruction processor
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
어플리케이션 특정 명령어 프로세서(ASIP: Application Specific Instruction-set Processor) 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템을 제공한다. 복수의 ASIP 코어를 이용하는 멀티 프로세싱 방법은 멀티미디어 프로그램을 구성하는 모듈이 각각의 ASIP 코어에서 수행되는 시간을 기록한 룩업 테이블을 작성하는 단계 및 작성된 룩업 테이블을 이용하여 모듈을 각각의 ASIP 코어에 할당하는 단계를 포함하여 구성될 수 있다. 따라서, 멀티미디어 프로그램을 구성하는 모듈을 최적의 성능을 갖는 ASIP 코어에 할당할 수 있으며, 멀티미디어 프로그램의 처리 속도를 높일 수 있다.
어플리케이션 특정 명령어 프로세서(ASIP: Application Specific Instruction-set Processor) 코어, 멀티미디어 프로그램, 모듈, 명령어 집합(Instruction Set), 룩업 테이블, 스케줄링
Description
본 발명은 어플리케이션 특정 명령어 프로세서(ASIP: Application Specific Instruction-set Processor) 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템에 관한 것으로, 더욱 상세하게는 룩업 테이블을 이용한 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템에 관한 것이다.
본 발명은 지식경제부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다 [과제관리번호: 2007-S-026-03, 과제명: MPCore 플랫폼 기반 다중 포맷 멀티미디어 SoC].
정보통신 기술의 발달과 디지털 컨버전스에 따른 방송과 통신의 융합이 가속화되면서 새롭게 급부상한 IPTV(Internet Protocol Television) 서비스는 유무선 초고속 망을 통해 디지털 멀티미디어 서비스를 제공하는 통방융합의 새로운 패러다 임이다. IPTV 서비스의 주요 특징 중에는 두 개 이상의 채널을 동시에 제공하는 TV 방송의 PIP(Picture In Picture) 기능과, TV 방송을 보면서 화상통화를 하는 기능 그리고 여러 사람이 동시에 참여하는 화상 회의 등이 있는데, 이런 기능들은 동시에 여러 개의 영상을 실시간으로 처리해야 하기 때문에 고성능의 멀티 프로세싱이 요구된다.
종래의 멀티 프로세싱은 범용 프로세서(General Purpose Processor)나 특별히 설계된 단일 프로세서를 여러 개 넣어서 만든 동종 멀티코어(Homogeneous Multi-Core) 시스템을 이용해서 멀티프로세싱을 처리하는 방법을 사용해왔다. 동종 멀티코어 시스템은 수행할 멀티미디어 데이터 처리를 여러 프로세서에 나눠서 처리하긴 하지만, 멀티코어에 들어있는 프로세서들이 동일한 범용 프로세서 코어이기 때문에, 멀티미디어 알고리즘의 특정 모듈을 처리할 때 최적화 되지 않은 프로세서를 사용하게 되고, 그것 때문에 성능 향상이 제한적일 수 밖에 없었다.
본 발명의 목적은 멀티미디어 프로그램의 처리 속도를 높일 수 있는 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법을 제공하는 것이다.
본 발명의 다른 목적은 멀티미디어 프로그램의 처리 속도를 높일 수 있는 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 멀티미디어 프로그램의 처리 속도를 높일 수 있는 어플리케이션 특정 명령어 프로세서 코어를 이용하는 임베디드 시스템을 제공하는 것이다.
상술한 본 발명의 목적을 달성하기 위한 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법은 복수의 어플리케이션 특정 명령어 프로세서(ASIP: Application Specific Instruction-set Processor) 코어를 이용하는 멀티 프로세싱 방법에 있어서, 멀티미디어 프로그램을 구성하는 모듈이 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 수행되는 시간을 기록한 룩업 테이블을 작성하는 단계; 및 상기 작성된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 단계를 포함하여 구성될 수 있다.
여기에서, 상기 작성된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 단계는 상기 작성된 룩업 테이블을 이용하여 상기 모듈을 스케줄링하는 것일 수 있다.
여기에서, 상기 모듈의 실행을 위한 어플리케이션 특정 명령어 프로세서 코어를 설계하는 단계를 더 포함하는 것일 수 있다.
여기에서, 상기 모듈의 실행을 위한 어플리케이션 특정 명령어 프로세서 코어를 설계하는 단계는 상기 모듈에 대응되는 명령어 집합(Instruction Set)을 지정하고, 상기 지정된 명령어 집합을 그룹화하고, 상기 그룹화된 명령어 집합의 실행을 위한 어플리케이션 특정 명령어 프로세서 코어를 설계하는 것일 수 있다.
상술한 본 발명의 다른 목적을 달성하기 위한 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 장치는 복수의 어플리케이션 특정 명령어 프로세서(ASIP: Application Specific Instruction-set Processor) 코어; 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 멀티미디어 프로그램을 구성하는 모듈의 수행 시간을 기록한 룩업 테이블; 및 상기 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 제어부를 포함하여 구성될 수 있다.
여기에서, 상기 복수의 어플리케이션 특정 명령어 프로세서 코어는 상기 모듈에 대응되는 명령어 집합(Instruction Set)을 지정하고, 상기 지정된 명령어 집합을 그룹화하고, 상기 그룹화된 명령어 집합의 실행을 위하여 설계된 것일 수 있다.
여기에서, 상기 제어부에서 상기 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 것은 상기 룩업 테이블을 이용하여 상기 모듈을 스케줄링하는 것일 수 있다.
상술한 본 발명의 또 다른 목적을 달성하기 위한 어플리케이션 특정 명령어 프로세서 코어를 이용하는 임베디드 시스템은 복수의 어플리케이션 특정 명령어 프로세서(ASIP) 코어; 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 멀티미디어 프로그램을 구성하는 모듈의 수행 시간을 기록한 룩업 테이블을 저장하기 위한 비휘발성 메모리; 및 상기 비휘발성 메모리에 저장된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 제어부를 포함하여 구성될 수 있다.
여기에서, 상기 복수의 어플리케이션 특정 명령어 프로세서 코어는 상기 모듈에 대응되는 명령어 집합(Instruction Set)을 지정하고, 상기 지정된 명령어 집합을 그룹화하고, 상기 그룹화된 명령어 집합의 실행을 위하여 설계된 것일 수 있다.
여기에서, 상기 제어부에서 상기 비휘발성 메모리에 저장된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 것은 상기 룩업 테이블을 이용하여 상기 모듈을 스케줄링하는 것일 수 있다.
상기와 같은 어플리케이션 특정 명령어 프로세서(ASIP: Application Specific Instruction-set Processor) 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템에 따르면, 함수 모듈을 최적의 성능을 갖는 어플리케이션 특정 명령어 프로세서 코어에 할당할 수 있다.
즉, 단순히 프로세서 갯수만 늘려서 멀티프로세싱을 하는 방식으로는 구현할 수 없었던 성능 향상을 최적화된 어플리케이션 특정 명령어 프로세서 코어 설계와 룩업 테이블 검색을 통해, 멀티미디어 알고리즘을 구성하는 함수 모듈을 수행할 때마다 실시간으로 그 함수 모듈을 최적의 성능을 갖는 어플리케이션 특정 명령어 프로세서 코어에 할당할 수 있다. 따라서, 멀티미디어 프로그램의 처리 속도를 높일 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법을 설명하기 위한 흐름도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법은 복수의 어플리케이션 특정 명령어 프로세서(ASIP: Application Specific Instruction-set Processor) 코어를 이용하는 멀티 프로세싱 방법에 있어서, 멀티미디어 프로그램을 구성하는 모듈이 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 수행되는 시간을 기록한 룩업 테이블을 작성하는 단계(단계 120) 및 상기 작성된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 단계(단계 130)를 포함하여 구성될 수 있다.
먼저, 어플리케이션 특정 명령어 프로세서(ASIP: Application Specific Instruction-set Processor, 이하 ASIP) 코어는 집적회로의 고성능과 범용 프로세서의 유연성이 결합된 프로그램 가능 프로세서로서, 어플리케이션 특정 명령어 프로세서 코어의 유연성은 단일 칩 상에 VC-1, H.264 및 MPEG 등과 같은 다양한 비디 오 코덱을 지원하는 것을 가능하게 한다.
다음으로, 멀티미디어 프로그램을 구성하는 모듈이 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 수행되는 시간을 기록한 룩업 테이블을 작성하는 단계(단계 120)는 상기 멀티미디어 프로그램을 구성하는 모듈이 복수의 ASIP 코어에서 실행될 때, 각각의 ASIP 코어마다 얼마나 많은 시간이 요구되는 지를 룩업 테이블에 기록하는 것이다.
상기 룩업 테이블은 다양한 종류의 모듈마다 각각의 ASIP 코어에서 실행되는 시간을 기록하여 완성될 것이며, 완성된 룩업 테이블은 이후의 단계에서 스케줄링에 참고자료로서 이용될 수 있으며, 각각의 모듈이 실행될 때마다 업데이트 될 수도 있을 것이다.
도 2는 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법에서 멀티미디어 프로그램을 구성하는 모듈이 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 수행되는 시간을 기록한 룩업 테이블을 작성하는 단계를 설명하기 위한 예시도이다.
도 2를 참조하면, 복수의 멀티미디어 프로그램(210)에서 각각의 멀티미디어 프로그램은 모듈1(211) 및 모듈a1 내지 모듈a8로 구성되는 프로그램, 모듈2(212) 및 모듈b1 내지 모듈b6으로 구성되는 프로그램 및 모듈3(213) 및 모듈c1 내지 모듈c6으로 구성되는 프로그램 등을 포함하여 구성될 수 있으며, 복수의 ASIP 코어(230)는 코어1(231), 코어2(232) 내지 코어n(233, n은 2보다 큰 자연수)으로 구성될 수 있을 것이다.
모듈1(211)을 포함하여 구성되는 멀티미디어 프로그램의 경우에 상기 룩업 테이블이 작성되는 절차를 살펴보면, 모듈1(211)에 연결된 점선으로 볼 수 있듯이, 모듈1(211)은 복수의 ASIP 코어(230)를 구성하는 코어1(231), 코어2(232) 내지 코어n(233) 각각에서 실행되고, 각각의 코어에서 실행에 소요된 시간을 상기 룩업 테이블(240)에 기록하게 될 것이다.
예를 들면, 모듈1(211)의 코어1(231)에서의 실행에 소요된 시간이 14라면, 룩업 테이블(240)의 해당 셀에 14를 기록하게 되며, 코어2(232)에서의 실행 소요시간이 28이라면, 룩업 테이블(240)의 해당 셀에 28을 기록하게 될 것이다.
상기와 같은 방법에 의하여 작성된 룩업 테이블(240)을 살펴보면, 모듈1(211)은 코어n(233)에서 70의 실행 소요시간이 필요했음을 알 수 있을 것이다. 즉, 모듈1(211)은 코어1(231)에서 가장 빠르게 실행되었다는 것을 룩업 테이블을 이용하며 바로 알 수 있을 것이다.
모듈1(211)과 마찬가지로, 모듈2(212) 및 모듈3(213)도 상기 모듈1(211)과 동일한 절차에 따라서 각각의 코어에서 실행되고, 실행에 소요된 시간을 룩업 테이블(240)에 기록하게 될 것이다.
상기 작성된 룩업 테이블(240)을 살펴보면, 모듈2(212)는 코어n(233)에서 가장 빠르게 실행되었으며, 모듈m(m은 4보다 큰 자연수)은 코어n(233)에서 가장 빠르게 실행되었다는 것을 알 수 있을 것이다.
결국, 상기 룩업 테이블(240)을 이용하면, 어떤 모듈이 어떤 ASIP 코어에서 가장 빠르게 실행될 수 있는지 알 수 있으며, 더불어 빠르게 실행될 수 있는 ASIP 코어를 알 수 있으므로 각각의 모듈을 스케줄링하기 위한 정보로 이용될 수 있을 것이다.
다음으로, 상기 작성된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 단계(단계 130)는 멀티미디어 프로그램을 실행시키는 경우에 모듈 단위로 실행시키게 되므로, 각각의 모듈의 실행시에 상기 작성된 룩업 테이블을 이용하여 가장 적합한 ASIP 코어에 할당하는 것일 수 있다.
또한, 상기 작성된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 단계(단계 130)는 상기 작성된 룩업 테이블을 이용하여 상기 모듈을 스케줄링하는 것일 수 있다. 여기에서, 스케줄링은 해당 모듈이 가장 빠르게 실행될 수 있는 ASIP 코어에 할당하는 것 외에 해당 ASIP 코어가 다른 모듈을 실행 중이라면, 다른 ASIP 코어에도 할당할 수 있는 것을 포함할 수 있을 것이다.
도 3은 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법에서 상기 작성된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 단계를 설명하기 위한 예시도이다.
도 3을 참조하면, 복수의 멀티미디어 프로그램(310)에서 각각의 멀티미디어 프로그램은 모듈 1(311) 및 모듈 d1 내지 모듈 d8로 구성되는 프로그램, 모듈 2(312) 및 모듈 e1 내지 모듈 e6으로 구성되는 프로그램 및 모듈 3(313) 및 모듈 f1 내지 모듈 f6으로 구성되는 프로그램으로 구성될 수 있으며, 복수의 ASIP 코어(330)는 코어1, 코어2 내지 코어n(n은 2보다 큰 자연수)으로 구성될 수 있을 것이다.
추가적으로, 상기 룩업 테이블을 작성하는 단계(단계 120)에서 생성된 룩업 테이블은 각각의 모듈에 대하여 구분되어, 모듈1(311)에 대한 룩업 테이블(341), 모듈2(312)에 대한 룩업 테이블(342) 및 모듈3(313)에 대한 룩업 테이블(343)로 구성될 수 있을 것이다.
모듈1(311)을 포함하여 구성되는 멀티미디어 프로그램의 경우에 상기 룩업 테이블에 의하여 모듈1(311)이 ASIP 코어에 할당되는 절차를 살펴보면, 모듈1(311)에 대한 룩업 테이블(341)을 먼저 살펴보게 되고, 상기 룩업 테이블(341)을 참조하여 모듈1(311)은 코어2에서 가장 빠르게 실행될 수 있음을 알게 될 것이다.
상기 모듈1(311)에 대한 룩업 테이블(341)의 정보를 이용하여, 코어2를 점유하고 있는 모듈이 없다면, 모듈1(311)을 코어2에 할당할 수 있을 것이며, 코어2를 점유하고 있는 모듈이 있다면, 모듈1(311)을 코어2가 아닌 다른 코어에 할당할 수 있을 것이다.
모듈1(311)과 마찬가지로, 모듈2(312) 및 모듈3(313)도 상기 모듈1(311)과 동일한 절차에 따라서 각각의 룩업 테이블을 이용하여 가장 적합한 코어에 할당될 수 있을 것이다. 더불어, 각각의 모듈은 룩업 테이블을 이용하여 스케줄링될 수 있을 것이다.
결국, 상기 룩업 테이블(341, 342, 343)을 이용하면, 모듈1(313), 모듈 2(313) 및 모듈3(313)이 어떤 ASIP 코어에서 가장 빠르게 실행될 수 있는지 알 수 있으므로 각각의 모듈을 스케줄링하기 위한 정보로 유용하게 이용될 수 있을 것이다.
도 1을 다시 참조하면, 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법은 상기 모듈의 실행을 위한 어플리케이션 특정 명령어 프로세서 코어를 설계하는 단계(단계 110)를 더 포함하여 구성될 수 있을 것이다.
여기에서, 상기 모듈의 실행을 위한 어플리케이션 특정 명령어 프로세서 코어를 설계하는 단계(단계 110)는 상기 모듈에 대응되는 명령어 집합(Instruction Set)을 지정하고, 상기 지정된 명령어 집합을 그룹화하고, 상기 그룹화된 명령어 집합의 실행을 위한 어플리케이션 특정 명령어 프로세서 코어를 설계하는 것일 수 있다.
도 4는 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법에서 상기 모듈의 실행을 위한 어플리케이션 특정 명령어 프로세서 코어를 설계하는 단계를 설명하기 위한 예시도이다.
도 4를 참조하면, 복수의 멀티미디어 프로그램(410)에서 각각의 멀티미디어 프로그램은 모듈1(411) 및 모듈g1 내지 모듈g8으로 구성되는 프로그램, 모듈2(412) 및 모듈h1 내지 모듈h6으로 구성되는 프로그램 및 모듈3(413) 및 모듈i1 내지 모듈i6으로 구성되는 프로그램으로 구성될 수 있으며, 복수의 ASIP 코어(430)는 코어1, 코어2 내지 코어n(n은 2보다 큰 자연수)으로 구성될 수 있을 것이다.
추가적으로, 상기 모듈에 대응되는 명령어 집합이 1 내지 N(N은 23보다 큰 자연수)으로 구분되어 지정될 수 있으며, 각각 지정된 명령어 집합은 유사한 특징을 갖는 그룹으로 구분될 수 있을 것이다.
모듈1(411)을 포함하여 구성되는 멀티미디어 프로그램의 경우에 각각의 모듈에 대응되는 명령어 집합이 점선으로 연결되어 표시된 것을 알 수 있으며, 모듈1(411)은 명령어 집합11에 대응됨을 알 수 있다. 또한, 모듈2(412) 및 모듈3(413)도 각각 명령어 집합08 및 명령어 집합23에 대응됨을 알 수 있을 것이다.
상기와 같이 각각의 모듈이 명령어 집합에 대응되면, 상기 명령어 집합에 대하여 유사한 특징을 갖는 것끼리 그룹화하게 되며, 그룹화된 명령어 집합의 특징에 가장 알맞은 ASIP 코어를 설계하게 될 것이다. 즉, 상기와 같이 설계된 ASIP 코어는 알맞는 명령어 집합에 대응되는 모듈의 실행에 가장 적합한 ASIP 코어가 될 수 있을 것이다.
예를 들면, 모듈1(411)의 경우에 명령어 집합11에 대응되고, 상기 명령어 집합11은 그룹화되어 가장 알맞게 실행될 수 있는 ASIP 코어2가 설계될 수 있을 것이다. 룩업 테이블을 작성하는 경우에는 모듈1(411)이 ASIP코어2에서 가장 빠르게 실행될 것이므로, 결국, 모듈1(411)에 대한 ASIP 코어의 할당은 우선적으로 ASIP 코어2에 할당되게 될 것이며, ASIP 코어2에 할당되지 않더라도 룩업 테이블을 참조하여 스케줄링될 수 있을 것이다.
도 5는 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 장치를 설명하기 위한 블록도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 장치(500)는 복수의 어플리케이션 특정 명령어 프로세서(ASIP) 코어(510), 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 멀티미디어 프로그램을 구성하는 모듈의 수행 시간을 기록한 룩업 테이블(520) 및 상기 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 제어부(530)를 포함하여 구성될 수 있다.
여기에서, 상기 복수의 어플리케이션 특정 명령어 프로세서 코어(510)는 상기 모듈에 대응되는 명령어 집합(Instruction Set)을 지정하고, 상기 지정된 명령어 집합을 그룹화하고, 상기 그룹화된 명령어 집합의 실행을 위하여 설계된 것일 수 있을 것이다.
또한, 상기 제어부(530)에서 상기 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 것은 상기 룩업 테이블을 이용하여 상기 모듈을 스케줄링하는 것일 수 있을 것이다.
도 6은 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 임베디드 시스템을 설명하기 위한 블록도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 임베디드 시스템(600)은 복수의 어플리케이션 특정 명령 어 프로세서(ASIP) 코어(610), 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 멀티미디어 프로그램을 구성하는 모듈의 수행 시간을 기록한 룩업 테이블을 저장하기 위한 비휘발성 메모리(620) 및 상기 비휘발성 메모리에 저장된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 제어부(630)를 포함하여 구성될 수 있다.
상술한 바와 마찬가지로, 상기 복수의 어플리케이션 특정 명령어 프로세서 코어(610)는 상기 모듈에 대응되는 명령어 집합(Instruction Set)을 지정하고, 상기 지정된 명령어 집합을 그룹화하고, 상기 그룹화된 명령어 집합의 실행을 위하여 설계된 것이므로, 상기 모듈을 가장 빠르게 실행할 수 있는 어플리케이션 특정 명령어 프로세서 코어일 수 있을 것이다.
또한, 상기 제어부(630)에서 상기 비휘발성 메모리에 저장된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 것은 상기 룩업 테이블을 이용하여 상기 모듈을 스케줄링하는 것을 포함하는 것일 수 있을 것이다.
한편, 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 멀티미디어 프로그램을 구성하는 모듈의 수행 시간을 기록한 룩업 테이블을 저장하기 위한 비휘발성 메모리(620)는 상기 각각의 코어에서의 상기 모듈의 수행시간을 기록한 룩업 테이블을 저장한 것으로 플래쉬 메모리 등의 매체로 구성된 메모리일 수 있다. 플래쉬 메모리 등의 매체로 구성하여 룩업 테이블을 참조하는데 필요한 시간을 최소화할 수 있을 것이다. 더불어 상기 비휘발성 메모리(620)에는 룩업 테이블을 비롯한 모듈 및 코어에 필요한 데이터 및 전원이 없는 상태에서도 보관할 필요성이 있는 데이터도 함께 저장될 수 있을 것이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법에서 멀티미디어 프로그램을 구성하는 모듈이 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 수행되는 시간을 기록한 룩업 테이블을 작성하는 단계를 설명하기 위한 예시도이다.
도 3은 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법에서 상기 작성된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 단계를 설명하기 위한 예시도이다.
도 4는 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법에서 상기 모듈의 실행을 위한 어플리케이션 특정 명령어 프로세서 코어를 설계하는 단계를 설명하기 위한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 장치를 설명하기 위한 블록도이다.
도 6은 본 발명의 일 실시예에 따른 어플리케이션 특정 명령어 프로세서 코어를 이용하는 임베디드 시스템을 설명하기 위한 블록도이다.
< 도면의 주요부분에 대한 부호의 설명 >
500: 멀티 프로세싱 장치 510: 코어
520: 룩업 테이블 530: 제어부
600: 임베디드 시스템 610: 코어
620: 비휘발성 메모리 630: 제어부
Claims (10)
- 복수의 어플리케이션 특정 명령어 프로세서(ASIP: Application Specific Instruction-set Processor) 코어를 이용하는 멀티 프로세싱 방법에 있어서,멀티미디어 프로그램을 구성하는 모듈이 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 수행되는 시간을 기록한 룩업 테이블을 작성하는 단계; 및상기 작성된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 단계를 포함하여 구성되는 멀티 프로세싱 방법.
- 제1항에 있어서,상기 작성된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 단계는 상기 작성된 룩업 테이블을 이용하여 상기 모듈을 스케줄링하는 것을 특징으로 하는 멀티 프로세싱 방법.
- 제1항에 있어서,상기 모듈의 실행을 위한 어플리케이션 특정 명령어 프로세서 코어를 설계하는 단계를 더 포함하는 것을 특징으로 하는 멀티 프로세싱 방법.
- 제3항에 있어서,상기 모듈의 실행을 위한 어플리케이션 특정 명령어 프로세서 코어를 설계하는 단계는 상기 모듈에 대응되는 명령어 집합(Instruction Set)을 지정하고, 상기 지정된 명령어 집합을 그룹화하고, 상기 그룹화된 명령어 집합의 실행을 위한 어플리케이션 특정 명령어 프로세서 코어를 설계하는 것을 특징으로 하는 멀티 프로세싱 방법.
- 복수의 어플리케이션 특정 명령어 프로세서(ASIP) 코어;상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 멀티미디어 프로그램을 구성하는 모듈의 수행 시간을 기록한 룩업 테이블; 및상기 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 제어부를 포함하여 구성되는 멀티 프로세싱 장치.
- 제5항에 있어서,상기 복수의 어플리케이션 특정 명령어 프로세서 코어는 상기 모듈에 대응되는 명령어 집합(Instruction Set)을 지정하고, 상기 지정된 명령어 집합을 그룹화하고, 상기 그룹화된 명령어 집합의 실행을 위하여 설계된 것을 특징으로 하는 멀티 프로세싱 장치.
- 제5항에 있어서,상기 제어부에서 상기 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 것은 상기 룩업 테이블을 이용하여 상기 모듈을 스케줄링하는 것을 특징으로 하는 멀티 프로세싱 장치.
- 복수의 어플리케이션 특정 명령어 프로세서(ASIP) 코어;상기 각각의 어플리케이션 특정 명령어 프로세서 코어에서 멀티미디어 프로그램을 구성하는 모듈의 수행 시간을 기록한 룩업 테이블을 저장하기 위한 비휘발성 메모리; 및상기 비휘발성 메모리에 저장된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 제어부를 포함하여 구성되는 임베디드 시스템.
- 제8항에 있어서,상기 복수의 어플리케이션 특정 명령어 프로세서 코어는 상기 모듈에 대응되는 명령어 집합(Instruction Set)을 지정하고, 상기 지정된 명령어 집합을 그룹화하고, 상기 그룹화된 명령어 집합의 실행을 위하여 설계된 것을 특징으로 하는 임베디드 시스템.
- 제8항에 있어서,상기 제어부에서 상기 비휘발성 메모리에 저장된 룩업 테이블을 이용하여 상기 모듈을 상기 각각의 어플리케이션 특정 명령어 프로세서 코어에 할당하는 것은 상기 룩업 테이블을 이용하여 상기 모듈을 스케줄링하는 것을 특징으로 하는 임베디드 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090118321A KR20110061810A (ko) | 2009-12-02 | 2009-12-02 | 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090118321A KR20110061810A (ko) | 2009-12-02 | 2009-12-02 | 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20110061810A true KR20110061810A (ko) | 2011-06-10 |
Family
ID=44396097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090118321A KR20110061810A (ko) | 2009-12-02 | 2009-12-02 | 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20110061810A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140029721A (ko) * | 2012-08-29 | 2014-03-11 | 삼성전자주식회사 | Dvfs 제어 방법 및 이를 이용한 시스템-온 칩 |
-
2009
- 2009-12-02 KR KR1020090118321A patent/KR20110061810A/ko not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140029721A (ko) * | 2012-08-29 | 2014-03-11 | 삼성전자주식회사 | Dvfs 제어 방법 및 이를 이용한 시스템-온 칩 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110769278B (zh) | 一种分布式视频转码方法及系统 | |
US9344750B2 (en) | Method and system for scheduling commercial advertisement | |
US8683471B2 (en) | Highly distributed parallel processing on multi-core device | |
CN1318968C (zh) | 执行实时操作的方法和系统 | |
CN107515786B (zh) | 资源分配方法、主装置、从装置和分布式计算系统 | |
US8402466B2 (en) | Practical contention-free distributed weighted fair-share scheduler | |
US20150186184A1 (en) | Apparatus and method for optimizing system performance of multi-core system | |
US8588577B2 (en) | Timer-recording managing apparatus, timer-recording managing method and recorder | |
CN1969553A (zh) | 适用于统一不同种类的多媒体调谐器的系统 | |
CN103856692A (zh) | 频道包装播出控制方法及系统 | |
CN115293340A (zh) | 数据同步处理方法、装置、计算设备和存储介质 | |
US7032102B2 (en) | Signal processing device and method for supplying a signal processing result to a plurality of registers | |
KR20110061810A (ko) | 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템 | |
US9170839B2 (en) | Method for job scheduling with prediction of upcoming job combinations | |
KR20100014370A (ko) | 오버헤드 없는 독립적인 병렬 이미지 처리 | |
JP2008520023A (ja) | メモリ空間を管理するシステム及び方法 | |
US11252457B2 (en) | Multimedia streaming and routing apparatus and operation method of the same | |
US10528625B2 (en) | Client cloud synchronizer | |
KR101869325B1 (ko) | 이종 멀티코어 환경에서의 코어 배정 장치 | |
US20100242046A1 (en) | Multicore processor system, scheduling method, and computer program product | |
US9244690B2 (en) | Variable frequency output to one or more buffers | |
CN102184090B (zh) | 一种动态可重构处理器及其固定数的调用方法 | |
CN111221644A (zh) | 资源调度方法、装置及设备 | |
JP2013196509A (ja) | 情報処理装置及びその制御方法 | |
RU2679546C2 (ru) | Устройство и способ прогона множества потоков |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |