IE87058B1 - Memory management supporting huge pages - Google Patents
Memory management supporting huge pages Download PDFInfo
- Publication number
- IE87058B1 IE87058B1 IE20180302A IE20180302A IE87058B1 IE 87058 B1 IE87058 B1 IE 87058B1 IE 20180302 A IE20180302 A IE 20180302A IE 20180302 A IE20180302 A IE 20180302A IE 87058 B1 IE87058 B1 IE 87058B1
- Authority
- IE
- Ireland
- Prior art keywords
- page
- data
- main memory
- memory
- size
- Prior art date
Links
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/04—Addressing variable-length words or parts of words
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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
- 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/12—Replacement control
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/304—In main memory subsystem
- G06F2212/3042—In main memory subsystem being part of a memory device, e.g. cache DRAM
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/305—Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
-
- 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/60—Details of cache memory
- G06F2212/604—Details relating to cache allocation
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
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)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/273,433 US10108550B2 (en) | 2016-09-22 | 2016-09-22 | Memory management supporting huge pages |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| IE20180302A1 IE20180302A1 (en) | 2018-10-31 |
| IE87058B1 true IE87058B1 (en) | 2019-10-16 |
Family
ID=59772830
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| IE20180302A IE87058B1 (en) | 2016-09-22 | 2017-09-20 | Memory management supporting huge pages |
| IE20170188A IE20170188A1 (en) | 2016-09-22 | 2017-09-20 | Memory management supporting huge pages |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| IE20170188A IE20170188A1 (en) | 2016-09-22 | 2017-09-20 | Memory management supporting huge pages |
Country Status (9)
| Country | Link |
|---|---|
| US (2) | US10108550B2 (enExample) |
| EP (1) | EP3516526B1 (enExample) |
| JP (1) | JP6719027B2 (enExample) |
| KR (1) | KR102273622B1 (enExample) |
| CN (2) | CN109791523B (enExample) |
| DK (1) | DK3516526T3 (enExample) |
| IE (2) | IE87058B1 (enExample) |
| SG (2) | SG10201707699VA (enExample) |
| WO (1) | WO2018057235A1 (enExample) |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110427340B (zh) * | 2018-04-28 | 2023-08-04 | 伊姆西Ip控股有限责任公司 | 用于文件存储的方法、装置和计算机存储介质 |
| US20190354470A1 (en) * | 2018-05-16 | 2019-11-21 | Sap Se | Reduced Database Backup Memory Usage |
| US10956058B2 (en) * | 2018-08-03 | 2021-03-23 | Western Digital Technologies, Inc. | Tiered storage system with tier configuration by peer storage devices |
| US10949356B2 (en) * | 2019-06-14 | 2021-03-16 | Intel Corporation | Fast page fault handling process implemented on persistent memory |
| US11392428B2 (en) * | 2019-07-17 | 2022-07-19 | Memverge, Inc. | Fork handling in application operations mapped to direct access persistent memory |
| US12086446B2 (en) | 2019-10-21 | 2024-09-10 | Intel Corporation | Memory and storage pool interfaces |
| JP6972202B2 (ja) * | 2020-02-14 | 2021-11-24 | 株式会社日立製作所 | 計算機システム及びメモリ管理方法 |
| US11829298B2 (en) | 2020-02-28 | 2023-11-28 | Apple Inc. | On-demand memory allocation |
| CN111666230B (zh) * | 2020-05-27 | 2023-08-01 | 江苏华创微系统有限公司 | 在组相联tlb中支持巨页的方法 |
| CN111913893A (zh) * | 2020-06-22 | 2020-11-10 | 成都菁蓉联创科技有限公司 | 保留内存的映射方法和装置、设备和存储介质 |
| US11567880B2 (en) | 2020-08-12 | 2023-01-31 | Microsoft Technology Licensing, Llc | Prevention of RAM access pattern attacks via selective data movement |
| CN114253873A (zh) * | 2020-09-22 | 2022-03-29 | 华为技术有限公司 | 内存管理方法、装置、设备和存储介质 |
| CN112148736B (zh) * | 2020-09-23 | 2024-03-12 | 抖音视界有限公司 | 缓存数据的方法、设备及存储介质 |
| US20220382478A1 (en) * | 2021-06-01 | 2022-12-01 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for page migration in memory systems |
| CN113608866B (zh) * | 2021-07-13 | 2024-10-25 | 阿里巴巴创新公司 | 内存分配方法及装置 |
| US20220012209A1 (en) * | 2021-09-20 | 2022-01-13 | Intel Corporation | Apparatus, system and method to sample page table entry metadata between page walks |
| CN113641464A (zh) * | 2021-10-15 | 2021-11-12 | 云宏信息科技股份有限公司 | Xen平台的内存配置方法、系统及计算机可读存储介质 |
| US12147352B2 (en) * | 2022-10-20 | 2024-11-19 | International Business Machines Corporation | Dynamic tuning of larger pages during runtime |
| CN115794397A (zh) * | 2022-11-29 | 2023-03-14 | 阿里云计算有限公司 | 冷热页管理加速设备、方法、mmu、处理器及电子设备 |
| CN120872570A (zh) * | 2023-01-20 | 2025-10-31 | 华为技术有限公司 | 内存访问的页错误处理方法及装置 |
| US20240256459A1 (en) * | 2023-01-26 | 2024-08-01 | Vmware, Inc. | System and method for managing a memory hierarchy |
| US12481588B2 (en) | 2023-03-12 | 2025-11-25 | Samsung Electronics Co., Ltd. | Systems and methods for memory representation and management |
| US12423229B2 (en) | 2023-03-16 | 2025-09-23 | Samsung Electronics Co., Ltd. | Systems and methods for memory representation and tracking |
| CN118732931A (zh) * | 2023-03-31 | 2024-10-01 | 华为技术有限公司 | 内存数据迁移方法和相关设备 |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5361345A (en) | 1991-09-19 | 1994-11-01 | Hewlett-Packard Company | Critical line first paging system |
| US5987561A (en) * | 1995-08-31 | 1999-11-16 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle |
| US5960463A (en) * | 1996-05-16 | 1999-09-28 | Advanced Micro Devices, Inc. | Cache controller with table walk logic tightly coupled to second level access logic |
| US6112285A (en) | 1997-09-23 | 2000-08-29 | Silicon Graphics, Inc. | Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support |
| US6804729B2 (en) | 2002-09-30 | 2004-10-12 | International Business Machines Corporation | Migrating a memory page by modifying a page migration state of a state machine associated with a DMA mapper based on a state notification from an operating system kernel |
| US7447869B2 (en) * | 2005-04-07 | 2008-11-04 | Ati Technologies, Inc. | Method and apparatus for fragment processing in a virtual memory system |
| US7519781B1 (en) | 2005-12-19 | 2009-04-14 | Nvidia Corporation | Physically-based page characterization data |
| US8543792B1 (en) | 2006-09-19 | 2013-09-24 | Nvidia Corporation | Memory access techniques including coalesing page table entries |
| JP2009069969A (ja) * | 2007-09-11 | 2009-04-02 | Canon Inc | 情報処理方法および情報処理装置、プログラム |
| US7917725B2 (en) | 2007-09-11 | 2011-03-29 | QNX Software Systems GmbH & Co., KG | Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer |
| US9244855B2 (en) * | 2007-12-31 | 2016-01-26 | Intel Corporation | Method, system, and apparatus for page sizing extension |
| US9208084B2 (en) * | 2009-06-29 | 2015-12-08 | Oracle America, Inc. | Extended main memory hierarchy having flash memory for page fault handling |
| US8195917B2 (en) | 2009-07-01 | 2012-06-05 | Advanced Micro Devices, Inc. | Extended page size using aggregated small pages |
| US8615642B2 (en) | 2009-10-14 | 2013-12-24 | International Business Machines Corporation | Automatic page promotion and demotion in multiple page size environments |
| US8533382B2 (en) * | 2010-01-06 | 2013-09-10 | Vmware, Inc. | Method and system for frequent checkpointing |
| US9158701B2 (en) | 2012-07-03 | 2015-10-13 | International Business Machines Corporation | Process-specific views of large frame pages with variable granularity |
| US10133677B2 (en) | 2013-03-14 | 2018-11-20 | Nvidia Corporation | Opportunistic migration of memory pages in a unified virtual memory system |
| US20150058520A1 (en) | 2013-08-22 | 2015-02-26 | International Business Machines Corporation | Detection of hot pages for partition migration |
| US9864698B2 (en) | 2013-11-04 | 2018-01-09 | International Business Machines Corporation | Resolving cache lookup of large pages with variable granularity |
| US9535831B2 (en) | 2014-01-10 | 2017-01-03 | Advanced Micro Devices, Inc. | Page migration in a 3D stacked hybrid memory |
| US9501422B2 (en) | 2014-06-11 | 2016-11-22 | Vmware, Inc. | Identification of low-activity large memory pages |
| CN105095099B (zh) | 2015-07-21 | 2017-12-29 | 浙江大学 | 一种基于内存页位图变更的大内存页整合方法 |
| US10037173B2 (en) | 2016-08-12 | 2018-07-31 | Google Llc | Hybrid memory management |
| US10152427B2 (en) | 2016-08-12 | 2018-12-11 | Google Llc | Hybrid memory management |
-
2016
- 2016-09-22 US US15/273,433 patent/US10108550B2/en active Active
-
2017
- 2017-08-25 KR KR1020197011367A patent/KR102273622B1/ko active Active
- 2017-08-25 EP EP17761767.7A patent/EP3516526B1/en active Active
- 2017-08-25 CN CN201780058759.7A patent/CN109791523B/zh active Active
- 2017-08-25 DK DK17761767.7T patent/DK3516526T3/da active
- 2017-08-25 WO PCT/US2017/048663 patent/WO2018057235A1/en not_active Ceased
- 2017-08-25 CN CN202310717151.8A patent/CN116701250A/zh active Pending
- 2017-08-25 JP JP2019536814A patent/JP6719027B2/ja active Active
- 2017-09-18 SG SG10201707699VA patent/SG10201707699VA/en unknown
- 2017-09-18 SG SG10201903332RA patent/SG10201903332RA/en unknown
- 2017-09-20 IE IE20180302A patent/IE87058B1/en unknown
- 2017-09-20 IE IE20170188A patent/IE20170188A1/en not_active IP Right Cessation
-
2018
- 2018-08-27 US US16/113,285 patent/US10474580B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| KR102273622B1 (ko) | 2021-07-06 |
| SG10201903332RA (en) | 2019-05-30 |
| IE20180302A1 (en) | 2018-10-31 |
| JP2019532450A (ja) | 2019-11-07 |
| EP3516526B1 (en) | 2020-10-14 |
| JP6719027B2 (ja) | 2020-07-08 |
| US10108550B2 (en) | 2018-10-23 |
| DK3516526T3 (da) | 2020-11-30 |
| CN116701250A (zh) | 2023-09-05 |
| US20180365157A1 (en) | 2018-12-20 |
| WO2018057235A1 (en) | 2018-03-29 |
| KR20190052106A (ko) | 2019-05-15 |
| IE20170188A1 (en) | 2018-04-04 |
| CN109791523A (zh) | 2019-05-21 |
| US10474580B2 (en) | 2019-11-12 |
| CN109791523B (zh) | 2023-07-14 |
| SG10201707699VA (en) | 2018-04-27 |
| US20180081816A1 (en) | 2018-03-22 |
| EP3516526A1 (en) | 2019-07-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10474580B2 (en) | Memory management supporting huge pages | |
| US10705975B2 (en) | Hybrid memory management | |
| KR102665339B1 (ko) | 변환 색인 버퍼 축출 기반 캐시 교체 | |
| CN111177030B (zh) | 混合存储器管理 | |
| TWI531912B (zh) | 具有用於多上下文計算引擎的轉譯後備緩衝之處理器、用於致能多執行緒以存取於處理器中之資源之系統和方法 | |
| US10310985B2 (en) | Systems and methods for accessing and managing a computing system memory | |
| JP7340326B2 (ja) | メンテナンス動作の実行 | |
| US10108553B2 (en) | Memory management method and device and memory controller | |
| CN110046107B (zh) | 存储器地址转换装置和方法 | |
| CN109983538B (zh) | 存储地址转换 | |
| JP7311959B2 (ja) | 複数のデータ・タイプのためのデータ・ストレージ | |
| Bletsch | ECE 650 Systems Programming & Engineering Spring 2018 | |
| HK1246906A1 (en) | Hybrid memory management | |
| HK1246906A (en) | Hybrid memory management |