用于压缩和紧凑虚拟存储器的方法和装置的制造方法_4

文档序号:9308576阅读:来源:国知局
包括与压缩存储单元相关联的时间戳或其他元数据,以指示何时对压缩存储单元进行访问、创建、压缩、换入或使用等。
[0063]在一个实施例中,过程200的处理逻辑可诸如经由LRU策略换出最不可能针对工作集而使用或请求的压缩存储单元。过程200的处理逻辑可以基于关联的使用性能启发式地确定在不久的将来要访问压缩存储单元的可能性。在一个实施例中,可以在压缩存储部分中按照顺序线性地存储压缩存储单元。该顺序可以对应于与压缩存储单元相关联的使用性能(例如访问时间戳)。
[0064]压缩存储部分可以包括一个或多个存储段。每个存储段可以对应于压缩存储单元中的一个或多个压缩存储单元的阵列。过程200的处理逻辑可以在特定存储段内移动或滑动一个或多个压缩存储单元,用于执行紧凑化操作,以允许在特定存储段内的连续存储空间中存储多个压缩存储单兀。
[0065]在一个实施例中,每个存储段可以具有存储容量和/或使用率。使用率可以指示有多少存储容量已用于存储压缩存储单元的对应阵列。过程200的处理逻辑可以执行紧凑化操作,以跨存储段移动压缩存储单元中的一个或多个压缩存储单元,以提高存储段中的至少一个存储段的使用率。例如,60%充满的存储段可以在紧凑化操作之后变成99%充满。
[0066]图3是示出了为虚拟存储器交换压缩存储器页的过程的一个实施例的流程图。例如,过程300可通过图1的系统100的一些部件来执行。在方框301,过程300的处理逻辑可以基于存储器设备提供虚拟存储器。过程300的处理逻辑可以将存储器设备动态划分为未压缩存储部分(或层)以及压缩存储部分(或层)。由耦接到存储器设备的一个或多个处理器用于执行数据处理任务的存储空间的工作集可以存储于未压缩存储部分中。
[0067]在方框303,过程300的处理逻辑可以将未压缩存储部分的一个或多个存储页面压缩到压缩存储部分中的一个或多个不同大小的压缩存储单元中。压缩可以增加未压缩存储部分中的可用存储空间。
[0068]在方框305,例如,响应于由对特定的压缩存储单元中的数据的访问请求导致的页面错误,过程300的处理逻辑可以将压缩存储单元中的特定的一个从压缩存储部分解压缩到未压缩存储部分。
[0069]在方框307,过程300的处理逻辑可将至少一个大小变化的压缩存储单元从压缩存储部分换出至海量存储设备,以增大未压缩存储部分中的可用存储空间,例如,以适应对未压缩存储部分中工作集的额外分配要求。
[0070]图4是示出了为虚拟存储器交换压缩存储器的紧凑化段的过程的一个实施例的流程图。例如,过程400可通过图1的系统100的一些部件来执行。在方框401,过程400的处理逻辑可以将存储器设备的未压缩部分的一个或多个存储页面压缩到存储器设备的压缩部分中一个或多个不同大小的压缩存储单元中。存储器设备可以与海量存储设备耦接。
[0071]在方框403,过程400的处理逻辑可以对不同大小的压缩存储单元进行紧凑化,成为存储器设备的压缩部分中的段或其他适用的日志结构数据。
[0072]响应于接收到对压缩存储单元中的一个压缩存储单元中的压缩数据的访问请求,在方框405,过程400的处理逻辑可以将一个或多个压缩存储单元例如从压缩部分中的段解压缩到存储器设备的未压缩部分。
[0073]在方框407,过程400的处理逻辑可以将压缩存储单元的段换出至海量存储设备,以增大存储器设备中的可用存储空间。
[0074]图5示出了数据处理系统诸如计算机系统的一个实例,该数据处理系统可与本发明的一个实施例一起使用。例如,图1的系统I可被实现为图5中所示系统的一部分。需注意,虽然图5示出了计算机系统的各种部件,但它并不旨在表示使这些部件互连的任何特定构造或方式,因此这些细节与本发明并无密切关系。还应理解,具有较少部件或可能较多部件的网络计算机以及其他数据处理系统也可用于本发明。
[0075]如图5所示,数据处理系统形式的计算机系统500包括耦接到R0M(只读存储器)507和易失性RAM 509和非易失性存储器511和一个或多个微处理器505的总线503。微处理器505可从存储器507,509,511检索指令并执行所述指令以执行上述操作。总线503与这些各种部件互连在一起,并且将这些部件505、507、509和511互连至显示控制器和显示设备513,以及互连至诸如输入/输出(I/O)设备的外围设备,该输入/输出(I/O)设备可以是鼠标、键盘、调制解调器、网络接口、打印机和本领域熟知的其他设备。通常,输入/输出设备515通过输入/输出控制器517耦接到系统。易失性RAM(随机存取存储器)509通常被实现为动态RAM(DRAM),其需要连续供电以刷新或维持存储器中的数据。
[0076]海量存储装置511通常为磁性硬盘驱动器或磁性光驱或光驱或DVD RAM或闪存存储器,或者即使在系统断电后也保持数据(例如大量数据)的其他类型的存储器系统。通常,海量存储装置511也可以是随机存取存储器,虽然这并非必需。虽然图5显示,海量存储装置511是直接耦接到数据处理系统中的其余部件的本地设备,但应当理解,本发明可利用远离系统的非易失性存储器诸如网络存储设备,其通过网络接口诸如调制解调器或以太网接口或无线网络接口耦接到数据处理系统。总线503可包括一条或多条总线,其通过本领域熟知的各种桥接器、控制器和/或适配器相互连接。
[0077]上述内容的部分可使用逻辑电路诸如专用逻辑电路实现,或使用微控制器或执行程序代码指令的处理核心的其他形式实现。因此,可使用程序代码诸如机器可执行指令来执行上述论述所提出的过程,使得执行这些指令的机器执行某些功能。在该上下文中,“机器”可为将中间形式(或“抽象”)指令转换为处理器特定指令(例如,诸如“虚拟机”(例如Java虚拟机)、解译器、公共语言运行时、高级语言虚拟机等的抽象执行环境)的机器,和/或设置在半导体芯片(例如,使用晶体管实现的“逻辑电路”)上的电子电路,其设计用于执行诸如通用处理器和/或专用处理器的指令。上述论述所提出的过程也可以通过(作为机器的替代或与机器结合)电子电路执行,该电子电路设计用于执行过程(或其一部分)而不执行程序代码。
[0078]制造制品可用于存储程序代码。存储程序代码的制造制品可体现为但不限于一个或多个存储器(例如,一个或多个闪存存储器、随机存取存储器(静态、动态或其他))、光盘、CD-ROM、DVD ROM、EPROM, EEPR0M、磁卡或光卡、或适用于存储电子指令的其他类型的机器可读介质。也可借助于包含在传播介质(例如通过通信链路(例如网络连接))中的数据信号将程序代码从远程计算机(例如服务器)下载到请求计算机(例如客户端)。
[0079]已按照对计算机存储器中的数据位进行操作的算法和符号表示来呈现前面的详细描述。这些算法描述和表示是数据处理领域技术人员所用的工具,以最有效地将其工作实质传达给该领域其他技术人员。算法在这里一般是指导致所希望结果的操作的自相一致的序列。操作是那些需要对物理量进行物理操纵的操作。通常,尽管不是必需的,但这些量采用能够被存储、传输、组合、比较以及换句话讲操纵的电信号或磁信号的形式。已被证明的是,其在主要出于通用原因而将这些信号指代为位、值、元素、符号、字符、项、数字等时是方便的。
[0080]然而,应当牢记的是,所有这些以及类似的术语都与适当的物理量相关联,并且只是应用于这些量的方便标签。除非另外特别说明,否则从上述论述中显而易见的是,可以理解,在整个说明书中,利用诸如“处理”或“计算”或“运算”或“确定”或“显示”等术语的论述是指计算机系统或类似的电子计算设备的动作和过程,其对计算机系统寄存器和存储器中表示为物理(电子)量的数据进行操作,并将其转换成在计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备中相似地表示为物理量的其他数据中。
[0081]本发明还涉及一种用于执行本文所述操作的装置。该装置可专门构造用于所需的目的,或者其可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储介质中,诸如但不限于任何类型的盘(包括软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、RAM、EPR0M、EEPR0M、磁卡或光卡、或适合用于存储电子指令的任何类型的介质,并且每个均耦接到计算机系统总线。
[0082]本文中所呈现的过程和显示并不固有地与任何特定计算机或其他装置相关。各种通用系统可以根据本文的教导内容与程序一起使用,或者可以证明其便于构造用于执行所述操作的更专用的装置。根据下文的描述,用于各种这些系统的所需结构将是显而易见的。此外,本发明未参照任何特定的编程语言进行描述。应当理解,多种编程语言可用于实现如本文所述的本发明的教导内容。
[0083]前述论述仅描述了本发明的一些示例性实施例。本领域的技术人员将易于从此类论述、附图和权利要求书中认识到,可在不脱离本发明的实质和范围的情况下进行各种修改。
【主权项】
1.一种其中存储有指令的机器可读非暂态存储介质,所述指令在被计算机执行时使得所述计算机执行一种方
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1