KR101686010B1 - 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법 - Google Patents

실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법 Download PDF

Info

Publication number
KR101686010B1
KR101686010B1 KR1020100131809A KR20100131809A KR101686010B1 KR 101686010 B1 KR101686010 B1 KR 101686010B1 KR 1020100131809 A KR1020100131809 A KR 1020100131809A KR 20100131809 A KR20100131809 A KR 20100131809A KR 101686010 B1 KR101686010 B1 KR 101686010B1
Authority
KR
South Korea
Prior art keywords
core
scheduling
queue
stored
tasks
Prior art date
Application number
KR1020100131809A
Other languages
English (en)
Other versions
KR20120070303A (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 KR1020100131809A priority Critical patent/KR101686010B1/ko
Priority to US13/297,829 priority patent/US8713573B2/en
Publication of KR20120070303A publication Critical patent/KR20120070303A/ko
Application granted granted Critical
Publication of KR101686010B1 publication Critical patent/KR101686010B1/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc

Abstract

본 발명은 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법에 관한 것으로서, 적어도 하나 이상의 대기 큐(Queue)를 각각 갖는 복수의 코어들, 상기 복수의 코어들 중, 이전 사이클에서 웨이크 업 신호(wake up signal)를 수신한 제1 코어에 대한 정보를 저장하는 저장부, 및 상기 제1 코어에 대한 정보를 참조하여, 상기 적어도 하나 이상의 대기 큐에 저장된 태스크들을 스케쥴링하는 스케쥴링 처리부를 포함한다.

Description

실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법{APPARATUS FOR FAIR SCHEDULING OF SYNCHRONIZATION IN REALTIME MULTI-CORE SYSTEMS AND METHOD OF THE SAME}
본 발명은 스크래치패드 메모리(scratchpad memory)를 갖는 많은 코어들로 이루어진 실시간 멀티코어 시스템에서 코어간 동기화를 위한 스케쥴링 장치 및 방법에 관한 기술을 개시한다.
최근 마이크로프로세서 설계의 가장 두드러진 추세는 멀티코어 프로세서라고 할 수 있다. 듀얼 코어 제품이 등장한 이후 그 추세는 더욱 두드러져 최근에는 멀티코어를 넘어 매니코어(Many-Core) 프로세서의 시대를 열어가고 있다.
이러한 시대적인 배경에 힘입어, 프로세서의 칩 밀도가 높아지고 멀티코어 아키텍쳐가 출현해서, 온 칩 프로세싱 자원이 무어의 법칙을 따르며 증가하고 있다.
오늘날 멀티코어 칩은 10여 개의 코어를 포함하고 있으며, 조만간 수백 개의 코어가 한 칩에 포함되는 시대가 올 것으로 예상된다. 이러한 멀티코어 아키텍쳐의 보편화로 인해, 클러스터로 이루어진 슈퍼 컴퓨터뿐만 아니라 퍼스널 컴퓨터, 심지어는 임베디드 시스템에서도 병렬 처리가 널리 사용되고 있다.
최근 프로세서 주파수의 물리적인 한계에 다가가면서 문제의식이 높아지고, 컴퓨터 이용에서 발열과 전력소모에 대한 관심이 높아짐에 따라, 멀티 코어 프로세서 구조가 강력한 패러다임으로 주목 받는다.
이러한 멀티 코어 아키텍쳐의 보편화로, 클러스터로 이루어진 슈퍼 컴퓨터뿐만 아니라 퍼스널 컴퓨터 심지어는 임베디드 시스템에서도 병렬 처리가 널리 사용되고 있다.
병렬 프로그램에서는 하위 작업들을 조율하며 작업을 끝내기 위해서 동기화 작업이 빈번히 일어난다. 동기화란 작업들 사이의 수행 시기를 맞추는 것으로 사건이 동시에 일어나거나, 일정한 간격을 두고 일어나도록 시간의 간격을 조정하는 것을 의미한다. 동기화 작업은 병렬 처리를 하기 위해 추가되는 비용으로, 이를 효율적으로 수행할 수 있어야 최적의 성능을 낼 수 있다.
코어간 메모리를 공유하는 공유 메모리(shared memory) 구조의 컴퓨터에서는 각 코어의 캐쉬(cache)의 데이터의 일관성을 유지하기 위해서 캐쉬 코히어런시 시스템(cache coherency system)이 필요하다. 그런데, 프로세서의 수가 증가함에 따라 이러한 캐쉬 코히어런시 시스템을 만드는 것이 어렵다.
결과적으로 공유 메모리 구조의 컴퓨터는 분할 메모리(distributed memory) 구조보다 확장성(scalability)이 떨어진다. 한편 실시간 시스템에서는 캐쉬를 사용하면 실시간을 보장하기 어렵다.
따라서, 최근 캐쉬를 사용하지 않고, 스크래치패드 메모리를 사용하는 멀티 코어 시스템이 증가하고 있다. 이러한 로컬 메모리를 가지고 있는 시스템에서는 코어간 태스크의 이동에 많은 비용이 들기 때문에, 태스크 이동을 최소화하고 효율적인 스케쥴링을 통해 코어간 부하를 밸런싱(balancing)하는 것이 중요하다.
본 발명의 일실시예에 따른 실시간 멀티코어 시스템의 동기화 스케쥴링 장치는 적어도 하나 이상의 대기 큐(Queue)를 각각 갖는 복수의 코어들, 상기 복수의 코어들 중, 이전 사이클에서 웨이크 업 신호(wake up signal)를 수신한 제1 코어에 대한 정보를 저장하는 저장부, 및 상기 제1 코어에 대한 정보를 참조하여, 상기 적어도 하나 이상의 대기 큐에 저장된 태스크들을 스케쥴링하는 스케쥴링 처리부를 포함할 수 있다.
본 발명의 일실시예에 따른 실시간 멀티코어 시스템의 동기화 스케쥴링 방법은 적어도 하나 이상의 대기 큐(Queue)를 각각 갖는 복수의 코어들을 유지하는 단계, 상기 복수의 코어들 중, 이전 사이클에서 웨이크 업 신호(wake up signal)를 수신한 제1 코어에 대한 정보를 저장하는 단계, 및 상기 제1 코어에 대한 정보를 참조하여, 상기 적어도 하나 이상의 대기 큐에 저장된 태스크들을 스케쥴링하는 단계를 포함하고, 상기 스케쥴링하는 단계는 상기 적어도 하나 이상의 대기 큐에 저장된 태스크들의 우선 순위에 기초하여 스케쥴링하는 단계를 포함할 수 있다.
도 1은 본 발명의 일실시예에 따른 동기화 스케쥴링 장치를 설명하는 블록도이다.
도 2는 본 발명의 일실시예에 따른 코어들 간에 태스크를 처리하는 동작을 설명하는 도면이다.
도 3은 이전 사이클에서 웨이크 업 신호(wake up signal)를 수신한 코어를 고려하여 코어들 간에 태스크를 처리하는 동작을 설명하는 도면이다.
도 4는 본 발명의 일실시예에 따른 동기화 스케쥴링 방법을 설명하는 블록도이다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 동기화 스케쥴링 장치(100)를 설명하는 블록도이다.
본 발명의 일실시예에 따른 동기화 스케쥴링 장치(100)는 복수의 코어들(111, 112, 113, 114), 저장부(120), 및 스케쥴링 처리부(130)를 포함할 수 있다.
복수의 코어들(111, 112, 113, 114)은 적어도 하나 이상의 대기 큐(Queue)를 각각 갖는다.
복수의 코어들(111, 112, 113, 114)은 병렬 프로그램을 구현하기 위한 것으로서, 각각의 코어들이 하위 작업들을 처리하기 위해서 동기화하여 동작할 수 있다. 즉, 복수의 코어들(111, 112, 113, 114)은 동기화를 통해 작업들 사이의 수행 시기를 조절하여 병렬 처리를 수행할 수 있다.
저장부(120)는 상기 복수의 코어들 중, 이전 사이클에서 웨이크 업 신호(wake up signal)를 수신한 제1 코어에 대한 정보를 저장할 수 있다.
본 명세서에서 사용되는 웨이크 업 신호는 특정 사이클에서 선정된 기준, 예를 들어 우선순위에 따라서 스케쥴링된 태스크를 처리할 코어를 활성화 상태로 변경하기 위한 신호로 해석될 수 있다.
저장부(120)는 특정 태스크를 갖고 있는 제1 코어가 이전 사이클에서 웨이크 업 신호를 수신하여 상기 특정 태스크를 처리한 경우, 상기 제1 코어에 대한 정보를 저장한다.
상기 제1 코어에 대한 정보는, 상기 제1 코어를 고유 식별할 수 있는 정보 중에서 어떠한 정보도 사용될 수 있다.
본 발명의 일실시예에 따른 스케쥴링 처리부(130)는 상기 제1 코어에 대한 정보를 참조하여, 상기 적어도 하나 이상의 대기 큐에 저장된 태스크들을 스케쥴링할 수 있다.
구체적으로, 본 발명의 일실시예에 따른 스케쥴링 처리부(130)는 이전 사이클에서 웨이크 업 되었던, 제1 코어를 마지막에 확인할 수 있다.
다시 말해, 본 발명의 일실시예에 따른 스케쥴링 처리부(130)는 제2 코어의 대기 큐를 시작으로 하여 상기 제1 코어의 대기 큐를 마지막으로, 상기 저장된 태스크들의 우선 순위를 확인하여 웨이크 업 신호를 할당할 코어가 결정되도록 스케쥴링 할 수 있다.
보다 구체적으로 설명하면, 코어0(111)이 이전 사이클에서 웨이크 업 신호를 수신하여 태스크를 처리하였다면, 저장부(120)에는 코어0(111)에 대한 정보가 저장되어 있다.
스케쥴링 처리부(130)는 저장부(120)에서 코어0(111)에 대한 정보를 확인하고, 코어1(112)을 시작으로 하여, 코어2(113), 코어3(114), 및 코어0(111)의 대기 큐를 순차적으로 확인할 수 있다. 대기 큐를 확인하는 도중에 스케쥴링이 필요한 태스크가 결정되면, 상기 결정된 태스크에 대응하는 코어에 웨이크 업 신호를 제공할 수 있다.
이전에 스케쥴링되었던 코어를 마지막으로 확인함으로써, 복수의 코어들(111, 112, 113, 114)의 하위 작업들 사이의 수행 시기를 적절하게 조절하여, 로컬 메모리를 가지고 있는 시스템에서 효율적인 병렬 처리가 가능하며, 태스크의 이동에 따른 비용을 줄일 수 있다.
본 발명의 일실시예에 따른 스케쥴링 처리부(130)는 상기 적어도 하나 이상의 대기 큐에 저장된 태스크들의 우선순위를 고려하여 스케쥴링 할 수 있다. 뿐만 아니라, 본 발명의 일실시예에 따른 스케쥴링 처리부(130)는 우선 순위 이외에 태스크의 작업시간 등 고려하는 등, 선점 스케쥴링 또는 비선점 스케쥴링의 다양한 스케쥴링 기법을 적용할 수 있다.
예를 들어, 본 발명의 일실시예에 따른 스케쥴링 처리부(130)는 RR(Round Robin) 스케쥴링, SRT(Shortest Remaing Time) 스케쥴링, MFQ(Multilevel Feedback Queue) 스케쥴링, FIFO(First In First Out) 스케쥴링, SJF(Shortest Job First) 스케쥴링, 기한부(Deadline) 스케쥴링, 및 HRN(Highest Response Ratio Next) 스케쥴링 등을 이용하여, 적어도 하나 이상의 대기 큐에 저장된 태스크들을 스케쥴링할 수 있다.
결국, 본 발명의 일실시예에 따른 동기화 스케쥴링 장치(100)를 사용하면, 스크래치 패드 메모리(scratchpad memory)를 갖는 복수의 코어로 이루어진 시스템에서 병렬 응용 프로그램의 성능을 높은 수준으로 유지하기 위해, 동기화 작업을 효율적으로 수행할 수 있다.
도 2는 본 발명의 일실시예에 따른 코어들 간에 태스크를 처리하는 동작을 설명하는 도면이다.
도 2는 본 발명의 일실시예에 따른 동기화 스케쥴링 장치에 적용 가능한 대기 큐의 예시이다.
멀티 코어 시스템에서는 각 코어마다 대기 큐를 가질 수 있다.
즉, 도 2의 코어0(210)은 T0(211), T1(212), 및 T2(213)의 대기 큐를 가질 수 있고, 코어1(220)은 T3(221)의 대기 큐를 가질 수 있으며, 코어2(230)는 0개의 대기 큐를 가질 수 있고, 코어3(240)은 T4(241) 및 T5(242)의 대기 큐를 가질 수 있다.
각각의 대기 큐는 우선 순위를 가질 수 있는데, T0(211)는 우선 순위 9, T1(212)는 우선 순위 7, T2(213)는 우선 순위 3, T3(221)는 우선 순위 9, T4(241)는 우선 순위 7, 및 T5(242)는 우선 순위 3을 가질 수 있다.
이 때, 단순히 우선 순위 기반으로만 깨울 프로세스를 선택하게 되면 성능상 문제가 발생할 수 있다. 즉, 멀티 코어에서는 동일한 우선순위를 갖는 프로세스가 여러 코어에 분산되어서 대기할 수 있고, 이럴 경우 각 코어에 적절히 분산해서 웨이크 업 신호를 주지 않는다면, 기아(starvation)가 발생할 수 있어 해당 코어가 작업을 수행하지 못하는 문제가 야기될 수 있다.
이러한 문제를 해소하기 위해, 본 발명의 일실시예에 따른 동기화 스케쥴링 장치는 이전에 웨이크 업 시켰던 코어(코어1, 220)의 다음 코어(코어2, 230)부터 대기 큐를 검색하기 시작할 수 있다.
따라서, 이전에 웨이크 업 시켰던 코어(코어1, 220)의 대기 큐를 제일 마지막에 검색하며 웨이크 업 시킬 프로세스를 찾을 수 있다.
본 발명의 일실시예에 따른 동기화 스케쥴링 장치는 상기 코어0(310)의 대기 큐에 저장된 태스크와 코어1(320)의 대기 큐에 저장된 태스크의 우선 순위가, '9'로 동일하고, 확인된 우선 순위 중에서 가장 높은 우선 순위를 갖는 경우, 먼저 확인된 코어0(310)에 웨이크 업 신호를 제공할 수 있다.
즉, 도 1의 스케쥴링 처리부는 상기 제2 코어의 대기 큐에서부터 상기 제1 코어의 대기 큐를 순차적으로 확인하고, 동일한 우선 순위를 갖는 태스크들 중에서 가장 먼저 확인된 태스크를 스케쥴링할 수 있다.
도면 3에서는 이전에 웨이크 업 신호를 줬던 코어가 코어 1이었기 때문에 코어 2, 코어 3, 코어 0, 코어 1 순으로 대기 큐를 조사하게 된다. 이 과정에서 코어 0의 대기 큐에 있던 프로세스 T0의 우선 순위가 9로 가장 높기 때문에 T0가 동기화 신호를 받아 웨이크 업 될 수 있다.
이 과정에서 코어0의 대기 큐가 변경된다. 즉, 처리한 태스크 대신에 대기 큐에는 다음 처리할 태스크가 위치할 수 있다. 또한, 저장부에 저장될 정보는 현재 웨이크 업 신호를 수신한 코어0에 대한 정보로 갱신될 수 있다.
코어0의 대기 큐 변경 및 저장부의 업데이트는 도 3을 통해서 구체적으로 설명한다.
도 3은 이전 사이클에서 웨이크 업 신호(wake up signal)를 수신한 코어를 고려하여 코어들 간에 태스크를 처리하는 동작을 설명하는 도면이다.
도 2와 마찬가지로, 본 발명의 일실시예에 따른 동기화 스케쥴링 장치는 복수의 코어들(310, 320, 330, 340)을 통해서 병렬 처리를 수행할 수 있다. 스케쥴링 장치는 복수의 코어들(310, 320, 330, 340)의 웨이크 업을 중재하여 동기화 처리를 진행하도록 제어할 수 있다.
이를 위해, 상기 스케쥴링 장치는, 이전에 웨이크 업 되었던 코어1 이후에 코어2(330), 코어3(340), 및 코어0(310)의 순서로 각각의 코어에 할당된 태스크의 우선 순위를 확인할 수 있다.
확인 결과, 코어0(310)에 할당된 태스크 T0의 우선 순위가 9로 가장 높기 때문에, 본 발명의 일실시예에 따른 동기화 스케쥴링 장치는 상기 T0을 처리하도록 스케쥴링할 수 있다. 이를 위해, 본 발명의 일실시예에 따른 동기화 스케쥴링 장치는 상기 T0를 갖는 코어0(310)에 웨이크 업 신호를 제공하여 상기 T0를 처리할 수 있다.
이에, 본 발명의 일실시예에 따른 동기화 스케쥴링 장치는 현재 웨이크 업 신호를 제공한 코어0에 대한 정보를 저장부(350)에 저장할 수 있다.
즉, 저장부(350)는 이전에 웨이크 업 되었던 정보(코어1) 대신에 현재 웨이크 업 신호를 수신한 코어0(310)에 대응하는 정보(코어0)를 업데이트할 수 있다.
도 4는 본 발명의 일실시예에 따른 동기화 스케쥴링 방법을 설명하는 블록도이다.
본 발명의 일실시예에 따른 동기화 스케쥴링 방법은 적어도 하나 이상의 대기 큐(Queue)를 각각 갖는 복수의 코어들을 유지할 수 있다(단계 401).
본 발명의 일실시예에 따른 동기화 스케쥴링 방법은 복수의 코어들을 통해서 병렬 처리를 수행할 수 있다.
다음으로, 본 발명의 일실시예에 따른 동기화 스케쥴링 방법은 상기 복수의 코어들 중, 이전 사이클에서 웨이크 업 신호(wake up signal)를 수신한 제1 코어에 대한 정보를 저장할 수 있다(단계 402).
본 발명의 일실시예에 따른 동기화 스케쥴링 방법은 상기 제1 코어에 대한 정보를 참조하여, 상기 적어도 하나 이상의 대기 큐에 저장된 태스크들을 스케쥴링할 수 있다(단계 403).
이때, 본 발명의 일실시예에 따른 동기화 스케쥴링 방법은 상기 적어도 하나 이상의 대기 큐에 저장된 태스크들의 우선 순위에 기초하여 스케쥴링할 수 있다.
구체적으로, 본 발명의 일실시예에 따른 동기화 스케쥴링 방법은 제2 코어의 대기 큐를 시작으로 하여 상기 제1 코어의 대기 큐를 마지막으로, 상기 저장된 태스크들의 우선 순위를 확인할 수 있다. 이에, 본 발명의 일실시예에 따른 동기화 스케쥴링 방법은 상기 제1 코어의 대기 큐에 저장된 태스크와 다른 코어의 대기 큐에 저장된 태스크의 우선 순위가, 서로 동일하고, 확인된 우선 순위 중에서 가장 높은 우선 순위를 갖는 경우, 상기 다른 코어의 대기 큐에 저장된 태스크를 스케쥴링할 수 있다.
따라서, 본 발명의 일실시예에 따른 실시간 멀티코어 시스템의 동기화 스케쥴링 장치를 이용하면, 멀티 코어의 동기화 시 동일한 우선순위를 갖는 프로세스가 여러 코어에 분산되어서 대기하여 발생하는 기아(starvation)를 예방할 수 있다. 따라서, 특정 코어가 작업을 수행하지 못하여 코어의 성능이 저하되는 문제를 해소할 수 있다.
본 발명의 일실시예에 따른 실시간 멀티코어 시스템의 동기화 스케쥴링 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 동기화 스케쥴링 장치 111: 코어0
112: 코어1 113: 코어2
114: 코어3 120: 저장부
130: 스케쥴링 처리부

Claims (9)

  1. 적어도 하나 이상의 대기 큐(Queue)를 각각 갖는 복수의 코어들;
    상기 복수의 코어들 중, 이전 사이클에서 웨이크 업 신호(wake up signal)를 수신한 제1 코어에 대한 정보를 저장하는 저장부; 및
    상기 적어도 하나 이상의 대기 큐에 저장된 태스크들을 스케쥴링하는 스케쥴링 처리부
    를 포함하고,
    상기 스케쥴링 처리부는, 상기 제1 코어에 대한 정보에 응답하여 상기 제1 코어의 대기 큐를 마지막으로 스케쥴링 되는 순서로 상기 적어도 하나 이상의 대기 큐에 저장된 태스크들을 스케쥴링하고,
    상기 적어도 하나 이상의 대기 큐에 저장된 태스크들의 우선 순위에 기초하여 스케쥴링하고,
    제2 코어의 대기 큐를 시작으로 하여 상기 제1 코어의 대기 큐를 마지막으로, 상기 저장된 태스크들의 우선 순위를 확인하고,
    상기 제1 코어의 대기 큐에 저장된 태스크와 다른 코어의 대기 큐에 저장된 태스크의 우선 순위가, 서로 동일하고, 확인된 우선 순위 중에서 가장 높은 우선 순위를 갖는 경우, 상기 다른 코어의 대기 큐에 저장된 태스크를 스케쥴링하는
    실시간 멀티코어 시스템의 동기화 스케쥴링 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 스케쥴링 처리부는,
    상기 제2 코어의 대기 큐에서부터 상기 제1 코어의 대기 큐를 순차적으로 확인하고, 동일한 우선 순위를 갖는 태스크들 중에서 가장 먼저 확인된 태스크를 스케쥴링하는 실시간 멀티코어 시스템의 동기화 스케쥴링 장치.
  6. 제1항에 있어서,
    상기 스케쥴링 처리부는,
    상기 적어도 하나 이상의 대기 큐에 저장된 태스크들 중에서 현재 스케쥴링된 태스크에 대응하는 코어에 대한 정보를 상기 저장부에 업데이트하는 실시간 멀티코어 시스템의 동기화 스케쥴링 장치.
  7. 적어도 하나 이상의 대기 큐(Queue)를 각각 갖는 복수의 코어들을 유지하는 단계;
    상기 복수의 코어들 중, 이전 사이클에서 웨이크 업 신호(wake up signal)를 수신한 제1 코어에 대한 정보를 저장하는 단계; 및
    상기 적어도 하나 이상의 대기 큐에 저장된 태스크들을 스케쥴링하는 단계
    를 포함하고,
    상기 스케쥴링하는 단계는,
    상기 적어도 하나 이상의 대기 큐에 저장된 태스크들의 우선 순위에 기초하여 스케쥴링하는 단계
    를 포함하고,
    상기 우선 순위에 기초하여 스케쥴링하는 단계는,
    상기 제1 코어에 대한 정보에 응답하여 상기 제1 코어의 대기 큐를 마지막으로 스케쥴링 되는 순서로 상기 적어도 하나 이상의 대기 큐에 저장된 태스크들을 스케쥴링하는 단계;
    제2 코어의 대기 큐를 시작으로 하여 상기 제1 코어의 대기 큐를 마지막으로, 상기 저장된 태스크들의 우선 순위를 확인하는 단계; 및
    상기 제1 코어의 대기 큐에 저장된 태스크와 다른 코어의 대기 큐에 저장된 태스크의 우선 순위가, 서로 동일하고, 확인된 우선 순위 중에서 가장 높은 우선 순위를 갖는 경우, 상기 다른 코어의 대기 큐에 저장된 태스크를 스케쥴링하는 단계
    를 더 포함하는
    는 실시간 멀티코어 시스템의 동기화 스케쥴링 방법.
  8. 삭제
  9. 제7항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020100131809A 2010-12-21 2010-12-21 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법 KR101686010B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100131809A KR101686010B1 (ko) 2010-12-21 2010-12-21 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법
US13/297,829 US8713573B2 (en) 2010-12-21 2011-11-16 Synchronization scheduling apparatus and method in real-time multi-core system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100131809A KR101686010B1 (ko) 2010-12-21 2010-12-21 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120070303A KR20120070303A (ko) 2012-06-29
KR101686010B1 true KR101686010B1 (ko) 2016-12-13

Family

ID=46236256

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100131809A KR101686010B1 (ko) 2010-12-21 2010-12-21 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법

Country Status (2)

Country Link
US (1) US8713573B2 (ko)
KR (1) KR101686010B1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101330609B1 (ko) * 2012-04-03 2013-11-18 주식회사 알투소프트 모바일 멀티코어 가상화 시스템에서 실시간 처리를 보장하기 위한 스케쥴링 방법
KR101915198B1 (ko) * 2012-08-10 2018-11-05 한화테크윈 주식회사 프로세서간 메시지처리장치 및 방법
RU2538920C2 (ru) * 2013-05-06 2015-01-10 Общество с ограниченной ответственностью "Аби ИнфоПоиск" Способ распределения задач сервером вычислительной системы, машиночитаемый носитель информации и система для реализации способа
US9465432B2 (en) * 2013-08-28 2016-10-11 Via Technologies, Inc. Multi-core synchronization mechanism
US9858115B2 (en) * 2013-10-30 2018-01-02 Mediatek Inc. Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
CN103885826B (zh) * 2014-03-11 2017-04-12 武汉科技大学 一种多核嵌入式系统实时任务调度实现方法
CN105117281B (zh) * 2015-08-24 2019-01-15 哈尔滨工程大学 一种基于任务申请信号和处理器内核执行代价值的任务调度方法
CN108093002B (zh) * 2016-11-21 2020-09-25 腾讯科技(深圳)有限公司 基于数据状态确定的待同步信息的同步方法及装置
CN109144682A (zh) 2017-06-27 2019-01-04 阿里巴巴集团控股有限公司 任务的优先级处理方法和处理装置
CN109522101B (zh) * 2017-09-20 2023-11-14 三星电子株式会社 用于调度多个操作系统任务的方法、系统和/或装置
CN110413210B (zh) * 2018-04-28 2023-05-30 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和计算机程序产品
KR102287318B1 (ko) * 2019-11-15 2021-08-09 현대자동차주식회사 오토사 기반 러너블 동기화 장치 및 그 방법
CN111488318A (zh) * 2020-04-16 2020-08-04 北京雷石天地电子技术有限公司 一种基于多级反馈队列的文件同步方法和装置
CN111488317A (zh) * 2020-04-16 2020-08-04 北京雷石天地电子技术有限公司 一种基于文件变化内容的文件同步方法和装置
CN113254179B (zh) * 2021-06-03 2022-03-01 核工业理化工程研究院 基于高响应比的作业调度方法、系统、终端、存储介质
TWI815140B (zh) * 2021-07-05 2023-09-11 廣達電腦股份有限公司 流程操作系統及流程操作方法
CN116244050B (zh) * 2023-02-07 2024-01-26 四川大学 一种基于高响应比的气动特性算例调度方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090031317A1 (en) * 2007-07-24 2009-01-29 Microsoft Corporation Scheduling threads in multi-core systems

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5895493A (en) 1997-06-30 1999-04-20 Lsi Logic Corporation Method and apparatus for storage of multiple host storage management information on a storage subsystem
US6574725B1 (en) 1999-11-01 2003-06-03 Advanced Micro Devices, Inc. Method and mechanism for speculatively executing threads of instructions
US7412560B2 (en) 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7539902B2 (en) 2006-10-19 2009-05-26 Sun Microsystems, Inc. Application level testing of instruction caches in multi-processor/multi-core systems
US8156275B2 (en) * 2009-05-13 2012-04-10 Apple Inc. Power managed lock optimization
US8276142B2 (en) * 2009-10-09 2012-09-25 Intel Corporation Hardware support for thread scheduling on multi-core processors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090031317A1 (en) * 2007-07-24 2009-01-29 Microsoft Corporation Scheduling threads in multi-core systems

Also Published As

Publication number Publication date
US8713573B2 (en) 2014-04-29
KR20120070303A (ko) 2012-06-29
US20120159501A1 (en) 2012-06-21

Similar Documents

Publication Publication Date Title
KR101686010B1 (ko) 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법
US8914805B2 (en) Rescheduling workload in a hybrid computing environment
US8739171B2 (en) High-throughput-computing in a hybrid computing environment
Herman et al. RTOS support for multicore mixed-criticality systems
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
US8423799B2 (en) Managing accelerators of a computing environment
US8327363B2 (en) Application compatibility in multi-core systems
US8402466B2 (en) Practical contention-free distributed weighted fair-share scheduler
US9448864B2 (en) Method and apparatus for processing message between processors
KR101626378B1 (ko) 병렬도를 고려한 병렬 처리 장치 및 방법
US20150058858A1 (en) Dynamic task prioritization for in-memory databases
CN102096603B (zh) MapReduce系统中的作业分解控制方法及设备
US20150121387A1 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium
CN109766180B (zh) 负载均衡方法和装置、存储介质、计算设备及计算系统
US10402223B1 (en) Scheduling hardware resources for offloading functions in a heterogeneous computing system
US9104500B1 (en) Lock-free job scheduler for multi-processor systems
US20120284720A1 (en) Hardware assisted scheduling in computer system
US9507633B2 (en) Scheduling method and system
Kim et al. A server-based approach for predictable GPU access control
CN103927225A (zh) 一种多核心架构的互联网信息处理优化方法
US7653906B2 (en) Apparatus and method for reducing power consumption on simultaneous multi-threading systems
JP2010128664A (ja) マルチプロセッサシステム、競合回避プログラム及び競合回避方法
US8539491B1 (en) Thread scheduling in chip multithreading processors
US7603673B2 (en) Method and system for reducing context switch times
Pang et al. Efficient CUDA stream management for multi-DNN real-time inference on embedded GPUs

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant