KR101356033B1 - 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법 - Google Patents

하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법 Download PDF

Info

Publication number
KR101356033B1
KR101356033B1 KR1020110136006A KR20110136006A KR101356033B1 KR 101356033 B1 KR101356033 B1 KR 101356033B1 KR 1020110136006 A KR1020110136006 A KR 1020110136006A KR 20110136006 A KR20110136006 A KR 20110136006A KR 101356033 B1 KR101356033 B1 KR 101356033B1
Authority
KR
South Korea
Prior art keywords
task
memory
tasks
subsequently executed
bandwidth
Prior art date
Application number
KR1020110136006A
Other languages
English (en)
Other versions
KR20130068685A (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 KR1020110136006A priority Critical patent/KR101356033B1/ko
Publication of KR20130068685A publication Critical patent/KR20130068685A/ko
Application granted granted Critical
Publication of KR101356033B1 publication Critical patent/KR101356033B1/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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory

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 (AREA)

Abstract

본 발명의 하이브리드 주메모리 시스템은 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리를 포함하는 주메모리, 그리고 매니코어 프로세서를 구비하는 하이브리드 주메모리 시스템에 있어서, 각 태스크에 대해서 상기 제1메모리 및 상기 제2메모리에 대한 메모리 접근 정보를 수집하는 성능 모니터링 유닛; 및 상기 메모리 접근 정보를 이용하여 후속하여 실행될 태스크를 선택하는 태스크 스케줄러를 포함하며, 상기 메모리 접근 정보는 메모리 접근 요청의 대상 메모리, 빈도수 및 소스 코어, 그리고 메모리 접근 타입 중 적어도 어느 하나를 포함한다.

Description

하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법 {Hybrid Main Memory System and Task Scheduling Method therefor}
본 발명은 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법에 관한 것이다.
다수의 코어(core)를 단일 칩에 집적하는 매니코어(many core) 시스템 환경에서는 다수의 코어가 동시에 태스크(task)를 수행하도록 함으로써 컴퓨터의 성능을 높이도록 한다. 따라서 필요한 메모리의 양 또한 크게 증가하게 된다. 이는 시스템의 성능 요구 사항이 증가할수록 메모리 요구량 또한 증가함을 의미한다. 하지만, 사용 메모리의 양이 증가할수록 메모리가 사용하는 전력양이 증가하게 되고 이는 메모리의 양을 늘리는데 걸림돌이 되고 있다.
동시에 사용되어야 하는 메모리 양, 즉 작업세트(working set)가 증가함에 따른 메모리 크기 증가는 전력 문제, 메모리 양 자체의 스케일링(scaling) 문제, 또는 비용 문제등으로 인해 DRAM(Dynamic Random Access Memory)만으로는 해결하기가 어렵다.
이를 해결하기 위해 DRAM의 대체제로서 NVRAM(Non-Volatile Random Access Memory)가 주목받고 있다. 하지만, NVRAM으로의 접근 속도가 DRAM에 비해서 느릴 뿐만 아니라, NVRAM에 대한 읽기(read) 및 쓰기(write) 속도가 다르기 때문에 DRAM과 NVRAM을 혼용함으로써 상기 문제들을 해결하려는 노력이 이루어지고 있다.
매니코어 시스템으로서, DRAM 및 NVRAM을 주 메모리(main memory)로 사용하는 하이브리드 주 메모리 시스템(hybrid main memory system)에서 운용되는 운영체제의 경우, 동일 시스템에서 수행되는 각 태스크들의 특성 및 사용 데이터의 접근 특성을 탐지 및/또는 분석하여 해당 데이터들의 위치를 결정하는 정책(policy)이 메모리 서브시스템에서 함께 동작하게 된다.
이때, 동일한 종류의 메모리를 사용하는 태스크들이 동시에 서로 다른 코어에 할당되어 수행될 경우 동일한 종류의 메모리를 동시에 접근하게 되므로 충돌(contention)이 발생하게 된다. 또한, 메모리 접근 요청이 상대적으로 작은 태스크가 메모리 접근 요청이 상대적으로 많은 태스크에 의해서 처리가 늦어질 수 있으며 이에 따라 불필요한 메모리 스톨(memory stall)에 의해 메모리 접근 요청이 상대적으로 작은 경우에도 태스크의 실행 속도가 늦어질 수 있다. 이는 NVRAM에 대해서 쓰기 요청이 많아질수록 심화 될 수 있다.
따라서, 매니코어 시스템으로서 서로 다른 접근 속도를 갖는 하이브리드 주 메모리 시스템에서 메모리 접근 시간을 감소시켜 실행 시간을 줄일 수 있는 기술에 대한 필요성이 커지고 있다.
한국공개공보 제10-2007-0037427호 (2007.04.04)
본 발명은 종래의 필요성을 충족시키기 위해 안출된 것으로써, 동시에 실행되는 다수의 태스크에 대한 스케줄링을 통해 동일 메모리로의 접속 요청이 분산될 수 있도록 함으로써 메모리 스톨 시간을 감소시킬 수 있는 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법을 제공하기 위한 것이다.
본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 본 발명의 기재로부터 당해 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 따른 하이브리드 주메모리 시스템은 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리를 포함하는 주메모리, 그리고 매니코어 프로세서를 구비하는 하이브리드 주메모리 시스템에 있어서, 각 태스크에 대해서 상기 제1메모리 및 상기 제2메모리에 대한 메모리 접근 정보를 수집하는 성능 모니터링 유닛; 및 상기 메모리 접근 정보를 이용하여 후속하여 실행될 태스크를 선택하는 태스크 스케줄러를 포함하며, 상기 메모리 접근 정보는 메모리 접근 요청의 대상 메모리, 빈도수 및 소스 코어, 그리고 메모리 접근 타입 중 적어도 어느 하나를 포함한다.
본 발명에 따른 태스크 스케줄링 방법은 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리를 포함하는 주메모리, 그리고 매니코어 프로세서를 구비하는 하이브리드 주메모리 시스템에 있어서, 각 태스크에 대해서 상기 제1메모리 및 상기 제2메모리에 대한 메모리 접근 정보를 수집하는 단계; 및 상기 메모리 접근 정보를 이용하여 후속하여 실행될 태스크를 선택하는 단계를 포함하며, 상기 메모리 접근 정보는 메모리 접근 요청의 대상 메모리, 빈도수 및 소스 코어, 그리고 메모리 접근 타입 중 적어도 어느 하나를 포함한다.
본 발명에 따르면 서로 메모리 접근 속도가 다른 2개 이상의 메모리를 함께 사용하는 하이브리드 주메모리 시스템에서, 성능 모니터링 유닛에서 수집한 태스크별 메모리 접근 정보를 이용하여 태스크 스케줄러가 후속하여 실행될 태스크를 결정함으로써 메모리 접근 횟수가 많거나, 메모리 자원을 오래 점유하게 되는 태스크들을 시간축으로 분산시켜 메모리에서의 충돌을 줄일 수 있는 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법을 제공할 수 있다. 이에 따라 불필요한 메모리 스톨 시간을 줄임으로써 시스템의 전체 실행 시간을 줄일 수 있다.
도1은 본 발명의 실시예에 따른 매니코어 프로세서를 구비한 하이브리드 주메모리 시스템을 예시한다.
도2는 본 발명의 실시예에 따른 태스크별 메모리 접근 정보를 예시한다.
도3은 본 발명의 실시예에 따라 사용 대역폭 및 접근 대상에 따라 정렬된 태스크를 예시한다.
도4는 본 발명의 실시예에 따른 태스크 스케줄링 순서를 예시한다.
도5는 본 발명의 실시예에 따른 태스크 스케줄링 방법을 보다 구체적으로 예시한다.
이하, 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명된다. 그러나, 본 발명의 실시형태는 여러 가지의 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명하는 실시형태로만 한정되는 것은 아니다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있으며, 도면들 중 인용부호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 인용부호들로 표시됨을 유의해야 한다. 참고로 본 발명을 설명함에 있어서 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
하나의 칩에 다수의 코어가 집적된 매니코어 프로세서를 포함하는 환경에서, DRAM과 함께 NVRAM을 주메모리로 사용하는 하이브리드 주메모리 시스템이 증가하고 있다. 이는 주 메모리의 양을 늘리기 위해 DRAM을 사용할 경우에 발생하는 전력, 스케일링 및 비용 문제를 해결하기 위한 것이다. 이때, 하나의 메모리에 집중적으로 접근하는 다수의 태스크들이 동시에 스케줄링되는 경우 메모리 접근에서 충돌이 발생할 수 있다. 이에 따라 메모리로부터 데이터를 읽어들이는 평균 접근 시간이 증가하게 된다.
NVRAM은 비휘발성 특성을 갖는 메모리 소자로서 기록된 데이터가 보존되므로 전력을 작게 소모하는 장점이 있다. 하지만 메모리 접근 시간이 DRAM에 비해 상대적으로 길며, 쓰기 접속 레이턴시(latency)가 읽기 접속 레이턴시에 비해 3~5배의 비율로 긴 특성을 갖는다. 일반적으로 메모리의 집적도는 DRAM과 같거나 보다 고집적이 가능할 수 있다.
이와 같이, 서로 다른 접근 속도를 갖는 주 메모리를 다수개 사용하는 경우에 이러한 접근 속도의 차이 및/또는 접근 타입(예컨대, 쓰기 및 읽기)을 고려하여 태스크를 스케줄링하는 것이 필요하다.
도1은 본 발명의 실시예에 매니코어 프로세서를 구비한 하이브리드 주메모리 시스템을 예시한다. 본 발명의 실시예에 따른 하이브리드 주메모리 시스템은 매니코어 프로세서(101)와 서로 메모리 접근 속도가 다른 제1메모리(103) 및 제2메모리(102)를 포함한다. 도1에서는 제1메모리(103)로서 DRAM을 예시하고 제2메모리(102)로서 NVRAM을 예시하고 있다. 하지만 이는 단지 실시예일뿐이며 본원 발명의 실시예에서는 서로 다른 접근 속도를 갖는 두 개 이상의 주메모리를 구비할 수 있다.
도1에 도시된 바와 같이, 본 발명의 실시예에 따른 하이브리드 주메모리 시스템은 각 태스크에 대해서 메모리 접근 정보를 수집하는 성능 모니터링 유닛(104, PMU: Performance Monitoring unit) 및 메모리 접근 정보를 이용하여 후속하여 실행될 태스크를 선택하는 태스크 스케줄러(106)을 포함할 수 있다.
또한, 본 발명의 실시예에 따른 하이브리 주메모리 시스템은 태스크들을 각 코어에 할당하여 실행될 수 있도록 하는 운영체제(105:OS)를 포함할 수 있다.
본 발명의 실시예에 따른 성능 모니터링 유닛(104)은 예컨대, 하드웨어 모듈로서 CPU 칩에 함께 실장되어 있을 수 있다. 성능 모니터링 유닛(104)은 각 태스크에 대해서 메모리 접근 정보를 수집하며, 메모리 접근 정보는 메모리 접근 요청의 대상 메모리, 빈도수 및 소스 코어, 그리고 메모리 접근 타입을 포함할 수 있다.
예컨대, 성능 모니터링 유닛(104)은 뱅크별 메모리 모듈로 접근하는 메모리 접근 요청의 타입(읽기/쓰기)을 구분하여 접근 빈도수를 수집할 수 있다. 또한, 메모리 접근 요청의 소스 코어(source core)를 구분하여 정보를 수집할 수 있다. 또한, 각 코어로부터의 접근에 의한 LLC(Last Level Cache)의 캐시 라인 필(cache line fill) 및 해당 캐시 라인 필에 의한 LLC 라이트백(LLC writeback)을 수행하는 횟수를 코어별로 구분하여 빈도수를 수집할 수 있다. 이때, 캐시 라인 필에 의한 라이트백 또한 동일한 코어에서 발생한 것으로 계산할 수 있다.
상기와 같은 정보를 취합함으로써 성능 모니터링 유닛(104)은 메모리 접근 요청에 대해서 요청의 소스 코어와 메모리 접근 타입(읽기/쓰기)을 구분한 정보를 통해서, 코어에서 특정 메모리 뱅크로 어떤 타입의 메모리 접근이 얼마나 자주 발생하였는지에 대한 데이터를 수집할 수 있다.
태스크 스케줄러(106)는 상기 성능 모니터링 유닛(104)에서 수집된 메모리 접근 정보를 이용하여 후속하여 실행될 태스크를 선택할 수 있다. 도2는 본 발명의 실시예에 따라 각 태스크가 스케줄링되어 실행된 기간 동안에 메모리를 접근한 통계 정보를 나타낸다. 도2에 도시된 바와 같은 테이블은 각 코어에서 동작하는 태스크를 구별하는 정보 및 각 코어에서 생성한 메모리 접근 정보의 수집을 통해 얻어진 데이터를 결합하여 생성할 수 있다.
각 코어에서 현재 실행되고 있는 태스크는 태스크의 페이지 테이블(page table)을 가리키는 포인터(pointer) 값 (예컨대, Intel X86 계열 CPU의 경우 CR3 레지스터에 저장되어 사용되는 값)을 키(key)로 구분이 가능하다. 이를 통해 특정 코어에서 실행되는 태스크를 식별하고 이의 실행 시간을 알 수 있다. 성능 모니터링 유닛(104)에서 각 코어에서 발생한 메모리 접근 요청의 대상 메모리, 접근 타입 등에 대한 정보를 수집할 수 있으므로, 위 두가지 정보를 결합함으로써 도2와 같이 각 태스크가 스케줄링되어 실행된 시간 동안에 메모리 접근의 통계 정보를 얻어내어 관리할 수 있다.
본 발명의 실시예에 따른 하이브리드 주메모리 시스템은 데이터 마이그레이터(data migratory: 107)를 더 포함할 수 있다. 데이터 마이그레이터(107)는 운영체제(105) 상에서 실행되는 모든 태스크들이 사용하는 데이터를 접근 패턴에 따라 제1메모리 및 제2메모리로 동적 조정함으로써 시스템 성능 향상을 꾀할 수 있는 모듈이다. 이는 하이브리드 주메모리 시스템에서 임의의 태스크가 사용하는 데이터는 제1메모리 또는 제2메모리에 분포된다. 하지만, 애플리케이션이 그 위치를 명시적으로 지정하는 것은 용이하지 않다. 따라서 운영체제(105)의 메모리 관리 정책의 일환으로서 데이터 마이그레이터(107)를 구성하여 동작할 수 있다.
태스크 스케줄러(106)는 운영체제(105) 내에서 각 태스크들을 아이들 코어(idle core)에 할당하여 실행하도록 순서를 조정한다. 태스크 스케줄러(106)는 일정 시간을 각 태스크에게 할당하여 각 태스크가 실행될 수 있도록 한다. 해당 스케줄링 기간(scheduling period)에서 자신에게 할당된 시간을 모두 소모한 태스크는 다음 스케줄링 기간이 도달할 때까지 실행되지 않으며, 모든 태스크가 자신에게 할당된 시간을 모두 소비하면 다음 스케줄링 기간에서 지정된 시간(time slice)를 각각 할당받아 실행을 재개하는 과정을 반복할 수 있다.
따라서, 모든 태스크가 지정된 시간을 가지는 스케줄링 기간이 존재하며, 본 발명에서는 매 스케줄링 기간마다 도4에 도시된 바와 같이 두 개의 단계로 구성된 절차를 수행한다.
첫번째 단계(401)에서는 각 태스크가 스케줄링되어 실행된 구간에서 태스크별 메모리 접근 정보를 수집한다. 이러한 수집 단계는 예컨대 성능 모니터링 유닛(104)에서 수행될 수 있다.
두번째 단계(402)에서는 상기 수집된 메모리 접근 정보에 근거하여 후속하여 실행될 태스크를 선택할 수 있다. 즉, 스케줄링 가능한 태스크들 중에서 가장 최근의 스케줄링 기간에서 수집된 메모리 접근 정보를 이용하여 아이들 코어에서 후속하여 실행될 태스크를 선택한다.
다수의 태스크 중에서 다음에 실행될 태스크를 선택하는 보다 자세한 과정은 도5에 도시된다. 본 발명의 실시예에 따르면, 태스크가 처음 론치(launch)되는 경우에는 이전에 수집된 메모리 접근 정보가 없다. 따라서, 해당 태스크에 대해서 모든 모니터링 값은 0으로 설정될 수 있으며 이 경우 상기 태스크는 우선적으로 스케줄링될 수 있다.
태스크가 실행되는 시간 동안에 성능 모니터링 유닛(104)을 통해 메모리 접근 정보를 수집할 수 있다. 수집된 정보는 태스크 스케줄러(106)가 후속하여 실행될 태스크를 선택할 때 선택의 기준이 될 수 있다. 태스크 스케줄러(106)는 스케줄될 태스크들 중에서 모니터링 값이 0인 태스크가 하나 이상 존재하는 경우 이들 중 임의로 하나를 선택할 수 있다. 모니터링 값이 0인 태스크가 없는 경우에는 수집된 메모리 접근 정보를 근거로 하여 후속하여 선택될 태스크를 선택할 수 있다.
모니터링 값이 0인 태스크가 없는 경우, 즉 처음으로 론치되는 태스크가 없는 상황에서는 메모리 접근 요청의 대상 메모리 및 메모리 접근 타입을 고려하여 스케줄링을 해야한다. 이는 본 발명의 실시예가 메모리 접근 속도가 다른 제1메모리(103) 및 제2메모리(102)를 포함하는 하이브리드 주메모리 시스템을 기반으로 하기 때문이다. 예컨대, DRAM이 제1메모리(103)로 사용되고 NVRAM이 제2메모리(102)로 사용되는 경우 메모리 접근 요청의 레이턴시가 서로 다르기 때문에 점유 대역폭을 메모리 접근 요청의 수로 단순히 판단할 수 없기 때문이다.
이하에서는 제1메모리(103)로서 DRAM 및 제2메모리(102)로서 NVRAM을 사용하는 경우를 예로 들어 본 발명에 따른 스케줄링 방법을 설명한다. 하지만, 이는 단지 실시예일뿐이며 2개 이상의 주메모리가 사용되는 시스템에서 본 발명이 적용될 수 있다.
DRAM과 NVRAM 사이의 메모리 접근 요청의 레이턴시가 다르고, 또한 NVRAM에서 메모리 접근 타입에 따른 레이턴시가 서로 다른 것을 반영하기 위해서, 각각의 태스크에 대한 유효 대역폭(Effective Bandwidth)을 구할 수 있다. 예컨대, NVRAM의 메모리 접근 타입에 따른 접근 레이턴시의 비율에 따라서 하나의 태스크가 소모하는 유효 대역폭 값을 DRAM 레이턴시를 기준으로 변환하여 아래와 같이 계산할 수 있다.
Effective BWNVRAM=a*NUMRead+b*NUMWrite
(a=TNVRAM _ Read/TDRAM, b=TNVRAM _ Write/TDRAM)
DRAM으로의 접근은 유효 대역폭값으로 1:1변환되므로 그대로 사용할 수 있다.
스케줄링 가능한 모든 태스크들에 대해서 유효 대역폭을 계산하고 이를 유효 대역폭이 작은 순서대로 도3과 같이 정렬할 수 있다. 도3에서 리스트1(301)는 DRAM 인텐시브(intensive) 태스크들을 포함하고 리스트2(302)는 NVRAM 인텐시브 태스크들을 포함한다. 여기서 DRAM 인텐시브 태스크는 DRAM을 NVRAM보다 많이 사용하는 태스크이고 NVRAM 인텐시브 태스크는 NVRAM을 DRAM보다 많이 사용하는 태스크일 수 있다. 또는 다른 태스크들과의 관계에서 DRAM 또는 NVRAM의 사용량이 많으면 DRAM 인텐시브 태스크 또는 NVRAM 인텐시브 태스크로 분류될 수 있다. 이때, 각각의 태스크는 DRAM과 NVRAM을 모두 사용할 수 있으므로 두개의 리스트1 및 2(301, 302)에 동시에 포함될 수 있다.
각 리스트(301, 302)의 태스크들은 각각 레이턴시 민감성 태스크(latency sensitive task)와 대역폭 민감성 태스크(bandwidth sensitive task)로 구분될 수 있다. 예컨대, 각 리스트(301, 302)에 포함된 태스크들이 자신의 대상 메모리(예컨대, 리스트1(301)의 경우 DRAM, 리스트2(302)의 경우 NVRAM)에 대해서 사용하는 전체 대역폭 양은 X 및 Y일 수 있다. 이때, 각 메모리에 대해서 소정 비율(αX, βY)을 점유하는 태스크들을 작은 유효 대역폭을 갖는 태스크들부터 선택하여 레이턴시 민감성 태스크로 분류할 수 있다. 그리고 각 리스트에서 나머지 태스크들을 대역폭 민감성 태스크로 분류할 수 있다. 이때, 레이턴시 민감성 태스크로 분류하기 위한 비율(α, β)는 데이터 마이그레이터(107)의 정책의 적용에 따른 특성 변화를 실험적으로 측정하여 이를 토대로 적정값을 결정할 수 있다.
여기서, α 및 β의 값은 스케줄러가 동작하는 시스템 관리자가 설정하는 파라미터로 해당 시스템이 성능과 응답성 중 어느 부분에 가중치를 두느냐에 따라 달라질 수 있다. 일반적으로 레이턴시 민감성 태스크의 수를 늘리게 되면 대역폭 민감성 태스크들의 실행이 일괄적으로 지연되지만, 작은 부하(load)를 발생시키는 태스크, 예컨대 대화형 태스크(interactive task)에 대한 응답성이 개선되는 효과가 있다. 이에 반해서, 각 태스크들 사이에 CPU 자원활용의 측면에서 형평성(fairness)을 보다 중요시하는 정책을 사용하는 경우 상기 값들을 작게 설정하여 대역폭 민감성 태스크의 수를 늘릴 수 있다. 이와 같은 정황을 고려하여 α 및 β의 값을 설정할 수 있으며, 일반적으로 본 발명의 실시예와 같은 서로 다른 특성을 갖는 다수의 워크로드(work load)가 함께 동작하는 시스템의 경우 전체 소모 유효 대역폭의 10% 내외에서 움직이는 값을 갖도록 설정된다. 레이턴시 민감성 태스크로 분류되는 태스크가 존재할 경우 해당 태스크들은 대상 메모리(예컨대, DRAM 및 NVRAM)에 관계없이 태스크의 유효 대역폭의 총합 EBWDRAM + EBWNVRAM)이 낮은 태스크부터 우선적으로 스케줄링될 수 있다. 모든 레이턴시 민감성 태스크들이 스케줄링되고 난 이후에는 대역폭 민감성 태스크들에 대해서 아래와 같은 기준을 통해 후속으로 실행될 태스크를 선택할 수 있다.
대역폭 민감성 태스크들은 아래와 같은 방식으로 스케줄링될 수 있다.
현재 실행되고 있는 태스크들의 가장 최근에 완료된 스케줄링 기간에서 유효 대역폭 사용량을 각 메모리 별로 합산한다. 이는 각 메모리에 대한 현재의 사용량을 추정하기 위한 것이다. 이후 각 메모리에 대해서 피크 대역폭(peak bandwidth)과 상기 합산된 대역폭 사용량 사이의 차이값을 구한다. 이로부터 제1메모리에서 사용가능한 대역폭 및 제2메모리에서 사용가능한 대역폭을 추정할 수 있다. 이에 따라 제1메모리와 제2메모리 중에서 더 큰 사용가능 유효 대역폭을 갖는 메모리에 대한 메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 후속하여 실행될 태스크를 선택한다. 예컨대, 해당 메모리 인텐시브 태스크들로서 대역폭 민감성 태스크들 중에서 해당 메모리에 대한 유효 대역폭의 총합이 가장 낮은 태스크를 후속하여 실행될 태스크로 스케줄링할 수 있다.
만약, 제1메모리의 사용가능 대역폭과 제2메모리의 사용가능 유효 대역폭의 차이값이 기준값보다 작은 경우라면, 직전에 스케줄링된 태스크가 속한 리스트와 다른 리스트에 속한 태스크를 선택할 수 있다. 이는 각 메모리들 사이에 사용 가능한 유효 대역폭이 크게 차이가 없음에도 불구하고 이러한 작은 차이로 인해 형평성이 무너지는 경우를 방지하기 위한 것이다. 이때, 상기 기준값은 워크로드에 따라서 시스템 관리자에 의해서 설정될 수 있다. 예컨대, 상기 기준값은 사용 대역폭이 가장 큰 태스크가 소비하는 유효 대역폭의 5% 내지 10%값으로 설정될 수 있다.
DRAM 인텐시브 태스크들을 포함하는 리스트1(301)이 선택되는 경우, 예컨대 라운드 로빈(round robin) 방식으로 상기 DRAM 인텐시브 태스크들 중에서 태스크를 선택할 수 있다. 또는 현재 스케줄링 기간 동안에 가장 짧은 실행 시간을 갖는 태스크를 후속하여 실행될 태스크로 선택할 수 있다.
NVRAM 인텐시브 태스크들을 포함하는 리스트2(302)가 선택되는 경우, 아래와 같은 방법으로 후속하여 실행될 태스크를 선택할 수 있다.
NVRAM 인텐시브 태스크들을 포함하는 리스트2(302)에서 대역폭 민감성 태스크을 포함하는 서브리스트(303)에 포함되는 태스크들에 대해서 최근 스케줄링 기간에서 발행된 전체 메모리 접근 요청에 대한 읽기 요청의 비율을 측정하고 이 값이 높은 순서대로 태스크들을 정렬한다.
이때, 읽기 요청의 비율이 가장 높은 태스크와 가장 낮은 태스크 사이의 읽기 요청 비율의 차이가 소정값(DIFF-Threshold) 이하면 상기 서브리스트(303) 중에서 라운드 로빈 방식으로 또는 랜덤(random)하게 후속하여 실행될 태스크를 선택할 수 있다. 이는 각 태스크들 사이에 사용하는 유효 대역폭이 크게 차이가 없음에도 불구하고 이러한 작은 차이로 인해 형평성이 무너지는 경우를 방지하기 위한 것이다. 이때, 상기 소정값은 워크로드에 따라서 시스템 관리자에 의해서 설정될 수 있다. 예컨대, 상기 소정값은 읽기 요청의 비율이 가장 높은 태스크의 읽기 요청 비율의 5% 내지 10%값으로 설정될 수 있다. 상기 읽기 요청 비율의 차이가 소정값보다 크면, NVRAM 인텐시브 태스크로서 대역폭 민감성 태스크를 포함하는 서브리스트(303)에 포함된 태스크 중에서 해당 태스크가 현재 스케줄링 기간에서 실제 실행된 시간에 가중치(V)를 곱한 값을 구한다. 이들 중 가장 작은 값을 갖는 태스크를 먼저 선택하여 후속하여 실행될 태스크로 선정할 수 있다. 예컨대, 상기 가중치는 대역폭 민감 태스크 군에 속하는 쓰기 인텐시브 태스크들에 대한 형평성의 보장 강도를 나타낼 수 있다. 예컨대, 기본적으로 서브리스트(303)에 포함된 태스크들의 선택방법은 읽기 인텐시브 태스크들이 우선적으로 실행되도록 구성될 수 있다. 하지만, 이는 쓰기 인텐시브 태스크들이 스케줄링되는 횟수를 너무 줄여 이들 태스크의 실행이 지연되는 것을 야기할 수 있다. 따라서, 실제로 서비스된 시간에 가중치를 부가하여 읽기 인텐시브 태스크가 스케줄링 기회를 어느 정도 할당받은 이후에는 쓰기 인텐시브 태스크들이 스케줄링될 수 있도록 강제로 순서를 바꿔줄 필요가 있다. 따라서, 상기 가중치는 읽기 인텐시브 태스크들이 순서대로 스케줄링되어 실행되는 과정에서 얼마나 자주 쓰기 인텐시브 태스크들이 끼어들어 실행될 것인지에 따라 결정될 수 있다. 즉, 상기 가중치는 쓰기 인텐시브 태스크들을 위한 형평성 보장 강도를 나타내는 지표일 수 있다. 이때, 사용되는 가중치값은 다음과 같은 것을 사용할 수 있다.
첫번째로, 서브리스트(303)에서 읽기의 비중이 높은 순서대로 정렬하여 1부터 인덱스(index)를 할당할 때 각 태스크의 인덱스값의 역수가 가중치로 사용될 수 있다.
두번째로, 해당 태스크의 최근 스케줄링 기간에서 전체 NVRAM에 대한 접근 요청 중 읽기 요청이 차지하는 비율을 가중치로 사용할 수 있다.
세번째로, 해당 태스크의 최근 스케줄링 기간에서의 전체 NVRAM에 대한 접근 횟수에서 읽기 요청이 차지하는 비율에, 가장 많은 메모리 접근 요청을 발생시킨 태스크의 NVRAM 접근 횟수를 1로 놓았을 때 각 태스크의 NVRAM 접근 횟수의 비율값의 역수를 곱한 값을 가중치로 사용할 수 있다.
상기와 같은 선택 과정 중에 하나의 태스크가 스케줄 아웃(schedule out)될 때 각 리스트의 정렬 기준에 따라 리스트에서 자신의 위치를 업데이트함으로써 리스트가 재정렬될 수 있다. 이상에서는 각 구분된 태스크들을 관리하는 데이터 구조를 리스트로 명시하였으나 실시예에 따라서 이 리스트는 트리(tree) 구조와 같은 적절한 데이터 구조로 대체될 수 있다.
이상에서 살펴본 바와 같이, 서로 메모리 접근 속도가 다른 2개 이상의 메모리를 함께 사용하는 하이브리드 주메모리 시스템에서, 성능 모니터링 유닛(104)에서 수집한 태스크별 메모리 접근 정보를 이용하여 태스크 스케줄러(106)가 후속하여 실행될 태스크를 결정함으로써 메모리 접근 횟수가 많거나, 메모리 자원을 오래 점유하게 되는 태스크들을 시간축으로 분산시켜 메모리에서의 충돌을 줄일 수 있다. 이에 따라 불필요한 메모리 스톨 시간을 줄임으로써 시스템의 전체 실행 시간을 줄일 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
101: 매니코어 프로세서 102: 제2메모리
103: 제1메모리 104: 성능 모니터링 유닛
105: 운영체제 106: 태스크 스케줄러
107: 데이터 마이그레이터 201: 태스크 구분
201: 메모리 및 메모리 접근 타입 구분
301: 리스트1 302: 리스트2
303: 서브리스트 401: 첫번째 단계
402: 두번째 단계

Claims (18)

  1. 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리를 포함하는 주메모리, 그리고 매니코어 프로세서를 구비하는 하이브리드 주메모리 시스템에 있어서,
    각 태스크에 대해서 상기 제1메모리 및 상기 제2메모리에 대한 메모리 접근 정보를 수집하는 성능 모니터링 유닛; 및
    상기 메모리 접근 정보를 이용하여 후속하여 실행될 태스크를 선택하는 태스크 스케줄러를 포함하며,
    상기 메모리 접근 정보는 메모리 접근 요청의 대상 메모리, 빈도수 및 소스 코어, 그리고 메모리 접근 타입 중 적어도 어느 하나를 포함하는 하이브리드 주메모리 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 태스크 스케줄러는, 다수의 태스크 중 메모리 접근 정보가 없는 태스크를 후속하여 실행될 태스크로 스케줄링하는 것을 특징으로 하는 하이브리드 주메모리 시스템.
  4. 제1항에 있어서,
    상기 각 태스크는 레이턴시 민감성 태스크와 대역폭 민감성 태스크로 구분되며,
    상기 태스크 스케줄러는, 상기 레이턴시 민감성 태스크로 구분된 태스크 중에서 유효 대역폭의 총합이 낮은 태스크부터 우선적으로 스케줄링하는 것을 특징으로 하는 하이브리드 주메모리 시스템.
  5. 제4항에 있어서,
    상기 각 태스크는 또한 제1메모리 인텐시브 태스크와 제2메모리 인텐시브 태스크로 구분되며,
    상기 태스크 스케줄러는, 상기 제1메모리와 상기 제2메모리 중에서 더 큰 사용가능 유효 대역폭을 갖는 메모리에 대한 메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 유효 대역폭의 총합이 가장 낮은 태스크를 후속하여 실행될 태스크로 스케줄링하는 것을 특징으로 하는 하이브리드 주메모리 시스템.
  6. 제5항에 있어서,
    상기 제1메모리의 사용가능 유효 대역폭과 상기 제2메모리의 사용가능 유효 대역폭의 차이값이 기준값보다 작은 경우,
    상기 태스크 스케줄러는, 직전에 스케줄링된 태스크가 상기 제1메모리 인텐시브 태스크이면 상기 제2메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 후속하여 실행될 태스크를 선택하고 상기 직전에 스케줄링된 태스크가 상기 제2메모리 인텐시브 태스크이면 상기 제1메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 후속하여 실행될 태스크를 선택하는 것을 특징으로 하는 하이브리드 주메모리 시스템.
  7. 제6항에 있어서,
    상기 제1메모리는 DRAM이고 상기 제2메모리는 NVRAM이며,
    상기 태스크 스케줄러가 상기 제1메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 후속하여 실행될 태스크를 선택하는 경우,라운드 로빈 방식으로 후속하여 실행될 태스크를 선택하거나 현재 스케줄링 기간 동안에 가장 짧은 실행 시간을 갖는 태스크를 후속하여 실행될 태스크로 선택하는 것을 특징으로 하는 하이브리드 주메모리 시스템.
  8. 제6항에 있어서,
    상기 제1메모리는 DRAM이고 상기 제2메모리는 NVRAM이며,
    상기 태스크 스케줄러가 상기 제2메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 후속하여 실행될 태스크를 선택하는 경우,
    상기 제2메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 이전 스케줄링 기간에 읽기 요청 비율이 가장 높은 태스크와 가장 낮은 태스크 사이의 상기 읽기 요청 비율 차이가 소정값 이하면,라운드 로빈 방식 또는 랜덤 방식으로 후속하여 실행될 태스크를 선택하는 것을 특징으로 하는 하이브리드 주메모리 시스템.
  9. 제8항에 있어서,
    상기 읽기 요청 비율 차이가 상기 소정값보다 크면 상기 제2메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 각 태스크가 현재 스케줄링 기간에 실제 실행된 시간에 쓰기 인텐시브 태스크를 위한 형평성 보장 강도를 나타내는 가중치를 곱하여 그 값이 작은 태스크를 후속하여 실행될 태스크로 선택하는 것을 특징으로 하는 하이브리드 주메모리 시스템.
  10. 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리를 포함하는 주메모리, 그리고 매니코어 프로세서를 구비하는 하이브리드 주메모리 시스템에 있어서,
    각 태스크에 대해서 상기 제1메모리 및 상기 제2메모리에 대한 메모리 접근 정보를 수집하는 단계; 및
    상기 메모리 접근 정보를 이용하여 후속하여 실행될 태스크를 선택하는 단계를 포함하며,
    상기 메모리 접근 정보는 메모리 접근 요청의 대상 메모리, 빈도수 및 소스 코어, 그리고 메모리 접근 타입 중 적어도 어느 하나를 포함하는 태스크 스케줄링 방법.
  11. 삭제
  12. 제10항에 있어서,
    상기 후속하여 실행될 태스크를 선택하는 단계는, 다수의 태스크 중 메모리 접근 정보가 없는 태스크를 후속하여 실행될 태스크로 스케줄링하는 것을 특징으로 하는 태스크 스케줄링 방법.
  13. 제10항에 있어서,
    상기 후속하여 실행될 태스크를 선택하는 단계는,
    상기 각 태스크를 레이턴시 민감성 태스크와 대역폭 민감성 태스크로 구분하는 단계; 및
    상기 레이턴시 민감성 태스크로 구분된 태스크 중에서 유효 대역폭의 총합이 낮은 태스크부터 우선적으로 스케줄링하는 단계를 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  14. 제10항에 있어서,
    상기 후속하여 실행될 태스크를 선택하는 단계는,
    상기 각 태스크를 제1메모리 인텐시브 태스크와 제2메모리 인텐시브 태스크로 구분하는 단계; 및
    상기 제1메모리와 상기 제2메모리 중에서 더 큰 사용가능 유효 대역폭을 갖는 메모리에 대한 메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 유효 대역폭의 총합이 가장 낮은 태스크를 후속하여 실행될 태스크로 스케줄링하는 단계를 더 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  15. 제14항에 있어서,
    상기 제1메모리의 사용가능 유효 대역폭과 상기 제2메모리의 사용가능 유효 대역폭의 차이값이 기준값보다 작은 경우,
    직전에 스케줄링된 태스크가 상기 제1메모리 인텐시브 태스크이면 상기 제2메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 후속하여 실행될 태스크를 선택하고 상기 직전에 스케줄링된 태스크가 상기 제2메모리 인텐시브 태스크이면 상기 제1메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 후속하여 실행될 태스크를 선택하는 것을 특징으로 하는 태스크 스케줄링 방법.
  16. 제15항에 있어서,
    상기 제1메모리는 DRAM이고 상기 제2메모리는 NVRAM이며,
    상기 제1메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 후속하여 실행될 태스크를 선택하는 경우,라운드 로빈 방식으로 후속하여 실행될 태스크를 선택하거나 현재 스케줄링 기간 동안에 가장 짧은 실행 시간을 갖는 태스크를 후속하여 실행될 태스크로 선택하는 것을 특징으로 하는 태스크 스케줄링 방법.
  17. 제15항에 있어서,
    상기 제1메모리는 DRAM이고 상기 제2메모리는 NVRAM이며,
    상기 제2메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 후속하여 실행될 태스크를 선택하는 경우,
    상기 제2메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 이전 스케줄링 기간에 읽기 요청 비율이 가장 높은 태스크와 가장 낮은 태스크 사이의 상기 읽기 요청 비율 차이가 소정값 이하면,라운드 로빈 방식 또는 랜덤 방식으로 후속하여 실행될 태스크를 선택하는 것을 특징으로 하는 태스크 스케줄링 방법.
  18. 제17항에 있어서,
    상기 읽기 요청 비율 차이가 상기 소정값보다 크면, 상기 제2메모리 인텐시브 태스크로서 대역폭 민감성 태스크들 중에서 각 태스크가 현재 스케줄링 기간에 실제 실행된 시간에 총 쓰기 인텐시브 태스크를 위한 형평성 보장 강도를 나타내는 가중치를 곱하여 그 값이 작은 태스크를 후속하여 실행될 태스크로 선택하는 것을 특징으로 하는 태스크 스케줄링 방법.
KR1020110136006A 2011-12-16 2011-12-16 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법 KR101356033B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110136006A KR101356033B1 (ko) 2011-12-16 2011-12-16 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110136006A KR101356033B1 (ko) 2011-12-16 2011-12-16 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법

Publications (2)

Publication Number Publication Date
KR20130068685A KR20130068685A (ko) 2013-06-26
KR101356033B1 true KR101356033B1 (ko) 2014-01-29

Family

ID=48864258

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110136006A KR101356033B1 (ko) 2011-12-16 2011-12-16 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법

Country Status (1)

Country Link
KR (1) KR101356033B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122800B1 (en) 2014-05-30 2015-09-01 Honeywell International Inc. System and method of non-intrusive measurement of memory access profiles of threads in a multi-core processor
KR20190102795A (ko) * 2018-02-27 2019-09-04 삼성전자주식회사 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101536423B1 (ko) * 2013-10-15 2015-07-13 주식회사 포스코 철강 공정 미들웨어 시스템 및 시스템 메모리 동적 할당 방법
KR101587600B1 (ko) * 2014-02-24 2016-01-22 한국과학기술원 Numa 시스템상에서 가상머신간의 통신방법
CN105760220B (zh) * 2016-01-29 2019-05-17 湖南大学 一种基于混合内存的任务与数据调度方法和装置
KR102304130B1 (ko) * 2019-06-07 2021-09-23 성균관대학교산학협력단 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치
KR102222934B1 (ko) * 2019-08-19 2021-03-04 성균관대학교산학협력단 멀티코어 프로세서 시스템에서 메모리 할당 방법 및 장치, 이를 위한 기록매체
US11640321B2 (en) 2019-08-19 2023-05-02 Research & Business Foundation Sungkyunkwan University Method and apparatus for memory allocation in a multi-core processor system, and recording medium therefor
KR102480944B1 (ko) * 2020-09-23 2022-12-22 재단법인대구경북과학기술원 하이브리드 메모리 제어 장치 및 방법
KR20230119832A (ko) * 2022-02-08 2023-08-16 삼성전자주식회사 태스크에 메모리 자원을 할당하는 전자 장치 및 전자 장치의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110103258A (ko) * 2010-03-12 2011-09-20 삼성전자주식회사 전력 소모 저감을 위한 하이브리드 메모리 장치 및 그 방법
KR20110128023A (ko) * 2010-05-20 2011-11-28 삼성전자주식회사 멀티 코어 프로세서, 멀티 코어 프로세서의 태스크 스케줄링 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110103258A (ko) * 2010-03-12 2011-09-20 삼성전자주식회사 전력 소모 저감을 위한 하이브리드 메모리 장치 및 그 방법
KR20110128023A (ko) * 2010-05-20 2011-11-28 삼성전자주식회사 멀티 코어 프로세서, 멀티 코어 프로세서의 태스크 스케줄링 장치 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122800B1 (en) 2014-05-30 2015-09-01 Honeywell International Inc. System and method of non-intrusive measurement of memory access profiles of threads in a multi-core processor
KR20190102795A (ko) * 2018-02-27 2019-09-04 삼성전자주식회사 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체
WO2019168265A1 (ko) * 2018-02-27 2019-09-06 삼성전자주식회사 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체
KR102520596B1 (ko) 2018-02-27 2023-04-12 삼성전자주식회사 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체

