KR20130067100A - 이종 멀티코어 환경에서의 코어 배정 장치 - Google Patents
이종 멀티코어 환경에서의 코어 배정 장치 Download PDFInfo
- Publication number
- KR20130067100A KR20130067100A KR1020110133947A KR20110133947A KR20130067100A KR 20130067100 A KR20130067100 A KR 20130067100A KR 1020110133947 A KR1020110133947 A KR 1020110133947A KR 20110133947 A KR20110133947 A KR 20110133947A KR 20130067100 A KR20130067100 A KR 20130067100A
- Authority
- KR
- South Korea
- Prior art keywords
- core
- thread
- allocation
- information
- type
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000013500 data storage Methods 0.000 claims abstract description 12
- 239000011230 binding agent Substances 0.000 claims abstract description 7
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
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/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
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Molds, Cores, And Manufacturing Methods Thereof (AREA)
Abstract
본 발명은 코어 정보 및 쓰레드에 코어를 지정하는 방식을 정의한 코어 배정 정보를 저장하는 코어배정 데이터 저장부, 코어배정 데이터 저장부에 저장된 코어 정보와 코어 배정 정보를 이용하여 쓰레드 각각에 상기 코어를 배정하는 스케쥴러 및 스케쥴러의 배정 명령에 따라 쓰레드 별로 코어를 연결시키는 바인더부를 포함하는 것을 특징으로 한다.
Description
본 발명은 이종 멀티코어 환경에서의 코어 배정 장치에 관한 것으로서, 더욱 상세하게는 여러 개의 서비스 또는 작업을 쓰레드로 처리하는 이종 멀티코어 환경에서 각 쓰레드에 코어를 배정하는 이종 멀티코어 환경에서의 코어 배정 장치에 관한 것이다.
최근들어 IT 시장에서는 사용자들이 고성능 저전력 프로세서에 대한 요구가 많아지고, 응용프로그램도 동시에 여러 개의 서비스를 처리하는 모드로 변하고 있으며, 이러한 요구사항에 대항하기 위해서는 시스템 또는 프로세서의 성능을 향상시켜야 하는데, 단일 프로세서로 성능을 향상시키는 것은 문제가 있기 때문에 다수개의 프로세서를 사용하는 멀티 프로세서 또는 멀티 코어 사용 환경으로 진화하고 있다.
종래의 멀티 프로세싱은 범용 프로세서(General Purpose Processor)나 특별히 설계된 단일 프로세서를 여러 개 넣어서 만든 동종 멀티코어(Homogeneous Multi-Core) 시스템을 이용해서 멀티프로세싱을 처리하는 방법을 사용해왔다.
동종 멀티코어 시스템은 수행할 멀티미디어 데이터 처리를 여러 프로세서에 나눠서 처리하긴 하지만, 멀티코어에 들어있는 프로세서들이 동일한 범용 프로세서(코어)이기 때문에, 다양한 특성을 갖는 쓰레드를 처리할 때, 최적화 되지 않은 프로세서를 사용하게 되고, 그것 때문에 성능 향상이 제한적일 수밖에 없다.
도 1 은 종래의 멀티 쓰레드 작업을 수행할 때 코어를 배정하는 방식을 보여주고 있다.
종래의 방식은 메인 프로세스에서 새로운 쓰레드가 생성될 때마다, 사용이 가능한 프로세서 코어 목록에서 순차적으로 하나씩 배정해서 쓰레드를 처리하게 하는 방법이다.
이러한 방법은 모든 코어가 동일한 명령어 집합을 갖는 같은 종류의 ASIP(Application Specific Instruction-set Processor) 코어로 이루어진 동종 멀티코어 칩을 사용할 때는 문제가 없지만, 개별 코어가 서로 다른 종류(타입)의 ASIP 코어일 경우 성능에 문제가 생기게 된다.
예를 들어 도 1 에서 쓰레드1에 코어를 배정할 때, 종래의 방법은 순차적으로 배정하기 때문에 코어3이 쓰레드1을 수행하는데 가장 적합한 코어(프로세서)라 하더라도 코어1을 배정하게 된다.
이러한 방법은 이종 멀티코어 환경에서는 적합하지 않으며, 최고의 성능을 올리기 위해서는 각각의 쓰레드에 적합한 코어를 찾아 배정해야 획기적인 성능 향상을 기대할 수 있다.
또한, 종래에는 이종 멀티코어 환경에서 쓰레드에 코어를 할당하는 방법으로써, 쓰레드 수행을 위해서 하드웨어 구조를 재설계하여 쓰레드 수행시 전력 소모와 프로세서 면적을 감소하는 기술이 개시되었다.
그러나, 이러한 방법은 하드웨어 구조를 재설계하여야 하는 문제점이 있었다.
본 발명의 배경기술은 대한민국 특허공개번호 10-2008-0076392호(2008.08.20)에 개시되어 있다.
본 발명은 전술한 문제점을 개선하기 위해 창작된 것으로서, 서로 다른 명령어 집합(Instruction Set)을 갖는 ASIP(Application Specific Instruction-set Processor) 코어로 이루어진 멀티코어 시스템에서 멀티 쓰레드 작업을 수행할 때 개별 쓰레드에 적합한 ASIP 코어를 배정하는 이종 멀티코어 환경에서의 코어 배정 장치를 제공하는데 그 목적이 있다.
본 발명의 일 측면에 따른 이종 멀티코어 환경에서의 코어 배정 장치는 코어 정보 및 쓰레드에 코어를 지정하는 방식을 정의한 코어 배정 정보를 저장하는 코어배정 데이터 저장부; 상기 코어배정 데이터 저장부에 저장된 상기 코어 정보와 상기 코어 배정 정보를 이용하여 상기 쓰레드 각각에 상기 코어를 배정하는 스케쥴러; 및 상기 스케쥴러의 배정 명령에 따라 상기 쓰레드 별로 상기 코어를 연결시키는 바인더부를 포함하는 것을 특징으로 한다.
본 발명은 기 설정된 코어 타입에 따라 쓰레드별로 코어를 배정하거나, 자동 탐색 기능을 통해 최적의 코어 배정 방법을 찾아내 각 쓰레드 별로 적합한 코어를 배정함으로써, 멀티 쓰레드 환경에서 단순히 프로세서 개수만 늘려서 멀티프로세싱을 하는 방식으로는 구현할 수 없었던 시스템의 성능을 향상시킨다.
도 1 은 종래의 순차적 코어 배정 방법을 도시한 도면이다.
도 2 는 본 발명의 일 실시예에 따른 이종 멀티코어 환경에서의 코어 배정 장치의 블럭 구성도이다.
도 3 은 본 발명의 일 실시예에 따른 이종 멀티코어 환경에서의 쓰레드에 설정된 코어 타입에 따라 쓰레드에 코어를 배정하는 예를 도시한 도면이다.
도 4 는 도 3 의 쓰레드에 지정된 코어 타입을 사용할 때 조합 가능한 경우의 수를 도시한 도면이다.
도 5 는 본 발명의 일 실시예에 따른 자동 탐색 기능을 이용하여 쓰레드에 코어를 배정하는 방법을 도시한 도면이다.
도 6 은 도 5 의 전체 코어 타입에 대해 쓰레드를 배정할 때 조합 가능한 경우의 수를 도시한 도면이다.
도 2 는 본 발명의 일 실시예에 따른 이종 멀티코어 환경에서의 코어 배정 장치의 블럭 구성도이다.
도 3 은 본 발명의 일 실시예에 따른 이종 멀티코어 환경에서의 쓰레드에 설정된 코어 타입에 따라 쓰레드에 코어를 배정하는 예를 도시한 도면이다.
도 4 는 도 3 의 쓰레드에 지정된 코어 타입을 사용할 때 조합 가능한 경우의 수를 도시한 도면이다.
도 5 는 본 발명의 일 실시예에 따른 자동 탐색 기능을 이용하여 쓰레드에 코어를 배정하는 방법을 도시한 도면이다.
도 6 은 도 5 의 전체 코어 타입에 대해 쓰레드를 배정할 때 조합 가능한 경우의 수를 도시한 도면이다.
이하에서는 본 발명의 일 실시예에 따른 이종 멀티코어 환경에서의 코어 배정 장치를 첨부된 도면을 참조하여 상세하게 설명한다. 이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로, 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 2 는 본 발명의 일 실시예에 따른 이종 멀티코어 환경에서의 코어 배정 장치의 블럭 구성도이다.
본 발명의 일 실시예에 따른 이종 멀티코어 환경에서의 코어 배정 장치는 도 도 1 에 도시된 바와 같이, 코어배정 데이터 저장부(230), 코어 탐색엔진부(220), 스케쥴러(240) 및 바인더부(250)를 포함한다.
코어배정 데이터 저장부(230)는 코어 정보 및 쓰레드에 코어를 배정하는 방식을 정의한 코어 배정 정보를 포함한다.
여기서, 코어 정보는 코어에 대한 다양한 정보를 포함하며, 특히 코어의 특성에 따라 각각 정의된 코어 타입을 포함한다.
코어 배정 정보는 쓰레드에 코어를 배정하는 방법을 정의한 정보로써, 쓰레드에 코어 타입이 지정되었는지 여부에 따라 다양하게 정의될 수 있다.
즉, 코어 배정 정보는 쓰레드에 코어 타입이 지정된 경우에는, 각 쓰레드 별로 지정된 코어 타입에 해당하는 코어를 해당 쓰레드에 배정하는 방식으로 정의된다.
그러나, 쓰레드에 코어 타입이 지정되지 않는 경우에는, 쓰레드 별로 각 코어 타입의 코어를 모두 조합하고, 각각의 조합 결과에 따른 성능을 평가한 후에 이들 중 가장 성능이 우수한 최적의 조합으로 정의된다. 이러한 코어 배정 정보는 코어 탐색엔진부(220)에 의해 생성된다.
코어 탐색엔진부(220)는 상기한 바와 같이 쓰레드에 코어 타입이 지정되지 않은 경우, 코어 배정정보 저장부에서 코어 정보를 읽어들여 코어별로 코어 타입을 체크하고, 각 쓰레드에 각 코어 타입의 코어를 다양하게 배정하여 최적의 코어 배정 정보를 생성하고, 생성된 코어 배정 정보를 코어 배정정보 저장부에 기록한다.
즉, 코어 탐색엔진부(220)는 사용자에 의해 코어 타입이 지정되지 않은 경우, 코어배정정보 저장부에서 코어 정보를 읽어들이고, 각 쓰레드 별로 코어를 배정하여 쓰레드 별로 코어 타입 배정에 대해 가능한 모든 조합을 대상으로 하는 전체 탐색 영역을 찾아서 성능을 평가한 후 최적의 코어 배정 정보를 검색한다. 검색 결과 최적의 코어 배정 정보를 생성하면, 이 코어 배정 정보를 코어배정 데이터 저장부(230)에 저장한다.
스케쥴러(240)는 코어배정 데이터 저장부(230)에 저장된 코어 정보와 코어 배정 정보를 이용하여 쓰레드 각각에 코어를 배정한다.
이러한 스케쥴러(240)는 상기한 바와 같이, 각 쓰레드 별로 코어 타입이 지정된 코어 배정 정보가 저장되어 있으면, 이 코어 배정 정보에 따라 각 쓰레드 별로 코어를 배정한다.
그러나, 각 쓰레드 별로 코어 타입이 지정되지 않아 코어 탐색엔진부(220)에 의해 생성된 코어 배정 정보가 저장되어 있으면, 코어 탐색엔진부(220)에 의해 생성된 코어 배정 정보에 따라 각 쓰레드 별로 코어를 배정한다.
바인더부(250)는 스케쥴러(240)의 배정 명령에 따라 쓰레드 각각에 코어를 배정하여 연결시킴으로써, 쓰레드 각각을 해당 쓰레드 각각에 배정된 코어에서 수행하도록 한다.
즉, 본 발명의 일 실시예에 따른 이종 멀티코어 환경에서의 코어 배정 장치는 상기한 바와 같이, 코어 배정 정보를 기반으로 쓰레드 별로 코어를 배정한다.
이 경우, 사용자 등에 의해 쓰레드 별로 코어 타입이 지정되어 있으면, 쓰레드에 지정된 코어 타입에 속하는 코어를 해당 쓰레드에 배정하고, 반면에 쓰레드 별로 코어 타입이 지정되어 있지 않으면, 코어 탐색엔진부(220)에서 쓰레드 별로 코어 배정에 대해 가능한 모든 조합을 대상으로 하는 전체 탐색 영역을 찾아서 성능을 평가한 후에 최적의 코어 배정 정보를 결정하고, 이를 통해 각 쓰레드 별로 코어를 배정하게 된다.
참고로, 본 실시예에서의 이종 멀티코어는 특정 명령어 집합을 구현한 ASIP(Application Specific Instruction-set Processor) 코어를 특성에 따라 한정된 개수의 코어 타입으로 분류하고, 같은 코어 타입의 코어는 특정 작업에 대해 유사한 성능을 발휘하도록 그룹화된 것을 예시로 설명한다.
이하, 쓰레드에 코어 타입이 지정된 경우와 지정되지 않는 경우, 쓰레드에 코어를 할당하는 과정을 더욱 상세하게 설명한다.
도 3 은 본 발명의 일 실시예에 따른 이종 멀티코어 환경에서의 쓰레드에 설정된 코어 타입에 따라 쓰레드에 코어를 배정하는 예를 도시한 도면이고, 도 4 는 도 3 의 쓰레드에 지정된 코어 타입을 사용할 때 조합 가능한 경우의 수를 도시한 도면이다.
참고로, 본 실시예에서는 코어 타입이 코어 타입A(360), 코어 타입B(370), 코어 타입C(380) 및 코어 타입D(390)로 구분되고, 코어 타입A(360)에는 코어 A0, 코어 A1, 코어 A2가 포함되며, 코어 타입B(370)에는 코어 B3가 포함되며, 코어 타입C(380)에는 코어 C4, 코어 C5가 포함되며, 코어 타입D(390)에는 코어 D6, 코어 D7이 포함되는 것을 예시로 설명한다.
아울러, 코어 타입A(360)에 속하는 프로세서 코어인 코어A0(361), 코어A1(362) 그리고 코어A2(363)은 특정 쓰레드 작업에 대해 개별적으로 성능이 약간 차이가 나지만 다른 코어 타입B(370), 코어 타입C(380) 및 코어 타입D(390) 보다는 성능이 뛰어나다.
그러나, 본 발명의 기술적 범위는 상기한 실시예에 한정되는 것은 아니며, 더욱 세분화되고 다양한 코어 타입으로 구분되고, 각 코어 타입에는 다양한 개수의 코어가 포함되는 것을 모두 포함한다할 것이다.
먼저, 쓰레드 별로 코어 타입이 지정된 경우는, 쓰레드의 특성과 코어 타입의 특성을 모두 알고 있는 경우에 사용될 수 있다.
이 경우, 스케쥴러(240)는 코어배정 데이터 저장부(230)에서 코어 배정 정보를 입력받는데, 쓰레드가 생성될 때 해당 코어 타입에 대한 정보도 같이 제공한다.
이 경우, 코어 배정 정보에서, 쓰레드 별로 코어 타입이 지정되어 있기 때문에 스케쥴러(240)는 해당 코어 타입에 속한 코어 종류 중에서 사용 가능한 코어를 배정한다.
따라서, 도 3 에 도시된 바와 같이, 코어를 코어 타입별로 배정할 경우, 쓰레드0(320)에 배정할 코어 타입은 코어 타입A(360)이므로, 코어A0, 코어A1, 코어 A2 중 어느 하나 이상이 가능하다.
이는 나머지 코어 타입B, 코어 타입C 및 코어 타입D에서도 동일하게 적용될 수 있다.
따라서 도 4 에 도시된 바와 같이, 4개의 쓰레드(320,330,340,350)에 코어를 배정하는 방법은 코어 타입A(360)의 3가지, 코어 타입B(370)의 1가지, 코어 타입C(380)의 2가지 그리고 코어 타입D(390)의 2가지가 될 수 있고, 각 경우를 곱하면 총 12가지 경우의 수가 나온다.
이와 같이, 쓰레드에 코어 타입이 지정된 경우에는, 쓰레드에 코어를 배정한 각 조합간에 약간의 성능 차이는 발생될 수 있다. 그러나, 각 코어 타입이 그 성능 별로 구분된 것이므로, 큰 성능 차이가 크게 발생하지는 않게 된다.
다음은 쓰레드에 코어가 지정되는 않은 경우, 쓰레드에 코어를 배정하는 과정을 설명한다.
도 5 는 본 발명의 일 실시예에 따른 자동 탐색 기능을 이용하여 쓰레드에 코어를 배정하는 방법을 도시한 도면이고, 도 6 은 도 5 의 전체 코어 타입에 대해 쓰레드를 배정할 때 조합 가능한 경우의 수를 도시한 도면이다.
사용자가 쓰레드 별로 코어 타입을 지정하지 않는 경우는 코어 검색엔진부(220)를 이용해서 쓰레드 별로 코어타입 지정에 대해 가능한 모든 조합을 대상으로 하는 전체 탐색 영역을 찾아서 성능을 평가한 후에 최적의 코어 배정 정보를 결정한다.
이 경우 도 5 에 도시된 바와 같이, 생성된 쓰레드1(510)은 코어 타입A(550)에서 수행될 수도 있으나, 나머지 코어 타입B(560), 코어 타입C(570), 코어 타입D(580)에서 수행될 수도 있다.
게다가, 쓰레드2(520), 쓰레드3(530), 쓰레드4(540)도 코어 타입A(550)도 코어 타입B(560) 뿐만 아니라, 코어 타입A(550), 코어 타입C(570), 코어 타입D(580) 에서도 수행될 수 있다.
즉, 쓰레드1(510), 쓰레드2(520), 쓰레드3(530) 및 쓰레드4(540)가 모든 코어 타입에 의해 수행될 수 있다.
따라서, 코어 탐색엔진(220)은 가능한 조합을 모두 탐색해서 실제로 가능한 조합 각각에 대한 성능 평가를 통해 최적의 코어 배정 방식을 결정하고, 이 코어 배정 정보를 코어배정 데이터 저장부(230)에 저장한다.
이를 통해, 차후에 프로그램을 수행할 때 쓰레드 별로 최적의 코어에서 수행시킴으로써, 최적의 성능 향상을 이룰 수 있다.
도 6 은 도 5 에 나와 있는 모든 경우에 대한 코어 배정 조합으로 가능한 경우 수는 순열로 4!(4x3x2x1)이므로, 24가지 서로 다른 방법이 존재하게 된다.
이러한 방법은 모든 가능한 조합에 대해 성능 평가를 하기 때문에 가장 최적의 코어 배정 정보를 얻을 수 있다.
상술한 바와 같이 본 발명은 서로 다른 작업처리에 최적화된 ASIP 코어 기반 멀티코어 멀티쓰레드 시스템에서, 코어를 쓰레드에 대응되는 복수 개의 코어 타입으로 구분하고, 쓰레드가 생성될 때 해당 쓰레드에 최적화된 코어 타입의 코어를 배정함으로서 단순히 순차적으로 쓰레드에 코어를 배정하는 방식에 비해 시스템의 성능을 크게 향상시킬 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 정하여져야 할 것이다.
220: 코어 탐색엔진부 230: 코어 배정 데이터 저장부
240: 스케쥴러 250: 바인더부
240: 스케쥴러 250: 바인더부
Claims (1)
- 코어 정보 및 쓰레드에 코어를 지정하는 방식을 정의한 코어 배정 정보를 저장하는 코어배정 데이터 저장부;
상기 코어배정 데이터 저장부에 저장된 상기 코어 정보와 상기 코어 배정 정보를 이용하여 상기 쓰레드 각각에 상기 코어를 배정하는 스케쥴러; 및
상기 스케쥴러의 배정 명령에 따라 상기 쓰레드 별로 상기 코어를 연결시키는 바인더부를 포함하는 이종 멀티코어 환경에서의 코어 배정 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110133947A KR101869325B1 (ko) | 2011-12-13 | 2011-12-13 | 이종 멀티코어 환경에서의 코어 배정 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110133947A KR101869325B1 (ko) | 2011-12-13 | 2011-12-13 | 이종 멀티코어 환경에서의 코어 배정 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130067100A true KR20130067100A (ko) | 2013-06-21 |
KR101869325B1 KR101869325B1 (ko) | 2018-06-21 |
Family
ID=48863083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110133947A KR101869325B1 (ko) | 2011-12-13 | 2011-12-13 | 이종 멀티코어 환경에서의 코어 배정 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101869325B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150075499A (ko) * | 2013-12-26 | 2015-07-06 | 한국전자통신연구원 | 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법 |
US9753771B2 (en) | 2014-09-01 | 2017-09-05 | Samsung Electronics Co., Ltd. | System-on-chip including multi-core processor and thread scheduling method thereof |
KR20170109185A (ko) * | 2016-03-18 | 2017-09-28 | 한국전자통신연구원 | 매니코어 시스템에서 쓰레드를 스케줄링 하는 방법 및 그 장치 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050000487A (ko) * | 2003-06-27 | 2005-01-05 | 가부시끼가이샤 도시바 | 스케줄링 방법 및 실시간 처리시스템 |
KR20070011434A (ko) * | 2004-04-07 | 2007-01-24 | 샌드브리지 테크놀로지스, 인코포레이티드 | 쓰레드 당 다중의 동시적 파이프라인을 갖는 멀티쓰레드프로세서 |
KR20080076392A (ko) * | 2007-02-15 | 2008-08-20 | 고려대학교 산학협력단 | 임베디드 코어에서 멀티 쓰레드 실행을 위해 확장된프로세서 및 임베디드 코어에서 멀티 쓰레드 실행 방법 |
US20090031317A1 (en) * | 2007-07-24 | 2009-01-29 | Microsoft Corporation | Scheduling threads in multi-core systems |
KR20100032399A (ko) * | 2007-05-30 | 2010-03-25 | 엑스모스 엘티디 | 프로세서에서의 쓰레드 스케쥴링 |
KR20100074920A (ko) * | 2008-12-24 | 2010-07-02 | 삼성전자주식회사 | 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법 |
US20110067029A1 (en) * | 2009-09-11 | 2011-03-17 | Andrew Wolfe | Thread shift: allocating threads to cores |
-
2011
- 2011-12-13 KR KR1020110133947A patent/KR101869325B1/ko active IP Right Grant
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050000487A (ko) * | 2003-06-27 | 2005-01-05 | 가부시끼가이샤 도시바 | 스케줄링 방법 및 실시간 처리시스템 |
KR20070011434A (ko) * | 2004-04-07 | 2007-01-24 | 샌드브리지 테크놀로지스, 인코포레이티드 | 쓰레드 당 다중의 동시적 파이프라인을 갖는 멀티쓰레드프로세서 |
KR20080076392A (ko) * | 2007-02-15 | 2008-08-20 | 고려대학교 산학협력단 | 임베디드 코어에서 멀티 쓰레드 실행을 위해 확장된프로세서 및 임베디드 코어에서 멀티 쓰레드 실행 방법 |
KR20100032399A (ko) * | 2007-05-30 | 2010-03-25 | 엑스모스 엘티디 | 프로세서에서의 쓰레드 스케쥴링 |
US20090031317A1 (en) * | 2007-07-24 | 2009-01-29 | Microsoft Corporation | Scheduling threads in multi-core systems |
KR20100074920A (ko) * | 2008-12-24 | 2010-07-02 | 삼성전자주식회사 | 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법 |
US20110067029A1 (en) * | 2009-09-11 | 2011-03-17 | Andrew Wolfe | Thread shift: allocating threads to cores |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150075499A (ko) * | 2013-12-26 | 2015-07-06 | 한국전자통신연구원 | 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법 |
US9753771B2 (en) | 2014-09-01 | 2017-09-05 | Samsung Electronics Co., Ltd. | System-on-chip including multi-core processor and thread scheduling method thereof |
KR20170109185A (ko) * | 2016-03-18 | 2017-09-28 | 한국전자통신연구원 | 매니코어 시스템에서 쓰레드를 스케줄링 하는 방법 및 그 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR101869325B1 (ko) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9047196B2 (en) | Usage aware NUMA process scheduling | |
US8700838B2 (en) | Allocating heaps in NUMA systems | |
EP2176751B1 (en) | Scheduling by growing and shrinking resource allocation | |
US10609129B2 (en) | Method and system for multi-tenant resource distribution | |
Gregg et al. | {Fine-Grained} Resource Sharing for Concurrent {GPGPU} Kernels | |
US8650570B2 (en) | 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 | |
US9563474B2 (en) | Methods for managing threads within an application and devices thereof | |
US8561072B2 (en) | Scheduling collections in a scheduler | |
US20140331235A1 (en) | Resource allocation apparatus and method | |
US20120278811A1 (en) | Stream processing on heterogeneous hardware devices | |
KR101703328B1 (ko) | 이종 멀티 프로세서 환경에서의 데이터 처리 최적화 장치 및 방법 | |
JP2012511204A (ja) | リソースを最適化するためのタスク再編成方法 | |
KR20110075297A (ko) | 병렬도를 고려한 병렬 처리 장치 및 방법 | |
US11347563B2 (en) | Computing system and method for operating computing system | |
KR20150043066A (ko) | 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법 | |
US8352702B2 (en) | Data processing system memory allocation | |
Vaishnav et al. | Heterogeneous resource-elastic scheduling for CPU+ FPGA architectures | |
CN104598304B (zh) | 用于作业执行中的调度的方法和装置 | |
WO2014046885A2 (en) | Concurrency identification for processing of multistage workflows | |
KR101177059B1 (ko) | 병렬 제어 모듈을 동적으로 할당하는 방법 | |
KR101869325B1 (ko) | 이종 멀티코어 환경에서의 코어 배정 장치 | |
US8806180B2 (en) | Task execution and context switching in a scheduler | |
Zahaf et al. | Contention-aware GPU partitioning and task-to-partition allocation for real-time workloads | |
KR102224446B1 (ko) | Gpgpu 스레드 블록 스케줄링 확장 방법 및 장치 | |
US20190310857A1 (en) | Method of Concurrent Instruction Execution and Parallel Work Balancing in Heterogeneous Computer Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right |