CN108139980B - 用于合并存储器页的方法和存储器合并功能 - Google Patents
用于合并存储器页的方法和存储器合并功能 Download PDFInfo
- Publication number
- CN108139980B CN108139980B CN201580083975.8A CN201580083975A CN108139980B CN 108139980 B CN108139980 B CN 108139980B CN 201580083975 A CN201580083975 A CN 201580083975A CN 108139980 B CN108139980 B CN 108139980B
- Authority
- CN
- China
- Prior art keywords
- memory
- pages
- page
- parameter
- blades
- 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; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/656—Address space sharing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Abstract
公开了用于合并存储器页(130)的方法和存储器合并功能“MMF”(110)。硬件系统(100)包括存储器刀片(105、105、107)的集合和计算池(102、103、104)的集合。操作系统(120)的至少一个实例在硬件系统(100)上执行。MMF(110)独立于操作系统(120)。MMF(110)查找(A010)第一和第二存储器页(131、132)。第一和第二存储器页(131、132)包含相同信息。第一和第二存储器页与计算单元(140)的至少一个计算单元(140)关联。MMF(110)获得(A020、A030)与第一和第二存储器页(131、132)的存储器刀片有关的相应存储器刀片参数和与用于访问第一和第二存储器页(131、132)的等待时间有关的相应等待时间参数。MMF(110)基于相应存储器刀片和等待时间参数,释放(A050)第一和第二存储器页(131、132)中的至少一个。也公开了对应计算机程序和其载体。
Description
技术领域
本文中的实施例涉及计算机系统,诸如数据中心系统。具体地说,公开了用于合并存储器页的方法和存储器合并功能。也公开了对应计算机程序和其载体。
背景技术
计算机系统管理多个资源,诸如计算能力、网络接入和存储器存储。多个资源当然不是不定的。具体而言,鉴于计算机系统容量和/或性能,存储器存储在许多情况下是有限的资源。作为示例,用于处理例如用户接口对象、普通数学函数和搜索查询的程序代码对于许多不同应用是相同的。因此,在不同应用之间共享计算机系统的存储器已成为惯例。
作为具有存储器共享的已知计算机系统的示例,个人计算机(PC)包括至少一个中央处理单元(CPU)作为计算能力。另外,PC包括存储器;主和辅存储器。主存储器通常是不同类型的快速随机存取存储器。诸如硬盘驱动器(HDD)或固态盘驱动器(SSD)的辅存储器比主存储器更慢。存储器的最小可寻址区段被称为页或存储器页。PC安装有Linux作为操作系统(OS)。在Linux操作系统内,实现称为内核同页合并(KSM)的功能以便提供存储器共享。通过KSM,操作系统扫描存储器以查找相同存储器页。在找到两个或多于两个相同存储器页时,将这些存储器页标记为可共享。相同存储器页的标识可采用各种已知方式来执行,诸如基于散列表、红黑树等的搜索。在处理可共享存储器页时,KSM功能将可共享存储器页替换成受写保护的一个共享存储器页。这意味着如由KSM功能监视的使用共享存储器页的应用均不被允许修改共享存储器页的内容。如果应用中的一个需要修改共享存储器页的内容,则共享存储器页的副本将被创建,并且任何修改将在刚创建的副本上被执行。以此方式复制和修改存储器页经常指共享存储器页通过写时复制而受到保护。
尽管上面提及的KSM功能适合用于传统硬件架构,但它对于正出现的数据中心硬件架构(例如解聚硬件类型的架构,诸如Intel机架规模(Intel Rack Scale)架构、超大规模数据中心系统等)是次佳的。通过利用光学互连来组合解聚硬件架构,减轻了电连接的传统距离和容量限制。这使能资源的更有效池化,这预期对利用和能耗具有积极影响。这种的解聚硬件系统因此典型地包括计算资源的多个池、存储器资源的多个池等。
打算将解聚硬件系统替换一个或多个PC或服务器,也称为服务器机器。因此,对于每个服务器机器,通过从解聚硬件系统中的资源池分配资源的选择集合,创建虚拟硬件组合件。诸如上面提及的Linux的PC的操作系统于是在虚拟硬件组合件上被执行。即使现有KSM功能在此类虚拟硬件组合件上表现良好,明显的是,在多个虚拟硬件组合件例如通过KSM功能执行相应操作系统时,用于KSM功能的存储器消耗的不必要多样性可发生。在其它情况下,类似但不相同的存储器合并功能可由在多个虚拟硬件组合件上执行的相应操作系统提供。由于类似功能性由相应操作系统提供,因此,这也导致不必要的存储器消耗。问题可因此是如何使存储器合并适应上面提及种类的解聚硬件系统。
发明内容
目的可以是提供改进的存储器合并功能,其适于上面提及种类的硬件系统,诸如解聚硬件系统。
根据方面,该目的通过由存储器合并功能执行的用于合并存储器页的方法被实现,其中存储器页被包括在存储器刀片的集合中。硬件系统包括存储器刀片的集合和计算池的集合。存储器刀片的集合和计算池的集合彼此互连。计算池的集合包括计算单元。操作系统的至少一个实例在硬件系统上执行。存储器合并功能独立于操作系统。存储器合并功能在存储器页之中查找第一和第二存储器页,其中第一和第二存储器页包含相同信息,其中第一和第二存储器页与计算单元的至少一个计算单元关联。存储器合并功能获得与第一和第二存储器页的存储器刀片有关的相应存储器刀片参数。另外,存储器合并功能获得与用于由至少一个计算单元访问第一和第二存储器页的等待时间有关的相应等待时间参数。此外,存储器合并功能基于第一和第二存储器页的相应存储器刀片参数和第一和第二存储器页的相应等待时间参数,释放第一和第二存储器页中的至少一个。
根据另一方面,该目的通过用于合并存储器页的存储器合并功能被实现。存储器页包括在存储器刀片的集合中。硬件系统包括存储器刀片的集合和计算池的集合。存储器刀片的集合和计算池的集合彼此互连。计算池的集合包括计算单元。操作系统的至少一个实例在硬件系统上执行。存储器合并功能独立于操作系统。存储器合并功能被配置用于在存储器页之中查找第一和第二存储器页,其中第一和第二存储器页包含相同信息,其中第一和第二存储器页与计算单元的至少一个计算单元关联。存储器合并功能被配置用于获得与第一和第二存储器页的存储器刀片有关的相应存储器刀片参数。另外,存储器合并功能被配置用于获得与用于由至少一个计算单元访问第一和第二存储器页的等待时间有关的相应等待时间参数。此外,存储器合并功能被配置用于基于第一和第二存储器页的相应存储器刀片参数和第一和第二存储器页的相应等待时间参数,释放第一和第二存储器页中的至少一个。
根据另外的方面,该目的通过对应于上述方面的计算机程序和其载体被实现。
由于存储器合并功能(MMF)基于第一和第二存储器页的相应存储器刀片参数和第一和第二存储器页的相应等待时间参数两者,释放第一和第二存储器页中的至少一个,MMF考虑与相应存储器刀片参数组合的相应等待时间参数。存储器刀片参数对于例如解聚硬件系统的这种硬件系统是唯一的。因此,MMF能够确定释放第一和第二存储器页的哪个存储器页以便更有效地使用存储器刀片的集合。另外,尽管MMF不是操作系统的部分,即MFF独立于操作系统,但总体系统复杂性被降低。这的原因是MMF可由一个或多个操作系统调用,该一个或多个操作系统可没那么复杂,即没有任何存储器合并功能性。因此,上面提及的目的被实现。
如所提及的,优点是MMF对于操作系统是不可知论的,诸如在虚拟硬件组合件或管理程序上执行的操作系统。
此外,MMF有利地改进了跨上面提及种类的解聚硬件系统(例如,像Intel机架规模架构、超大规模数据中心系统等的架构)的多个虚拟硬件组合件的存储器处理。
附图说明
从下面的详细描述和附图中,将容易理解本文中公开的实施例的各种方面,包括其特定特征和优点,其中:
图1是在其中可实现本文中的实施例的示范计算机系统的示意性总览,
图2是图示了在存储器合并功能中的方法的实施例的流程图,
图3和4是图示了本文中的实施例的框图,
图5是图示了共享存储器页的框图,
图6和7是图示了涉及高速缓存级别合并的实施例的框图,
图8是图示了在本文中公开的单元之间的协作的框图,以及
图9是图示了存储器合并功能的实施例的框图。
具体实施方式
遍及下面描述,在适用时,类似的附图标记已用于表示类似特征,诸如节点、动作、步骤、模块、电路、部分、项目元素、单元等。在图中,在一些实施例中出现的特征由虚线指示。
图1描绘了在其中可实现本文中的实施例的示范计算机系统100。计算机系统100可以是硬件系统,例如,如在背景部分中所公开的解聚硬件系统。
通常,计算机系统100依赖硬件资源解聚的原理。硬件解聚的原理将CPU、存储器和网络资源视为单独和模块式组件。资源经常被以池的方式组织,即存在CPU单元的池、存储器单元的池和网络接口的池。在利用计算机系统时,虚拟硬件机器可由在一个或多个池内的单元/资源的子集组成。
更详细地说,解聚硬件系统100可包括用于将计算池102、103、104的集合和存储器刀片105、106、107的集合互连的连接布置101。连接布置101可由光纤实现。因此,在存储器刀片102-107与计算池的集合之间提供快速互连。存储器刀片105、106、107的集合的每个存储器刀片可被包括在存储器刀片机架等中。有时,使用术语“雪橇”(sled)而不是“刀片”。
另外,存储器刀片105、106、107的集合可包括下列中的一个或多个:
供计算池的集合使用的主存储池的集合,
供计算池的集合使用的高速缓冲存储器刀片的集合,
存储池的集合等。
主存储装置可采用所谓的高速缓冲存储器的形式实现。存储池可包含各种硬盘驱动器,诸如固态驱动器、磁带、各种形状因数(英寸)的常规驱动器和诸如小型计算机系统接口(SCSI)、集成驱动电子(IDE/ATA)、串行ATA(SATA)等的接口。
每个计算池包括计算单元141、142、143、144、145的集合。计算池102、103、104的集合可采用一个或多个计算机机架(未示出)的一个或多个雪橇、刀片或组合件的形式被实现。计算单元141、142、143、144、145的集合可包括CPU、硬件实现的计算功能等。在一些示例中,每个计算池102、103、104缺乏所谓的L3高速缓存,其与常规计算机系统中的CPU一起被并置,即被放置在印刷电路板(PCB)上。
每个存储器刀片包括存储器单元131、132、133、134、135的集合。存储器刀片105、106、107的集合可采用一个或多个计算机机架(与用于计算池的上面提及的机架相比,相同、不同或部分相同的计算机机架)的一个或多个雪橇、刀片或组合件的形式被实现。在一些示例中,每个存储器刀片缺乏任何实质性处理能力。此类实质性处理能力或计算资源因此借助于计算池102、103、104的集合提供。
更详细地说,存储器单元可被布置在作为存储器刀片的示例的存储器板上,并且计算单元140被布置在作为计算池/刀片的示例的计算板上。存储器板不同于计算刀片。这可意味着存储器刀片是与计算单元可被安放在的另外的PCB分开的印刷电路板(PCB)。
存储器板和计算板被连接到连接布置101,以将存储器刀片105、106、107的集合和计算池102、103、104的集合互连。存储器刀片105、106、107的集合可安放(诸如可安装)在第一多个机柜中,同时仍被连接到连接布置。计算池102、103、104的集合可安放在第二多个机柜中,其中第一和第二多个机柜的一些或所有彼此不同或者没有第一和第二多个机柜是彼此不同的。这意味着在一个示范实现中,提供包括存储器刀片的至少一个存储器机柜和包括计算池的至少一个计算机柜。在另一实现中,可以存在一个或多个机柜,其中所述一个或多个机柜的至少一些包括存储器刀片和计算池两者,和/或其中所述一个或多个机柜的至少一些包括存储器刀片或计算池。
与上述的硬件(HW)侧相反,在软件侧(SW),一个或多个操作系统120、121、122可在相应虚拟硬件机器上被执行。在这里应说的是,在HW与SW之间的界限经常有点模糊,因为各种编程语言使能作为硬件和软件两者的实现,现场可编程门阵列(FPGA)也能够被视为半SW和半HW组件。如上所示,相应虚拟硬件机器可包括计算池的选择集合和存储器刀片的选择集合。操作系统120、121、122可指在由计算机系统100执行时的虚拟主机、实例等。每个操作系统120、121、122可又管理软件应用、虚拟机器、数据库、软件库等的一个或多个实例。相应地,如在本文中使用的,术语“实例”可指虚拟主机、软件应用、虚拟机器、数据库、软件库等的实例。
现在,为提供适于计算机系统100的存储器合并,提供了存储器合并功能(MMF)110。MMF 110可在SW、HW或部分HW和部分SW中被实现。另外,MMF 110可与存储器刀片105、106、107和/或连接布置101的一个或多个并置。MMF 110可以也是单独的,例如,位于与连接布置101和/或所述一个或多个存储器刀片105、106、107分开的PCB上。
图2图示了当在图1的计算机系统100中实现时根据本文中的实施例的示范方法。因此,MFF 110执行用于合并存储器页130的方法。
如上所示,存储器页被包括在存储器刀片105、106、107的集合中。硬件系统100包括存储器刀片105、106、107的集合和计算池102、103、104的集合。存储器刀片105、106、107的集合和计算池102、104、104的集合彼此互连。计算池102、103、104的集合包括计算单元140。操作系统120的至少一个实例在硬件系统100上执行。MMF 110独立于操作系统120。
作为示例,设备管理功能(EMF)(未示出)可管理硬件系统的设备。在此示例中,设备可以是计算池102、103、104的集合和存储器刀片105、106、107的集合。EMF可例如依据请求或自动组装虚拟硬件组合件以托管操作系统120、121、122,即操作系统120、121、122在也称为虚拟主机的虚拟硬件组合件上执行。EMF可在硬件、软件或其组合中被实现。在一些示例中,EMF包含MMF 110或其部分。在一些其它示例中,MMF 110与EMF是分开的。然而,MMF110可优选适于EMF,以便提供本文中公开的益处。
以下动作中的一个或多个可采用任何适合的顺序被执行。
动作A010
MMF 110在存储器页之中查找第一和第二存储器页131、132。第一和第二存储器页131、132包含相同信息,即信息的相同片段。
第一和第二存储器页与计算单元140的至少一个计算单元140关联。在一些示例中,第一和第二存储器页与相同计算单元关联,其可以当操作系统120、121、122的仅一个实例在一个虚拟硬件组合件上执行时发生。然而,所述一个虚拟硬件组合件的计算单元可随着时间变化,例如在计算单元的数量、哪些计算单元被指派到虚拟硬件组合件的方面。如下面在图5中所图示的,可在主机、虚拟机器、应用等之间识别相同存储器页131、132。
动作A020
MMF 110获得与第一和第二存储器页131、132的存储器刀片有关的相应存储器刀片参数。存储器刀片参数可提供有关硬件系统100的物理结构的信息。存储器刀片参数将在下面的动作A050中被使用。这意味着存储器刀片参数可与在硬件系统100内的物理位置有关,该物理位置可被给出为存储器刀片或存储器刀片的集合的身份。
作为示例,MMF 110通过从MMF 110的存储器检索相应存储器刀片参数来获得它。
作为另一示例,MMF 110通过依据请求或在没有请求的情况下从EMF检索相应存储器刀片参数来获得它。
动作A030
MMF 110获得与用于由至少一个计算单元140访问第一和第二存储器页131、132的等待时间有关的相应等待时间参数。
在第一和第二存储器页131、132被存储在相同存储器刀片上时,相应等待时间参数典型地相等。然而,在用于从两个不同存储器刀片访问和传送信息的相应时间相等时,这也可发生。然而,典型地,在第一和第二存储器页131、132被存储在两个不同存储器刀片上时,相应等待时间参数彼此不同。
动作A040
MMF 110可获得与第一和第二存储器页131、132有关的参数的相应集合,其中参数的相应集合包括下列中的一个或多个:
与从所述至少一个计算单元对第一和第二存储器页131、132的访问速率有关的相应访问速率参数,
相应冗余参数,
相应类型的存储器能力参数,
相应总线负载参数等。
换而言之,第一和第二存储器页131、132中的所述至少一个的释放A050进一步基于参数的集合。
作为示例,MMF 110可通过只释放第一存储器页,释放第一和第二存储器页131、132中的所述至少一个。在第一存储器页131的相应总线负载参数可指示比第二存储器页132的相应总线负载参数更少的总线负载时,这可以是有益的。
换而言之,第一和第二存储器页131、132中的所述至少一个的释放A050可包括释放第一存储器页,其中第一存储器页131的相应总线负载参数可指示比第二存储器页132的相应总线负载参数更少的总线负载。
在另外的示例中,相应总线负载参数可由在至少一个计算单元140与第一和第二存储器页131、132之间的跳跃数量指示。术语“跳跃”指在至少一个计算单元140与第一和第二存储器页131、132之间的物理链路的数量。表述跳跃的另一方式可以是指在至少一个计算单元140与第一和第二存储器页131、132之间的带宽。在用于第一和第二存储器页131、132的相应等待时间参数相等时,考虑总线负载参数可特别有益。
动作A050
MMF 110基于第一和第二存储器页131、132的相应存储器刀片参数和第一和第二存储器页131、132的相应等待时间参数,释放第一和第二存储器页131、132中的至少一个。
更详细地说,MMF 110可基于相应存储器刀片和等待时间参数,确定释放第一存储器页131和/或第二存储器页132。
在一个示例中,在第一和第二存储器页131、132被存储在不同存储器刀片上时,第一存储器页131的相应存储器刀片参数可不同于第二存储器页132的相应存储器刀片参数。在第一存储器页131的相应等待时间参数小于第二存储器页132的相应等待时间参数时,那么MMF 110可释放第一存储器页131。
换而言之,释放A050可包括释放第一存储器页131,其中第一存储器页131的相应等待时间参数小于第二存储器页132的相应等待时间参数。
在另外的示例中,在第一和第二存储器页131、132被存储在相同存储器刀片上时,第一存储器页131的相应存储器刀片参数可等于第二存储器页132的相应存储器刀片参数。那么MMF 110可释放第一和第二存储器页131、132。换而言之,释放A050包括释放第一和第二存储器页131、132。在此示例后,优选可执行动作A060。
在一些示例中,相应存储器刀片参数可指示存储器刀片的功率消耗。那么MMF 110可释放在具有高于阈值的功率消耗的存储器刀片上存储的那些存储器页,或只释放消耗最多功率的那些存储器页。
动作A060
MMF 110可创建包含相同信息的第三存储器页133。照这样,MMF 110避免了相同信息的损失。
用于第三存储器页133的存储器刀片可已基于第三存储器页133的相应存储器刀片参数被选择。第三存储器页133的相应存储器刀片参数典型地不同于第一和第二存储器页131、132的相应存储器刀片参数。
另外,第三存储器页133的相应等待时间参数小于第一和第二存储器页131、132的相应等待时间参数。
动作A070
在至少动作A050后,MMF 110可在将释放的第一或第二存储器页131、132考虑在内的同时,更新由与计算池102、103、104的集合关联的一个或多个存储器地址转译功能(MATF)管理的存储器地址转译信息。
类似地,MMF 110、EMF可包含MATF(未示出)或其部分。在一些其它示例中,MATF与EMF是分开的。
图3图示了图1的示范硬件系统100的一部分。存储器刀片105、106、107的集合由物理存储器雪橇301例示。实例1……N的集合在虚拟硬件组合件的集合(未示出)中被执行。它是图示的虚拟硬件组合件的唯一物理存储器雪橇301。MMF 110与MATF 302通信(示出为实线箭头)。MATF 302从虚拟地址空间转译成物理存储器雪橇301的物理地址空间。在实例1希望到达它的存储器空间时,实例1向MATF 302发送存储器访问请求。如所提及的,MATF 302将实例的虚拟存储器地址转译成实际物理地址。
作为示例,在带有如图1中所示的架构的系统内,MATF将具有如下面表1中所示的表格。在诸如操作系统、主机、虚拟机器、应用等的实例1请求对它的虚拟存储器地址范围(即,0–Y_1)内的存储器页的访问时,那么MATF 302将实例1的虚拟地址转译成在物理存储器上的地址(即,C–(C+Y_1))。黑暗的区域图示了潜在地可被共享或合并的存储器,而带有点的更亮的区域图示了由于不同内容而不能被共享的存储器。
表1.MATF存储器地址表:
实例 | 虚拟地址空间 | 物理地址空间 |
1 | 0–Y_1 | C–(C+Y_1) |
2 | 0–Y_2 | B–(B+Y_2) |
N | 0–Y_N | A–(A+Y_N) |
通过图3的情形,图4图示了何时存储器合并已被应用,即MMF 110已释放在图3中被示出为黑暗的区域的可共享或可合并的存储器页中的一个或多个。
因此,在例如部分通过动作A050的存储器合并或共享和如在动作A070中的地址转译表的更新后,请求对存储器的共享部分的访问的每个实例将被重定向到共享存储器的地址范围。
在实例1请求访问在0-X_1的范围内的页时,那么MATF 402将转译此请求以寻址E-F的范围。此示例的MATF表在表2中图示。
表2.
注意,当在共享存储器空间中时,实例只具有读取访问,已将存储器配置为写时复制(COW)。如果实例需要修改共享地址,则MATF在另一地址中写入新数据,并且在那之后复制剩余部分。随后,MATF能够更新用于该特定实例的表格。
通过统计分析机制,MMF 110能够将共享存储器放置在最佳位置,例如,尽可能靠近更频繁访问存储器的实例以便降低网络成本。另外,在实例中的一个不再使用共享存储器时,例如,作为写入操作的结果,用于存储器的新的优选位置能够由MMF 110计算。
图5图示了各种实例,诸如主机501、虚拟机器(VM)502、应用503。主机501可典型地由在图1中图示的操作系统中的一个表示。图5图示了可为这些各种实例执行存储器的共享或合并。合并可被表述为在不同级别被执行。方格区域图示了在应用之间的共享,条纹区域图示了在虚拟机器之间的共享,并且黑色实心区域图示了在主机或操作系统之间的共享。
在另外的示例中,可为如图6中所示的高速缓存实现存储器合并。照这样,可降低高速缓存消耗。
图6描绘了带有在诸如独立CPU核的两个不同计算单元上运行的两个操作系统的图1的系统。计算单元是不同的,因为存在分开的L1和L2高速缓存,但L3高速缓存是共享的,例如为了削减存储器的一些成本。存储器块A和B在存储相同内容,即,相同信息。根据常规解决方案,在实例1和实例2请求对在块A和B中存储的信息的访问时,则块A和B即使具有相同内容,那么它们也均将被加载到L3高速缓存。
通过使用如本文中公开的存储器合并,块A和B中的仅一个将被作为在两个实例之间的共享块(示出为黑暗的区域)保持在存储器中。
作为结果,参照图7,在实例1和实例2请求对块A/B的同时访问时,L3高速缓存将只为两个实例被加载一次。照这样,可降低在存储器601、701之间的数据传送要求。因此,潜在地避免了拥塞。另外,有关L3高速缓存的大小的要求可被降低,或者L3高速缓存的部分可被用于其它目的。
图8图示了带有多个MMF及与用于不同计算池的MATF的它们的网络化的示例。这要图示在MMF与MATF之间的接口可为彼此已知。如图中所示,MATF可访问可位于不同存储器刀片的多个MMF。
参照图9,示出了图1的存储器合并功能110的实施例的示意框图。
存储器合并功能110可包括处理模块901,诸如用于执行本文中描述的方法的部件、一个或多个硬件模块和/或一个或多个软件模块。
存储器合并功能110可进一步包括存储器902。存储器可包括(诸如含有或存储)计算机程序903。
根据本文中的一些实施例,处理模块901可包括作为示范硬件模块的处理电路904,例如‘以处理电路904的形式体现’或‘由处理电路904实现’。在这些实施例中,存储器902可包括计算机程序903,其包括由处理电路904可执行的计算机可读代码单元,由此存储器合并功能110操作以执行图2的方法。
在一些其它实施例中,在计算机可读代码单元由存储器合并功能110执行时,计算机可读代码单元可促使存储器合并功能110执行根据图2的方法。
图9进一步图示了载体905或程序载体,其包括如直接在上面所述的计算机程序903。
在一些实施例中,处理模块901包括输入/输出模块906,在适用时其可由如下描述的接收模块和/或发送模块例示。
在另外的实施例中,处理模块901可包括作为示范硬件模块的查找模块910、获得模块920、释放模块930、创建模块940和更新模块950中的一个或多个。在其它示例中,上面提及的示范硬件模块中的一个或多个可被实现为一个或多个软件模块。
相应地,存储器合并功能110被配置用于合并存储器页130。如上所解释的,存储器合并功能110可被实现为一个或多个硬件模块、一个或多个软件模块或其组合。在一些示例中,存储器合并功能110可以是存储器合并节点。
如所提及的,存储器页被包括在存储器刀片105、106、107的集合中。硬件系统100包括存储器刀片105、106、107的集合和计算池102、103、104的集合。存储器刀片105、106、107的集合和计算池102、103、104的集合彼此互连。计算池102、103、104的集合包括计算单元140。操作系统120的至少一个实例在硬件系统100上执行。存储器合并功能110独立于操作系统120。
因此,根据上述各种实施例,存储器合并功能110和/或处理模块901和/或查找模块910被配置用于在存储器页之中查找第一和第二存储器页131、132。第一和第二存储器页131、132包含相同信息。第一和第二存储器页与计算单元140的至少一个计算单元140关联。
存储器合并功能110和/或处理模块901和/或获得模块920被配置用于获得与第一和第二存储器页131、132的存储器刀片有关的相应存储器刀片参数。
存储器合并功能110和/或处理模块901和/或获得模块920或另外的获得模块(未示出)被配置用于获得与用于由至少一个计算单元140访问第一和第二存储器页131、132的等待时间有关的相应等待时间参数。
存储器合并功能110和/或处理模块901和/或释放模块930被配置用于基于第一和第二存储器页131、132的相应存储器刀片参数和第一和第二存储器页131、132的相应等待时间参数,释放第一和第二存储器页131、132中的至少一个。
在一些实施例中,第一存储器页131的相应存储器刀片参数可不同于第二存储器页132的相应存储器刀片参数。在这些实施例中,存储器合并功能110和/或处理模块901和/或释放模块930被配置用于释放第一存储器页131,其中第一存储器页131的相应等待时间参数小于第二存储器页132的相应等待时间参数。
第一存储器页131的相应存储器刀片参数可等于第二存储器页132的相应存储器刀片参数。在此情况下,存储器合并功能110和/或处理模块901和/或释放模块930可被配置用于释放第一和第二存储器页131、132。另外,存储器合并功能110和/或处理模块901和/或创建模块940可被配置用于创建包含相同信息的第三存储器页133。第三存储器页133的相应存储器刀片参数可不同于第一和第二存储器页131、132的相应存储器刀片参数,其中第三存储器页133的相应等待时间参数可小于第一和第二存储器页131、132的相应等待时间参数。
存储器合并功能110和/或处理模块901和/或获得模块920或仍有的另外的获得模块(未示出)可被配置用于获得与第一和第二存储器页131、132有关的参数的相应集合。参数的相应集合可包括下列中的一个或多个:
与从所述至少一个计算单元对第一和第二存储器页131、132的访问速率有关的相应访问速率参数,
相应冗余参数,
相应类型的存储器能力参数,
相应总线负载参数等。
存储器合并功能110和/或处理模块901和/或释放模块930可被配置用于基于参数的集合,释放第一和第二存储器页131、132中的所述至少一个。
存储器合并功能110和/或处理模块901和/或释放模块930可被配置用于释放第一存储器页,其中第一存储器页131的相应总线负载参数指示比第二存储器页132的相应总线负载参数更少的总线负载。
存储器合并功能110和/或处理模块901和/或更新模块950可被配置用于在将释放的第一或第二存储器页131、132考虑在内的同时,更新由与计算池102、103、104的集合关联的一个或多个存储器地址转译功能“MATF”管理的存储器地址转译信息。
如所提及的,存储器刀片105、106、107的集合的每个存储器刀片可包括下列中的一个或多个:存储器雪橇和存储器机架。
再次,存储器刀片105、106、107的集合可包括下列中的一个或多个:
供计算池的集合使用的主存储池的集合,
供计算池的集合使用的高速缓冲存储器刀片的集合,
存储池的集合等。
如本文中所使用的,术语“节点”或“网络节点”可指一个或多个物理实体,诸如装置、设备、计算机、服务器等。这可意味着本文中的实施例可在一个物理实体中被实现。备选地,本文中的实施例可在多个物理实体中被实现,诸如包括所述一个或多个物理实体的布置,即,实施例可采用分布的方式被实现,诸如在云系统的服务器机器的集合上被实现。
如本文中所使用的,术语“单元”可指一个或多个功能单元,所述功能单元中的每个可被实现为节点中的一个或多个硬件模块和/或一个或多个软件模块。
如本文中所使用的,术语“数据载体”或“载体”可以指电子信号、光学信号、无线电信号和计算机可读介质中的一个。在一些示例中,程序载体可排除暂态、传播信号,诸如电子、光学和/或无线电信号。因此,在这些示例中,载体可以是非暂态载体,诸如非暂态计算机可读介质。
如本文中所使用的,术语“处理模块”可包含一个或多个硬件模块、一个或多个软件模块或其组合。任何此类模块不管是硬件、软件或组合的硬件-软件模块,可以是如本文中公开的确定部件、估计部件、捕捉部件、关联部件、比较部件、识别部件、选择部件、接收部件、发送部件等。作为示例,表述“部件”可以是对应于上面结合附图列出的模块的模块。
如本文中所使用的,术语“软件模块”可指软件应用、动态链路库(DLL)、软件组件、软件对象、根据组件对象模型(COM)的对象、软件组件、软件功能、软件引擎、可执行二进制软件文件等。
如本文中所使用的,术语“处理电路”可指处理单元、处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。处理电路等可包括一个或多个处理器内核。
如本文中所使用的,表述“配置成/用于”可意味着处理电路配置成(诸如适于或操作以)借助于软件配置和/或硬件配置,执行本文中描述的动作的一个或多个。
如本文中所使用的,术语“动作”可指动作、步骤、操作、响应、反应、活动等。将注意的是,本文中的动作可在适用时被拆分成两个或多于两个子动作。另外,也在适用时,应注意的是,本文中描述的动作的两个或多于两个可被合并成单个动作。
如本文中所使用的,术语“存储器”可指硬盘、磁存储介质、便携式计算机软盘或光盘、闪速存储器、随机存取存储器(RAM)等。此外,术语“存储器”可指处理器的内部寄存器存储器等。
如本文中所使用的,术语“计算机可读介质”可以是通用串行总线(USB)存储器、DVD光盘、蓝光光盘、作为数据流接收的软件模块、闪速存储器、硬盘驱动器、记忆卡(诸如MemoryStick、多媒体卡(MMC)、安全数字(SD)卡)等。计算机可读介质的上面提及的示例的一个或多个可作为一个或多个计算机程序产品来提供。
如本文中所使用的,术语“计算机可读代码单元”可以是计算机程序的文本、表示编译格式的计算机程序的整个二进制文件的部分或在其之间的任何事物。
如本文中所使用的,术语“无线电资源”可指信号的某个编码和/或其中信号被传送的时间帧和/或频率范围。在一些示例中,资源可指在传送信号时使用的一个或多个物理资源块(PRB)。更详细地说,PRB可以采用正交频分复用(OFDM)PHY资源块(PRB)的形式。从与例如长期演进系统有关的3GPP术语学知道术语“物理资源块”。
如本文中所使用的,表述“传送”和“发送”被认为是可互换的。这些表述包含通过广播、单播、组播等的传送。在本上下文中,通过广播的传送可由在范围内的任何经授权装置接收和解码。在单播的情况下,一个被明确寻址的装置可接收和解码传送。在组播的情况下,被明确寻址的装置的群组可接收和解码传送。
如本文中所使用的,术语“数”和/或“值”可以是任何种类的数字,诸如二进制数、实数、虚数或有理数等。另外,“数”和/或“值”可以是一个或多个字符,诸如字母或字母串。“数”和/或“值”可也由比特串表示。
如本文中所使用的,术语“……的集合”可指某事物的一个或多个。例如,根据本文中的实施例,装置的集合可指一个或多个装置,参数的集合可指一个或多个参数等。
如本文中所使用的,表述“在一些实施例中”已被用于指示描述的实施例的特征可与本文中公开的任何其它实施例组合。
此外,如本文中所使用的,来源于拉丁短语“exempli gratia”的常用缩写“例如(e.g.)”可用于引入或指定以前提及的项目的一个或多一般示例,并且不打算限制此类项目。如本文中所使用的,来源于拉丁短语“id est”的常用缩写“即(i.e.)”可用于从更普遍的陈述指定特定项目。来源于表示“以及其它事物”或“诸如此类”的拉丁表述“et cetera”的常用缩写“等(etc.)”可已在本文中用于指示存在与刚刚已被列举的特征类似的另外的特征。
即使各种方面的实施例已描述,其许多不同变更、修改等对于本领域技术人员将变得是明显的。描述的实施例因此不打算限制本公开的范围。
Claims (17)
1.一种由存储器合并功能(110)执行的用于合并存储器页(130)的方法,其中所述存储器页被包括在存储器刀片(105、106、107)的集合中,其中硬件系统(100)包括存储器刀片(105、106、107)的所述集合和计算池(102、103、104)的集合,其中存储器刀片(105、106、107)的所述集合和计算池(102、103、104)的所述集合彼此互连,其中计算池(102、103、104)的所述集合包括计算单元(140),其中操作系统(120)的至少一个实例在所述硬件系统(100)上执行,其中所述存储器合并功能(110)独立于所述操作系统(120),其中所述方法包括:
在所述存储器页之中查找(A010)第一和第二存储器页(131、132),其中所述第一和第二存储器页(131、132)包含相同信息,其中所述第一和第二存储器页与所述计算单元(140)的至少一个计算单元(140)关联;
获得(A020)与所述第一和第二存储器页(131、132)的存储器刀片有关的相应存储器刀片参数;
获得(A030)与用于由所述至少一个计算单元(140)访问所述第一和第二存储器页(131、132)的等待时间有关的相应等待时间参数;以及
基于所述第一和第二存储器页(131、132)的所述相应存储器刀片参数和所述第一和第二存储器页(131、132)的所述相应等待时间参数,释放(A050)所述第一和第二存储器页(131、132)的至少一个。
2.根据权利要求1所述的方法,其中所述第一存储器页(131)的所述相应存储器刀片参数不同于所述第二存储器页(132)的所述相应存储器刀片参数,其中所述释放(A050)包括释放所述第一存储器页(131),其中所述第一存储器页(131)的所述相应等待时间参数小于所述第二存储器页(132)的所述相应等待时间参数。
3.根据权利要求1所述的方法,其中所述第一存储器页(131)的所述相应存储器刀片参数等于所述第二存储器页(132)的所述相应存储器刀片参数,其中所述释放(A050)包括释放所述第一和第二存储器页(131、132),其中所述方法包括:
创建(A060)包含所述相同信息的第三存储器页(133),其中
所述第三存储器页(133)的相应存储器刀片参数不同于所述第一和第二存储器页(131、132)的所述相应存储器刀片参数,其中所述第三存储器页(133)的相应等待时间参数小于所述第一和第二存储器页(131、132)的所述相应等待时间参数。
4.根据权利要求1-3中任一项所述的方法,其中所述方法包括:
获得(A020)与所述第一和第二存储器页(131、132)有关的参数的相应集合,其中参数的所述相应集合包括下列中的一个或多个:
与从所述至少一个计算单元对所述第一和第二存储器页(131、132)的访问速率有关的相应访问速率参数,
相应冗余参数,
相应类型的存储器能力参数,以及
相应总线负载参数,
其中第一和第二存储器页(131、132)的所述至少一个的所述释放(A050)进一步基于参数的所述集合。
5.根据权利要求4所述的方法,其中所述第一和第二存储器页(131、132)的所述至少一个的所述释放(A050)包括释放所述第一存储器页,其中所述第一存储器页(131)的所述相应总线负载参数指示比所述第二存储器页(132)的所述相应总线负载参数更少的总线负载。
6.根据权利要求1-3中任一项所述的方法,其中所述方法包括:
在将所释放的第一或第二存储器页(131、132)考虑在内的同时,更新(A070)由与计算池(102、103、104)的所述集合关联的一个或多个存储器地址转译功能“MATF”管理的存储器地址转译信息。
7.根据权利要求1-3中任一项所述的方法,其中存储器刀片(105、106、107)的所述集合的每个存储器刀片包括下列中的一个或多个:存储器雪橇和存储器机架。
8.根据权利要求1-3中任一项所述的方法,其中存储器刀片(105、106、107)的所述集合包括下列中的一个或多个:
供计算池的所述集合使用的主存储池的集合,
供计算池的所述集合使用的高速缓冲存储器刀片的集合,以及
存储池的集合。
9.一种用于合并存储器页(130)的存储器合并功能(110),其中所述存储器页被包括在存储器刀片(105、106、107)的集合中,其中硬件系统(100)包括存储器刀片(105、106、107)的所述集合和计算池(102、103、104)的集合,其中存储器刀片(105、106、107)的所述集合和计算池(102、103、104)的所述集合彼此互连,其中计算池(102、103、104)的所述集合包括计算单元(140),其中操作系统(120)的至少一个实例在所述硬件系统(100)上执行,其中所述存储器合并功能(110)独立于所述操作系统(120),其中所述存储器合并功能(110)被配置用于:
在所述存储器页之中查找第一和第二存储器页(131、132),其中所述第一和第二存储器页(131、132)包含相同信息,其中所述第一和第二存储器页与所述计算单元(140)的至少一个计算单元(140)关联;
获得与所述第一和第二存储器页(131、132)的存储器刀片有关的相应存储器刀片参数;
获得与用于由所述至少一个计算单元(140)访问所述第一和第二存储器页(131、132)的等待时间有关的相应等待时间参数;以及
基于所述第一和第二存储器页(131、132)的所述相应存储器刀片参数和所述第一和第二存储器页(131、132)的所述相应等待时间参数,释放所述第一和第二存储器页(131、132)的至少一个。
10.根据权利要求9所述的存储器合并功能(110),其中所述第一存储器页(131)的所述相应存储器刀片参数不同于所述第二存储器页(132)的所述相应存储器刀片参数,其中所述存储器合并功能(110)被配置用于释放所述第一存储器页(131),其中所述第一存储器页(131)的所述相应等待时间参数小于所述第二存储器页(132)的所述相应等待时间参数。
11.根据权利要求9所述的存储器合并功能(110),其中所述第一存储器页(131)的所述相应存储器刀片参数等于所述第二存储器页(132)的所述相应存储器刀片参数,其中所述存储器合并功能(110)被配置用于释放所述第一和第二存储器页(131、132),其中所述存储器合并功能(110)被配置用于创建包含所述相同信息的第三存储器页(133),其中
所述第三存储器页(133)的相应存储器刀片参数不同于所述第一和第二存储器页(131、132)的所述相应存储器刀片参数,其中所述第三存储器页(133)的相应等待时间参数小于所述第一和第二存储器页(131、132)的所述相应等待时间参数。
12.根据权利要求9-11中任一项所述的存储器合并功能(110),其中所述存储器合并功能(110)被配置用于获得与所述第一和第二存储器页(131、132)有关的参数的相应集合,其中参数的所述相应集合包括下列中的一个或多个:
与从所述至少一个计算单元对所述第一和第二存储器页(131、132)的访问速率有关的相应访问速率参数,
相应冗余参数,
相应类型的存储器能力参数,以及
相应总线负载参数,
其中所述存储器合并功能(110)被配置用于释放第一和第二存储器页(131、132)中的所述至少一个,基于参数的所述集合。
13.根据权利要求12所述的存储器合并功能(110),其中所述存储器合并功能(110)被配置用于释放所述第一存储器页,其中所述第一存储器页(131)的所述相应总线负载参数指示比所述第二存储器页(132)的所述相应总线负载参数更少的总线负载。
14.根据权利要求9-11中任一项所述的存储器合并功能(110),其中所述存储器合并功能(110)被配置用于在将所释放的第一或第二存储器页(131、132)考虑在内的同时,更新由与计算池(102、103、104)的所述集合关联的一个或多个存储器地址转译功能“MATF”管理的存储器地址转译信息。
15.根据权利要求9-11中任一项所述的存储器合并功能(110),其中存储器刀片(105、106、107)的所述集合的每个存储器刀片包括下列中的一个或多个:存储器雪橇和存储器机架。
16.根据权利要求9-11中任一项所述的存储器合并功能(110),其中存储器刀片(105、106、107)的所述集合包括下列中的一个或多个:
供计算池的所述集合使用的主存储池的集合,
供计算池的所述集合使用的高速缓冲存储器刀片的集合,以及
存储池的集合。
17.一种计算机可读介质,其上存储有指令,所述指令当在网络节点(110)上被执行时促使所述网络节点(110)执行根据权利要求1-8中的任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2015/074129 WO2017067569A1 (en) | 2015-10-19 | 2015-10-19 | Method and memory merging function for merging memory pages |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108139980A CN108139980A (zh) | 2018-06-08 |
CN108139980B true CN108139980B (zh) | 2022-03-18 |
Family
ID=54361060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580083975.8A Active CN108139980B (zh) | 2015-10-19 | 2015-10-19 | 用于合并存储器页的方法和存储器合并功能 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10416916B2 (zh) |
EP (1) | EP3365792B1 (zh) |
CN (1) | CN108139980B (zh) |
WO (1) | WO2017067569A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10891237B2 (en) * | 2016-09-26 | 2021-01-12 | Intel Corporation | Apparatus and method for mediate pass through and shared memory page merge |
US20210334024A1 (en) * | 2020-04-28 | 2021-10-28 | International Business Machines Corporation | Transactional Memory Based Memory Page De-Duplication |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1704921A (zh) * | 2004-04-15 | 2005-12-07 | 雷西昂公司 | 高性能计算系统和方法 |
CN103609059A (zh) * | 2010-09-20 | 2014-02-26 | 安全第一公司 | 用于安全数据共享的系统和方法 |
CN103873546A (zh) * | 2012-12-17 | 2014-06-18 | 国际商业机器公司 | 控制存储系统中区域存储中心间的数据存储的方法和装置 |
US8935506B1 (en) * | 2011-03-31 | 2015-01-13 | The Research Foundation For The State University Of New York | MemX: virtualization of cluster-wide memory |
CN104731523A (zh) * | 2013-12-24 | 2015-06-24 | 国际商业机器公司 | 非易失性分级存储系统中的协同管理的方法及其控制器 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6789156B1 (en) | 2001-05-22 | 2004-09-07 | Vmware, Inc. | Content-based, transparent sharing of memory units |
US8190827B2 (en) * | 2009-02-27 | 2012-05-29 | Red Hat, Inc. | Memory sharing among computer programs |
US9075647B2 (en) * | 2011-08-01 | 2015-07-07 | International Business Machines Corporation | Preemptive guest merging for virtualization hypervisors |
US9311250B2 (en) * | 2011-12-19 | 2016-04-12 | Intel Corporation | Techniques for memory de-duplication in a virtual system |
US9405477B2 (en) * | 2012-04-25 | 2016-08-02 | Intel Corporation | Method and system for maintaining release consistency in shared memory programming |
US9116792B2 (en) * | 2012-05-18 | 2015-08-25 | Silicon Motion, Inc. | Data storage device and method for flash block management |
US20150286414A1 (en) * | 2014-04-03 | 2015-10-08 | Strato Scale Ltd. | Scanning memory for de-duplication using rdma |
WO2016037344A1 (en) * | 2014-09-12 | 2016-03-17 | Intel Corporation | Memory and resource management in a virtual computing environment |
US9665534B2 (en) * | 2015-05-27 | 2017-05-30 | Red Hat Israel, Ltd. | Memory deduplication support for remote direct memory access (RDMA) |
US9904473B2 (en) * | 2015-11-20 | 2018-02-27 | International Business Machines Corporation | Memory and processor affinity in a deduplicated environment |
US10318161B2 (en) * | 2016-06-20 | 2019-06-11 | Red Hat Israel, Ltd. | Virtual machine initiated memory deduplication |
US9983827B1 (en) * | 2016-11-29 | 2018-05-29 | Red Hat Israel, Ltd. | Key-based memory deduplication protection |
-
2015
- 2015-10-19 US US15/769,725 patent/US10416916B2/en active Active
- 2015-10-19 WO PCT/EP2015/074129 patent/WO2017067569A1/en active Application Filing
- 2015-10-19 EP EP15787157.5A patent/EP3365792B1/en active Active
- 2015-10-19 CN CN201580083975.8A patent/CN108139980B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1704921A (zh) * | 2004-04-15 | 2005-12-07 | 雷西昂公司 | 高性能计算系统和方法 |
CN103609059A (zh) * | 2010-09-20 | 2014-02-26 | 安全第一公司 | 用于安全数据共享的系统和方法 |
US8935506B1 (en) * | 2011-03-31 | 2015-01-13 | The Research Foundation For The State University Of New York | MemX: virtualization of cluster-wide memory |
CN103873546A (zh) * | 2012-12-17 | 2014-06-18 | 国际商业机器公司 | 控制存储系统中区域存储中心间的数据存储的方法和装置 |
CN104731523A (zh) * | 2013-12-24 | 2015-06-24 | 国际商业机器公司 | 非易失性分级存储系统中的协同管理的方法及其控制器 |
Non-Patent Citations (1)
Title |
---|
刀片PC安全管理系统的设计与实现;刘佳;《中国博士学位论文全文数据库 (信息科技辑)》;20120115;I139-16 * |
Also Published As
Publication number | Publication date |
---|---|
EP3365792A1 (en) | 2018-08-29 |
WO2017067569A1 (en) | 2017-04-27 |
US10416916B2 (en) | 2019-09-17 |
CN108139980A (zh) | 2018-06-08 |
US20180314453A1 (en) | 2018-11-01 |
EP3365792B1 (en) | 2019-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9413683B2 (en) | Managing resources in a distributed system using dynamic clusters | |
US10374792B1 (en) | Layout-independent cryptographic stamp of a distributed dataset | |
US11487675B1 (en) | Collecting statistics for persistent memory | |
US20190294476A1 (en) | Methods and modules relating to allocation of host machines | |
US10732889B2 (en) | Information handling system with multi-key secure erase of distributed namespace | |
US11048557B2 (en) | Methods and modules relating to allocation of host machines | |
CN103049546B (zh) | 一种管理、访问系统日志的方法和装置 | |
CN108139980B (zh) | 用于合并存储器页的方法和存储器合并功能 | |
US11194731B2 (en) | Managing availability of memory pages | |
US9256648B2 (en) | Data handling in a cloud computing environment | |
US10909044B2 (en) | Access control device, access control method, and recording medium containing access control program | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
US11113100B2 (en) | Method and a migration component for migrating an application | |
EP3695319B1 (en) | Method and reallocation component for managing reallocation of information from source to target memory sled | |
US10395037B2 (en) | System and method for preserving data during an information handling system event using information handling system memory | |
CN117880288A (zh) | 数据均衡方法及相关设备 | |
CN114489465A (zh) | 使用网卡进行数据处理的方法、网络设备及计算机系统 | |
WO2020122779A1 (en) | Methods and nodes for handling memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |