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

文档序号:9308576阅读:368来源:国知局
用于压缩和紧凑虚拟存储器的方法和装置的制造方法
【技术领域】
[0001]本发明整体涉及存储器系统。更具体地,本发明涉及用于虚拟存储器系统的压缩和/或紧凑存储器。
【背景技术】
[0002]人们已经开发出虚拟化技术以为大小超过存储器设备实际物理容量的存储空间增强存储器管理。通常,存储器虚拟化可基于利用耦接到存储器设备的存储设备的存储器交换。由于存储器对象和/或10(输入/输出)大小不是确定性的,因此可能要在存储设备和存储器设备之间换入/换出不同大小或页数的未压缩存储器。因此,用于为交换存储器传输所存储的存储器数据的1吞吐量和/或延迟可能会不利地影响虚拟存储器系统的性能。
[0003]此外,某些存储设备,诸如基于旋转的硬盘的性能可能对存储器访问的数据局域性具有很强依赖性以减少冗长的磁盘旋转。然而,在运行时期间数据局域性可能得不到保证,因为用于存储器访问的群集特性在不同的数据处理任务中有所不同。因此,通过在存储器设备和存储设备之间的页入/页出进行存储器交换以支持一般的数据处理任务可能会进一步降低存储器系统的可察觉性能。
[0004]尽管采用越来越大大小的实际物理存储器的趋势往往会降低设备间存储器交换的性能成本,但是可以提供数据处理系统中的特定特征增强而没有存储大小的变化。例如,可以基于基本相同量的存储大小在现有设备上实现对更高屏幕分辨率的支持。然而,仅仅高两倍的屏幕分辨率就可能对应于窗口缓冲区大小的四倍增加。因此,如果不对物理存储大小的增加进行补偿,用于实现更高屏幕分辨率的系统性能可能会劣化并明显地变慢。
[0005]因此,虚拟存储器系统的传统具体实施不能支持有限的物理存储大小所约束的性能要求。

【发明内容】

[0006]存储器设备中动态维护的压缩存储器池能够基于与海量存储设备耦接的存储器设备为虚拟存储器提供额外支持层。可以将虚拟存储器地址分页或映射到存储器设备的未压缩部分、压缩的存储器池和/或存储设备。压缩的存储器池可以在存储器设备内扩大和缩小而对虚拟存储器没有大小限制。
[0007]在一个实施例中,可以将存储页面(例如未压缩存储器的面积单元)压缩到压缩存储器中的压缩存储单元(或压缩页面)中。可以将多个压缩存储单元紧凑化到一起作为压缩存储器中固定大小的段。可以设定段的大小以在存储器设备和海量存储设备之间进行有效数据传输,用于换入/换出压缩存储单元的段,以支持虚拟存储器分页器。
[0008]在另一个实施例中,存储器设备可以包括用于虚拟存储器的压缩存储的动态更新部分。存储器设备可以包括与压缩存储部分分开的未压缩存储部分。虚拟存储器能够将存储器地址映射到压缩存储部分。可以将未压缩存储部分中分配的存储区域压缩到压缩存储部分中。因此,存储区域可变为可用于存储器设备中所请求的将来分配(例如在压缩之后)。可以更新压缩存储部分以存储所压缩的存储区域。响应于对访问所压缩的存储区域中的数据的请求,可以将所压缩的存储区域解压缩回存储器设备中的未压缩部分。
[0009]在另一个实施例中,提供了一种基于存储器设备的虚拟存储器。可以将存储器设备动态划分为未压缩存储部分和压缩存储部分,诸如DRAM (易失性存储器)。未压缩存储部分可以存储经由耦接到存储器设备的处理器处理的工作数据。可以将未压缩存储部分的一个或多个页面压缩到压缩存储部分中一个或多个不同大小的压缩存储单元中。压缩可以增加未压缩存储部分中的可用存储空间。例如,响应于针对对压缩存储单元中的一个压缩存储单元中的数据的访问请求的页面错误,可以将压缩存储单元从压缩存储部分解压缩回未压缩存储部分。可将不同大小的压缩存储单元中的至少一个压缩存储单元从压缩存储部分换出至海量存储设备,以增大未压缩存储部分中的可用存储空间。
[0010]在另一个实施例中,可以将存储器设备的未压缩部分的一个或多个存储页面压缩到存储器设备的压缩部分中的一个或多个不同大小的压缩存储单元中。可以将海量存储设备(诸如磁性硬盘驱动器(HDD)或复合存储设备,从文件系统的角度看被作为一个逻辑卷对待,包括HDD和闪存存储器)与存储器设备耦接。可以将不同大小的压缩存储单元紧凑化到存储器设备的压缩部分中的段中。响应于对压缩存储单元中的一个压缩存储单元的访问请求,可以将一个压缩存储单元从压缩部分解压缩到存储器设备的未压缩部分。可以将压缩存储单元的该段换出至海量存储设备以增大存储器设备中的可用存储空间。
[0011]通过附图及以下【具体实施方式】,本发明的其他特征将显而易见。
【附图说明】
[0012]本发明以举例的方式进行说明,而不限于各个附图的图形,在附图中类似的附图标号表示类似的元件,并且其中:
[0013]图1是示出了基于压缩和/或紧凑存储器的虚拟存储器系统的一个实施例的框图;
[0014]图2是示出了为虚拟存储器压缩和解压缩存储器的一个实施例的流程图;
[0015]图3是示出了为虚拟存储器交换压缩存储器页的过程的一个实施例的流程图;
[0016]图4是示出了为虚拟存储器交换压缩存储器的紧凑段的过程的一个实施例的流程图;
[0017]图5示出了数据处理系统诸如计算机系统的一个实例,该数据处理系统可与本文所述的实施例一起使用。
【具体实施方式】
[0018]本文描述了用于压缩和紧凑虚拟存储器的方法与装置。以下说明中示出了许多具体细节,以提供对本发明实施例的全面解释。然而,对于本领域的技术人员显而易见的是,本发明的实施例可在不具有这些具体细节的情况下实施。在其他情况下,未详细示出已熟知的部件、结构和技术,以免影响对此说明的理解。
[0019]本说明书中提到的“一个实施例”或“实施例”是指,结合实施例所描述的特定特征、结构或特性可包括在本发明的至少一个实施例中。在本说明书中的各个位置出现的短语“在一个实施例中”不一定都是指同一个实施例。
[0020]下图中示出的过程通过处理逻辑执行,处理逻辑包括硬件(例如电路、专用逻辑等)、软件(诸如在通用计算机系统或专用机器上运行的软件)、或它们两者的组合。虽然下文根据某些顺序操作来描述过程,但应当理解,所描述的操作中的一些可以不同的顺序来执行。此外,一些操作也可以并行地而并非按顺序执行。
[0021]在一个实施例中,可以利用基于日志的数据结构(或日志结构)动态管理存储器设备中的压缩池(或压缩存储单元的池)。可以通过充填和/或压缩的方式在压缩池中放入数据以缩小存储数据所需的存储空间。例如,可以在自包含压缩存储器管理系统中自动确定何时在压缩池和海量存储设备(或非易失性存储设备)之间交换存储的数据,以使虚拟存储器系统或其他适用存储器使用模块与下层的压缩池隔离。
[0022]例如,可以压缩存储器数据以减小交换文件的大小,提高存储器设备和交换设备诸如海量存储设备之间的数据传输效率。此外,可以基于有效存储器压缩方案将存储器数据压缩到压缩池中,使得压缩/解压缩成本(例如几微秒内)显著低于(例如几个数量级)与交换设备之间的常规磁盘交换速度。在需要时,压缩池可以在存储器设备内增大大小,以减少与交换设备之间所需的交换操作。
[0023]例如,只要有足够的存储空间(例如少量的存储页面)来执行存储器压缩/解压缩操作以向压缩池中移入/从压缩池移出数据,压缩池就可以增大,并与可用物理存储器以相同的大小工作。可以在压缩池增大/缩小时,保持工作集匹配不同大小的未压缩存储部分。如果工作集(例如为一组用于处理器数据操作的实况任务分配的存储器)溢出到压缩池(或压缩存储部分)中,可以从压缩部分拉出(例如基于某个预先确定的速率)存储页面,以在压缩存储部分和未压缩存储部分(或层)之间进行替代,以支持工作集。可以检测对要分配的额外存储空间的请求或要求以指示现有的工作集已经溢出。可以通过LRU(最近最少使用)排序策略扩展工作集以选择将哪些存储页面压缩到压缩池中。
[0024]在一个实施例中,可以在运行时间期间动态选择多个压缩/解压缩方案或机制。每种方案都可以基于一个或多个压缩/解压缩算法。可以基于存储器的创建者(例如,发起或请求分配的应用或过程)提供的提示或启示做出选择,或者可以通过观察要针对特定数据模式压缩的存储器的每个页面来确定选择。在一个实施例中,可以将压缩/解压缩方案中的一者指定为适用于大部分已分配存储器(例如,没有由对应存储器创建者提供的任何提示)的默认的一种。如果模式匹配机制在起作用且没有得到匹配,这种方案也会被用作默认的一种。可能受益于(例如看到更有效的压缩)专用压缩/解压缩方案的一种候选方式是为图形操作(例如通过GPU)使用而创建的存储器。
[0025]在一些实施例中,可以在压缩池中执行紧凑化操作以在压缩的存储段中保持日志结构。例如,可以在一个压缩存储段(例如用于辅助紧凑化)内和/或跨多个压缩存储段(例如用于主要紧凑化)将压缩数据单元充填在一起。可以在从压缩存储器去除压缩数据或向压缩存储器中存储压缩数据时,应请求和/或自动发起紧凑化操作。日志结构可允许对存储器设备内和/或耦接的存储设备之间的压缩池进行有效的输入/输出操作(例如读/写操作)。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1