当前位置: 首页 > 专利查询>英特尔公司专利>正文

高性能单流LZ77压缩技术制造技术

技术编号:21041416 阅读:29 留言:0更新日期:2019-05-04 10:05
用于高性能单流数据压缩的技术包括基于输入数据流更新索引数据结构的计算设备。输入数据流被划分为多个块。每个块具有预定的长度,例如136个字节,并且与先前的块重叠预定的量,例如8个字节。计算设备使用索引数据并行处理多个块以生成多个令牌流。令牌包括文字令牌和引用令牌,所述引用令牌指的是输入数据流中较早的匹配数据。因此,计算设备并行地搜索匹配数据。计算设备合并令牌流以生成单个输出令牌流。计算设备可以合并来自两个不同块的一对令牌以生成输出到输出令牌流的一个或多个同步令牌。描述并要求保护其他实施例。

High Performance Single-stream LZ77 Compression Technology

【技术实现步骤摘要】
【国外来华专利技术】高性能单流LZ77压缩技术相关申请的交叉引用本申请要求2016年12月30日提交的题为“TECHNOLOGIESFORHIGH-PERFORMANCESINGLE-STREAMLZ77COMPRESSION”的美国技术专利申请序列号15/395,702的优先权,该申请要求2016年7月22日提交的美国临时专利申请No.62/365,969、2016年8月18日提交的美国临时专利申请No.62/376,859和2016年11月29日提交的美国临时专利申请No.62/427,268的优先权。
技术介绍
数据压缩是在许多计算应用中使用的重要计算机操作,包括服务器和客户端应用。例如,数据压缩可用于降低云计算应用的网络带宽要求和/或存储要求。许多常见的无损压缩格式基于LZ77压缩算法。使用基于LZ77的算法压缩的数据通常包括符号流(或“令牌”)。每个符号可以包括待复制到输出的文字数据或者重复已经解压缩的数据的引用。DEFLATE算法使用LZ77压缩结合哈夫曼编码来生成压缩输出。诸如DEFLATE的典型压缩算法可以通过执行附加计算来支持更高的压缩比(例如,级别9或L9比率)。附图说明这里描述的概念在附图中通过示例的方式示出,而不是作为限制。为了说明的简单和清楚,附图中示出的元件不一定按比例绘制。在认为合适的情况下,在附图中重复使用附图标记以指示相对应的或类似的元件。图1是根据各种实施例的其中可以实现这里描述的一种或多种技术的数据中心的概念性概述的图;图2是图1的数据中心的机架的逻辑配置的示例实施例的图;图3是根据各种实施例的其中可以实现本文描述的一种或多种技术的另一数据中心的示例实施例的图;图4是根据各种实施例的其中可以实现这里描述的一种或多种技术的数据中心的另一示例实施例的图;图5是表示可以在图1、图3和图4的数据中心的各种板(sled)之间建立的链路层连接的连接方案的图;图6是可以表示根据一些实施例的图1-图4中所描绘的机架中的任何特定一个机架的架构的机架架构的图;图7是可以与图6的机架架构一起使用的板的示例实施例的图;图8是用于针对具有扩展能力的板提供支撑的机架架构的示例实施例的图;图9是根据图8的机架架构实现的机架的示例实施例的图;图10是设计用于与图9的机架结合使用的板的示例实施例的图;图11是根据各种实施例的其中可以实现这里描述的一种或多种技术的数据中心的示例实施例的图;图12是用于高性能单流数据压缩的计算设备的至少一个实施例的简化框图;图13是图12的计算设备的环境的至少一个实施例的简化框图;图14是可由图12-13的计算设备执行的用于高性能单流数据压缩的方法的至少一个实施例的简化流程图;图15是说明可由图12-13的计算设备建立的输入数据块组织的示意图;图16是说明可由图12-13的计算装置建立的块指派的示意图;图17是用于搜索可由图12-13的计算设备执行的匹配子串的方法的至少一个实施例的简化流程图;图18是可以由图12-13的计算设备执行的用于合并输出令牌的方法的至少一个实施例的简化流程图;图19是示出可由图18的方法执行的令牌合并规则的示意图;以及图20是示出可以由图18的方法执行的令牌合并规则的表格图。具体实施方式虽然本公开的概念易于进行各种修改和替换形式,但是其具体实施例已经通过附图中的示例示出并且将在本文中详细描述。然而,应该理解的是,并不意图将本公开的概念限制于所公开的特定形式,而是相反,意图是覆盖与本公开和所附权利要求一致的所有修改、等同物和替代方案。说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可包括特定特征、结构或特性,但是每个实施例可以或可以不一定包括该特定特征、结构或特性。而且,这些短语不一定指的是同一实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合其他实施例实现这样的特征、结构或特性在本领域技术人员的知识范围内,无论是否明确描述。另外,应当意识到,以“至少一个A、B和C”的形式包括在列表中的项目可以表示(A);(B);(C);(A和B);(B和C);(A和C);或(A、B和C)。类似地,以“A、B或C中的至少一个”形式列出的项目可以表示(A);(B);(C);(A和B);(B和C);(A和C);或(A、B和C)。在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储的指令,所述指令可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以机器可读形式存储或传输信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质设备)。在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该意识到,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包含结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。图1示出了数据中心100的概念性概述,该数据中心100通常可以代表数据中心或其他类型的计算网络,其中可以根据各种实施例实现本文描述的一种或多种技术。如图1所示,数据中心100通常可以包含多个机架,每个机架可以容纳包括相应一组物理资源的计算设备。在图1中描绘的特定非限制性示例中,数据中心100包含四个机架102A至102D,其容纳计算设备,该计算设备包括相应的一组物理资源105A至105D。根据该示例,数据中心100的共同的一组物理资源106包括分布在机架102A至102D之间的各组物理资源105A至105D。物理资源106可以包括多种类型的资源,例如,处理器、协处理器、加速器、现场可编程门阵列(FPGA)、存储器和存储装置。实施例不限于这些示例。说明性数据中心100在许多方面不同于典型的数据中心。例如,在说明性实施例中,其上放置诸如CPU、存储器和其他部件之类的部件的电路板子(“板”)被设计用于提高热性能。特别地,在说明性实施例中,板(sled)比典型的板子(board)浅。换句话说,板从前到后较短,冷却风扇位于其中。这减少了空气必须穿过板上组件的路径的长度。此外,板上的组件与典型的电路板相比间隔得更远,并且这些组件被设置成减少或消除阴影(即,一个组件在另一组件的空气流动路径中)。在说明性实施例中,诸如处理器之类的处理组件位于板的顶侧,而诸如双列直插式存储器模块(DIMM)之类的附近存储器位于板的底侧。由于该设计提供的增强的气流,组件可以以比典型系统更高的频率和功率水平来操作,从而提高性能。此外,板被配置为与每个机架102A、102B、102C、102D中的电源和数据通信电缆盲匹配,增强了它们被快速移除、升级、重新安装和/或更换的能力。类似地,位于板上的各个组件(例如处理器、加速器、存储器和数据存储驱动器)被配置为由于它们彼此间隔增加而容易升级。在说明性实施例中,组件还包括硬件证明特征以证明其真实性。此外,在说明性实施例中,数据中心100利用支持包括以太网和Omni-Path在内的多个其他网络架构的单个网络架构(本文档来自技高网...

【技术保护点】
1.一种用于数据压缩的计算设备,所述计算设备包括:更新器电路,其用于基于输入数据流来更新索引数据结构,其中,所述索引数据结构包括与所述输入数据流中的偏移相关联的索引数据,并且其中,所述输入数据流被划分为多个块,其中,每个块具有第一长度;多个搜索切片电路,其中,相应的搜索切片电路用于处理所述输入数据流的多个块的不相交子集以生成相对应的令牌流,其中,相应的搜索切片电路使用所述索引数据来处理所述多个块的不相交子集;以及合并器电路,其用于合并所述多个令牌流以生成输出令牌流。

【技术特征摘要】
【国外来华专利技术】2016.07.22 US 62/365,969;2016.08.18 US 62/376,859;1.一种用于数据压缩的计算设备,所述计算设备包括:更新器电路,其用于基于输入数据流来更新索引数据结构,其中,所述索引数据结构包括与所述输入数据流中的偏移相关联的索引数据,并且其中,所述输入数据流被划分为多个块,其中,每个块具有第一长度;多个搜索切片电路,其中,相应的搜索切片电路用于处理所述输入数据流的多个块的不相交子集以生成相对应的令牌流,其中,相应的搜索切片电路使用所述索引数据来处理所述多个块的不相交子集;以及合并器电路,其用于合并所述多个令牌流以生成输出令牌流。2.根据权利要求1所述的计算设备,其中,所述第一长度包括128个字节。3.根据权利要求1所述的计算设备,其中,每个块与先前块重叠第二长度,并且其中,所述第一长度包括136个字节,而所述第二长度包括8个字节。4.根据权利要求1所述的计算设备,其中:所述更新器电路还用于将索引数据从所述索引数据结构提供到多个切片存储器,其中,每个切片存储器与相应的搜索切片电路相对应;以及使用所述索引数据来处理所述多个块的不相交子集以生成所述相对应的令牌流包括所述相应的搜索切片电路访问包括了与所述多个块的不相交子集相关联的索引数据的相对应的切片存储器。5.根据权利要求1所述的计算设备,还包括:编码器电路,其用于对所述输出令牌流进行编码以生成压缩的输出块。6.根据权利要求1所述的计算设备,其中,所述多个块被条带化为所述多个不相交子集,并且其中,不相交子集的每个块与先前块分开所述第一长度乘以比所述令牌流的数量少一。7.根据权利要求1-6中任一项所述的计算设备,其中,合并所述多个令牌流以生成所述输出令牌流包括所述合并器电路用于:从所述多个令牌流中读取先前令牌和下一令牌,其中,所述先前令牌和所述下一令牌相对于所述输入数据流是连续的;确定所述先前令牌和所述下一令牌是否源自同一令牌流;响应于确定所述先前令牌和所述下一令牌源自同一令牌流,将所述先前令牌输出到所述输出令牌流;响应于输出所述先前令牌,将所述下一令牌复制到所述先前令牌;响应于复制所述下一令牌,从所述多个令牌流中读取所述下一令牌;以及响应于确定所述先前令牌和所述下一令牌不是源自同一令牌流,而合并所述先前令牌和所述下一令牌以生成一个或多个同步令牌。8.根据权利要求7所述的计算设备,其中,合并所述先前令牌和所述下一令牌包括所述合并器电路用于:确定所述下一令牌的结束偏移是否大于或等于所述先前令牌的结束偏移;响应于确定所述下一令牌的结束偏移不大于或等于所述先前令牌的结束偏移,从所述多个令牌流中读取下一令牌;以及响应于确定所述下一令牌的结束偏移大于或等于所述先前令牌的结束偏移,合并所述先前令牌和所述下一令牌。9.根据权利要求8所述的计算设备,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于:确定所述下一令牌的结束偏移是否等于所述先前令牌的结束偏移;以及响应于确定所述下一令牌的结束偏移等于所述先前令牌的结束偏移,丢弃所述下一令牌。10.根据权利要求8所述的计算设备,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于:确定所述下一令牌的开始偏移是否小于所述先前令牌的开始偏移;响应于确定所述下一令牌的开始偏移小于所述先前令牌的开始偏移,丢弃所述先前令牌;以及响应于确定所述下一令牌的开始偏移小于所述先前令牌的开始偏移,截断所述下一令牌以在所述先前令牌的开始偏移处开始。11.根据权利要求8所述的计算设备,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于:确定所述下一令牌的开始偏移是否等于所述先前令牌的开始偏移;以及响应于确定所述下一令牌的开始偏移等于所述先前令牌的开始偏移,丢弃所述先前令牌。12.根据权利要求8所述的计算设备,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于:确定所述下一令牌的开始偏移是否大于所述先前令牌的开始偏移;响应于确定所述下一令牌的开始偏移大于所述先前令牌的开始偏移,确定在所述下一令牌的开始偏移与所述先前令牌的开始偏移之间的第一差值是否大于预定的阈值偏移;响应于确定所述下一令牌的开始偏移大于所述先前令牌的开始偏移,确定在所述下一令牌的结束偏移...

【专利技术属性】
技术研发人员:V·戈帕尔J·D·吉尔福德D·F·卡特K·S·叶
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1