具有动态阈值的异构交换空间的制作方法

文档序号:10557125阅读:301来源:国知局
具有动态阈值的异构交换空间的制作方法
【专利摘要】本发明申请提供一种具有动态阈值的异构交换空间相关的技术和实施方式。一种技术包括在异构交换空间提供多个交换区域的一列表,所述多个交换区域包含在一个或多个特性上互不相同的至少两个交换区域,计算与需要交换的页面相关联的动态阈值,基于所述动态阈值判定需要交换的所述页面的优先级等级;以及从所述交换区域列表中选择其中一个交换区域用于交换所述页面以响应于所述页面的所述优先级等级的判定。
【专利说明】具有动态阈值的异构交换空间
[0001] 【相关申请的交叉引用】
[0002] 本申请要求如下申请的优先权:2014年12月18日递交的申请号为62/093,571的美 国临时专利申请,以及2015年12月10日递交的申请号为14/965,799的美国专利申请,在此 合并参考该相关申请案的申请标的。 【技术领域】
[0003] 本发明申请一般涉及内存管理,更具体地,涉及一种具有动态阈值(一个或多个) 的异构交换空间(heterogeneous swap space)框架。 【【背景技术】】
[0004] 除非本文另有指出,否则本小节所描述的内容相对于本发明申请的权利要求而言 不构成现有技术,且其也不会被承认为现有技术。
[0005]在计算机操作系统(operating system,0S),页面调度(paging)是其中一种内存 管理方案,计算机通过该内存管理方案来存储和取回(retri eve)来自一个或多个辅助存储 介质的数据以用于主存储器。根据页面调度的内存管理方案,操作系统从也被称为页面的 相同大小块的辅助存储介质中取回数据。因此,页面调度允许操作系统使用辅助存储介质, 用于存储不适合主存储器(这可能是一种随机存取存储器(RAM)类型)的数据。
[0006]交换子系统(swap subsystem)是页面调度内存管理方案的特点。交换子系统的目 的是为具有某些执行开销的所有系统用户提供扩展的执行空间(extended execution space)。传统上,可以存在具有相同输入/输出(I/O)能力的一个或多个交换区域(swap area),以提供更多的执行空间。然而,对于当前复杂的操作系统,这种类型的交换子系统往 往是低于最优和不灵活的。
[0007] 目前有各类用于交换区域的存储介质,但多个交换的大多数现有框架通常由相同 性能的介质(一个或多个)组成。然而,现有框架往往对操作系统的所有变型(variant)缺乏 更好的适应。此外,现有框架也往往缺乏从性能相关指标中收集信息来选择交换区域的能 力。 【
【发明内容】

