KR20110132749A - 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법 - Google Patents

복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법 Download PDF

Info

Publication number
KR20110132749A
KR20110132749A KR1020100052259A KR20100052259A KR20110132749A KR 20110132749 A KR20110132749 A KR 20110132749A KR 1020100052259 A KR1020100052259 A KR 1020100052259A KR 20100052259 A KR20100052259 A KR 20100052259A KR 20110132749 A KR20110132749 A KR 20110132749A
Authority
KR
South Korea
Prior art keywords
meta
core
instruction
processor system
heterogeneous cores
Prior art date
Application number
KR1020100052259A
Other languages
English (en)
Other versions
KR101191530B1 (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 KR1020100052259A priority Critical patent/KR101191530B1/ko
Publication of KR20110132749A publication Critical patent/KR20110132749A/ko
Application granted granted Critical
Publication of KR101191530B1 publication Critical patent/KR101191530B1/ko

Links

Images

Classifications

    • 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

복수의 이종(heterogeneous) 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법이 개시된다. 개시된 멀티코어 프로세서 시스템은 상기 멀티코어 프로세서 시스템에서 정의되는 상위 명령어인 메타 명령어를 실행할 코어를 상기 복수의 이종 코어 중에서 선택하는 선택부; 상기 메타 명령어를 상기 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 상기 선택된 코어로 전달하는 변환부를 포함한다. 본 발명에 따르면, 복수의 이종 코어를 이용하여 2 이상의 명령어를 동시에 처리할 수 있게 된다.

Description

복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법{Multi-core processor system having plurality of heterogeneous core and Method for controlling the same}
본 발명의 실시예들은 멀티코어 프로세서 시스템 및 그 제어 방법에 관한 것으로서 관한 것으로서, 더욱 상세하게는 복수의 이종(heterogeneous) 코어를 이용하여 2 이상의 명령어를 동시에 처리할 수 있는 멀티코어 프로세서 시스템 및 그 제어 방법에 관한 것이다.
일반적으로 프로세서 코어(이하 "코어"라고 함)의 종류에 따라서 사용되는 명령어 체계는 서로 상이하다. 따라서 서로 상이한 명령어 체계에 종속되지 않고 모든 프로세서 시스템에서 동일하게 사용할 수 있는 가상 머신(Virtual Machine)들에 대한 연구개발이 진행되어 왔다. 그 중에서도 선 마이크로시스템스사(Sun Microsystems)에서 개발한 자바 시스템(Java System)이 가장 널리 사용되고 있다.
자바 시스템은 자바 프로그래밍 모델(Java Programming Model)과 자바 버추얼 머신(JVM: Java Virtual Machine)을 도입하여 ISA(Instruction Set Architecture)의 종류와 상관없이 모든 프로세서 시스템에서 동일한 자바 프로그램이 실행될 수 있는 환경을 제공한다. 이 때, 자바 버추얼 머신은 도 1에 도시된 바와 같이 프로세서 시스템 내에서 소프트웨어(도 1의 (a)) 또는 하드웨어 형태(도 1의 (b))로 구현되어 자바 프로그램 코드(자바 명령어)를 각각의 코어에서 실행 가능한 명령어로 변환하여 코어로 제공하는 기능을 수행한다.
한편, 서로 다른 종류의 코어(이종(heterogeneous) 코어)를 포함하는 멀티코어 프로세서 시스템은 하나의 시스템에 복수의 이종 코어가 사용되는 구조를 가지고 있기 때문에, 각각의 코어에 따른 ISA 명령어를 모두 실행(처리)할 수 있어야 한다. 그런데, 상기와 같은 명령어 처리(실행) 동작은 기존의 자바 시스템에 정의되지 않은 처리 동작이기 때문에 기존의 자바 시스템을 이용하여서는 자바 명령어를 복수의 이종 코어에서 실행 가능한 명령어로 변환하여 처리할 수 없는 문제점이 있었다. 다시 말해, 이종 멀티코어 프로세서 시스템의 경우, 프로세서 내부에 복수의 이종 코어가 존재하기 때문에 기존의 자바 버추얼 머신의 명령어 변환 기능만으로는 이종 코어 별 명령어 스케줄링 기능과 명령어의 특성을 고려한 명령어 할당 기능을 수행할 수 없다는 문제점이 있었다.
상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 복수의 이종 코어를 이용하여 2 이상의 명령어를 동시에 처리할 수 있는 멀티코어 프로세서 시스템 및 그 제어 방법을 제안하고자 한다.
또한, 본 발명의 다른 목적은 동일한 종류의 코어를 2 이상 포함하는 멀티코어 프로세서 시스템과 동일하게 동작 가능한 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법을 제공하는 것이다.
상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 복수의 이종(heterogeneous) 코어를 포함하는 멀티코어 프로세서 시스템에 있어서, 상기 멀티코어 프로세서 시스템에서 정의되는 상위 명령어인 메타 명령어를 실행할 코어를 상기 복수의 이종 코어 중에서 선택하는 선택부; 상기 메타 명령어를 상기 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 상기 선택된 코어로 전달하는 변환부를 포함하는 멀티코어 프로세서 시스템이 제공된다.
상기 멀티코어 프로세서 시스템은 메모리로부터 상기 메타 명령어를 수신하여 저장하는 임시 저장부를 더 포함하되, 상기 선택부는 상기 임시 저장부로부터 하나 이상의 메타 명령어를 독출하고, 상기 독출된 하나 이상의 메타 명령어를 실행할 코어를 선택할 수 있다.
상기 임시 저장부는 큐(Queue)를 포함할 수 있다.
상기 선택부는 상기 복수의 이종 코어 각각의 상태 정보, 상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보, 및 상기 복수의 이종 코어 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 상기 메타 명령어를 실행할 코어를 선택할 수 있다.
상기 복수의 이종 코어 각각의 상태 정보는 상기 코어가 아이들 상태에 있음을 나타내는 아이들 상태 정보 및 상기 코어가 비지 상태에 있음을 나타내는 비지 상태 정보 중에서 어느 하나를 포함할 수 있다.
상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보는 상기 복수의 이종 코어 각각에 의해 미리 실행된 메타 명령어의 실행 성능을 평가하여 생성되거나 또는 상기 복수의 이종 코어 각각에 의해 실행되는 메타 명령어에 대해 실시간으로 실행 성능을 평가하여 생성될 수 있다.
상기 변환부는 상기 복수의 이종 코어와 각각 연결되고, 상기 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 복수의 변환 모듈을 포함할 수 있다.
상기 선택부는 상기 복수의 변환 모듈 중에서 상기 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 선택 모듈; 및 상기 선택된 변환 모듈로 상기 메타 명령어를 전달하는 전달 모듈을 포함할 수 있다.
상기 변환부는 하나의 메타 명령어를 적어도 하나의 하위 명령어로 변환하거나 또는 적어도 하나의 메타 명령어를 하나의 하위 명령어로 변환할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템의 제어 방법에 있어서, 상기 멀티코어 프로세서 시스템에서 정의되는 상위 명령어인 메타 명령어를 실행할 코어를 상기 복수의 이종 코어 중에서 선택하는 단계; 및 상기 메타 명령어를 상기 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 상기 선택된 코어로 전달하는 단계를 포함하는 멀티코어 프로세서 시스템의 제어 방법이 제공된다.
상기 멀티코어 프로세서 시스템의 제어 방법은 메모리로부터 상기 메타 명령어를 수신하여 큐에 저장하는 단계를 더 포함하되, 상기 선택하는 단계는 상기 큐로부터 하나 이상의 메타 명령어를 독출하고, 상기 독출된 하나 이상의 메타 명령어 각각을 실행할 코어를 선택할 수 있다.
상기 선택하는 단계는 상기 복수의 이종 코어 각각의 상태 정보, 상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보, 및 상기 복수의 이종 코어 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 상기 메타 명령어를 실행할 코어를 선택할 수 있다.
상기 선택하는 단계는 상기 복수의 이종 코어와 각각 연결되고, 상기 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 복수의 변환 모듈 중에서 상기 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 단계; 및 선택된 변환 모듈로 상기 메타 명령어를 전달하는 단계를 포함하고, 상기 변환하는 단계는 상기 선택된 변환 모듈을 통해 상기 메타 명령어를 상기 선택된 변환 모듈과 연결된 코어의 하위 명령어로 변환할 수 있다. .
본 발명에 따르면, 복수의 이종 코어를 이용하여 2 이상의 명령어를 동시에 처리할 수 있게 된다.
또한 본 발명에 따르면, 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템을 동일한 종류의 코어를 2 이상 포함하는 멀티코어 프로세서 시스템과 동일하게 동작시킬 수 있게 된다.
도 1은 자바 버추얼 머신을 포함하는 종래의 프로세서 시스템의 일례를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템의 상세한 구성을 도시한 블록도이다.
도 3은 "SMAC" 명령어의 개념을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템의 제어 방법의 전체적인 흐름을 도시한 순서도이다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템의 상세한 구성을 도시한 블록도이다.
도 2를 참고하면, 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템(200)은 N개(N은 2 이상의 정수)의 이종(heterogeneous) 코어(210), 임시 저장부(220), 선택부(230), 및 변환부(240)를 포함할 수 있다. 이하, 도 2를 참고하여 각 구성 요소 별로 그 기능을 상술하기로 한다.
N개의 이종 코어(210)는 서로 다른 ISA(Instruction Set Architecture)를 갖는 프로세서 코어를 의미한다. 일례로, N개의 이종 코어(210)는 intel 사의 8086 프로세서 코어, IBM 사의 PowerPC 프로세서 코어, ARM 프로세서 코어 등을 포함할 수 있다.
임시 저장부(220)는 메인 메모리(250)로부터 메타 명령어를 수신(독출)하여 저장한다.
메타 명령어는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템에서 새롭게 정의되는 명령어로서, N개의 이종 코어(210)에서 실행(처리)될 수 있는 명령어(즉, N개의 이종 코어(210) 각각의 ISA에 따른 명령어)의 상위 개념의 명령어(상위 명령어)이다. 메타 명령어는 아래에서 설명되는 바와 같이 변환부(240)에 의해 각 코어(210)에 적합한 명령어로 변환된다.
이러한 메타 명령어는 특정 코어에 특화된 전용 명령어는 지원할 수 없다. 또한, 메타 명령어는 상위 개념의 명령어로서, 모든 종류의 코어에서 공통적으로 표현될 수 있는 명령어 체계를 사용해야 하기 때문에 일반적인 코어의 ISA 보다는 추상화된 구조를 가지게 된다. 이하에서는 각 코어(210)에서 실행될 수 있는 명령어를 메타 명령어와 구별하기 위해 "하위 명령어"로 칭하기로 한다.
본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템(200)은 복수의 코어를 이용하여 명령어를 실행(처리)하므로, 한 사이클(cycle) 내에서는 1개의 명령어 처리 동작만이 수행될 수도 있고, N개의 명령어 처리 동작이 동시에 수행될 수도 있다. 그런데 만약 멀티코어 프로세서 시스템(200)이 한 사이클 내에 하나의 명령어만을 패치(patch)할 경우, 메인 메모리(250)에서 발생하는 병목 현상에 의해 시스템 전체의 성능이 저하될 수 있다. 따라서, 본 발명에서는 임시 저장부(220)를 통해 위와 같은 병목 현상의 발생을 완충시킨다.
이 때, 임시 저장부(220)는 하나의 메타 명령어만을 메인 메모리(250)로부터 수신하여 저장할 수도 있고, 이종 코어(210)의 개수와 대응되는 N개의 메타 명령어를 메인 메모리(250)로부터 수신하여 저장할 수도 있으며, N개 이상의 메타 명령어를 메인 메모리(250)로부터 수신하여 저장할 수도 있다.
본 발명의 일 실시예에 따르면, 임시 저장부(220)는 큐(Queue)를 포함할 수 있다. 다시 말해, 임시 저장부(220)는 FIFO(First In First Out)로 동작하는 큐로 구성될 수 있다.
선택부(230)는 임시 저장부(220)로부터 하나 이상의 메타 명령어를 독출하고, 독출된 하나 이상의 메타 명령어를 실행할 코어를 N개의 이종 코어(210) 중에서 선택한다. 즉, 선택부(230)는 N개의 이종 코어(210) 중에서 해당 메타 명령어를 가장 잘 실행(처리)할 수 있는 코어를 선택하는 기능을 수행한다. 이 때, 코어의 선택 정보 및 해당 메타 명령어는 변환부(240)로 전달된다.
본 발명의 일 실시예에 따르면, 선택부(230)는 N개의 이종 코어(210) 각각의 상태 정보, N개의 이종 코어(210) 각각의 메타 명령어 실행 성능 평가 정보, 및 N개의 이종 코어(210) 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 메타 명령어를 실행할 코어를 선택할 수 있다.
여기서, 코어의 상태 정보는 코어가 아이들(idle) 상태에 있음을 나타내는 아이들 상태 정보와 코어가 비지(busy) 상태에 있음을 나타내는 비지 상태 정보 중에서 어느 하나를 포함할 수 있다. 일례로, 코어 1이 비지 상태에 있고, 코어 2 내지 코어 N이 아이들 상태에 있는 경우, 코어 1에 대한 상태 정보는 비지 상태 정보를 포함하고, 코어 2 내지 코어 N의 상태 정보는 아이들 상태 정보를 포함한다.
코어의 상태 정보에 기초하여 메타 명령어를 실행할 코어를 선택되는 경우, 선택부(230)는 아이들 상태인 코어를 우선적으로 선택할 수 있다.
또한, 코어의 메타 명령어 실행 성능 평가 정보는 특정 메타 명령어가 N개의 이종 코어(210) 중에서 어느 코어를 통해 가장 잘 실행(처리)될 수 있는지를 나타내는 정보를 의미한다.
이 때, 코어의 메타 명령어 실행 성능 평가 정보는 평가값의 형태(일례로, 소정의 메타 명령어에 대한 각 코어의 실행 성능 평가값이 [코어 1: 50%, 코어 2: 70%, 코어 3: 15%,…, 코어 N: 40%]와 같은 형태로 표현됨)를 가질 수도 있고, 우선 순위 형태(일례로, 소정의 메타 명령어에 대한 각각의 코어의 실행 성능의 우선 순위가 [코어 1: 제3 순위, 코어 2: 제1 순위, 코어 3: 제4 순위,…, 코어 N: 제2 순위]와 같은 형태로 표현됨)를 가질 수도 있다.
본 발명의 일 실시예에 따르면, N개의 이종 코어(210) 각각의 메타 명령어 실행 성능 평가 정보는 N개의 이종 코어(210) 각각에 의해 미리 실행된 메타 명령어의 실행 성능을 평가하여 생성되거나 또는 N개의 이종 코어(210) 각각에 의해 실행되는 메타 명령어에 대해 실시간으로 실행 성능을 평가하여 생성될 수 있다. 다시 말해, 코어의 메타 명령어 실행 성능 평가는 사전에 특정 기능을 수행하는 메타 명령어 그룹을 대상으로 평가하여 이에 대한 결과를 반영하는 방법 또는 실시간으로 메타 명령어 그룹의 실행 결과 내역을 계측하여 반영하는 방법 중에서 적어도 하나의 방법을 통해 수행될 수 있다.
코어의 메타 명령어 실행 성능 평가 정보에 기초하여 메타 명령어를 실행할 코어가 선택되는 경우, 선택부(230)는 해당 메타 명령어에 대해 실행 성능이 높은 코어를 우선적으로 선택할 수 있다.
그리고, 코어에 포함된 캐시의 상태 정보는 코어 내부의 캐시에 어느 정보의 여유 저장 공간이 있는지 여부를 나타내는 정보를 의미한다.
이 때, 여유 저장 공간은 바이트 수로 표현(일례로, [코어 1: 200 Kbyte, 코어 2: 100Kbyte, 코어 3: 350Kbyte,…, 코어 N: 400Kbyte]와 같은 형태로 표현)될 수도 있고 퍼센테이지 형태로 표현(일례로, [코어 1: 20%, 코어 2: 40%, 코어 3: 35%,…, 코어 N: 70%]와 같은 형태로 표현)될 수도 있다.
코어의 내부 캐시의 상태 정보에 기초하여 메타 명령어를 실행할 코어가 선택되는 경우, 선택부(230)는 여유 저장 공간이 많은 캐시를 포함하는 코어를 우선적으로 선택할 수 있다.
또한, 상기의 코어 선택 요소들은 2 이상이 조합되어 사용될 수도 있다. 이 경우, 선택부(230)는 각각의 선택 요소들에 대해 우선 순위를 부여하는 방법을 통해 2 이상의 선택 요소들을 조합하여 명령어를 처리할 코어를 선택할 수 있다.
변환부(240)는 선택부(230)로부터 전달받은 코어의 선택 정보에 기초하여 해당 메타 명령어를 선택된 코어의 ISA에 적합한 명령어로 변환하고, 변환된 명령어를 선택된 코어로 전달한다. 즉, 변환부(240)는 해당 메타 명령어를 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 코어로 전달한다. 일례로, 선택된 코어가 ARM 프로세서 코어인 경우, 해당 메타 명령어는 ARM 프로세서 코어의 ISA로 변환된다.
이 때, 변환부(240)는 기본적으로 하나의 메타 명령어를 하나의 하위 명령어로 변환하지만(1:1 명령어 변환), 변환부(240)는 하나의 메타 명령어를 2 이상의 하위 명령어로 변환할 수도 있으며(1:K 명령어 변환), 2 이상의 메타 명령어를 하나의 하위 명령어로 변환할 수도 있다(K:1 명령어 변환).
변환부(240)가 하나의 메타 명령어를 하나의 하위 명령어로 변환하는 1:1 명령어 변환의 경우는 "ADD" 명령어, "SUB" 명령어, "MUL" 명령어 등과 같이 모든 이종 코어에서 사용되는 기본적인 명령어들에 대해 적용될 수 있다.
변환부(240)가 하나의 메타 명령어를 2 이상의 하위 명령어로 변환하는 경우는 해당 메타 명령어가 선택된 코어의 명령어 하나와 대응되지 않는 경우(즉, 해당 메타 명령어를 하나의 하위 명령어로 표현하지 못하는 경우)에 발생할 수 있다. 이는 앞서 설명한 바와 같이 메타 명령어가 상위 개념의 추상화된 명령어 구조를 갖기 때문이다.
일례로서, 도 3의 (a)에 도시된 바와 같이 DSP에서 주로 사용되는 곱셈과 덧셈의 반복 연산 명령인 "SMAC" 명령어가 메타 명령어로서 정의되고, 코어에서 "SMAC" 명령어를 지원하지 않는다면, 변환부(240)는 하나의 메타 명령어("SMAC" 명령어)를 2개의 하위 명령어("MUL" 명령어 및 "ADD" 명령어)로 변환할 수 있다(도 3의 (b) 참고).
또한, 변환부(240)가 2 이상의 메타 명령어를 하나의 하위 명령어로 변환하는 경우는 메타 명령어로 표현된 코드의 집합의 효과에 대한 기능 평가 결과가 해당 코어의 특수 명령어(일례로, DSP(Digital Signal Processing) 명령어)와 일치하는 경우에 발생할 수 있다. 이에 따라 2 이상의 메타 명령어가 해당 코어의 하나의 특수 명령어로 치환된다.
일례로, 앞서 설명한 "SMAC" 명령어가 메타 명령어로서 정의되지 않았고, 이종 코어에서 "SMAC" 명령어를 지원한다면, 변환부(240)는 2개의 메타 명령어("MUL" 명령어 및 "ADD" 명령어)를 하나의 하위 명령어("SMAC" 명령어)로 변환할 수 있다(도 3의 (c) 참고).
정리하면, 변환부(240)는 하나의 메타 명령어를 적어도 하나의 하위 명령어로 변환하거나 또는 적어도 하나의 메타 명령어를 하나의 하위 명령어로 변환할 수 있다.
본 발명의 일 실시예에 따르면, 변환부(240)는 N개의 이종 코어(210)와 각각 연결되고, 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 N개의 변환 모듈(241)을 포함할 수 있으며, 선택부(230)는 N개의 변환 모듈(241) 중에서 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 선택 모듈(231), 및 선택된 변환 모듈로 메타 명령어를 전달하는 전달 모듈(232)을 포함할 수 있다.
즉, 변환부(240)는 코어 별 전용 변환 모듈로 구성되고, 선택 모듈(231)은 이러한 변환 모듈(즉, 해당 코어)로 메타 명령을 전달하는 경우 명령어 전달 스케줄링 기능을 수행하며, 전달 모듈(232)는 각 변환 모듈로 메타 명령어를 분산시키는 기능을 수행한다.
이와 같이, 본 발명의 일 실시예에 따른 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템(200)은 동일한 종류의 코어를 2 이상 포함하는 멀티코어 프로세서 시스템과 동일하게 동작시킬 수 있게 되고, 이에 따라 2 이상의 명령어를 동시에 처리할 수 있게 된다.
도 4는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템의 제어 방법의 전체적인 흐름을 도시한 순서도이다.
본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템의 제어 방법은 앞서 도 2에서 설명한 바와 같은 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템에 적용 가능하다. 이하, 도 4를 참고하여 각 단계 별로 수행되는 과정을 설명하기로 한다.
먼저, 단계(S410)에서는 메인 메모리로부터 메타 명령어를 수신하여 큐에 저장한다. 이 때, 저장되는 메타 명령어의 개수는 하나 이상일 수 있다. 또한, 하나 이상의 메타 명령어는 복수의 이종 코어 중에서 하나의 이종 코어에서 실행될 메타 명령어 일 수도 있고, 2 이상의 이종 코어에서 실행될 메타 명령어일 수도 있다.
단계(S420)에서는 큐로부터 하나 이상의 메타 명령어를 독출하고, 독출된 하나 이상의 메타 명령어 각각을 실행할 코어를 선택한다. 이 때, 단계(S420)에서는 해당 메타 명령어가 실행되기에 적합한 코어를 선택할 수 있다.
본 발명의 일 실시예에 따르면, 단계(S420)에서는 복수의 이종 코어 각각의 상태 정보, 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보, 및 복수의 이종 코어 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 메타 명령어를 실행할 코어를 선택할 수 있다. 각각의 선택 요소의 의미는 앞서 도 2에서 설명한 선택 요소와 동일하다.
단계(S430)에서는 해당 메타 명령어를 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 선택된 코어로 전달한다.
본 발명의 일 실시예에 따르면, 단계(S430)에서는 하나의 메타 명령어를 하나의 하위 명령으로 변환할 수도 있고, 하나의 메타 명령어를 2 이상의 하위 명령어로 변환할 수도 있으며, 2 이상의 메타 명령어를 하나의 하위 명령어로 변환할 수도 있다.
한편, 단계(S420)에서는 복수의 이종 코어와 각각 연결되고, 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 복수의 변환 모듈 중에서 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하고, 선택된 변환 모듈로 메타 명령어를 전달할 수 있는데, 이 경우, 단계(S430)에서는 선택된 변환 모듈을 통해 메타 명령어를 선택된 변환 모듈과 연결된 코어의 하위 명령어로 변환할 수 있다.
마지막으로, 단계(S440)에서는 해당 코어가 해당 하위 명령어를 실행(처리)한다.
지금까지 본 발명에 따른 멀티코어 프로세서 시스템의 제어 방법의 실시예들에 대하여 설명하였고, 앞서 도 2에서 설명한 멀티코어 프로세서 시스템(200)에 관한 구성이 본 실시예에도 그대로 적용 가능하다. 이에, 보다 상세한 설명은 생략하기로 한다.
또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (13)

  1. 복수의 이종(heterogeneous) 코어를 포함하는 멀티코어 프로세서 시스템에 있어서,
    상기 멀티코어 프로세서 시스템에서 정의되는 상위 명령어인 메타 명령어를 실행할 코어를 상기 복수의 이종 코어 중에서 선택하는 선택부;
    상기 메타 명령어를 상기 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 상기 선택된 코어로 전달하는 변환부
    를 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
  2. 제1항에 있어서,
    메모리로부터 상기 메타 명령어를 수신하여 저장하는 임시 저장부
    를 더 포함하되,
    상기 선택부는 상기 임시 저장부로부터 하나 이상의 메타 명령어를 독출하고, 상기 독출된 하나 이상의 메타 명령어를 실행할 코어를 선택하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
  3. 제2항에 있어서,
    상기 임시 저장부는 큐(Queue)를 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
  4. 제1항에 있어서,
    상기 선택부는
    상기 복수의 이종 코어 각각의 상태 정보, 상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보, 및 상기 복수의 이종 코어 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 상기 메타 명령어를 실행할 코어를 선택하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
  5. 제4항에 있어서,
    상기 복수의 이종 코어 각각의 상태 정보는
    상기 코어가 아이들 상태에 있음을 나타내는 아이들 상태 정보 및 상기 코어가 비지 상태에 있음을 나타내는 비지 상태 정보 중에서 어느 하나를 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
  6. 제4항에 있어서,
    상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보는
    상기 복수의 이종 코어 각각에 의해 미리 실행된 메타 명령어의 실행 성능을 평가하여 생성되거나 또는 상기 복수의 이종 코어 각각에 의해 실행되는 메타 명령어에 대해 실시간으로 실행 성능을 평가하여 생성되는 것을 특징으로 하는 멀티코어 프로세서 시스템.
  7. 제1항에 있어서,
    상기 변환부는
    상기 복수의 이종 코어와 각각 연결되고, 상기 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 복수의 변환 모듈
    을 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
  8. 제7항에 있어서,
    상기 선택부는
    상기 복수의 변환 모듈 중에서 상기 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 선택 모듈; 및
    상기 선택된 변환 모듈로 상기 메타 명령어를 전달하는 전달 모듈
    을 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
  9. 제1항에 있어서,
    상기 변환부는 하나의 메타 명령어를 적어도 하나의 하위 명령어로 변환하거나 또는 적어도 하나의 메타 명령어를 하나의 하위 명령어로 변환하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
  10. 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템의 제어 방법에 있어서,
    상기 멀티코어 프로세서 시스템에서 정의되는 상위 명령어인 메타 명령어를 실행할 코어를 상기 복수의 이종 코어 중에서 선택하는 단계; 및
    상기 메타 명령어를 상기 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 상기 선택된 코어로 전달하는 단계
    를 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 제어 방법.
  11. 제10항에 있어서,
    메모리로부터 상기 메타 명령어를 수신하여 큐에 저장하는 단계
    를 더 포함하되,
    상기 선택하는 단계는 상기 큐로부터 하나 이상의 메타 명령어를 독출하고, 상기 독출된 하나 이상의 메타 명령어 각각을 실행할 코어를 선택하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 제어 방법.
  12. 제10항에 있어서,
    상기 선택하는 단계는
    상기 복수의 이종 코어 각각의 상태 정보, 상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보, 및 상기 복수의 이종 코어 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 상기 메타 명령어를 실행할 코어를 선택하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 제어 방법.
  13. 제10항에 있어서,
    상기 선택하는 단계는 상기 복수의 이종 코어와 각각 연결되고, 상기 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 복수의 변환 모듈 중에서 상기 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 단계; 및 선택된 변환 모듈로 상기 메타 명령어를 전달하는 단계를 포함하고,
    상기 변환하는 단계는 상기 선택된 변환 모듈을 통해 상기 메타 명령어를 상기 선택된 변환 모듈과 연결된 코어의 하위 명령어로 변환하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 제어 방법.
KR1020100052259A 2010-06-03 2010-06-03 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법 KR101191530B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100052259A KR101191530B1 (ko) 2010-06-03 2010-06-03 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100052259A KR101191530B1 (ko) 2010-06-03 2010-06-03 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20110132749A true KR20110132749A (ko) 2011-12-09
KR101191530B1 KR101191530B1 (ko) 2012-10-15

Family

ID=45500621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100052259A KR101191530B1 (ko) 2010-06-03 2010-06-03 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR101191530B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101513162B1 (ko) * 2014-02-19 2015-04-17 주식회사 큐레이소프트 보안 어플리케이션 구동 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070150895A1 (en) 2005-12-06 2007-06-28 Kurland Aaron S Methods and apparatus for multi-core processing with dedicated thread management
US8214808B2 (en) * 2007-05-07 2012-07-03 International Business Machines Corporation System and method for speculative thread assist in a heterogeneous processing environment
US8230425B2 (en) 2007-07-30 2012-07-24 International Business Machines Corporation Assigning tasks to processors in heterogeneous multiprocessors
US8561073B2 (en) 2008-09-19 2013-10-15 Microsoft Corporation Managing thread affinity on multi-core processors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101513162B1 (ko) * 2014-02-19 2015-04-17 주식회사 큐레이소프트 보안 어플리케이션 구동 시스템

Also Published As

Publication number Publication date
KR101191530B1 (ko) 2012-10-15

Similar Documents

Publication Publication Date Title
CN108537543B (zh) 区块链数据的并行处理方法、装置、设备和存储介质
US10761899B2 (en) Framework to improve parallel job workflow
US10877766B2 (en) Embedded scheduling of hardware resources for hardware acceleration
US8413158B2 (en) Processor thread load balancing manager
WO2016112701A1 (zh) 异构多核可重构计算平台上任务调度的方法和装置
US9164769B2 (en) Analyzing data flow graph to detect data for copying from central register file to local register file used in different execution modes in reconfigurable processing array
JP6214469B2 (ja) 車両制御装置
CN105045632A (zh) 一种多核环境下实现免锁队列的方法和设备
KR101603752B1 (ko) 멀티 모드 지원 프로세서 및 그 프로세서에서 멀티 모드를 지원하는 방법
KR20080050828A (ko) 재구성 가능한 프로세서를 갖는 문맥 교환 시스템 및 방법
JP5030647B2 (ja) 複数処理ノードを含むコンピュータ・システムでプログラムをロードする方法、該プログラムを含むコンピュータ可読媒体、及び、並列コンピュータ・システム
KR102205899B1 (ko) 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치
US9021492B2 (en) Dual mode reader writer lock
US9588817B2 (en) Scheduling method and scheduling system for assigning application to processor
KR101191530B1 (ko) 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법
JP5278538B2 (ja) コンパイルシステム、コンパイル方法およびコンパイルプログラム
US20150243259A1 (en) Method and apparatus for transferring data in a computer
US9619277B2 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method
JP5540799B2 (ja) データ入出力制御方法,データ入出力制御プログラムおよびデータ入出力制御装置
CN112445587A (zh) 一种任务处理的方法以及任务处理装置
CN112416539B (zh) 面向异构众核处理器的多任务并行调度方法
JP2019164510A (ja) ストレージシステム及びio処理の制御方法
JP5379618B2 (ja) コンピュータシステム
KR20140120970A (ko) 인텔리전트 ssd를 위한 효율적인 외부 정렬 방법 및 저장 장치
CN116301874A (zh) 代码编译方法、电子设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee