KR101866681B1 - 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치 - Google Patents

페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치 Download PDF

Info

Publication number
KR101866681B1
KR101866681B1 KR1020170012142A KR20170012142A KR101866681B1 KR 101866681 B1 KR101866681 B1 KR 101866681B1 KR 1020170012142 A KR1020170012142 A KR 1020170012142A KR 20170012142 A KR20170012142 A KR 20170012142A KR 101866681 B1 KR101866681 B1 KR 101866681B1
Authority
KR
South Korea
Prior art keywords
page
size
rate
system performance
memory
Prior art date
Application number
KR1020170012142A
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 KR1020170012142A priority Critical patent/KR101866681B1/ko
Application granted granted Critical
Publication of KR101866681B1 publication Critical patent/KR101866681B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures

Landscapes

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

Abstract

페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치가 개시된다. 개시된 페이지 제어 방법은 TLB 미스율 및 메모리에서의 페이지 부재율 중 어느 하나를 시스템 성능의 저하 요인으로 식별하고, 식별된 결과에 기초하여 페이지의 크기를 결정한다.

Description

페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치{PAGE CONTROL METHOD AND APPARATUS FOR DYNAMICALLY CONTROLLING PAGE SIZE}
아래의 설명은 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치에 관한 것으로, 보다 구체적으로는 TLB 미스율(TLB(Translation Look-aside Buffer) miss rate) 및 페이지 부재율(page fault rate) 중 적어도 하나에 기초하여 페이지의 크기를 동적으로 결정하는 방법 및 장치에 관한 것이다.
최근 빅데이터 처리 등 메모리 요구량이 큰 응용분야가 활발히 연구됨에 따라 이를 효율적으로 처리하기 위한 대용량메모리 시스템이 요구되고 있다. 나아가, NVDIMM(Non-Volatile Dual In-line Memory Module)과 같은 초대용량 메모리 시스템에서 페이지 크기를 조절하는 기법이 요구되고 있다.
초대용량 메모리 기반 시스템에서는 기존 메모리 시스템에서 사용된 크기(예컨대, 4KB)의 페이지로 시스템을 운영할 경우 페이지 테이블 내 주소변환용 엔트리(entry) 개수가 급증하여 TLB 미스(TLB miss)가 증가하고, 이는 시스템 성능 저하를 야기한다.
본 발명은 TLB 미스율 및 페이지 부재율 중 적어도 하나에 기초하여 페이지의 크기를 동적으로 결정함으로써, 시스템 성능을 효과적으로 향상시키고, TLB의 하드웨어적 용량을 증가시키지 않으면서도 TLB 미스율로 인한 시스템 성능 저하를 효과적으로 방지할 수 있다.
본 발명은 TLB 미스율 및 페이지 부재율을 고려하여 페이지의 크기를 제어함으로써, 페이지 크기에 따라 TLB 미스율 및 페이지 부재율이 시스템 성능의 저하에 영향을 미치는 현상을 효과적으로 제거할 수 있다.
본 발명은 TLB 미스율 및 페이지 부재율 중 시스템 성능상의 병목점에 해당하는 요소를 판단하고, 판단 결과에 따라 페이지 크기를 조절함으로써, 메모리 성능을 최적화할 수 있다.
일실시예에 따른 페이지 제어 방법은 TLB 미스율(TLB(Translation Look-aside Buffer) miss rate) 및 메모리에서의 페이지 부재율(page fault rate) 중 어느 하나를 시스템 성능의 저하 요인으로 식별하는 단계; 및 상기 식별된 결과에 기초하여 페이지의 크기를 결정하는 단계를 포함한다.
일실시예에 따른 페이지 제어 방법에서 상기 페이지의 크기를 결정하는 단계는 상기 시스템 성능이 상기 TLB 미스율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기를 미리 결정된 기준 크기 또는 기준 비율만큼 증가시킬 수 있다.
일실시예에 따른 페이지 제어 방법에서 상기 페이지의 크기를 결정하는 단계는 상기 시스템 성능이 상기 TLB 미스율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지 크기에 따라 변동되는 상기 페이지 부재율에 기초하여 상기 페이지의 크기를 결정할 수 있다.
일실시예에 따른 페이지 제어 방법에서 상기 페이지의 크기를 결정하는 단계는, 상기 페이지 부재율이 증가하지 않는 범위 내에서 상기 페이지의 크기를 증가시킬 수 있다.
일실시예에 따른 페이지 제어 방법에서 상기 페이지의 크기를 결정하는 단계는 상기 시스템 성능이 상기 페이지 부재율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기를 미리 결정된 기준 크기 또는 기준 비율만큼 감소시킬 수 있다.
일실시예에 따른 페이지 제어 방법에서 상기 페이지의 크기를 결정하는 단계는 상기 시스템 성능이 상기 페이지 부재율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기에 따라 변동되는 상기 TLB 미스율에 기초하여 상기 페이지의 크기를 결정할 수 있다.
일실시예에 따른 페이지 제어 방법에서 상기 페이지의 크기를 결정하는 단계는 상기 TLB 미스율이 증가하지 않는 범위 내에서 상기 페이지의 크기를 감소시킬 수 있다.
일실시예에 따른 페이지 제어 방법에서 상기 식별하는 단계는, 실행 중인 워크로드(workload)의 특성에 기초하여 상기 TLB 미스율 및 상기 페이지 부재율 중 어느 하나를 상기 시스템 성능의 저하 요인으로 식별할 수 있다.
일실시예에 따른 페이지 제어 방법에서 상기 식별하는 단계는 상기 워크로드의 메모리 요구량이 미리 결정된 임계 크기보다 작고 상기 워크로드의 지역성이 미리 결정된 임계 기준보다 강한 경우, 상기 TLB 미스율을 상기 시스템 성능의 저하 요인으로 식별할 수 있다.
일실시예에 따른 페이지 제어 방법에서 상기 식별하는 단계는 상기 워크로드의 메모리 요구량이 미리 결정된 임계 크기보다 크고 상기 워크로드의 지역성이 미리 결정된 임계 기준보다 약한 경우, 상기 페이지 부재율을 상기 시스템 성능의 저하 요인으로 식별할 수 있다.
일실시예에 따른 페이지 제어 방법에서 상기 식별하는 단계는 상기 메모리의 용량 변화로 상기 페이지 부재율이 변동되는지 여부에 기초하여 상기 시스템 성능의 저하가 상기 페이지 부재율에 의한 것인지 여부를 판단할 수 있다.
일실시예에 따른 페이지 제어 방법에서 상기 TLB 미스율은 상기 페이지의 크기가 증가함에 따라 감소할 수 있다.
일실시예에 따른 페이지 제어 방법에서 상기 페이지 부재율은 상기 페이지의 크기가 증가함에 따라 증가할 수 있다.
일실시예에 따른 페이지 제어 장치는 페이지의 크기를 동적으로 제어하는 프로세서를 포함하고, 상기 프로세서는, TLB 미스율 및 메모리에서의 페이지 부재율 중 어느 하나를 시스템 성능의 저하 요인으로 식별하고, 상기 식별된 결과에 기초하여 페이지의 크기를 결정할 수 있다.
일실시예에 따른 페이지 제어 장치에서 상기 프로세서는 상기 시스템 성능이 상기 TLB 미스율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지 크기에 따라 변동되는 상기 페이지 부재율에 기초하여 상기 페이지의 크기를 결정할 수 있다.
일실시예에 따른 페이지 제어 장치에서 상기 프로세서는, 상기 페이지 부재율이 증가하지 않는 범위 내에서 상기 페이지의 크기를 증가시킬 수 있다.
일실시예에 따른 페이지 제어 장치에서 상기 프로세서는 상기 시스템 성능이 상기 페이지 부재율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기에 따라 변동되는 상기 TLB 미스율에 기초하여 상기 페이지의 크기를 결정할 수 있다.
일실시예에 따른 페이지 제어 장치에서 상기 프로세서는 상기 시스템 성능이 상기 TLB 미스율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기를 미리 결정된 기준 크기 또는 기준 비율만큼 증가시키고, 상기 시스템 성능이 상기 페이지 부재율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기를 미리 결정된 기준 크기 또는 기준 비율만큼 감소시킬 수 있다.
일실시예에 따르면, TLB 미스율 및 페이지 부재율 중 적어도 하나에 기초하여 페이지의 크기를 동적으로 결정함으로써, 시스템 성능을 효과적으로 향상시키고, TLB의 하드웨어적 용량을 증가시키지 않으면서도 TLB 미스율로 인한 시스템 성능 저하를 효과적으로 방지할 수 있다.
일실시예에 따르면, TLB 미스율 및 페이지 부재율을 고려하여 페이지의 크기를 제어함으로써, 페이지 크기에 따라 TLB 미스율 및 페이지 부재율이 시스템 성능의 저하에 영향을 미치는 현상을 효과적으로 제거할 수 있다.
일실시예에 따르면, TLB 미스율 및 페이지 부재율 중 시스템 성능상의 병목점에 해당하는 요소를 판단하고, 판단 결과에 따라 페이지 크기를 조절함으로써, 메모리 성능을 최적화할 수 있다.
도 1은 일실시예에 따른 프로세서, TLB, 메모리 및 스토리지 간의 관계를 설명하기 위한 도면이다.
도 2는 일실시예에 따라 페이지의 크기에 따른 TLB 미스율 및 페이지 부재율을 설명하기 위한 도면이다.
도 3은 일실시예에 따른 페이지 제어 방법을 나타낸 도면이다.
도 4 및 도 5는 일실시예에 따라 시스템 성능의 저하 요인을 식별하는 과정을 설명하기 위한 도면이다.
도 6은 일실시예에 따라 페이지의 크기를 결정하는 과정을 설명하기 위한 도면이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
하기에서 설명될 실시예들은 페이지의 크기를 결정하는 데 사용될 수 있다. 실시예들은 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 스마트 가전 기기, 지능형 자동차, 키오스크, 웨어러블 장치 등 다양한 형태의 제품으로 구현될 수 있다. 예를 들어, 실시예들은 스마트 폰, 모바일 기기, 스마트 홈 시스템 등에서 메모리에서 사용되는 페이지의 크기를 동적으로 제어하는 데 적용될 수 있다. 이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일실시예에 따른 프로세서, TLB, 메모리 및 스토리지 간의 관계를 설명하기 위한 도면이다.
도 1을 참조하면, 일실시예에 따른 프로세서(110), TLB(Translation Look-aside Buffer)(120), 메모리(130) 및 스토리지(140)가 도시된다.
일실시예에 따른 프로세서(110)는 프로그램 또는 워크로드(workload)를 실행하는 장치로서, 예를 들어, CPU(Central Processing Unit)를 포함할 수 있다. 프로세서(110)는 프로그램 또는 워크로드를 구동하는 데 필요한 페이지를 메모리(130)로 요청할 수 있으며, 요청된 페이지를 메모리(130)로부터 수신할 수 있다.
이 때, 프로세서(110)가 메모리(130)에 포함된 페이지에 접근하기 위해서는 페이지의 가상 주소(virtual address)가 물리 주소(physical address)로 변환될 필요가 있다. 가상 주소는 가상적인 개체를 인식하는 주소로서 논리 주소(logical address)라고도 지칭되고, 물리 주소는 데이터 버스가 메모리(130)의 특정 메모리 셀에 액세스할 수 있게 하는 주소로서 실제 주소(real address)라고도 지칭될 수 있다.
일실시예에 따른 TLB(120)는 가상 주소 및 물리 주소 간의 주소 변환을 빠른 속도로 수행하기 위한 캐시로서, 최근에 변환된 가상 주소와 물리 주소의 주소 변환 정보를 저장하고 있을 수 있다. 다만, TLB(120)의 크기 제한으로 모든 주소 변환 정보가 TLB(120)에 포함되지 않는다. 일반적으로 TLB(120)는 프로세서(110)와 메모리(130) 사이에 존재할 수 있다.
일실시예에 따른 메모리(130)는 임의 접근 기억 장치(Random Access memory)로서, 예를 들어, NVDIMM(Non-Volatile Dual In-line Memory Module), STT-MRAM(Spin-transfer torque magnetic random-access memory), PCM(phase-change memory), 3D Xpoint 및 DRAM(Dynamic random-access memory)을 포함할 수 있다. 메모리(130)는 스토리지(140)로부터 판독된 하나 이상의 페이지를 포함할 수 있다. 프로세서(110)에 의해 요청된 페이지가 메모리(130)에 포함되어 있는 경우, 프로세서(110)는 스토리지(140)로부터 페이지를 수신하지 않고 메모리(130)로부터 해당 페이지를 빠른 속도로 읽을 수 있다.
또한, 메모리(130)는 가상 주소와 실제 주소 간의 전체 주소 변환 정보를 포함하는 페이지 테이블을 포함할 수 있다. 예를 들어, 프로세서(110)에서 페이지가 요청되면, TLB(120)에서 해당 페이지의 주소 변환 정보가 검색될 수 있다. 만약 해당 페이지의 주소 변환 정보가 TLB(120)에 존재하는 경우, 즉 TLB 히트(TLB hit)의 경우, TLB(120)에서 가상 주소가 물리 주소로 변환되어 바로 메모리(130)로 빠르게 액세스할 수 있다.
반대로, 해당 페이지의 주소 변환 정보가 TLB(120)에 존재하지 않는 경우, 즉 TLB 미스(TLB miss)의 경우, 주소 변환은 메모리(130)에 포함된 페이지 테이블을 통해 수행될 수 있다. 다시 말해, 메모리(130)에 1번 접근하기 위해, 주소 변환을 위한 메모리 접근 1번, 실제 데이터 페이지 접근 1번 등 총 2번 이상의 메모리 접근이 요구되고, 이는 시스템 성능 저하로 이어진다. 이러한 TLB 미스가 발생하는 비율을 TLB 미스율(TLB miss rate)이라 지칭할 수 있다. 시스템 성능 저하를 방지하기 위해서는, TLB 미스율을 최소화할 필요가 있다.
일실시예에 따른 스토리지(140)는 플래시 메모리(flash memory) 및 하드디스크(hard disk)를 포함할 수 있다. 스토리지(140)는 스왑 장치(swap device)로도 지칭될 수 있다. 스토리지(140) 및 메모리(130) 간의 데이터 전송 단위가 페이지(page)일 수 있다. 예를 들어, 페이지는 1KB, 4KB, 64KB 등의 다양한 크기를 가질 수 있다.
일반적으로, 스토리지(140)는 메모리(130)보다 상당히 느린 속도를 가지므로, 시스템 성능 저하를 방지하기 위해서는 스토리지 접근을 최소화시키는 것이 중요하다. 여기서, 프로세서(110)에 의해 페이지가 요청되었을 때, 해당 페이지가 메모리(130)에 존재하지 않아 스토리지 접근을 해야 하는 비율을 페이지 부재율(page fault rate)이라 지칭할 수 있다. 시스템 성능 저하를 방지하기 위해서는, 페이지 부재율을 최소화할 필요가 있다.
종합하자면, 시스템 성능 저하를 최소화하기 위해서는 TLB 미스율과 페이지 부재율을 모두 고려할 필요가 있다. 다만, 최근 메모리(130)의 용량이 대형화됨에 따라 페이지 부재율에 의한 시스템 성능 저하가 예전보다 감소하였으나, TLB(120)의 용량이 한정적이고 메모리(130)에 포함된 페이지의 개수가 증가함에 따라 TLB 미스율에 의한 시스템 성능 저하가 우려될 수 있다.
도 2는 일실시예에 따라 페이지의 크기에 따른 TLB 미스율 및 페이지 부재율을 설명하기 위한 도면이다.
도 2를 참조하면, 일실시예에 따라 서로 다른 크기의 페이지를 포함하는 메모리들(210, 220)이 도시된다.
도 2에서는 페이지의 크기가 TLB 미스율 및 페이지 부재율에 미치는 영향을 설명하기 위한 두 가지 케이스가 예시적으로 도시되어 있다. 설명의 편의를 위해, 두 가지 케이스의 메모리들(210, 220)은 동일한 메모리 크기 16KB(Kbyte)를 가지는 것으로 가정한다. 도 2에 도시된 메모리 크기, 페이지 크기 및 페이지 개수에 대한 구체적인 수치는 설명의 편의를 위한 것으로 본 발명의 실시예를 한정하지 않으며, 메모리 크기, 페이지 크기 및 페이지 개수에 대한 다양한 실시예들이 본 발명에 적용될 수 있다.
제1 메모리(210)의 페이지 크기는 제2 메모리(220)의 페이지 크기보다 클 수 있다. 제1 메모리(210)에 포함된 페이지 개수는 제2 메모리(220)에 포함된 페이지 개수보다 적을 수 있다. 따라서, 제1 메모리(210)에 요구되는 주소 변환 정보는 제2 메모리(220)에 요구되는 주소 변환 정보보다 그 크기가 작을 수 있다. 제1 메모리(210)의 경우에 TLB에 저장될 수 있는 주소 변환 정보의 비율이 제2 메모리(220)의 경우보다 높을 수 있다. 즉, 페이지 크기가 클수록 TLB 미스율은 감소할 수 있다.
다만, 페이지 부재율의 경우 반대의 결과가 초래된다. 제1 메모리(210)에 포함된 페이지 개수가 제2 메모리(220)에 포함된 페이지 개수보다 적음에 따라 프로세서에서 요청된 페이지가 메모리에 존재하지 않을 확률(다시 말해, 페이지 부재율)이 더 높을 수 있다. 즉, 페이지 크기가 클수록 페이지 부재율은 증가할 수 있다.
도 3은 일실시예에 따른 페이지 제어 방법을 나타낸 도면이다.
도 3을 참조하면, 일실시예에 따른 페이지 제어 장치의 프로세서에 의해 수행되는 페이지 제어 방법이 도시된다.
먼저 페이지 제어 장치는 시스템 성능의 저하가 발생하는지 여부를 판단할 수 있다. 페이지 제어 장치는 평균 메모리 접근 시간(average memory access time)에 기초하여 시스템 성능의 저하 발생 여부를 판단할 수 있다. 평균 메모리 접근 시간은 TLB 적중률(TLB hit rate) 및 메모리 접근 시간의 곱으로 결정될 수 있다.
예를 들어, 평균 메모리 접근 시간이 미리 결정된 임계 시간보다 길어지는 경우, 페이지 제어 장치는 시스템 성능의 저하가 발생한 것으로 판단할 수 있다. 또는, 현재 시점의 평균 메모리 접근 시간이 이전 시점의 평균 메모리 접근 시간보다 미리 결정된 임계 크기 또는 임계 비율만큼 증가한 경우, 페이지 제어 장치는 시스템 성능의 저하가 발생한 것으로 판단할 수 있다.
시스템 성능의 저하가 발생한 것으로 판단된 경우, 단계(310)에서 시스템 성능의 저하 요인이 식별될 수 있다.
단계(310)에서, 페이지 제어 장치는 TLB 미스율 및 메모리에서의 페이지 부재율 중 어느 하나를 시스템 성능의 저하 요인으로 식별한다. 페이지 제어 장치는 실행 중인 워크로드의 특성에 기초하여 TLB 미스율 및 페이지 부재율 중 어느 하나를 시스템 성능의 저하 요인으로 식별할 수 있다.
예를 들어, 워크로드의 특성은 메모리 요구량 및 지역성을 포함할 수 있다. 메모리 요구량은 해당 워크로드가 실행되는 데 요구되는 메모리의 크기를 나타내고, 지역성은 데이터 접근이 시간적으로 또는 공간적으로 인접하게 발생하는 정도를 나타낼 수 있다. 시간적 지역성은 특정 데이터가 한 번 접근된 경우 가까운 미래에 다시 해당 데이터에 접근할 가능성을 나타내고, 공간적 지역성은 한 번 접근된 특정 데이터와 가까운 주소를 가지는 데이터가 순서대로 접근되는 정도를 나타낼 수 있다.
또한, 페이지 제어 장치는 메모리의 용량 변화로 페이지 부재율이 변동되는지 여부에 기초하여 시스템 성능의 저하가 페이지 부재율에 의한 것인지 여부를 판단할 수 있다. 예를 들어, 시스템 성능의 저하가 페이지 부재율에 의한 것이라고 판단된 경우, 페이지 제어 장치는 페이지 부재율을 시스템 성능의 저하 요인으로 식별할 수 있다. 반대로 시스템 성능의 저하가 페이지 부재율에 의한 것이라고 판단되지 않은 경우, 페이지 제어 장치는 TLB 미스율을 시스템 성능의 저하 요인으로 식별할 수 있다.
단계(310)에 관한 보다 구체적인 동작에 대해서는 도 4 및 도 5를 참조하여 상세히 설명한다.
단계(320)에서, 페이지 제어 장치는 식별된 결과에 기초하여 페이지의 크기를 결정한다. 페이지 제어 장치는 식별된 결과에 기초하여 페이지의 크기를 미리 결정된 기준 크기 또는 기준 비율만큼 증가시키거나 또는 감소시킬 수 있다. 여기서, 미리 결정된 기준 크기 또는 기준 비율은 사용자에 의해 미리 입력된 값이거나 또는 시스템 성능의 상태에 기초하여 동적으로 결정되는 값일 수 있다.
또한, 페이지 제어 장치는 페이지의 크기를 결정하는 데 TLB 미스율 및 페이지 부재율 중 적어도 하나를 고려할 수 있다. 예를 들어, 페이지 제어 장치는 TLB 미스율 및 페이지 부재율 중 적어도 하나가 증가하지 않는 범위 내에서 페이지의 크기를 제어할 수 있다.
페이지 제어 장치는 식별된 결과에 기초하여 페이지의 크기를 동적으로 결정함으로써, 시스템 성능의 저하 요인을 제거하여 시스템 성능의 향상을 효과적으로 도모할 수 있다.
단계(320)에 관한 보다 구체적인 동작에 대해서는 도 6을 참조하여 상세히 설명한다.
도 4 및 도 5는 일실시예에 따라 시스템 성능의 저하 요인을 식별하는 과정을 설명하기 위한 도면이다.
도 4를 참조하면, 일실시예에 따라 페이지 제어 장치가 워크로드의 특성에 기초하여 시스템 성능의 저하 요인을 식별하는 과정을 설명하기 위한 도면이 도시된다.
일실시예에 따른 워크로드의 특성에는 메모리 요구량 및 지역성이 포함될 수 있다. 메모리 요구량이 크다는 것은 해당 워크로드를 실행하기 위해 요구되는 메모리의 크기가 크다는 것을 의미할 수 있다. 또한, 지역성이 강하다는 것은 특정 페이지만 빈번하게 접근되는 것을 의미할 수 있다. 반대로, 지역성이 약하다는 것은 페이지 접근이 지속적으로 랜덤하게 수행된다는 것을 의미할 수 있다.
제1 케이스(410)의 경우, 워크로드의 메모리 요구량이 미리 결정된 임계 크기보다 작고 워크로드의 지역성이 미리 결정된 임계 기준보다 강할 수 있다. 이러한 제1 케이스(410)에서, 페이지 부재율은 낮게 결정될 수 있다. 따라서, 페이지 제어 장치는 페이지 부재율로 인해 시스템 성능이 저하된 것으로 판단하지 않고, 시스템 성능의 저하 요인으로 TLB 미스율을 식별할 수 있다.
제2 케이스(420)의 경우, 워크로드의 메모리 요구량이 미리 결정된 임계 크기보다 크고 워크로드의 지역성이 미리 결정된 임계 기준보다 약할 수 있다. 이러한 제2 케이스(420)에서, 페이지 부재율은 높게 결정될 수 있다. 따라서, 페이지 제어 장치는 시스템 성능의 저하 요인으로 페이지 부재율을 식별할 수 있다.
도 5를 참조하면, 일실시예에 따라 페이지 제어 장치가 메모리의 용량 변화로 페이지 부재율이 변동되는지 여부에 기초하여 시스템 성능의 저하가 페이지 부재율에 의한 것인지 여부를 판단하는 과정을 설명하기 위한 도면이 도시된다.
기 할당된 메모리(510)에 추가 메모리(520)를 할당하는 것을 가정한다.
이 때, 기 할당된 메모리(510)에 추가 메모리(520)를 할당함으로써 페이지 부재율이 감소하는 경우, 현 시스템의 메모리 용량이 부족하여 페이지 부재율이 성능상 병목점에 해당하는 상황으로 인식될 수 있으며, 이로 인해 시스템 성능이 저하된 것으로 판단될 수 있다. 그래서, 페이지 제어 장치는 시스템 성능의 저하 요인으로 페이지 부재율을 식별할 수 있다.
반대로, 기 할당된 메모리(510)에 추가 메모리(520)가 할당됨에 따른 페이지 부재율의 변동이 미리 결정된 임계 값 이하인 경우, 현 시스템의 메모리 용량이 충분하여 페이지 부재율이 성능상의 병목점에 해당하지 않는 것으로 판단될 수 있다. 그래서, 페이지 제어 장치는 시스템 성능의 저하 요인으로 TLB 미스율을 식별할 수 있다.
앞서 설명한 것처럼, 현재 기 할당된 메모리(510)에서의 페이지 부재율과 추가 메모리(420)가 할당되었을 때의 페이지 부재율 간의 차이에 기초하여 판단하는 기법을 Belady's lifetime function이라 지칭할 수 있다. Belady's lifetime function은 할당된 메모리 크기가 변동됨에 따라 참조의 존재율(hit ratio of references)를 근사(approximate)하는 함수이다. 페이지 부재율 Ai는 하기의 수학식 1로 계산될 수 있다.
Figure 112017009077623-pat00001
위의 수학식 1에서, i는 메모리 크기를 나타내고, c 및 k는 제어 파라미터를 나타낸다. 제어 파라미터는 잠정 구역성(temporal locality)의 정도를 결정할 수 있다. 예를 들어, c가 작아지거나 또는 k가 커질수록 잠정 구역성은 증가할 수 있다.
도 6은 일실시예에 따라 페이지의 크기를 결정하는 과정을 설명하기 위한 도면이다.
도 6을 참조하면, 일실시예에 따라 페이지 제어 장치가 식별된 결과에 기초하여 페이지의 크기를 결정하는 과정을 설명하기 위한 도면이 도시된다.
TLB 미스율이 시스템 성능의 저하 요인으로 식별된 경우, 단계(610)에서 페이지 제어 장치는 페이지의 크기를 증가시킬 수 있다. 페이지 제어 장치는 페이지의 크기를 미리 결정된 기준 크기 또는 기준 비율만큼 증가시킬 수 있다. 여기서, 미리 결정된 기준 크기 및 기준 비율은 사용자에 의해 미리 결정되거나 또는 시스템 성능의 상태에 기초하여 동적으로 결정될 수 있다.
또한, 페이지 제어 장치는 시스템 성능의 저하 요인으로 식별되지 않은 페이지 부재율을 고려하여 페이지의 크기를 결정할 수 있다. 비록 현 시점에서 페이지 부재율이 시스템 성능의 저하 요인에 해당되지 않더라도, TLB 미스율에 기초하여 페이지의 크기를 증가시킴에 따라 오히려 페이지 부재율이 시스템 성능을 저하시킬 수 있다.
이러한 현상을 방지하기 위해, 페이지 제어 장치는 페이지 크기에 따라 변동되는 페이지 부재율에 기초하여 페이지의 크기를 결정할 수 있다. 페이지 제어 장치는 페이지 부재율이 증가하지 않는 범위 내에서 페이지의 크기를 증가시킬 수 있다. 예를 들어, 페이지 제어 장치는 페이지 부재율이 미리 결정된 기준 비율보다 증가하지 않는 범위 내에서 페이지의 크기를 증가시킬 수 있다.
반대로 페이지 부재율이 시스템 성능의 저하 요인으로 식별된 경우, 단계(620)에서 페이지 제어 장치는 페이지의 크기를 감소시킬 수 있다. 페이지 제어 장치는 페이지의 크기를 미리 결정된 기준 크기 또는 기준 비율만큼 감소시킬 수 있다. 여기서, 미리 결정된 기준 크기 및 기준 비율은 사용자에 의해 미리 결정되거나 또는 시스템 성능의 상태에 기초하여 동적으로 결정될 수 있다.
또한, 페이지 제어 장치는 시스템 성능의 저하 요인으로 식별되지 않은 TLB 미스율을 고려하여 페이지의 크기를 결정할 수 있다. 비록 현 시점에서 TLB 미스율이 시스템 성능의 저하 요인에 해당되지 않더라도, 페이지 부재율에 기초하여 페이지의 크기를 감소시킴에 따라 도리어 TLB 미스율이 시스템 성능을 저하시킬 수 있다.
이러한 현상을 방지하기 위해, 페이지 제어 장치는 페이지 크기에 따라 변동되는 TLB 미스율에 기초하여 페이지의 크기를 결정할 수 있다. 페이지 제어 장치는 TLB 미스율이 증가하지 않는 범위 내에서 페이지의 크기를 감소시킬 수 있다. 예를 들어, 페이지 제어 장치는 TLB 미스율이 미리 결정된 기준 비율보다 증가하지 않는 범위 내에서 페이지의 크기를 감소시킬 수 있다.
앞서 설명한 것처럼 페이지 제어 장치가 페이지의 크기를 동적으로 제어함으로써, 시스템 성능의 저하 요인을 효과적으로 제거하고, 시스템 성능의 향상을 효과적으로 도모할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
실시예들에서 설명된 구성요소들은 하나 이상의 DSP (Digital Signal Processor), 프로세서 (Processor), 컨트롤러 (Controller), ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array)와 같은 프로그래머블 논리 소자 (Programmable Logic Element), 다른 전자 기기들 및 이것들의 조합 중 하나 이상을 포함하는 하드웨어 구성 요소들(hardware components)에 의해 구현될 수 있다. 실시예들에서 설명된 기능들(functions) 또는 프로세스들(processes) 중 적어도 일부는 소프트웨어(software)에 의해 구현될 수 있고, 해당 소프트웨어는 기록 매체(recording medium)에 기록될 수 있다. 실시예들에서 설명된 구성요소들, 기능들 및 프로세스들은 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
110: 프로세서
120: TLB(Translation Look-aside Buffer)
130: 메모리
140: 스토리지

Claims (18)

  1. TLB 미스율(TLB(Translation Look-aside Buffer) miss rate) 및 메모리에서의 페이지 부재율(page fault rate) 중에서 시스템 성능의 병목점에 해당하는 어느 하나를 식별하는 단계; 및
    상기 식별된 결과에 기초하여 페이지의 크기를 결정하는 단계
    를 포함하고,
    상기 TLB 미스율은 상기 페이지의 크기가 증가함에 따라 감소하는 페이지 제어 방법.
  2. 제1항에 있어서,
    상기 페이지의 크기를 결정하는 단계는
    상기 시스템 성능이 상기 TLB 미스율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기를 미리 결정된 기준 크기 또는 기준 비율만큼 증가시키는, 페이지 제어 방법.
  3. 제1항에 있어서,
    상기 페이지의 크기를 결정하는 단계는
    상기 시스템 성능이 상기 TLB 미스율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기에 따라 변동되는 상기 페이지 부재율에 기초하여 상기 페이지의 크기를 결정하는, 페이지 제어 방법.
  4. 제3항에 있어서,
    상기 페이지의 크기를 결정하는 단계는,
    상기 페이지 부재율이 증가하지 않는 범위 내에서 상기 페이지의 크기를 증가시키는, 페이지 제어 방법.
  5. 제1항에 있어서,
    상기 페이지의 크기를 결정하는 단계는
    상기 시스템 성능이 상기 페이지 부재율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기를 미리 결정된 기준 크기 또는 기준 비율만큼 감소시키는, 페이지 제어 방법.
  6. 제1항에 있어서,
    상기 페이지의 크기를 결정하는 단계는
    상기 시스템 성능이 상기 페이지 부재율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기에 따라 변동되는 상기 TLB 미스율에 기초하여 상기 페이지의 크기를 결정하는, 페이지 제어 방법.
  7. 제6항에 있어서,
    상기 페이지의 크기를 결정하는 단계는,
    상기 TLB 미스율이 증가하지 않는 범위 내에서 상기 페이지의 크기를 감소시키는, 페이지 제어 방법.
  8. 제1항에 있어서,
    상기 식별하는 단계는,
    실행 중인 워크로드(workload)의 특성에 기초하여 상기 TLB 미스율 및 상기 페이지 부재율 중 어느 하나를 상기 시스템 성능의 병목점으로 식별하는, 페이지 제어 방법.
  9. 제8항에 있어서,
    상기 식별하는 단계는
    상기 워크로드의 메모리 요구량이 미리 결정된 임계 크기보다 작고 상기 워크로드의 지역성이 미리 결정된 임계 기준보다 강한 경우, 상기 TLB 미스율을 상기 시스템 성능의 병목점으로 식별하는, 페이지 제어 방법.
  10. 제8항에 있어서,
    상기 식별하는 단계는
    상기 워크로드의 메모리 요구량이 미리 결정된 임계 크기보다 크고 상기 워크로드의 지역성이 미리 결정된 임계 기준보다 약한 경우, 상기 페이지 부재율을 상기 시스템 성능의 병목점으로 식별하는, 페이지 제어 방법.
  11. 제1항에 있어서,
    상기 식별하는 단계는,
    상기 메모리의 용량 변화로 상기 페이지 부재율이 변동되는지 여부에 기초하여 상기 시스템 성능의 저하가 상기 페이지 부재율에 의한 것인지 여부를 판단하는, 페이지 제어 방법.
  12. 삭제
  13. 제1항에 있어서,
    상기 페이지 부재율은 상기 페이지의 크기가 증가함에 따라 증가하는, 페이지 제어 방법.
  14. 페이지의 크기를 동적으로 제어하는 프로세서를 포함하고,
    상기 프로세서는,
    TLB 미스율 및 메모리에서의 페이지 부재율 중에서 시스템 성능의 병목점에 해당하는 어느 하나를 식별하고, 상기 식별된 결과에 기초하여 페이지의 크기를 결정하고,
    상기 TLB 미스율은 상기 페이지의 크기가 증가함에 따라 감소하는 페이지 제어 장치.
  15. 제14항에 있어서,
    상기 프로세서는
    상기 시스템 성능이 상기 TLB 미스율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기에 따라 변동되는 상기 페이지 부재율에 기초하여 상기 페이지의 크기를 결정하는, 페이지 제어 장치.
  16. 제15항에 있어서,
    상기 프로세서는,
    상기 페이지 부재율이 증가하지 않는 범위 내에서 상기 페이지의 크기를 증가시키는, 페이지 제어 장치.
  17. 제14항에 있어서,
    상기 프로세서는
    상기 시스템 성능이 상기 페이지 부재율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기에 따라 변동되는 상기 TLB 미스율에 기초하여 상기 페이지의 크기를 결정하는, 페이지 제어 장치.
  18. 제14항에 있어서,
    상기 프로세서는
    상기 시스템 성능이 상기 TLB 미스율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기를 미리 결정된 기준 크기 또는 기준 비율만큼 증가시키고,
    상기 시스템 성능이 상기 페이지 부재율에 기인하여 미리 결정된 임계 성능보다 낮아지는 경우, 상기 페이지의 크기를 미리 결정된 기준 크기 또는 기준 비율만큼 감소시키는, 페이지 제어 장치.
KR1020170012142A 2017-01-25 2017-01-25 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치 KR101866681B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170012142A KR101866681B1 (ko) 2017-01-25 2017-01-25 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170012142A KR101866681B1 (ko) 2017-01-25 2017-01-25 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101866681B1 true KR101866681B1 (ko) 2018-06-11

Family

ID=62600971

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170012142A KR101866681B1 (ko) 2017-01-25 2017-01-25 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101866681B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11152053B2 (en) 2020-01-13 2021-10-19 Samsung Electronics Co., Ltd. Memory devices including an operation mode supporting virtual bank access, and operating methods of the memory devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000057054A (ja) * 1998-08-12 2000-02-25 Fujitsu Ltd 高速アドレス変換システム
JP2000276404A (ja) * 1999-03-29 2000-10-06 Nec Corp 仮想記憶装置および仮想記憶方法、並びに記録媒体
KR20100090703A (ko) * 2007-11-07 2010-08-16 콸콤 인코포레이티드 구성 가능한 전환 색인 버퍼
JP2014048895A (ja) * 2012-08-31 2014-03-17 Nec Corp 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000057054A (ja) * 1998-08-12 2000-02-25 Fujitsu Ltd 高速アドレス変換システム
JP2000276404A (ja) * 1999-03-29 2000-10-06 Nec Corp 仮想記憶装置および仮想記憶方法、並びに記録媒体
KR20100090703A (ko) * 2007-11-07 2010-08-16 콸콤 인코포레이티드 구성 가능한 전환 색인 버퍼
JP2014048895A (ja) * 2012-08-31 2014-03-17 Nec Corp 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11152053B2 (en) 2020-01-13 2021-10-19 Samsung Electronics Co., Ltd. Memory devices including an operation mode supporting virtual bank access, and operating methods of the memory devices
US11763876B2 (en) 2020-01-13 2023-09-19 Samsung Electronics Co., Ltd. Memory devices including an operation mode supporting virtual bank calculation, and operating methods of the memory devices

Similar Documents

Publication Publication Date Title
CN107870873B (zh) 基于按字节编址闪存的存储器模块和操作其的方法
US20220083236A1 (en) Cache line data
US11068409B2 (en) Method and system for user-space storage I/O stack with user-space flash translation layer
US10134471B2 (en) Hybrid memory architectures
US9189415B2 (en) EDRAM refresh in a high performance cache architecture
US20200174938A1 (en) Bypass storage class memory read cache based on a queue depth threshold
CN106293944B (zh) 虚拟化多核环境下基于非一致性i/o访问系统和优化方法
US9703493B2 (en) Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
EP3462320B1 (en) Dynamic page allocation in memory
US9317312B2 (en) Computer and memory management method
US8996818B2 (en) Bypassing memory requests to a main memory
US20170270056A1 (en) Main memory including hardware accelerator and method of operating the same
KR20170002866A (ko) 분산 환경에서 사용자 애플리케이션의 액세스 특성에 따른 적응형 캐시 관리 방법
JP2018511105A (ja) マルチクラスタシステムにおいて利用可能なキャッシュを選択する方法
KR20210025344A (ko) 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템, 그것의 데이터 관리 방법
KR20150083770A (ko) 연쇄 프리 패칭을 위한 장치 및 그것의 동작 방법
KR20170081275A (ko) 재구성가능한 페치 파이프라인
US8751724B2 (en) Dynamic memory reconfiguration to delay performance overhead
US9880849B2 (en) Allocation of load instruction(s) to a queue buffer in a processor system based on prediction of an instruction pipeline hazard
US10509744B2 (en) Semiconductor system including heterogeneous memory module
KR101866681B1 (ko) 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치
US10997077B2 (en) Increasing the lookahead amount for prefetching
US20220382672A1 (en) Paging in thin-provisioned disaggregated memory
KR102353859B1 (ko) 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈
US11138118B2 (en) Method and apparatus for dynamically adapting sizes of cache partitions in a partitioned cache

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant