SG10201903332RA - Memory Management Supporting Huge Pages - Google Patents

Memory Management Supporting Huge Pages

Info

Publication number
SG10201903332RA
SG10201903332RA SG10201903332RA SG10201903332RA SG10201903332RA SG 10201903332R A SG10201903332R A SG 10201903332RA SG 10201903332R A SG10201903332R A SG 10201903332RA SG 10201903332R A SG10201903332R A SG 10201903332RA SG 10201903332R A SG10201903332R A SG 10201903332RA
Authority
SG
Singapore
Prior art keywords
page
data
main memory
memory management
management supporting
Prior art date
Application number
SG10201903332RA
Inventor
Joel Dylan Coburn
Albert Borchers
Christopher Lyle Johnson
Robert S Sprinkle
Original Assignee
Google Llc
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 Google Llc filed Critical Google Llc
Publication of SG10201903332RA publication Critical patent/SG10201903332RA/en

Links

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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/0866Addressing 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/04Addressing variable-length words or parts of words
    • 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/0866Addressing 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/0871Allocation or management of cache space
    • 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/0866Addressing 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/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • G06F2212/3042In main memory subsystem being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/305Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation
    • 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
    • G06F2212/652Page 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)

Abstract

MEMORY MANAGEMENT SUPPORTING HUGE PAGES Methods, systems, and apparatus for receiving a request to access, from a main memory, data contained in a first portion of a first page of data, the first page of data having a first page size; initiating a page fault based on determining that the first page of data is not stored in the main memory; allocating a portion of the main memory equivalent to the first page size; transferring the first portion of the first page of data from the secondary memory to the allocated portion of the main memory without transferring the entire first page of data; and updating a first page table entry associated with the first portion of the first page of data to point to a location of the allocated portion of the main memory to which the first portion of the first page of data is transferred. FIG. 1
SG10201903332RA 2016-09-22 2017-09-18 Memory Management Supporting Huge Pages SG10201903332RA (en)

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 (1)

Publication Number Publication Date
SG10201903332RA true SG10201903332RA (en) 2019-05-30

Family

ID=59772830

Family Applications (2)

Application Number Title Priority Date Filing Date
SG10201707699VA SG10201707699VA (en) 2016-09-22 2017-09-18 Memory Management Supporting Huge Pages
SG10201903332RA SG10201903332RA (en) 2016-09-22 2017-09-18 Memory Management Supporting Huge Pages

Family Applications Before (1)

Application Number Title Priority Date Filing Date
SG10201707699VA SG10201707699VA (en) 2016-09-22 2017-09-18 Memory Management Supporting Huge Pages

Country Status (9)

Country Link
US (2) US10108550B2 (en)
EP (1) EP3516526B1 (en)
JP (1) JP6719027B2 (en)
KR (1) KR102273622B1 (en)
CN (2) CN109791523B (en)
DK (1) DK3516526T3 (en)
IE (2) IE20170188A1 (en)
SG (2) SG10201707699VA (en)
WO (1) WO2018057235A1 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427340B (en) * 2018-04-28 2023-08-04 伊姆西Ip控股有限责任公司 Method, apparatus and computer storage medium for file storage
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
US11593186B2 (en) * 2019-07-17 2023-02-28 Memverge, Inc. Multi-level caching to deploy local volatile memory, local persistent memory, and remote persistent memory
US20210019069A1 (en) * 2019-10-21 2021-01-21 Intel Corporation Memory and storage pool interfaces
JP6972202B2 (en) * 2020-02-14 2021-11-24 株式会社日立製作所 Computer system and memory management method
US11829298B2 (en) * 2020-02-28 2023-11-28 Apple Inc. On-demand memory allocation
CN111666230B (en) * 2020-05-27 2023-08-01 江苏华创微***有限公司 Method for supporting macro page in set associative TLB
CN111913893A (en) * 2020-06-22 2020-11-10 成都菁蓉联创科技有限公司 Mapping method and device for reserved memory, equipment and storage medium
CN114253873A (en) * 2020-09-22 2022-03-29 华为技术有限公司 Memory management method, device, equipment and storage medium
CN112148736B (en) * 2020-09-23 2024-03-12 抖音视界有限公司 Method, device and storage medium for caching data
US20220382478A1 (en) * 2021-06-01 2022-12-01 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for page migration in memory systems
CN113641464A (en) * 2021-10-15 2021-11-12 云宏信息科技股份有限公司 Memory configuration method and system of XEN platform and computer readable storage medium
CN115794397A (en) * 2022-11-29 2023-03-14 阿里云计算有限公司 Cold and hot page management accelerating device and method, MMU, processor and electronic device

Family Cites Families (23)

* Cited by examiner, † Cited by third party
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
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 (en) 2015-07-21 2017-12-29 浙江大学 A kind of big page integration method based on the change of page bitmap
US10152427B2 (en) 2016-08-12 2018-12-11 Google Llc Hybrid memory management
US10037173B2 (en) 2016-08-12 2018-07-31 Google Llc Hybrid memory management

Also Published As

Publication number Publication date
WO2018057235A1 (en) 2018-03-29
KR20190052106A (en) 2019-05-15
US10108550B2 (en) 2018-10-23
IE87058B1 (en) 2019-10-16
US20180365157A1 (en) 2018-12-20
IE20180302A1 (en) 2018-10-31
CN109791523A (en) 2019-05-21
CN109791523B (en) 2023-07-14
JP2019532450A (en) 2019-11-07
CN116701250A (en) 2023-09-05
KR102273622B1 (en) 2021-07-06
SG10201707699VA (en) 2018-04-27
DK3516526T3 (en) 2020-11-30
US10474580B2 (en) 2019-11-12
EP3516526A1 (en) 2019-07-31
IE20170188A1 (en) 2018-04-04
JP6719027B2 (en) 2020-07-08
EP3516526B1 (en) 2020-10-14
US20180081816A1 (en) 2018-03-22

Similar Documents

Publication Publication Date Title
SG10201903332RA (en) Memory Management Supporting Huge Pages
PH12020550686A1 (en) Asset Management Method And Apparatus, And Electronic Device
GB2544903A (en) Storing and transferring application data between devices
BR112016021485A2 (en) HASH-BASED ENCRYPTOR SEARCH FOR INTRA-BLOCK COPY
SG11201811458SA (en) Object allocation method and device
MX363170B (en) Method for storage device storing data and storage device.
GB2558794A (en) Systems and methods for allocating sharable orders
EP3291097A3 (en) Hybrid memory management
IN2015KN00221A (en)
BR112016022636A2 (en) DISTRIBUTED STORAGE SYSTEM, SESSION MANAGEMENT METHOD IN DISTRIBUTED STORAGE SYSTEM, AND NON-TRANSITORY COMPUTER ACCESSIBLE STORAGE MEDIA
BR112016025156A8 (en) COMPUTER DEPLOYED METHOD TO ACCESS FILES IN A DISTRIBUTED FILE SYSTEM
WO2015061625A3 (en) System and method for learning management
GB2519015A (en) Managing accessing page table entries
BR112015019003A2 (en) device for a website building system, and method for a website building system
MX2015012672A (en) Systems and methods of reserving space at attended delivery/pickup locations.
EP2598996A4 (en) Apparatus, system, and method for conditional and atomic storage operations
CN106687911A8 (en) The online data movement of data integrity is not damaged
PH12017500241A1 (en) File access method, device and storage system
MX2016012529A (en) Address expansion and contraction in a multithreading computer system.
BR112016011434A8 (en) communication system to carry out communication events between end points connected through a communication network, method of allocating resources in a communication system and a computer-readable medium
GB2565495A (en) Page fault resolution
GB2525551A (en) Boosting remote direct memory access performance using cryptographic hash based approach
BR112017010328A2 (en) energy-efficient wireless data transfer
TW201643715A (en) Byte level granularity buffer overflow detection for memory corruption detection architectures
EP4236253A3 (en) Slice allocating method