CN105917317A - 具有动态阈值的异构交换空间 - Google Patents
具有动态阈值的异构交换空间 Download PDFInfo
- Publication number
- CN105917317A CN105917317A CN201580004433.7A CN201580004433A CN105917317A CN 105917317 A CN105917317 A CN 105917317A CN 201580004433 A CN201580004433 A CN 201580004433A CN 105917317 A CN105917317 A CN 105917317A
- Authority
- CN
- China
- Prior art keywords
- exchange area
- exchange
- page
- priority level
- list
- 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.)
- Pending
Links
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
-
- 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
-
- 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/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
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)
- Human Computer Interaction (AREA)
Abstract
本发明申请提供一种具有动态阈值的异构交换空间相关的技术和实施方式。一种技术包括在异构交换空间提供多个交换区域的一列表,所述多个交换区域包含在一个或多个特性上互不相同的至少两个交换区域,计算与需要交换的页面相关联的动态阈值,基于所述动态阈值判定需要交换的所述页面的优先级等级;以及从所述交换区域列表中选择其中一个交换区域用于交换所述页面以响应于所述页面的所述优先级等级的判定。
Description
【相关申请的交叉引用】
本申请要求如下申请的优先权:2014年12月18日递交的申请号为62/093,571的美国临时专利申请,以及2015年12月10日递交的申请号为14/965,799的美国专利申请,在此合并参考该相关申请案的申请标的。
【技术领域】
本发明申请一般涉及内存管理,更具体地,涉及一种具有动态阈值(一个或多个)的异构交换空间(heterogeneous swap space)框架。
【背景技术】
除非本文另有指出,否则本小节所描述的内容相对于本发明申请的权利要求而言不构成现有技术,且其也不会被承认为现有技术。
在计算机操作系统(operating system,OS),页面调度(paging)是其中一种内存管理方案,计算机通过该内存管理方案来存储和取回(retrieve)来自一个或多个辅助存储介质的数据以用于主存储器。根据页面调度的内存管理方案,操作系统从也被称为页面的相同大小块的辅助存储介质中取回数据。因此,页面调度允许操作系统使用辅助存储介质,用于存储不适合主存储器(这可能是一种随机存取存储器(RAM)类型)的数据。
交换子系统(swap subsystem)是页面调度内存管理方案的特点。交换子系统的目的是为具有某些执行开销的所有系统用户提供扩展的执行空间(extended execution space)。传统上,可以存在具有相同输入/输出(I/O)能力的一个或多个交换区域(swap area),以提供更多的执行空间。然而,对于当前复杂的操作系统,这种类型的交换子系统往往是低于最优和不灵活的。
目前有各类用于交换区域的存储介质,但多个交换的大多数现有框架通常由相同性能的介质(一个或多个)组成。然而,现有框架往往对操作系统的所有变型(variant)缺乏更好的适应。此外,现有框架也往往缺乏从性能相关指标中收集信息来选择交换区域的能力。
【发明内容】
以下发明内容仅是说明性的,并不意为以任何方式的限制。即,提供下列发明内容来介绍本文所描述技术的新颖的和非显而易见的概念、亮点、益处和优势。在下面详细说明中进一步描述可选实施方式,而不是所有的实现方式。因此,下面的发明内容并不旨在确定所要求保护主题的基本特征,也不旨在用于确定所要求保护主题的范围。
本发明申请提出一种异构交换区域的新框架以便更好地适应复杂的操作系统。本文中的术语“异构”是指由具有不同特性(例如,举例来说但不限于,输入/输出速度、寿命和成本)的多个交换区域组成的交换空间。本发明申请还提出一种动态阈值的新机制以用于新框架更好的选择交换区域。动态阈值可以是可调节的,例如,关于系统状态和进程优先级。也就是说,所提出的异构交换空间框架可以配备有动态阈值能力以提供更好的性能。
依据本发明申请一示范性实施例,提供一种方法,可包括在异构交换空间提供多个交换区域的一列表,所述多个交换区域包含在一个或多个特性上互不相同的至少两个交换区域。该方法还包括计算与需要交换(例如,被换出)的页面相关联的动态阈值并基于所述动态阈值判定需要交换的所述页面的优先级等级。该方法还包括从所述交换区域列表中选择其中一个交换区域用于交换所述页面以响应于所述页面的所述优先级等级的判定。
依据本发明申请另一示范性实施例,提供一种装置,可包括异构交换空间,包含多个交换区域。所述多个交换区域包含在一个或多个特性上互不相同的至少两个交换区域。该装置还可包括处理器,被配置为执行多个操作。该处理器可在所述异构交换空间中提供所述多个交换区域的一列表。该处理器还可计算与需要交换的页面相关联的动态阈值并基于所述动态阈值判定需要交换的所述页面的优先级等级。该处理器还从所述交换区域列表中选择其中一个交换区域用于交换所述页面以响应于所述页面的所述优先级等级的判定。
【附图说明】
包含附图以提供对本申请的进一步理解,并且并入附图并构成本申请的一部分。附图说明本申请的实施方式,并且与说明书一起用于解释本申请的原理。可以理解的是,为了清楚地说明本申请的概念,附图不一定是依比例的,因为一些组件的显示与实际实施方式的尺寸是不成比例的。
图1为根据本发明申请的各种实施方式可以被实现的示范性方案的示意图。
图2为根据本发明申请的实施方案的示范性算法的示意图。
图3为根据本发明申请的另一种实施方式的示范性算法的示意图。
图4为根据本发明申请的实施方式的示范性装置的简化方框图。
图5为根据本发明申请的实施方式的示范性流程的流程图。
【具体实施方式】
综述
图1示出了根据本发明申请的各种实施方式可以被实现的示范性方案100。根据用于电子装置(如计算装置、便携式装置或可穿戴装置)的操作系统的页面调度方案,方案100可以包括关于内存管理的若干组件、功能和操作。方案100可以包括异构交换空间以更好地适应当今不断复杂的操作系统。“异构”是指由具有一个或多个不同特性(例如,举例来说但不限于,输入/输出(I/O)速度、寿命和成本/价格)的多个交换区域组成的交换空间。多个交换区域可以建立在一个或多个存储器/存储装置(本文可互换称为“介质”)上。方案100还可以包括动态阈值的技术或机制以用于更好的选择交换区域。也就是说,根据本发明申请的动态阈值可以是可调节的以提供更好的性能,例如,关于系统状态和进程优先级(process priority)。
参照图1,方案100可以包括逻辑110和异构交换空间170。逻辑110可以实现为硬件、软件、中间件或固件、或者其任何组合的形式。异构交换空间170可以包括多个交换区域175(1)–175(N),其中N是大于1的正整数。交换区域175(1)–175(N)可以通过例如逻辑110来创建或以其它方式建立在一个或多个存储器/存储装置(本文可互换称为“介质”)上。交换区域175(1)–175(N)在一个或多个特性上可以互不相同,例如I/O速度、寿命和成本/价格。在一种情况下,至少两个交换区域175(1)–175(N)可以被创建或建立在具有不同I/O速度的不同介质上。例如,交换区域175(1)–175(N)中的一个可以被建立在动态随机存取存储器(dynamic random-access memory,DRAM)上,而交换区域175(1)–175(N)中的另一个可被建立在固态硬盘(solid-state drive,SSD)或磁盘上,并且动态随机存取存储器和固态硬盘(或磁盘)具有不同的I/O速度。为了说明目的而不限制本发明申请的范围,下表1示出了这种情况的一个范例。I/O速度也可指吞吐量。
表1
或者或另外,两个或多个的交换区域175(1)–175(N)可以被创建或建立在相同介质上,并且相同介质上的该两个或多个交换区域可以配备或关联不同性能的压缩算法。例如,交换区域175(1)–175(N)中的两个可以用不同的压缩算法来创建,例如LZO和LZ4HC。为了说明目的而不限制本发明申请公开的范围,下表2示出了这种情况的一个范例。配备或关联不同压缩算法的相同介质可具有不同的I/O速度。例如,较高的压缩速度和/或较高的解压速度可以与较高的I/O速度相关联。
表2
根据至少一个所述一个或多个特性,交换区域175(1)–175(N)的优先级列表(prioritized list)可以通过优先排序(prioritize)交换区域175(1)–175(N)来构建。可以由逻辑110来构建优先级列表。作为说明性示例而不限制本发明申请揭露的范围,可以根据交换区域175(1)–175(N)的I/O速度来优先排序交换区域175(1)–175(N)。在交换区域175(1)–175(N)建立在不同介质上的情况下,可以根据每一交换区域175(1)–175(N)所建立在的各自介质的I/O速度来优先排序交换区域175(1)–175(N)。在交换区域175(1)–175(N)都建立在相同介质上的情况下,交换区域175(1)–175(N)可以根据交换区域的I/O速度来优先排序,其可关联于每个交换区域175(1)–175(N)所配备的各自的压缩算法。作为说明性示例而不限制本发明申请揭露的范围,交换区域175(1)–175(N)的优先级列表可以是按优先级降序排序,其中那些关联最高/较高的I/O速度(一个或多个)的交换区域175(1)–175(N)可处于列表上最高/较高优先级的位置(一个或多个),以及那些关联最低/较低的I/O速度(一个或多个)的交换区域175(1)–175(N)可处于列表上最低/较低优先级的位置(一个或多个)。在必要时,逻辑110可以重新访问和反复修改这个优先级列表。
方案100还可以包括操作系统、内核和/或内存管理的功能120、应用程序/框架的功能130、一个或多个本地层(native layer)140、以及交换层150。在方案100中,功能130和140可以是在用户空间中,以及逻辑110、功能120、交换层150和异构交换空间170可以是在内核空间中。逻辑110可以作为信息收集中心,通过从功能120、功能130和本地层(一个或多个)140收集状态和信息指标来计算或以其它方式确定动态阈值。例如,逻辑110可以收集与需要交换(例如,被换出)的页面相关的一个或多个指标,并且这样的指标可以包括,例如但不限于按照用户空间中优先级定义的进程组(process group)、内核空间中的缓存大小和/或空闲存储器、与交换区域相关的I/O拥塞状态、需要页面交换(例如,不管是否实时)的进程的进程类(process class)、以及硬件使用的存储器大小(例如,与图形处理单元(graphics-processing unit,GPU)和/或多媒体处理单元相关的存储器使用状态)。为了说明目的而不限制本发明申请揭露的范围,下表3示出了动态阈值表的一个范例。
表3
操作系统、内核和/或内存管理的功能120可以指示、提供或以其他方式使一个或多个被换出的页面160可用以用于系统内存回收(reclaimation),例如,通过交换层150。交换层150可接收来自逻辑110的动态阈值以选择交换区域175(1)–175(N)中的其中之一用于需要交换的页面。逻辑110可以确定交换区域175(1)–175(N)的选择流程。例如,逻辑110可基于动态阈值来判定需要交换的页面的优先级等级(priority level)(例如,高或低)。在一个场景中,对应于如下描述的算法200,逻辑110可以选择具有较高I/O速度的其中一个交换区域175(1)–175(N),如果可用的话,在逻辑110确定该页面的优先级等级为高优先级的事件中作为该页面的交换区域。在另一种情况下,对应于如下描述的算法300,只要满足一定的阈值条件(一个或多个),在这样具有最高I/O速度(一个或多个)的交换区域(一个或多个)被用尽(exhausted)(不可用)之前,逻辑110可以先选择具有最高I/O速度(一个或多个)的交换区域(一个或多个)而不管需要交换的页面的优先级等级。
图2示出了根据本发明申请的实施方案的示范性算法200。算法200可以包括由一个或多个方块210、220、230、240、250、260、265、270、280、290和295表示的一个或多个操作、动作、或功能。尽管以离散方块来说明,算法200的各种方块可以被划分成附加块、被组合成更少的方块、或消除,这取决于所需的实现方式。各方块可以以图2所示的顺序或以任何其它顺序来执行,这取决于所需的实现方式。算法200可在方案100中实现。算法可以在210和/或240开始。
在210,算法200可包括系统内存回收,其可由操作系统、内核或内存管理机制(例如在方案100中的操作系统、内核和/或内存管理的功能120)执行、触发或以其他方式发起。算法200可从210进行至220。
在220,算法200可包括扫描用于换出的页面,这可以通过方案100的交换层150来执行。算法200可从220进行至230。
在230,算法200可包括触发或以其他方式发起交换区域的选择以用于需要交换(例如,需要被换出)的每一页面,这可以通过方案100中的交换层150来执行。
在240,根据页面调度的内存管理方案,算法200可包括内核、本地层(一个或多个)和/或框架操作。算法200可从240进行到250。
在250中,算法200可包括收集需要被换出的每个页面的一个或多个状态和信息指标。例如,一个或多个指标可以从内核、本地层(一个或多个)和/或框架中收集。所收集的一个或多个指标可以包含按照用户空间中的优先级定义的进程组、内核空间中的缓存大小和/或空闲存储器、与交换区域相关的I/O拥塞状态、需要页面交换(例如,不管是否实时)的进程的进程类、以及硬件使用的存储器大小(例如,与图形处理单元和/或多媒体处理单元相关的存储器使用状态)。算法200可从250进行到260。
在260,算法200可包括动态阈值的计算,用于需要交换的页面。
在265,算法200可包括基于所述动态阈值来分配优先级等级(例如,高或低)给需要交换的页面。算法200可从265进行至270。
在270,算法200可包括判定需要交换的页面的优先级等级是高优先级或是低优先级。在该页面的优先级等级被判定为高优先级的事件中,算法200可从270进行至280。否则,在该页面的优先级等级被判定为低优先级的事件中,算法200可从270进行至290。
在280,算法200可包括以从高优先级到低优先级的优先级降序顺序,从交换区域的优先级列表中选择交换区域。也就是说,在选择低优先级等级的交换区域(一个或多个)之前,先选择高优先级等级的交换区域(一个或多个),直到所有高优先级的交换区域用尽。算法200可从280进行至295。
在290,算法200可包括以从低优先级到高优先级的优先级升序顺序,从交换区域的优先级列表中选择交换区域。也就是说,在选择高优先级等级的交换区域(一个或多个)之前,先选择低优先级等级的交换区域(一个或多个),直到所有低优先级的交换区域用尽。算法200可从290进行至295。
在295,算法200可包括以所选择的交换区域执行页面交换。例如,算法200可使用所选择的交换区域换出需要交换的页面。
图3示出了根据本发明申请的另一种实施方式的示范性算法300。算法300可以是算法200的变型。算法300可包括由一个或多个方块310、320、330、340、350、360、365、370、372、374、376、380、390和395表示的一个或多个操作、动作或功能。尽管以离散方块来说明,算法300的各种方块可以被划分成附加块、被组合成更少的方块、或消除,这取决于所需的实现方式。各方块可以以图3所示的顺序或以任何其它顺序来执行,这取决于所需的实现方式。算法300可在方案100中实现。算法可以在310和/或340开始。
在310,算法300可包括系统内存回收,其可由操作系统、内核或内存管理机制(例如在方案100中的操作系统、内核和/或内存管理的功能120)执行、触发或以其他方式发起。算法300可从310进行至320。
在320,算法300可包括扫描用于换出的页面,这可以通过方案100的交换层150来执行。算法300可从320进行至330。
在330,算法300可包括触发或以其他方式发起交换区域的选择以用于需要交换(例如,需要被换出)的每一页面,这可以通过方案100中的交换层150来执行。
在340,根据页面调度的内存管理方案,算法300可以包括内核、本地层(一个或多个)和/或框架操作。算法300可从340进行到350。
在350中,算法300可包括收集需要被换出的每个页面的一个或多个状态和信息指标。例如,一个或多个指标可以从内核、本地层(一个或多个)和/或框架中收集。所收集的一个或多个指标可以包含按照用户空间中的优先级定义的进程组、内核空间中的缓存大小和/或空闲存储器、与交换区域相关的I/O拥塞状态、需要页面交换(例如,不管是否实时)的进程的进程类、以及硬件使用的存储器大小(例如,与图形处理单元和/或多媒体处理单元相关的存储器使用状态)。算法300可从350进行到360。
在360,算法300可包括动态阈值的计算,用于需要交换的页面。
在365,算法300可包括基于所述动态阈值来分配优先级等级(例如,高或低)给需要交换的页面。算法300可从365进行至370。
在370,算法300可包括判定是否满足一个或多个阈值条件。所述一个或多个阈值条件可以包括,例如但不限于,可用缓存和/或空闲存储器的量是否高于预定位准、进程组或进程优先级是否高于另一预定位准、或者上述条件的组合。在判定满足一个或多个阈值条件的事件中,算法300可从370进行至372。否则,在判定一个或多个阈值条件都不满足的事件中,算法300可从370进行至374。
在372,算法300可包括确定在交换区域的优先级列表中具有最高优先级等级的一个或多个交换区域的可用性。在确定具有最高优先级等级的一个或多个交换区域是不可用(例如,用尽)的事件中,算法300可从372进行到374。否则,在确定具有最高优先级等级的一个或多个交换区域是可用(例如,没有用尽)的事件中,算法300可从372进行到376。
在374,算法300可包括判定需要交换的页面的优先级等级是高优先级或是低优先级。在该页面的优先级等级被确定为高优先级等级的事件中,算法300可从374进行至380。否则,在该页面的优先级等级被确定为低优先级等级的事件中,算法300可从374进行至390。
在376,算法300可包括在可用的高优先级的交换区域中选择具有最高优先级等级的交换区域。算法300可从376进行至395。
在380,算法300可包括以从高优先级到低优先级的优先级降序顺序,从交换区域的优先级列表中选择交换区域。也就是说,在选择低优先级等级的交换区域(一个或多个)之前,先选择高优先级等级的交换区域(一个或多个),直到所有高优先级的交换区域用尽。算法300可从380进行至395。
在390,算法300可包括以从低优先级到高优先级的优先级升序顺序,从交换区域的优先级列表中选择交换区域。也就是说,在选择高优先级等级的交换区域(一个或多个)之前,先选择低优先级等级的交换区域(一个或多个),直到所有低优先级的交换区域用尽。算法300可从390进行至395。
在395,算法300可包括以所选择的交换区域执行页面交换。例如,算法300可使用所选择的交换区域换出需要交换的页面。
示范性实施方式
图4示出了根据本发明申请的实施方式的示范性装置400。在一些实施方式中,装置400可以是电子装置。例如,装置400可以是计算装置、便携式装置或可穿戴装置。在一些实施方式中,装置400可以是智能手机、平板电脑、手提电脑、笔记本电脑、台式计算机、可穿戴计算装置、可穿戴通信装置等等。在一些实施方式中,装置400可以是单一的集成电路(IC)芯片、芯片组或多个分立和独立的IC芯片。无论装置400实现为哪种形式,装置400可被配置为实施如上所述的方案100、算法200和算法300。
装置400可包括各种组件,包括图4所示的那些。为了避免使图形模糊并把重点放在与本发明申请相关的组件和特征上,与本发明申请实施方式相关的装置400的组件示于图4,而没有示出装置400的其它组件。参照图4,装置400可包括示范性平台430,其可包括通信耦接彼此的处理器410和主存储器420。平台430可以被实现为单个IC芯片、芯片组或多个分立和独立的IC芯片。主存储器420可以是随机存取存储器(RAM)类型例如,举例来说但不限于,DRAM、静态随机存取存储器(SRAM)、零电容器随机存取存储器(zero-capacitor random-access memory,Z-RAM)、晶闸管随机存取存储器(thyristor random-access memory,T-RAM)、磁随机存取存储器(magnetoresistive random-access memory,MRAM)和非易失性随机存取存储器(non-volatile random-access memory,NVRAM)。装置400还可以包括多个辅助存储介质例如,举例来说介质440(1)–440(Q),其中Q为大于或等于1的正整数。介质440(1)–440(Q)的每一者可以是,举例来说,RAM(例如,DRAM)、闪存、嵌入式多媒体卡(embedded multimedia card,eMMC)、安全数字(secure digital,SD)存储卡、固态硬盘或磁盘的类型。这些多个介质可以具有不同的I/O速度。例如,多个介质440(1)–440(Q)的至少两个可具有不同的I/O速度。
处理器410可以通过写入、读取、删除和修改存储在主存储器420中的数据来存取存储在其中的数据。处理器410还可以执行操作系统412。操作系统412可以利用页面调度的内存管理方案以及不仅从主存储器420还从相同大小页面的多个介质440(1)–440(Q)取回数据。
装置400根据页面调度方案可包括异构交换空间用于内存管理。异构交换空间可包括多个交换区域,例如,交换区域1、交换区域2、交换区域3、交换区域4、交换区域5、交换区域6、交换区域7、交换区域8、交换区域9和交换区域10,如图4所示。在一些实施方式中,交换区域1-10的至少两个可以建立在具有不同I/O速度的不同介质上。例如,在图4所示的范例中,交换区域1可建立在介质440(1)上以及交换区域3可建立在440(2)上,并且介质440(1)和介质440(2)的I/O速度可以有所不同。在一些实施方式中,所述多个交换区域的至少一些可以建立在相同的介质上。例如,在图4所示的范例中,交换区域1和交换区域2可在建立在介质440(1)上,交换区域3和交换区域4可建立在介质440(2)上,交换区域5和交换区域6可以建立在介质440(Q)上,以及交换区域7-10可建立在主存储器420上。在一些实施方式中,不同的压缩算法可以与建立在相同介质上的交换区域相关联。例如,交换区域1可以与第一压缩算法相关以及交换区域2可以与不同于第一压缩算法的第二压缩算法相关,并且同样地对于建立在同一介质上的其他交换区域也是如此。建立在相同介质上配备有或关联于不同压缩算法的交换区域可具有不同的I/O速度。例如,较高的压缩速度和/或较高的解压缩速度可以关联于较高的I/O速度。作为示例而不限制本发明申请的范围,介质440(1)可以是Z-RAM,作为用于Linux的一模块来利用压缩构建在RAM磁盘中。在这个例子中,交换区域1可以与压缩算法LZO相关以及交换区域2可以与压缩算法LZ4HC相关。也可以在本发明申请的各种实现方式中使用其它合适的压缩算法,诸如,举例来说但不限于,LZ4、LZF、LZ77、Snappy或它们的任何变型。
处理器410还可以包括逻辑415,其可以以硬件、软件、中间件或固件、或者其任何组合的形式来实现。即,逻辑415可实施在处理器410中或由处理器410执行。逻辑415可以是逻辑110的示例性实现方式,或方案100的逻辑110和交换层150组合的示例性实现方式,并且可以被配置为实现以上关于逻辑110所描述的技术。例如,逻辑415可在异构交换空间中产生多个交换区域(例如,交换区域1-10)的一列表,根据交换区域的一个或多个特性来优先排序多个交换区域以提供交换区域的优先级列表。多个交换区域的所述一个或多个特性可以包括,举例来说但不限于,多个交换区域中每个交换区域各自的I/O速度,多个交换区域中每个交换区域各自的寿命,以及多个交换区域中每个交换区域各自的成本/价格。例如,优先级列表可按照优先级降序顺序,使得与较高I/O速度(一个或多个)相关的那些交换区域可以被放置在优先级列表中较高的位置以及与较低I/O速度(一个或多个)相关的那些交换区域可以被放置在优先级列表中较低的位置。逻辑415可以重新访问和反复修改此列表。
对于需要交换的每一页面,逻辑415可以接收指示或以其他方式确定给定页面是需要交换的。逻辑415可以获取或以其他方式收集与页面相关的一个或多个指标并基于所述一个或多个指标来计算或以其他方式确定动态阈值。即,逻辑415可接收、获取或以其它方式收集状态和/或信息的一个或多个指标,用于计算与需要被换出的每一页面相关的动态阈值。例如,逻辑415可收集与需要交换的页面相关的一个或多个指标包括,举例来说但不限于,按照用户空间中的优先级定义的进程组、内核空间中的缓存大小和/或空闲存储器、与交换区域相关的I/O拥塞状态、需要页面交换(例如,不管是否实时)的进程的进程类、以及硬件使用的存储器大小(例如,与图形处理单元和/或多媒体处理单元相关的存储器使用状态)。逻辑415可基于所述动态阈值进一步判定需要交换的页面的优先级等级(例如,高或低)。
在一些实施方式中,在执行算法200中,逻辑415可从交换区域列表中选择其中一个交换区域用于交换页面以响应于该页面优先级等级的判定。例如,在判定页面的优先级等级为低优先级的事件中,逻辑415可以以优先级升序顺序(例如,从低到高)从交换区域的优先级列表中选择其中一个交换区域用于交换该页面。否则,在判定页面的优先级等级为高优先级的事件中,逻辑415可以以优先级降序顺序(例如,从高到低)从交换区域的优先级列表中选择其中一个交换区域用于交换该页面。
在一些实施方式中,在执行算法300中,逻辑415可判定是否满足一个或多个阈值条件。在一些实施方式中,该判定动作可以先于逻辑415判定需要交换的页面的优先级等级而完成。所述一个或多个阈值条件可以包括,举例来说但不限于,可用的缓存和/或空闲存储器的量是否高于预定位准、进程组或进程优先级是否高于另一预定位准、或者上述条件的组合。在判定所述一个或多个阈值条件是满足的事件中,逻辑415还可以确定在交换区域的优先级列表中具有最高优先级等级的一个或多个交换区域的可用性。在判定所述一个或多个阈值条件都没被满足的事件中,逻辑415可以进行到判定需要交换的页面的优先级等级。接着在确定具有最高优先级等级的一个或多个交换区域是可用(例如,没有用尽)的事件中,逻辑415可以选择在交换区域的优先级列表中具有最高优先级等级的一个或多个交换区域中的至少一个,用于交换该页面。在确定具有最高优先级等级的一个或多个交换区域是不可用(例如,用尽)的事件中,逻辑415可以进行到判定需要交换的页面的优先级等级。
图5示出了根据本发明申请的实施方式的示范性流程500。算法500可以包括由一个或多个方块510、520、530和540表示的一个或多个操作、动作、或功能。尽管以离散方块来说明,流程500的各种方块可以被划分成附加块、被组合成更少的方块、或消除,这取决于所需的实现方式。各方块可以以图5所示的顺序或以任何其它顺序来执行,这取决于所需的实现方式。流程500可以由装置400及其任何变型来实施。为了说明的目的,通过装置400执行来提供以下流程500的描述。示范性流程500可开始于510。
在510,流程500可包括逻辑415在异构交换空间提供多个交换区域的列表。该多个交换区域可包括在一个或多个特性上互不相同的至少两个交换区域。流程500可从510进行到520。
在520,流程500可包括逻辑415计算与需要交换的页面相关的动态阈值。流程500可从520进行到530。
在530,流程500可包括逻辑415基于所述动态阈值来判定需要交换的页面的优先级等级。流程500可从530进行到540。
在540,流程500可包括逻辑415从交换区域的列表中选择其中一个交换区域用于交换该页面,以响应于页面的优先级等级的判定。
在一些实施方式中,在提供多个交换区域的列表中,流程500可以包括逻辑415基于多个交换区域的一个或多个特性来优先排序该多个交换区域。在一些实施方式中,多个交换区域的一个或多个特性可以包括该多个交换区域中每一个交换区域各自的I/O速度、寿命和/或成本。
在一些实施方式中,异构交换空间中的多个交换区域可包括建立在不同介质上的至少两个交换区域。在一些实施方式中,不同的介质可以包括具有不同I/O速度的至少两个介质。
在一些实施方式中,异构交换空间中的多个交换区域可以包括建立在相同介质上的至少第一交换区域和第二交换区域。第一交换区域可与第一压缩算法相关,以及第二交换区域可以与不同于第一压缩算法的第二压缩算法相关。
在一些实施方式中,在计算与需要交换的页面相关的动态阈值中,流程500可以包括逻辑415执行若干个操作。例如,流程500可包括逻辑415接收指示表明该页面是需要交换的。流程500还可包括逻辑415获取与页面相关的一个或多个指标。流程500还可以包括逻辑415基于所述一个或多个指标来计算动态阈值。在一些实施方式中,与页面相关的一个或多个指标可以包括以下一个或多个:缓存状态,空闲存储器状态,I/O状态,与页面相关的进程组,与页面相关的进程类,以及硬件内存状态。
在一些实施方式中,在从交换区域的列表中选择其中一个交换区域用于交换该页面中,流程500可包括逻辑415以优先级升序顺序来从交换区域的列表中选择其中一个交换区域用于交换该页面,以响应于判定该页面的优先级等级为低优先级。备选地,在从交换区域的列表中选择其中一个交换区域用于交换该页面中,流程500可包括逻辑415以优先级降序顺序来从交换区域的列表中选择其中一个交换区域用于交换该页面,以响应于判定该页面的优先级等级为高优先级。
在一些实施方式中,流程500可以包括逻辑415执行额外的操作。例如,流程500可包括逻辑415判定是否满足一个或多个阈值条件。在一些实施方式中,该判定可以在需要交换的页面优先级等级的判定之前完成。流程500还可包括逻辑415判定在交换区域的优先级列表中具有最高优先级等级的一个或多个交换区域的可用性,以响应于满足一个或多个阈值条件的判定。流程500还可包括逻辑415选择交换区域的优先级列表中具有最高优先级等级的一个或多个交换区域的至少其中之一,用于交换该页面以响应于具有最高优先级等级的一个或多个交换区域是可用的判定。在一些实施方式中,流程500可以包括逻辑415执行进一步的操作。例如,在一个或多个阈值条件都不满足的事件中,流程500可包括逻辑415进行到判定需要交换的页面的优先级等级。流程500还可包括逻辑415进行到判定需要交换的页面的优先级等级,以响应于具有最高优先级等级的一个或多个交换区域是不可用的判定。
补充注释
本说明书中描述的主题有时举例说明包含在不同组件内的其它不同组件,或与不同组件连接的其他不同组件。但应当理解,这样描绘的架构仅仅是范例,并且实际上可以实现完成相同功能的许多其它架构。在概念意义上,实现相同功能的组件的任何布置被有效地“关联”,使得实现期望的功能。因此,这里组合以实现特定功能的任何两个组件可以被看作是彼此“相关联”,使得实现期望的功能,而不考虑架构或中间组件。同样地,能够如此关联的任意两个组件也可以被视为彼此“可操作地连接”,或“可操作地耦接”,以实现所需功能,并且能够如此关联的任何两个组件也可以被视为彼此“可操作地可耦接”,以实现所需的功能。可操作地可耦接的具体实例包括但不限于物理可配对及/或物理交互组件及/或无线交互及/或无线交互组件及/或逻辑交互及/或逻辑交互组件。
此外,基本上关于使用的任何复数和/或单数术语,只要适合于上下文和/或应用,本领域技术人员可以从复数转换为单数和/或从单数转换为复数。为清楚起见可在此处明确规定各种单数/复数置换。
此外,本领域技术人员可以理解,通常这里所使用的术语,特别是在所附的权利要求书中使用的术语,例如所附权利要求的主体,一般旨在作为“开放式”术语,例如术语“包括”应被解释为“包括但不限于”,术语“具有”应该被解释为“至少具有”,术语“包含”应被解释为“包含但不限于”等。本领域技术人员可以进一步理解,如果意指特定数量的所引入权利要求要素,这样的意图将明确地记载在权利要求中,并且在缺少这样的陈述时不存在这样的意图。例如,为了有助于理解,所附权利要求可包含引导性短语“至少一个”和“一个或多个”的使用以引入权利要求要素。然而,使用这样的短语不应被解释为暗示由不定冠词“一”或“一个”引入的权利要求要素限制含有这样引入权利要求要素的任何特定权利要求只包含一个这样的要素,即使当相同的权利要求包含了引导性短语“一个或多个”或“至少一个”和不定冠词例如“一”或“一个”,例如“一”和/或“一个”应被解释为是指“至少一个”或“一个或多个”,这同样适用于用来引入权利要求要素的定冠词的使用。此外,即使明确记载特定数量的所引入权利要求要素,本领域的技术人员将认识到,这样的陈述应被解释为意指至少所列举的数值,例如没有其它修饰词的叙述“两个要素”,是指至少两个要素或者两个或更多要素。此外,在使用类似于“A,B和C等中的至少一个”的情况下,就其目的而言,通常这样的结构,本领域技术人员将理解该惯例,例如“系统具有A,B和C中的至少一个”将包括但不限于系统具有单独的A、单独的B、单独的C、A和B一起、A和C一起、B和C一起、和/或A、B和C一起等。在使用类似于“A,B或C等中的至少一个”的情况下,就其目的而言,通常这样的结构,本领域技术人员将理解该惯例,例如“系统具有A,B或C中的至少一个”将包括但不限于系统具有单独的A、单独的B、单独的C、A和B一起、A和C一起、B和C一起、和/或A、B和C一起等。本领域技术人员将进一步理解,实际上表示两个或多个可选项的任何转折词语和/或短语,无论在说明书、权利要求书或附图中,应该被理解为考虑包括多个术语之一、任一术语、或两个术语的可能性。例如,短语“A或B”将被理解为包括“A”或“B”或“A和B”的可能性。
由上可知,可以理解的是,为了说明目的本文已经描述了本申请公开的各种实施方式,并且可以做出各种修改而不脱离本发明申请的范围和精神。因此,本文所公开的各种实施方式并不意味着是限制性的,真正的范围和精神由所附权利要求确定。
Claims (22)
1.一种方法,其特征在于,包括:
在异构交换空间提供多个交换区域的一列表,所述多个交换区域包含在一个或多个特性上互不相同的至少两个交换区域;
计算与需要交换的页面相关联的动态阈值;
基于所述动态阈值判定需要交换的所述页面的优先级等级;以及
从所述交换区域列表中选择其中一个交换区域用于交换所述页面以响应于所述页面的所述优先级等级的判定。
2.如权利要求1所述的方法,其特征在于,提供所述交换区域列表的步骤包括基于所述多个交换区域的所述一个或多个特性来优先排序所述多个交换区域。
3.如权利要求1所述的方法,其特征在于,所述多个交换区域的所述一个或多个特性包括所述多个交换区域中每一个交换区域各自的输入/输出速度。
4.如权利要求1所述的方法,其特征在于,所述异构交换空间中的所述多个交换区域包括建立在不同介质上的至少两个交换区域。
5.如权利要求1所述的方法,其特征在于,所述异构交换空间中的所述多个交换区域包括建立在相同介质上的至少第一交换区域和第二交换区域,其中所述第一交换区域与第一压缩算法相关联,以及所述第二交换区域与不同于所述第一压缩算法的第二压缩算法相关联。
6.如权利要求1所述的方法,其特征在于,计算与需要交换的所述页面相关联的动态阈值包括:
获取与所述页面相关的一个或多个指标;以及
基于所述一个或多个指标计算所述动态阈值。
7.如权利要求6所述的方法,其特征在于,与所述页面相关的所述一个或多个指标包括一个或多个缓存状态、空闲存储器状态、输入/输出状态、与所述页面相关的进程组、与所述页面相关的进程类和硬件内存状态。
8.如权利要求1所述的方法,其特征在于,从所述交换区域列表中选择其中一个交换区域用于交换所述页面包括:以优先级升序顺序从所述交换区域列表中选择所述其中一个交换区域用于交换所述页面,以响应于所述页面的所述优先级等级为低优先级的判定。
9.如权利要求1所述的方法,其特征在于,从所述交换区域列表中选择其中一个交换区域用于交换所述页面包括:以优先级降序顺序从所述交换区域列表中选择所述其中一个交换区域用于交换所述页面,以响应于所述页面的所述优先级等级为高优先级的判定。
10.如权利要求1所述的方法,其特征在于,还包括:
判定是否满足一个或多个阈值条件中的至少一个;
响应于满足所述一个或多个阈值条件中的至少一个,判定所述交换区域列表中具有最高优先级等级的一个或多个交换区域的可用性;以及
选择所述交换区域列表中具有最高优先级等级的一个或多个交换区域中的至少一个用于交换所述页面,以响应于具有最高优先级等级的所述一个或多个交换区域是可用的判定。
11.如权利要求10所述的方法,其特征在于,还包括:
在判定所述一个或多个阈值条件都没被满足的事件中,进行到判定需要交换的所述页面的所述优先级等级;以及
响应于具有最高优先级等级的所述一个或多个交换区域是不可用的判定,进行到判定需要交换的所述页面的所述优先级等级。
12.一种装置,其特征在于,包括:
异构交换空间,包含多个交换区域,所述多个交换区域包含在一个或多个特性上互不相同的至少两个交换区域;
处理器,被配置为执行多个操作,包含:
在所述异构交换空间中提供所述多个交换区域的一列表;
计算与需要交换的页面相关联的动态阈值;
基于所述动态阈值判定需要交换的所述页面的优先级等级;以及
从所述交换区域列表中选择其中一个交换区域用于交换所述页面以响应于所述页面的所述优先级等级的判定。
13.如权利要求12所述的装置,其特征在于,在提供所述交换区域列表中,处理器被配置为基于所述多个交换区域的所述所述一个或多个特性来优先排序所述多个交换区域。
14.如权利要求12所述的装置,其特征在于,所述多个交换区域的所述一个或多个特性包括所述多个交换区域中每一个交换区域各自的输入/输出速度。
15.如权利要求12所述的装置,其特征在于,所述异构交换空间中的所述多个交换区域包括建立在不同介质上的至少两个交换区域。
16.如权利要求12所述的装置,其特征在于,所述异构交换空间中的所述多个交换区域包括建立在相同介质上的至少第一交换区域和第二交换区域,其中所述第一交换区域与第一压缩算法相关联,以及所述第二交换区域与不同于所述第一压缩算法的第二压缩算法相关联。
17.如权利要求12所述的装置,其特征在于,在计算与需要交换的所述页面相关联的所述动态阈值中,所述处理器被配置为执行多个操作,包括:
获取与所述页面相关的一个或多个指标;以及
基于所述一个或多个指标计算所述动态阈值。
18.如权利要求17所述的装置,其特征在于,与所述页面相关的所述一个或多个指标包括一个或多个缓存状态、空闲存储器状态、输入/输出状态、与所述页面相关的进程组、与所述页面相关的进程类和硬件内存状态。
19.如权利要求12所述的装置,其特征在于,从所述交换区域列表中选择其中一个交换区域用于交换所述页面中,所述处理器被配置为以优先级升序顺序从所述交换区域列表中选择所述其中一个交换区域用于交换所述页面,以响应于所述页面的所述优先级等级为低优先级的判定。
20.如权利要求12所述的装置,其特征在于,从所述交换区域列表中选择其中一个交换区域用于交换所述页面中,所述处理器被配置为以优先级降序顺序从所述交换区域列表中选择所述其中一个交换区域用于交换所述页面,以响应于所述页面的所述优先级等级为高优先级的判定。
21.如权利要求12所述的装置,其特征在于,所述处理器进一步被配置为执行多个操作,包括:
判定是否满足一个或多个阈值条件中的至少一个;
响应于满足所述一个或多个阈值条件中的至少一个,判定所述交换区域列表中具有最高优先级等级的一个或多个交换区域的可用性;以及
选择所述交换区域列表中具有最高优先级等级的一个或多个交换区域中的至少一个用于交换所述页面,以响应于具有最高优先级等级的所述一个或多个交换区域是可用的判定。
22.如权利要求21所述的装置,其特征在于,所述处理器进一步被配置为执行多个操作,包括:
在判定所述一个或多个阈值条件都没被满足的事件中,进行到判定需要交换的所述页面的所述优先级等级;以及
响应于具有最高优先级等级的所述一个或多个交换区域是不可用的判定,进行到判定需要交换的所述页面的所述优先级等级。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462093571P | 2014-12-18 | 2014-12-18 | |
US62/093,571 | 2014-12-18 | ||
US14/965,799 US20160098203A1 (en) | 2014-12-18 | 2015-12-10 | Heterogeneous Swap Space With Dynamic Thresholds |
US14/965,799 | 2015-12-10 | ||
PCT/CN2015/097860 WO2016095854A1 (en) | 2014-12-18 | 2015-12-18 | Heterogeneous swap space with dynamic thresholds |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105917317A true CN105917317A (zh) | 2016-08-31 |
Family
ID=55632842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580004433.7A Pending CN105917317A (zh) | 2014-12-18 | 2015-12-18 | 具有动态阈值的异构交换空间 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160098203A1 (zh) |
CN (1) | CN105917317A (zh) |
WO (1) | WO2016095854A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719633A (zh) * | 2022-09-20 | 2023-09-08 | 荣耀终端有限公司 | 管理内存交换分区的方法和电子设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884950B2 (en) * | 2016-05-16 | 2021-01-05 | International Business Machines Corporation | Importance based page replacement |
JP6706159B2 (ja) * | 2016-06-22 | 2020-06-03 | キヤノン株式会社 | 情報処理装置、及びその制御方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307432A1 (en) * | 2008-06-09 | 2009-12-10 | Fleming Matthew D | Memory management arrangements |
CN101901190A (zh) * | 2009-03-19 | 2010-12-01 | 三星电子株式会社 | 电子装置、用于管理电子装置中的存储器的设备和方法 |
CN103827839A (zh) * | 2011-07-26 | 2014-05-28 | 英特尔公司 | 用于在支持共享虚拟存储器的异构计算系统中的tlb关闭的方法和装置 |
CN103853665A (zh) * | 2012-12-03 | 2014-06-11 | 华为技术有限公司 | 存储空间分配方法及设备 |
CN103890688A (zh) * | 2011-07-28 | 2014-06-25 | 奈特力斯公司 | 一种flash-dram混合存储器模块 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU1447295A (en) * | 1993-12-30 | 1995-08-01 | Connectix Corporation | Virtual memory management system and method using data compression |
US6516397B2 (en) * | 2001-04-09 | 2003-02-04 | Hewlett-Packard Company | Virtual memory system utilizing data compression implemented through a device |
US7120753B2 (en) * | 2004-04-20 | 2006-10-10 | International Business Machines Corporation | System and method for dynamically adjusting read ahead values based upon memory usage |
US7721292B2 (en) * | 2004-12-16 | 2010-05-18 | International Business Machines Corporation | System for adjusting resource allocation to a logical partition based on rate of page swaps and utilization by changing a boot configuration file |
JP4367406B2 (ja) * | 2005-12-12 | 2009-11-18 | 株式会社日立製作所 | コンピュータ割り当て方法 |
EP1870813B1 (en) * | 2006-06-19 | 2013-01-30 | Texas Instruments France | Page processing circuits, devices, methods and systems for secure demand paging and other operations |
JP5211751B2 (ja) * | 2008-02-26 | 2013-06-12 | 富士通株式会社 | 計算機、ダンププログラムおよびダンプ方法 |
KR101553532B1 (ko) * | 2008-04-17 | 2015-09-16 | 삼성전자주식회사 | 스토리지 장치 |
US8954654B2 (en) * | 2008-06-18 | 2015-02-10 | Super Talent Technology, Corp. | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance |
US8407516B2 (en) * | 2009-12-23 | 2013-03-26 | Intel Corporation | Controlling memory redundancy in a system |
US9086921B2 (en) * | 2010-11-16 | 2015-07-21 | Vmware, Inc. | Dynamic database memory management according to swap rates |
WO2013112124A1 (en) * | 2012-01-23 | 2013-08-01 | Empire Technology Development Llc | Managing addressable memory in heterogeneous multicore processors |
KR101924022B1 (ko) * | 2012-04-03 | 2019-02-22 | 삼성전자주식회사 | 메모리 시스템 및 그것의 페이지 교체 방법 |
US8930631B2 (en) * | 2012-08-20 | 2015-01-06 | International Business Machines Corporation | Efficient management of computer memory using memory page associations and memory |
KR101999132B1 (ko) * | 2012-12-17 | 2019-10-01 | 삼성전자주식회사 | 가상 머신 환경에서 메모리 관리 방법 및 장치 |
US9524233B2 (en) * | 2013-03-05 | 2016-12-20 | Vmware, Inc. | System and method for efficient swap space allocation in a virtualized environment |
US20160025958A1 (en) * | 2013-03-12 | 2016-01-28 | Koninklijke Philips N.V. | Horseshoe magnet for a biosensor |
US20150024212A1 (en) * | 2013-07-22 | 2015-01-22 | Itoh Optical Industrial Co., Ltd. | Hard coating composition |
US20150067238A1 (en) * | 2013-08-29 | 2015-03-05 | Sandisk Technologies Inc. | Computing Device and Method for Predicting Low Memory Conditions |
US20150242432A1 (en) * | 2014-02-21 | 2015-08-27 | Microsoft Corporation | Modified Memory Compression |
US9472248B2 (en) * | 2014-03-28 | 2016-10-18 | Intel Corporation | Method and apparatus for implementing a heterogeneous memory subsystem |
US9600317B2 (en) * | 2014-04-16 | 2017-03-21 | Vmware, Inc. | Page compressibility checker |
US9928169B2 (en) * | 2014-05-07 | 2018-03-27 | Sandisk Technologies Llc | Method and system for improving swap performance |
-
2015
- 2015-12-10 US US14/965,799 patent/US20160098203A1/en not_active Abandoned
- 2015-12-18 CN CN201580004433.7A patent/CN105917317A/zh active Pending
- 2015-12-18 WO PCT/CN2015/097860 patent/WO2016095854A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307432A1 (en) * | 2008-06-09 | 2009-12-10 | Fleming Matthew D | Memory management arrangements |
CN101901190A (zh) * | 2009-03-19 | 2010-12-01 | 三星电子株式会社 | 电子装置、用于管理电子装置中的存储器的设备和方法 |
CN103827839A (zh) * | 2011-07-26 | 2014-05-28 | 英特尔公司 | 用于在支持共享虚拟存储器的异构计算系统中的tlb关闭的方法和装置 |
CN103890688A (zh) * | 2011-07-28 | 2014-06-25 | 奈特力斯公司 | 一种flash-dram混合存储器模块 |
CN103853665A (zh) * | 2012-12-03 | 2014-06-11 | 华为技术有限公司 | 存储空间分配方法及设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719633A (zh) * | 2022-09-20 | 2023-09-08 | 荣耀终端有限公司 | 管理内存交换分区的方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20160098203A1 (en) | 2016-04-07 |
WO2016095854A1 (en) | 2016-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103810237B (zh) | 数据管理方法和系统 | |
KR101436339B1 (ko) | 클라우드 컴퓨팅 환경에서의 태스크 할당 | |
CN102831087B (zh) | 基于混合存储器的数据读写处理方法和装置 | |
CN106104485A (zh) | 针对多进程应用的动态资源管理 | |
CN104011689B (zh) | 非易失性存储器损耗管理 | |
JP6192660B2 (ja) | ステージング・エリアを管理するためのコンピュータ実施プロセス、コンピュータ・プログラム製品、装置 | |
US9436601B2 (en) | Categorizing memory pages based on page residences | |
KR20160124181A (ko) | 수정된 메모리 압축 | |
US9697111B2 (en) | Method of managing dynamic memory reallocation and device performing the method | |
WO2015142341A1 (en) | Dynamic memory expansion by data compression | |
US10482033B2 (en) | Method and device for controlling memory | |
US20160378681A1 (en) | Page compression strategy for improved page out process | |
CN105917317A (zh) | 具有动态阈值的异构交换空间 | |
US20190004968A1 (en) | Cache management method, storage system and computer program product | |
CN106055274A (zh) | 一种数据存储方法、数据读取方法及电子设备 | |
CN102999444A (zh) | 一种用于替换缓存模块中数据的方法及装置 | |
KR20160064720A (ko) | 캐시 메모리 장치 및 이를 포함하는 전자 시스템 | |
CN107003940B (zh) | 用于在非统一存储器架构中提供改进的延迟的系统和方法 | |
JP2017522645A (ja) | フラッシュメモリベースのストレージデバイスの入力/出力仮想化(iov)ホストコントローラ(hc)(iov−hc) | |
US20150302022A1 (en) | Data deduplication method and apparatus | |
CN103294407B (zh) | 存储装置和数据读写方法 | |
CN104461957A (zh) | 一种异构多核cpu共享片上高速缓存的方法及装置 | |
TW201941087A (zh) | 具有旋轉布隆過濾器之資料結構 | |
CN109918949A (zh) | 识别方法、装置、电子设备和存储介质 | |
CN105612558B (zh) | 用于处理图像的装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160831 |