KR102149153B1 - 이종 메모리를 활용한 범용 gpu에서의 페이징 방법 및 장치 - Google Patents

이종 메모리를 활용한 범용 gpu에서의 페이징 방법 및 장치 Download PDF

Info

Publication number
KR102149153B1
KR102149153B1 KR1020180119977A KR20180119977A KR102149153B1 KR 102149153 B1 KR102149153 B1 KR 102149153B1 KR 1020180119977 A KR1020180119977 A KR 1020180119977A KR 20180119977 A KR20180119977 A KR 20180119977A KR 102149153 B1 KR102149153 B1 KR 102149153B1
Authority
KR
South Korea
Prior art keywords
memory
type
ratio
policy
delay time
Prior art date
Application number
KR1020180119977A
Other languages
English (en)
Other versions
KR20200040109A (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 KR1020180119977A priority Critical patent/KR102149153B1/ko
Publication of KR20200040109A publication Critical patent/KR20200040109A/ko
Application granted granted Critical
Publication of KR102149153B1 publication Critical patent/KR102149153B1/ko

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

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

Abstract

이종의 메모리들을 이용하는 페이징 방법 및 장치가 개시된다. 일실시예에 따른 페이징 장치는 제1 유형의 메모리의 동적 특성, 상기 제1 유형의 메모리의 정적 특성 및 제2 유형의 메모리의 정적 특성을 포함하는 정보를 획득하고, 상기 제1 유형의 메모리의 동적 특성, 상기 제1 유형의 메모리의 정적 특성에 포함된 제1 지연시간과 관련된 특성 및 상기 제2 유형의 메모리의 정적 특성에 포함된 제2 지연시간과 관련된 특성에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리 간의 페이지 할당 정책을 결정하고, 상기 결정된 정책에 따라, 상기 제1 유형의 메모리의 정적 특성에 포함된 제1 대역폭과 관련된 특성 및 상기 제2 유형의 메모리의 정적 특성에 포함된 제2 대역폭과 관련된 특성에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리 간의 페이지 할당 비율을 결정하고, 상기 결정된 비율에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리에 페이지를 할당할 수 있다.

Description

이종 메모리를 활용한 범용 GPU에서의 페이징 방법 및 장치{PAGE PLACEMENT METHOD AND APPARATUS FOR GPGPU WITH HETEROGENEOUS MEMORY}
아래 실시예들은 범용 GPU에서의 메모리 관리 기술에 관한 것이다.
최근에 그래픽 프로세서는 알려진 그래픽 관련 연산들 중 상당 부분이 파이프라인화될 수 있다는 점과 반복적인 스트림 연산들로 프로그래밍될 수 있다는 점을 이용하여, 수많은 스트림 프로세서 코어들을 클러스터링한 아키텍처에 기반하는 범용 GPU(General Purpose Graphic Processor Unit, GPGPU)로 발전하고 있다.
범용 GPU는 그래픽 어플리케이션에 가장 적합하지만, 파이프라인 및 스트림 연산의 특징을 가지도록 프로그래밍할 수 있는 물리 효과 시뮬레이션이나 계산 생물학, 암호학, 영상 처리, 입자 핵물리 시뮬레이션, 천체 시뮬레이션 등 다양한 과학 및 공학 분야에서의 연산 속도 향상에도 활용될 수 있으며, 기계 학습 및 데이터 분석과 같은 영역에서도 고성능 및 에너지 효율적인 컴퓨팅을 위한 유망한 솔루션으로 부각되고 있다.
최근까지 그 컴퓨팅 효율성에도 불구하고, 가상 메모리는 범용 GPU에 대해 널리 지원되지 않았다. 가상 메모리를 지원하지 않는 경우 프로그래머는 GPU와 CPU 물리적 메모리 간의 데이터 전송을 수동으로 조정하여야 하고, 이는 범용 GPU 컴퓨팅의 프로그램 작동 가능성과 유연성을 크게 저하시키게 된다.
선행 연구들은 GPU 메모리 노드와 CPU 메모리 노드로 구성된 이종 처리 장치를 활용한 범용 GPU에 지원되는 가상 메모리를 설계 및 구현하였다.
이종 처리 장치를 활용한 범용 GPU에서 최상의 성능을 얻으려면 대역폭 및 지연 시간에 대한 성능 차이를 고려하여 이종 처리 장치 메모리 노드에 페이지를 할당하는 것이 중요하다. 선행 연구들은 주소 변환(address translation), 캐시 계층(cache hierarchy) 및 워프 스케줄링(wrap scheduling)의 효율적인 설계와 구현을 연구하였으나, 이종 처리 장치 메모리 관리 기능을 고려하지 않았다.
일실시예에 따른 이종의 메모리들을 이용하는 페이징 방법에 의하면, 지연 시간 및 데이터 업무량에 기초하여 결정된 할당 정책에 따라 페이지를 할당할 메모리를 결정함으로써, 상황에 따라 유동적으로 하나 또는 복수 개의 메모리에 페이지가 할당될 수 있다. 일실시예에 따른 이종의 메모리들을 이용하는 페이징 방법에 의하면, 결정된 정책에 따라 이종의 메모리의 대역폭과 관련된 특성에 기초하여 페이지 할당 비율을 결정함으로써, 정보를 처리하는 데 소요되는 시간이 감소될 수 있다.
일실시예에 따른 이종의 메모리들을 이용하는 페이징 방법은 제1 유형의 메모리의 동적 특성, 상기 제1 유형의 메모리의 정적 특성 및 제2 유형의 메모리의 정적 특성을 포함하는 정보를 획득하는 단계; 상기 제1 유형의 메모리의 동적 특성, 상기 제1 유형의 메모리의 정적 특성에 포함된 제1 지연시간과 관련된 특성 및 상기 제2 유형의 메모리의 정적 특성에 포함된 제2 지연시간과 관련된 특성에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리 간의 페이지 할당 정책을 결정하는 단계; 상기 결정된 정책에 따라, 상기 제1 유형의 메모리의 정적 특성에 포함된 제1 대역폭과 관련된 특성 및 상기 제2 유형의 메모리의 정적 특성에 포함된 제2 대역폭과 관련된 특성에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리 간의 페이지 할당 비율을 결정하는 단계; 및 상기 결정된 비율에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리에 페이지를 할당하는 단계를 포함한다.
일실시예에 따르면, 상기 제1 지연시간은 상기 제2 지연시간보다 짧고, 상기 제1 대역폭은 상기 제2 대역폭보다 크며, 상기 제1 유형의 메모리의 용량은 상기 제2 유형의 메모리의 용량보다 작을 수 있다.
일실시예에 따르면, 상기 페이지 할당 정책을 결정하는 단계는 상기 제1 유형의 메모리의 동적 특성, 상기 제1 지연시간과 관련된 특성, 및 상기 제2 지연시간과 관련된 특성에 기초하여, 메모리 지연 비율을 결정하는 단계; 및 상기 메모리 지연 비율이 미리 정해진 기준값 이하의 값을 가지는지 판단하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 페이지 할당 정책을 결정하는 단계는 상기 메모리 지연 비율이 상기 기준값 이하의 값을 가지는 경우, 상기 제1 유형의 메모리 및 상기 제2 유형의 메모리에 페이지를 할당하는 제1 정책을 선택하는 단계; 및 상기 메모리 지연 비율이 상기 기준값을 초과하는 값을 가지는 경우, 상기 제1 유형의 메모리에만 페이지를 할당하는 제2 정책을 선택하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 제1 유형의 메모리는 제1 유형의 프로세서를 위한 물리적 메모리(physical memory); 상기 제1 유형의 프로세서를 위한 L1 캐시; 및 상기 제1 유형의 프로세서를 위한 L2 캐시를 포함할 수 있다.
일실시예에 따르면, 상기 제1 지연시간과 관련된 특성은 상기 L1 캐시의 지연시간, 상기 L2 캐시의 지연시간 및 상기 물리 메모리의 지연시간을 포함하고, 상기 제1 유형의 메모리의 동적 특성은 상기 L1 캐시의 실패율, 및 상기 L2 캐시의 실패율을 더 포함할 수 있다.
일실시예에 따르면, 상기 페이지 할당 정책을 결정하는 단계는 데이터 업무량이 미리 정해진 기준값 이상의 값을 가지는지 판단하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 제1 유형의 메모리 및 상기 제2 유형의 메모리에 페이지를 할당하는 제1 정책이 선택된 경우, 상기 페이지 할당 비율을 결정하는 단계는 상기 제1 대역폭과 상기 제2 대역폭을 합산한 결과와 상기 제1 대역폭 사이의 비율에 기초하여, 상기 페이지 할당 비율을 결정하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 새로운 페이지를 할당하는 단계는 0과 1사이의 난수를 생성하는 단계; 상기 난수와 상기 제1 유형의 메모리에 할당할 페이지의 비율을 비교하는 단계; 및 상기 비교 결과에 따라, 상기 제1 유형의 메모리 및 상기 제2 유형의 메모리 중 어느 하나를 목표 노드로 선택하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 새로운 페이지를 할당하는 단계는 상기 목표 노드에 빈 공간이 있는 경우, 상기 목표 노드에 페이지를 할당하는 단계; 및 상기 선택된 목표 노드에 빈 공간이 없고 선택되지 않은 메모리 노드에 빈 공간이 있는 경우, 상기 선택되지 않은 메모리 노드에 페이지를 할당하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 정보를 획득하는 단계는 오프라인 환경에서 기 실행된 애플리케이션을 위한 메모리 할당 이력에 기초하여, 상기 정보를 획득하는 단계; 및 온라인 환경에서 실행 중인 애플리케이션을 위한 메모리 할당에 기초하여, 주기적으로 상기 정보를 획득하는 단계 중 적어도 하나를 포함할 수 있다.
일실시예에 따른 이종의 메모리들을 이용하는 페이징 장치는 제1 유형의 메모리의 동적 특성, 상기 제1 유형의 메모리의 정적 특성 및 제2 유형의 메모리의 정적 특성을 포함하는 정보를 획득하고, 상기 제1 유형의 메모리의 동적 특성, 상기 제1 유형의 메모리의 정적 특성에 포함된 제1 지연시간과 관련된 특성 및 상기 제2 유형의 메모리의 정적 특성에 포함된 제2 지연시간과 관련된 특성에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리 간의 페이지 할당 정책을 결정하고, 상기 결정된 정책에 따라, 상기 제1 유형의 메모리의 정적 특성에 포함된 제1 대역폭과 관련된 특성 및 상기 제2 유형의 메모리의 정적 특성에 포함된 제2 대역폭과 관련된 특성에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리 간의 페이지 할당 비율을 결정하고, 상기 결정된 비율에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리에 페이지를 할당하는 프로세서를 포함한다.
도 1은 일실시예에 따른 이종 처리 장치를 설명하기 위한 도면이다.
도 2는 일실시예에 따른 이종 처리 장치의 예시도이다.
도 3은 일실시예에 따른 페이징 장치를 설명하기 위한 도면이다.
도 4는 일실시예에 따른 페이징 방법을 설명하기 위한 동작 흐름도이다.
도 5는 일실시예에 따른 페이지 할당 정책을 결정하는 동작을 설명하기 위한 도면이다.
도 6은 일실시예에 따른 페이징 동작을 설명하기 위한 도면이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일실시예에 따른 이종 처리 장치를 설명하기 위한 도면이다.
도 1을 참조하면, 일실시예에 따른 이종 처리 장치는 제1 유형의 처리 장치(110), 제2 유형의 처리 장치(120), 제1 유형의 메모리(130), 및 제2 유형의 메모리(140)를 포함한다. 이종 처리 장치는 서로 다른 유형의 처리 장치가 연동하여 데이터를 처리하는 장치일 수 있다.
제1 유형의 처리 장치 및 제2 유형의 처리 장치는 데이터를 처리하는 장치로서, 사용자로부터 입력 받은 명령어를 해석, 연산한 후 그 결과를 출력할 수 있다. 제1 유형의 처리 장치의 스펙(spec)과 제2 유형의 처리 장치의 스펙은 상이할 수 있다. 예를 들어, 제1 유형의 처리 장치는 미리 정해진 특정 태스크(task)들을 처리하기에 적합한 스펙을 가지고, 제2 유형의 처리 장치는 범용 태스크들을 처리하기에 적합한 스펙을 가질 수 있다. 도 2를 참조하면, GPU(210)는 제1 유형의 처리 장치(110)에 해당할 수 있고, CPU(220)는 제2 유형의 처리 장치(120)에 해당할 수 있다.
제1 유형의 메모리는 제1 유형의 처리 장치에 대응하여, 정보를 읽고 쓰는 메모리일 수 있다. 제2 유형의 메모리는 제2 유형의 처리 장치에 대응하여, 정보를 읽고 쓰는 메모리일 수 있다. 제1 유형의 처리 장치 및 제2 유형의 처리 장치는 링크(115)를 통하여 서로 연동할 수 있다. 이종 처리 장치는 제1 유형의 메모리 및 제2 유형의 메모리에 적응적으로 페이지를 할당할 수 있다.
제1 유형의 메모리의 정적 특성과 제2 유형의 메모리의 정적 특성은 상이할 수 있다. 예를 들어, 제1 유형의 메모리의 제1 지연시간은 제2 유형의 메모리의 제2 지연시간보다 짧을 수 있다. 제1 유형의 메모리의 제1 대역폭은 제2 유형의 메모리의 제2 대역폭보다 클 수 있다. 제1 유형의 메모리의 용량은 제2 유형의 메모리의 용량보다 작을 수 있다. 도 2를 참조하면, 제1 유형의 메모리(130)는 GPU 메모리(230)에 해당할 수 있고, 제2 유형의 메모리(140)는 CPU 메모리(240)에 해당할 수 있다. GPU 메모리(230)는 CPU 메모리(240)에 비하여 지연시간이 짧고, 대역폭은 큰 반면, GPU 메모리(230)의 용량은 CPU 메모리(240)의 용량보다 작을 수 있다.
아래에서 설명하겠으나, 정적 특성은 해당 메모리에서 수행되는 태스크와 무관하게 설계 단계에서 정해지는 특성을 포함할 수 있다. 또한, 동적 특성은 해당 메모리에서 수행되는 태스크에 의존하여 결정되는 특성을 포함할 수 있다.
이종 처리 장치는 이종의 메모리들의 특성을 고려하여, 이종의 메모리들에 페이지를 적응적으로 할당하는 기술을 제공할 수 있다.
도 3은 일실시예에 따른 페이징 장치를 설명하기 위한 도면이다.
도 3을 참조하면, 페이징 장치는 애플리케이션 모니터부(310), 할당 비율 조절부(320), 및 메모리 할당부(330)를 포함할 수 있다. 페이징 장치는 페이지를 할당하는 장치로, 예를 들어 하나 또는 그 이상의 소프트웨어 모듈, 하나 또는 그 이상의 하드웨어 모듈, 또는 이들의 다양한 조합으로 구현될 수 있다. 페이징 장치는 이종 처리 장치에 포함된 이종 메모리들에 페이지를 할당할 수 있다. 페이징 장치는 이종 처리 장치에 탑재되거나, 이종 처리 장치와 독립적으로 구현될 수 있다.
애플리케이션 모니터부(310)는 이종 메모리의 동적 특성을 획득한다. 이종 메모리의 동적 특성은 애플리케이션이 수행되는 동안 변경될 수 있다. 애플리케이션 모니터부(310)는 이종 메모리의 동적 특성을 모니터링하여 할당 비율 조절부(320)에 전달할 수 있다. 일 실시예에 따르면, 애플리케이션 모니터부(310)는 이종 메모리 중 미리 정해진 하나 또는 그 이상의 메모리의 동적 특성을 모니터링 할 수 있다. 예를 들어, 애플리케이션 모니터부(310)는 제1 유형의 메모리의 동적 특성을 획득할 수 있다. 애플리케이션 모니터부(310)는 제1 유형의 프로세서를 위한 L1 캐시의 실패율(miss rate), 제1 유형의 프로세서를 위한 L2 캐시의 실패율 및 데이터 업무량(data traffic)에 관한 정보를 획득할 수 있다.
할당 비율 조절부(320)는 애플리케이션 모니터부(310)에서 이종 메모리의 동적 특성을 획득할 수 있다. 할당 비율 조절부(320)는 이종 메모리의 정적 특성을 획득할 수 있다. 이종 메모리의 정적 특성은 동적 실행 환경에 따라 변하지 않고 미리 정해질 수 있다. 할당 비율 조절부(320)는 이종 메모리의 정적 특성과 관련하여 기 저장된 정보를 획득하고, 획득한 정보에 기초하여 이종 메모리의 정적 특성(예를 들어, 제1 유형의 메모리의 제1 지연시간과 제2 유형의 메모리의 제2 지연시간 등)을 결정할 수 있다.
할당 비율 조절부(320)는 이종 메모리의 특성을 고려하여 메모리 지연 비율을 결정한 뒤, 메모리 지연 비율에 기초하여 페이지 할당 정책을 결정할 수 있다. 예를 들어, 할당 비율 조절부(320)는 제1 지연시간, 제2 지연시간, 제1 유형의 메모리의 대역폭, 및 제2 유형의 메모리의 대역폭에 기초하여 메모리 지연 비율을 결정할 수 있다. 할당 비율 조절부(320)는 메모리 지연 비율과 데이터 업무량에 기초하여, 페이지 할당 정책을 결정할 수 있다.
메모리의 메모리 지연 비율을 결정하는 것과 관련된 보다 상세한 사항은 도 5를 통하여 후술한다.
할당 비율 조절부(320)는 제1 유형의 메모리 및 제2 유형의 메모리 간의 페이지 할당 정책을 결정하고, 제1 유형의 메모리 및 제2 유형의 메모리 간의 페이지 할당 비율을 결정한다. 페이지 할당 정책은 메모리 지연 비율과 데이터 업무량에 기초하여 결정될 수 있다. 예를 들어, 메모리 지연 비율이 1.4 미만이고, 데이터 업무량이 140MB/s를 초과하는 경우, 할당 비율 조절부(320)는 제1 유형의 메모리 및 제2 유형의 메모리에 페이지를 할당하는 제1 정책을 선택할 수 있으며, 조건을 만족하지 못하는 경우 제1 유형의 메모리에만 페이지를 할당하는 제2 정책을 선택할 수 있다.
할당 비율 조절부(320)는 제1 정책이 선택된 경우, 제1 대역폭과 제2 대역폭을 합산한 결과와 제1 대역폭 사이의 비율에 기초하여 페이지 할당 비율을 결정할 수 있다. 예를 들어, 제1 대역폭과 제2 대역폭의 비율이 2:1 인 경우, 페이지 할당 비율은 2/3으로 결정될 수 있다.
페이지 할당 정책 및 페이지 할당 비율을 결정하는 것과 관련된 보다 상세한 사항은 도 5를 통하여 후술한다.
메모리 할당부(330)는 할당 비율 조절부(320)에 의하여 결정된 페이지 할당 비율에 기초하여 이종 메모리에 페이지를 할당한다. 예를들어, 메모리 할당부(330)는 0과 1 사이의 난수를 생성하여 난수와 할당 비율 조절부(320)에서 결정된 할당 비율을 비교함으로써 제1 유형의 메모리 및 제2 유형의 메모리에 확률적으로 페이지를 할당할 수 있다. 예를 들어, 페이지 할당 비율이 2/3으로 결정된 경우, 신규한 페이지는 2/3 확률로 제1 유형의 메모리에 할당될 수 있다.
확률적으로 페이지를 할당하는 것과 관련된 보다 상세한 사항은 도 6을 통하여 후술한다.
일 실시예에 따르면, 애플리케이션 모니터부(310)에서 정보를 획득하는 단계는 오프라인 환경에서 기 실행된 애플리케이션을 위한 메모리 할당 이력에 기초하여 정보를 획득하는 단계 및 온라인 환경에서 실행 중인 애플리케이션을 위한 메모리 할당에 기초하여 주기적으로 정보를 획득하는 단계 중 적어도 하나를 포함할 수 있다. 오프라인 환경에서 기 실행된 애플리케이션을 위한 메모리 할당 이력에 기초하여 정보를 획득하는 단계는 정적 페이징 단계에 해당할 수 있다. 온라인 환경에서 실행 중인 애플리케이션을 위한 메모리 할당에 기초하여 주기적으로 정보를 획득하는 단계는 동적 페이징 단계에 해당할 수 있다.
동적 페이징 단계는 정적 페이징 단계에 비하여 오프라인 환경에서의 정보 획득이 요구되지 않을 수 있다. 정적 페이징 단계는 동적 페이징 단계에 비하여 최적의 할당 비율이 계산되기 전이라도 페이지를 할당할 수 있다.
도 4는 일실시예에 따른 페이징 방법을 설명하기 위한 동작 흐름도이다.
도 4를 참조하면, 정보 획득 단계(410)에서 제1 유형의 메모리의 동적 특성, 제1 유형의 메모리의 정적 특성 및 제2 유형의 메모리의 정적 특성을 포함하는 정보가 획득된다. 정보 획득 단계(410)는 도 3의 애플리케이션 모니터부(310)에 의하여 수행될 수 있다.
페이지 할당 정책 결정 단계(420)에서 제1 유형의 메모리의 동적 특성, 제1 유형의 메모리의 정적 특성에 포함된 제1 지연시간과 관련된 특성 및 제2 유형의 메모리의 정적 특성에 포함된 제2 지연시간과 관련된 특성에 기초하여, 제1 유형의 메모리와 제2 유형의 메모리 간의 페이지 할당 정책이 결정된다.
페이지 할당 비율 결정 단계(430)에서 제1 유형의 메모리의 정적 특성에 포함된 제1 대역폭과 관련된 특성 및 제2 유형의 메모리의 정적 특성에 포함된 제2 대역폭과 관련된 특성에 기초하여, 제1 유형의 메모리와 제2 유형의 메모리 간의 페이지 할당 비율이 결정된다.
페이지 할당 정책 결정 단계(420) 및 페이지 할당 비율 결정 단계(430)는 도 3의 할당 비율 조절부(320)에 의하여 수행될 수 있다.
페이징 단계(440)에서 제1 유형의 메모리와 제2 유형의 메모리에 페이지가 할당된다. 페이징 단계(440)는 도 3의 메모리 할당부(330)에 의하여 수행될 수 있다.
도 5는 일실시예에 따른 페이지 할당 정책을 결정하는 동작을 설명하기 위한 도면이다. 도 5에 도시된 단계들은 도 4의 페이지 할당 정책 결정 단계(420)에 포함될 수 있고, 도 3의 할당 비율 조절부(320)에 의하여 수행될 수 있다.
도 5를 참조하면, 데이터 업무량이 미리 정해진 기준값을 초과하고(510), 메모리 지연 비율이 미리 정해진 기준값 미만의 값을 가지는 경우(520), 제1 유형의 메모리(130) 내지 제2 유형의 메모리(140)에 페이지를 할당하는 제1 정책(530)이 선택될 수 있다. 데이터 업무량이 미리 정해진 기준값 이하의 값을 가지거나, 메모리 지연 비율이 상기 기준값 이상의 값을 가지는 경우 제1 유형의 메모리에만 페이지를 할당하는 제2 정책이 선택될 수 있다(540).
데이터 업무량에 관한 정보는 도 3의 애플리케이션 모니터부(310)에서 획득될 수 있다.
메모리 지연 비율을 결정하는 방법을 설명하기에 앞서, 실시예들에 따른 이종 메모리의 구조를 간략하게 설명한다. 설명의 편의를 위하여, 일 실시예에 따른 이종 메모리가 도 1에 도시된 것과 같이 제1 유형의 메모리와 제2 유형의 메모리를 포함하는 것으로 설명하였으나, 실시예들은 이종 메모리가 3개 이상의 서로 다른 유형의 메모리들을 포함하는 경우로 확장될 수 있다.
일실시예에 따르면, 3개 이상의 이종 메모리들을 사용하는 이종 처리 장치에 있어서, 제k-1 유형의 메모리의 제k-1 지연시간은 제k 유형의 메모리의 제k 지연시간보다 짧을 수 있고, 제k-1 유형의 메모리의 제k-1 대역폭은 제k 유형의 메모리의 제k 대역폭보다 클 수 있으며, 제k-1 유형의 메모리의 용량은 제k 유형의 메모리의 용량보다 작을 수 있다. 여기서, k=2, 3, … n일 수 있다.
메모리 지연 비율에 따른 페이지 할당 정책
메모리 지연 비율을 결정하기 위해서는 우선 제1 지연시간 및 제2 지연시간을 결정해야 한다. 제1 지연시간은 수학식 1을 이용하여 결정될 수 있다.
Figure 112018099198728-pat00001
여기서, T1은 제1 지연시간이고, T1,L1D는 제1 유형의 프로세서를 위한 L1 캐시의 지연시간이며, T1,L2D는 제1 유형의 프로세서를 위한 L2 캐시의 지연시간이고, T1,M은 제1 유형의 프로세서를 위한 물리적 메모리의 지연시간이며, m1,L1D는 제1 유형의 프로세서를 위한 L1 캐시의 실패율이고, m1,L2D는 제1 유형의 프로세서를 위한 L2 캐시의 실패율이다.
제2 지연시간은 수학식 2를 이용하여 결정될 수 있다.
Figure 112018099198728-pat00002
여기서, x는 2 이상 n 이하의 자연수이고, Tx는 제x 지연시간이고, Tx,M은 제x 유형의 프로세서를 위한 물리적 메모리 및 제1 유형의 프로세서와 제x 유형의 프로세서 사이의 물리적 연결에 의한 지연시간이다.
일 실시예에 따르면, 이종 처리 장치에서, 캐시 일관성(cache coherence)이 지원되지 않을 수 있다. 예를 들어, 제x 유형의 메모리에 속하는 데이터를 제1 유형의 프로세서를 위한 L1 캐시에 쓰는 경우, 해당 데이터는 L1 캐시에만 반영되고, 제x 유형의 프로세서는 해당 데이터가 쓰여진 사실을 즉각적으로 인지하지 못할 수 있다. 때문에, 제1 유형의 프로세서가 데이터를 읽거나 쓸 때, 해당 데이터가 제1 유형의 메모리에 속할 때만 L1 캐시에 데이터를 저장하고, 해당 데이터가 제x 유형의 프로세서의 메모리에 속하면 L1 캐시에 저장하지 않도록 하는 선별적 캐싱(selective caching)을 실시할 수 있다.
일 실시예에 따르면, 이종 처리 장치에서, 메모리 요청(memory request)의 경로는 이종의 프로세서를 위한 캐시를 거치지 않을 수 있다. 예를 들어, 제1 유형의 프로세서가 제x 유형의 프로세서의 메모리를 읽거나 쓰기 위한 메모리 요청을 하는 경우, 해당 요청은 제x 유형의 프로세서를 위한 Lx 캐시를 거치지 않고 제x 유형 프로세서를 위한 메모리 컨트롤러만 거치기 때문에, 제1 유형의 프로세서에 의한 메모리 요청은 Lx 캐시에 저장되지 않을 수 있다.
이로 인하여, 제x 지연 시간은 제x 유형의 프로세서를 위한 물리적 메모리 및 제1 유형의 프로세서와 제x 유형의 프로세서 사이의 물리적 연결에 의해서만 결정될 수 있다.
메모리 지연 비율은 수학식 3을 이용하여 결정될 수 있다.
Figure 112018099198728-pat00003
여기서, rL은 메모리 지연 비율이고, y는 1 이상 n 이하의 자연수일 때 By는 제y 유형의 메모리의 제y 대역폭이다.
메모리 지연 비율이 결정되면 이에 기초하여 페이지 할당 정책을 결정할 수 있다. 예를 들어, 단계(520)에서 메모리 지연 비율과 미리 정해진 기준값을 비교함으로써, 단계(530)에서 제1 정책이 선택되거나 단계(540)에서 제2 정책이 선택될 수 있다.
페이지 할당 비율
페이지 할당 정책이 결정되면 이에 기초하여 제1 유형의 메모리 내지 제n 유형의 메모리 간의 페이지 할당 비율을 결정할 수 있다.
제1 정책을 선택한 경우, 제y 유형의 메모리에 할당할 페이지의 비율을 py로 설정할 수 있다. 이 경우, 제y 유형의 프로세서에서 정보를 처리하는 시간은 수학식 4를 이용하여 결정될 수 있다.
Figure 112018099198728-pat00004
여기서, ty는 제y 유형의 프로세서에서 정보를 처리하는 시간이고, D는 총 정보이다.
총 실행 시간은 수학식 5를 이용하여 결정될 수 있다.
Figure 112018099198728-pat00005
여기서, tT는 총 실행 시간이다.
t1 내지 tn이 모두 같은 값을 가질 때, 총 실행 시간이 최소화될 수 있다.
즉, 제1 정책이 선택된 경우 최적의 페이지 할당 비율은 수학식 6을 이용하여 결정될 수 있다.
Figure 112018099198728-pat00006
여기서,
Figure 112018099198728-pat00007
는 제1 정책이 선택된 경우에 제y 유형의 메모리에 할당할 페이지의 비율이다.
제2 정책을 선택한 경우, 제1 유형의 메모리에만 페이지가 할당될 수 있다.
따라서 제2 정책이 선택된 경우 최적의 페이지 할당 비율은 수학식 7을 이용하여 결정될 수 있다.
Figure 112018099198728-pat00008
여기서,
Figure 112018099198728-pat00009
는 제2 정책이 선택된 경우에 제y 유형의 메모리에 할당할 페이지의 비율이다.
결론적으로, 최적의 페이지 할당 비율은 수학식 8을 이용하여 결정될 수 있다.
Figure 112018099198728-pat00010
여기서,
Figure 112018099198728-pat00011
는 제y 유형의 메모리에 할당할 페이지의 비율이고, BM은 데이터 업무량이며, θ L 은 메모리 지연 비율에 대하여 미리 정해진 기준값이고, θ B 는 데이터 업무량에 대하여 미리 정해진 기준값이다.
도 6은 일실시예에 따른 페이징 동작을 설명하기 위한 도면이다. 도 6에 도시된 단계들은 도 4의 페이징 단계(440)에 포함될 수 있고, 도 3의 메모리 할당부(330)에 의하여 수행될 수 있다.
도 6을 참조하면, 메모리 할당부는 0과 1 사이의 난수를 생성할 수 있고(610), 난수와 페이지 할당 비율 값을 비교할 수 있다(620). 어느 메모리를 목표 노드로 선택할지는 수학식 9를 이용하여 결정될 수 있다.
Figure 112018099198728-pat00012
여기서,
Figure 112018099198728-pat00013
는 생성된 난수이다.
메모리 할당부는 난수가 제1 유형의 메모리에 할당할 페이지의 비율 값 이하인 경우, 제1 유형의 메모리를 목표 노드로 선택할 수 있다(631). 메모리 할당부는 난수가 제1 유형 내지 제k-1 유형의 메모리에 할당할 페이지의 비율을 합산한 값을 초과하고, 제1 유형 내지 제k 유형의 메모리에 할당할 페이지의 비율을 합산한 값 이하인 경우(630), 제k 유형의 메모리를 목표 노드로 선택할 수 있다(632).
메모리 할당부는 선택된 목표 노드에 대하여, 빈 공간이 있는지를 판단할 수 있다(640). 메모리 할당부는 목표 노드에 빈 공간이 있을 경우, 목표 노드에 페이지를 할당할 수 있다(651). 메모리 할당부는 목표 노드에 빈 공간이 없을 경우, 선택되지 않은 메모리 노드에 빈 공간이 있는지를 판단할 수 있다(650). 메모리 노드에 빈 공간이 있는지를 판단하는 과정에 있어서, z=2, 3, …, n에 대하여, 제z-1 유형의 메모리의 제z-1 지연시간은 제z 유형의 메모리의 제z 지연시간보다 짧고, 제z-1 유형의 메모리의 제z-1 대역폭은 제z 유형의 메모리의 제z 대역폭보다 크기 때문에, 제1 유형의 메모리부터 순서대로 빈 공간이 있는지를 판단할 수 있다. 메모리 할당부는 제m 유형의 메모리 노드에 빈 공간이 있음이 확인된 경우, 제m 유형의 메모리 노드에 페이지를 할당할 수 있다(652). 메모리 할당부는 선택되지 않은 메모리 노드에 빈 공간이 없을 경우, 목표 노드에 빈 공간이 있는지를 다시 판단할 수 있다(660).
페이지 할당 비율은 각각의 메모리에 할당되는 페이지의 비율일 수 있다. 따라서, 메모리 할당부는 0과 1 사이의 난수를 생성하여 난수와 할당 비율 조절부에서 결정된 할당 비율을 비교함으로써 메모리에 확률적으로 페이지를 할당할 수 있다.
이하에서, 전술한 동작들을 도 2의 실시예에 적용하여 설명한다.
메모리 지연 비율 rL은 수학식 10에 의하여 결정된다.
Figure 112018099198728-pat00014
이 때,
Figure 112018099198728-pat00015
이고,
Figure 112018099198728-pat00016
일 수 있다. 여기서, BG는 제1 유형의 메모리의 제1 대역폭이고, BC는 제2 유형의 메모리의 제2 대역폭이며, LG는 제1 지연시간이고, LG,L1D는 제1 유형의 프로세서를 위한 L1 캐시의 지연시간이며, LG,L2D는 제1 유형의 프로세서를 위한 L2 캐시의 지연시간이고, LG,M은 제1 유형의 프로세서를 위한 물리적 메모리의 지연시간이며, mG,L1D는 제1 유형의 프로세서를 위한 L1 캐시의 실패율이고, mG,L2D는 제1 유형의 프로세서를 위한 L2 캐시의 실패율이다.
메모리 지연 비율이 결정되면, 페이지 할당 비율 p OPT 는 수학식 11에 의하여 결정된다.
Figure 112018099198728-pat00017
이 때,
Figure 112018099198728-pat00018
이고,
Figure 112018099198728-pat00019
일 수 있다.
여기서, p OPT,S 는 제1 정책이 선택된 경우에 제1 유형의 메모리에 할당할 페이지의 비율이고, p OPT,I 는 제2 정책이 선택된 경우에 제1 유형의 메모리에 할당할 페이지의 비율이며, rL은 메모리 지연 비율이고, BM은 데이터 업무량이며, θ L 은 메모리 지연 비율에 대하여 미리 정해진 기준값이고, θ B 는 데이터 업무량에 대하여 미리 정해진 기준값이다.
페이지 할당 비율이 결정되면, 이종 메모리에 확률적으로 페이지를 할당하는 동작은 표 1의 수도 코드를 통하여 수행될 수 있다.
Figure 112018099198728-pat00020
여기서, r은 0과 1 사이의 난수이고, 페이지 할당 비율 p OPT 는 페이지 할당 비율이다.
일실시예에 따른 이종의 메모리들을 이용하는 페이징 방법은 지연 시간 및 데이터 업무량에 기초하여 결정된 할당 정책에 따라 페이지를 할당할 메모리를 결정함으로써 상황에 따라 유동적으로 하나 또는 복수 개의 메모리에 페이지를 할당할 수 있다. 일실시예에 따른 이종의 메모리들을 이용하는 페이징 방법은 결정된 정책에 따라 이종의 메모리의 대역폭과 관련된 특성에 기초하여 페이지 할당 비율을 결정함으로써 정보를 처리하는 데 소요되는 시간을 최소화할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 이종의 메모리들을 이용하는 페이징 방법에 있어서,
    제1 유형의 메모리의 동적 특성, 상기 제1 유형의 메모리의 정적 특성 및 제2 유형의 메모리의 정적 특성을 포함하는 정보를 획득하는 단계;
    상기 제1 유형의 메모리의 동적 특성, 상기 제1 유형의 메모리의 정적 특성에 포함된 제1 지연시간과 관련된 특성 및 상기 제2 유형의 메모리의 정적 특성에 포함된 제2 지연시간과 관련된 특성에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리 간의 페이지 할당 정책을 결정하는 단계;
    상기 결정된 정책에 따라, 상기 제1 유형의 메모리의 정적 특성에 포함된 제1 대역폭과 관련된 특성 및 상기 제2 유형의 메모리의 정적 특성에 포함된 제2 대역폭과 관련된 특성에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리 간의 페이지 할당 비율을 결정하는 단계; 및
    상기 결정된 비율에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리에 페이지를 할당하는 단계
    를 포함하고
    상기 페이지 할당 정책을 결정하는 단계는
    상기 제1 유형의 메모리의 동적 특성에 포함된 데이터 업무량이 미리 정해진 제1 기준값을 초과하고, 상기 제1 지연시간과 관련된 특성 및 제2 지연시간과 관련된 특성에 기초하여 결정된 메모리 지연 비율이 미리 정해진 제2 기준값 미만인 경우, 상기 제1 유형의 메모리 및 상기 제2 유형의 메모리에 페이지를 할당하는 제1 정책을 선택하는 단계; 및
    상기 데이터 업무량이 미리 정해진 제1 기준값 미만이거나, 상기 메모리 지연 비율이 미리 정해진 제2 기준값 이상인 경우, 상기 제1 유형의 메모리에만 페이지를 할당하는 제2 정책을 선택하는 단계를 포함하고,
    상기 제1 정책이 선택된 경우, 상기 페이지를 할당하는 단계는
    0과 1사이의 난수를 생성하는 단계; 및
    상기 난수 및 상기 페이지 할당 비율에 기초하여, 상기 제1 유형의 메모리 및 상기 제2 유형의 메모리 중 어느 하나를 목표 노드로 선택하는 단계
    를 포함하는, 페이징 방법.
  2. 제1항에 있어서,
    상기 제1 지연시간은 상기 제2 지연시간보다 짧고, 상기 제1 대역폭은 상기 제2 대역폭보다 크며, 상기 제1 유형의 메모리의 용량은 상기 제2 유형의 메모리의 용량보다 작은, 페이징 방법.
  3. 제1항에 있어서,
    상기 페이지 할당 정책을 결정하는 단계는
    상기 제1 유형의 메모리의 동적 특성, 상기 제1 지연시간과 관련된 특성, 및 상기 제2 지연시간과 관련된 특성에 기초하여, 상기 메모리 지연 비율을 결정하는 단계
    를 더 포함하는, 페이징 방법.
  4. 제1항에 있어서,
    상기 제1 유형의 메모리는 GPU 메모리를 포함하고,
    상기 제2 유형의 메모리는 CPU 메모리를 포함하는,
    페이징 방법.
  5. 제1항에 있어서,
    상기 제1 유형의 메모리는
    제1 유형의 프로세서를 위한 물리적 메모리(physical memory);
    상기 제1 유형의 프로세서를 위한 L1 캐시; 및
    상기 제1 유형의 프로세서를 위한 L2 캐시
    를 포함하는, 페이징 방법.
  6. 제5항에 있어서,
    상기 제1 지연시간과 관련된 특성은
    상기 L1 캐시의 지연시간, 상기 L2 캐시의 지연시간 및 상기 물리적 메모리의 지연시간을 포함하고,
    상기 제1 유형의 메모리의 동적 특성은
    상기 L1 캐시의 실패율, 및 상기 L2 캐시의 실패율
    을 더 포함하는, 페이징 방법.
  7. 제1항에 있어서,
    상기 메모리 지연 비율은
    상기 제1 유형의 메모리 및 상기 제2 유형의 메모리를 사용한 경우 발생하는 메모리 지연과 제1 유형의 메모리를 사용한 경우 발생하는 메모리 지연 간의 비율인, 페이징 방법.
  8. 제1항에 있어서,
    상기 제1 유형의 메모리 및 상기 제2 유형의 메모리에 페이지를 할당하는 제1 정책이 선택된 경우,
    상기 페이지 할당 비율을 결정하는 단계는
    상기 제1 대역폭과 상기 제2 대역폭을 합산한 결과와 상기 제1 대역폭 사이의 비율에 기초하여, 상기 페이지 할당 비율을 결정하는 단계
    를 포함하는, 페이징 방법.
  9. 제1항에 있어서,
    상기 제1 정책이 선택된 경우, 상기 페이지를 할당하는 단계는
    0과 1사이의 난수를 생성하는 단계;
    상기 난수와 상기 제1 유형의 메모리에 할당할 페이지의 비율을 비교하는 단계; 및
    상기 비교 결과에 따라, 상기 제1 유형의 메모리 및 상기 제2 유형의 메모리 중 어느 하나를 목표 노드로 선택하는 단계
    를 포함하는, 페이징 방법.
  10. 제1항에 있어서,
    상기 제1 정책이 선택된 경우, 상기 페이지를 할당하는 단계는
    상기 목표 노드에 빈 공간이 있는 경우, 상기 목표 노드에 페이지를 할당하는 단계; 및
    상기 선택된 목표 노드에 빈 공간이 없고 선택되지 않은 메모리 노드에 빈 공간이 있는 경우, 상기 선택되지 않은 메모리 노드에 페이지를 할당하는 단계
    를 더 포함하는, 페이징 방법.
  11. 제1항에 있어서,
    상기 정보를 획득하는 단계는
    오프라인 환경에서 기 실행된 애플리케이션을 위한 메모리 할당 이력에 기초하여, 상기 정보를 획득하는 단계; 및
    온라인 환경에서 실행 중인 애플리케이션을 위한 메모리 할당에 기초하여, 주기적으로 상기 정보를 획득하는 단계
    중 적어도 하나를 포함하는, 페이징 방법.
  12. 하드웨어와 결합되어 제1항 내지 제11항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능 기록 매체에 저장된 컴퓨터 프로그램.
  13. 이종의 메모리들을 이용하는 페이징 장치에 있어서,
    제1 유형의 메모리의 동적 특성, 상기 제1 유형의 메모리의 정적 특성 및 제2 유형의 메모리의 정적 특성을 포함하는 정보를 획득하고,
    상기 제1 유형의 메모리의 동적 특성, 상기 제1 유형의 메모리의 정적 특성에 포함된 제1 지연시간과 관련된 특성 및 상기 제2 유형의 메모리의 정적 특성에 포함된 제2 지연시간과 관련된 특성에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리 간의 페이지 할당 정책을 결정하고,
    상기 결정된 정책에 따라, 상기 제1 유형의 메모리의 정적 특성에 포함된 제1 대역폭과 관련된 특성 및 상기 제2 유형의 메모리의 정적 특성에 포함된 제2 대역폭과 관련된 특성에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리 간의 페이지 할당 비율을 결정하고,
    상기 결정된 비율에 기초하여, 상기 제1 유형의 메모리와 상기 제2 유형의 메모리에 페이지를 할당하는 적어도 하나의 프로세서
    를 포함하고,
    상기 프로세서는
    상기 페이지 할당 정책을 결정함에 있어서,
    상기 제1 유형의 메모리의 동적 특성에 포함된 데이터 업무량이 미리 정해진 제1 기준값을 초과하고, 상기 제1 지연시간과 관련된 특성 및 제2 지연시간과 관련된 특성에 기초하여 결정된 메모리 지연 비율이 미리 정해진 제2 기준값 미만인 경우, 상기 제1 유형의 메모리 및 상기 제2 유형의 메모리에 페이지를 할당하는 제1 정책을 선택하고,
    상기 데이터 업무량이 미리 정해진 제1 기준값 미만이거나, 상기 메모리 지연 비율이 미리 정해진 제2 기준값 이상인 경우, 상기 제1 유형의 메모리에만 페이지를 할당하는 제2 정책을 선택하며,
    상기 제1 정책이 선택된 경우, 상기 페이지를 할당함에 있어서,
    0과 1사이의 난수를 생성하고,
    상기 난수 및 상기 페이지 할당 비율에 기초하여, 상기 제1 유형의 메모리 및 상기 제2 유형의 메모리 중 어느 하나를 목표 노드로 선택하는,
    페이징 장치.
  14. 제13항에 있어서,
    상기 제1 지연시간은 상기 제2 지연시간보다 짧고, 상기 제1 대역폭은 상기 제2 대역폭보다 크며, 상기 제1 유형의 메모리의 용량은 상기 제2 유형의 메모리의 용량보다 작은, 페이징 장치.

  15. 제13항에 있어서,
    상기 프로세서는
    상기 페이지 할당 정책을 결정함에 있어서,
    상기 제1 유형의 메모리의 동적 특성, 상기 제1 지연시간과 관련된 특성, 및 상기 제2 지연시간과 관련된 특성에 기초하여, 상기 메모리 지연 비율을 결정하고,
    상기 메모리 지연 비율이 상기 제2 기준값 미만의 값을 가지는지 판단하는,
    페이징 장치.
  16. 삭제
  17. 제13항에 있어서,
    상기 제1 유형의 메모리는
    제1 유형의 프로세서를 위한 물리적 메모리(physical memory);
    상기 제1 유형의 프로세서를 위한 L1 캐시; 및
    상기 제1 유형의 프로세서를 위한 L2 캐시
    를 포함하는, 페이징 장치.
  18. 제13항에 있어서,
    상기 제1 유형의 메모리 및 상기 제2 유형의 메모리에 페이지를 할당하는 제1 정책이 선택된 경우,
    상기 프로세서는
    상기 페이지 할당 비율을 결정함에 있어서,
    상기 제1 대역폭과 상기 제2 대역폭을 합산한 결과와 상기 제1 대역폭 사이의 비율에 기초하여, 상기 페이지 할당 비율을 결정하는, 페이징 장치.
  19. 제13항에 있어서,
    상기 제1 정책이 선택된 경우,
    상기 프로세서는
    상기 페이지를 할당함에 있어서,
    0과 1사이의 난수를 생성하고,
    상기 난수와 상기 제1 유형의 메모리에 할당할 페이지의 비율을 비교하고,
    상기 비교 결과에 따라, 상기 제1 유형의 메모리 및 상기 제2 유형의 메모리 중 어느 하나를 목표 노드로 선택하는, 페이징 장치.
  20. 제13항에 있어서,
    상기 프로세서는
    상기 정보를 획득함에 있어서,
    오프라인 환경에서 기 실행된 애플리케이션을 위한 메모리 할당 이력에 기초하여, 상기 정보를 획득하는 동작 및
    온라인 환경에서 실행 중인 애플리케이션을 위한 메모리 할당에 기초하여, 주기적으로 상기 정보를 획득하는 동작
    중 적어도 하나를 수행하는, 페이징 장치.

KR1020180119977A 2018-10-08 2018-10-08 이종 메모리를 활용한 범용 gpu에서의 페이징 방법 및 장치 KR102149153B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180119977A KR102149153B1 (ko) 2018-10-08 2018-10-08 이종 메모리를 활용한 범용 gpu에서의 페이징 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180119977A KR102149153B1 (ko) 2018-10-08 2018-10-08 이종 메모리를 활용한 범용 gpu에서의 페이징 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200040109A KR20200040109A (ko) 2020-04-17
KR102149153B1 true KR102149153B1 (ko) 2020-08-28

Family

ID=70460745

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180119977A KR102149153B1 (ko) 2018-10-08 2018-10-08 이종 메모리를 활용한 범용 gpu에서의 페이징 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102149153B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014191521A (ja) * 2013-03-27 2014-10-06 Toshiba Corp マルチコアプロセッサおよび制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092327B2 (en) * 2012-12-10 2015-07-28 Qualcomm Incorporated System and method for allocating memory to dissimilar memory devices using quality of service
US9110592B2 (en) * 2013-02-04 2015-08-18 Microsoft Technology Licensing, Llc Dynamic allocation of heterogenous memory in a computing system
KR20150044370A (ko) * 2013-10-16 2015-04-24 삼성전자주식회사 이종 메모리들을 관리하는 시스템들

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014191521A (ja) * 2013-03-27 2014-10-06 Toshiba Corp マルチコアプロセッサおよび制御方法

Also Published As

Publication number Publication date
KR20200040109A (ko) 2020-04-17

Similar Documents

Publication Publication Date Title
US11847508B2 (en) Convergence among concurrently executing threads
US10866806B2 (en) Uniform register file for improved resource utilization
Markthub et al. DRAGON: breaking GPU memory capacity limits with direct NVM access
US9189415B2 (en) EDRAM refresh in a high performance cache architecture
US11748599B2 (en) Super-tiling in neural network processing to enable analytics at lower memory speed
US11176046B2 (en) Graph-computing-oriented heterogeneous in-memory computing apparatus and operational method thereof
KR102526619B1 (ko) 지속적인 컴퓨팅을 위한 저 전력 및 저 대기시간 gpu 코프로세서
US9513975B2 (en) Technique for computational nested parallelism
KR102465896B1 (ko) 집약성을 개선하기 위한 머신 학습 모델들의 수정
US9710306B2 (en) Methods and apparatus for auto-throttling encapsulated compute tasks
US11609792B2 (en) Maximizing resource utilization of neural network computing system
KR20210108749A (ko) 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템
CN112130969A (zh) 有效执行经由任务图指定的工作负载
US20180046474A1 (en) Method for executing child kernels invoked on device side utilizing dynamic kernel consolidation and related non-transitory computer readable medium
US20190278574A1 (en) Techniques for transforming serial program code into kernels for execution on a parallel processor
US8151095B1 (en) System and method for context migration across CPU threads
Jeon et al. Locality-aware gpu register file
Midorikawa et al. Locality-aware stencil computations using flash SSDs as main memory extension
US11138291B2 (en) Assymetric allocation of SRAM and data layout for efficient matrix multiplication
KR102149153B1 (ko) 이종 메모리를 활용한 범용 gpu에서의 페이징 방법 및 장치
KR20210106635A (ko) 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템
US8639887B2 (en) Dynamically altering a pipeline controller mode based on resource availability
US10817295B2 (en) Thread-level sleep in a multithreaded architecture
US20230297426A1 (en) Reconfiguring register and shared memory usage in thread arrays
Patil Data transfer optimization in CPU/GPGPU Communication

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant