KR20230001933A - Gpu 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법 - Google Patents

Gpu 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법 Download PDF

Info

Publication number
KR20230001933A
KR20230001933A KR1020210085057A KR20210085057A KR20230001933A KR 20230001933 A KR20230001933 A KR 20230001933A KR 1020210085057 A KR1020210085057 A KR 1020210085057A KR 20210085057 A KR20210085057 A KR 20210085057A KR 20230001933 A KR20230001933 A KR 20230001933A
Authority
KR
South Korea
Prior art keywords
page
gpu
processing unit
computing device
memory
Prior art date
Application number
KR1020210085057A
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 KR1020210085057A priority Critical patent/KR20230001933A/ko
Publication of KR20230001933A publication Critical patent/KR20230001933A/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/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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0877Cache access modes
    • G06F12/0882Page mode
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/302In image processor or graphics adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

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

본 발명의 일실시 예에 따른 GPU 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치는 저장된 명령어를 실행하도록 구성되는 중앙 처리부(CPU), 그래픽 연산을 수행하도록 구성되고, 적어도 하나 이상의 알고리즘을 제어하는 그래픽 처리부(GPU) 및 상기 명령어 및 적어도 하나 이상의 상기 알고리즘을 저장하는 메모리부를 포함하며, 상기 그래픽 처리부는, 실행되는 프로그램에서 연속적/비연속적인 메모리 접근 패턴을 산출하고, 산출된 상기 메모리 접근 패턴에 기초하여 선-적재 대상 페이지를 선정하도록 제어하는 것을 포함한다.

Description

GPU 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법{Computing Device and Method for Analysis of Prefetch Accuracy on GPU Unified Virtual Memory}
본 발명은 GPU 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법에 관한 것으로, 더욱 상세하게는 CPU-GPU 통합 가상 메모리 상에서 선-적재 기법을 사용하여 요구 페이징으로 인해 발생하는 페이지 폴트를 예방하고 성능 저하를 완화시킬 수 있는 GPU 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법에 관한 것이다.
일반적으로 GPU는 특유의 뛰어난 병렬처리 능력으로 인해 기존의 그래픽 연산뿐만 아니라 과학/공학 프로그램, 기계학습 등의 범용 연산에 많이 사용되고 있다. 하지만 한정된 메모리 용량으로 인해 CPU-GPU간 데이터 이동을 개발자가 일일이 처리해야 하는 낮은 개발 생산성을 가지고 있다. 이러한 단점을 보완하기 위해서 최신 GPU에서는 통합 가상 메모리 인터페이스를 지원한다. 통합 가상 메모리는 CPU와 GPU의 메모리에 대해 하나의 통합된 주소 공간을 제공하여 개발자의 개입없이 데이터 이동을 수행한다. 그러나 CPU-GPU간 잦은 데이터 이동은 극심한 성능 저하를 발생하는 문제점이 있다.
공개특허공보 10-10-2017-0065276, 발명의 명칭: 비휘발성 메인 메모리 시스템의 페이지 폴트 처리 방법
본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로, CPU-GPU 통합 가상 메모리 상에서 선-적재 기법을 사용하여 요구 페이징으로 인해 발생하는 페이지 폴트를 예방하고 성능 저하를 완화시킬 수 있는 GPU 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법을 제공하는데 그 목적이 있다.
본 발명에서 이루고자 하는 기술적 목적들은 이상에서 언급한 사항들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 이하 설명할 본 발명의 실시 예들로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 고려될 수 있다.
이하에서는 본 발명의 실시 예들로서 GPU 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법에 대해서 설명한다.
본 발명의 일실시 예에 따른 GPU 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치는 저장된 명령어를 실행하도록 구성되는 중앙 처리부(CPU), 그래픽 연산을 수행하도록 구성되고, 적어도 하나 이상의 알고리즘을 제어하는 그래픽 처리부(GPU) 및 상기 명령어 및 적어도 하나 이상의 상기 알고리즘을 저장하는 메모리부를 포함하며, 상기 그래픽 처리부는, 실행되는 프로그램에서 연속적/비연속적인 메모리 접근 패턴을 산출하고, 산출된 상기 메모리 접근 패턴에 기초하여 선-적재 대상 페이지를 선정하도록 제어하는 것을 포함한다.
또한, 상기 그래픽 처리부는, 상기 메모리 접근 패턴에 기초하여 상기 선-적재 대상 페이지 중 특정 페이지에 폴트가 발생하면 상기 특정 페이지가 포함된 페이지 블록 전체를 선-적재 대상으로 선정하도록 제어하는 것을 포함할 수 있다.
또한, 상기 그래픽 처리부는, 상기 특정 페이지가 포함된 페이지 블록과 인접한 인접 페이지 블록이 선-적재된 기록이 없다면 이를 비연속적인 메모리 접근 패턴으로 간주하고 상기 페이지 블록만 선-적재하도록 제어하는 것을 포함할 수 있다.
또한, 상기 그래픽 처리부는, 선-적재된 상기 페이지 블록과 인접한 상기 인접 페이지 블록에 접근 기록이 존재하는 경우 이는 연속적인 메모리 접근 패턴으로 간주하고, 상기 인접한 페이지 블록에서 이전에 n 페이지 블록만큼을 선-적재한 경우, 현재 페이지 폴트가 발생한 페이지부터 2n 페이지 블록만큼을 선-적재하도록 제어하는 것을 포함할 수 있다.
또한, 상기 그래픽 처리부는, 메모리 접근이 연속적으로 발생할수록 선-적재할 페이지 블록의 수를 2배씩 증가시키며, 최대 32 페이지 블록까지 증가시키도록 제어하는 것을 포함할 수 있다.
또한, 상기 그래픽 처리부는, 선-적재된 상기 페이지 블록에 포함되는 모든 페이지를 LRU 리스트에 등록하도록 제어하는 것을 포함할 수 있다.
또한, 상기 그래픽 처리부는, 상기 모드 페이지 중 가장 최근에 접근한 페이지를 상기 LRU 리스트의 최상단에 위치시키고, 접근한지 가장 오랜 시간이 지난 페이지를 상기 LRU 리스트의 최하단에 위치시키도록 제어하는 것을 포함할 수 있다.
또한, 상기 그래픽 처리부는, 상기 특정 페이지에 접근이 발생한 경우, 상기 특정 페이지가 속한 페이지 블록에 포함된 모든 페이지를 가상 메모리 주소에 기초하여 검색하고 상기 LRU 리스트 최상단으로 이동시키도록 제어하는 것을 포함할 수 있다.
또한, 상기 그래픽 처리부는, 상기 페이지를 교체하는 경우, 상기 LRU 리스트 최하단의 교체 대상 페이지가 속한 페이지 블록 전체를 한꺼번에 교체하도록 제어하는 것을 포함할 수 있다.
본 발명의 일실시 예에 따른 GPU 통합 가상 메모리상 선-적재 기법 분석하는 방법은 상기 그래픽 처리부를 이용하여 실행되는 프로그램에서 연속적/비연속적인 메모리 접근 패턴을 산출하는 단계와 산출된 상기 메모리 접근 패턴에 기초하여 선-적재 대상 페이지를 선정하는 단계를 포함하고, 상기 선정하는 단계는, 상기 선-적재 대상 페이지 중 특정 페이지에 폴트가 발생하면 상기 특정 페이지가 포함된 페이지 블록 전체를 선-적재 대상으로 선정하는 것을 포함한다.
또한, 상기 선정하는 단계는, 상기 특정 페이지가 포함된 페이지 블록과 인접한 인접 페이지 블록이 선-적재된 기록이 없다면 이를 비연속적인 메모리 접근 패턴으로 간주하고 상기 페이지 블록만 선-적재하는 것을 포함할 수 있다.
또한, 상기 선정하는 단계는, 선-적재된 상기 페이지 블록과 인접한 상기 인접 페이지 블록에 접근 기록이 존재하는 경우 이는 연속적인 메모리 접근 패턴으로 간주하고, 상기 인접한 페이지 블록에서 이전에 n 페이지 블록만큼을 선-적재한 경우, 현재 페이지 폴트가 발생한 페이지부터 2n 페이지 블록만큼을 선-적재하는 것을 포함할 수 있다.
또한, 상기 선정하는 단계는, 메모리 접근이 연속적으로 발생할수록 선-적재할 페이지 블록의 수를 2배씩 증가시키며, 최대 32 페이지 블록까지 증가시키는 것을 포함할 수 있다.
또한, 상기 선정하는 단계는, 선-적재된 상기 페이지 블록에 포함되는 모든 페이지를 LRU 리스트에 등록하는 것을 포함할 수 있다.
또한, 상기 선정하는 단계는, 상기 모드 페이지 중 가장 최근에 접근한 페이지를 상기 LRU 리스트의 최상단에 위치시키고, 접근한지 가장 오랜 시간이 지난 페이지를 상기 LRU 리스트의 최하단에 위치시키는 것을 포함할 수 있다.
또한, 상기 선정하는 단계는, 상기 특정 페이지에 접근이 발생한 경우, 상기 특정 페이지가 속한 페이지 블록에 포함된 모든 페이지를 가상 메모리 주소에 기초하여 검색하고 상기 LRU 리스트 최상단으로 이동시키는 것을 포함할 수 있다.
또한, 상기 선정하는 단계는, 상기 페이지를 교체하는 경우, 상기 LRU 리스트 최하단의 교체 대상 페이지가 속한 페이지 블록 전체를 한꺼번에 교체하는 것을 포함할 수 있다.
상술한 본 발명의 양태들은 본 발명의 바람직한 실시 예들 중 일부에 불과하며, 본원 발명의 기술적 특징들이 반영된 다양한 실시 예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 발명의 상세한 설명을 기반으로 도출되고 이해될 수 있다.
본 발명의 실시 예들에 따르면 다음과 같은 효과를 얻을 수 있다.
본 발명의 실시 예에 따른 GPU 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법은 CPU-GPU 통합 가상 메모리 상에서 선-적재 기법을 사용하여 요구 페이징으로 인해 발생하는 페이지 폴트를 예방하고 성능 저하를 완화시킬 수 있는 효과가 있다.
본 발명의 실시 예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 이하의 본 발명의 실시 예들에 대한 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 발명을 실시함에 따른 의도하지 않은 효과들 역시 본 발명의 실시 예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되고, 첨부된 도면들은 본 발명에 대한 다양한 실시 예들을 제공한다. 또한, 첨부된 도면들은 상세한 설명과 함께 본 발명의 실시 형태들을 설명하기 위해 사용된다.
도 1은 본 발명의 일실시 예에 따른 GPU 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치를 설명하기 위한 도이다.
도 2는 본 발명의 일실시 예에 따른 컴퓨팅 장치 중 GPU와 CPU 간의 동작을 설명하기 위한 도이다.
도 3 내지 도 6은 본 발명의 일실시 예에 따른 GPU 통합 가상 메모리상 선-적재 기법 분석하는 방법을 설명하기 위한 도이다.
이하에서는 본 발명의 실시 예들로서 GPU 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치 및 방법에 대해서 설명한다.
이하의 실시 예들은 본 발명의 구성요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성할 수도 있다. 본 발명의 실시 예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.
도면에 대한 설명에서, 본 발명의 요지를 흐릴 수 있는 부분, 장치 및/또는 구성 등은 기술하지 않았으며, 당업자의 수준에서 이해할 수 있을 정도의 부분, 장치 및/또는 구성 또한 기술하지 아니하였다. 또한, 도면에서 동일한 도면 부호를 사용하여 지칭하는 부분은 장치 구성 또는 방법에서 동일한 구성 요소 또는 단계를 의미한다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "~부" 또는 ~기" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미한다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
또한, 본 발명의 실시 예들에서 사용되는 특정(特定) 용어들 및/또는 기호들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
도 1은 본 발명의 일실시 예에 따른 GPU 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치를 설명하기 위한 도이다.
도 1을 살펴보면, 본 발명의 실시 예에 따른 컴퓨팅 장치(100)는 중앙 처리부(CPU, 102), 그래픽 처리부(GPU, 104) 메모리부(108) 등을 포함할 수 있다.
컴퓨터 장치(100)는 저장된 명령어를 실행하도록 적응되는 중앙 처리부(CPU, 102)뿐 아니라, CPU(102)에 의해 실행가능한 명령어를 저장하는 메모리부(108)를 포함할 수 있다. CPU(102)는 버스(106)에 의해 메모리부(108)에 결합될 수 있다. 예를 들면, 컴퓨팅 장치(100)는 랩톱 컴퓨터, 데스크톱 컴퓨터, 태블릿 컴퓨터, 모바일 장치, 또는 서버일 수 있다.
CPU(102)는 싱글 코어 프로세서, 멀티-코어 프로세서, 컴퓨팅 클러스터, 또는 임의 개수의 다른 구성들일 수 있다. 뿐만 아니라, 컴퓨팅 장치(100)는 적어도 하나 이상의 CPU(102)를 포함할 수 있다. CPU(102)에 의해 실행되는 명령어는 메모리 공유 절차(a memory sharing procedure)를 구현하도록 사용될 수 있다.
컴퓨팅 장치(100)는 그래픽 처리부(GPU, 104)를 포함할 수 있다. GPU(104)는 컴퓨팅 장치(100) 내의 입력/출력(I/O) 장치일 수 있다. I/O 장치는 입력, 출력 또는 그들의 어떠한 조합과도 통신할 수 있다. GPU(104)는 버스(106)를 통해 CPU(102)와 전기적으로 연결될 수 있다. 이에 한정되는 것은 아니며, GPU(104)는 컴퓨팅 장치(100) 내에서 CPU(102)와 하나의 칩(chip) 또는 동일한 기판 상에 배치될 수 있다.
GPU(104)는 컴퓨팅 장치(100) 내에서 임의 개수의 그래픽 연산(operations)을 수행하도록 구성될 수 있다. 예를 들면, GPU(104)는 그래픽 이미지, 그래픽 프레임, 비디오 또는 그 유사한 것들을 렌더링하거나 조작하도록 구성되어 컴퓨팅 장치(100)의 사용자에게 디스플레이될 수 있다. GPU(104)는 많은 그래픽 엔진(도시되지 않음)을 포함하고, 각 그래픽 엔진은 특정 그래픽 작업을 수행하거나 또는 특정 유형의 업무량을 실행하도록 구성될 수 있다. 예를 들어, GPU(104)는 메모리부(108)에 적어도 하나 이상의 알고리즘을 제어할 수 있다. 적어도 하나 이상의 알고리즘은 GPU(104)의 제어 하에 프로그램 또는 어플리케이션이 실행되기 전에 적합한 페이지 이동 단위의 값을 설정할 수 있고, 프로그램 또는 어플리케이션이 실행된 후에 접근한 페이지의 GPU 메모리에 대한 적재여부에 따라 페이지 폴트를 센싱할 수 있다. GPU(104)는 연속적/비연속적 접근 패턴에 따라 선-적재 알고리즘을 제어하여 대상 페이지를 선정하고, GPU 메모리에 적재할 수 있다. 그리고, GPU(104)는 GPU 메모리가 포화되어 페이지 교체가 필요한 경우에 멀티-페이지 블록 단위 LRU 리스트 알고리즘을 제어하여 페이지가 교체되도록 GPU 메모리에서 CPU 메모리로 이동시킬 수 있다.
즉, GPU(104)는 실행되는 프로그램에서 연속적/비연속적인 메모리 접근 패턴을 산출하고, 산출된 상기 메모리 접근 패턴에 기초하여 선-적재 대상 페이지를 선정하도록 제어할 수 있다.
GPU(104)는 메모리 접근 패턴에 기초하여 선-적재 대상 페이지 중 특정 페이지에 폴트가 발생하면 특정 페이지가 포함된 페이지 블록 전체를 선-적재 대상으로 선정하도록 제어할 수 있다.
GPU(104)는 특정 페이지가 포함된 페이지 블록과 인접한 인접 페이지 블록이 선-적재된 기록이 없다면 이를 비연속적인 메모리 접근 패턴으로 간주하고 페이지 블록만 선-적재하도록 제어할 수 있다.
GPU(104)는 선-적재된 페이지 블록과 인접한 인접 페이지 블록에 접근 기록이 존재하는 경우 이는 연속적인 메모리 접근 패턴으로 간주하고, 인접한 페이지 블록에서 이전에 n 페이지 블록만큼을 선-적재한 경우, 현재 페이지 폴트가 발생한 페이지부터 2n 페이지 블록만큼을 선-적재하도록 제어할 수 있다.
GPU(104)는 메모리 접근이 연속적으로 발생할수록 선-적재할 페이지 블록의 수를 2배씩 증가시키며, 최대 32 페이지 블록까지 증가시키도록 제어할 수 있다.
GPU(104)는 선-적재된 페이지 블록에 포함되는 모든 페이지를 LRU 리스트에 등록하도록 제어할 수 있다.
GPU(104)는 모드 페이지 중 가장 최근에 접근한 페이지를 LRU 리스트의 최상단에 위치시키고, 접근한지 가장 오랜 시간이 지난 페이지를 LRU 리스트의 최하단에 위치시키도록 제어할 수 있다.
GPU(104)는 특정 페이지에 접근이 발생한 경우, 특정 페이지가 속한 페이지 블록에 포함된 모든 페이지를 가상 메모리 주소에 기초하여 검색하고 LRU 리스트 최상단으로 이동시키도록 제어할 수 있다.
GPU(104)는 페이지를 교체하는 경우, LRU 리스트 최하단의 교체 대상 페이지가 속한 페이지 블록 전체를 한꺼번에 교체하도록 제어할 수 있다.
컴퓨팅 장치(100)는 메모리부(108)를 포함할 수 있다. 메모리부(108)는 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 플래시 메모리, 또는 기타 다른 적합한 메모리 시스템을 포함할 수 있다. 예를 들면, 메모리부(108)는 동적 랜덤 액세스 메모리(DRAM)를 포함할 수 있다. 메모리부(108)는 메모리 공유 절차를 구현하는 명령을 실행하도록 구성되는 구동 프로그램을 저장할 수 있다. 구동 프로그램은 소프트웨어, 애플리케이션 프로그램, 또는 애플리케이션 코드 등일 수 있다. 예를 들어, 메모리부(108)는 선-적재 알고리즘, 멀티-페이지 블록 단위 LRU 리스트 알고리즘 등을 저장할 수 있다.
CPU(102) 및 GPU(104)는 어느 레벨의 메모리에도 액세스할 수 있다. CPU(102) 및 GPU(104)는 상호 액세스 가능한 저장소 위치를 채택하여 공유 가상 메모리를 수행할 수 있다. 임의의 상호 액세스 가능한 저장소 위치는 메모리부(104)의 임의의 영역, 네트워크화된 저장소 위치, 썸드 라이브, 또는 그들의 임의의 조합을 포함할 수 있지만 이것으로 한정되지 않는다.
메모리 관리 장치(a memory management unit (MMU))(126)는 CPU(102) 및 GPU(104)의 가상 어드레스 공간을 어드레스 공간의 여러 페이지로 분할할 수 있다. CPU(102) 및 GPU(104)는 각각 그들 자신의 가상 어드레스 공간을 가질 수 있다. 가상 어드레스 공간은 컴퓨팅 시스템 내에서 실행되는 다양한 애플리케이션을 가상 어드레스의 특정 서브 셋으로 분리시킬 수 있다. 가상 어드레스 공간을 사용함으로써, 하나의 애플리케이션이 다른 애플리케이션의 데이터에 액세스하지 않을 수 있다.
따라서, MMU(126)는 CPU 페이지 테이블(128) 및 GPU 페이지 테이블을 포함할 수 있다. CPU 페이지 테이블은 물리적 어드레스 위치에 매핑되는 CPU의 가상 어드레스를 포함할 수 있다. 예를 들어, GPU 페이지 테이블은 물리적 어드레스 위치에 매핑되는 GPU의 가상 어드레스를 포함할 수 있다. CPU 페이지 테이블(128)은 CPU 가상 어드레스 공간을 물리적 어드레스 공간으로 매핑하는 것을 포함할 수 있다. 물리적 어드레스 공간은 물리적 위치에 대응할 수 있다. GPU 페이지 테이블(130)은 GPU 가상 어드레스 공간을 동일한 가상 어드레스 공간으로 매핑하는 것을 포함할 수 있다. CPU 페이지 테이블(128)은 CPU 메모리라 칭할 수 있고, GPU 페이지 테이블(130)는 GPU 메모리라 칭할 수 있다.
다양한 실시 예에서, CPU 페이지 테이블(128)로부터의 가상 메모리 어드레스 및 GPU 페이지 테이블(130)로부터의 그래픽 가상 메모리 어드레스는 변환 절차를 통해 물리적 메모리 페이지에 매핑될 수 있다. 변환 절차는 임의의 가상 메모리 어드레스를 대응하는 물리적 어드레스로 전환하도록 사용될 수 있다. 예를 들면, 변환 절차는 페이지 테이블 워크(a page table walk)를 통해서 수행될 수 있으며, 이는 페이지 테이블 내의 가상 메모리 어드레스를 페이지 테이블 내의 물리적 메모리 어드레스로 전환하는 특정 전환 테이블에 기초하여 수행될 수 있다.
또한, 변환 룩어사이드 버퍼(a translation look-aside buffer)가 CPU 및 GPU의 가상 어드레스를 그들의 각 페이지 테이블 내의 물리적 어드레스 공간으로 변환하는데 사용될 수 있다.
변환 절차가 수행된 이후에, 피닝될 수 있다. 피닝(pinning)은 물리적 위치 및 그 대응하는 물리적 어드레스가 변경되지 않도록 보호하는 것이다. 따라서, 피닝하는 것은 가상 어드레스 공간과 물리적 어드레스 공간 간의 "하드(hard)" 매핑을 보장할 수 있다. 어드레스 공간들 간의 하드 매핑은 피닝된 이후에 변하지 않는 매핑일 수 있다. 만일 피닝되지 않는다면, 페이지 장애가 발생될 수 있고, 또는 물리적 위치가 이동함에 따라 잘못된 데이터가 처리될 수 있다.
애플리케이션은 CPU(102) 상에서 실행될 수 있으며, 데이터 처리와 같은 연산을 수행할 수 있다. CPU(102)는 연산을 GPU(104)로 핸드 오프(handoff)할 수 있다. 페이지 테이블들이 매핑되었기 때문에, GPU(104)는 데이터를 다른 어드레스 공간으로 복사하지 않고, CPU(102)에 의해 오프 로딩된 연산의 즉각적인 실행을 개시할 수 있다. CPU(102)에 의해 연산이 완료될 때, GPU(104)는 연산이 완료되었다고 CPU(122)에 신호할 수 있다. CPU(102)는 데이터를 본래의 어드레스 공간으로 다시 복사하지 않고, 데이터를 계속해서 처리할 수 있다.
애플리케이션에 의해 요청된 연산이 GPU(104)에 의해 수행될 때, GPU(104)에서 CPU(102)로, 또는 그 역으로, 데이터를 복사하지 않고, GPU(104)와 CPU(102) 간에 공유될 수 있다.
CPU(102)는 컴퓨팅 장치(100)를 하나 이상의 I/O 장치(134)에 연결하도록 적응된 입출력(I/O) 장치 인터페이스(132)에 버스(106)를 통해 연결될 수 있다. I/O 장치(134)는, 예를 들면, 키보드 및 포인팅 장치를 포함할 수 있으며, 포인팅 장치는 터치패드나 터치스크린을 포함할 수 있다. I/O 장치(134)는 컴퓨팅 장치(100)의 빌트인 (built-in) 컴포넌트이거나, 또는 컴퓨팅 장치(100)의 외부에 연결되는 장치일 수 있다.
CPU(102)는 컴퓨팅 장치(100)를 디스플레이 장치에 연결하도록 적응된 디스플레이 인터페이스(136)에 버스(106)를 통해 링크될 수 있다. 디스플레이 장치는 컴퓨팅 장치(100)의 빌트인(built-in) 컴포넌트인 디스플레이 스크린을 포함할 수 있다. 디스플레이 장치는 또한 그 중에서도, 컴퓨팅 장치(100)의 외부에 연결되는, 컴퓨터 모니터, 텔레비전 또는 프로젝터일 수 있다.
네트워크 인터페이스 컨트롤러(NIC)는 버스(106)를 통해 컴퓨팅 장치(100)를 네트워크에 연결하도록 적응될 수 있다. 네트워크는 그 중에서도 광역 네트워크(WAN), 근거리 네트워크(LAN), 또는 인터넷일 수 있다.
도 1에 도시된 컴퓨팅 장치(100)에 대한 모든 컴포넌트는 이에 한정되지 않으며, 경우에 따라 더 추가되거나 삭제될 수 있다. 예를 들어, 컴퓨팅 장치(100)는, 특정 구현의 세부사항에 따라 도 1에 도시되지 않은 몇 개의 애플리케이션이라도 포함할 수 있다.
도 2 내지 도 6은 본 발명의 일실시 예에 따른 GPU 통합 가상 메모리상 선-적재 기법 분석하는 방법을 설명하기 위한 도이다.
도 2 내지 도 6을 참조하면, 본 발명의 일실시 예에 따른 GPU 통합 가상 메모리상 선-적재 기법 분석하는 방법은 GPU의 제어 하에 실행되는 프로그램에서 연속적/비연속적인 메모리 접근 패턴을 산출하는 단계와 산출된 메모리 접근 패턴에 기초하여 선-적재 대상 페이지를 선정하는 단계를 포함할 수 있다.
선정하는 단계는 GPU의 제어 하에 선-적재 대상 페이지 중 특정 페이지에 폴트가 발생하면 특정 페이지가 포함된 페이지 블록 전체를 선-적재 대상으로 선정할 수 있다.
선정하는 단계는 GPU의 제어 하에 특정 페이지가 포함된 페이지 블록과 인접한 인접 페이지 블록이 선-적재된 기록이 없다면 이를 비연속적인 메모리 접근 패턴으로 간주하고 페이지 블록만 선-적재할 수 있고, 선-적재된 페이지 블록과 인접한 인접 페이지 블록에 접근 기록이 있는 경우 이를 연속적인 메모리 접근 패턴으로 간주하고, 인접한 페이지 블록에서 이전에 n 페이지 블록만큼을 선-적재한 경우, 현재 페이지 폴트가 발생한 페이지부터 2n 페이지 블록만큼을 선-적재할 수 있다. 즉, 인접한 페이지 블록에서 과거에 n 페이지 블록만큼을 선-적재하였다면, 현재 페이지 폴트가 일어난 곳에서부터 2n 페이지 블록만큼을 선-적재할 수 있다.
선정하는 단계는 GPU의 제어 하에 메모리 접근이 연속적으로 발생할수록 선-적재할 페이지 블록의 수를 2배씩 증가시키며, 최대 32 페이지 블록까지 증가시키는 것을 포함할 수 있다.
즉, 본 발명의 일실시 예에 따른 GPU 통합 가상 메모리상 선-적재 기법 분석하는 방법은 프로그램 런타임에서 연속적/비연속적 메모리 접근 패턴을 파악하고 패턴에 따라 선-적재 대상 페이지를 선정할 수 있다.
기본적으로 특정 페이지에 폴트가 발생하면 해당 페이지가 포함된 64KB의 페이지 블록 전체가 선-적재 대상이 될 수 있다.(예를 들어, 1 페이지 블록은 16개의 페이지로 구성될 수 있다.)
만약 해당 페이지 블록과 인접한 페이지 블록이 선-적재된 기록이 없다면 GPU는 이를 비연속적인 접근 패턴으로 간주하고 해당 페이지 블록만 선-적재할 수 있다. 선-적재한 페이지 블록과 인접한 페이지 블록에 접근 기록이 존재하는 경우 GPU는 이를 연속적인 메모리 접근 패턴으로 간주할 수 있다. 그리고 인접한 페이지 블록에서 과거에 n 페이지 블록만큼을 선-적재하였다면, GPU는 현재 페이지 폴트가 일어난 곳에서부터 2n 페이지 블록만큼을 선-적재할 수 있다.
도 3에 도시된 바와 같이, 선-적재 알고리즘은 GPU의 제어 하에 연속적/비연속적 접근 패턴을 파악하고 선-적재를 진행할 수 있다. 도 3에서는 데이터 이동의 단위가 1 페이지 블록(16페이지)인 경우를 도시한 것이다. 인접한 페이지에 연속적으로 페이지 폴트가 발생할수록 한 번에 선-적재되는 페이지 블록이 두 배씩 늘어나는 것을 확인할 수 있다. 즉, 메모리 접근이 연속적으로 발생할수록 선-적재할 페이지 블록의 수는 2배씩 늘어나며, 최대 32 페이지 블록까지 증가할 수 있다.
상술한 선정하는 단계에서 64KB짜리 1 페이지 블록은 데이터 이동의 최소 단위가 될 수 있다. 이에 한정되는 것은 아니며, GPU는 추가적으로 데이터 이동의 최소 단위를 변경하여 프로그램에 따라 적합하게 설정할 수 있다. 예를 들어, 데이터 이동의 최소 단위는 1, 2, 4, 8, 16 페이지 블록이 가능하며, 이는 소스 코드의 설정값을 변경할 수 있다. 도 4에서는 페이지 이동의 최소 단위가 4 페이지 블록인 경우 선-적재를 진행하는 도시하였다. 페이지 폴트가 발생하면 해당 페이지가 속한 4 페이지 블록 단위 전체를 선-적재할 수 있다. 상술한 도 3과 마찬가지로 연속적인 접근이 발생할 때마다 선-적재하는 페이지 블록이 두 배씩 증가할 수 있다.
상술한 바와 같이, 본 발명은 메모리의 접근 패턴에 따라 폴트가 발생된 페이지를 페이지 블록 단위로 메모리에 선적재할 수 있다.
본 발명은 도 5 및 도 6에 도시된 바와 같이, 선적재된 페이지 블록을 LRU(Least Recently Used) 리스트에 등록하고, 특정 페이지에 대한 접근 내지 교체가 된 페이지 블록에 포함된 모든 페이지를 페이지 블록 단위로 LRU 리스트의 상단으로 이동 내지 교체할 수 있다.
상술한 바와 같이, 본 발명은 페이지 블록 단위로 선-적재가 발생하므로 한 번에 최소 16개의 페이지가 메모리에 적재될 수 있다. 그러나 기존의 LRU 페이지 교체 알고리즘은 하나의 페이지 단위로 작동하므로 본 발명의 선-적재 대상 선정 알고리즘과 같이 작동하기에 적합하지 않았다. 따라서 본 발명은 LRU 리스트의 관리 또한 페이지 블록 단위로 동작할 수 있다.
본 발명은 선-적재 기법에 의해 적재된 모든 페이지를 LRU 리스트에 등록할 수 있다.
도 5을 참조하면, 본 발명은 모드 페이지 중 가장 최근에 접근한 페이지를 LRU 리스트의 최상단에 위치시키고, 접근한지 가장 오랜 시간이 지난 페이지를 LRU 리스트의 최하단에 위치시킬 수 있다. 본 발명은 특정 페이지에 접근이 발생한 경우, 특정 페이지가 속한 페이지 블록에 포함된 모든 페이지를 가상 메모리 주소에 기초하여 검색하고 LRU 리스트 최상단으로 이동시킬 수 있다.
도 6을 참조하면, 본 발명은 페이지 교체가 발생할 때도 마찬가지로, LRU 리스트 최하단의 교체 대상 페이지가 속한 페이지 블록 전체를 한꺼번에 교체할 수 있다.
상술한 바와 같이, 본 발명의 LRU 리스트 관리 알고리즘도 기본적으로는 1 페이지 블록 단위로 관리되지만, 데이터 이동의 최소 단위가 변경된 경우, 설정에 따라 n 페이지 블록 단위로 관리할 수 있다.
상술한 본 발명의 실시 예들은 본 발명의 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다. 또한, 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함할 수 있다.
100 : 컴퓨팅 장치
101: CPU
102: GPU
108: 메모리부

Claims (17)

  1. GPU 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치에 있어서,
    저장된 명령어를 실행하도록 구성되는 중앙 처리부(CPU);
    그래픽 연산을 수행하도록 구성되고, 적어도 하나 이상의 알고리즘을 제어하는 그래픽 처리부(GPU); 및
    상기 명령어 및 적어도 하나 이상의 상기 알고리즘을 저장하는 메모리부를 포함하며,
    상기 그래픽 처리부는,
    실행되는 프로그램에서 연속적/비연속적인 메모리 접근 패턴을 산출하고, 산출된 상기 메모리 접근 패턴에 기초하여 선-적재 대상 페이지를 선정하도록 제어하는 컴퓨팅 장치.
  2. 제1 항에 있어서,
    상기 그래픽 처리부는,
    상기 메모리 접근 패턴에 기초하여 상기 선-적재 대상 페이지 중 특정 페이지에 폴트가 발생하면 상기 특정 페이지가 포함된 페이지 블록 전체를 선-적재 대상으로 선정하도록 제어하는 컴퓨팅 장치.
  3. 제2 항에 있어서,
    상기 그래픽 처리부는,
    상기 특정 페이지가 포함된 페이지 블록과 인접한 인접 페이지 블록이 선-적재된 기록이 없다면 이를 비연속적인 메모리 접근 패턴으로 간주하고 상기 페이지 블록만 선-적재하도록 제어하는 컴퓨팅 장치.
  4. 제3 항에 있어서,
    상기 그래픽 처리부는,
    선-적재된 상기 페이지 블록과 인접한 상기 인접 페이지 블록에 접근 기록이 존재하는 경우 이는 연속적인 메모리 접근 패턴으로 간주하고,
    상기 인접한 페이지 블록에서 이전에 n 페이지 블록만큼을 선-적재한 경우, 현재 페이지 폴트가 발생한 페이지부터 2n 페이지 블록만큼을 선-적재하도록 제어하는 컴퓨팅 장치.
  5. 제4 항에 있어서,
    상기 그래픽 처리부는,
    메모리 접근이 연속적으로 발생할수록 선-적재할 페이지 블록의 수를 2배씩 증가시키며, 최대 32 페이지 블록까지 증가시키도록 제어하는 컴퓨팅 장치.
  6. 제5 항에 있어서,
    상기 그래픽 처리부는,
    선-적재된 상기 페이지 블록에 포함되는 모든 페이지를 LRU 리스트에 등록하도록 제어하는 컴퓨팅 장치.
  7. 제6 항에 있어서,
    상기 그래픽 처리부는,
    상기 모드 페이지 중 가장 최근에 접근한 페이지를 상기 LRU 리스트의 최상단에 위치시키고, 접근한지 가장 오랜 시간이 지난 페이지를 상기 LRU 리스트의 최하단에 위치시키도록 제어하는 컴퓨팅 장치.
  8. 제7 항에 있어서,
    상기 그래픽 처리부는,
    상기 특정 페이지에 접근이 발생한 경우, 상기 특정 페이지가 속한 페이지 블록에 포함된 모든 페이지를 가상 메모리 주소에 기초하여 검색하고 상기 LRU 리스트 최상단으로 이동시키도록 제어하는 컴퓨팅 장치.
  9. 제8 항에 있어서,
    상기 그래픽 처리부는,
    상기 페이지를 교체하는 경우, 상기 LRU 리스트 최하단의 교체 대상 페이지가 속한 페이지 블록 전체를 한꺼번에 교체하도록 제어하는 컴퓨팅 장치.
  10. 저장된 명령어를 실행하도록 구성되는 중앙 처리부(CPU); 그래픽 연산을 수행하도록 구성되고, 적어도 하나 이상의 알고리즘을 제어하는 그래픽 처리부(GPU); 및 상기 명령어 및 적어도 하나 이상의 상기 알고리즘을 저장하는 메모리부를 포함하는 컴퓨팅 장치를 이용하여 GPU 통합 가상 메모리상 선-적재 기법 분석하는 방법에 있어서,
    상기 그래픽 처리부를 이용하여 실행되는 프로그램에서 연속적/비연속적인 메모리 접근 패턴을 산출하는 단계;와
    산출된 상기 메모리 접근 패턴에 기초하여 선-적재 대상 페이지를 선정하는 단계;를 포함하고,
    상기 선정하는 단계는,
    상기 선-적재 대상 페이지 중 특정 페이지에 폴트가 발생하면 상기 특정 페이지가 포함된 페이지 블록 전체를 선-적재 대상으로 선정하는 방법.
  11. 제10 항에 있어서,
    상기 선정하는 단계는,
    상기 특정 페이지가 포함된 페이지 블록과 인접한 인접 페이지 블록이 선-적재된 기록이 없다면 이를 비연속적인 메모리 접근 패턴으로 간주하고 상기 페이지 블록만 선-적재하는 방법.
  12. 제11 항에 있어서,
    상기 선정하는 단계는,
    선-적재된 상기 페이지 블록과 인접한 상기 인접 페이지 블록에 접근 기록이 존재하는 경우 이를 연속적인 메모리 접근 패턴으로 간주하고,
    상기 인접한 페이지 블록에서 이전에 n 페이지 블록만큼을 선-적재한 경우, 현재 페이지 폴트가 발생한 페이지부터 2n 페이지 블록만큼을 선-적재하는 방법.
  13. 제12 항에 있어서,
    상기 선정하는 단계는,
    메모리 접근이 연속적으로 발생할수록 선-적재할 페이지 블록의 수를 2배씩 증가시키며, 최대 32 페이지 블록까지 증가시키는 방법.
  14. 제13 항에 있어서,
    상기 선정하는 단계는,
    선-적재된 상기 페이지 블록에 포함되는 모든 페이지를 LRU 리스트에 등록하는 방법.
  15. 제14 항에 있어서,
    상기 선정하는 단계는,
    상기 모드 페이지 중 가장 최근에 접근한 페이지를 상기 LRU 리스트의 최상단에 위치시키고, 접근한지 가장 오랜 시간이 지난 페이지를 상기 LRU 리스트의 최하단에 위치시키는 방법.
  16. 제15 항에 있어서,
    상기 선정하는 단계는,
    상기 특정 페이지에 접근이 발생한 경우, 상기 특정 페이지가 속한 페이지 블록에 포함된 모든 페이지를 가상 메모리 주소에 기초하여 검색하고 상기 LRU 리스트 최상단으로 이동시키는 방법.
  17. 제16 항에 있어서,
    상기 선정하는 단계는,
    상기 페이지를 교체하는 경우, 상기 LRU 리스트 최하단의 교체 대상 페이지가 속한 페이지 블록 전체를 한꺼번에 교체하는 방법.
KR1020210085057A 2021-06-29 2021-06-29 Gpu 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법 KR20230001933A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210085057A KR20230001933A (ko) 2021-06-29 2021-06-29 Gpu 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210085057A KR20230001933A (ko) 2021-06-29 2021-06-29 Gpu 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법

Publications (1)

Publication Number Publication Date
KR20230001933A true KR20230001933A (ko) 2023-01-05

Family

ID=84926008

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210085057A KR20230001933A (ko) 2021-06-29 2021-06-29 Gpu 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법

Country Status (1)

Country Link
KR (1) KR20230001933A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170065276A (ko) 2015-12-03 2017-06-13 삼성전자주식회사 비휘발성 메인 메모리 시스템의 페이지 폴트 처리 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170065276A (ko) 2015-12-03 2017-06-13 삼성전자주식회사 비휘발성 메인 메모리 시스템의 페이지 폴트 처리 방법

Similar Documents

Publication Publication Date Title
Gandhi et al. Agile paging: Exceeding the best of nested and shadow paging
JP6367797B2 (ja) 階層メモリシステムのためのメモリ管理
US10698829B2 (en) Direct host-to-host transfer for local cache in virtualized systems wherein hosting history stores previous hosts that serve as currently-designated host for said data object prior to migration of said data object, and said hosting history is checked during said migration
US9086989B2 (en) Extending processor MMU for shared address spaces
US5899994A (en) Flexible translation storage buffers for virtual address translation
US7739477B2 (en) Multiple page size address translation incorporating page size prediction
US6728858B2 (en) Method and apparatus including heuristic for sharing TLB entries
US7089398B2 (en) Address translation using a page size tag
US9229878B2 (en) Memory page offloading in multi-node computer systems
US10310985B2 (en) Systems and methods for accessing and managing a computing system memory
US20060212654A1 (en) Method and apparatus for intelligent instruction caching using application characteristics
KR20120058352A (ko) 하이브리드 메모리 시스템, 및 그 관리 방법
GB2478727A (en) Memory address translation with a page size and a page table size set to the same power of two
US9817762B2 (en) Facilitating efficient prefetching for scatter/gather operations
CN101645045A (zh) 使用透明页变换的存储器管理
Gaur et al. Base-victim compression: An opportunistic cache compression architecture
JP2021517307A (ja) ハイブリッドメモリシステム
CN116860665A (zh) 由处理器执行的地址翻译方法及相关产品
KR20060120242A (ko) 메모리 관리 유닛, 메모리 관리 유닛을 포함하는 시스템 및어드레스 변환 방법
KR20210144656A (ko) 비연접 백업 물리적 서브페이지에 가상 페이지를 할당하는 방법
US7444636B2 (en) Method and system of determining attributes of a functional unit in a multiple processor computer system
KR20230001933A (ko) Gpu 통합 가상 메모리상 선-적재 기법 분석하는 컴퓨팅 장치와 방법
US20100268921A1 (en) Data collection prefetch device and methods thereof
Jo et al. Instant virtual machine live migration
US8065485B2 (en) Method and apparatus for determining cache storage locations based on latency requirements

Legal Events

Date Code Title Description
E902 Notification of reason for refusal