KR20170023280A - 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법 - Google Patents

멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법 Download PDF

Info

Publication number
KR20170023280A
KR20170023280A KR1020150116950A KR20150116950A KR20170023280A KR 20170023280 A KR20170023280 A KR 20170023280A KR 1020150116950 A KR1020150116950 A KR 1020150116950A KR 20150116950 A KR20150116950 A KR 20150116950A KR 20170023280 A KR20170023280 A KR 20170023280A
Authority
KR
South Korea
Prior art keywords
importance
task
tasks
core
shared cache
Prior art date
Application number
KR1020150116950A
Other languages
English (en)
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 KR1020150116950A priority Critical patent/KR20170023280A/ko
Priority to US15/210,270 priority patent/US20170052891A1/en
Publication of KR20170023280A publication Critical patent/KR20170023280A/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리에 관한 것이다.
본 발명에 따른 멀티코어 프로세서 시스템은, 복수의 코어들; 공유 캐시; 복수의 태스크 각각에 대한 관리 정책을 결정하는 관리 정책 결정기; 상기 결정된 관리 정책에 기반하여 상기 태스크들을 상기 코어들에 할당하는 스케줄러; 및 상기 결정된 관리 정책에 기반하여 상기 태스크들이 할당된 코어 각각에 대한 상기 공유 캐시 사용 여부를 제어하는 캐시 관리기를 포함한다.

Description

멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법{Multi-core system and Method for managing a shared cache in the same system}
본 발명은 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리에 관한 것이다.
멀티코어 프로세서 시스템은 2개 이상의 코어를 탑재한 시스템이다. 멀티코어 프로세서 시스템은 여러 개의 코어를 탑재하기 때문에 개별 코어보다 낮은 주파수(frequency)에서 작동할 수 있고, 단일(single) 코어에서 소모되는 전력을 여러 코어에 분산시킴으로써 전력 효율성을 높일 수 있다.
통상적으로, 멀티코어 프로세서 시스템은 여러 코어가 공유하는 공유 캐시(shared cache)를 구비한다. 이러한 공유 캐시에서 여러 코어에서 동시에 수행되는 태스크 간의 캐시 자원 경쟁이 발생할 경우에 시스템 전체의 성능 저하를 야기할 수 있다.
특히, 중요도가 다양한 여러 태스크가 혼재하는 혼합 중요도(mixed criticality)를 기반으로 하는 멀티코어 프로세서 시스템에서는 중요도가 높은 태스크의 요구사항(가령, 시간 제약)을 만족하면서도 중요도가 낮은 태스크의 효율성을 유지할 수 있도록 공유 캐시 자원을 효율적으로 관리하는 것이 중요하다.
따라서, 본 발명의 실시예들은 중요도가 상이한 여러 태스크가 혼재하는 혼합 중요도 기반의 멀티코어 환경에서 각 태스크의 요구 사항을 만족시킬 수 있는 장치 및 방법을 제공한다.
본 발명의 일 특징에 따른 멀티코어 시스템은, 복수의 코어들; 공유 캐시; 복수의 태스크 각각에 대한 관리 정책을 결정하는 관리 정책 결정기; 상기 결정된 관리 정책에 기반하여 상기 태스크들을 상기 코어들에 할당하는 스케줄러; 및 상기 결정된 관리 정책에 기반하여 상기 태스크들이 할당된 코어 각각에 대한 상기 공유 캐시 사용 여부를 제어하는 캐시 관리기를 포함한다.
일 실시예에서, 상기 태스크 각각에 대한 관리 정책은 상기 태스크의 중요도에 따라 정해질 수 있다.
일 실시예에서, 태스크의 중요도는 사용자 및 개발자에 의해 정의될 수 있다.
다른 실시예에서, 태스크의 중요도 값이 상기 복수 태스크들의 중요도 평균값 이상인 경우에 상기 태스크는 중요도가 높은 것으로 정해지고 상기 평균값 미만인 경우에 상기 태스크는 중요도가 낮은 것으로 정해질 수 있다.
일 실시예에서, 상기 스케줄러는 중요도가 높은 순서대로 상기 태스크들을 상기 코어들에 할당한다.
상기 스케줄러는 중요도가 높은 태스크를 하나의 코어에 배타적으로 할당하는 한편, 중요도가 낮은 태스크는 중요도 높은 태스크를 할당한 후에 나머지 코어에 할당할 수 있다.
일 실시예에서, 상기 캐시 관리기는 중요도가 높은 태스크가 할당된 코어가 공유 캐시를 사용하지 않도록 제어할 수 있다.
일 실시예에서, 중요도가 높은 태스크가 선정된 시간 제약을 만족시키지 못할 것으로 예측되는 경우에, 상기 캐시 관리기는 상기 태스크가 할당된 코어만이 상기 공유 캐시를 사용하도록 제어할 수 있다.
일 실시예에서, 상기 캐시 관리기는 중요도가 낮은 태스크가 할당된 코어가 공유 캐시를 사용하도록 제어한다.
일 실시예에서, 중요도가 낮은 태스크들간에 공유 캐시 경쟁이 발생한 경우에, 상기 캐시 관리기는 상기 경쟁을 유발하는 태스크의 공유 캐시 사용을 금지시킬 수 있다.
본 발명의 다른 특징에 따라, 복수의 코어 및 공유 캐시를 구비하는 멀티코어 프로세서 시스템에서 상기 공유 캐시를 관리하기 위한 방법이 제공된다. 상기 방법은, 복수의 태스크들의 중요도에 기반하여 상기 태스크들을 상기 복수의 코어에 할당하는 단계; 및 상기 복수의 코어 각각에 할당된 태스크들의 중요도에 따라 상기 코어의 공유 캐시 사용 여부를 제어하는 단계를 포함한다.
본 발명의 실시예에 따르면, 다양한 중요도를 갖는 태스크가 혼재하는 환경에서 멀티코어 프로세서 시스템의 특성(즉, 다수의 코어 자원 및 공유 캐시)을 활용하여 태스크들의 서로 다른 요구 사항을 만족하면서도 시스템의 성능을 향상시키고 자원의 효율성을 증가시킬 수 있는 이점이 있다.
본 발명은 최근에 많이 보급되고 있고 향후 활용도가 높은 멀티코어 환경을 고려한 기술이며 다양한 중요도를 갖는 태스크가 혼재하여 동작하는 모든 시스템에서 활용 가능하다. 또한, 기술의 구현 복잡도가 낮아 실제적인 활용도가 높은 실용적인(practical) 기술이다.
도 1은 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템의 구성을 도시한 블록도이다.
도 2a 내지 2d는 본 발명의 일 실시예에 따라 멀티코어 환경에서 혼합 중요도를 갖는 태스크를 할당하는 예들을 도시한다.
도 3은 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템에서의 공유 캐시 관리 방법을 도시한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
이하에서 설명되는 실시예들은 중요도가 다양한 여러 태스크가 혼재하는 혼합 중요도(mixed criticality)를 기반으로 하는 멀티코어 프로세서 시스템에서 중요도 높은 태스크의 요구사항(가령, 시간 제약)을 만족시키면서도 중요도가 낮은 태스크의 효율성을 유지할 수 있도록 공유 캐시 자원을 관리하는 방안에 관한 것이다. 예를 들면, 바퀴나 엔진 등 안전에 직결되는 부분을 제어하는 중요한 태스크와 차량용 인포테인먼트(infotainment)와 같은 상대적으로 덜 중요한 태스크가 하나의 시스템에 혼재하는 경우에 중요도 높은 태스크는 주어진 시간 안에 정해진 작업을 마쳐야 하는 요구사항이 있는 반면, 중요도가 비교적 낮은 태스크의 경우는 중요도가 높은 태스크에 나쁜 영향을 주지 않으면서도 효율적인 작업 수행이 가능하도록 해야 한다. 기존에는 많은 시스템(예를 들어, 임베디드 시스템, 실시간 시스템, 안전우선 시스템 등)이 중요도가 높은 작업을 주로 수행하는 형태였다. 그러나, 하드웨어 및 소프트웨어의 발전으로 기능과 성능(예를 들어, 자동차의 경우 주행만 하는 형태에서 자동주차, 자율주행, 군집주행, 출동방지 등)이 다양해지고 사용자의 요구 사항 역시 다양해짐에 따라 중요도가 높은 태스크와 낮은 태스크가 하나의 시스템 내에 혼재하는 경우가 많다. 따라서, 이하에서 설명하는 본 발명의 실시예들은 중요도가 상이한 여러 태스크가 혼재하는 혼합 중요도 기반의 멀티코어 환경에서 각 태스크의 요구 사항을 만족하면서도 하드웨어의 효율적인 사용을 가능하게 한다.
도 1은 본 발명의 일실시예에 따른 멀티코어 프로세서 시스템의 구성을 도시한 블록도이다.
도시된 바와 같이, 일 실시예에 따른 멀티코어 프로세서 시스템(100)은, 공유 캐시(110), 복수의 코어들(120), 관리정책 결정기(130), 스케줄러(140) 및 캐시 관리기(150)을 포함할 수 있다.
관리 정책 결정기(130)는 시스템(100)에 의해 수행될 복수의 태스크 각각에 대한 관리 정책을 결정한다.
일 실시예에서, 태스크에 대한 관리 정책은 상기 태스크의 중요도로서 정해질 수 있다. 태스크별 중요도는 "중요하다/중요하지 않다" 처럼 이분법적으로 정의되지 않는다. 예를 들어, 응용 프로그램 작성자가 자신이 작성하는 프로그램에 의해 생성되는 태스크에 따라 중요도를 지정할 수 있다. 태스크들 각각에 대한 중요도가 지정되면, 전체 태스크들에 대한 중요도 평균값이 산출된다. 다음 평균값보다 낮은 중요도 값을 갖는 태스크는 중요도가 낮은 것으로 정해지고, 평균값 이상의 중요도 값을 갖는 태스크는 중요도가 높은 것으로 정해질 수 있다. 이와 같이 정해진 태스크의 중요도에 따라 스케줄러(140)의 코어 할당 및 캐시 관리기(150)의 공유 캐시 관리가 수행될 수 있다.
스케줄러(140)는 관리정책 결정기(130)에 의해 결정된 관리 정책, 즉, 태스크별 중요도에 기반하여 태스크들을 복수 코어들(120)에 할당한다.
일 실시예에서, 스케줄러(140)는 중요도가 높은 순서대로 태스크들을 복수의 코어(120)에 순차적으로 할당할 수 있다. 중요도가 다양한 태스크가 멀티코어 프로세서에서 동시에 수행될 때 중요도가 높은 하나의 태스크는 단일 코어에 배타적으로 할당함으로써 상기 태스크가 해당 코어에서만 전담하여 수행되도록 한다. 중요도가 높은 태스크를 발생시키는 응용 프로그램은 보통 단일 코어(single core)를 가정하여 개발되고 요구사항 제약 등을 고려하여 작성되었기 때문에, 이를 유지하기 위해 다른 태스크와 코어를 공유하지 않도록 한다.
스케줄러(140)는 중요도가 높은 태스크를 코어들(120)에 우선적으로 할당하고 난 이후에 나머지 코어에 중요도가 낮은 태스크를 할당할 수 있다.
도 2a 내지 2d는 본 발명의 일 실시예에 따라 멀티코어 환경에서 혼합 중요도를 갖는 태스크를 할당하는 예들을 도시한다.
도 2a에서, P1 및 P2가 중요도 높은 태스크(즉, 중요도 평균값 이상의 중요도 값을 갖는 태스크)이고, P3이 중요도 낮은 태스크라 가정할 때, P1 및 P2는 코어1 및 코어 2 각각에 할당되고, P3는 나머지 코어 3에 할당될 수 있다.
도 2b에서, P1 및 P2가 중요도 높은 태스크이고, P3, P4 및 P5가 중요도 낮은 태스크라 가정할 때, 태스크의 중요도에 따라 P1 내지 P4가 코어 1 내지 코어 4 각각에 할당되고, 더 이상 빈 코어가 존재하지 않는 경우에 중요도가 낮은 P5는 중요도가 낮은 P4와 코어 4에 함께 할당될 수 있다. 물론, 이는 일 예에 불과한 것으로서, P5 는 P3와 코어 3을 공유할 수도 있다.
도 2c에서, P1 내지 P4가 중요도 높은 태스크이고, P5만이 중요도 낮은 태스크라 할 때, P1 내지 P4가 코어 1 내지 코어 4에 순차적으로 할당된 후에 남는 코어가 없기 때문에 중요도가 낮은 P5는 코어에 할당되지 못하는 경우가 발생할 수 있다. 이 경우, P5는 P1 내지 P4중 어느 하나의 실행이 완료된 후에 비로소 코어에 할당되어 실행될 것이다.
도 2d에서, P1만 중요도 높은 태스크이고, P2 내지 P4이 중요도 낮은 태스크라 할 때, P1은 배타적으로 하나의 코어에 할당하고, P2 내지 P4가 코어 2 내지 코어 4에 할당될 수 있다.
캐시 관리기(150)는 관리정책 결정기(130)에 의해 결정된 관리 정책, 즉, 태스크별 중요도에 기반하여 상기 태스크들이 할당된 각 코어의 공유 캐시(110) 사용 여부를 제어한다.
일 실시예에서, 캐시 관리기(150)는 중요도가 높은 태스크가 할당된 코어가 공유 캐시를 사용하지 않도록 제어한다. 이는 중요도가 높은 태스크(예를 들어, 실시간 태스크)의 시간 제약을 맞추기 위함이며, 중요도가 낮은 태스크와 서로 영향을 받지 않는 것을 보장하기 위함이다. 도 1에 도시되어 있지는 않지만, 공유 캐시는 각 코어 별로 사용 여부를 결정할 수 있거나, 분리하여 할당이 가능하며, 중요도 높은 태스크는 공유 캐시를 사용하지 않고 하위 메모리를 이용할 것이다.
한편, 중요도 높은 태스크의 시간 제약중 선정된 시간 내에 완료되어야 한다는 조건을 만족시키지 못할 상황(즉, 데드라인 미스(deadline miss) 상황)이 발생할 가능성이 예측되는 경우에, 캐시 관리기(150)는 상기 태스크가 할당된 코어만이 공유 캐시(110)를 독점하여 사용할 수 있도록 캐시 설정을 변경할 수 있다.
반면, 캐시 관리기(150)는 중요도가 낮은 태스크들이 할당된 코어는 공유 캐시(110)를 사용하도록 제어할 수 있다. 캐시 자원 경쟁으로 인해 성능이 크게 저하되지 않는 수준에서 캐시 자원을 공유하는 것은 사용 가능한 캐시의 용량이 커짐에 따라 자원 사용 효율성을 높이고 성능을 향상시킬 수 있다.
일 실시예에서, 캐시 관리기(150)는 중요도가 낮은 태스크들간에 공유 캐시 자원 경쟁이 발생한 경우에 상기 경쟁을 유발하는 태스크의 공유 캐시 사용을 금지할 수 있다. 구체적으로, 캐시 관리기(150)는 다음 작업을 수행할 수 있다.
1. 각 태스크 수행시에 공유 캐시에서 발생되는 공유 캐시 미스 비율 (shared cache miss rate)를 측정한다.
2. 특정 태스크의 공유 캐시 미스율이 선정된 임계치(예: 0.9) 이상일 때 그 태스크가 공유 캐시를 사용하지 않도록 한다.
3. 해당 태스크가 공유 캐시를 사용하지 않도록 한 상태에서 일정한 시간 동안 공유 캐시 성능을 측정하고, 공유 캐시의 성능이 떨어지는 경우 해당 태스크가 공유 캐시를 사용하도록 하고, 성능이 좋아지는 경우는 공유 캐시를 사용하지 않도록 하는 방식을 지속적으로 적용할 수 있다.
도 3은 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템에서의 공유 캐시 관리 방법을 도시한 흐름도이다. 이 때, 멀티코어 프로세서 시스템은 복수의 코어들 및 공유 캐시를 탑재하고 있다고 가정한다.
도시된 바와 같이, 단계(S310)에서, 복수의 태스크들 각각의 중요도에 기반하여 태스크들을 복수의 코어에 할당한다.
일 실시예에서, 태스크의 중요도는 사용자 및/또는 개발자가 지정할 수 있다. 대안적으로, 시스템에서 수행될 모든 태스크들의 중요도값 평균을 고려하여 정해질 수 있다. 임의의 태스크에 대해 지정된 중요도 값이 모든 태스크들의 중요도 평균값 이상인 경우에 상기 태스크는 중요도 높은 태스크로 정해지고 그러하지 않은 경우에 중요도 낮은 태스크로 정해질 수 있다.
일 실시예에서, 태스크 중요도가 높은 순서대로 태스크들이 코어에 할당될 수 있다. 이 때, 중요도가 높은 태스크는 하나의 코어에 배타적으로 할당함으로써 다른 태스크와 코어를 공유하지 않도록 한다. 이는 중요도가 높은 태스크의 시간 제약을 맞추기 위함이며, 중요도가 낮은 태스크와 서로 영향을 받지 않는 것을 보장하기 위한 캐시 관리 방식이다.
한편, 중요도가 낮은 태스크는 중요도가 높은 태스크를 할당한 이후에 나머지 코어에 할당될 수 있다.
다음, 단계(S320)에서, 복수의 코어 각각에 할당된 태스크들의 중요도에 따라 상기 코어의 공유 캐시 사용 여부를 제어한다.
일 실시예에서, 중요도 높은 태스크가 할당된 코어는 공유 캐시를 사용하지 않도록 제어할 수 있다.
다른 실시예에서, 중요도 높은 태스크가 선정된 시간 제약을 만족시키지 못할 것으로 예측되는 경우에는 상기 태스크가 할당된 코어만이 공유 캐시를 독점하여 사용할 수 있도록 제어할 수 있다.
한편, 중요도 낮은 태스크가 할당된 코어는 공유 캐시를 사용하도록 제어될 수 있다. 캐시 자원 경쟁으로 인해 성능이 크게 저하되지 않는 수준에서 캐시 자원을 공유하는 것은 사용 가능한 캐시의 용량이 커짐에 따라 자원 사용 효율성을 높이고 성능을 향상시킬 수 있다.
일 실시예에서, 중요도 낮은 태스크들간에 공유 캐시 경쟁이 발생한 경우에 상기 경쟁을 유발하는 태스크의 공유 캐시 사용을 금지시킬 수 있다. 이는 각 태스크 수행시에 태스크들의 공유 캐시 미스율을 측정하고, 공유 캐시 미스율이 선정된 임계치 이상이 되는 태스크를 캐시 자원 경쟁의 주 원인으로 파악하고, 해당 태스크가 더 이상 공유 캐시를 사용하지 못하도록 제어할 수 있다.
해당 태스크가 공유 캐시를 사용하지 않도록 한 상태에서 일정한 시간 동안 공유 캐시 성능을 측정하고, 공유 캐시의 성능이 떨어지는 경우에는 해당 태스크가 공유 캐시를 다시 사용하도록 제어할 수 있다.
본 발명의 전술한 실시예에 따른 장치 및 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (19)

  1. 복수의 코어들;
    공유 캐시;
    복수의 태스크 각각에 대한 관리 정책을 결정하는 관리 정책 결정기;
    상기 결정된 관리 정책에 기반하여 상기 태스크들을 상기 코어들에 할당하는 스케줄러; 및
    상기 결정된 관리 정책에 기반하여 상기 태스크들이 할당된 코어 각각에 대한 상기 공유 캐시 사용 여부를 제어하는 캐시 관리기
    를 포함하는 멀티코어 프로세서 시스템.
  2. 제1항에 있어서, 상기 태스크 각각에 대한 관리 정책은 상기 태스크의 중요도에 따라 정해지는 멀티코어 프로세서 시스템.
  3. 제2항에 있어서, 상기 태스크의 중요도는 상기 태스크의 중요도는 상기 복수 태스크들의 중요도 평균값 이상인 경우에 높은 것으로 정해지고 상기 평균값 미만인 경우에 낮은 것으로 정해지는 멀티코어 프로세서 시스템.
  4. 제1항에 있어서, 상기 스케줄러는 중요도가 높은 순서대로 상기 태스크들을 상기 코어들에 할당하는 멀티코어 프로세서 시스템.
  5. 제1항에 있어서, 상기 스케줄러는 중요도가 높은 태스크를 하나의 코어에 배타적으로 할당하는 멀티코어 프로세서 시스템.
  6. 제1항에 있어서, 상기 스케줄러는 중요도가 높은 태스크를 할당한 후에 나머지 코어에 중요도가 낮은 태스크를 할당하는 멀티코어 프로세서 시스템.
  7. 제1항에 있어서, 상기 캐시 관리기는 중요도가 높은 태스크가 할당된 코어가 공유 캐시를 사용하지 않도록 제어하는 멀티코어 프로세서 시스템.
  8. 제1항에 있어서, 상기 캐시 관리기는, 중요도가 높은 태스크가 선정된 시간 제약을 만족시키지 못할 것으로 예측되는 경우에, 상기 태스크가 할당된 코어만이 상기 공유 캐시를 사용할 수 있도록 제어하는 멀티코어 프로세서 시스템.
  9. 제1항에 있어서, 상기 캐시 관리기는 중요도가 낮은 태스크가 할당된 코어가 공유 캐시를 사용하도록 제어하는 멀티코어 프로세서 시스템.
  10. 제1항에 있어서, 상기 캐시 관리기는, 중요도가 낮은 태스크들간에 공유 캐시 경쟁이 발생한 경우에, 상기 경쟁을 유발하는 태스크의 공유 캐시 사용을 금지하는 멀티코어 프로세서 시스템.
  11. 복수의 코어 및 공유 캐시를 구비하는 멀티코어 프로세서 시스템에서 상기 공유 캐시를 관리하기 위한 방법으로서, 상기 방법은,
    복수의 태스크들의 중요도에 기반하여 상기 태스크들을 상기 복수의 코어에 할당하는 단계; 및
    상기 복수의 코어 각각에 할당된 태스크들의 중요도에 따라 상기 코어의 공유 캐시 사용 여부를 제어하는 단계
    를 포함하는 멀티코어 프로세서 시스템에서의 공유 캐시 관리 방법.
  12. 제11항에 있어서, 상기 태스크의 중요도는 상기 복수 태스크들의 중요도 평균값 이상인 경우에 높은 것으로 정해지고 상기 평균값 미만인 경우에 낮은 것으로 정해지는 멀티코어 프로세서 시스템에서의 공유 캐시 관리 방법.
  13. 제11항에 있어서, 상기 복수의 코어에 할당하는 단계는 중요도가 높은 순서대로 상기 태스크들을 코어에 할당하는 단계를 포함하는 멀티코어 프로세서 시스템에서의 공유 캐시 관리 방법.
  14. 제11항에 있어서, 상기 복수의 코어에 할당하는 단계는 중요도가 높은 태스크를 하나의 코어에 배타적으로 할당하는 단계를 포함하는 멀티코어 프로세서 시스템에서의 공유 캐시 관리 방법.
  15. 제11항에 있어서, 상기 복수의 코어에 할당하는 단계는 중요도가 높은 태스크를 할당한 후에 나머지 코어에 중요도가 낮은 태스크를 할당하는 단계를 포함하는 멀티코어 프로세서 시스템에서의 공유 캐시 관리 방법.
  16. 제11항에 있어서, 상기 코어의 공유 캐시 사용 여부를 제어하는 단계는 중요도 높은 태스크가 할당된 코어가 공유 캐시를 사용하지 않도록 제어하는 단계를 포함하는 멀티코어 프로세서 시스템에서의 공유 캐시 관리 방법.
  17. 제11항에 있어서, 상기 코어의 공유 캐시 사용 여부를 제어하는 단계는 중요도 높은 태스크가 선정된 시간 제약을 만족시키지 못할 것으로 예측되는 경우에 상기 태스크가 할당된 코어만이 공유 캐시를 사용할 수 있도록 제어하는 단계를 포함하는 멀티코어 프로세서 시스템에서의 공유 캐시 관리 방법.
  18. 제11항에 있어서, 상기 코어의 공유 캐시 사용 여부를 제어하는 단계는 중요도 낮은 태스크가 할당된 코어가 공유 캐시를 사용하도록 제어하는 단계를 포함하는 멀티코어 프로세서 시스템에서의 공유 캐시 관리 방법.
  19. 제11항에 있어서, 상기 코어의 공유 캐시 사용 여부를 제어하는 단계는 중요도 낮은 태스크들간에 공유 캐시 경쟁이 발생한 경우에 상기 경쟁을 유발하는 태스크의 공유 캐시 사용을 금지하는 단계를 포함하는 멀티코어 프로세서 시스템에서의 공유 캐시 관리 방법.
KR1020150116950A 2015-08-19 2015-08-19 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법 KR20170023280A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150116950A KR20170023280A (ko) 2015-08-19 2015-08-19 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법
US15/210,270 US20170052891A1 (en) 2015-08-19 2016-07-14 Multi-core processor system and method for managing a shared cache in the multi-core processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150116950A KR20170023280A (ko) 2015-08-19 2015-08-19 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법

Publications (1)

Publication Number Publication Date
KR20170023280A true KR20170023280A (ko) 2017-03-03

Family

ID=58157750

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150116950A KR20170023280A (ko) 2015-08-19 2015-08-19 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법

Country Status (2)

Country Link
US (1) US20170052891A1 (ko)
KR (1) KR20170023280A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113806042A (zh) * 2021-08-25 2021-12-17 北京市遥感信息研究所 一种多核实时嵌入式***的任务调度方法
KR102623397B1 (ko) * 2023-04-07 2024-01-10 메티스엑스 주식회사 매니코어 시스템

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102603299B1 (ko) 2017-12-08 2023-11-17 한국전자통신연구원 그래픽 처리 장치 및 이의 동작 방법
CN109298920B (zh) * 2018-08-28 2021-11-16 西安工业大学 基于准划分思想的混合关键任务调度方法
US11893392B2 (en) 2020-12-01 2024-02-06 Electronics And Telecommunications Research Institute Multi-processor system and method for processing floating point operation thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069308B2 (en) * 2008-02-13 2011-11-29 Honeywell International Inc. Cache pooling for computing systems
EP2801907A4 (en) * 2012-02-01 2014-12-03 Huawei Tech Co Ltd MULTICOVER PROCESSOR SYSTEM
US9471501B2 (en) * 2014-09-26 2016-10-18 Intel Corporation Hardware apparatuses and methods to control access to a multiple bank data cache

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113806042A (zh) * 2021-08-25 2021-12-17 北京市遥感信息研究所 一种多核实时嵌入式***的任务调度方法
CN113806042B (zh) * 2021-08-25 2023-06-16 北京市遥感信息研究所 一种多核实时嵌入式***的任务调度方法
KR102623397B1 (ko) * 2023-04-07 2024-01-10 메티스엑스 주식회사 매니코어 시스템

Also Published As

Publication number Publication date
US20170052891A1 (en) 2017-02-23

Similar Documents

Publication Publication Date Title
US10289183B2 (en) Methods and apparatus to manage jobs that can and cannot be suspended when there is a change in power allocation to a distributed computer system
EP2624135B1 (en) Systems and methods for task grouping on multi-processors
US8458712B2 (en) System and method for multi-level preemption scheduling in high performance processing
KR101953906B1 (ko) 태스크 스케줄링 방법 및 장치
US8793695B2 (en) Information processing device and information processing method
RU2454704C2 (ru) Способ и система для выполнения программных приложений и машиночитаемый носитель
US9465663B2 (en) Allocating resources in a compute farm to increase resource utilization by using a priority-based allocation layer to allocate job slots to projects
KR101622168B1 (ko) 실시간 스케쥴링 방법 및 이를 이용한 중앙처리장치
KR20170023280A (ko) 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법
US8607240B2 (en) Integration of dissimilar job types into an earliest deadline first (EDF) schedule
US20080086734A1 (en) Resource-based scheduler
US8875146B2 (en) Systems and methods for bounding processing times on multiple processing units
WO2016115000A1 (en) Hybrid scheduler and power manager
KR20130033020A (ko) 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법
CN112905342B (zh) 资源调度方法、装置、设备及计算机可读存储介质
US9507633B2 (en) Scheduling method and system
RU2453901C2 (ru) Аппаратно-реализуемый способ планирования заданий (варианты), система планирования заданий и машиночитаемый носитель
JP2017062779A (ja) 環境的に調整されたスラックを割り当てるためのシステム及び方法
US9740530B2 (en) Decreasing the priority of a user based on an allocation ratio
CN113010309B (zh) 集群资源调度方法、装置、存储介质、设备和程序产品
CN114327894A (zh) 资源分配方法、装置、电子设备及存储介质
CN116244073A (zh) 混合关键分区实时操作***的资源感知型任务分配方法
KR101088563B1 (ko) 멀티코어프로세서 제어방법, 멀티코어프로세서 제어장치, 멀티코어프로세서 및 멀티코어프로세서 제어방법이 기록된 기록매체
US20160077882A1 (en) Scheduling system, scheduling method, and recording medium
EP2413240A1 (en) Computer micro-jobs