KR102355374B1 - 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법 - Google Patents

이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법 Download PDF

Info

Publication number
KR102355374B1
KR102355374B1 KR1020190119553A KR20190119553A KR102355374B1 KR 102355374 B1 KR102355374 B1 KR 102355374B1 KR 1020190119553 A KR1020190119553 A KR 1020190119553A KR 20190119553 A KR20190119553 A KR 20190119553A KR 102355374 B1 KR102355374 B1 KR 102355374B1
Authority
KR
South Korea
Prior art keywords
pte
tlb
memory address
buffer
index buffer
Prior art date
Application number
KR1020190119553A
Other languages
English (en)
Other versions
KR20210037216A (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 KR1020190119553A priority Critical patent/KR102355374B1/ko
Priority to US17/026,963 priority patent/US11704018B2/en
Publication of KR20210037216A publication Critical patent/KR20210037216A/ko
Application granted granted Critical
Publication of KR102355374B1 publication Critical patent/KR102355374B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명은 SRAM과 STT-MRAM를 이용하여 TLB를 구성하여 SRAM으로 TLB를 구성하는 경우보다 저장 용량을 크게 향상시킴으로써, TLB의 페이지 히트율을 높여 디바이스의 처리량을 향상시킬 수 있고, 페이지 테이블 엔트리를 SRAM에 우선 라이트한 이후, 이용 빈도가 높은 페이지 테이블 엔트리를 선택하여 STT-MRAM으로 이동시킴으로써, 라이트 속도가 느린 STT-MRAM을 이용하여 발생될 수 있는 TLB 업데이트 시간 증가를 방지할 수 있으며 리드 시간과 리드 에너지 소비를 줄일 수 있는 그래픽 처리 장치 및 이의 메모리 주소 관리 방법을 제공할 수 있다.

Description

이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법{MEMORY MANAGEMENT UNIT CAPABLE OF MANAGING ADDRESS TRANSLATION TABLE USING HETEROGENEOUS MEMORY, AND ADDRESS MANAGEMENT METHOD THEREOF}
본 발명은 메모리 관리 유닛 및 이의 메모리 주소 관리 방법에 관한 것으로, 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법에 관한 것이다.
일반적으로 컴퓨터 시스템은 중앙 처리 장치(Central Processing Units: 이하 CPU)와 메인 메모리 이외에도 다양한 디바이스들을 포함하여 구성된다.
CPU와 GPU를 포함한 컴퓨터 시스템 내의 각종 디바이스는 호환성과 효율성을 위해 가상 메모리 주소를 이용하여 메모리에 접근한다. 이에 가상 메모리 주소를 물리적 주소로 변환하기 위한 페이지 테이블(Page table)을 저장하는 변환 색인 버퍼(Translation Lookaside Buffer: 이하 TLB)를 구비할 수 있다. TLB는 메모리 관리 유닛(Memory Management Unit) 또는 그 일부로 이용되고 있다.
한편 일부 디바이스는 메인 메모리와 별도의 내부 메모리를 구비할 수 있으며, 이러한 디바이스 중 대표적인 디바이스로 그래픽 처리 장치(Graphic Processing Units: 이하 GPU)가 있다.
도 1은 변환 색인 버퍼를 구비하는 디바이스의 개략적 구조를 나타낸다.
도 1은 디바이스의 일예로 GPU를 도시하였으며, 설명의 편의를 위하여 일부 구성만을 도시하였다.
도 1에 도시된 바와 같이, GPU(100)는 각각 독립적인 연산을 수행하는 다수의 스트리밍 멀티프로세서(Streaming Multiprocessor: SM)(110)와 내부 공유 메모리인 글로벌 메모리(120)를 포함할 수 있다. 그리고 다수의 스트리밍 멀티 프로세서(110) 각각은 단일 명령에 대해 다수의 쓰레드를 동시에 처리할 수 있도록 다수의 스트림 프로세서(Stream processor: SP)(111)를 포함한다.
다수의 스트리밍 멀티 프로세서(110) 각각은 다수의 스트림 프로세서(111)를 포함하여, 32개 또는 64개와 같이 2의 승수에 대응하는 쓰레드의 집합인 와프(Warp)(또는 웨이브프론트(wavefront)라고도 함)를 단일 명령으로 처리하는 단일 명령 멀티 쓰레드(Single Instruction Multiple Threads: 이하 SIMT) 방식으로 실행될 수 있다.
그리고 GPU(100)에서 다수의 스트리밍 멀티 프로세서(110) 각각은 명령에 따른 연산을 수행하기 위해 메모리에 접근하여 데이터를 획득해야 하며, 이때 상기한 바와 같이 가상 메모리 주소를 실제 물리 메모리 주소로 변환하는 과정이 요구된다. 이를 위해, 다수의 스트리밍 멀티 프로세서(110) 각각에는 L1 변환 색인 버퍼(translation lookaside buffer: 이하 TLB)(112)가 포함되고, GPU(100)에는 다수의 스트리밍 멀티 프로세서(110) 각각이 공유하여 이용하는 L2 TLB(130)가 포함된다.
L1 및 L2 TLB(112, 130) 각각은 페이지 테이블을 포함하며, 페이지 테이블은 가상 주소와 가상 주소에 대응하는 물리 주소가 기록된 다수의 페이지 테이블 엔트리(page table entry: 이하 PTE)로 구성된다. TLB는 자주 이용되는 가상 주소를 빠르게 물리 주소로 변환하기 위해 구비되는 일종의 주소 캐시(address cache)로서 주로 최근 사용된 PTE들을 저장한다.
TLB가 페이지 테이블에서 가상 주소에 대응하는 페이지, 즉 PTE를 탐색하는 경우를 페이지 히트(page hit)라고 하고, 탐색하지 못한 경우를 페이지 폴트(page fault)라 한다. L1 TLB(112)는 페이지 히트 시에 가상 주소에 대응하는 물리 주소를 이용하여 대응하는 L1 캐시 메모리(L1 Cache)(113)를 탐색하고, L1 캐시 메모리(113)에 해당 물리 주소의 데이터가 존재하면, 데이터를 선택한다. 반면, 물리 주소에 대응하는 데이터가 존재하지 않으면, L2 캐시(L2 Cache)(140) 및 글로벌 메모리(120)를 순차적으로 탐색하여 데이터를 선택한다.
한편, L1 TLB(112)에서 페이지 폴트가 발생되면, L1 TLB(112) 보다 속도가 느린 L2 TLB(130)에서 가상 주소에 대응하는 PTE를 탐색하고, 이후 글로벌 메모리(120)에서 순차적으로 해당 페이지를 탐색한다.
그리고 스트리밍 멀티 프로세서(110)는 와프 내의 모든 쓰레드들에 대해 페이지 히트가 되지 않으면, 즉 데이터가 로드되지 않으면, 해당 와프 전체가 실행되지 않게 되어 GPU(100)의 전체적인 처리량(Throughput)이 낮아지는 문제가 있다. 특히 SIMT 방식으로 실행되는 GPU는 CPU에 비해 동시에 메모리에 접근하는 수가 많아 CPU보다 TLB의 페이지 히트율에 더 큰 영향을 받는다.
따라서 TLB, 특히 L1 TLB(112)에 많은 PTE가 저장될수록 GPU의 성능이 크게 향상될 수 있다. 또한 GPU(100)의 메모리의 저장 용량이 점차로 증가함에 따라 GPU의 페이지 크기와 TLB의 크기가 또한 증가되고 있으며, 이에 집적도가 크고 에너지 효율적인 메모리를 이용하여 L1 TLB(112)를 구현할 필요가 있다.
기존에 L1 TLB(112)의 경우, 빠른 접근이 가능하도록 일반적으로 정적 랜덤 액세스 메모리(static random access memory: 이하 SRAM)로 구성되었다. SRAM은 빠른 접근 속도를 제공하는 장점이 있는 반면, 집적도가 낮아 면적 대비 많은 PTE를 저장할 수 없을 뿐만 아니라, 휘발성 메모리이므로 전원이 차단되면 데이터가 소실된다는 한계가 있다.
한국 공개 특허 제10-2019-0002473호 (2019.01.08 공개)
본 발명의 목적은 페이지 히트율을 높여 처리량을 향상시킬 수 있는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법을 제공하는데 있다.
본 발명의 다른 목적은 SRAM과 STT-MRAM를 이용하여 TLB를 구성함으로써, 저장 용량을 향상시키고, 전력 소모를 줄이며, STT-MRAM을 이용하여 발생하는 TLB 업데이트 시간 증가를 억제할 수 있는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 메모리 관리 유닛은 SRAM으로 구현되어 대응하는 적어도 하나의 프로세서에서 인가되는 가상 메모리 주소를 물리 메모리 주소로 변환하기 위한 다수의 페이지 테이블 엔트리(이하 PTE)로 구성되는 페이지 테이블을 저장하는 제1 변환 색인 버퍼; 및 STT-MRAM으로 구현되어 상기 제1 변환 색인 버퍼에 저장된 다수의 PTE에서 이용 빈도에 따라 구분되는 핫 페이지에 대한 PTE를 인가받아 저장하는 제2 변환 색인 버퍼를 포함한다.
상기 제1 변환 색인 버퍼 및 상기 제2 변환 색인 버퍼는 대응하는 프로세서에서 가상 메모리 주소가 인가되면, 인가된 가상 메모리 주소에 대응하는 PTE를 동시에 탐색하여 물리 메모리 주소로 변환한다.
상기 제2 변환 색인 버퍼는 상기 제1 변환 색인 버퍼보다 큰 저장 용량을 가질 수 있다.
상기 제1 변환 색인 버퍼는 상기 가상 메모리 주소에 대응하는 PTE가 탐색되면, 탐색된 PTE의 카운트 비트의 값을 증가시키고, 상기 카운트 비트의 값이 기지정된 문턱값 이상인 PTE를 상기 제2 변환 색인 버퍼로 전송할 수 있다.
상기 제2 변환 색인 버퍼는 상기 PTE가 저장되는 저장 공간이 상위 공간과 하위 공간으로 구분되고, 상기 가상 메모리 주소에 포함된 TLB 태그의 최하위 비트에 따라 상기 제1 변환 색인 버퍼에서 전송되는 PTE를 상위 공간과 하위 공간 중 하나에 구분하여 저장할 수 있다.
상기 메모리 관리 유닛은 상기 제1 변환 색인 버퍼 및 제2 변환 색인 버퍼에서 PTE가 탐색되지 않으면, 기지정된 방식으로 상기 가상 메모리 주소를 물리 메모리 주소로 변환하여 PTE를 생성하고, 생성된 PTE에 상기 카운트 비트를 추가하는 페이지 테이블 워커를 더 포함할 수 있다.
상기 페이지 테이블 워커는 생성된 PTE를 상기 제1 변환 색인 버퍼로 전송하여 저장할 수 있다.
상기 메모리 관리 유닛은 각각 다수의 스트림 프로세서를 구비하는 다수의 스트리밍 멀티 프로세서를 포함하는 그래픽 처리 장치로 구현될 수 있다.
상기 제1 변환 색인 버퍼 및 제2 변환 색인 버퍼는 상기 다수의 스트리밍 멀티 프로세서 각각에 포함될 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 메모리 관리 유닛의 메모리 주소 관리 방법은 SRAM으로 구현되는 제1 변환 색인 버퍼와 STT-MRAM으로 구현되는 제2 변환 색인 버퍼를 포함하는 메모리 관리 유닛의 메모리 주소 관리 방법에 있어서, 대응하는 적어도 하나의 프로세서로부터 가상 메모리 주소가 인가되면, 상기 제1 변환 색인 버퍼 및 상기 제2 변환 색인 버퍼가 가상 메모리 주소를 물리 메모리 주소로 변환하기 위해 기저장된 다수의 페이지 테이블 엔트리(이하 PTE)로 구성되는 페이지 테이블에서 인가된 가상 메모리 주소에 대응하는 PTE를 동시에 탐색하는 단계; 및 상기 제1 변환 색인 버퍼에 저장된 다수의 PTE에서 이용 빈도에 따라 구분된 핫 페이지에 대한 PTE가 상기 제2 변환 색인 버퍼에 저장되도록 전달하는 단계를 포함한다.
따라서, 본 발명의 실시예에 따른 그래픽 처리 장치 및 이의 메모리 주소 관리 방법은 SRAM과 STT-MRAM를 이용하여 TLB를 구성하여 SRAM으로 TLB를 구성하는 경우보다 저장 용량을 크게 향상시킴으로써, TLB의 페이지 히트율을 높여 디바이스의 처리량을 향상시킬 수 있다. 또한 페이지 테이블 엔트리를 SRAM에 우선 라이트한 이후, 이용 빈도가 높은 페이지 테이블 엔트리를 선택하여 STT-MRAM으로 이동시킴으로써, 라이트 속도가 느린 STT-MRAM을 이용하여 발생될 수 있는 TLB 업데이트 시간 증가를 방지할 수 있다. 또한 리드 시간과 리드 에너지 소비를 줄일 수 있다.
도 1은 변환 색인 버퍼를 구비하는 디바이스의 개략적 구조를 나타낸다.
도 2는 디바이스의 캐시 및 변환 색인 버퍼 접근을 분석한 결과를 나타낸다.
도 3은 디바이스의 변환 색인 버퍼에서 핫 페이지와 콜드 페이지의 비율과 핫 페이지와 콜드 페이지 각각에 대한 접근 비율을 분석한 결과를 나타낸다.
도 4는 본 발명의 일 실시예에 따른 변환 색인 버퍼를 구비하는 디바이스의 개략적 구조를 나타낸다.
도 5는 본 실시예에 따른 하이브리드 TLB에서 가상 메모리 주소와 페이지 테이블의 구조를 나타낸다.
도 6은 본 발명의 일 실시예에 따른 메모리 관리 유닛의 메모리 주소 관리 방법을 나타낸다.
도 7은 도 6의 TLB 업데이트 단계를 상세하게 나타낸 도면이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 발명에서는 기존의 SRAM으로 구현되는 L1 TLB의 한계를 극복하기 위해, 스핀주입 자화 반전 메모리(Spin-transfer Torque Magnetic Random Access Memory: 이하 STT-MRAM)를 SRAM과 함께 이용하여 디바이스의 L1 TLB를 구현한다.
STT-MRAM은 SRAM과 비슷한 리드 레이턴시(read latency)를 갖는 비휘발성 메모리로서, SRAM에 비해 집적도가 높을 뿐만 아니라 리드 동작에 소모되는 에너지가 적다는 장점이 있다. 즉 동일 면적에 더 많은 데이터를 저장할 수 있으며, 전력 소모를 줄일 수 있다.
표 1은 TLB가 SRAM 및 STT-MRAM으로 구성되는 경우의 특성을 분석한 결과를 나타낸다.
Figure 112019099072012-pat00001
표 1의 STT-MRAM에서 1T1J(one magnetic tunnel one junction)와 2T2J(two magnetic tunnel two junction)는 차동 센싱(differential sensing) 방식에 따라 구분된 STT-MRAM를 나타낸다.
표 1을 참조하면, 유사한 메모리 면적에서 1T1J STT-MRAM은 SRAM에 비해 4배, 2T2J STT-MRAM은 2배의 저장 용량을 가짐을 알 수 있으며, 리드 시간(Read Time)가 SRAM과 유사하거나 더 빠르다는 것을 알 수 있다. 즉 STT-MRAM을 이용하여 L1 TLB를 구현하는 경우, 더 많은 PTE를 저장하여 페이지 히트율을 크게 높일 수 있다는 장점이 있다.
또한 STT-MRAM은 리드 에너지(Read Energy)가 SRAM에 비해 매우 작게 소모되므로, TLB의 전력 소모를 줄일 수 있다.
그러나 표 1에 나타난 바와 같이, STT-MRAM의 쓰기 시간(Write Time)은 SRAM에 비해 4배 이상이다. 즉 TLB에 새로운 PTE를 라이트하는 TLB 업데이트 시에 매우 많은 시간이 요구되며, 이로 인해 L1 TLB를 STT-MRAM만으로 구현하는 경우 TLB의 성능을 향상시키기 어렵고 결과적으로 디바이스의 처리량을 향상시킬 수 없다.
도 2는 디바이스의 캐시 및 변환 색인 버퍼 접근을 분석한 결과를 나타내고, 도 3은 디바이스의 변환 색인 버퍼에서 핫 페이지와 콜드 페이지의 비율과 핫 페이지와 콜드 페이지 각각에 대한 접근 비율을 분석한 결과를 나타낸다.
도 2 및 도 3에서도 디바이스의 일예로 GPU에 대한 분석 결과를 나타내었으며, 도 2는 GPGPU-Sim(cycle driven GPU simulator) 프로그램에서 GPU 시뮬레이션 벤치마크로 흔히 사용되는 ISPASS 2019, Parboil를 이용하여 GPU 캐시 및 TLB의 리드 및 라이트 비율을 분석한 결과이다. 도 2를 참조하면 TLB의 PTE는 캐시의 데이터 블록에 비해 매우 빈번하게 리드 되는 반면 라이트 비율이 매우 낮다는 것을 알 수 있다.
또한 도 3을 참조하면 GPU는 대체로 이전 접근 빈도가 낮은 콜드 페이지(cold page)보다 자주 접근했던 페이지인 핫 페이지(hot page)에 더 자주 접근한다는 것을 알 수 있다.
이와 같이 도 2 및 도 3에 나타난 GPU의 특성을 고려하여, 본 실시예에서는 SRAM과 STT-MRAM을 모두 이용하여 L1 TLB를 구현하되 SRAM과 STT-MRAM의 단점은 줄이고 장점은 더욱 부각되도록, L1 TLB에 저장되어야 하는 PTE를 우선 SRAM에 라이트하고, SRAM에 저장된 PTE 중 핫 페이지만을 STT-MRAM에 저장하는 방식으로 TLB를 업데이트 한다.
여기서 L1 TLB에 포함되는 STT-MRAM은 2T2J STT-MRAM이 적용되는 것으로 가정한다. 2T2J STT-MRAM는 비록 동일 면적에서 1T1J STT-MRAM보다 더 적은 저장 용량을 갖고 동일한 라이트 시간을 갖지만, 더 짧은 리드 시간과 더 적은 에러율(error rate)을 갖는다는 장점이 있다. 그러나 본 발명은 이에 한정되지 않으며, 1T1J STT-MRAM이 적용될 수도 있다.
도 4는 본 발명의 일 실시예에 따른 변환 색인 버퍼를 구비하는 디바이스의 개략적 구조를 나타낸다. 도 4에서도 디바이스의 일예로 GPU를 도시하였으며, 설명의 편의를 위하여, GPU에서 일부 구성만을 도시하였다.
도 4를 참조하면, GPU는 도 1에서와 같이 다수의 스트리밍 멀티프로세서(210)를 포함하고, 다수의 스트리밍 멀티프로세서(210) 각각은 다수의 스트림 프로세서(211)와 L1 TLB(212) 및 페이지 테이블 기준 레지스터(Page Table Base Register: 이하 PTBR)를 포함할 수 있다. 특히 본 실시예에서 L1 TLB(212)는 서로 다른 이종의 메모리로 구현되는 제1 L1 TLB(2121)와 제2 L1 TLB(2122)를 포함한다. 즉 L1 TLB(212)는 하이브리드 메모리로 구현될 수 있다. 여기서는 일예로 제1 L1 TLB는 SRAM으로 구현되고, 제2 L1 TLB는 STT-MRAM으로 구현될 수 있다.
L1 TLB(212)는 다수의 스트림 프로세서(211)에서 리드해야하는 가상 메모리 주소가 전송되면, 제1 L1 TLB(2121)와 제2 L1 TLB(2122) 각각에 저장된 PTE를 탐색한다. 그리고 가상 메모리 주소에 대응하는 PTE가 제1 L1 TLB(2121) 또는 제2 L1 TLB(2122)에서 탐색되면, 탐색된 PTE에 따라 가상 메모리 주소를 물리 메모리 주소로 변환한다.
L1 TLB(212)에서 제2 L1 TLB(2122)가 집적도가 높은 STT-MRAM으로 구현됨에 따라 동일한 면적에서 더 많은 PTE를 저장할 수 있으며, 이로 인해 L1 TLB(212)의 히트율이 크게 증가된다. 이는 디바이스의 처리량이 대폭 향상될 수 있다. 또한 STT-MRAM의 리드 시간이 짧으며 전력 소비가 적으므로, L1 TLB(212)의 전력 소비와 리드 시간을 줄일 수 있다.
L1 TLB(212)의 제1 L1 TLB(2121)와 제2 L1 TLB(2122) 모두에서 가상 메모리 주소에 대응하는 PTE가 탐색되지 않으면, 다수의 스트리밍 멀티프로세서(210)가 공유하는 공유 TLB인 L2 TLB(230)에서 가상 주소에 대응하는 PTE를 탐색한다. 만일 L2 TLB(230)에 대응하는 PTE가 탐색되면, 가상 메모리 주소를 물리 메모리 주소로 변환한다. 그러나 L2 TLB(230)에서도 대응하는 PTE가 탐색되지 않으면, 페이지 테이블 워커(Page Table Walker)(250)가 공유 캐시인 L2 캐시(240) 및 글로벌 메모리(220)에 접근하여 가상 메모리 주소에 대응하는 PTE를 획득하고, 획득된 PTE를 TLB에 업데이트 한다.
이때, 페이지 테이블 워커(250)는 페이지 테이블 기준 레지스터(Page Table Base Register: PTBR)에 저장된 페이지 테이블의 시작 주소를 인가받아 PTE를 탐색할 수 있다. 그리고 페이지 테이블 워커(250)는 PTE에 기지정된 비트수의 카운트 비트(C)를 추가할 수 있다. 페이지 테이블 워커(250)는 PTE를 L2 TLB(230)로 전달하여 L2 TLB(230)를 업데이트 할 수 있다.
그리고 L2 TLB(230)는 해당 PTE가 탐색될 때마다, 즉 적어도 하나의 스트리밍 멀티프로세서(210)에서 PTE를 탐색할 때마다 카운트 비트(C)를 증가시키고, PTE의 카운트 비트(C)의 값이 기지정된 제1 문턱값에 도달하면 PTE를 L1 TLB(212)로 전달하여 L1 TLB(212)를 업데이트 한다.
이때, L2 TLB(230)는 L1 TLB(212)의 제1 L1 TLB(2121)로 PTE를 전달하여 업데이트 한다. 이는 SRAM으로 구현되는 제1 L1 TLB(2121)가 STT-MRAM으로 구현되는 제2 L1 TLB(2122)에 비해 라이트 시간이 상대적으로 매우 짧기 때문이다.
즉 본 실시예에서는 제1 L1 TLB(2121)을 SRAM으로 구현하고, L1 TLB(212)에 대한 PTE의 업데이트는 제1 L1 TLB(2121)에서만 이루어지도록 함으로써, STT-MRAM으로 구현되는 제2 L1 TLB(2122)로 인해 발생될 수 있는 라이트 시간 증가를 방지할 수 있다.
경우에 따라서는 L2 TLB(230)가 생략될 수도 있으며, 이경우, 페이지 테이블 워커(250)는 PTE를 제1 L1 TLB(2121)로 전달하여 TLB를 업데이트 할 수도 있다.
이후, 제1 L1 TLB(2121)는 PTE가 탐색될 때마다 카운트 비트(C)를 증가시키고, PTE의 카운트 비트(C)의 값이 기지정된 제2 문턱값에 도달하면, PTE를 제2 L1 TLB(2122)로 전달한다. 즉 카운트 비트(C)의 값이 제2 문턱값 이상인 PTE를 핫 페이지로 취급하여 제2 L1 TLB(2122)에 저장한다.
STT-MRAM로 구현되는 제2 L1 TLB(2122)는 라이트 시간이 길다는 단점이 있으나, GPU을 포함한 다수의 디바이스는 도 3에 도시된 바와 같이, 이전 접근 빈도가 높은 핫 페이지에 더 빈번하게 접근하는 특성을 가지므로 라이트 속도가 느리다는 단점이 상쇄될 수 있다. 특히 PTE는 제1 L1 TLB(2121)에 우선 업데이트 된 이후, 기지정된 횟수 이상 탐색되는 경우에만 제2 L1 TLB(2122)에 라이트 되도록 함으로써, 제2 L1 TLB(2122)가 STT-MRAM로 구현됨에 따른 라이트 시간의 증가로 인한 디바이스의 처리량 저하를 억제할 수 있다.
한편, 제1 L1 TLB(2121)는 PTE를 제2 L1 TLB(2122)로 이동시킬 때, TLB 태그(TLB Tag)의 최하위 비트(Least Significant Bit: LSB)에 따라 제2 L1 TLB(2122)의 상위 공간과 하위 공간으로 구분하여 전달할 수 있다. 이는 SRAM으로 구현되는 제1 L1 TLB(2121)과 STT-MRAM로 구현되는 제2 L1 TLB(2122)의 집적도가 상이하기 때문에, 제2 L1 TLB(2122)에 제1 L1 TLB(2121)보다 많은 양의 PTE를 저장할 수 있도록 하기 위함이다.
그리고 제1 L1 TLB(2121)와 제2 L1 TLB(2122) 및 L2 TLB(230)는 기지정된 방식으로 저장된 PTE를 축출(eviction)할 수 있으며, 일예로 최저 사용 빈도(least recently used: LRU) 기법에 따라 탐색 빈도가 낮은 PTE부터 순차적으로 축출함으로써 다른 PTE가 저장될 수 있도록 한다.
도 5는 본 실시예에 따른 하이브리드 TLB에서 가상 메모리 주소와 페이지 테이블의 구조를 나타낸다.
도 5를 참조하면 가상 메모리 주소(VA)는 TLB 태그(TLB tag)(TLBT), TLB 색인(TLB index)(TLBI), 가상 페이지 오프셋(Virtual Page Offset)(VPO)로 구성될 수 있다. TLB 태그(TLBT), TLB 색인(TLBI)은 다수의 PTE를 포함하는 페이지 테이블이 저장된 TLB에서 특정 PTE를 선택하기 위한 값으로 TLB의 페이지 테이블에서 태그(Tag)에 대응한다. 가상 페이지 오프셋(VPO)은 물리 페이지의 오프셋(physical page offset)을 나타낸다.
그리고 제1 및 제2 L1 TLB(2121, 2122)의 페이지 테이블을 구성하는 PTE는 유효 비트(Valid)(V), 카운트 비트(C), 태그(Tag) 및 물리 페이지 넘버(Physical Page Number)(PPN)를 포함하여 구성될 수 있다. 유효 비트(V)는 해당 페이지가 메모리에 저장되어 있는지 여부를 나타내고, 카운트 비트(C)는 핫 페이지 여부를 판정하기 위해 추가된 비트이다. 태그(Tag)는 페이지 테이블에서 각 PTE의 주소를 나타내며, 가상 메모리 주소(VA)의 TLB 태그(TLBT), TLB 색인(TLBI)에 대응될 수 있다.
도 5에 도시된 바와 같이, 제1 및 제2 L1 TLB(2121, 2122) 각각은 가상 메모리 주소(VA)가 인가되면, TLB 색인(TLBI)에 대응하는 PTE를 탐색하고, 탐색된 PTE의 태그(Tag)가 TLB 태그(TLBT)에 매칭되는지 판별한다. 또한 탐색된 PTE의 유효 비트(V)가 1인지 판한다. 만일 제1 및 제2 L1 TLB(2121, 2122) 중 적어도 하나에서 탐색된 PTE의 유효 비트(V)가 1이고, 태그(Tag)가 TLB 태그(TLBT)에 매칭되면, 제1 L1 TLB(2121) 또는 제2 L1 TLB(2121, 2122)는 가상 메모리 주소(VA)에 대응하는 PTE가 히트되었음을 통지하고, PTE로부터 획득되는 물리 메모리 주소에 따라 캐시 및 글로벌 메모리에서 순차적으로 접근하여 데이터를 탐색하여, 탐색된 데이터가 대응하는 스트리밍 멀티프로세서(210)의 스트림 프로세서(211)로 전달되도록 한다.
그리고 제1 L1 TLB(2121)는 특정 PTE의 카운트 비트(C)의 값이 제2 문턱값 이상이면, 해당 PTE를 제2 L1 TLB(2121, 2122)로 이동시킨다. 이때, 제1 L1 TLB(2121)는 가상 메모리 주소(VA)에서 TLB 태그(TLBT)의 최하위 비트(LSB)를 참조하여, 최하위 비트(LSB)가 0이면 제2 L1 TLB(2121, 2122)의 상위 주소 공간으로, 1이면 제2 L1 TLB(2121, 2122)의 하위 주소 공간으로 이동시킬 수 있다.
여기서는 디바이스의 일예로 GPU를 도시하였으므로, 본 실시예의 하이브리드 TLB가 L1 TLB(212)로서 다수의 스트리밍 멀티프로세서(210) 각각에 포함되는 것으로 도시하였다. 그러나 본 발명은 이에 한정되지 않으며, 다수의 프로세서가 포함된 다양한 멀티프로세서에 포함될 수 있으며, 개별 프로세서 각각에 대응하여 구성될 수도 있다. 일예로 하이브리드 TLB는 다수의 코어 프로세서를 포함하는 CPU 등과 같은 디바이스에도 적용될 수 있다.
도 6은 본 발명의 일 실시예에 따른 메모리 관리 유닛의 메모리 주소 관리 방법을 나타내고, 도 7은 도 6의 TLB 업데이트 단계를 상세하게 나타낸 도면이다.
여기서도 메모리 관리 유닛은 적어도 하나의 L1 TLB(212)와 적어도 하나의 L2 TLB(230)를 포함하여 구성되는 것으로 가정하고, L1 TLB(212)는 SRAM으로 구현되는 제1 L1 TLB(2121)와 STT-MRAM으로 구현되는 제2 TLB(2122)를 포함하여 구성되는 것으로 가정하여 설명한다. 그러나 경우에 따라서 L2 TLB(230)은 생략될 수도 있다.
도 4 및 도 5를 참조하여, 도 6의 본 실시예에 따른 메모리 관리 유닛의 메모리 주소 관리 방법을 설명하면, 적어도 하나의 L1 TLB(212)는 가상 메모리 주소(VA)가 인가되는지 판별한다(S10). 여기서 가상 메모리 주소(VA)는 대응하는 적어도 하나의 프로세서에서 인가될 수 있다. 그리고 가상 메모리 주소(VA)가 인가되면, L1 TLB(212)의 제1 L1 TLB(2121)가 저장된 페이지 테이블에서 가상 메모리 주소(VA)에 대응하는 PTE를 탐색한다(S20). 이와 함께 제2 TLB(2122) 또한 저장된 페이지 테이블에서 가상 메모리 주소(VA)에 대응하는 PTE를 탐색한다(S30). 즉 L1 TLB(212)의 제1 L1 TLB(2121)와 제2 TLB(2122)는 인가된 가상 메모리 주소(VA)에 대응하는 PTE를 동시에 병렬로 탐색한다.
그리고 제1 L1 TLB(2121)와 제2 TLB(2122) 중 적어도 하나에서 가상 메모리 주소(VA)에 대응하는 PTE가 획득되는지 판별한다(S40). 만일 가상 메모리 주소(VA)에 대응하는 PTE가 탐색되지 않으면, L2 TLB가 저장된 페이지 테이블에서 가상 메모리 주소(VA)에 대응하는 PTE를 탐색한다(S50).
그리고 L2 TLB에서 가상 메모리 주소(VA)에 대응하는 PTE가 획득되는지 판별한다(S60). 만일 L2 TLB에서도 가상 메모리 주소(VA)에 대응하는 PTE가 탐색되지 않으면, 가상 메모리 주소(VA)를 기지정된 방식으로 물리 메모리 주소(PA)로 변환하여 캐시 메모리 및 글로벌 메모리를 탐색한다(S70).
한편, L1 TLB(212) 또는 L2 TLB(230)에서 가상 메모리 주소(VA)에 대응하는 PTE가 획득되면, 획득된 PTE에 따라 가상 메모리 주소(VA)를 물리 메모리 주소(PA)로 변환하고, 변환된 물리 메모리 주소에 따라 캐시 메모리 및 글로벌 메모리에 순차 접근한다(S80).
그리고 캐시 메모리 및 글로벌 메모리에서 탐색하여 획득된 데이터의 주소에 따른 PTE를 TLB에 업데이트하거나, L1 TLB(212) 또는 L2 TLB(230)에 저장된 PTE를 이동시켜 TLB를 업데이트 한다(S90).
도 7을 참조하면, TLB 업데이트 단계에서는 우선 L1 TLB 및 L2 TLB에서 PTE가 탐색되지 않아 페이지 폴트가 발생되었는지 판별한다(S911). 만일 페이지 폴트가 발생되어 가상 메모리 주소(VA)를 기지정된 방식으로 물리 메모리 주소(PA)로 변환하여 캐시 메모리 또는 글로벌 메모리에 접근한 경우, 페이지 테이블 워커 (250)가 해당 가상 메모리 주소(VA)와 물리 메모리 주소(PA)를 매칭한 PTE를 획득하여 L2 TLB에 라이트 한다(S912).
그러나 L1 TLB(212) 또는 L2 TLB(230)에서 페이지 폴트가 발생되지 않은 것으로 판별되면, PTE의 카운트 비트(C)를 증가시킨다(S913). 그리고 L2 TLB(230)에서 PTE가 탐색되었는지 판별한다(S914). 만일 L2 TLB(230)에서 PTE가 탐색된 것으로 판별되면, 카운트 비트가 기지정된 제1 문턱값 이상인지 판별한다(S915). 카운트 비트(C)가 제1 문턱값 이상이면, L2 TLB(230)에 저장된 PTE를 L1 TLB(212), 특히 SRAM으로 구현되어 쓰기 시간이 짧은 제1 L1 TLB(2121)로 이동시킨다(S916).
또한 L1 TLB(212)에서 PTE가 탐색되었는지 판별한다(S917). L1 TLB(212)에서 PTE가 탐색된 것으로 판별되면, 카운트 비트가 기지정된 제2 문턱값 이상인지 판별한다(S918). 카운트 비트(C)가 제2 문턱값 이상이면, 제1 L1 TLB(2121)에 저장된 PTE를 제2 L1 TLB(2122)로 이동시킨다.
그리고 L1 TLB(212) 및 L2 TLB(230)에 저장된 PTE를 기지정된 방식으로 축출하여 추가적인 PTE를 획득할 저장 공간을 확보한다. 여기서 PTE는 일예로 최저 사용 빈도(LRU) 기법에 따라 축출할 수 있다.
상기에서는 TLB가 L1 TLB(212)와 L2 TLB(230)로 구분되어 구비되는 것으로 가정하였으나 L2 TLB(230)은 생략될 수 있으며, 이 경우, L2 TLB 탐색 단계(S50)와 L2 TLB에서 PTE가 획득되는지 판별하는 단계(S60)는 생략될 수 있다. 또한 TLB 업데이트 단계(S90)에서도 L2 TLB에서 PTE가 탐색되는지 확인하는 단계(S9145)부터 제1 L1 TLB(2121)로 이동시키는 단계(S916)는 생략될 수 있다.
본 발명에 따른 방법은 컴퓨터에서 실행시키기 위한 매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다. 여기서 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 또한 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함하며, ROM(판독 전용 메모리), RAM(랜덤 액세스 메모리), CD(컴팩트 디스크)-ROM, DVD(디지털 비디오 디스크)-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함할 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
210: 스트리밍 멀티프로세서 211: 스트림 프로세서
212: L1 변환 색인 버퍼 213: 페이지 테이블 기준 레지스터
220: 글로벌 메모리 230: L2 변환 색인 버퍼
240: L2 캐시 250: 페이지 테이블 워커

Claims (11)

  1. SRAM으로 구현되어 대응하는 적어도 하나의 프로세서에서 인가되는 가상 메모리 주소를 물리 메모리 주소로 변환하기 위한 다수의 페이지 테이블 엔트리(이하 PTE)로 구성되는 페이지 테이블을 저장하는 제1 변환 색인 버퍼; 및
    STT-MRAM으로 구현되어 상기 제1 변환 색인 버퍼에 저장된 다수의 PTE에서 이용 빈도에 따라 구분되는 핫 페이지에 대한 PTE를 인가받아 저장하는 제2 변환 색인 버퍼를 포함하고,
    상기 제1 변환 색인 버퍼 및 상기 제2 변환 색인 버퍼는 대응하는 프로세서에서 가상 메모리 주소가 인가되면, 인가된 가상 메모리 주소에 대응하는 PTE를 동시에 탐색하여 물리 메모리 주소로 변환하는 메모리 관리 유닛.
  2. 제1 항에 있어서, 상기 제2 변환 색인 버퍼는
    상기 제1 변환 색인 버퍼보다 큰 저장 용량을 갖는 메모리 관리 유닛.
  3. 제1 항에 있어서, 상기 제1 변환 색인 버퍼는
    상기 가상 메모리 주소에 대응하는 PTE가 탐색되면, 탐색된 PTE의 카운트 비트의 값을 증가시키고, 상기 카운트 비트의 값이 기지정된 문턱값 이상인 PTE를 상기 제2 변환 색인 버퍼로 전송하는 메모리 관리 유닛.
  4. 제3 항에 있어서, 상기 제2 변환 색인 버퍼는
    상기 PTE가 저장되는 저장 공간이 상위 공간과 하위 공간으로 구분되고, 상기 가상 메모리 주소에 포함된 TLB 태그의 최하위 비트에 따라 상기 제1 변환 색인 버퍼에서 전송되는 PTE를 상위 공간과 하위 공간 중 하나에 구분하여 저장하는 메모리 관리 유닛.
  5. 제3 항에 있어서, 상기 메모리 관리 유닛은
    상기 제1 변환 색인 버퍼 및 제2 변환 색인 버퍼에서 PTE가 탐색되지 않으면, 기지정된 방식으로 상기 가상 메모리 주소를 물리 메모리 주소로 변환하여 PTE를 생성하고, 생성된 PTE에 상기 카운트 비트를 추가하는 페이지 테이블 워커를 더 포함하는 메모리 관리 유닛.
  6. 제5 항에 있어서, 상기 페이지 테이블 워커는
    생성된 PTE를 상기 제1 변환 색인 버퍼로 전송하여 저장하는 메모리 관리 유닛.
  7. 제1 항에 있어서, 상기 메모리 관리 유닛은
    각각 다수의 스트림 프로세서를 구비하는 다수의 스트리밍 멀티 프로세서를 포함하는 그래픽 처리 장치로 구현될 수 있으며,
    상기 제1 변환 색인 버퍼 및 제2 변환 색인 버퍼는
    상기 다수의 스트리밍 멀티 프로세서 각각에 포함되는 메모리 관리 유닛.
  8. SRAM으로 구현되는 제1 변환 색인 버퍼와 STT-MRAM으로 구현되는 제2 변환 색인 버퍼를 포함하는 메모리 관리 유닛의 메모리 주소 관리 방법에 있어서,
    대응하는 적어도 하나의 프로세서로부터 가상 메모리 주소가 인가되면, 상기 제1 변환 색인 버퍼 및 상기 제2 변환 색인 버퍼가 가상 메모리 주소를 물리 메모리 주소로 변환하기 위해 기저장된 다수의 페이지 테이블 엔트리(이하 PTE)로 구성되는 페이지 테이블에서 인가된 가상 메모리 주소에 대응하는 PTE를 동시에 탐색하는 단계; 및
    상기 제1 변환 색인 버퍼에 저장된 다수의 PTE에서 이용 빈도에 따라 구분된 핫 페이지에 대한 PTE가 상기 제2 변환 색인 버퍼에 저장되도록 전달하는 단계를 포함하는 메모리 관리 유닛의 메모리 주소 관리 방법.
  9. 제8 항에 있어서, 상기 전달하는 단계는
    상기 가상 메모리 주소에 대응하는 PTE가 탐색되면, 탐색된 PTE의 카운트 비트의 값을 증가시키는 단계; 및
    상기 카운트 비트의 값이 기지정된 문턱값 이상인 PTE를 상기 제1 변환 색인 버퍼보다 큰 저장 용량을 갖는 상기 제2 변환 색인 버퍼로 전송하는 단계를 포함하는 메모리 관리 유닛의 메모리 주소 관리 방법.
  10. 제9 항에 있어서, 상기 제2 변환 색인 버퍼로 전송하는 단계는
    상기 제2 변환 색인 버퍼에서 상기 PTE가 저장되는 저장 공간을 상위 공간과 하위 공간으로 구분하고, 상기 가상 메모리 주소에 포함된 TLB 태그의 최하위 비트에 따라 상기 제1 변환 색인 버퍼에서 전송되는 PTE를 상위 공간과 하위 공간 중 하나에 구분하여 저장하는 메모리 관리 유닛의 메모리 주소 관리 방법.
  11. 제9 항에 있어서, 상기 메모리 주소 관리 방법은
    상기 제1 변환 색인 버퍼 및 제2 변환 색인 버퍼에서 PTE가 탐색되지 않으면, 기지정된 방식으로 상기 가상 메모리 주소를 물리 메모리 주소로 변환하여 PTE를 생성하는 단계; 및
    생성된 PTE에 상기 카운트 비트를 추가하는 단계; 및
    상기 카운트 비트가 추가된 PTE를 상기 제1 변환 색인 버퍼로 전송하여 저장하는 단계를 더 포함하는 메모리 관리 유닛의 메모리 주소 관리 방법.
KR1020190119553A 2019-09-27 2019-09-27 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법 KR102355374B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190119553A KR102355374B1 (ko) 2019-09-27 2019-09-27 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
US17/026,963 US11704018B2 (en) 2019-09-27 2020-09-21 Memory management device capable of managing memory address translation table using heterogeneous memories and method of managing memory address thereby

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190119553A KR102355374B1 (ko) 2019-09-27 2019-09-27 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법

Publications (2)

Publication Number Publication Date
KR20210037216A KR20210037216A (ko) 2021-04-06
KR102355374B1 true KR102355374B1 (ko) 2022-01-25

Family

ID=75163182

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190119553A KR102355374B1 (ko) 2019-09-27 2019-09-27 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법

Country Status (2)

Country Link
US (1) US11704018B2 (ko)
KR (1) KR102355374B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11687443B2 (en) * 2013-05-15 2023-06-27 EMC IP Holding Company LLC Tiered persistent memory allocation
US20240020225A1 (en) * 2022-07-18 2024-01-18 Dell Products L.P. Techniques for efficient address translation using metadata with mixed mapping schemes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015184794A (ja) * 2014-03-20 2015-10-22 株式会社東芝 キャッシュメモリシステムおよびプロセッサシステム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100450675B1 (ko) * 2002-03-19 2004-10-01 삼성전자주식회사 성능향상 및 전력소모를 감소시킬 수 있는 tlb
US7089396B2 (en) * 2002-10-10 2006-08-08 International Business Machines Corporation Method and profiling cache for management of virtual memory
US7426626B2 (en) 2005-08-23 2008-09-16 Qualcomm Incorporated TLB lock indicator
US8631206B1 (en) 2007-09-21 2014-01-14 Marvell International Ltd. Way-selecting translation lookaside buffer
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
US9898409B2 (en) 2014-10-09 2018-02-20 The Regents Of The University Of Michigan Issue control for multithreaded processing
KR101936950B1 (ko) 2016-02-15 2019-01-11 주식회사 맴레이 컴퓨팅 디바이스, 코프로세서와 비휘발성 메모리 사이의 데이터 이동 방법 및 이를 포함하는 프로그램
US10261916B2 (en) * 2016-03-25 2019-04-16 Advanced Micro Devices, Inc. Adaptive extension of leases for entries in a translation lookaside buffer
US10678702B2 (en) 2016-05-27 2020-06-09 Advanced Micro Devices, Inc. Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations
KR20180051326A (ko) * 2016-11-07 2018-05-16 삼성전자주식회사 데이터 처리 방법 및 디바이스
US11138125B2 (en) * 2017-07-21 2021-10-05 Taiwan Semiconductor Manufacturing Company Limited Hybrid cache memory and method for reducing latency in the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015184794A (ja) * 2014-03-20 2015-10-22 株式会社東芝 キャッシュメモリシステムおよびプロセッサシステム

Also Published As

Publication number Publication date
KR20210037216A (ko) 2021-04-06
US11704018B2 (en) 2023-07-18
US20210096745A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
JP6505132B2 (ja) メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法
JP5526626B2 (ja) 演算処理装置およびアドレス変換方法
JP7340326B2 (ja) メンテナンス動作の実行
KR20170100003A (ko) 가상 주소들을 사용하여 액세스된 캐시
US10031854B2 (en) Memory system
US20160140042A1 (en) Instruction cache translation management
US20210089470A1 (en) Address translation methods and systems
JP6088951B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
US8335908B2 (en) Data processing apparatus for storing address translations
US11836079B2 (en) Storage management apparatus, storage management method, processor, and computer system
US20120173843A1 (en) Translation look-aside buffer including hazard state
KR102355374B1 (ko) 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
JP7449694B2 (ja) 変換索引バッファにおける構成可能なスキューアソシエイティビティ
US10831673B2 (en) Memory address translation
JP6317048B1 (ja) バースト変換ルックアサイドバッファ
CN109983538B (zh) 存储地址转换
US20180365183A1 (en) Cooperative overlay
US10146698B2 (en) Method and apparatus for power reduction in a multi-threaded mode
US10565111B2 (en) Processor
US11003591B2 (en) Arithmetic processor, information processing device and control method of arithmetic processor
US20140006747A1 (en) Systems and methods for processing instructions when utilizing an extended translation look-aside buffer having a hybrid memory structure
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
KR102661483B1 (ko) 멀티 스레드 모드에서 전력 감소를 위한 방법 및 장치
US20160103766A1 (en) Lookup of a data structure containing a mapping between a virtual address space and a physical address space

Legal Events

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