Also Published As

Publication number Publication date
KR20130068685A (ko) 2013-06-26

Similar Documents

Publication Publication Date Title
KR101356033B1 (ko) 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법
US8190795B2 (en) Memory buffer allocation device and computer readable medium having stored thereon memory buffer allocation program
Rafique et al. Effective management of DRAM bandwidth in multicore processors
US7665090B1 (en) System, method, and computer program product for group scheduling of computer resources
JP5744909B2 (ja) アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム
EP2435914B1 (en) Method and scheduler in an operating system
US20060168571A1 (en) System and method for optimized task scheduling in a heterogeneous data processing system
Liu et al. Preemptive hadoop jobs scheduling under a deadline
US20090178045A1 (en) Scheduling Memory Usage Of A Workload
US10768684B2 (en) Reducing power by vacating subsets of CPUs and memory
Guo et al. Inter-task cache interference aware partitioned real-time scheduling
CN115421924A (zh) 一种内存分配方法、装置及设备
Gifford et al. Dna: Dynamic resource allocation for soft real-time multicore systems
CN116225686A (zh) 面向混合内存架构的cpu调度方法和系统
US10108351B2 (en) Reallocate memory pending queue based on stall
Chen et al. Os-augmented oversubscription of opportunistic memory with a user-assisted oom killer
CN117251275B (zh) 多应用异步i/o请求的调度方法及系统、设备及介质
Gracioli et al. Two‐phase colour‐aware multicore real‐time scheduler
US8108871B2 (en) Controlling computer resource utilization
HoseinyFarahabady et al. Enhancing disk input output performance in consolidated virtualized cloud platforms using a randomized approximation scheme
Wang et al. A resource allocation model for hybrid storage systems
Qouneh et al. Optimization of resource allocation and energy efficiency in heterogeneous cloud data centers
CN111858070A (zh) 计算资源配置方法、装置、设备以及存储介质
Yazdanpanah et al. A comprehensive view of MapReduce aware scheduling algorithms in cloud environments
Liu et al. SDFS: A software‐defined file system for multitenant cloud storage

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee