KR101815673B1 - 가상 슈퍼 페이지 생성 및 가상 슈퍼 페이지에 기초하여 데이터에 접근하는 장치 및 방법 - Google Patents

가상 슈퍼 페이지 생성 및 가상 슈퍼 페이지에 기초하여 데이터에 접근하는 장치 및 방법 Download PDF

Info

Publication number
KR101815673B1
KR101815673B1 KR1020160023002A KR20160023002A KR101815673B1 KR 101815673 B1 KR101815673 B1 KR 101815673B1 KR 1020160023002 A KR1020160023002 A KR 1020160023002A KR 20160023002 A KR20160023002 A KR 20160023002A KR 101815673 B1 KR101815673 B1 KR 101815673B1
Authority
KR
South Korea
Prior art keywords
address
virtual
program
data
hardware address
Prior art date
Application number
KR1020160023002A
Other languages
English (en)
Other versions
KR20160136217A (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 한양대학교 산학협력단
Publication of KR20160136217A publication Critical patent/KR20160136217A/ko
Application granted granted Critical
Publication of KR101815673B1 publication Critical patent/KR101815673B1/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/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/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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation

Abstract

복수의 프로그램 주소에 대해 실제 하드웨어 주소에 매핑된 데이터가 포함된 페이지가 분산되었는지 식별하는 단계, 분산된 페이지를 연결하여 가상 슈퍼 페이지를 생성하는 단계 및 가상 슈퍼 페이지에 포함된 데이터에 연속적인 가상 하드웨어 주소를 할당하는 단계를 포함하는 가상 슈퍼 페이지 생성 방법이 제공된다. 또한, 프로그램 주소에 기초하여 데이터로 접근을 시도하는 경우, 프로그램 주소가 가상 하드웨어 주소에 매핑되어 있는지 판단하는 단계, 프로그램 주소가 가상 하드웨어 주소에 매핑된 경우, 매핑된 가상 하드웨어 주소에 기초하여 가상 슈퍼 페이지의 데이터에 접근하는 단계 및 프로그램 주소가 가상 하드웨어 주소에 매핑되어 있지 않은 경우, 프로그램 주소에 대응되는 실제 하드웨어 주소에 기초하여 메모리의 데이터에 접근하는 단계를 포함하는 가상 슈퍼 페이지 기반 데이터 접근 방법이 제공된다.

Description

가상 슈퍼 페이지 생성 및 가상 슈퍼 페이지에 기초하여 데이터에 접근하는 장치 및 방법{SYSTEM AND METHOD FOR GENERATING VIRTUAL SUPER PAGE AND ACCESSING DATA BASED ON THE VIRTUAL SUPER PAGE}
본 발명은 슈퍼 페이지에 대한 것으로써, 보다 구체적으로는 분산된 페이지가 연결된 가상 슈퍼 페이지의 생성 및 사용에 관한 것이다.
메모리 또는 캐시(cache)는 일반적으로 4 킬로바이트(Kb) 크기의 페이지를 설정하여 데이터를 관리한다. 또한, 메모리 또는 캐시는 1~4 메가바이트(Mb) 크기의 슈퍼 페이지를 설정하여 데이터를 관리할 수도 있다.
프로그램 주소는 프로그램 상에서 사용되는 주소를 의미한다. 운영체제는 각각의 프로그램마다 독립적인 프로그램 주소를 할당한 다음, 프로그램 주소를 사용 가능한 실제 메모리의 주소로 매핑을 수행한다. 이로써, 프로그래머는 하드웨어의 실제 메모리 주소를 고려하지 않고 프로그래밍할 수 있다.
운영체제는 프로그램 주소에 대응하는 실제 메모리의 주소(실제 하드웨어 주소)간의 매핑을 페이지 테이블에 저장할 수 있다. 그리고 페이지 테이블은 메모리 상에 저장될 수 있다. 따라서, 프로그램 주소를 실제 하드웨어 주소로 변환하기 위해서는, 메모리 상의 페이지 테이블에 접근해야 한다. 페이지 테이블 접근을 최소화하기 위하여, 변환 색인 버퍼(TLB, Translation Look-ahead Buffer)가 사용될 수 있다.
TLB에는 프로그램 주소의 베이스 주소를 태그로 사용하고, 베이스 주소에 대한 실제 하드웨어 주소의 베이스 주소를 직접 매핑한 정보가 기록되어 있다. TLB에 프로그램 주소의 베이스 주소와 일치하는 태그가 있는 경우, 메모리 상의 페이지 테이블에 접근하지 않고도 실제 하드웨어 주소를 얻을 수 있다. 다만, TLB에 저장할 수 있는 매핑 정보는 TLB 엔트리 개수로 한정되어 있으며, 이보다 넓은 주소 영역에 접근하고자 하는 경우 TLB 미스(TLB miss)가 발생할 수 있다. 이 경우, 다시 메모리 상의 페이지 테이블에 접근해야 한다.
슈퍼 페이지는 1~4 Mb의 메모리 공간을 매핑하므로, 슈퍼 페이지를 사용하면 TLB 용량이 크게 증가한 효과를 얻을 수 있다. 하지만, 슈퍼 페이지를 사용하기 위해서는 슈퍼 페이지의 크기와 일치하는 연속적인 실제 메모리의 공간이 사용 가능해야 한다. 여러 프로그램이 동시에 실행되는 경우, 프로그램이 자주 실행 또는 종료되면서 페이지들이 메모리에 흩어지는 파편화 현상이 발생할 수 있다. 이 경우, 슈퍼 페이지의 크기만큼의 연속적인 실제 메모리의 공간을 확보하기 어렵다.
또한, 슈퍼 페이지를 활용하기 위해선 운영체제(OS, Operating System) 수준의 변경이 요구되며, 이 경우 기존 하드웨어와의 호환성 문제 및 불필요한 데이터의 복사/이동 동작의 수행이 문제될 수 있다.
본 발명은 분산된 페이지를 연결하여 가상 슈퍼 페이지를 생성함으로써, 슈퍼 페이지를 사용할 수 있는 가상 슈퍼 페이지 생성 방법을 제안한다.
본 발명은 프로그램 주소의 종류에 기초하여 가상 슈퍼 페이지 또는 메모리에 접근할 수 있는 가상 슈퍼 페이지 기반 데이터 접근 방법 및 프로그램 주소 변환기를 제안한다.
본 발명의 일실시예에 따르면, 복수의 프로그램 주소에 대해 실제 하드웨어 주소에 매핑된 데이터가 포함된 페이지가 분산되었는지 식별하는 단계, 분산된 상기 페이지를 연결하여 가상 슈퍼 페이지를 생성하는 단계 및 상기 가상 슈퍼 페이지에 포함된 상기 데이터에 연속적인 가상 하드웨어 주소를 할당하는 단계를 포함하는 가상 슈퍼 페이지 생성 방법이 제공된다.
일실시예에 따르면, 상기 가상 하드웨어 주소를 할당하는 단계는, 상기 프로그램 주소와 상기 가상 하드웨어 주소를 매핑하여 매핑 테이블을 만드는 가상 슈퍼 페이지 생성 방법이 제공된다.
일실시예에 따르면, 상기 가상 하드웨어 주소를 할당하는 단계는, 상기 매핑 테이블을 캐시에 저장하는 가상 슈퍼 페이지 생성 방법이 제공된다.
일실시예에 따르면, 상기 가상 하드웨어 주소를 할당하는 단계는, 상기 매핑 테이블에 기초하여 변환 색인 버퍼(TLB, Translation Look-ahead Buffer)를 업데이트하는 가상 슈퍼 페이지 생성 방법이 제공된다.
일실시예에 따르면, 상기 가상 슈퍼 페이지 생성 방법은, 상기 가상 슈퍼 페이지에 기초하여 상기 실제 하드웨어 주소의 데이터를 캐싱하는 가상 슈퍼 페이지 생성 방법이 제공된다.
본 발명의 일실시예에 따르면, 프로그램 주소에 기초하여 데이터로 접근을 시도하는 경우, 상기 프로그램 주소가 가상 하드웨어 주소에 매핑되어 있는지 판단하는 단계, 상기 프로그램 주소가 상기 가상 하드웨어 주소에 매핑된 경우, 매핑된 상기 가상 하드웨어 주소에 기초하여 가상 슈퍼 페이지의 상기 데이터에 접근하는 단계 및 상기 프로그램 주소가 상기 가상 하드웨어 주소에 매핑되어 있지 않은 경우, 상기 프로그램 주소에 대응되는 실제 하드웨어 주소에 기초하여 메모리의 상기 데이터에 접근하는 단계를 포함하는 가상 슈퍼 페이지 기반 데이터 접근 방법이 제공된다.
일실시예에 따르면, 상기 가상 하드웨어 주소에 매핑되어 있는지 판단하는 단계는, 상기 프로그램 주소의 종류에 기초하여 상기 프로그램 주소가 상기 가상 하드웨어 주소에 매핑되어 있는지 판단하는 가상 슈퍼페이지 기반 데이터 접근 방법이 제공된다.
일실시예에 따르면, 상기 가상 슈퍼 페이지의 상기 데이터에 접근하는 단계는, 상기 프로그램 주소 및 상기 가상 하드웨어 주소가 매핑된 매핑 테이블에 기초하여 상기 가상 하드웨어 주소를 식별하는 가상 슈퍼페이지 기반 데이터 접근 방법이 제공된다.
일실시예에 따르면, 상기 가상 슈퍼 페이지의 상기 데이터에 접근하는 단계는, 상기 가상 하드웨어 주소에 기초하여 상기 실제 하드웨어 주소의 데이터를 캐싱하는 가상 슈퍼페이지 기반 데이터 접근 방법이 제공된다.
본 발명의 일실시예에 따르면, 메모리 요청에 포함된 프로그램 주소를 가상 슈퍼 페이지에 대한 가상 하드웨어 주소로 변환하는 가상 하드웨어 주소 변환기 및 상기 메모리 요청에 포함된 상기 프로그램 주소가 상기 가상 하드웨어 주소에 매핑되어 있는지를 판단하여, 매핑되어 있는 경우 상기 메모리 요청을 상기 가상 하드웨어 주소 변환기에 전달하고, 매핑되어 있지 않은 경우 상기 메모리 요청을 메모리에 전달하는 필터를 포함하는 프로그램 주소 변환기가 제공된다.
일실시예에 따르면, 상기 가상 슈퍼 페이지에 대한 프로그램 주소 변환기는, 상기 가상 슈퍼 페이지에 기초하여 상기 메모리의 데이터를 캐싱하는 캐시를 포함하는 프로그램 주소 변환기가 제공된다.
본 발명의 일실시예에 따르면, 분산된 페이지를 연결하여 가상 슈퍼 페이지를 생성함으로써, 슈퍼 페이지를 사용할 수 있는 가상 슈퍼 페이지 생성 방법을 제공받을 수 있다.
본 발명의 일실시예에 따르면, 프로그램 주소의 종류에 기초하여 가상 슈퍼 페이지 또는 메모리에 접근할 수 있는 가상 슈퍼 페이지 기반 데이터 접근 방법 및 프로그램 주소 변환기를 제공받을 수 있다.
도 1은 프로그램 주소와 가상 슈퍼 페이지 및 메모리간의 데이터의 매핑을 도시한 예시 도면이다.
도 2는 일실시예에 따른 페이지 테이블을 사용하여 프로그램 주소를 실제 하드웨어 주소 또는 가상 하드웨어 주소로 변환하는 동작을 도시한 도면이다.
도 3은 일실시예에 따른 프로그램 주소 변환기 및 이에 연결된 메모리, 캐시, TLB의 구조를 도시한 도면이다.
도 4는 일실시예에 따른 분산된 페이지를 연결하여 가상 슈퍼 페이지를 생성하는 동작을 나타낸 흐름도이다.
도 5는 일실시예에 따른 프로그램 주소에 기초하여 가상 슈퍼 페이지 또는 메모리의 데이터에 접근하는 동작을 나타낸 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
캐시(cache)는 데이터를 미리 복사해 놓은 임시 장소를 의미한다. 캐싱이란 캐시에 데이터를 일시적으로 저장하는 동작을 의미한다. 캐시는 최상위 레벨의 L1(level 1) 캐시부터, L2(level 2) 캐시, L3(level 3) 캐시 내지 LLC(last level cache)를 포함할 수 있다.
변환 색인 버퍼(TLB, translation look-ahead buffer)는 프로그램 주소, 실제 하드웨어 주소 또는 가상 하드웨어 주소간의 매핑 관계를 저장한 버퍼를 의미한다. 일실시예에 따르면, TLB는 메모리 컨트롤러에 위치할 수 있다. 프로그램 주소를 실제 하드웨어 주소 또는 가상 하드웨어 주소로 변환할 수 있는 페이지 테이블이 메모리에 저장될 수 있다. 이 경우, TLB는 페이지 테이블의 매핑 관계 일부를 저장할 수 있다.
도 1은 프로그램 주소와 가상 슈퍼 페이지 및 메모리간의 데이터의 매핑을 도시한 예시 도면이다.
도 1에서는 프로그램이 데이터에 할당하는 프로그램 주소에 따른 프로그램 데이터 구조(110), 메모리가 메모리에 저장된 데이터에 할당하는 실제 하드웨어 주소에 따른 메모리 데이터 구조(130), 가상 슈퍼 페이지가 가상 슈퍼 페이지에 포함된 데이터에 할당하는 가상 하드웨어 주소에 따른 가상 슈퍼 페이지 데이터 구조(120)가 도시된다.
프로그램은 데이터에 프로그램 주소를 할당하여 관리할 수 있다. 프로그램 주소는 데이터가 실제로 저장된 메모리의 주소(실제 하드웨어 주소)에 대응하여 프로그램상에서 데이터를 사용하기 위해 데이터에 할당된 가상의 주소를 의미한다. 프로그램은 프로그램 주소에 기초하여 데이터에 접근함으로써, 프로그램이 실행될 때마다 메모리의 공간이 다르게 할당되어 실제 하드웨어 주소가 변경되어도 메모리상의 데이터에 안정적으로 접근할 수 있다. 도 1을 참고하면, 프로그램의 복수의 데이터 각각에 프로그램 주소를 할당한 구조를 프로그램 데이터 구조(110)가 도시된다. 도 1을 참고하면, 프로그램이 관리하는 복수의 데이터에 연속적인 프로그램 주소(0x00000001에서 시작하여 1씩 증가)가 할당될 수 있다.
도 1을 참고하면, 메모리는 복수의 데이터 각각에 실제 하드웨어 주소를 할당한 메모리 데이터 구조(130)가 도시된다. 실제 하드웨어 주소는 메모리에 저장된 데이터에 할당되는 주소로써, 메모리에 저장된 데이터의 공간에 기초하여 할당된다. 프로그램은 프로그램 주소를 실제 하드웨어 주소로 변환함으로써 메모리의 데이터에 접근할 수 있다. 메모리는 메모리 상에서 연속적으로 저장된 복수의 데이터를 모아서 하나의 페이지를 설정한 다음, 페이지 단위로 데이터를 관리할 수 있다. 이 경우 도 1을 참고하면, 프로그램이 복수의 데이터(130a, 130b, 130c)를 사용할 경우, 각각의 데이터는 메모리 상에 분산되어 저장될 수 있다. 또한, 프로그램이 복수의 페이지를 사용하는 경우, 각각의 페이지가 메모리 상에 분산될 수 있다.
본 발명의 일실시예에 따르면, 분산된 페이지를 연결하여 가상 슈퍼 페이지를 만드는 가상 슈퍼 페이지 생성 방법이 제공될 수 있다. 도 1을 참고하면, 가상 슈퍼 페이지에 대한 데이터 구조(120)가 도시된다. 가상 슈퍼 페이지는 메모리 상에 분산된 페이지를 연결하여 생성한 가상의 페이지이다. 페이지는 일반적으로 4 킬로바이트(Kb)의 크기로 설정될 수 있다. 가상 슈퍼 페이지는 일반적으로 1 메가바이트(Mb) 내지 4 메가바이트의 크기로 설정될 수 있다.
가상 슈퍼 페이지에 대한 데이터 구조(120)는 분산된 페이지가 연결된 하나의 가상 슈퍼 페이지의 데이터 구조를 도시한 것이다. 도 1을 참고하면, 메모리 데이터 구조(130)에 분산된 페이지에 포함된 데이터(130a, 130b, 130c)들이 하나의 가상 슈퍼 페이지에 배치될 수 있다.
프로그램이 복수의 페이지를 사용하고 페이지가 메모리에 분산되어 있는 경우, 캐시가 페이지에 기초하여 데이터를 캐싱한다면 복수의 페이지를 캐싱해야 한다. 따라서, 캐시는 불필요한 데이터 읽기/쓰기 동작을 수행해야 한다. 더 나아가서, 캐싱을 위하여 프로그램 주소가 실제 하드웨어 주소로 자주 변환된다. 프로그램 주소는 메모리 상의 페이지 테이블에 기초하여 실제 하드웨어 주소로 변환되는데, 메모리 상의 다수의 페이지 테이블에 접근해야 하므로 성능 저하가 발생할 수 있다. 페이지 테이블에 기초하여 프로그램 주소가 변환되는 동작은 도 2에서 보다 상세히 서술한다.
일실시예에 따르면, 캐시는 가상 슈퍼 페이지에 기초하여 데이터를 캐싱할 수 있다. 이 경우, 분산된 복수의 페이지가 한번에 캐싱되므로, 프로그램이 많은 데이터에 보다 용이하게 접근할 수 있다. 또한, 프로그램 주소가 실제 하드웨어 주소로 변환되는 빈도가 줄어들어 메모리 접근이 줄어들 수 있다. 이로 인하여 프로그램의 성능이 향상될 수 있다.
일실시예에 따르면, 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 프로그램 주소와 가상 하드웨어 주소를 매핑하여 매핑 테이블을 생성할 수 있다. 또한, 생성한 매핑 테이블에 기초하여 변환 색인 버퍼(TLB, Translation Look-ahead Buffer)를 업데이트 할 수 있다. 프로그램이 사용하는 데이터가 가상 슈퍼 페이지에 포함된 경우, 프로그램은 가상 슈퍼 페이지에서 사용되는 가상 하드웨어 주소에 기초하여 데이터에 접근해야 한다. 하지만, 프로그램이 사용하는 데이터가 가상 슈퍼 페이지에 포함되어 있지 않다면, 프로그램은 메모리에서 사용되는 실제 하드웨어 주소에 기초하여 데이터에 접근해야 한다.
일실시예에 따른 프로그램 주소 변환기는, 프로그램 주소가 가상 하드웨어 주소에 매핑 되어 있는지를 판단하여, 프로그램 주소가 가상 하드웨어 주소에 매핑된 경우 프로그램 주소를 가상 하드웨어 주소로 변환하여 가상 슈퍼 페이지에 접근할 수 있다. 프로그램 주소 변환기는 프로그램 주소가 가상 하드웨어 주소에 매핑되어 있지 않은 경우, 프로그램 주소를 실제 하드웨어 주소로 변환하여 메모리에 접근할 수 있다.
도 2는 일실시예에 따른 페이지 테이블을 사용하여 프로그램 주소를 실제 하드웨어 주소 또는 가상 하드웨어 주소로 변환하는 동작을 도시한 도면이다. 일실시예에 따르면, 프로그램 주소 변환기는 프로그램 주소가 가상 하드웨어 주소에 매핑되어 있지 않은 경우, 프로그램 주소를 실제 하드웨어 주소로 변환하여 메모리에 접근할 수 있다. 프로그램 주소 변환기는 프로그램 주소를 실제 하드웨어 주소로 변환하는 과정에서 메모리 상의 매핑 데이터를 참조할 수 있다. 매핑 데이터는 도 2에 도시된 하나 또는 그 이상의 페이지 테이블(230a, 230b, 230c, 230d)의 형태로 메모리에 저장될 수 있다.
도 2를 참고하면, 프로그램 주소는 주소의 변환에 사용될 복수의 오프셋 주소(220a, 220b, 220c, 220d, 220e)를 포함할 수 있다. 일실시예에 따른 프로그램 주소 변환기는 베이스 주소(210)와 제1 오프셋 주소(220a)에 기초하여 제1 페이지 테이블(230a)에 접근할 수 있다. 베이스 주소(210)는 중앙 처리 장치(CPU, Central Processing Unit)의 레지스터에 저장될 수 있다.
프로그램 주소 변환기는 베이스 주소(210)와 제1 오프셋 주소(220a)에 기초하여 제1 페이지 테이블(230a)에 저장된 복수의 베이스 주소 중 하나에 접근할 수 있다. 제1 페이지 테이블(230a)에 저장된 복수의 베이스 주소는 서로 다른 제2 페이지 테이블의 베이스 주소일 수 있다. 즉, 제1 페이지 테이블 내지 제5 테이블 각각은 메모리 상에 하나 이상 존재할 수 있다. 프로그램 주소 변환기는 제1 페이지 테이블(230a)에서 추출한 제2 페이지 테이블에 대한 베이스 주소와 제2 오프셋 주소(220b)에 기초하여, 제2 페이지 테이블(230b)에 접근할 수 있다.
마찬가지로, 프로그램 주소 변환기는 제2 페이지 테이블(230b)에서 추출한 제3 페이지 테이블에 대한 오프셋 주소와 제3 오프셋 주소(230b)에 기초하여, 제3 페이지 테이블(230c)에서 제4 페이지 테이블에 대한 베이스 주소를 추출할 수 있다. 마지막으로, 제4 페이지 테이블에 대한 베이스 주소와 제4 오프셋 주소(220d)에 기초하여 제4 페이지 테이블(230d)에 접근할 수 있다. 제4 페이지 테이블(230d)은 페이지 테이블의 가장 마지막에 위치하고 있으며, 프로그램 주소에 대응하는 실제 하드웨어 주소의 베이스 주소를 포함할 수 있다.
프로그램 주소 변환기는 앞서 서술한 바와 같이 복수의 페이지 테이블에 반복적으로 접근하여 실제 하드웨어 주소의 베이스 주소를 추출할 수 있다. 도 2를 참고하면, 프로그램 주소 변환기는 추출한 실제 하드웨어 주소의 베이스 주소 및 제5 오프셋 주소(220e)에 기초하여 최종적인 변환 주소(240)를 얻을 수 있다. 프로그램 주소 변환기가 프로그램 주소를 실제 하드웨어 주소로 변환하는 경우 변환 주소(240)는 실제 하드웨어 주소에 대응된다.
복수의 페이지 테이블(230a, 230b, 230c, 230d)은 메모리에 저장될 수 있다. 이 경우, 프로그램 주소 변환기는 프로그램 주소를 변환하기 위해 메모리상에 위치한 다수의 페이지 테이블에 접근해야 한다. 따라서, 프로그램 주소를 자주 변환해야 하는 경우, 메모리 접근 빈도의 증가로 성능이 저하될 수 있다.
일실시예에 따르면, TLB의 매핑 데이터에 기초하여 프로그램 주소를 실제 하드웨어 주소로 변환할 수 있다. TLB에는 프로그램 주소에 대응하는 실제 하드웨어 주소의 베이스 주소가 매핑되어 저장된다. 프로그램 주소 변환기는 프로그램 주소에 대응하는 실제 하드웨어 주소의 베이스 주소가 TLB에 존재하는 경우, 프로그램 주소 변환기는 TLB의 실제 하드웨어 주소의 베이스 주소와 제5 오프셋 주소(220e)에 기초하여 실제 하드웨어 주소를 직접 얻을 수 있다. 즉, 프로그램 주소 변환기는 TLB에 실제 하드웨어 주소의 베이스 주소가 존재하는 경우 메모리 상의 페이지 테이블에 접근하지 않고 프로그램 주소를 실제 하드웨어 주소로 변환할 수 있다.
메모리가 페이지에 기초하여 데이터를 캐싱할 경우, TLB에는 페이지의 베이스 주소가 기록될 수 있다. TLB가 저장할 수 있는 프로그램 주소와 실제 하드웨어 주소의 베이스 주소(이 경우 페이지의 베이스 주소)간의 매핑 데이터의 개수는 제한되어 있다. TLB에 매핑 데이터가 없는 경우, TLB 미스(TLB miss)가 발생한다. 프로그램이 복수의 분산된 페이지를 사용하는 경우, TLB가 저장할 수 있는 매핑 데이터의 개수가 제한되어 있어 TLB 미스가 발생할 가능성이 증가할 수 있다.
본 발명의 일실시예에 따르면, 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 메모리 상에 분산된 페이지를 연결하여 가상 슈퍼 페이지를 생성할 수 있다. 또한, 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 생성한 가상 슈퍼 페이지에 기초하여 데이터를 캐싱할 수 있다. 이에 따라 복수의 분산된 페이지가 동시에 캐싱되므로, 프로그램이 메모리에 접근하는 횟수가 감소할 수 있다. 또한, 대용량의 데이터를 한 번에 캐싱할 수 있으므로, 프로그램이 보다 용이하게 대용량의 데이터에 접근할 수 있다.
더 나아가서, 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 가상 슈퍼 페이지에 포함된 데이터에 할당한 가상 하드웨어 주소와 프로그램 주소를 매핑하여 매핑 테이블을 만들 수 있다. 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 매핑 테이블을 앞서 설명한 페이지 테이블의 형태로 메모리에 저장할 수 있다. 또한, 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 가상 하드웨어 주소와 프로그램 주소 간의 매핑 관계의 일부를 TLB에 저장할 수 있다.
일실시예에 따른 프로그램 주소 변환기는 TLB에 기초하여 프로그램 주소를 가상 하드웨어 주소로 변환할 수 있다. 따라서, 프로그램 주소 변환기는 메모리 접근을 최소화하면서 프로그램 주소를 가상 하드웨어 주소로 변환할 수 있다. 또한, TLB에는 가상 슈퍼 페이지에 기초한 프로그램 주소와 가상 하드웨어 주소간의 매핑 관계가 저장되므로, TLB 미스가 발생할 확률이 줄어들 수 있다. 가상 슈퍼 페이지의 용량이 페이지의 용량보다 크므로 TLB가 매핑할 수 있는 용량이 증가하기 때문이다.
도 3은 일실시예에 따른 가상 하드웨어 주소 변환기(310) 및 이에 연결된 메모리(350), 캐시(330), TLB(340)의 구조를 도시한 도면이다.
본 발명의 일실시예에 따르면, 가상 슈퍼 페이지를 생성하는 방법을 수행하는 장치가 메모리 상에 분산된 페이지를 연결하여 가상 슈퍼 페이지를 생성할 수 있다. 가상 하드웨어 주소가 가상 슈퍼 페이지에 포함된 데이터의 배치에 기초하여 가상 슈퍼 페이지에 포함된 데이터 각각에 할당될 수 있다. 가상 슈퍼 페이지를 생성하는 방법을 수행하는 장치는 프로그램 주소와 가상 하드웨어 주소간의 매핑 관계 또는 프로그램 주소와 실제 하드웨어 주소간의 매핑 관계를 메모리(350)에 저장할 수 있다. 가상 슈퍼 페이지를 생성하는 방법을 수행하는 장치는 프로그램 주소와 가상 하드웨어 주소간의 매핑 관계의 일부를 캐시(330)에 저장할 수 있다. 가상 슈퍼 페이지를 생성하는 방법을 수행하는 장치는 프로그램 주소와 가상 하드웨어 주소 간의 매핑 관계의 일부를 TLB(340)에 저장할 수 있다.
일실시예에 따르면, 캐시(330)는 가상 슈퍼 페이지에 기초하여 데이터를 캐싱할 수 있다. 가상 슈퍼 페이지에 기초하여 데이터를 캐싱할 경우, 분산된 페이지가 동시에 캐싱될 수 있다. 따라서, 프로그램이 메모리에 접근하지 않고 사용할 수 있는 데이터의 양이 증가할 수 있다. 또한, 메모리상에 슈퍼 페이지를 할당할 수 있는 연속적인 공간이 충분하지 않은 경우에도, 슈퍼 페이지를 사용하는 것과 동일한 효과를 얻을 수 있다.
일실시예에 따르면, 필터(320)는 프로그램 주소에 기초하여 데이터로 접근을 시도할 경우, 프로그램 주소가 가상 하드웨어 주소에 매핑되어 있는지를 판단할 수 있다. 필터(320)는 프로그램 주소의 종류에 기초하여 프로그램 주소가 가상 하드웨어 주소에 매핑되어 있는지 판단할 수 있다. 필터(320)의 예시에는 블룸 필터(bloom filter)가 포함될 수 있다.
프로그램 주소가 가상 하드웨어 주소에 매핑되어 있는 경우, 필터(320)는 프로그램 주소를 가상 하드웨어 주소 변환기(310)에 전달할 수 있다. 일실시예에 따르면, 필터(320)는 프로그램 주소의 종류에 기초하여 프로그램 주소가 가상 하드웨어 주소에 매핑되어 있는지 판단할 수 있다.
일실시예에 따르면, 가상 하드웨어 주소는 실제 하드웨어 주소가 사용하지 않는 주소 영역을 활용할 수 있다. 이 경우, 필터(320)는 수신한 주소가 실제 하드웨어 주소가 사용하지 않는 주소 영역에 포함되어 있다면, 수신한 주소가 가상 하드웨어 주소에 매핑된 것으로 판단할 수 있다. 필터(320)는 수신한 주소가 실제 하드웨어 주소가 사용하지 않는 영역에 포함되어 있다면, 수신한 주소가 실제 하드웨어 주소에 매핑된 것으로 판단할 수 있다. 필터(320)는 수신한 주소가 단순히 실제 하드웨어 주소가 사용하지 않는 주소 영역에 포함되어 있는지만 식별하면 되므로, 필터(320)를 간단하게 구현될 수 있다.
프로그램 주소가 가상 하드웨어 주소에 매핑되어 있지 않은 경우, 필터(320)는 프로그램 주소를 메모리(350)로 전달할 수 있다. 필터(320)가 프로그램 주소를 메모리(350)로 전달한 경우, 메모리 컨트롤러는 프로그램 주소를 메모리(350)상의 페이지 테이블에 기초하여 실제 하드웨어 주소로 변환할 수 있다.
일실시예에 따르면, 프로그램 주소를 가상 하드웨어 주소로 변환할 수 있는 가상 하드웨어 주소 변환기(310)가 제공될 수 있다. 일실시예에 따르면, 프로그램 주소와 가상 하드웨어 주소간의 매핑 관계의 일부가 캐시(330)에 저장될 수 있다. 따라서, 가상 하드웨어 주소 변환기(310)는 프로그램 주소를 가상 하드웨어 주소로 변환하기 위하여, 캐시(330)에 저장된 매핑 관계를 먼저 참조할 수 있다. 가상 하드웨어 주소 변환기(310)는 캐시(330)에 프로그램 주소에 대응하는 매핑 관계가 저장되어 있지 않은 경우, 메모리(350)에 접근하여 변환을 수행할 수 있다.
도 4는 일실시예에 따른 분산된 페이지를 연결하여 가상 슈퍼 페이지를 생성하는 동작을 나타낸 흐름도이다. 본 발명의 일실시예에 따른 가상 슈퍼 페이지 생성 방법은, 복수의 프로그램 주소에 대해 실제 하드웨어 주소에 매핑된 데이터가 포함된 페이지가 분산되었는지 식별하는 단계, 분산된 페이지를 연결하여 가상 슈퍼 페이지를 생성하는 단계 및 가상 슈퍼 페이지에 포함된 데이터에 연속적인 가상 하드웨어 주소를 할당하는 단계를 포함할 수 있다.
프로그램은 메모리에 저장된 복수의 데이터를 관리하기 위하여, 복수의 프로그램 주소를 생성할 수 있다. 메모리에 저장된 데이터들은 프로그램 주소와 별도로 메모리에 대한 실제 하드웨어 주소를 할당 받을 수 있다. 따라서, 프로그램이 메모리의 데이터에 접근하려는 경우, 프로그램 주소를 실제 하드웨어 주소로 변환하여 접근해야 한다. 메모리에 데이터가 저장될 때, 파편화 등의 이유로 실제 하드웨어 주소에 매핑된 데이터가 포함된 페이지가 분산될 수 있다.
도 4를 참고하면, 일실시예에 따른 단계(410)에서, 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 복수의 프로그램 주소에 대해 실제 하드웨어 주소에 매핑된 데이터가 포함된 페이지가 분산되어 있는지 식별할 수 있다. 단계(410)에서, 일실시예에 따른 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 복수의 프로그램 주소에 매핑된 실제 하드웨어 주소에 기초하여 분산된 페이지를 식별할 수 있다.
도 4를 참고하면, 일실시예에 따른 단계(420)에서, 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 단계(410)에서 식별한 분산된 페이지를 연결하여 가상 슈퍼 페이지를 생성할 수 있다. 분산된 페이지가 연결되었으므로, 가상 슈퍼 페이지 상의 데이터의 배치는 메모리상의 데이터의 배치와 다를 수 있다. 가상 슈퍼 페이지에 포함된 데이터는 실제 하드웨어 주소와 다른 별도의 가상 하드웨어 주소를 할당받을 수 있다.
도 4를 참고하면, 일실시예에 따른 단계(430)에서, 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 가상 슈퍼 페이지에 포함된 데이터에 가상 하드웨어 주소를 할당할 수 있다. 가상 슈퍼 페이지에 매핑된 분산된 페이지의 복수의 데이터에 연속적인 가상 하드웨어 주소가 할당될 수 있다. 일실시예에 따르면, 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 프로그램 주소와 가상 하드웨어 주소를 매핑하여 매핑 테이블을 만들 수 있다. 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 생성된 매핑 테이블을 캐시 및 메모리에 저장할 수 있다. 가상 슈퍼 페이지 생성 방법을 수행하는 장치는 생성된 매핑 테이블에 기초하여 TLB를 업데이트할 수 있다.
본 발명의 일실시예에 따른 가상 슈퍼 페이지 생성 방법은 컴퓨터에서 실행 가능한 형태로 컴퓨터가 판독 가능한 기록 매체에 저장될 수 있다. 컴퓨터는 일실시예에 따른 가상 슈퍼 페이지 생성 방법을 수행하여 가상 슈퍼 페이지를 생성한 다음, 가상 슈퍼 페이지에 기초하여 데이터를 캐싱할 수 있다. 가상 슈퍼 페이지에 기초하여 데이터를 캐싱하므로, 분산된 페이지를 캐싱하는 경우보다 캐시 미스가 발생할 확률이 줄어들 수 있다.
도 5는 일실시예에 따른 프로그램 주소에 기초하여 가상 슈퍼 페이지 또는 메모리의 데이터에 접근하는 동작을 나타낸 흐름도이다. 본 발명의 일실시예에 따른 프로그램 주소 변환기는 가상 하드웨어 주소 변환기 및 필터를 포함할 수 있다.
도 5를 참고하면, 일실시예에 따른 단계(510)에서, 프로그램 주소 변환기는 메모리 요청에 포함된 프로그램 주소를 식별할 수 있다. 프로그램이 데이터에 접근하려 할 때 메모리 요청이 발생할 수 있다. 프로그램 주소 변환기는 식별한 프로그램 주소를 필터에 전달할 수 있다.
도 5를 참고하면, 일실시예에 따른 프로그램 주소 변환기는 단계(520)에서, 식별한 프로그램 주소가 가상 하드웨어 주소에 매핑되어 있는지 판단할 수 있다. 일실시예에 따르면, 프로그램 주소 변환기에 포함된 필터가 프로그램 주소의 매핑 여부를 판단할 수 있다. 프로그램 주소 변환기는 프로그램 주소의 종류에 기초하여 프로그램 주소의 매핑 여부를 판단할 수 있다.
일실시예에 따른 프로그램 주소 변환기는 실제 하드웨어 주소가 사용하지 않는 주소 영역에 기초하여 프로그램 주소의 매핑 여부를 판단할 수 있다. 프로그램 주소 변환기에 포함된 필터는 수신한 주소가 실제 하드웨어 주소가 사용하는 주소 영역에 포함된 경우, 단계(550)로 진행한다. 프로그램 주소 변환기에 포함된 필터는 수신한 주소가 실제 하드웨어 주소가 사용하는 주소 영역에 포함되지 않은 경우, 단계(530)로 진행한다. 이 경우, 프로그램 주소 변환기의 필터는 수신한 주소가 단순히 실제 하드웨어 주소가 사용하지 않는 주소 영역에 포함되어 있는지만 식별하면 되므로, 간단하게 구현될 수 있다.
도 5를 참고하면, 일실시예에 따른 프로그램 주소 변환기는 프로그램 주소가 가상 하드웨어 주소에 매핑된 경우 단계(530)에 따라 프로그램 주소를 가상 하드웨어 주소로 변환할 수 있다. 프로그램 주소 변환기에 포함된 필터는 프로그램 주소가 가상 하드웨어 주소에 매핑된 경우, 프로그램 주소를 가상 하드웨어 주소 변환기에 전달할 수 있다. 프로그램 주소 변환기는 프로그램 주소가 매핑되어 있지 않은 경우 단계(550)에 따라 프로그램 주소를 실제 하드웨어 주소로 변환할 수 있다. 프로그램 주소 변환기에 포함된 필터는 프로그램 주소가 가상 하드웨어 주소에 매핑되어 있지 않은 경우, 프로그램 주소를 메모리에 전달할 수 있다.
도 5를 참고하면, 일실시예에 따른 단계(530)에서, 프로그램 주소 변환기는 프로그램 주소를 가상 하드웨어 주소로 변환할 수 있다. 일실시예에 따르면, 프로그램 주소 변환기는 캐시 또는 TLB에 저장된 프로그램 주소와 가상 하드웨어 주소간의 매핑 데이터를 참조할 수 있다. 캐시에 프로그램 주소에 대응되는 매핑 데이터가 없는 경우, 프로그램 주소 변환기는 메모리에 저장된 프로그램 주소와 가상 하드웨어 주소간의 매핑 데이터를 참조할 수 있다. 일실시예에 따르면, 메모리에 저장된 매핑 데이터는 페이지 테이블의 형태로 저장될 수 있다. 프로그램 주소 변환기가 페이지 테이블에 기초하여 프로그램 주소를 가상 하드웨어 주소로 변환하는 동작은 도 2에서 서술한 바와 같다.
도 5를 참고하면, 일실시예에 따른 단계(540)에서, 프로그램 주소 변환기는 변환된 가상 하드웨어 주소에 기초하여 가상 슈퍼 페이지의 데이터에 접근할 수 있다. 캐시가 가상 슈퍼 페이지에 기초하여 데이터를 캐싱하는 경우, 프로그램 주소 변환기는 가상 하드웨어 주소에 기초하여 캐시에 저장된 데이터에 접근할 수 있다. 가상 슈퍼 페이지는 분산된 복수의 페이지를 연결하여 생성된 것이므로, 프로그램이 메모리에 접근하지 않고 사용할 수 있는 데이터의 양이 증가할 수 있다.
도 5를 참고하면, 일실시예에 따른 프로그램 주소 변환기는 단계(550)에서, 프로그램 주소를 실제 하드웨어 주소로 변환할 수 있다. 일실시예에 따르면, 프로그램 주소 변환기는 TLB를 참조하여 변환을 수행할 수 있다. TLB에 해당 프로그램 주소와 실제 하드웨어 주소 간의 매핑 데이터가 없는 경우, 프로그램 주소 변환기는 메모리 상의 페이지 테이블을 참조하여 변환을 수행할 수 있다. 페이지 테이블을 사용하여 프로그램 주소를 실제 하드웨어 주소로 변환하는 동작은 도 2에서 서술한 바와 같다.
도 5를 참고하면, 일실시예에 따른 프로그램 주소 변환기는 단계(560)에서, 변환된 실제 하드웨어 주소에 기초하여 메모리의 데이터에 접근할 수 있다. 가상 슈퍼 페이지를 생성하고, 가상 슈퍼 페이지에 기초하여 캐싱을 수행함으로써, 프로그램이 사용하는 복수의 페이지가 동시에 캐싱될 수 있다. 즉, 프로그램이 메모리에 접근하지 않고 사용할 수 있는 데이터의 양이 증가할 수 있다. 따라서, 프로그램 주소가 실제 하드웨어 주소로 변환되고, 실제 하드웨어 주소에 기초하여 메모리의 데이터에 접근하는 빈도가 감소할 수 있다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
310 : 가상 하드웨어 주소 변환기
320 : 필터
330 : 캐시
340 : 변환 색인 버퍼(TLB, Translation Look-ahead Buffer)
350 : 메모리

Claims (11)

  1. 복수의 프로그램 주소에 대해 실제 하드웨어 주소에 매핑된 데이터가 포함된 페이지가 분산되었는지 식별하는 단계;
    분산된 상기 페이지를 연결하여 가상 슈퍼 페이지를 생성하는 단계; 및
    상기 가상 슈퍼 페이지에 포함된 상기 데이터에 연속적인 가상 하드웨어 주소를 할당하는 단계
    를 포함하고,
    상기 가상 하드웨어 주소를 할당하는 단계는,
    상기 프로그램 주소와 상기 가상 하드웨어 주소를 매핑하여 매핑 테이블을 만드는 가상 슈퍼 페이지 생성 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 가상 하드웨어 주소를 할당하는 단계는,
    상기 매핑 테이블을 캐시에 저장하는 가상 슈퍼 페이지 생성 방법.
  4. 제1항에 있어서,
    상기 가상 하드웨어 주소를 할당하는 단계는,
    상기 매핑 테이블에 기초하여 변환 색인 버퍼(TLB, Translation Look-ahead Buffer)를 업데이트하는 가상 슈퍼 페이지 생성 방법.
  5. 제1항에 있어서,
    상기 가상 슈퍼 페이지 생성 방법은,
    상기 가상 슈퍼 페이지에 기초하여 상기 실제 하드웨어 주소의 데이터를 캐싱하는 가상 슈퍼 페이지 생성 방법.
  6. 프로그램 주소에 기초하여 데이터로 접근을 시도하는 경우, 상기 프로그램 주소가 가상 하드웨어 주소에 매핑되어 있는지 판단하는 단계;
    상기 프로그램 주소가 상기 가상 하드웨어 주소에 매핑된 경우, 매핑된 상기 가상 하드웨어 주소에 기초하여 가상 슈퍼 페이지의 상기 데이터에 접근하는 단계; 및
    상기 프로그램 주소가 상기 가상 하드웨어 주소에 매핑되어 있지 않은 경우, 상기 프로그램 주소에 대응되는 실제 하드웨어 주소에 기초하여 메모리의 상기 데이터에 접근하는 단계
    를 포함하는 가상 슈퍼 페이지 기반 데이터 접근 방법.
  7. 제6항에 있어서,
    상기 가상 하드웨어 주소에 매핑되어 있는지 판단하는 단계는,
    상기 프로그램 주소의 종류에 기초하여 상기 프로그램 주소가 상기 가상 하드웨어 주소에 매핑되어 있는지 판단하는 가상 슈퍼페이지 기반 데이터 접근 방법.
  8. 제6항에 있어서,
    상기 가상 슈퍼 페이지의 상기 데이터에 접근하는 단계는,
    상기 프로그램 주소 및 상기 가상 하드웨어 주소가 매핑된 매핑 테이블에 기초하여 상기 가상 하드웨어 주소를 식별하는 가상 슈퍼페이지 기반 데이터 접근 방법.
  9. 제6항에 있어서,
    상기 가상 슈퍼 페이지의 상기 데이터에 접근하는 단계는,
    상기 가상 하드웨어 주소에 기초하여 상기 실제 하드웨어 주소의 데이터를 캐싱하는 가상 슈퍼페이지 기반 데이터 접근 방법.
  10. 메모리 요청에 포함된 프로그램 주소를 가상 슈퍼 페이지에 대한 가상 하드웨어 주소로 변환하는 가상 하드웨어 주소 변환기; 및
    상기 메모리 요청에 포함된 상기 프로그램 주소가 상기 가상 하드웨어 주소에 매핑되어 있는지를 판단하여, 매핑되어 있는 경우 상기 메모리 요청을 상기 가상 하드웨어 주소 변환기에 전달하고, 매핑되어 있지 않은 경우 상기 메모리 요청을 메모리에 전달하는 필터
    를 포함하는 프로그램 주소 변환기.
  11. 제10항에 있어서,
    상기 가상 슈퍼 페이지에 대한 프로그램 주소 변환기는,
    상기 가상 슈퍼 페이지에 기초하여 상기 메모리의 데이터를 캐싱하는 캐시
    를 포함하는 프로그램 주소 변환기.
KR1020160023002A 2015-05-19 2016-02-26 가상 슈퍼 페이지 생성 및 가상 슈퍼 페이지에 기초하여 데이터에 접근하는 장치 및 방법 KR101815673B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150069865 2015-05-19
KR20150069865 2015-05-19

Publications (2)

Publication Number Publication Date
KR20160136217A KR20160136217A (ko) 2016-11-29
KR101815673B1 true KR101815673B1 (ko) 2018-01-11

Family

ID=57706397

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160023002A KR101815673B1 (ko) 2015-05-19 2016-02-26 가상 슈퍼 페이지 생성 및 가상 슈퍼 페이지에 기초하여 데이터에 접근하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101815673B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108496A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Hardware support for superpage coalescing
JP2014215621A (ja) 2013-04-22 2014-11-17 レノボ・シンガポール・プライベート・リミテッド オペレーティング・システムの管理方法、コンピュータ・プログラムおよびコンピュータ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108496A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Hardware support for superpage coalescing
JP2014215621A (ja) 2013-04-22 2014-11-17 レノボ・シンガポール・プライベート・リミテッド オペレーティング・システムの管理方法、コンピュータ・プログラムおよびコンピュータ

Also Published As

Publication number Publication date
KR20160136217A (ko) 2016-11-29

Similar Documents

Publication Publication Date Title
US6526472B2 (en) Access control method, access control apparatus and computer readable memory storing access control program
US8990525B2 (en) Virtual memory management apparatus
JP5038907B2 (ja) 仮想マシン環境のアドレス変換をサポートするための方法と装置
US9501421B1 (en) Memory sharing and page deduplication using indirect lines
US9639481B2 (en) Systems and methods to manage cache data storage in working memory of computing system
US10628327B2 (en) Optimizing page table manipulations
US20160041907A1 (en) Systems and methods to manage tiered cache data storage
US20070283108A1 (en) Memory Management System
US20100287356A1 (en) Large memory pages for shared libraries
US20080059728A1 (en) Systems and methods for masking latency of memory reorganization work in a compressed memory system
JP2009020881A (ja) 可変のページサイズのメモリ編成を実装する処理システム
JP7443344B2 (ja) 外部メモリベースのトランスレーションルックアサイドバッファ
US8892810B2 (en) Semiconductor device and memory protection method
KR100833142B1 (ko) 어드레스 변환 장치
US7103747B2 (en) Memory table and memory manager for use in managing memory
US7249241B1 (en) Method and apparatus for direct virtual memory address caching
US8347064B1 (en) Memory access techniques in an aperture mapped memory space
US20180349040A1 (en) Hybrid storage device with three-level memory mapping
KR101815673B1 (ko) 가상 슈퍼 페이지 생성 및 가상 슈퍼 페이지에 기초하여 데이터에 접근하는 장치 및 방법
US6918023B2 (en) Method, system, and computer program product for invalidating pretranslations for dynamic memory removal
CN110362509B (zh) 统一地址转换方法与统一地址空间
US20160041916A1 (en) Systems and Methods to Manage Cache Data Storage
US11481143B2 (en) Metadata management for extent-based storage system
US20200167285A1 (en) Prefetching data to reduce cache misses
KR101825013B1 (ko) 비휘발성 메모리에 영구 보존 데이터를 저장할 수 있는 시스템에서의 데이터 관리 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
X701 Decision to grant (after re-examination)