[0008] 以下
【发明内容】
仅是说明性的,并不意为以任何方式的限制。即,提供下列
【发明内容】
来介绍本文所描述技术的新颖的和非显而易见的概念、亮点、益处和优势。在下面详细说明 中进一步描述可选实施方式,而不是所有的实现方式。因此,下面的
【发明内容】
并不旨在确定 所要求保护主题的基本特征,也不旨在用于确定所要求保护主题的范围。
[0009] 本发明申请提出一种异构交换区域的新框架以便更好地适应复杂的操作系统。本 文中的术语"异构"是指由具有不同特性(例如,举例来说但不限于,输入/输出速度、寿命和 成本)的多个交换区域组成的交换空间。本发明申请还提出一种动态阈值的新机制以用于 新框架更好的选择交换区域。动态阈值可以是可调节的,例如,关于系统状态和进程优先 级。也就是说,所提出的异构交换空间框架可以配备有动态阈值能力以提供更好的性能。
[0010]依据本发明申请一示范性实施例,提供一种方法,可包括在异构交换空间提供多 个交换区域的一列表,所述多个交换区域包含在一个或多个特性上互不相同的至少两个交 换区域。该方法还包括计算与需要交换(例如,被换出)的页面相关联的动态阈值并基于所 述动态阈值判定需要交换的所述页面的优先级等级。该方法还包括从所述交换区域列表中 选择其中一个交换区域用于交换所述页面以响应于所述页面的所述优先级等级的判定。 [0011]依据本发明申请另一示范性实施例,提供一种装置,可包括异构交换空间,包含多 个交换区域。所述多个交换区域包含在一个或多个特性上互不相同的至少两个交换区域。 该装置还可包括处理器,被配置为执行多个操作。该处理器可在所述异构交换空间中提供 所述多个交换区域的一列表。该处理器还可计算与需要交换的页面相关联的动态阈值并基 于所述动态阈值判定需要交换的所述页面的优先级等级。该处理器还从所述交换区域列表 中选择其中一个交换区域用于交换所述页面以响应于所述页面的所述优先级等级的判定。 【【附图说明】】
[0012] 包含附图以提供对本申请的进一步理解,并且并入附图并构成本申请的一部分。
【附图说明】本申请的实施方式,并且与说明书一起用于解释本申请的原理。可以理解的是,为 了清楚地说明本申请的概念,附图不一定是依比例的,因为一些组件的显示与实际实施方 式的尺寸是不成比例的。
[0013] 图1为根据本发明申请的各种实施方式可以被实现的示范性方案的示意图。
[0014] 图2为根据本发明申请的实施方案的示范性算法的示意图。
[0015] 图3为根据本发明申请的另一种实施方式的示范性算法的示意图。
[0016] 图4为根据本发明申请的实施方式的示范性装置的简化方框图。
[0017] 图5为根据本发明申请的实施方式的示范性流程的流程图。 【【具体实施方式】】
[0018] 综述
[0019] 图1示出了根据本发明申请的各种实施方式可以被实现的示范性方案100。根据用 于电子装置(如计算装置、便携式装置或可穿戴装置)的操作系统的页面调度方案,方案100 可以包括关于内存管理的若干组件、功能和操作。方案100可以包括异构交换空间以更好地 适应当今不断复杂的操作系统。"异构"是指由具有一个或多个不同特性(例如,举例来说但 不限于,输入/输出(I/O)速度、寿命和成本/价格)的多个交换区域组成的交换空间。多个交 换区域可以建立在一个或多个存储器/存储装置(本文可互换称为"介质")上。方案100还可 以包括动态阈值的技术或机制以用于更好的选择交换区域。也就是说,根据本发明申请的 动态阈值可以是可调节的以提供更好的性能,例如,关于系统状态和进程优先级(process priority)〇
[0020] 参照图1,方案100可以包括逻辑110和异构交换空间170。逻辑110可以实现为硬 件、软件、中间件或固件、或者其任何组合的形式。异构交换空间170可以包括多个交换区域 175(1)-1750),其中~是大于1的正整数。交换区域175(1)-1750)可以通过例如逻辑11〇来 创建或以其它方式建立在一个或多个存储器/存储装置(本文可互换称为"介质")上。交换 区域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)中的另一个可被建 立在固态硬盘(sol id-state drive,SSD)或磁盘上,并且动态随机存取存储器和固态硬盘 (或磁盘)具有不同的I/O速度。为了说明目的而不限制本发明申请的范围,下表1示出了这 种情况的一个范例。I/O速度也可指吞吐量。
[0021]表1
[0023] 或者或另外,两个或多个的交换区域175(1 )_175(N)可以被创建或建立在相同介 质上,并且相同介质上的该两个或多个交换区域可以配备或关联不同性能的压缩算法。例 如,交换区域175(1)-175(N)中的两个可以用不同的压缩算法来创建,例如LZ0和LZ4HC。为 了说明目的而不限制本发明申请公开的范围,下表2示出了这种情况的一个范例。配备或关 联不同压缩算法的相同介质可具有不同的I/O速度。例如,较高的压缩速度和/或较高的解 压速度可以与较高的I/O速度相关联。
[0024] 表 2
[0026]根据至少一个所述一个或多个特性,交换区域175 ( 1) - 175 (N)的优先级列表 (prioritized list)可以通过优先排序(prioritize)交换区域175(1)-175(N)来构建。可 以由逻辑110来构建优先级列表。作为说明性示例而不限制本发明申请揭露的范围,可以根 据交换区域175(1)-175(N)的1/0速度来优先排序交换区域175(1)-175(N)。在交换区域175 (1)-175(N)建立在不同介质上的情况下,可以根据每一交换区域175(1)-175(N)所建立在 的各自介质的1/0速度来优先排序交换区域175(1)-175(N)。在交换区域175(1)-175(N)都 建立在相同介质上的情况下,交换区域175(1)-175(N)可以根据交换区域的1/0速度来优先 排序,其可关联于每个交换区域175(1)-175(N)所配备的各自的压缩算法。作为说明性示例 而不限制本发明申请揭露的范围,交换区域175(1)-175(N)的优先级列表可以是按优先级 降序排序,其中那些关联最高/较高的1/0速度(一个或多个)的交换区域175(1)-175(N)可 处于列表上最高/较高优先级的位置(一个或多个),以及那些关联最低/较低的I/O速度(一 个或多个)的交换区域175(1)-175(N)可处于列表上最低/较低优先级的位置(一个或多 个)。在必要时,逻辑110可以重新访问和反复修改这个优先级列表。
[0027]方案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示出了动态阈值表的一个范例。
[0028]表 3
[0031]操作系统、内核和/或内存管理的功能120可以指示、提供或以其他方式使一个或 多个被换出的页面160可用以用于系统内存回收(reclaimation),例如,通过交换层150。交 换层150可接收来自逻辑110的动态阈值以选择交换区域175(1)-175(N)中的其中之一用于 需要交换的页面。逻辑110可以确定交换区域175(1)-175(N)的选择流程。例如,逻辑110可 基于动态阈值来判定需要交换的页面的优先级等级(priority level)(例如,高或低)。在 一个场景中,对应于如下描述的算法200,逻辑110可以选择具有较高1/0速度的其中一个交 换区域175(1)-175(N),如果可用的话,在逻辑110确定该页面的优先级等级为高优先级的 事件中作为该页面的交换区域。在另一种情况下,对应于如下描述的算法300,只要满足一 定的阈值条件(一个或多个),在这样具有最高1/0速度(一个或多个)的交换区域(一个或多 个)被用尽(e Xhausted)(不可用)之前,逻辑110可以先选择具有最高1/0速度(一个或多个) 的交换区域(一个或多个)而不管需要交换的页面的优先级等级。
[0032]图2示出了根据本发明申请的实施方案的示范性算法200。算法200可以包括由一 个或多个方块210、220、230、240、250、260、265、270、280、290和295表示的一个或多个操作、 动作、或功能。尽管以离散方块来说明,算法200的各种方块可以被划分成附加块、被组合成 更少的方块、或消除,这取决于所需的实现方式。各方块可以以图2所示的顺序或以任何其 它顺序来执行,这取决于所需的实现方式。算法200可在方案100中实现。算法可以在210和/ 或240开始。
[0033]在210,算法200可包括系统内存回收,其可由操作系统、内核或内存管理机制(例 如在方案100中的操作系统、内核和/或内存管理的功能120)执行、触发或以其他方式发起。 算法200可从210进行至220。
[0034]在220,算法200可包括扫描用于换出的页面,这可以通过方案100的交换层150来 执行。算法200可从220进行至230。
[0035]在230,算法200可包括触发或以其他方式发起交换区域的选择以用于需要交换 (例如,需要被换出)的每一页面,这可以通过方案100中的交换层150来执行。
[0036]在240,根据页面调度的内存管理方案,算法200可包括内核、本地层(一个或多个) 和/或框架操作。算法200可从240进行到250。
[0037]在250中,算法200可包括收集需要被换出的每个页面的一个或多个状态和信息指 标。例如,一个或多个指标可以从内核、本地层(一个或多个)和/或框架中收集。所收集的一 个或多个指标可以包含按照用户空间中的优先级定义的进程组、内核空间中的缓存大小 和/或空闲存储器、与交换区域相关的I/O拥塞状态、需要页面交换(例如,不管是否实时)的 进程的进程类、以及硬件使用的存储器大小(例如,与图形处理单元和/或多媒体处理单元 相关的存储器使用状态)。算法200可从250进行到260。
[0038]在260,算法200可包括动态阈值的计算,用于需要交换的页面。
[0039]在265,算法200可包括基于所述动态阈值来分配优先级等级(例如,高或低)给需 要交换的页面。算法200可从265进行至270。
[0040] 在270,算法200可包括判定需要交换的页面的优先级等级是高优先级或是低优先 级。在该页面的优先级等级被判定为高优先级的事件中,算法200可从270进行至280。否则, 在该页面的优先级等级被判定为低优先级的事件中,算法200可从270进行至290。
[0041] 在280,算法200可包括以从高优先级到低优先级的优先级降序顺序,从交换区域 的优先级列表中选择交换区域。也就是说,在选择低优先级等级的交换区域(一个或多个) 之前,先选择高优先级等级的交换区域(一个或多个),直到所有高优先级的交换区域用尽。 算法200可从280进行至295。
[0042]在290,算法200可包括以从低优先级到高优先级的优先级升序顺序,从交换区域 的优先级列表中选择交换区域。也就是说,在选择高优先级等级的交换区域(一个或多个) 之前,先选择低优先级等级的交换区域(一个或多个),直到所有低优先级的交换区域用尽。 算法200可从290进行至295。
[0043]在295,算法200可包括以所选择的交换区域执行页面交换。例如,算法200可使用 所选择的交换区域换出需要交换的页面。
[0044]图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开始。
[0045]在310,算法300可包括系统内存回收,其可由操作系统、内核或内存管理机制(例 如在方案100中的操作系统、内核和/或内存管理的功能120)执行、触发或以其他方式发起。 算法300可从310进行至320。
[0046]在320,算法300可包括扫描用于换出的页面,这可以通过方案100的交换层150来 执行。算法300可从320进行至330。
[0047]在330,算法300可包括触发或以其他方式发起交换区域的选择以用于需要交换 (例如,需要被换出)的每一页面,这可以通过方案100中的交换层150来执行。
[0048]在340,根据页面调度的内存管理方案,算法300可以包括内核、本地层(一个或多 个)和/或框架操作。算法300可从340进行到350。
[0049] 在350中,算法300可包括收集需要被换出的每个页面的一个或多个状态和信息指 标。例如,一个或多个指标可以从内核、本地层(一个或多个)和/或框架中收集。所收集的一 个或多个指标可以包含按照用户空间中的优先级定义的进程组、内核空间中的缓存大小 和/或空闲存储器、与交换区域相关的I/O拥塞状态、需要页面交换(例如,不管是否实时)的 进程的进程类、以及硬件使用的存储器大小(例如,与图形处理单元和/或多媒体处理单元 相关的存储器使用状态)。算法300可从350进行到360。
[0050] 在360,算法300可包括动态阈值的计算,用于需要交换的页面。
[0051]在365,算法300可包括基于所述动态阈值来分配优先级等级(例如,高或低)给需 要交换的页面。算法300可从365进行至370。
[0052]在370,算法300可包括判定是否满足一个或多个阈值条件。所述一个或多个阈值 条件可以包括,例如但不限于,可用缓存和/或空闲存储器的量是否高于预定位准、进程组 或进程优先级是否高于另一预定位准、或者上述条件的组合。在判定满足一个或多个阈值 条件的事件中,算法300可从370进行至372。否则,在判定一个或多个阈值条件都不满足的 事件中,算法300可从370进行至374。
[0053]在372,算法300可包括确定在交换区域的优先级列表中具有最高优先级等级的一 个或多个交换区域的可用性。在确定具有最高优先级等级的一个或多个交换区域是不可用 (例如,用尽)的事件中,算法300可从372进行到374。否则,在确定具有最高优先级等级的一 个或多个交换区域是可用(例如,没有用尽)的事件中,算法300可从372进行到376。
[0054]在374,算法300可包括判定需要交换的页面的优先级等级是高优先级或是低优先 级。在该页面的优先级等级被确定为高优先级等级的事件中,算法300可从374进行至380。 否则,在该页面的优先级等级被确定为低优先级等级的事件中,算法300可从374进行至 390 〇
[0055]在376,算法300可包括在可用的高优先级的交换区域中选择具有最高优先级等级 的交换区域。算法300可从376进行至395。
[0056]在380,算法300可包括以从高优先级到低优先级的优先级降序顺序,从交换区域 的优先级列表中选择交换区域。也就是说,在选择低优先级等级的交换区域(一个或多个) 之前,先选择高优先级等级的交换区域(一个或多个),直到所有高优先级的交换区域用尽。 算法300可从380进行至395。
[0057]在390,算法300可包括以从低优先级到高优先级的优先级升序顺序,从交换区域 的优先级列表中选择交换区域。也就是说,在选择高优先级等级的交换区域(一个或多个) 之前,先选择低优先级等级的交换区域(一个或多个),直到所有低优先级的交换区域用尽。 算法300可从390进行至395。
[0058]在395,算法300可包括以所选择的交换区域执行页面交换。例如,算法300可使用 所选择的交换区域换出需要交换的页面。
[0059] 示范性实施方式
[0060] 图4示出了根据本发明申请的实施方式的示范性装置400。在一些实施方式中,装 置400可以是电子装置。例如,装置400可以是计算装置、便携式装置或可穿戴装置。在一些 实施方式中,装置400可以是智能手机、平板电脑、手提电脑、笔记本电脑、台式计算机、可穿 戴计算装置、可穿戴通信装置等等。在一些实施方式中,装置400可以是单一的集成电路 (1C)芯片、芯片组或多个分立和独立的1C芯片。无论装置400实现为哪种形式,装置400可被 配置为实施如上所述的方案100、算法200和算法300。
[0061] 装置400可包括各种组件,包括图4所示的那些。为了避免使图形模糊并把重点放 在与本发明申请相关的组件和特征上,与本发明申请实施方式相关的装置400的组件示于 图4,而没有示出装置400的其它组件。参照图4,装置400可包括示范性平台430,其可包括通 信耦接彼此的处理器410和主存储器420。平台430可以被实现为单个1C芯片、芯片组或多个 分立和独立的1C芯片。主存储器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(0),其中0为大于或等于1的正整 数。介质440(1 )-440(Q)的每一者可以是,举例来说,RAM(例如,DRAM)、闪存、嵌入式多媒体 卡(embedded multimedia card,eMMC)、安全数字(secure digital,SD)存储卡、固态硬盘 或磁盘的类型。这些多个介质可以具有不同的1/0速度。例如,多个介质440(1)-440(Q)的至 少两个可具有不同的1/0速度。
[0062] 处理器410可以通过写入、读取、删除和修改存储在主存储器420中的数据来存取 存储在其中的数据。处理器410还可以执行操作系统412。操作系统412可以利用页面调度的 内存管理方案以及不仅从主存储器420还从相同大小页面的多个介质440(1)-440(Q)取回 数据。
[0063]装置400根据页面调度方案可包括异构交换空间用于内存管理。异构交换空间可 包括多个交换区域,例如,交换区域1、交换区域2、交换区域3、交换区域4、交换区域5、交换 区域6、交换区域7、交换区域8、交换区域9和交换区域10,如图4所示。在一些实施方式中,交 换区域1-10的至少两个可以建立在具有不同1/0速度的不同介质上。例如,在图4所示的范 例中,交换区域1可建立在介质440(1)上以及交换区域3可建立在440(2)上,并且介质440 (1)和介质440(2)的1/0速度可以有所不同。在一些实施方式中,所述多个交换区域的至少 一些可以建立在相同的介质上。例如,在图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或它们的任何变型。
[0064]处理器410还可以包括逻辑415,其可以以硬件、软件、中间件或固件、或者其任何 组合的形式来实现。即,逻辑415可实施在处理器410中或由处理器410执行。逻辑415可以是 逻辑110的示例性实现方式,或方案100的逻辑110和交换层150组合的示例性实现方式,并 且可以被配置为实现以上关于逻辑110所描述的技术。例如,逻辑415可在异构交换空间中 产生多个交换区域(例如,交换区域1-10)的一列表,根据交换区域的一个或多个特性来优 先排序多个交换区域以提供交换区域的优先级列表。多个交换区域的所述一个或多个特性 可以包括,举例来说但不限于,多个交换区域中每个交换区域各自的I/O速度,多个交换区 域中每个交换区域各自的寿命,以及多个交换区域中每个交换区域各自的成本/价格。例 如,优先级列表可按照优先级降序顺序,使得与较高I/O速度(一个或多个)相关的那些交换 区域可以被放置在优先级列表中较高的位置以及与较低I/O速度(一个或多个)相关的那些 交换区域可以被放置在优先级列表中较低的位置。逻辑415可以重新访问和反复修改此列 表。
[0065]对于需要交换的每一页面,逻辑415可以接收指示或以其他方式确定给定页面是 需要交换的。逻辑415可以获取或以其他方式收集与页面相关的一个或多个指标并基于所 述一个或多个指标来计算或以其他方式确定动态阈值。即,逻辑415可接收、获取或以其它 方式收集状态和/或信息的一个或多个指标,用于计算与需要被换出的每一页面相关的动 态阈值。例如,逻辑415可收集与需要交换的页面相关的一个或多个指标包括,举例来说但 不限于,按照用户空间中的优先级定义的进程组、内核空间中的缓存大小和/或空闲存储 器、与交换区域相关的I/O拥塞状态、需要页面交换(例如,不管是否实时)的进程的进程类、 以及硬件使用的存储器大小(例如,与图形处理单元和/或多媒体处理单元相关的存储器使 用状态)。逻辑415可基于所述动态阈值进一步判定需要交换的页面的优先级等级(例如,高 或低)。
[0066]在一些实施方式中,在执行算法200中,逻辑415可从交换区域列表中选择其中一 个交换区域用于交换页面以响应于该页面优先级等级的判定。例如,在判定页面的优先级 等级为低优先级的事件中,逻辑415可以以优先级升序顺序(例如,从低到高)从交换区域的 优先级列表中选择其中一个交换区域用于交换该页面。否则,在判定页面的优先级等级为 高优先级的事件中,逻辑415可以以优先级降序顺序(例如,从高到低)从交换区域的优先级 列表中选择其中一个交换区域用于交换该页面。
[0067]在一些实施方式中,在执行算法300中,逻辑415可判定是否满足一个或多个阈值 条件。在一些实施方式中,该判定动作可以先于逻辑415判定需要交换的页面的优先级等级 而完成。所述一个或多个阈值条件可以包括,举例来说但不限于,可用的缓存和/或空闲存 储器的量是否高于预定位准、进程组或进程优先级是否高于另一预定位准、或者上述条件 的组合。在判定所述一个或多个阈值条件是满足的事件中,逻辑415还可以确定在交换区域 的优先级列表中具有最高优先级等级的一个或多个交换区域的可用性。在判定所述一个或 多个阈值条件都没被满足的事件中,逻辑415可以进行到判定需要交换的页面的优先级等 级。接着在确定具有最高优先级等级的一个或多个交换区域是可用(例如,没有用尽)的事 件中,逻辑415可以选择在交换区域的优先级列表中具有最高优先级等级的一个或多个交 换区域中的至少一个,用于交换该页面。在确定具有最高优先级等级的一个或多个交换区 域是不可用(例如,用尽)的事件中,逻辑415可以进行到判定需要交换的页面的优先级等 级。
[0068]图5示出了根据本发明申请的实施方式的示范性流程500。算法500可以包括由一 个或多个方块510、520、530和540表示的一个或多个操作、动作、或功能。尽管以离散方块来 说明,流程500的各种方块可以被划分成附加块、被组合成更少的方块、或消除,这取决于所 需的实现方式。各方块可以以图5所示的顺序或以任何其它顺序来执行,这取决于所需的实 现方式。流程500可以由装置400及其任何变型来实施。为了说明的目的,通过装置400执行 来提供以下流程500的描述。示范性流程500可开始于510。
[0069] 在510,流程500可包括逻辑415在异构交换空间提供多个交换区域的列表。该多个 交换区域可包括在一个或多个特性上互不相同的至少两个交换区域。流程500可从510进行 到 520〇
[0070]在520,流程500可包括逻辑415计算与需要交换的页面相关的动态阈值。流程500 可从520进行到530。
[0071]在530,流程500可包括逻辑415基于所述动态阈值来判定需要交换的页面的优先 级等级。流程500可从530进行到540。
[0072]在540,流程500可包括逻辑415从交换区域的列表中选择其中一个交换区域用于 交换该页面,以响应于页面的优先级等级的判定。
[0073]在一些实施方式中,在提供多个交换区域的列表中,流程500可以包括逻辑415基 于多个交换区域的一个或多个特性来优先排序该多个交换区域。在一些实施方式中,多个 交换区域的一个或多个特性可以包括该多个交换区域中每一个交换区域各自的I/O速度、 寿命和/或成本。
[0074] 在一些实施方式中,异构交换空间中的多个交换区域可包括建立在不同介质上的 至少两个交换区域。在一些实施方式中,不同的介质可以包括具有不同I/O速度的至少两个 介质。
[0075] 在一些实施方式中,异构交换空间中的多个交换区域可以包括建立在相同介质上 的至少第一交换区域和第二交换区域。第一交换区域可与第一压缩算法相关,以及第二交 换区域可以与不同于第一压缩算法的第二压缩算法相关。
[0076] 在一些实施方式中,在计算与需要交换的页面相关的动态阈值中,流程500可以包 括逻辑415执行若干个操作。例如,流程500可包括逻辑415接收指示表明该页面是需要交换 的。流程500还可包括逻辑415获取与页面相关的一个或多个指标。流程500还可以包括逻辑 415基于所述一个或多个指标来计算动态阈值。在一些实施方式中,与页面相关的一个或多 个指标可以包括以下一个或多个:缓存状态,空闲存储器状态,I/O状态,与页面相关的进程 组,与页面相关的进程类,以及硬件内存状态。
[0077] 在一些实施方式中,在从交换区域的列表中选择其中一个交换区域用于交换该页 面中,流程500可包括逻辑415以优先级升序顺序来从交换区域的列表中选择其中一个交换 区域用于交换该页面,以响应于判定该页面的优先级等级为低优先级。备选地,在从交换区 域的列表中选择其中一个交换区域用于交换该页面中,流程500可包括逻辑415以优先级降 序顺序来从交换区域的列表中选择其中一个交换区域用于交换该页面,以响应于判定该页 面的优先级等级为高优先级。
[0078] 在一些实施方式中,流程500可以包括逻辑415执行额外的操作。例如,流程500可 包括逻辑415判定是否满足一个或多个阈值条件。在一些实施方式中,该判定可以在需要交 换的页面优先级等级的判定之前完成。流程500还可包括逻辑415判定在交换区域的优先级 列表中具有最高优先级等级的一个或多个交换区域的可用性,以响应于满足一个或多个阈 值条件的判定。流程500还可包括逻辑415选择交换区域的优先级列表中具有最高优先级等 级的一个或多个交换区域的至少其中之一,用于交换该页面以响应于具有最高优先级等级 的一个或多个交换区域是可用的判定。在一些实施方式中,流程500可以包括逻辑415执行 进一步的操作。例如,在一个或多个阈值条件都不满足的事件中,流程500可包括逻辑415进 行到判定需要交换的页面的优先级等级。流程500还可包括逻辑415进行到判定需要交换的 页面的优先级等级,以响应于具有最高优先级等级的一个或多个交换区域是不可用的判 定。
[0079]补充注释
[0080]本说明书中描述的主题有时举例说明包含在不同组件内的其它不同组件,或与不 同组件连接的其他不同组件。但应当理解,这样描绘的架构仅仅是范例,并且实际上可以实 现完成相同功能的许多其它架构。在概念意义上,实现相同功能的组件的任何布置被有效 地"关联",使得实现期望的功能。因此,这里组合以实现特定功能的任何两个组件可以被看 作是彼此"相关联",使得实现期望的功能,而不考虑架构或中间组件。同样地,能够如此关 联的任意两个组件也可以被视为彼此"可操作地连接",或"可操作地耦接",以实现所需功 能,并且能够如此关联的任何两个组件也可以被视为彼此"可操作地可耦接",以实现所需 的功能。可操作地可耦接的具体实例包括但不限于物理可配对及/或物理交互组件及/或无 线交互及/或无线交互组件及/或逻辑交互及/或逻辑交互组件。
[0081 ]此外,基本上关于使用的任何复数和/或单数术语,只要适合于上下文和/或应用, 本领域技术人员可以从复数转换为单数和/或从单数转换为复数。为清楚起见可在此处明 确规定各种单数/复数置换。
[0082]此外,本领域技术人员可以理解,通常这里所使用的术语,特别是在所附的权利要 求书中使用的术语,例如所附权利要求的主体,一般旨在作为"开放式"术语,例如术语"包 括"应被解释为"包括但不限于",术语"具有"应该被解释为"至少具有",术语"包含"应被解 释为"包含但不限于"等。本领域技术人员可以进一步理解,如果意指特定数量的所引入权 利要求要素,这样的意图将明确地记载在权利要求中,并且在缺少这样的陈述时不存在这 样的意图。例如,为了有助于理解,所附权利要求可包含引导性短语"至少一个"和"一个或 多个"的使用以引入权利要求要素。然而,使用这样的短语不应被解释为暗示由不定冠词 "一"或"一个"引入的权利要求要素限制含有这样引入权利要求要素的任何特定权利要求 只包含一个这样的要素,即使当相同的权利要求包含了引导性短语"一个或多个"或"至少 一个"和不定冠词例如"一"或"一个",例如"一"和/或"一个"应被解释为是指"至少一个"或 "一个或多个",这同样适用于用来引入权利要求要素的定冠词的使用。此外,即使明确记载 特定数量的所引入权利要求要素,本领域的技术人员将认识到,这样的陈述应被解释为意 指至少所列举的数值,例如没有其它修饰词的叙述"两个要素",是指至少两个要素或者两 个或更多要素。此外,在使用类似于"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"的可能性。 [0083]由上可知,可以理解的是,为了说明目的本文已经描述了本申请公开的各种实施 方式,并且可以做出各种修改而不脱离本发明申请的范围和精神。因此,本文所公开的各种 实施方式并不意味着是限制性的,真正的范围和精神由所附权利要求确定。
【主权项】
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所述的装置,其特征在于,所述处理器进一步被配置为执行多个操 作,包括: 在判定所述一个或多个阈值条件都没被满足的事件中,进行到判定需要交换的所述页 面的所述优先级等级;以及 响应于具有最高优先级等级的所述一个或多个交换区域是不可用的判定,进行到判定 需要交换的所述页面的所述优先级等级。
【文档编号】G06F12/00GK105917317SQ201580004433
【公开日】2016年8月31日
【申请日】2015年12月18日
【发明人】张锦文, 周宏霖, 尼可拉斯·秦辉·郑, 曾志轩, 陈民桦, 李中荣
【申请人】联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1