KR101859188B1 - 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법 - Google Patents
매니코어 시스템에서의 파티션 스케줄링 장치 및 방법 Download PDFInfo
- Publication number
- KR101859188B1 KR101859188B1 KR1020110096815A KR20110096815A KR101859188B1 KR 101859188 B1 KR101859188 B1 KR 101859188B1 KR 1020110096815 A KR1020110096815 A KR 1020110096815A KR 20110096815 A KR20110096815 A KR 20110096815A KR 101859188 B1 KR101859188 B1 KR 101859188B1
- Authority
- KR
- South Korea
- Prior art keywords
- partition
- cores
- scheduling
- partition scheduling
- core
- Prior art date
Links
Images
Classifications
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
매니코어 환경에서 파티션 스케줄링을 수행하는 장치가 제공된다. 상기 장치는 우선 순위 기반으로 파티션 스케줄링을 수행하되, 유휴 코어의 수가 최소화 되도록 파티션 스케줄링을 수행한다. 본 발명의 일실시예에 따르면, 상기 장치는, 파티션 스케줄링 이벤트를 관리하는 파티션 큐, 상기 복수 개의 코어 각각의 하드웨어 정보를 저장하는 코어 맵을 포함하는 파티션 스케줄러, 및 상기 하드웨어 정보를 이용하여 상기 파티션 스케줄링 이벤트에 대응하여 상기 복수 개의 코어에 대한 파티션 스케줄링을 수행하는 파티션 매니져를 포함한다.
Description
본 발명의 실시예들은 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법에 연관되며, 보다 특정하게는 매니코어 프로세서를 포함한 컴퓨팅 시스템에서 어플리케이션 수행을 위한 파티션 스케줄링 방법에 연관된다.
스마트폰, 텔레비전, 자동차 등 다양한 디바이스에서 성능과 전력을 고려하여 매니코어(manycore) 시스템을 구성하는 것이 주류(main stream) 으로 자리잡고 있는데, 이렇게 매니코어 시스템으로 구성된 장치들에서는 어플리케이션(Application)의 실행을 위한 코어들의 파티션 스케줄이 중요하게 여겨진다.
매니코어 환경에서는 data-parallel 하고 compute-intensive 한 어플리케이션에 필요하도록 컴퓨팅 성능을 효율화하는 연구가 수행되고 있다. 이러한 연구의 일환으로 매니코어 시스템에서 동시에 동작하는 여러 개의 어플리케이션을 효율적으로 스케줄링 할 수 있는 방법이 소개되고 있는데, 대표적인 것이 파티셔닝(partitioning)이다.
파티셔닝은 자원(resource), 이를테면 매니코어에 포함된 코어들을 그룹핑(grouping) 함으로써 각각의 어플리케이션에게 독립적인 수행(executing or processing) 공간을 제공함으로써, 어플리케이션들의 안정적 구동과 QoS를 보장할 수 있다.
그러나, 어떤 어플리케이션에세 몇 개의 코어들을 할당할 것이며, 동일한 수의 코어들이라도 어떤 코어들 조합을 할당할 것인지의 파티셔닝에 관한 부분에 대한 효율적인 솔루션이 요구된다.
매니코어 환경에서 어플리케이션들을 구동하는 경우, 각각의 어플리케이션의 우선순위에 따른 파티션 스케줄링 장치 및 방법이 제공된다.
또한, 파티션 스케줄에 있어서 코어들의 하드웨어적인 환경을 고려하여 데이터 코어 간의 교환 오버로드를 최소화하고, 입출력 딜레이를 최소화하며, 유휴 코어의 수는 최소화하고, 나아가 캐시 히트를 위해 로컬리티(locality)를 높인 파티션 스케줄링 장치 및 방법이 제공된다.
본 발명의 일측에 따르면, 복수 개의 코어를 포함하는 프로세서에 어플리케이션을 위한 파티션 스케줄링을 수행하는 장치에 있어서, 파티션 스케줄링 이벤트를 관리하는 파티션 큐, 상기 복수 개의 코어 각각의 하드웨어 정보를 저장하는 코어 맵을 포함하는 파티션 스케줄러, 및 상기 하드웨어 정보를 이용하여 상기 파티션 스케줄링 이벤트에 대응하여 상기 복수 개의 코어에 대한 파티션 스케줄링을 수행하는 파티션 매니져를 포함하는 파티션 스케줄링 장치가 제공된다.
본 발명의 일실시예에 따르면, 상기 하드웨어 정보는, 상기 복수 개의 코어 각각에 현재 할당되어 있거나 또는 과거에 할당된 적이 있는 어플리케이션의 식별 정보를 포함한다.
이 경우, 상기 파티션 매니져는, 상기 하드웨어 정보를 이용하여 제1 파티션 스케줄링 이벤트에 연관된 어플리케이션이 이전에 상기 복수 개의 코어 중 제1 코어에서 처리된 적이 있는 경우, 상기 제1 코어를 상기 제1 파티션 스케줄링 이벤트에 포함시켜서 파티션 스케줄링을 수행할 수 있다.
본 발명의 일실시예에 따르면, 상기 하드웨어 정보는, 상기 복수 개의 코어들의 버스 연결 토폴로지 내에서의 노드(node) 식별 정보를 포함한다.
이 경우, 상기 파티션 매니져는, 상기 하드웨어 정보를 이용하여 하나의 파티션 스케줄링 이벤트에 대응하여 선택되는 코어들에 연관된 노드의 수가 최소화 되도록 파티션 스케줄링을 수행할 수 있다.
본 발명의 일실시예에 따르면, 상기 하드웨어 정보는, 상기 복수 개의 코어 각각이 상기 프로세서 내부 또는 외부의 다른 장치와 연결된 물리적 구조에 관한 정보를 포함한다.
이 경우, 상기 파티션 매니져는, 상기 하드웨어 정보를 이용하여 상기 복수 개의 코어 중 제1 코어가 다른 코어들 보다 제1 파티션 스케줄링 이벤트에 연관된 어플리케이션을 수행하는 다른 장치와 연결이 짧은 경우, 상기 제1 코어를 상기 제1 파티션 스케줄링 이벤트에 포함시켜서 파티션 스케줄링을 수행할 수 있다.
나아가, 본 발명의 다른 일실시예에 따르면, 상기 파티션 매니져는, 상기 복수 개의 코어들 중 유휴(idle) 코어의 수가 최소화 되도록 파티션 스케줄링을 수행한다.
본 발명의 다른 일측에 따르면, 복수 개의 코어를 포함하는 프로세서에 어플리케이션을 위한 파티션 스케줄링을 수행하는 파티션 스케줄 장치의 동작 방법에 있어서, 상기 파티션 스케줄 장치의 파티션 큐에서 우선 순위 기반의 계층적 파티션 스케줄 이벤트를 관리하는 단계, 상기 파티션 스케줄 장치의 파티션 스케줄러에 포함되는 코어 맵에 저장된 상기 복수 개의 코어 각각의 하드웨어 정보를 이용하여 적어도 하나의 파티션을 선택하는 단계, 및 상기 파티션 스케줄 장치의 파티션 매니저가 상기 하드웨어 정보를 이용하여 상기 파티션 스케줄링 이벤트에 대응하여 상기 복수 개의 코어에 대한 파티션 스케줄링을 수행하는 단계를 포함하는 파티션 스케줄링 장치의 동작 방법이 제공된다.
매니코어 시스템에서 구동되는 어플리케이션들을 위해 우선순위에 따른 효율적 파티셔닝이 수행되어 리얼타임(real-time) 환경에서 효율적으로 자원 활용이 가능하다.
또한, 어플리케이션들의 우선순위에 따른 파티셔닝에 있어서 코어들의 하드웨어적인 환경을 고려하여 데이터 코어 간의 교환 오버로드를 최소화하고, 입출력 딜레이를 최소화하며, 유휴 코어의 수는 최소화하고, 나아가 캐시 히트를 위해 로컬리티(locality)를 높인 파티션 스케줄링이 수행된다.
도 1은 본 발명의 일실시예에 따른 파티션 스케줄링 장치를 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 매니코어 환경의 프로세서를 도시한 개념도이다.
도 3은 본 발명의 일실시예에 따른 파티션 스케줄러를 도시한다.
도 4 내지 도 6은 본 발명의 일실시예에 따라 파티션 큐에 포함된 어플리케이션들에 파티션을 스케줄하는 과정을 설명하기 위한 개념도이다.
도 7은 본 발명의 일실시예에 따른 파티션 스케줄링 방법을 도시한다.
도 2는 본 발명의 일실시예에 따른 매니코어 환경의 프로세서를 도시한 개념도이다.
도 3은 본 발명의 일실시예에 따른 파티션 스케줄러를 도시한다.
도 4 내지 도 6은 본 발명의 일실시예에 따라 파티션 큐에 포함된 어플리케이션들에 파티션을 스케줄하는 과정을 설명하기 위한 개념도이다.
도 7은 본 발명의 일실시예에 따른 파티션 스케줄링 방법을 도시한다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 파티션 스케줄링 장치(100)를 도시한 블록도이다.
본 발명의 일실시예에 따르면, 파티션 스케줄링 장치(100)는 코어들을 포함하는 파티션을 할당받을 어플리케이션의 우선 순위(priority) 및 필요한 최소의 코어 개수 정보를 수신하여, 해당 어플리케이션에 상기 최소의 코어 개수 이상의 수의 코어를 포함하는 파티션을 할당한다.
이러한 파티션 할당, 또는 파티션 스케줄링에 있어서는, 종래의 Hierarchical Bit Map을 이용한 우선 순위 기반 스케줄링 알고리즘이 사용될 수 있으며, 보다 구체적으로는 어플리케이션에 대해 우선 순위를 고려하여 파티션을 셀렉트(partition select) 하고, 이 파티션에 대해 코어를 매핑(mapping)하게 된다.
본 발명의 실시예들에서는 이러한 스케줄링에 있어서 매니코어 시스템의 하드웨어적 환경을 고려한 파티션 스케줄링이 수행되어, 자원에 대한 활용을 극대화하고 데이터 전송 오버로드 등이 최소화 된다.
파티션 스케줄링 장치(100)의 구체적 구성 및 동작 방법에 대해서는 다시 도 1을 참조하여 상술한다.
본 발명의 일실시예에 따르면, 파티션 매니져(Partition Manager)(110)는 데몬과 같은 OS의 한 부분에 대응하는 논리적 또는 물리적 구성으로서, 어플리케이션에 대한 스케줄링 이벤트(scheduling event)가 발생하였을 때 깨어나(waked-up), 파티션 스케줄러(Partition Scheduler)(130)를 호출한다.
상기 스케줄링 이벤트로는 어플리케이션이 파티션(partition)을 생성하거나 제거하는 것, 서스펜드(suspend)하거나 리줌(resume)하는 것, 파티션의 우선 순위를 변경하는 것, 그리고 같은 우선 순위의 파티션에 대해 라운드 로빈(Round Robin) 방식으로 처리할 때 타임 퀀텀(time quantum)이 다하는 것 등이 있다.
그러나, 이러한 스케줄링 이벤트의 구체적인 예시들은 어디까지나 본 발명의 일부 실시예에 대응하는 것이고, 본 발명의 사상을 벗어나지 않는 범위에서 어플리케이션 실행을 위한 파티션 스케줄링은 얼마든지 다른 예시를 포함할 수 있다.
이러한 파티션 매니저(110)는 파티션 큐(120)와 파티션 스케줄러(130)를 관리하여 본 발명의 실시예들에 따른 파티션 스케줄링 과정 전반을 관리한다. 이러한 파티션 매니저는 컴퓨팅 시스템 내의 프로세서 외부의 별도의 dedicated Hardware일 수도 있으나, 통상적인 프로세서 내부의 물리적 및/또는 논리적 일부일 수도 있다.
파티션 매니져(110)가 스케줄링 이벤트를 감지하여 깨어나는 경우, 파티션 매니저(110)는 파티션 큐(120) 내에 포함된 어플리케이션들에 대해 우선 순위 기반의 스케줄링을 수행하며, 이 과정에서 파티션 스케줄러(130) 내에 포함된 코어 맵(Core Map)이 활용된다.
상기한 바와 같이, 본 발명의 실시예에 따른 파티션 스케줄링은 파티션 스케줄링을 요청하는 어플리케이션에 대해 우선 순위 기반의 파티션 할당을 하되, 파티션에 포함되는 코어들에 대해서는 코어들의 시스템 정보, 즉 하드웨어 환경을 고려하여 효율이 극대화되도록 파티션 할당을 한다.
이러한 코어들의 시스템 정보, 이를테면 할당된 partition ID, node 정보, 특정 HW IP에 적합한 특성은 파티션 스케줄러(130)에 포함된 코어 맵(Core Map)에 저장되어 있다.
상기 파티션 ID는 파티션의 식별과 구별을 위한 것이다. 그리고 노드 정보는 어떠한 코어들이 동일한 버스(bus)를 공유하는지, 즉 토폴로지(topology) 상 동일 노드에 속하는지를 알 수 있게 하는 정보이다. 그리고, 코어 맵에는 어떤 코어가 어떤 특정한 HW IP에 어울리는지, 즉 통신이 원활하고 데이터 입출력 오버헤드가 적은지 등의 정보도 함께 저장된다.
본 발명의 일실시예에 따라 파티션 매니져(110)가 파티션 스케줄러(130)와 함께 파티션 큐(120) 내에 포함된 어플리케이션의 파티션 할당 요청들에 대응하여 파티션 스케줄링을 수행하는 내용은 도 2 이하를 통해 보다 상세히 후술한다.
도 2는 본 발명의 일실시예에 따른 매니코어 환경의 프로세서(200)를 도시한 개념도이다.
도시된 프로세서(200)는 예시적으로 16개의 코어를 갖는 매니코어 프로세서이다. 한편, 코어들 간에는 내부 버스(internal bus)를 공유하는 코어들이 존재하는데, 동일한 버스를 공유하는 코어들을 동일 노드에 속한 코어들로 이해할 수 있다.
코어(210)를 포함하는 코어들(201)은 서로 동일한 내부 버스를 공유하는 동일 노드에 연관된다. 그리고, 코어들(202), 코어들(203) 및 코어들(204) 각각은 상기 코어들(201)과는 서로 다른 노드에 연관된다.
본 발명의 일실시예에 따르면, 하나의 어플리케이션에 대응하는 파티션 할당에 있어서, 서로 다른 노드들에 속한 코어들을 묶어서 파티션 할당을 하는 것보다는 될 수 있으면 동일한 노드에 속한 코어들을 함께 묶는 방식으로 파티션 할당을 수행한다.
따라서, 이러한 하드웨어적 토폴로지 정보는 도 1의 파티션 스케줄링 장치(100)의 파티션 스케줄러(130) 내의 코어 맵에 저장되어 있으며, 파티션 스케줄러(130) 및 파티션 매니저(110)는 이러한 코어 맵을 참고하여 되도록이면 동일한 노드에 속한 코어들을 함께 묶어서 스케줄링을 수행한다. 파티션 스케줄러 및 그 내에 포함된 코어 맵에 관해서는 도 3에 도시되어 있다.
도 3은 본 발명의 일실시예에 따른 파티션 스케줄러(130)를 도시한다.
본 발명의 실시예에 따르면 파티션 스케줄러(130)에는 코어 맵(310)이 포함된다. 코어 맵(310)에는 복수 개의 비트열이 영역을 나누어 저장되며, 이를테면 영역(311)에는 도 2의 코어(210)에 대한 하드웨어적 시스템 정보, 이를테면 현재 할당되어 있거나 과거에 할당된 적이 있는 파티션 ID, 코어(210)가 속하는 노드의 정보, 외부의 IP 중 어떤 특정 HW IP와의 상호 동작이 적합한지 여부 등이 저장되어 있을 수 있다.
물론, 이러한 영역 별 코어 대응을 도시한 내용은 어디까지나 개념적인 것에 불과하며, 실제 응용에 있어서는 각 코어들의 하드웨어 환경을 저장하는 어떤 방식의 정보 저장이라도 코어 맵(310)의 구성에 이용될 수 있는 것이다. 따라서, 본 발명이 도시된 바에 대해 예시적으로 설명한 일부 실시예로 국한되지 않는다.
도 4 내지 도 6은 본 발명의 일실시예에 따라 파티션 큐(120)에 포함된 어플리케이션들에 파티션을 스케줄하는 과정을 설명하기 위한 개념도이다.
파티션 큐(120)는 우선 순위에 따라 Hierarchical한 구조를 가지며, 설명의 편의를 위해 도 4 내지 도 6에서는 1 내지 4 중 어느 하나의 우선 순위 인덱스에 어플리케이션의 파티션 할당 요청들이 인큐(enqueue) 되어 있는 것으로 표현되었다. 이하의 설명에서 우선 순위는 4가 가장 높은 것이고, 1이 가장 낮은 것이다.
도 4에 도시된 것처럼, 어플리케이션들의 파티션 할당 요청들 각각은 이하에서 'App'으로 표현한다. 그리고, App 옆의 괄호에서 왼쪽은 우선 순위 레벨, 오른쪽은 할당 받아야 할 파티션에 포함될 최소 코어 수에 대응한다.
App 410은 우선 순위 레벨이 3이고, 최소 4 개의 코어를 포함한 파티션을 요청한다. 현재 파티션 큐(120)에 인큐 되어 있는 전체 App들 중에 App 410의 우선 순위가 가장 높다.
그러면, 파티션 매니져(110)는 우선 순위에 기반하여 App 410에 최소 4 개의 코어를 포함한 파티션 할당을 수행한다.
본 발명의 실시예에 따르면 파티션 매니져(110)는 원칙적으로 유휴(idle) 코어의 수를 최소화 하기 위해 이 요구되는 최소 코어 수와 동일한 수의 코어들을 파티션으로 할당한다.
그리고, 상기한 바와 같이 파티션 매니져(110)는 이러한 파티션 할당에 있어서 할당되는 파티션에, 되도록이면 동일한 노드에 속해서 내부 버스를 공유하는 4 개의 코어를 포함시킨다. App 410의 경우 코어들(401)이 파티션 할당 되었다.
그리고, 다음 우선 순위에 있는 App 420에는 코어들(402)가 할당되어 파티션 스케줄링이 되고, App 430에 코어들(403)이 할당 되어 파티션 되었다.
우선 순위 레벨이 상이한 경우에는 우선 순위가 높은 것에 우선 할당을 하나, 우선 순위가 동일한 경우에는 정책(policy) 설정에 따라 다양한 실시예에 따를 수 있다. 이를테면, 먼저 들어온(인큐 된) 파티션 요청에 우선권을 주는 FIFO(First In First Out), 동일 우선 순위라면 일정한 time quantum 만큼 돌아가면서 할당하는 라운드 로빈(Round Robin: RR), 및 같은 우선 순위를 갖는 모든 파티션들의 요구량에 비례해서 잔여 core를 배분하여 해당 모든 파티션 요청들에 코어들을 할당하는 FAIR 등이 있다.
이러한 내용은 어디까지나 예시적인 실시예에 불과하며, 큐에서 App을 디큐(dequere)하는 정책에 관해서는 일반적 컴퓨팅 이론에 의할 수 있다.
도 5에 도시된 내용을 참조하면, 상기 도 4에 도시된 바와 같이 파티션 스케줄링이 수행된 다음에 도 5의 파티션 큐(150)과 같이 App 들이 인큐 되어 있다면 파티션 매니져(110)는 이전의 파티션 스케줄 결과를 현재 파티션 스케줄링에 참고할 수 있다.
App 510에 대해 코어들(501)을 할당하는 경우, App 420에 대해서는 상기 도 4에서 도시된 바와 같이 이전에 할당되었던 동일한 코어들(502)를 할당한다. 그러면, 캐시 히트(cache hit) 등 로컬리티(locality)에 의한 연산 속도 향상을 기대할 수 있다. 본 발명의 일부 실시예에서는 이처럼 로컬리티를 이용하기 위해, 파티션 매니저(110)는 파티션 스케줄러(130) 내의 코어 맵(310)에 포함된 정보를 참조하며, 되도록이면 이전에 동일한 어플리케이션을 처리했던 코어들에 파티션 스케줄링을 수행한다.
나아가, 파티션 매니저(110)는 로컬리티를 위한 이전 파티션 ID 정보뿐만 아니라, 특정한 어플리케이션을 수행함에 있어서 특정 코어가 상기 특정한 어플리케이션을 처리하기 위한 HW IP에 적합하다면 해당 특정 코어를 사용하여 파티션 스케줄링을 수행할 수 있다.
여기서 특정 코어가 HW IP에 적합하다는 것은 물리적 하드웨어 구조 때문에 어떤 코어가 다른 코어들 보다 HW IP와 데이터를 주고 받기 위한 오버헤드가 적거나, 일부 메모리를 공유하는 등 다양한 원인에 의해 어플리케이션 처리를 위해 서로 어울리는 것을 의미한다. 나아가 어플리케이션이 사용하는 HW IP와 코어가 물리적으로 가까운 것도 이러한 개념에 포함될 수 있다.
상기한 바와 같이, 도 6에서는 파티션 큐(120) 내에 App 610이 인큐 되었는데, 이 경우 이전에 App 510을 처리하던 코어들(601)은 그대로 App 510을 위해 스케줄링 되고, 나머지 코어들(602)가 App 610을 위해 할당되는 것을 알 수 있다.
기존의 싱글 코어 시스템에서 우선 순위 기반 스케줄링을 하면 코어가 처리할 어플리케이션을 선택하여 스케줄링 하면 되었지만, 매니코어 시스템에서는 선택된 파티션에 상기와 같이 코어를 매핑하는 단계가 필요한데, 본 발명의 실시예들은 이 과정에서 idle 코어를 최소화 하고, 이전에 캐싱 된 데이터를 잘 활용할 수 있게 하며, 나아가 버스 연결 구조나 외부 기기와의 연결을 고려하여 어플리케이션 마다 최적의 성능을 줄 수 있는 파티션 스케줄링이 가능하다.
도 7은 본 발명의 일실시예에 따른 파티션 스케줄링 방법을 도시한다.
단계(710)에서는 Hierarchical Bit Map을 이용한 우선 순위 기반 파티션 셀렉팅이 수행되며, 이러한 과정은 파티션 큐(120)에 인큐 된 App 들의 우선 순위를 고려한 파티션 선택에 대응하며, 자세한 내용은 도 3 내지 도 6을 참조하여 상술한 바와 같다.
그리고 단계(720)에서는 파티션 스케줄러(130)에 포함된 코어 맵(310)을 이용하여 파티션 매니저(110)가 App들에 파티션 스케줄링을 수행하며, 이러한 과정에서 어떠한 코어들을 매핑할 지 여부는 도 4 내지 도 6을 참조하여 상술한 바와 같다.
종래에는 매니코어(manycore) 시스템에서, 특히 리얼타임(real-time) 환경에 있는 시스템에서 파티션 스케줄링(partition scheduling)이 원활하게 수행되지 못했으나, 상기와 같이 본 발명의 실시예들에 따른 파티션 스케줄 장치(100)에 따르면 매니코어(manycore) 시스템에서도 우선 순위 기반의 파티션 스케줄링이 원활히 수행되며, 리얼타임 환경에서도 원활한 동작이 보장된다.
본 발명의 일실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 파티션 스케줄링 장치
110: 파티션 매니저
120: 파티션 큐
130: 파티션 스케줄러
110: 파티션 매니저
120: 파티션 큐
130: 파티션 스케줄러
Claims (17)
- 복수 개의 코어를 포함하는 프로세서에 어플리케이션을 위한 파티션 스케줄링을 수행하는 장치에 있어서,
파티션 스케줄링 이벤트를 관리하는 파티션 큐;
상기 복수 개의 코어 각각의 하드웨어 정보를 저장하는 코어 맵을 포함하는 파티션 스케줄러; 및
상기 하드웨어 정보를 이용하여 상기 복수 개의 코어에 대한 파티션 스케줄링을 수행하는 파티션 매니져를 포함하되,
상기 파티션 매니져는 상기 파티션 스케줄링 이벤트와 관련되는 어플리케이션이 이전에 상기 복수 개의 코어에 포함되는 제1 코어에 의해 처리되었는지 여부에 따라 상기 제1 코어를 이용하여 파티션 스케줄링을 수행하는 파티션 스케줄링 장치. - 제1항에 있어서,
상기 하드웨어 정보는, 상기 복수 개의 코어 각각에 현재 할당되어 있거나 또는 과거에 할당된 적이 있는 어플리케이션의 식별 정보를 포함하는, 파티션 스케줄링 장치. - 제2항에 있어서,
상기 파티션 매니져는, 상기 하드웨어 정보를 이용하여 상기 파티션 스케줄링 이벤트와 관련되는 상기 어플리케이션이 이전에 상기 제1 코어에 의해 처리된 적이 있는 경우, 상기 제1 코어를 상기 파티션 스케줄링 이벤트에 포함시켜 파티션 스케줄링을 수행하는, 파티션 스케줄링 장치. - 제1항에 있어서,
상기 하드웨어 정보는, 상기 복수 개의 코어의 버스 연결 토폴로지 내에서의 노드(node) 식별 정보를 포함하는, 파티션 스케줄링 장치. - 제4항에 있어서,
상기 파티션 매니져는, 상기 하드웨어 정보를 이용하여 하나의 파티션 스케줄링 이벤트에 대응하여 선택되는 코어들에 연관된 노드의 수가 최소화 되도록 파티션 스케줄링을 수행하는, 파티션 스케줄링 장치. - 제1항에 있어서,
상기 하드웨어 정보는, 상기 복수 개의 코어 각각이 상기 프로세서 내부 또는 외부의 다른 장치와 연결된 물리적 구조에 관한 정보를 포함하는, 파티션 스케줄링 장치. - 제6항에 있어서,
상기 파티션 매니져는,
상기 하드웨어 정보를 이용하여, 제1 파티션 스케줄링 이벤트와 연관된 어플리케이션을 수행하는 대상 장치와 상기 제1 코어 사이의 거리가 상기 대상 장치와 상기 복수 개의 코어에 포함되는 다른 코어들 사이의 거리들보다 물리적으로 가까운 경우, 상기 제1 코어를 상기 제1 파티션 스케줄링 이벤트에 포함시켜서 파티션 스케줄링을 수행하는, 파티션 스케줄링 장치. - 제1항에 있어서,
상기 파티션 매니져는, 상기 복수 개의 코어 중 유휴(idle) 코어의 수가 최소화 되도록 파티션 스케줄링을 수행하는, 파티션 스케줄링 장치. - 복수 개의 코어를 포함하는 프로세서에 어플리케이션을 위한 파티션 스케줄링을 수행하는 파티션 스케줄링 장치의 동작 방법에 있어서,
상기 파티션 스케줄링 장치의 파티션 큐에서 우선 순위 기반의 계층적 파티션 스케줄링 이벤트를 관리하는 단계;
상기 파티션 스케줄링 장치의 파티션 스케줄러에 포함되는 코어 맵에 저장된 상기 복수 개의 코어 각각의 하드웨어 정보를 이용하여 적어도 하나의 파티션을 선택하는 단계; 및
상기 파티션 스케줄링 장치의 파티션 매니저가 상기 하드웨어 정보를 이용하여 상기 복수 개의 코어에 대한 파티션 스케줄링을 수행하는 단계를 포함하되,
상기 파티션 스케줄링을 수행하는 단계는, 상기 파티션 스케줄링 이벤트와 관련되는 어플리케이션이 이전에 상기 복수 개의 코어 중 제1 코어에 의해 처리되었는지 여부에 따라 상기 제1 코어를 이용하여 파티션 스케줄링을 수행하는 단계를 포함하는 파티션 스케줄링 장치의 동작 방법. - [청구항 10은(는) 설정등록료 납부시 포기되었습니다.]제9항에 있어서,
상기 하드웨어 정보는, 상기 복수 개의 코어 각각에 현재 할당되어 있거나 또는 과거에 할당된 적이 있는 어플리케이션의 식별 정보를 포함하는, 파티션 스케줄링 장치의 동작 방법. - [청구항 11은(는) 설정등록료 납부시 포기되었습니다.]제10항에 있어서,
상기 파티션 스케줄링을 수행하는 단계는, 상기 하드웨어 정보를 이용하여 상기 파티션 스케줄링 이벤트와 관련되는 상기 어플리케이션이 이전에 상기 제1 코어에 의해 처리된 적이 있는 경우, 상기 제1 코어를 상기 파티션 스케줄링 이벤트에 포함시켜 파티션 스케줄링을 수행하는, 파티션 스케줄링 장치의 동작 방법. - [청구항 12은(는) 설정등록료 납부시 포기되었습니다.]제9항에 있어서,
상기 하드웨어 정보는, 상기 복수 개의 코어의 버스 연결 토폴로지 내에서의 노드(node) 식별 정보를 포함하는, 파티션 스케줄링 장치의 동작 방법. - [청구항 13은(는) 설정등록료 납부시 포기되었습니다.]제12항에 있어서,
상기 파티션 스케줄링을 수행하는 단계는, 상기 하드웨어 정보를 이용하여 하나의 파티션 스케줄링 이벤트에 대응하여 선택되는 코어들에 연관된 노드의 수가 최소화 되도록 파티션 스케줄링을 수행하는, 파티션 스케줄링 장치의 동작 방법. - [청구항 14은(는) 설정등록료 납부시 포기되었습니다.]제9항에 있어서,
상기 하드웨어 정보는, 상기 복수 개의 코어 각각이 상기 프로세서 내부 또는 외부의 다른 장치와 연결된 물리적 구조에 관한 정보를 포함하는, 파티션 스케줄링 장치의 동작 방법. - [청구항 15은(는) 설정등록료 납부시 포기되었습니다.]제14항에 있어서,
상기 파티션 스케줄링을 수행하는 단계는,
상기 하드웨어 정보를 이용하여, 제1 파티션 스케줄링 이벤트와 연관된 어플리케이션을 수행하는 대상 장치와 상기 제1 코어 사이의 거리가 상기 대상 장치와 상기 복수 개의 코어에 포함되는 다른 코어들 사이의 거리들보다 물리적으로 가까운 경우, 상기 제1 코어를 상기 제1 파티션 스케줄링 이벤트에 포함시켜서 파티션 스케줄링을 수행하는, 파티션 스케줄링 장치의 동작 방법. - [청구항 16은(는) 설정등록료 납부시 포기되었습니다.]제9항에 있어서,
상기 파티션 스케줄링을 수행하는 단계는, 상기 복수 개의 코어 중 유휴(idle) 코어의 수가 최소화 되도록 파티션 스케줄링을 수행하는, 파티션 스케줄링 장치의 동작 방법. - 제9항 내지 제16항 중 어느 한 항의 파티션 스케줄링 장치의 동작 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110096815A KR101859188B1 (ko) | 2011-09-26 | 2011-09-26 | 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법 |
US13/627,610 US9141436B2 (en) | 2011-09-26 | 2012-09-26 | Apparatus and method for partition scheduling for a processor with cores |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110096815A KR101859188B1 (ko) | 2011-09-26 | 2011-09-26 | 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130033020A KR20130033020A (ko) | 2013-04-03 |
KR101859188B1 true KR101859188B1 (ko) | 2018-06-29 |
Family
ID=47912720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110096815A KR101859188B1 (ko) | 2011-09-26 | 2011-09-26 | 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9141436B2 (ko) |
KR (1) | KR101859188B1 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3000250B1 (fr) * | 2012-12-20 | 2015-02-13 | Thales Sa | Systeme de processeur multi-coeurs de traitement d'informations |
CN104008013B (zh) * | 2013-02-26 | 2018-02-09 | 华为技术有限公司 | 一种核资源分配方法、装置及众核系统 |
EP3152859A1 (en) * | 2014-06-04 | 2017-04-12 | Giesecke & Devrient GmbH | Method for enhanced security of computational device with multiple cores |
CN106302587B (zh) * | 2015-05-26 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 一种互联网信息资源的调度方法及装置 |
KR102014725B1 (ko) | 2017-11-22 | 2019-08-27 | 건국대학교 산학협력단 | 매니코어 기반 코어 파티셔닝 장치 및 방법, 이를 저장하는 기록매체 |
CN110489230A (zh) * | 2019-08-05 | 2019-11-22 | 上海航天计算机技术研究所 | 安全关键和时间关键的资源调度方法及设备 |
KR102280796B1 (ko) * | 2019-11-28 | 2021-07-22 | 국방과학연구소 | 스케줄링 프로세서 및 방법 |
KR102319718B1 (ko) | 2019-12-17 | 2021-11-02 | 건국대학교 산학협력단 | 동적 매니코어 파티셔닝 장치 및 방법 |
KR102353602B1 (ko) * | 2021-07-13 | 2022-01-21 | 국방과학연구소 | 파티션 스케줄링 방법 및 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294689A1 (en) * | 2006-06-14 | 2007-12-20 | Garney John I | Sharing resources of a partitioned system |
US20100199280A1 (en) * | 2009-02-05 | 2010-08-05 | Honeywell International Inc. | Safe partition scheduling on multi-core processors |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249152B2 (en) * | 2002-05-24 | 2007-07-24 | Oracle International Corporation | Dynamic disk space management by multiple database server instances in a cluster configuration |
US9189291B2 (en) * | 2005-12-12 | 2015-11-17 | International Business Machines Corporation | Sharing a kernel of an operating system among logical partitions |
US20090055831A1 (en) | 2007-08-24 | 2009-02-26 | Bauman Ellen M | Allocating Network Adapter Resources Among Logical Partitions |
US8561072B2 (en) * | 2008-05-16 | 2013-10-15 | Microsoft Corporation | Scheduling collections in a scheduler |
US8650570B2 (en) * | 2008-06-02 | 2014-02-11 | Microsoft Corporation | Method of assigning instructions in a process to a plurality of scheduler instances based on the instruction, in which each scheduler instance is allocated a set of negoitaited processor resources |
US8296773B2 (en) | 2008-06-30 | 2012-10-23 | International Business Machines Corporation | Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance |
US20100058086A1 (en) | 2008-08-28 | 2010-03-04 | Industry Academic Cooperation Foundation, Hallym University | Energy-efficient multi-core processor |
JP4576452B2 (ja) | 2008-11-06 | 2010-11-10 | イーソル株式会社 | オペレーティングシステムおよび情報処理装置 |
KR101622168B1 (ko) | 2008-12-18 | 2016-05-18 | 삼성전자주식회사 | 실시간 스케쥴링 방법 및 이를 이용한 중앙처리장치 |
US8578386B1 (en) * | 2009-04-01 | 2013-11-05 | Netapp, Inc. | Processor scheduling method and system using domains |
US8402259B2 (en) | 2009-11-30 | 2013-03-19 | International Business Machines Corporation | Accelerating wake-up time of a system |
US8887171B2 (en) | 2009-12-28 | 2014-11-11 | Intel Corporation | Mechanisms to avoid inefficient core hopping and provide hardware assisted low-power state selection |
KR101658792B1 (ko) * | 2010-01-06 | 2016-09-26 | 삼성전자주식회사 | 컴퓨팅 시스템 및 방법 |
US9552206B2 (en) * | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
-
2011
- 2011-09-26 KR KR1020110096815A patent/KR101859188B1/ko active IP Right Grant
-
2012
- 2012-09-26 US US13/627,610 patent/US9141436B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294689A1 (en) * | 2006-06-14 | 2007-12-20 | Garney John I | Sharing resources of a partitioned system |
US20100199280A1 (en) * | 2009-02-05 | 2010-08-05 | Honeywell International Inc. | Safe partition scheduling on multi-core processors |
Also Published As
Publication number | Publication date |
---|---|
US20130081045A1 (en) | 2013-03-28 |
US9141436B2 (en) | 2015-09-22 |
KR20130033020A (ko) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101859188B1 (ko) | 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법 | |
US11036556B1 (en) | Concurrent program execution optimization | |
US7913257B2 (en) | Scheduling method, scheduling apparatus and multiprocessor system | |
US9619287B2 (en) | Methods and system for swapping memory in a virtual machine environment | |
US8156495B2 (en) | Scheduling threads on processors | |
CN104008013B (zh) | 一种核资源分配方法、装置及众核系统 | |
WO2016078178A1 (zh) | 一种虚拟cpu调度方法 | |
US20130212594A1 (en) | Method of optimizing performance of hierarchical multi-core processor and multi-core processor system for performing the method | |
CN103927225A (zh) | 一种多核心架构的互联网信息处理优化方法 | |
Khalifa¹ et al. | Collaborative autonomic resource management system for mobile cloud computing | |
CN113672391B (zh) | 一种基于Kubernetes的并行计算任务调度方法与系统 | |
Saha et al. | STGM: Spatio-temporal GPU management for real-time tasks | |
CN112506634A (zh) | 一种基于预约机制的公平性作业调度方法 | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
KR20170023280A (ko) | 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법 | |
Shu-Jun et al. | Optimization and research of hadoop platform based on fifo scheduler | |
EP3008597A1 (en) | Method for the continuous processing of two-level data on a system with a plurality of nodes | |
CN113010453A (zh) | 一种内存管理的方法、系统、设备及可读存储介质 | |
JP6158751B2 (ja) | 計算機資源割当装置及び計算機資源割当プログラム | |
Sibai | Simulation and performance analysis of multi-core thread scheduling and migration algorithms | |
Chen et al. | A real-time scheduling strategy based on processing framework of Hadoop | |
Gadre et al. | Investigating MapReduce framework extensions for efficient processing of geographically scattered datasets | |
CN114880104A (zh) | 便于OpenCL工作组乱序执行的方法、系统及存储介质 | |
CN104809078A (zh) | 基于退出退让机制的共享高速缓存硬件资源访问方法 | |
Roy et al. | A hybrid task scheduling algorithm for efficient task management in multi-cloud environment |
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 |