用于消除计算机存储器中的副本和值冗余的系统、方法和设备技术方案

技术编号:29956115 阅读:15 留言:0更新日期:2021-09-08 08:57
计算机存储器压缩方法涉及关于副本存储器对象的出现以及独特存储器对象中数据值的值冗余来分析(1210)计算机存储器内容。通过消除副本存储器对象和经由利用每个其余独特存储器对象的数据值的数据值局部性对每个其余独特存储器对象压缩,来对计算机存储器内容进行编码(1220)。提供(1230)代表所编码的计算机存储器内容的存储器对象的元数据(500)。元数据反映了被消除的副本存储器对象、其余独特存储器对象以及用于压缩每个其余独特存储器对象的压缩类型。使用元数据(500)在所编码的计算机存储器内容中定位(1240)存储器对象。算机存储器内容中定位(1240)存储器对象。算机存储器内容中定位(1240)存储器对象。

【技术实现步骤摘要】
【国外来华专利技术】用于消除计算机存储器中的副本和值冗余的系统、方法和设备


[0001]该主题总体上涉及电子计算机中的存储器中的数据压缩的领域。

技术介绍

[0002]数据压缩是一种通用技术,用以通过相较于不频繁的数据集合更有效地对频繁的数据集合进行编码,来较有效地存储和传输数据。由于一些原因,一般较有效地存储和传输数据是令人感兴趣的。在计算机存储器例如保留处理设备操作的数据和计算机指令的存储器中,例如在主存储器或缓存存储器中,更有效地例如K倍地存储所述数据是令人感兴趣的,因为它然后可以使所述存储器的大小潜在地减少K倍,使用潜在地减少K倍的通信容量在一个存储器与另一存储器之间传输数据,并使计算机系统内部或之间和/或存储器之间存储和传输所述数据的能量消耗潜在地减少K倍。可替代地,与没有数据压缩相比,人们可以在可用的计算机存储器中存储潜在地增加K倍的数据。这对于在不必增加更多的存储器的情况下实现计算机潜在地高K倍的性能——其可能是昂贵的或者由于资源限制可能只是不太理想——是令人感兴趣的。作为另一示例,智能手机、平板电脑、膝上/台式机或机顶盒的大小和重量可能受到限制,因为较大或较重的智能手机、平板电脑、膝上/台式机或机顶盒对终端用户的价值较低;因此潜在地降低了此类产品的市场价值。然而,较多的存储器容量或较高的存储器通信带宽可以潜在地增加产品的市场价值,因为较多的存储器容量或存储器通信带宽可以产生较高的性能,从而提高产品的效用。
[0003]总而言之,在包括孤立设备或互连设备的计算机化产品的总体格局中,数据压缩可以潜在地提高性能,降低能量消耗,增加存储器通信带宽或降低存储器所耗用的成本和面积。因此,数据压缩在除了这里提到的计算机化产品之外的广泛范围的计算机化产品中具有广泛的效用。
[0004]现有技术中的压缩存储器系统通常在存储器页面被创建时通过从磁盘读取它或通过存储器分配对它进行压缩。可以使用各种众所周知的方法通过软件例程或通过硬件加速器来完成压缩。当处理器从存储器请求数据时,数据通常必须首先被解压缩,然后再为请求的处理器服务。由于这样的请求可能在关键的存储器访问路径上结束,因此解压缩通常是硬件加速的,以对存储器访问时间施加较小的影响。
[0005]在一种称为去重(deduplication,删除重复、去副本、重复数据删除)的压缩方法中,其理念是识别相同的存储器对象。例如,让我们假设存储器包含相同页面的五个相同实例。那么,只需要保存其中的一个,而其余四个可以引用该唯一实例;因此,提供了五倍的压缩比。现有技术中已知的去重已被应用于一系列粒度的固定大小对象,诸如大小通常为约几千字节到几十千字节(KB)甚至更多的存储器页面,以及大小通常为几十字节例如64字节(64B)的存储器块。其他现有技术考虑了可变颗粒大小,诸如可变大小的存储文件。在任何情况下,去重的限制是,它仅建立在移除相同存储器对象出现的副本(duplication,重复)上。
[0006]在移除相同对象时,被移除的对象必须对与它相同的唯一对象建立引用。就指针而言,引用要指向存储器对象的唯一拷贝,并且这会耗用存储器空间。因此,去重会造成大量的压缩元数据开销。例如,让我们假设去重应用于1Terabyte=2
40
字节的存储器中的64B(=26字节)的存储器块。那么,需要(40

6=)34比特的引用指针来指向被去重的存储器块的独特拷贝。
[0007]现有技术中已知的可替代性压缩方法利用了值冗余(就单字而言,例如32或64比特)。例如,比另一个存储器对象更常见的存储器对象将使用比不那么常见的存储器对象更少的比特来进行编码。作为示例,基于熵的压缩技术在现有技术中比比皆是,包括例如霍夫曼编码和算术编码。其他的压缩技术包括基值

增量即时(Base

Delta

Immediate)压缩,它利用了存储在数据对象例如存储器页面和存储器块中的数值在数值上相互接近,并对它们之间的差异进行密集编码。
[0008]重要地,移除副本的去重以及利用移除值冗余的值局部性的压缩技术,诸如基于熵的压缩和基值

增量即时压缩,在许多方面是互补的。考虑到例如基于页面的去重,其中存储了相同页面的单个拷贝,而从拷贝中提供引用指针来引用独特拷贝。然而,这样的去重方案并没有利用存在于更细粒度的值冗余,例如在存在于页面内的字层级(例如32或64比特实体)上的值冗余。通过将去重与减少值冗余的压缩方案相结合,可以消除副本,并通过对独特拷贝内的每个数据值基于其统计值性质进行编码,将其余独特拷贝存储得更密集。本文件意在公开一项专利技术,该专利技术提供了应用于计算机存储器的压缩技术系列的设备、系统和方法,以消除副本以及值冗余。
[0009]将去重与基于值局部性的压缩相结合,带来了许多技术挑战。第一挑战是如何找到一种编码,该编码通过移除副本以及使用基于值局部性的方法压缩其余独特拷贝中的项目,来提供在可压缩性方面的组合收益。使用去重和基于值局部性的压缩的组合方法,在压缩存储器中有效地定位存储器块,这将带来挑战,即保持较低的元数据量,并允许压缩和解压缩设备以施加较低的存储器延迟开销。因此,第二挑战是提出可以保持较低元数据量并施加较低存储器延迟开销的压缩和解压缩方法、设备和系统。在操作中,数据对象将响应于处理器写而改变。这就使得重复块和独特块的性质将发生变化;既涉及副本的数量,也涉及其余独特拷贝的值局部性的统计性质。第三挑战是提供可以根据这种动态效应来保持高压缩性的方法、设备和系统。所公开的专利技术意在应对所有这些和其他挑战。

技术实现思路

[0010]本专利技术的第一方面是一种计算机存储器压缩方法。该方法包括关于副本存储器对象的出现以及独特存储器对象中数据值的值冗余来分析计算机存储器内容。该方法还包括通过消除所述副本存储器对象和经由利用每个其余独特存储器对象的数据值的数据值局部性对每个其余独特存储器对象进行压缩,来对所述计算机存储器内容进行编码。该方法还包括提供代表所编码的计算机存储器内容的存储器对象的元数据。元数据反映了被消除的副本存储器对象、其余独特存储器对象以及用于压缩每个其余独特存储器对象的压缩类型。该方法还包括使用所述元数据在所编码的计算机存储器内容中定位存储器对象。
[0011]本专利技术的第二方面是一种计算机存储器压缩设备。该设备包括分析器单元,其被配置为关于副本存储器对象的出现以及独特存储器对象中数据值的值冗余来分析计算机
存储器内容。该设备还包括编码器单元,其被配置为通过消除所述副本存储器对象和经由利用每个其余独特存储器对象的数据值的数据值局部性对每个其余独特存储器对象进行压缩,来对所述计算机存储器内容进行编码。编码器单元还被配置为提供代表所编码的计算机存储器内容的存储器对象的元数据。元数据反映了被消除的副本存储器对象、其余独特存储器对象以及用于压缩每个其余独特存储器对象的压缩类型。该设备还包括定位器单元,其被配置为使用所述元数据在所编码的计算机存储器内容中定位存储器对象。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种计算机存储器压缩方法(1200),包括:关于副本存储器对象的出现以及独特存储器对象中数据值的值冗余,分析(1210)计算机存储器内容;通过消除所述副本存储器对象和经由利用每个其余独特存储器对象的数据值的数据值局部性对每个其余独特存储器对象进行压缩,来对所述计算机存储器内容进行编码(1220);提供(1230)代表所编码的计算机存储器内容的存储器对象的元数据(500),其中,所述元数据(500)反映了被消除的副本存储器对象、其余独特存储器对象以及用于压缩每个其余独特存储器对象的压缩类型;以及使用所述元数据(500)在所编码的计算机存储器内容中定位(1240)存储器对象。2.根据权利要求1所述的方法,其中,对于所编码的计算机存储器内容的每个存储器对象,所述元数据(500)包括:信息(510),其表明所述存储器对象是被消除的副本存储器对象或其余独特存储器对象;当所述存储器对象是独特存储器对象时,表明所使用的压缩类型的信息(520)和对所述独特存储器对象的独特存储器对象引用(530、U_PTR);以及当所述存储器对象是副本存储器对象时,对独特存储器对象的独特存储器对象引用(530、U_PTR),其非压缩内容与所述副本存储器对象相同。3.根据权利要求2所述的方法,其中,对于作为独特存储器对象的每个存储器对象,所述元数据(500)还包括对被消除的副本存储器对象的副本存储器对象引用(540、D_PTR),其非压缩内容与所述独特存储器对象相同。4.根据权利要求3所述的方法,还包括通过以下方式处理(600)所述计算机存储器内容中的每个单独的存储器对象:创建签名(S),所述签名是所述存储器对象的数据值的密集表示;遍历树数据结构(400),以将所创建的签名(S)与所述树数据结构(400)中已代表的签名进行比较;如果所创建的签名(S)与所述树数据结构(400)中代表的签名中的任何签名不匹配(660):在所述树数据结构(400)中插入节点;在所插入的节点中输入所创建的签名(S);以及为所述单独的存储器对象生成所述元数据(500),所述元数据具有:表明它是独特存储器对象的信息(510);以及对所述单独的存储器对象的所述独特存储器对象引用(530、U_PTR);以及如果所创建的签名(S)与所述树数据结构(400)中代表的签名相匹配(650):为所述单独的存储器对象生成所述元数据(500),所述元数据具有:表明它是副本存储器对象的信息(510);以及对由所述树数据结构(400)中的匹配签名所代表的独特存储器块的所述独特存储器对象引用(530、U_PTR);以及更新由所述树数据结构(400)中的匹配签名所代表的独特存储器块的所述元数据(500),以引入对所述单独的存储器对象的副本存储器对象引用(540、D_PTR)。
5.根据权利要求4所述的方法,还包括,当所创建的签名(S)与所述树数据结构(400)中代表的签名相匹配(650)时:确定所述单独的存储器对象是否与所述匹配签名所代表的所述独特存储器块相同;以及如果所述单独的存储器对象和所述匹配签名所代表的所述独特存储器块不相同:在所述树数据结构(400)中插入节点;在所插入的节点中输入所创建的签名(S);以及为所述单独的存储器对象生成所述元数据(500),所述元数据具有:表明它是独特存储器对象的信息(510);以及对所述单独的存储器对象的所述独特存储器对象引用(530、U_PTR)。6.根据权利要求4或5所述的方法,还包括,当所述计算机存储器内容中的所有存储器对象都已被处理(600)时:遍历所述树数据结构(400),以为所述树数据结构(400)的节点所代表的独特存储器对象的数据值生成值频率表;以及通过基于熵的压缩方案,使用所生成的值频率表来压缩每个独特存储器对象。7.根据权利要求4或5所述的方法,还包括,当所述计算机存储器内容中的所有存储器对象都已被处理(600)时:通过检查由所述树数据结构(400)的节点所代表的独特存储器对象的数据值来遍历所述树数据结构(400),以及确定一个或更多个基值;以及通过基于增量编码的压缩方案,使用所确定的一个或更多个基值来压缩每个独特存储器对象。8.根据任何前一权利要求所述的方法,其中,所述数据值的粒度比所述存储器对象的粒度细,以及所述存储器对象的粒度比所述计算机存储器内容的粒度细。9.根据权利要求8所述的方法,其中,所述计算机存储器内容是计算机存储器的页面,所述存储器对象是存储器块,以及每个存储器块包括多个数据值。10.根据在从属于权利要求2时的权利要求9所述的方法,还包括:接收对具有物理存储器页面地址(PA)的存储器页面中的存储器块的读请求;从查找表(1010)中确定压缩存储器页面地址(CA);检索所述存储器块的元数据(1020);根据所述压缩存储器页面地址(CA)和检索到的元数据的所述独特存储器对象引用(530、U_PTR),来计算压缩存储器块地址(1040);在计算出的压缩存储器块地址(1040)处检索压缩存储器块(1105);以及使用来自存储器块的检索到的元数据的表明压缩类型的信息(520;1120、ENC),来对检索出的压缩存储器块(1105)进行解压缩(1110)。11.根据在从属于权利要求3时的权利要求9或10所述的方法,还包括:接收涉及原始存储器位置处的独特存储器块(830)的更新的回写请求;在更新前将所述独特存储器块(830)复制到所述计算机存储器内容的专用空闲存储器区域(840)中的新存储器位置(870);更新链接到所述独特存储器块(830)的副本存储器块(810、820)的元数据,从而使其副
本存储器对象引用(540、D_PTR)被重新定向到所述专用空闲存储器区域(840)中的新存储器位置(870);以及根据所述回写请求,更新在其原始存储器位置(830)处的所述独特存储器块。12.根据权利要求11所述的方法,还包括:提供包括对所述专用空闲存储器区域(840)的起始地址(805)的引用(F_PTR)的元数据;以及在将所述独特存储器块(830)复制到所述专用空闲存储器区域(840)中的所述新存储器位置(870)之后,更新所述引用(F_PTR)以反映新起始地址(880)。13.根据权利要求4并根据权利要求9或10中任一项所述的方法,还包括:接收涉及原始存储器位置处的独特存储器块(830)的更新的回写请求;发现被去重的存储器块(820)是所述独特存储器块(830)的副本;通过使用所述独特存储器块(830)的签名(S),将所发现的被去重的存储器块(820)提升为所述树数据结构(400)中的独特;根据所述回写请求,将所述独特存储器块(830)的更新内容写到专用空闲存储器区域(840)中的新存储器位置(870);以及更新所述独特存储器块(830)的元数据,从而使其独特存储器对象引用(530、U_PTR)被重新定向到所述专用空闲存储器区域(840)中的所述新存储器位置(870),而其任何副本存储器对象引用(540、D_PTR)被移除。14.根据权利要求13所述的方法,还包括:提供包括对所述专用空闲存储器区域(840)的起始地址(805)的引用(F_PTR)的元数据;以及在根据所述回写请求将所述独特存储器块(830)的更新内容写到所述专用空闲存储器区域(840)中的所述新存储器位置(870)之后,更新所述引用(F_PTR)以反映新的起始地址(880)。15.根据权利要求9至14中任一项所述的方法,还包括:接收涉及副本存储器块(920)的更新的回写请求;将更新的副本存储器块的内容作为新的独特存储器块(980)存储在专用空闲存储器区域(940)中;以及更新先前链接到所述副本存储器块(920)的独特存储器块(910)的元数据,以反映所述独特存储器块(910)不再链接到所述副本存储器块(920),同时维持所述独特存储器块(910)和其他副本存储器块(930)之间的任何链接。16.根据权利要求11至15中任一项所述的方法,还包括:监测存储器页面的随时间变化的压缩比;以及如果压缩比不满足给定的标准,则通过执行根据权利要求1至10中任一项所述的方法的功能,来对所述存储器页面执行重新压缩。17.根据权利要求15至16中任一项所述的方法,还包括:通过执行根据权利要求1至10中任一项所述的方法的功能,周期性地执行对存储器页面的重新压缩,以提高压缩比。18.根据任何前一权利要求所述的方法,其中,通过利用数据值局部性进行的所述压缩
涉及以下之一:基于熵的编码;增量编码;基于字典的编码;以及基于模式的编码。19.一种计算机存储器压缩设备(205),包括:分析器单元(214),其被配置为关于副本存储器对象的出现以及独特存储器对象中的数据值的值冗余来分析计算机存储器内容;编码器单元(212),其被配置为通过消除所述副本存储器对象和经由利用每个其余独特存储器对象的数据值的数据值局部性对每个其余独特存储器对象进行压缩,来对所述计算机存储器内容进行编码,所述编码器单元(212)还被配置为提供代表所编码的计算机存储器内...

【专利技术属性】
技术研发人员:安耶洛斯
申请(专利权)人:零点科技公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1