KR102026877B1 - 메모리 관리 유닛 및 그 동작 방법 - Google Patents
메모리 관리 유닛 및 그 동작 방법 Download PDFInfo
- Publication number
- KR102026877B1 KR102026877B1 KR1020150085267A KR20150085267A KR102026877B1 KR 102026877 B1 KR102026877 B1 KR 102026877B1 KR 1020150085267 A KR1020150085267 A KR 1020150085267A KR 20150085267 A KR20150085267 A KR 20150085267A KR 102026877 B1 KR102026877 B1 KR 102026877B1
- Authority
- KR
- South Korea
- Prior art keywords
- page
- core
- virtual
- page table
- meta
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/682—Multiprocessor TLB consistency
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
Description
도 2는 메모리 계층구조에서 페이지 테이블과 변환 색인 버퍼의 기능을 설명하기 위한 도면이다.
도 3은 복수의 코어를 포함하는 프로세서에서 가상 메모리 접근시 변환 색인 버퍼와 페이지 테이블을 이용하는 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따라, 복수의 코어를 포함하는 프로세서에서 가상 메모리 접근시, 코어마다 페이지 테이블을 적용하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따라, 어느 하나의 코어가 가상 메모리에 접근하고자 하는 경우의 프레임 페이지 할당을 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따라, 코어마다 페이지 테이블을 적용하고, 메타 페이지를 통해 페이지 테이블 및 변환 색인 버퍼를 동기화하는 방법을 설명하기 위한 도면이다.
도 7은 도 6의 실시예에서, 메인 페이지 테이블에 대응하는 어느 하나의 코어가 가상 메모리에 접근하고자 하는 경우의 메타 페이지 및 페이지 테이블의 갱신 방법을 설명하기 위한 도면이다.
도 8은 도 6의 실시예에서, 메인 페이지 테이블에 대응하지 않는 어느 하나의 코어가 가상 메모리에 접근하고자 하는 경우의 메타 페이지 및 페이지 테이블의 갱신 방법을 설명하기 위한 도면이다.
도 9는 도 8의 예시에서, 메인 페이지 테이블에 대응하지 않는 어느 하나의 코어가 가상 메모리에 접근하고자 하는 경우의 메타 페이지 및 페이지 테이블의 갱신 방법을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 메모리 관리 유닛의 동작 방법에 있어서 페이지 회수 절차를 설명하기 위한 도면이다.
30: L2 캐쉬 40: L3 캐쉬
50: 메모리 60: 디스크
Claims (10)
- 복수의 코어들을 위한 가상 메모리를 관리하는 메모리 관리 유닛(Memory Management Unit; MMU)에 있어서,
상기 각 코어들에 대응하는 복수의 변환 색인 버퍼(translation lookaside buffer; TLB)들;
상기 각 코어들 및 상기 각 TLB에 대응하며, 대응하는 TLB에 동기화되는 복수의 페이지 테이블들 - 상기 복수의 페이지 테이블 중 어느 하나는 메인 페이지 테이블임 -; 및
상기 복수의 페이지 테이블들에 포함되는 가상 페이지-물리 페이지 매핑 정보들을 포함하는 메타 페이지를 포함하는 메모리 관리 유닛으로서,
상기 메타 페이지는 가상 페이지-물리 페이지 매핑이 복수의 TLB에 저장되었는지의 여부를 나타내는 공유 비트 필드 및 접근 코어 비트 필드를 포함하고,
상기 접근 코어 비트 필드에는 가상 페이지에 접근한 코어를 식별하는 정보가 포함되며,
상기 페이지 테이블은 상기 코어에 대응하는 페이지 테이블이 메인 페이지 테이블인지 여부에 기초하여 갱신되고,
상기 메타 페이지는 상기 페이지 테이블의 갱신에 기초하여 갱신되되,
상기 메타 페이지의 상기 공유 비트 필드 및 상기 접근 코어 비트 필드 중 적어도 하나 이상의 값이 갱신되는 것을 특징으로 하는, 메모리 관리 유닛.
- 제 1 항에 있어서,
상기 복수의 페이지 테이블들은 각 엔트리가 유효한지 여부를 나타내는 엔트리 유효 필드를 포함하고,
상기 복수의 코어들 중 어느 하나의 코어가 신규 가상 페이지에 접근하고자 시도하는 경우:
상기 어느 하나의 코어에 대응하는 페이지 테이블이 메인 페이지 테이블인 경우에, 상기 어느 하나의 코어에 대응하는 페이지 테이블의 엔트리에 가상 페이지-물리 페이지 매핑 정보가 등록되고, 상기 엔트리에 대응하는 엔트리 유효 필드의 비트가 유효 비트로 갱신되는 것을 특징으로 하는, 메모리 관리 유닛. - 제 2 항에 있어서,
상기 복수의 코어들 중 어느 하나의 코어가 신규 가상 페이지에 접근하고자 시도하는 경우:
상기 어느 하나의 코어에 대응하는 페이지 테이블이 메인 페이지 테이블이 아닌 경우에, 상기 어느 하나의 코어에 대응하는 페이지 테이블 및 상기 메인 페이지 테이블의 엔트리들에 가상 페이지-물리 페이지 매핑 정보가 등록되고,
상기 어느 하나의 코어에 대응하는 페이지 테이블에 등록된 가상 페이지-물리 페이지 매핑 정보의 엔트리에 대한 엔트리 유효 필드의 비트가 유효 비트로 갱신되는 것을 특징으로 하는, 메모리 관리 유닛. - 제 3 항에 있어서,
상기 복수의 코어들 중 어느 하나의 코어가 메타 페이지에 이미 등록된 가상 페이지에 접근하고자 시도하는 경우, 상기 메타 페이지의 상기 공유 비트 필드가 갱신되는 것을 특징으로 하는, 메모리 관리 유닛. - 복수의 코어들을 위한 가상 메모리를 관리하는 메모리 관리 유닛(Memory Management Unit; MMU)의 동작 방법에 있어서,
상기 복수의 코어들 중 어느 하나의 코어에 의해 가상 메모리 번호 접근 요청을 수신하는 단계;
상기 가상 메모리 번호 접근을 요청한 코어의 페이지 테이블이 메인 페이지 테이블인지 판별하는 단계;
상기 메인 페이지 테이블인지 여부에 따라, 페이지 테이블을 갱신하는 단계; 및
상기 페이지 테이블의 갱신에 기초하여 메타 페이지를 갱신하는 단계를 포함하되,
상기 메타 페이지는 가상 페이지-물리 페이지 매핑이 복수의 TLB에 저장되었는지의 여부를 나타내는 공유 비트 필드 및 접근 코어 비트 필드를 포함하고,
상기 접근 코어 비트 필드에는 상기 가상 메모리 번호에 접근한 코어를 식별하는 정보가 포함되며,
상기 페이지 테이블은 상기 코어에 대응하는 페이지 테이블이 메인 페이지 테이블인지 여부에 기초하여 갱신되고,
상기 메타 페이지는 상기 페이지 테이블의 갱신에 기초하여 갱신되되,
상기 메타 페이지의 상기 공유 비트 필드 및 상기 접근 코어 비트 필드 중 적어도 하나 이상의 값이 갱신되는 것을 특징으로 하는 메모리 관리 유닛의 동작 방법. - 제 5 항에 있어서,
상기 메인 페이지 테이블인지 여부에 따라, 페이지 테이블을 갱신하는 단계는, 상기 가상 메모리 번호 접근을 요청한 코어의 페이지 테이블이 메인 페이지 테이블인 경우:
해당 페이지 테이블의 가상 페이지 번호-물리 페이지 번호 엔트리를 갱신하는 단계를 포함하는, 메모리 관리 유닛의 동작 방법. - 제 5 항에 있어서,
상기 메인 페이지 테이블인지 여부에 따라, 페이지 테이블을 갱신하는 단계는, 상기 가상 메모리 번호 접근을 요청한 코어의 페이지 테이블이 메인 페이지 테이블이 아닌 경우:
상기 가상 메모리 번호 접근을 요청한 코어의 페이지 테이블의 가상 페이지 번호-물리 페이지 번호 엔트리를 갱신하는 단계; 및
상기 메인 페이지 테이블의 가상 페이지 번호-물리 페이지 번호 엔트리를 갱신하는 단계를 포함하되,
상기 메인 페이지 테이블의 경우, 가상 페이지-물리 페이지 맵핑 정보만 갱신되는 것을 특징으로 하는 메모리 관리 유닛의 동작 방법. - 제 5 항에 있어서,
상기 페이지 테이블의 갱신에 기초하여 메타 페이지를 갱신하는 단계는,
가상 페이지 번호에 대응하는 엔트리의 상기 접근 코어 비트 필드를 갱신하는 단계; 및
상기 가상 페이지 번호에 복수의 코어가 접근했는지 여부에 따라 상기 공유 비트 필드를 갱신하는 단계를 포함하는, 메모리 관리 유닛의 동작 방법. - 복수의 코어들을 위한 가상 메모리를 관리하는 메모리 관리 유닛(Memory Management Unit; MMU)의 동작 방법에 있어서,
페이지 회수 요청을 수신하는 단계;
상기 페이지 회수 요청에 기초하여 현재 코어 내 LRU(least recently used) 목록에서 victim 페이지를 선정하는 단계;
해당 페이지가 공유 페이지인지 여부를 판별하는 단계;
상기 공유 페이지 여부의 판별 결과에 기초하여, victim에 해당하는 페이지 테이블의 엔트리를 삭제하는 단계; 및
상기 페이지 테이블의 엔트리에 대응하는 변환 색인 버퍼(translation lookaside buffer; TLB)를 무효화하는 단계를 포함하되,
메타 페이지에 기초하여 상기 해당 페이지가 공유 페이지인지 여부가 판별되고,
상기 메타 페이지는 상기 페이지 테이블의 갱신에 기초하여 갱신된 것을 특징으로 하는 메모리 관리 유닛의 동작 방법. - 제 9 항에 있어서, 상기 해당 페이지가 공유 페이지인 경우, 상기 변환 색인 버퍼 무효화 단계 이후에,
삭제된 상기 페이지 테이블 엔트리에 기초하여 상기 메타 페이지를 갱신하는 단계; 및
다른 코어의 LRU 목록에서 victim 페이지를 검색하는 단계를 더 포함하는, 메모리 관리 유닛의 동작 방법.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020150085267A KR102026877B1 (ko) | 2015-06-16 | 2015-06-16 | 메모리 관리 유닛 및 그 동작 방법 |
| US15/178,184 US20160371196A1 (en) | 2015-06-16 | 2016-06-09 | Memory management unit and operating method thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020150085267A KR102026877B1 (ko) | 2015-06-16 | 2015-06-16 | 메모리 관리 유닛 및 그 동작 방법 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20160148333A KR20160148333A (ko) | 2016-12-26 |
| KR102026877B1 true KR102026877B1 (ko) | 2019-09-30 |
Family
ID=57587941
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020150085267A Active KR102026877B1 (ko) | 2015-06-16 | 2015-06-16 | 메모리 관리 유닛 및 그 동작 방법 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20160371196A1 (ko) |
| KR (1) | KR102026877B1 (ko) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20240101282A (ko) * | 2022-12-23 | 2024-07-02 | 제주대학교 산학협력단 | 페이지 테이블 범위 압축을 수행하는 메모리 관리 시스템 및 이를 수행하는 메모리 관리 방법 |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018041204A (ja) * | 2016-09-06 | 2018-03-15 | 東芝メモリ株式会社 | メモリ装置及び情報処理システム |
| CN107729057B (zh) * | 2017-06-28 | 2020-09-22 | 西安微电子技术研究所 | 一种在多核dsp下的数据块多缓冲流水处理方法 |
| US20190087217A1 (en) * | 2017-09-19 | 2019-03-21 | Microsoft Technology Licensing, Llc | Hypervisor memory cache invalidation |
| US10789090B2 (en) | 2017-11-09 | 2020-09-29 | Electronics And Telecommunications Research Institute | Method and apparatus for managing disaggregated memory |
| US10552339B2 (en) * | 2018-06-12 | 2020-02-04 | Advanced Micro Devices, Inc. | Dynamically adapting mechanism for translation lookaside buffer shootdowns |
| KR102772750B1 (ko) | 2019-01-15 | 2025-02-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
| US11436033B2 (en) | 2019-10-11 | 2022-09-06 | International Business Machines Corporation | Scalable virtual memory metadata management |
| US12524657B2 (en) | 2020-12-08 | 2026-01-13 | Electronics And Telecommunications Research Institute | AI accelerator, cache memory and method of operating cache memory using the same |
| CN116701249B (zh) * | 2022-02-24 | 2024-11-05 | 象帝先计算技术(重庆)有限公司 | 页表转换方法、页表转换器、soc及电子设备 |
| KR102792915B1 (ko) * | 2023-02-17 | 2025-04-07 | 제주대학교 산학협력단 | 페이지 사이즈를 고려한 메모리 할당을 수행하는 메모리 관리 시스템 및 메모리 관리 방법 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140040552A1 (en) * | 2012-08-06 | 2014-02-06 | Qualcomm Incorporated | Multi-core compute cache coherency with a release consistency memory ordering model |
| US20150100753A1 (en) * | 2013-10-04 | 2015-04-09 | Qualcomm Incorporated | Multi-core heterogeneous system translation lookaside buffer coherency |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6286092B1 (en) * | 1999-05-12 | 2001-09-04 | Ati International Srl | Paged based memory address translation table update method and apparatus |
| US8397049B2 (en) * | 2009-07-13 | 2013-03-12 | Apple Inc. | TLB prefetching |
| US9081501B2 (en) * | 2010-01-08 | 2015-07-14 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
| US9507726B2 (en) * | 2014-04-25 | 2016-11-29 | Apple Inc. | GPU shared virtual memory working set management |
-
2015
- 2015-06-16 KR KR1020150085267A patent/KR102026877B1/ko active Active
-
2016
- 2016-06-09 US US15/178,184 patent/US20160371196A1/en not_active Abandoned
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140040552A1 (en) * | 2012-08-06 | 2014-02-06 | Qualcomm Incorporated | Multi-core compute cache coherency with a release consistency memory ordering model |
| US20150100753A1 (en) * | 2013-10-04 | 2015-04-09 | Qualcomm Incorporated | Multi-core heterogeneous system translation lookaside buffer coherency |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20240101282A (ko) * | 2022-12-23 | 2024-07-02 | 제주대학교 산학협력단 | 페이지 테이블 범위 압축을 수행하는 메모리 관리 시스템 및 이를 수행하는 메모리 관리 방법 |
| KR102918778B1 (ko) * | 2022-12-23 | 2026-01-27 | 제주대학교 산학협력단 | 페이지 테이블 범위 압축을 수행하는 메모리 관리 시스템 및 이를 수행하는 메모리 관리 방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20160371196A1 (en) | 2016-12-22 |
| KR20160148333A (ko) | 2016-12-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102026877B1 (ko) | 메모리 관리 유닛 및 그 동작 방법 | |
| US10552339B2 (en) | Dynamically adapting mechanism for translation lookaside buffer shootdowns | |
| US10331603B2 (en) | PCIe traffic tracking hardware in a unified virtual memory system | |
| US10896128B2 (en) | Partitioning shared caches | |
| US9501425B2 (en) | Translation lookaside buffer management | |
| US8615636B2 (en) | Multiple-class priority-based replacement policy for cache memory | |
| US9405702B2 (en) | Caching TLB translations using a unified page table walker cache | |
| US9760493B1 (en) | System and methods of a CPU-efficient cache replacement algorithm | |
| US7721068B2 (en) | Relocation of active DMA pages | |
| KR101893966B1 (ko) | 메모리 관리 방법 및 장치, 및 메모리 컨트롤러 | |
| US20150149742A1 (en) | Memory unit and method | |
| US7827374B2 (en) | Relocating page tables | |
| US10353601B2 (en) | Data movement engine | |
| US9208088B2 (en) | Shared virtual memory management apparatus for providing cache-coherence | |
| US7490214B2 (en) | Relocating data from a source page to a target page by marking transaction table entries valid or invalid based on mappings to virtual pages in kernel virtual memory address space | |
| US11341058B2 (en) | Handling software page faults using data from hierarchical data structures | |
| US9904569B2 (en) | Pre-loading page table cache lines of a virtual machine | |
| US9483400B2 (en) | Multiplexed memory for segments and pages | |
| US10635614B2 (en) | Cooperative overlay | |
| CN118974713A (zh) | 包含式层级缓存中的影子指针目录 | |
| JP7752180B2 (ja) | メモリの領域のコンテンツの修正を追跡するための技法 | |
| CN114840332A (zh) | 页交换方法、装置和电子设备 | |
| EP4407472B1 (en) | System and method for managing a memory hierarchy | |
| US10241906B1 (en) | Memory subsystem to augment physical memory of a computing system | |
| US20260010484A1 (en) | System-on-chip and operating method thereof |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20150616 |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20170125 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20150616 Comment text: Patent Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20180521 Patent event code: PE09021S01D |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20181130 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20190628 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20190924 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20190924 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration | ||
| PR1001 | Payment of annual fee |
Payment date: 20220825 Start annual number: 4 End annual number: 4 |
|
| PR1001 | Payment of annual fee |
Payment date: 20240823 Start annual number: 6 End annual number: 6 |