买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】高性能单流LZ77压缩技术_英特尔公司_201780038664.9 

申请/专利权人:英特尔公司

申请日:2017-06-20

公开(公告)日:2024-02-27

公开(公告)号:CN109716659B

主分类号:H03M7/30

分类号:H03M7/30;H03M7/40

优先权:["20160722 US 62/365,969","20160818 US 62/376,859","20161129 US 62/427,268","20161230 US 15/395,702"]

专利状态码:有效-授权

法律状态:2024.02.27#授权;2019.08.16#实质审查的生效;2019.05.03#公开

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

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

全文数据:高性能单流LZ77压缩技术相关申请的交叉引用本申请要求2016年12月30日提交的题为“TECHNOLOGIESFORHIGH-PERFORMANCESINGLE-STREAMLZ77COMPRESSION”的美国实用新型专利申请序列号15395,702的优先权,该申请要求2016年7月22日提交的美国临时专利申请No.62365,969、2016年8月18日提交的美国临时专利申请No.62376,859和2016年11月29日提交的美国临时专利申请No.62427,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在内的多个其他网络架构的单个网络架构“结构”。在说明性实施例中,板经由光纤耦合到交换机,光纤提供比典型的双绞线布线例如,类别5、类别5e、类别6等更高的带宽和更低的延迟。由于高带宽、低延迟互连和网络架构,数据中心100可以在使用中使物理地分解的资源池化,所述资源例如存储器、加速器例如,图形加速器、FPGA、专用集成电路ASIC等以及数据存储驱动器,并根据需要将它们提供给计算资源例如,处理器,使计算资源能够访问池化资源,就好像它们是本地的一样。说明性数据中心100另外接收针对各种资源的利用信息,基于过去的资源利用来预测不同类型的工作负载的资源利用,并基于该信息动态地重新分配资源。数据中心100的机架102A、102B、102C、102D可以包括便于各种类型的维护任务的自动化的物理设计特征。例如,数据中心100可以使用设计为机器人访问,并且接受和容纳可机器人操纵的资源板的机架来实现。此外,在说明性实施例中,机架102A、102B、102C、102D包括集成电源,所述集成电源接收比针对电源的典型电压更大的电压。增加的电压使电源能够向每个板上的组件提供额外的电力,使组件能够以高于典型频率的频率运行。图2示出了数据中心100的机架202的示例性逻辑配置。如图2所示,机架202通常可以容纳多个板,每个板可以包括相应的一组物理资源。在图2中描绘的特定非限制性示例中,机架202容纳包括相应的一组物理资源205-1至205-4的板204-1至204-4,每组物理资源构成包括在机架202中的集合的一组物理资源206的一部分。关于图1,如果机架202代表例如机架102A,则物理资源206可以相对应的于机架102A中包括的物理资源105A。在该示例的上下文中,物理资源105A因此可以由相应的一组物理资源组成,所述物理资源包括包含在机架202的板204-1至204-4中的物理存储资源205-1、物理加速器资源205-2、物理存储器资源205-3和物理计算资源205-5。实施例不限于该示例。每个板可以包含各种类型的物理资源例如,计算、存储器、加速器、存储装置中的每一个的池。通过具有包括分解的资源的机器人可访问和机器人可操纵的板,每种类型的资源能够彼此独立地并且以其自己的优化刷新率升级。图3示出了数据中心300的示例,该数据中心300通常可以表示可以根据各种实施例实现本文描述的一种或多种技术的数据中心。在图3中描绘的特定非限制性示例中,数据中心300包括机架302-1至302-32。在各种实施例中,数据中心300的机架可以以限定和或容纳各种访问路径的方式布置。例如,如图3所示,数据中心300的机架可以以限定和或容纳访问路径311A、311B、311C和311D的方式布置。在一些实施例中,这种访问路径的存在通常使得自动维护设备例如机器人维护设备能够物理地访问容纳在数据中心300的各种机架中的计算设备并执行自动维护任务例如,替换故障的板、升级板。在各种实施例中,可以选择访问路径311A、311B、311C和311D的尺寸、机架302-1至302-32的尺寸和或数据中心300的物理布局的一个或多个其他方面以促进这种自动化操作。实施例不限于此上下文。图4示出了数据中心400的示例,该数据中心400通常可以代表可以根据各种实施例实现本文描述的一种或多种技术的数据中心。如图4所示,数据中心400可以以光学结构412为特征。光学结构412通常可以包括光信令介质例如光学电缆和光学交换基础设施的组合,数据中心400中的任何特定板可以经由它们向数据中心400中的每个其他板发送信号并且从其接收。光学结构412提供给任何给定板的信令连接可以包括到同一机架中的其他板和其他机架中的板的连接。在图4中描绘的特定非限制性示例中,数据中心400包括四个机架402A至402D。机架402A至402D容纳相应的一对板404A-1和404A-2、404B-1和404B-2、440C-1和404C-2以及404D-1和404D-2。因此,在该示例中,数据中心400包括总共八个板。经由光学结构412,每个这样的板可以具有与数据中心400中的七个其他板中的每一个的信令连接。例如,经由光学结构412,机架402A中的板404A-1可以具有与机架402A中的板404A-2,以及分布在数据中心400的其他机架402B、402C和402D之间的六个其他板404B-1、404B-2、440C-1、440C-2、440D-1和404D-2的信令连接。实施例不限于该示例。图5示出了连接方案500的概述,该连接方案500通常可以表示在一些实施例中可以在数据中心的各种板例如,图1、图3和图4的示例数据中心100、300和400中的任何一个之间建立的链路层连接。可以使用以双模光交换基础设施514为特征的光学结构来实现连接方案500。双模光交换基础设施514通常可以包括能够经由相同的统一的一组光信令介质根据多个链路层协议接收通信,并适当地切换这种通信的交换基础设施。在各种实施例中,可以使用一个或多个双模光交换机515来实现双模光交换基础设施514。在各种实施例中,双模光交换机515通常可以包括高基数交换机。在一些实施例中,双模光交换机515可以包括多层交换机,例如四层交换机。在各种实施例中,双模光交换机515可以以集成硅光子为特征,与传统交换机设备相比,硅光子使双模光交换机能够以显著减少的延迟切换通信。在一些实施例中,双模光交换机515可以构成叶脊架构中的叶片交换机530,叶脊架构另外包括一个或多个双模光脊交换机520。在各种实施例中,双模光交换机能够经由光学结构的光信令介质接收承载因特网协议IP分组的以太网协议通信和根据第二高性能计算HPC链路层协议例如,英特尔的Omni-Path架构的,Infiniband的通信。如图5所反映的,对于具有到光学结构的光信令连接的任何特定的一对板504A和504B,连接方案500因此可以经由以太网链路和HPC链路提供对链路层连接的支持。因此,单个高带宽、低延迟交换结构可以支持以太网和HPC通信。实施例不限于该示例。图6示出了机架架构600的总体概述,该机架架构600可以代表根据一些实施例的图1至图4中所描绘的机架中的任何特定一个的架构。如图6所反应的,机架架构600通常可以以多个板空间为特征,板可以插入其中,每个板空间可以经由机架访问区域601进行机器人可访问。在图6所描绘的特定非限制性示例中,机架架构600以五个板空间603-1至603-5为特征。板空间603-1至603-5以相应的多功能连接器模块MPCM616-1至616-5为特征。图7示出了可以代表这种类型的板的板704的示例。如图7所示,板704可以包括一组物理资源705,以及MPCM716,其被设计成当板704插入板空间例如图6中的板空间603-1至603-5中的任何时与配对MPCM耦合。板704还可以以扩展连接器717为特征。扩展连接器717通常可以包括插座、插槽或其他类型的连接元件,其能够接受一种或多种类型的扩展模块,例如扩展板718。通过与扩展板718上的配对连接器耦合,扩展连接器717可以为物理资源705提供对驻留在扩展板718上的补充计算资源705B的访问。实施例不限于此上下文。图8示出了可以表示如下的机架架构的机架架构800的示例,该机架架构可以被实现以便为以扩展能力为特征的板例如,图7的板704提供支持。在图8中描绘的特定非限制性示例中,机架架构800包括七个板空间803-1至803-7,其以相应的MPCM816-1至816-7为特征。板空间803-1至803-7包括相应的主区域803-1A至803-7A和相应的扩展区域803-1B至803-7B。关于每个这样的板空间,当相对应的MPCM与插入的板的配对MPCM耦合时,主区域通常可以构成物理地容纳插入的板的板空间的区域。在插入的板配置有这种模块的情况下,扩展区域通常可以构成可以物理地容纳扩展模块的板空间的区域,例如图7的扩展板718。图9示出了机架902的示例,其可以代表根据一些实施例的根据图8的机架架构800实现的机架。在图9中描绘的特定非限制性示例中,机架902以七个板空间903-1至903-7为特征,其包括相应的主区域903-1A至903-7A和相应的扩展区域903-1B至903-7B。在各种实施例中,可以使用空气冷却系统来实现机架902中的温度控制。例如,如图9中所反映的那样,机架902可以以多个风扇919为特征,风扇919通常被布置为在各种板空间903-1至903-7内提供空气冷却。在一些实施例中,板空间的高度大于传统的“1U”服务器高度。在这样的实施例中,与传统机架配置中使用的风扇相比,风扇919通常可包括相对慢的大直径冷却风扇。相对于以较高速度运行的较小直径的冷却风扇而言,以较低速度运行的较大直径的冷却风扇可以延长风扇寿命,同时仍能提供相同的冷却量。板比传统的机架尺寸物理上更浅。此外,每个板上都布置了组件以减少热阴影即,没有沿气流方向串联布置。因此,更宽、更浅的板允许设备性能的提高,因为由于改进的冷却,设备可以在更高的热封套例如,250W下操作即,没有热阴影,设备之间的空间更大,更大的散热器空间等。MPCM916-1至916-7可以被配置为向插入的板提供对源自相应的电源模块920-1至920-7的电源的访问,每个电源模块可以从外部电源921汲取电力。在一些实施例中,外部电源921可以向机架902输送交流AC电力,并且电力模块920-1至920-7可以被配置为将这种AC电力转换为直流DC电力以供源于插入的板。在一些实施例中,例如,功率模块920-1至920-7可以被配置为将277伏AC电力转换为12伏DC电力,以经由相应的MPCM916-1至916-7提供给插入的板。实施例不限于该示例。MPCM916-1至916-7还可以被布置为向插入的板提供到双模光交换基础设施914的光信令连接,双模光交换基础设施914可以与图5的双模光交换基础设施514相同或相似。在各种实施例中,包含在MPCM916-1至916-7中的光学连接器可以被设计成与插入的板的MPCM中包含的配对光学连接器耦合,以向这种板提供经由各长度的光缆922-1至922-7与双模光学交换基础设施914的光信令连接。在一些实施例中,每个这样长度的光缆可以从其相对应的MPCM延伸到在机架902的板空间外部的光学互连织机923。在各种实施例中,光学互连织机923可以布置成穿过支撑柱或支架902的其他类型的承载元件。实施例不限于此上下文。由于插入的板经由MPCM连接到光交换基础设施,因此可以节省通常耗费于手动配置机架布线以容纳新插入的板的资源。图10示出了板1004的示例,其可以代表根据一些实施例的设计用于与图9的机架902结合使用的板。板1004可以以MPCM1016为特征,MPCM1016包括光学连接器1016A和电源连接器1016B,并且被设计成与将MPCM1016插入到板空间中相结合而与板空间的配对MPCM耦合。将MPCM1016与这样的配对MPCM耦合可以使电源连接器1016与配对MPCM中包括的电源连接器耦合。这通常使得板1004的物理资源1005能够经由电源连接器1016和电力传输介质1024从外部源获取电力,电力传输介质1024将电力连接器1016导电地耦合到物理资源1005。板1004还可以包括双模光网络接口电路1026。双模光网络接口电路1026通常可以包括能够根据图9的双模光学交换基础设施914支持的多个链路层协议中的每一个通过光信令介质进行通信的电路。在一些实施例中,双模光网络接口电路1026能够进行以太网协议通信和根据第二高性能协议的通信。在各种实施例中,双模光网络接口电路1026可以包括一个或多个光收发器模块1027,每个光收发器模块1027能够在一个或多个光信道中的每一个上发送和接收光信号。实施例不限于此上下文。将MPCM1016与给定机架中的板空间的配对MPCM耦合可以使光学连接器1016A与配对MPCM中包括的光学连接器耦合。这通常可以经由一组光学信道1025中的每一个在板的光缆与双模光网络接口电路1026之间建立光学连接。双模光网络接口电路1026可以经由电信令介质1028与板1004的物理资源1005进行通信。除了板的尺寸和板上的用于提供改进的冷却并且能够在相对较高的热封套例如,250W下操作的组件的布置之外,如上面参考图9所述,在一些实施例中,板还可包括一个或多个附加特征以便于空气冷却,例如布置成耗散由物理资源1005生成的热量的热管和或散热器。值得注意的是,尽管图10中所描绘的示例性板1004没有以扩展连接器为特征,但是根据一些实施例以板1004的设计元件为特征的任何给定板也可以以扩展连接器为特征。实施例不限于此上下文。图11示出了数据中心1100的示例,该数据中心1100通常可以表示可以根据各种实施例的实现本文描述的一种或多种技术的数据中心。如图11所反映的,可以实现物理基础设施管理框架1150A以便于管理数据中心1100的物理基础设施1100A。在各种实施例中,物理基础设施管理框架1150A的一个功能可以是管理数据中心1100内的自动维护功能,例如使用机器人维护设备来为物理基础设施1100A内的计算设备提供服务。在一些实施例中,物理基础设施1100A可以以先进的遥测系统为特征,该遥测系统执行遥测报告,该遥测报告足够鲁棒以支持物理基础设施1100A的远程自动化管理。在各种实施例中,由这种先进的遥测系统提供的遥测信息可以支持诸如故障预测预防能力和容量规划能力之类的特征。在一些实施例中,物理基础设施管理框架1150A还可以被配置为使用硬件证明技术来管理物理基础设施组件的认证。例如,机器人可以在安装之前通过分析从与要安装的每个组件相关联的射频识别RFID标签收集的信息来验证组件的真实性。实施例不限于此上下文。如图11所示,数据中心1100的物理基础设施1100A可以包括光学结构1112,其可以包括双模光交换基础设施1114。光学结构1112和双模光交换基础设施1114可以分别与图4的光学结构412和图5的双模光交换基础设施514相同或相似,并且可以在数据中心1100的板之间提供高带宽、低延迟、多协议连接。如上所述,参考图1,在各种实施例中,这种连接的可用性可以使得对诸如加速器、存储器和存储装置之类的资源分解和动态地池化成为可能。在一些实施例中,例如,一个或多个池化的加速器板1130可以包括在数据中心1100的物理基础设施1100A中,每个物理基础设施1100A可以包括加速器资源的池,所述加速器资源诸如例如协处理器和或FPGA,它们经由光学结构1112和双模光交换基础设施1114可以用于对其他板的全局访问。在另一个示例中,在各种实施例中,一个或多个池化的存储板1132可以包括在数据中心1100的物理基础设施1100A中,每个物理基础设施1100A可以包括可经由光学结构1112和双模光学交换基础设施1114对其他板进行全局访问的存储资源的池。在一些实施例中,这种池化的存储板1132可以包括固态存储设备例如,固态驱动器SSD的池。在各种实施例中,一个或多个高性能处理板1134可以包括在数据中心1100的物理基础设施110A中。在一些实施例中,高性能处理板1134可以包括高性能处理器以及增强空气冷却从而产生高达250W或更高的热封套的冷却特征的池。在各种实施例中,任何给定的高性能处理板1134可以以扩展连接器1117为特征,该扩展连接器1117可以接受远存储器扩展板,使得该高性能处理板1134本地可用的远存储器从处理器和包含在板上的附近存储器分解。在一些实施例中,这样的高性能处理板1134可以使用包括低延迟SSD存储的扩展板而被配置有远存储器。光学基础设施允许一个板上的计算资源利用远程加速器FPGA、存储器和或SSD资源,这些资源在位于同一机架或数据中心任何其他机架上的板上分解。远程资源可以位于上面参考图5描述的脊-叶网络架构中的一个交换机跳跃或两个交换机跳跃上。实施例不限于此上下文。在各种实施例中,可以将一个或多个抽象层应用于物理基础设施1100A的物理资源,以便定义虚拟基础设施,例如软件定义的基础设施1100B。在一些实施例中,可以分配软件定义的基础设施1100B的虚拟计算资源1136以支持对云服务1140的供应。在各种实施例中,可以将特定的一组虚拟计算资源1136分组以便以SDI服务1138的形式供应给云服务1140。云服务1140的示例可以包括但不限于软件即服务SaaS服务1142、平台即服务PaaS服务1144以及基础设施即服务IaaS服务1146。在一些实施例中,可以使用虚拟基础设施管理框架1150B来进行软件定义的基础设施1100B的管理。在各种实施例中,虚拟基础设施管理框架1150B可以被设计为结合管理虚拟计算资源1136和或SDI服务1138向云服务1140的指派来实现工作负载指纹技术和或机器学习技术。在一些实施例中,虚拟基础设施管理框架1150B可以结合执行这样的资源指派来使用咨询遥测数据。在各种实施例中,可以实现应用服务管理框架1150C以便针对云服务1140提供服务质量QoS管理能力。实施例不限于此上下文。现在参考图12,用于高性能单流数据压缩的说明性计算设备1200包括处理器1220、输入输出IO子系统1222、存储器1224和数据存储设备1226。计算设备1200可以是体现为服务器计算机、机架服务器、刀片服务器、计算节点和或数据中心中的板,例如如上结合图2所述的板204、如上结合图11所述的物理基础设施1100A的板、或数据中心的另一板。在使用中,如下所述,计算设备1200将输入数据流划分为相对小的、重叠块。例如,每个块可以是136个字节长并且与先前的块重叠8个字节。计算设备1200并行地针对每个块在输入数据流中搜索匹配数据,并生成相对应的LZ77令牌流。计算设备1200将与每个块相关联的令牌流合并为单个输出令牌流。计算设备1200对令牌流进行编码以生成输出数据块。通过并行执行针对匹配数据的搜索,计算设备1200可以极大地改善匹配性能。此外,如下所述,计算设备1200即使对于小块尺寸也保留压缩比,因为针对匹配的搜索可以使用大的历史并且因为匹配可以在块边界上延伸。因此,相比于传统L9压缩器,计算设备1200可以以高压缩比执行数据压缩,同时具有低延迟和高单流性能。特别地,计算设备1200能够执行具有适合于高带宽网络连接例如,25Gb秒网络的性能的单流压缩。另外,计算设备1200可以使用比使用大粒度并行性的压缩方法更小的缓冲器和或具有更低延迟的高性能压缩。例如,大粒度并行性可能需要将大文件分成独立处理的多个部分,因此可能需要不适合高单流性能的相对较大的数据缓冲器和或大延迟。相反,因为计算设备1200以细粒度块例如,大约128字节操作,所以计算设备1200可以针对非常小的数据缓冲器提供高单流性能。处理器1220可以体现为能够执行本文描述的功能的任何类型的处理器。例如,处理器1220可以体现为单核或多核处理器、数字信号处理器、微控制器或其他处理器或处理控制电路。类似地,存储器1224可以体现为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器1224可以存储在计算设备1200的操作期间使用的各种数据和软件,例如操作系统、应用、程序、库和驱动程序。存储器1224经由IO子系统1222通信地耦合到处理器1220,该IO子系统1222可以体现为促进与处理器1220、存储器1224和计算设备的其他部件的输入输出操作的电路和或部件。例如,IO子系统1222可以体现为或以其他方式包括存储器控制器集线器、输入输出控制集线器、传感器集线器、固件设备、通信链路即,点对点链路、总线链路、电线、电缆、光导、印刷电路板迹线等和或促进输入输出操作的其他部件和子系统。在一些实施例中,IO子系统1222可以形成片上系统SoC的一部分,并且与处理器1220、存储器1224以及计算设备1200的其他部件一起被合并在单个集成电路芯片上。数据存储设备1226可以体现为被配置用于数据的短期或长期存储的任何类型的设备,例如,存储器设备和电路、存储卡、硬盘驱动器、固态驱动器、非易失性闪存或其他数据存储设备。计算设备1200还可以包括通信子系统1228,其可以体现为能够通过计算机网络未示出实现在计算设备1200与其他远程设备之间的通信的任何通信电路、设备或其集合。通信子系统1228可以被配置为使用任何一种或多种通信技术例如,有线或无线通信和相关联的协议例如,以太网、WiMAX、3G、4GLTE等实现这种通信。计算设备1200还可以包括一个或多个外围设备1230。外围设备1230可以包括任何数量的附加输入输出设备、接口设备、硬件加速器和或其他外围设备。例如,在一些实施例中,外围设备1230可以包括触摸屏、图形电路、图形处理单元GPU和或处理器图形、音频设备、麦克风、相机、键盘、鼠标、网络接口和或其他输入输出设备、接口设备和或外围设备。现在参考图13,在说明性实施例中,计算设备1200在操作期间建立环境1300。说明性环境1300包括更新器1302、多个搜索切片slice1304、合并器1308和编码器1310。环境1300的各种部件可以体现为硬件、固件、软件或其组合。这样,在一些实施例中,环境1300的部件中的一个或多个可以体现为电子设备的电路或集合例如,更新器电路1302、搜索切片电路1304、合并器电路1308和或编码器电路1310。应当意识到,在这样的实施例中,更新器电路1302、搜索切片电路1304、合并器电路1308和或编码器电路1310中的一个或多个可以形成处理器1220、IO子系统1222、通信子系统1228和或计算设备1200的其他部件的一部分。另外,在一些实施例中,说明性部件中的一个或多个可以形成另一部件的一部分和或说明性部件中的一个或多个可以相互独立。更新器1302被配置为基于输入数据流来更新索引数据结构。索引数据结构包括与输入数据流中的偏移相关联的索引数据。输入数据流被划分为多个块。每个块具有预定的长度并且可以与先前的块重叠预定的量的数据。搜索切片1304中的每个被配置为使用索引数据处理输入数据流的块的不相交子集以生成相对应的令牌流。例如,通过将每个连续的块指派给不同的搜索切片1304,可以将块条带化到搜索切片1304。因此,尽管块可以包括重叠数据,但是每个块仅由一个搜索切片1304处理。每个搜索切片1304可以使用存储在相对应的切片存储器1306中的索引数据处理块。更新器1302还可以被配置为将索引数据从索引数据结构提供给切片存储器1306。索引数据可以包括例如用于与指派给所述搜索切片1304的块相对应的输入数据的散列表条目。通过包括多个搜索切片1304,计算设备1200可以同时或以其他方式并行地处理多个块。另外,虽然示出为包括两个搜索片1304a、1304b,但应理解,在一些实施例中,计算设备1200可以包括另外的搜索切片1304a、1304b例如,16个切片1304。合并器1308被配置为合并由搜索切片1304生成的令牌流以生成单个输出令牌流。合并令牌流可以包括从令牌流读取一对连续令牌,并确定该对令牌是否源自相同令牌流即,来自相同搜索切片1304。如果是,则可以将令牌输出到输出令牌流。如果令牌源自不同的令牌流即,令牌中的一个是由搜索切片1304针对特定块输出的最后一个令牌而另一令牌是由不同搜索切片1304针对下一个块而生成的,则合并器1308被配置为将令牌合并到被输出到输出令牌流的一个或多个同步令牌中。为了同步令牌,合并器1308可以选择并应用多个预定的合并规则中的一个,如下所述。现在参考图14,在使用中,计算设备1200可以执行用于高性能单流数据压缩的方法1400。应当意识到,在一些实施例中,方法1400的操作可以由计算设备1200的环境1300的一个或多个部件执行,如图13所示。方法1400开始于框1402,其中计算设备1200将输入数据流的重叠块指派给搜索切片1304。输入数据流可以体现为要被压缩的任何二进制数据流,例如输入文件、网络流或其他输入数据。块中的每个可以体现为可以与先前的块少量重叠的输入流的细粒度部分。例如,每个块在初始块之后可以是136个字节长并且与先前的块重叠8个字节。在其他实施例中可以使用不同尺寸的重叠。通常,较大的重叠可以改善由计算设备1200实现的压缩比,但是也增加了性能开销。例如,在一些实施例中,与典型的L9压缩算法相比,块之间的零重叠可以提供可接受的性能但降低的压缩比,并且八字节的重叠可以提供与L9压缩算法相当的压缩比的可接受性能。在一些实施例中,与L9压缩算法相比,大于12字节的重叠可以提供压缩比的收益递减。在框1404中,计算设备1200在搜索切片1304之间对块进行条带化。计算设备1200可以例如将每个连续的块指派给不同的切片1304。在条带化之后,每个切片1304因此被指派给块的不相交子集。现在参考图15,图1500示出了将输入数据流1502划分为块。在说明性实施例中,每个块在初始块之后是136个字节长并且与先前的块重叠8个字节。如图所示,说明性块1504的范围从字节120到字节255,并且说明性块1506的范围从字节248到字节383。块1506在字节248到255处与块1504重叠。因为初始块没有先前块进行重叠,所以初始块长度为128字节,而范围从字节0即,输入数据流的开始到字节127。块1504在字节120到127处与初始块重叠。现在参考图16,图1600示出了在搜索切片1304之间条带化的块。输入数据流1602被示为被划分为块1604。该说明性实施例包括四个搜索切片1304a到204d。每个连续的块1604被指派给不同的搜索切片1304;也就是说,块1604a被指派给切片1304a,块1604b被指派给切片1304b,依此类推。在将块1604指派给最后的切片1304d之后,计算设备1200回绕到切片1304a,并以相同的次序重复指派块1604。因此,在说明性实施例中,每个切片1304被指派了由三个其他、未指派的块1604分开的块1604。例如,切片1304b说明性地指派了块1604b、1604f、1604j。返回参考图14,在指派重叠块之后,在框1406中,计算设备1200对输入数据流进行索引并更新一个或多个索引数据结构。如下面进一步描述的,可以通过搜索切片1304使用索引数据结构来识别输入数据流的搜索历史窗口内的匹配子串。搜索窗口可以是例如输入数据流的32kB。索引数据结构可以体现为例如对输入数据流的三字节序列进行索引的散列表和用于在散列冲突的情况下存储索引数据的溢出表。计算设备1200可以针对输入数据流的每个位置例如,每个字节偏移更新索引数据结构。为了提供高的单流性能,在一些实施例中,计算设备1200可以在每个时钟周期中执行针对多个位置的更新例如,在处理器1220、IO子系统1222、通信子系统1228或计算设备1200的其它部件的每个时钟周期中处理输入数据流的三个字节。在框1408中,计算设备1200将每个块的索引数据提供给相关联的搜索切片1304。具体地,计算设备1200可以将与块内的每个位置例如,字节偏移相关联的索引数据提供给相关联的搜索切片1304。在一些实施例中,在框1410中,计算设备1200可以将与该块相对应的一个或多个散列表条目复制到相对应的搜索切片1304的切片存储器1306。因为块重叠,所以计算设备1200可以将相同的散列表条目复制到多于一个的切片存储器1306。在将索引数据提供给搜索切片1304之后,方法1400并行地进行到块1412的多个实例。块1412的每个实例可以由搜索切片1304执行。在框1412中,计算设备1200处理输入数据流的每个块并生成输出令牌流。因此,框1412的每个实例生成单独的令牌流。每个令牌流包括文字令牌和引用令牌也称为指针令牌或匹配令牌。每个令牌文字和引用与输入数据流内的特定偏移或偏移范围相对应的。每个文字令牌标识来自输入数据流的字节或其他符号。每个引用令牌包括后向偏移和长度,其标识输入数据流的重复段。计算设备1200可以针对匹配子串搜索输入数据流并输出用于找到的最佳匹配的引用令牌。例如,计算设备1200可以使用由更新器1302生成的索引数据来识别历史缓冲器中的潜在匹配,然后将那些潜在匹配处的数据与输入数据流的当前数据进行比较。基于那些匹配的结果,计算设备1200输出包括文字令牌和或引用令牌的令牌流。下面结合图17描述用于处理块和输出令牌流的方法的一个可能的实施例。在并行处理块之后,方法1400前进到框1414,其中计算设备1200将由搜索切片1304生成的令牌流合并为单个输出令牌流。在通常情况下,计算设备1200可以简单地输出由相同搜索切片1304生成的连续令牌。在块之间的边界处,计算设备1200可以合并由两个不同搜索切片1304生成的令牌。计算设备1200通过在两个切片1304之间同步令牌边界例如,特定令牌的结束偏移和下一令牌的起始偏移来合并令牌。计算设备1200可以通过输出未改变的令牌或者通过丢弃令牌、截断令牌、以文字令牌替换引用令牌,或以其他方式修改从搜索切片1304输出的令牌流,来合并令牌。用于合并令牌的方法和相关联的规则的一个可能实施例在下面结合图18-图20进行描述。在框1416中,计算设备1200对输出令牌流执行哈夫曼编码并生成压缩的输出数据。压缩的输出数据可以体现为例如输出数据块或与DEFLATE算法兼容的其他压缩数据。在生成输出数据之后,完成方法1400。计算设备100可以重新执行方法1400以压缩附加输入数据。虽然在图14中示出为顺序地执行方法1400的操作,但是应当理解,在一些实施例中,计算设备1200可以同时、并行或以任何其他次序执行那些操作。例如,在一些实施例中,可以由更新器1302更新索引数据结构,同时由切片1304并行处理块。在该示例中,更新器1302可以以比个体搜索切片1304更快的速率处理输入数据流,使得当搜索切片1304完成处理块并跳转到下一指派的块时,更新器1302已完成更新用于下一块的索引数据结构。可以使用下面的等式1对计算设备1200的近似性能进行建模,其中N是切片1304的数量,C是每个切片1304的比较性能以周期字节处理,以及U是更新器1302的更新性能字节周期。例如,如果C是5.3周期字节并且U是3字节周期,那么N大约是16。继续该示例,对于具有8个字节的重叠的136个字节的块大小,每个切片1304花费大约720个周期来处理块。更新器1302需要大约683个周期来处理用于一组16个块的输入流数据与所有16个切片1304相对应的。因为更新器1302和切片1304可以并行运行,所以用于处理16个块与2048个字节的输入数据相对应的的总时间是720个周期。因为更新器1302比切片1304更快地完成处理,所以当切片1304准备好处理新块时,不必等待更新器1302。N=CxU1现在参考图17,在使用中,计算设备1200可以执行用于搜索匹配子串的方法1700。应当意识到,在一些实施例中,方法1700的操作可以由如图13所示的计算设备1200的环境1300的一个或多个部件执行。特别地,方法1700可以如上结合图14的框1412所述的由搜索切片1304执行。方法1700开始于框1702,其中计算设备1200在输入历史中搜索与输入数据流中的当前位置匹配的子串。计算设备1200可以使用全局历史缓冲器或针对整个输入数据流维护的其他历史数据结构来搜索匹配。例如,历史缓冲器可以体现为多端口和或时间切片的单个缓冲器,或者在一些实施例中,历史缓冲器可以存在多个副本例如,每个搜索切片1304历史缓冲器的一个副本。计算设备1200可以使用任何适当的技术来搜索输入历史。例如,计算设备1200可以使用由更新器1302生成的索引数据例如,一个或多个散列表条目来识别历史缓冲器中的潜在匹配,然后将那些潜在匹配处的数据与输入数据流的当前数据进行比较。索引数据可以存储在诸如一个或多个散列表和或溢出表的全局数据结构中,或者在一些实施例中,特定搜索切片1304可以从特定专用切片存储器1306访问索引数据例如,散列表条目。计算设备1200可以评估历史缓冲器中的多个潜在匹配以识别与当前数据的最佳匹配例如,最长匹配、历史缓冲器中的最短距离、或其他度量。每个匹配开始于当前块但可以延伸超出当前块的末尾到最大比较长度或输入数据流的末尾。在框1704中,计算设备1200输出针对当前位置的令牌。如上所述,令牌可以是文字令牌,其标识来自输入数据流的字节或其他符号,或是引用令牌,其标识输入历史中的匹配子串。在框1706中,计算设备1200切换输出令牌的类型。如果令牌是文字令牌,则方法1700分支到框1708,其中计算设备1200将当前位置移动到输入数据流中的下一位置例如,下一字节。返回参考框1706,如果令牌是引用令牌,则方法1700分支到框1710,其中计算设备1200跳过当前位置到匹配结束。在移动当前位置之后,在框1712中,计算设备1200将当前位置与当前块的末尾进行比较。在框1714中,计算设备1200确定当前位置是否超出当前块的末尾。例如,在输出引用令牌并跳到匹配结束之后,当前位置可以延伸超出当前块的末尾。如果当前位置不超出当前块的末尾,则方法1700循环回到框1702以继续搜索子串匹配。如果当前位置超出当前块的末尾,则方法1700前进到框1716,其中计算设备1200跳过当前位置到被指派给切片的下一块的开始。可以根据每个块的长度和搜索切片1304的数量来确定下一个块的开始。例如,可以通过将每个块的长度减去与先前的块的重叠和搜索切片1304的数量的乘积添加到当前块的开始位置来确定开始位置。对于具有处理有8字节重叠的136字节块的十六个搜索切片1304的说明性计算设备1200,下一个块的下一开始因此可以是在当前块开始之后的2048个字节。在跳到下一个块的开始之后,方法1700循环回到框1702以继续搜索匹配子串。现在参考图18,在使用中,计算设备1200可以执行用于合并输出令牌的方法1800。应当意识到,在一些实施例中,方法1800的操作可以由图13所示的计算设备1200的环境1300的一个或多个部件来执行。特别地,方法1800可以如上面结合图14的框1414所描述的由合并器1308执行。方法1800在框1802开始,其中计算设备1200读取从搜索切片1304输出的下一令牌。如下面进一步描述的,计算设备1200一次在两个令牌其被标记为先前令牌和下一令牌上以管线方式操作。令牌可以存储在例如两元件阵列或其他缓冲器中。从每个切片1304按顺序读取令牌。当已经从切片1304读取与输入数据流的特定块相关联的最后一个令牌时,计算设备1200从下一切片1304读取下一个块。例如,参考图16的图示,在读取与块1604a相关联的最后一个令牌由切片1304a生成之后,计算设备1200从切片1304b读取与块1604b相关联的下一令牌。在框1804中,计算设备1200确定先前令牌是否存在于处理管线中。例如,在开始压缩过程时或在管线已被清除时,先前令牌可能不存在。如果不存在先前令牌,则方法1800前跳到框1812,如下所述。如果存在先前令牌,则方法1800前进到框1806。在框1806中,计算设备1200确定下一令牌是否由与先前令牌相同的切片1304生成。如上所述,在通常情况下,令牌由相同的切片1304生成。在框1808中,计算设备1200检查下一令牌和先前令牌是否由同一切片1304生成。如果不是,则方法1800前跳到框1814,如下所述。如果先前令牌和下一令牌由同一切片1304生成,则方法1800前进到框1810。在框1810中,计算设备1200将先前令牌输出到输出令牌流。如上所述,在输出之后,可以对令牌进行编码以用于压缩的输出数据中的输出。在框1812中,计算设备1200将下一令牌复制到先前令牌。在复制下一令牌之后,方法1800循环回到框1802以继续从搜索切片1304读取令牌流。返回参考框1808,如果下一标记和先前标记不是由同一切片1304生成的,则方法1800分支到框1814。在框1814中,计算设备1200比较下一令牌的结束位置与先前令牌的结束位置。如上所述,每个令牌与输入数据流内的一系列偏移相对应的。在框1816中,计算设备1200确定下一令牌的结束位置是否大于即,发生在之后或等于先前令牌的结束位置。如果否,则方法1800前进到框1818,其中计算设备1200从当前切片1304读取下一令牌丢弃下一令牌的先前值。在读取下一令牌之后,方法1800循环回到框1814,以比较新的下一令牌和先前令牌的结束位置。因此,计算设备1200跳过来自当前切片1304的令牌,直到到达具有的结束位置大于或等于先前令牌的结束位置的下一令牌。返回参考框1816,如果下一令牌的结束位置大于或等于先前令牌的结束位置,则方法1800分支到框1820。在框1820中,计算设备1200根据一组预定的合并器规则来合并先前令牌和下一令牌。每个合并器规则基于下一令牌和先前令牌的输入条件定义要执行的一个或多个操作。具体地,可以通过比较下一令牌和先前令牌的开始位置和结束位置来选择合并器规则。由计算设备1200执行以合并令牌的动作可以包括输出令牌、丢弃令牌、截断令牌和或将引用令牌转换为文字令牌。下面描述的图19和图20示出了合并器规则和令牌的相对应的输入条件的一个可能的实施例。在合并先前令牌和下一令牌之后,方法1800循环回到框1802以继续合并令牌。现在参考图19,示意图1900示出了在各种输入条件下将合并器规则应用于令牌的结果。如上面结合图18的框1820所述,计算设备1200可以针对多个预定的条件匹配先前令牌1902和下一令牌1904的输入条件。图1900示出了针对那些输入条件中的每个的先前令牌1902和下一令牌1904的相对位置。在选择匹配条件之后,计算设备1200执行一个或多个动作以生成相对应的结果。图1900的每个结果示出了输出到输出令牌流的令牌。如图19所示,当先前令牌1902的结束位置等于下一令牌1904的结束位置时发生条件1906。对于条件1906,生成结果1908。如图所示,结果1908丢弃下一令牌1904并输出不变的先前令牌1902。当下一令牌1904的开始位置小于即,早于先前令牌1902的开始位置时,发生条件1910。针对条件1910,生成结果1912。结果1912丢弃先前令牌1902并截断下一令牌1904,以生成在先前令牌1902的开始位置处开始的截断的下一令牌1904'。当先前令牌1902的开始位置和下一令牌1904的开始位置相等时,发生条件1914。针对条件1914,生成结果1916。结果1916丢弃先前令牌1902,并且输出不变的下一令牌1904。当下一令牌1904的开始位置大于即,晚于先前令牌1902的开始位置时,发生条件1918。如图所示,可以针对条件1918生成可能的结果1920、1922、1924中的一个。可以通过将在先前令牌1902的开始位置与下一令牌1904的开始位置之间的距离δ1和在先前令牌1902的结束位置与下一令牌1904的结束位置之间的距离δ2与预定的预置距离进行比较,来选择结果1920、1922、1924。如图所示,结果1920输出不变的先前令牌1902,并将下一令牌1904截断为从先前令牌1902的结束位置开始的截断的下一令牌1904'。结果1922输出不变的先前令牌1902,并将下一令牌1904截断为在先前令牌1902的结束位置处开始并只包括文字令牌λ的截断的下一令牌1904'。结果1924将先前令牌1902截断为在下一令牌1904的开始位置处结束并且仅包括文字令牌λ的截断的先前令牌1902'。结果1924还输出不变的下一令牌1904。现在参考图20,图2000示出了可以由计算设备1200应用的各种合并器规则。表2002示出了四个合并器规则2004,其可以由计算设备1200按顺序评估。每个合并器规则2004定义由计算设备1200评估的条件2006。每个合并器规则2004还定义先前令牌动作2008和下一令牌动作2010。如果针对规则2004的条件2006评估为真,则计算设备1200执行相关联的先前令牌动作2008和下一令牌动作2010。如果针对合并器规则2004的条件2006评估为假,则计算设备1200评估下一合并器规则2004。如表2002所示,如果下一令牌的结束位置等于先前令牌的结束位置,则应用合并器规则1。如果合并器规则1适用,则先前令牌将不变地输出,并丢弃下一令牌。合并器规则1与图19的条件1906和结果1908相对应的。如果下一令牌的开始位置小于先前令牌的开始位置,则适用合并器规则2。如果合并器规则2适用,则丢弃先前令牌,并截断下一令牌以从先前令牌的开始位置处开始。合并器规则2与图19的条件1910和结果1912相对应的。如果下一令牌的开始位置等于先前令牌的开始位置,则适用合并器规则3。如果合并器规则3适用,则丢弃先前令牌,并且下一令牌被不变地输出。合并器规则3与图19的条件1914和结果1916相对应的。如果下一令牌的开始位置大于先前令牌的开始位置,则适用合并器规则4。如果合并器规则4适用,则评估一个或多个子规则以确定先前令牌动作2008和下一令牌动作2010。合并器规则4与图19的条件1918和结果1920、1922、1924相对应的。表2012示出了合并器规则4的子规则2014。类似于表2002的合并器规则2004,每个子规则2014定义子条件2016以及先前令牌动作2008和下一令牌动作2010。如表2012所示,如果在先前令牌的开始位置与下一令牌的开始位置之间的距离δ1大于预定的阈值距离T并且先前令牌的结束位置与下一令牌的结束位置之间的距离δ2大于距离T,则应用子规则4.a。预定的阈值距离T可以体现为少量字节,例如3或4字节。如果子规则4.a适用,则先前令牌不变地输出,并且下一令牌被截断为在先前令牌的结束位置开始的引用令牌。子规则4.a与图19的结果1920相对应的。如果只有距离δ1大于阈值距离T,则适用规则4.b。如果子规则4.b适用,则先前令牌不变地输出,并且下一令牌被截断为在先前令牌的结束位置处开始的一个或多个文字令牌。子规则4.b与图19的结果1922相对应的。如果只有距离δ2大于阈值距离T,则子规则4.c适用。如果子规则4.c适用,则先前令牌被截断为在下一令牌的开始位置处结束的一个或多个文字令牌,并且下一令牌被不变地输出。子规则4.c与图19的结果1924相对应的。如果距离δ1和距离δ2都不大于阈值距离T,则子规则4.d适用。如果子规则4.d适用,那么针对子规则4.b或4.c的动作可以适用。计算设备1200可以基于评分函数在子规则4.b和4.c之间进行选择。例如,计算设备1200可以选择产生最少数量的文字令牌的子规则4.b或4.c。作为另一示例,计算设备1200可以选择产生具有最短匹配距离的令牌的子规则4.b或4.c。应当意识到,在一些实施例中,方法1400、1700和或700可以体现为存储在计算机可读介质上的各种指令,所述指令可以由处理器1220、IO子系统1222、通信子系统1228和或计算设备1200的其他部件执行,以使计算设备1200执行方法1400。计算机可读介质可以体现为能够由计算设备1200读取的任何类型的介质,包括但不限于存储器1224、数据存储设备1226、固件设备、计算设备1200的其他存储器或数据存储设备、可由计算设备1200的外围设备1230读取的便携式介质,和或其他介质。示例以下提供本文公开的技术的说明性示例。这些技术的实施例可以包括下面描述的示例中的任何一个或多个以及任何组合。示例1包括一种用于数据压缩的计算设备,该计算设备包括:更新器电路,用于基于输入数据流更新索引数据结构,其中所述索引数据结构包括与输入数据流中的偏移相关联的索引数据,并且其中所述输入数据流被划分为多个块,其中每个块具有第一长度;多个搜索切片电路,其中相应的搜索切片电路用于处理输入数据流的多个块的不相交子集以生成相对应的令牌流,其中相应的搜索切片电路使用索引数据来处理多个块的不相交子集;以及合并器电路,用于合并多个令牌流以生成输出令牌流。示例2包括示例1的主题,并且其中,所述第一长度包括128个字节。示例3包括示例1和2中任一项的主题,并且其中,每个块与先前块重叠第二长度示例4包括示例1-3中任一项的主题,并且其中,所述第一长度包括136个字节,而所述第二长度包括8个字节。示例5包括示例1-4中任一项的主题,其中:所述更新器电路还用于将索引数据从索引数据结构提供到多个切片存储器,其中每个切片存储器与相应的搜索切片电路相对应;以及用索引数据处理多个块的不相交子集以生成相对应的令牌流包括相应的搜索切片电路访问包括与多个块的不相交子集相关联的索引数据的相对应的切片存储器。示例6包括示例1-5中任一项的主题,还包括:编码器电路,用于对输出令牌流进行编码以生成压缩的输出块。示例7包括示例1-6中任一项的主题,其中,所述多个块被条带化为所述多个不相交子集。示例8包括示例1-7中任一项的主题,并且其中不相交子集的每个块与先前块分开所述第一长度乘以比令牌流的数量少一。示例9包括示例1-8中任一项的主题,并且其中,合并所述多个令牌流以生成所述输出令牌流包括所述合并器电路用于:从多个令牌流中读取先前令牌和下一令牌,其中所述先前令牌和下一令牌相对于输入数据流是连续的;确定所述先前令牌和下一令牌是否源自同一令牌流;响应于确定所述先前令牌和下一令牌源自同一令牌流,将所述先前令牌输出到输出令牌流;响应于输出所述先前令牌,将所述下一令牌复制到先前令牌;响应于复制所述下一令牌,从多个令牌流中读取所述下一令牌;以及响应于确定所述先前令牌和下一令牌不是源自同一令牌流,而合并所述先前令牌和下一令牌以生成一个或多个同步令牌。示例10包括示例1-9中任一项的主题,其中,合并所述先前令牌和所述下一令牌包括所述合并器电路用于:确定所述下一令牌的结束偏移是否大于或等于所述先前令牌的结束偏移;响应于确定所述下一令牌的结束偏移不大于或等于所述先前令牌的结束偏移,从多个令牌流中读取下一令牌;以及响应于确定所述下一令牌的结束偏移大于或等于所述先前令牌的结束偏移,合并所述先前令牌和下一令牌。示例11包括示例1-10中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于:确定所述下一令牌的结束偏移是否等于所述先前令牌的结束偏移;以及响应于确定所述下一令牌的结束偏移等于所述先前令牌的结束偏移,丢弃所述下一令牌。示例12包括示例1-11中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于:确定所述下一令牌的开始偏移是否小于所述先前令牌的开始偏移;响应于确定所述下一令牌的开始偏移小于所述先前令牌的开始偏移,丢弃所述先前令牌;以及响应于确定所述下一令牌的开始偏移小于所述先前令牌的开始偏移,截断所述下一令牌以在先前令牌的开始偏移处开始。示例13包括示例1-12中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于:确定所述下一令牌的开始偏移是否等于所述先前令牌的开始偏移;以及响应于确定所述下一令牌的开始偏移等于所述先前令牌的开始偏移,丢弃先前令牌。示例14包括示例1-13中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括合并器电路用于:确定所述下一令牌的开始偏移是否大于所述先前令牌的开始偏移;响应于确定所述下一令牌的开始偏移大于所述先前令牌的开始偏移,确定在所述下一令牌的开始偏移与先前令牌的开始偏移之间的第一差值是否大于预定的阈值偏移;响应于确定所述下一令牌的开始偏移大于所述先前令牌的开始偏移,确定在所述下一令牌的结束偏移与所述先前令牌的结束偏移之间的第二差值是否大于预定的阈值偏移;以及响应于确定所述第一差值大于预定的阈值偏移并且所述第二差值大于所述预定的阈值偏移,将所述下一令牌截断为在所述先前令牌的结束偏移处开始的引用令牌。示例15包括示例1-14中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括所述合并电路用于响应于确定所述第一偏移大于所述预定的阈值偏移并且所述第二差值不大于所述预定的阈值偏移,而将所述下一令牌截断为在所述先前令牌的结束偏移处开始的一个或多个文字令牌。示例16包括示例1-15中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于响应于确定所述第一偏移不大于所述预定的阈值偏移并且所述第二差值大于所述预定的阈值偏移,而将所述先前令牌截断为在所述下一令牌的开始偏移处结束的一个或多个文字令牌。示例17包括示例1-16中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于响应于确定所述第一偏移不大于所述预定的阈值偏移并且所述第二差值不大于所述预定的阈值偏移,而基于评分函数在将所述先前令牌截断为一个或多个文字令牌或将所述下一令牌截断为一个或多个文字令牌之间进行选择。示例18包括示例1-17中任一项的主题,其中,基于评分函数进行选择包括合并器电路用于选择最少数量的文字令牌。示例19包括一种用于数据压缩的方法,所述方法包括:通过计算设备,基于输入数据流更新索引数据结构,其中所述索引数据结构包括与输入数据流中的偏移相关联的索引数据;通过所述计算设备,使用所述索引数据并行处理输入数据流的多个块以生成多个令牌流,其中每个块具有第一长度,并且每个块与先前块重叠第二长度,并且其中根据多个块的相对应的不相交子集生成每个令牌流;以及通过所述计算设备合并多个令牌流以生成输出令牌流。示例20包括示例19的主题,并且其中,所述第一长度包括128个字节。示例21包括示例19和20中任一项的主题,并且其中,每个块与先前块重叠第二长度。示例22包括示例19-21中任一项的主题,并且其中,所述第一长度包括136个字节,而所述第二长度包括8个字节。示例23包括示例19-22中任一项的主题,还包括:通过计算设备,将索引数据从索引数据结构提供到多个切片存储器;其中使用索引数据并行处理多个块以生成多个令牌流包括针对令牌流中的每个,访问切片存储器,该切片存储器包括与和相对应的令牌流相关联的多个块的不相交子集相关联的索引数据。示例22包括示例19-23中任一项的主题,还包括:通过计算设备,对输出令牌流进行编码以生成压缩的输出块。示例25包括示例19-24中任一项的主题,其中,所述多个块被条带化为所述多个不相交子集。示例26包括示例19-25中任一项的主题,并且其中,不相交子集的每个块与先前块分开所述第一长度乘以比令牌流的数量少一。示例27包括示例19-26中任一项的主题,并且其中,合并所述多个令牌流以生成所述输出令牌流包括:从多个令牌流中读取先前令牌和下一令牌,其中所述先前令牌和下一令牌相对于输入数据流是连续的;确定所述先前令牌和下一令牌是否源自同一令牌流;响应于确定所述先前令牌和下一令牌源自同一令牌流,将所述先前令牌输出到输出令牌流;响应于输出所述先前令牌,将所述下一令牌复制到先前令牌;响应于复制所述下一令牌,从多个令牌流中读取所述下一令牌;以及响应于确定所述先前令牌和下一令牌不是源自同一令牌流,而合并所述先前令牌和下一令牌以生成一个或多个同步令牌。示例28包括示例19-27中任一项的主题,其中,合并所述先前令牌和所述下一令牌包括:确定所述下一令牌的结束偏移是否大于或等于所述先前令牌的结束偏移;响应于确定所述下一令牌的结束偏移不大于或等于所述先前令牌的结束偏移,从多个令牌流中读取下一令牌;以及响应于确定所述下一令牌的结束偏移大于或等于所述先前令牌的结束偏移,合并所述先前令牌和下一令牌。示例29包括示例19-28中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括:确定所述下一令牌的结束偏移是否等于所述先前令牌的结束偏移;以及响应于确定所述下一令牌的结束偏移等于所述先前令牌的结束偏移,丢弃所述下一令牌。示例30包括示例19-29中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括:确定所述下一令牌的开始偏移是否小于所述先前令牌的开始偏移;响应于确定所述下一令牌的开始偏移小于所述先前令牌的开始偏移,丢弃所述先前令牌;以及响应于确定所述下一令牌的开始偏移小于所述先前令牌的开始偏移,截断所述下一令牌以在先前令牌的开始偏移处开始。示例31包括示例19-30中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括:确定所述下一令牌的开始偏移是否等于所述先前令牌的开始偏移;以及响应于确定所述下一令牌的开始偏移等于所述先前令牌的开始偏移,丢弃先前令牌。示例32包括示例19-31中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括:确定所述下一令牌的开始偏移是否大于所述先前令牌的开始偏移;响应于确定所述下一令牌的开始偏移大于所述先前令牌的开始偏移,确定在所述下一令牌的开始偏移与先前令牌的开始偏移之间的第一差值是否大于预定的阈值偏移;响应于确定所述下一令牌的开始偏移大于所述先前令牌的开始偏移,确定在所述下一令牌的结束偏移与所述先前令牌的结束偏移之间的第二差值是否大于预定的阈值偏移;以及响应于确定所述第一差值大于预定的阈值偏移并且所述第二差值大于所述预定的阈值偏移,将所述下一令牌截断为在所述先前令牌的结束偏移处开始的引用令牌。示例33包括示例19-32中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括:响应于确定所述第一偏移大于所述预定的阈值偏移并且所述第二差值不大于所述预定的阈值偏移,而将所述下一令牌截断为在所述先前令牌的结束偏移处开始的一个或多个文字令牌。示例34包括示例19-33中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括:响应于确定所述第一偏移不大于所述预定的阈值偏移并且所述第二差值大于所述预定的阈值偏移,而将所述先前令牌截断为在所述下一令牌的开始偏移处结束的一个或多个文字令牌。示例35包括示例19-34中任一项的主题,其中,合并所述先前令牌和所述下一令牌还包括:响应于确定所述第一偏移不大于所述预定的阈值偏移并且所述第二差值不大于所述预定的阈值偏移,而基于评分函数在将所述先前令牌截断为一个或多个文字令牌或将所述下一令牌截断为一个或多个文字令牌之间进行选择。示例36包括示例19-35中任一项的主题,其中,基于评分函数进行选择包括选择最少数量的文字令牌。示例37包括一种计算设备,包括:处理器;以及存储器,其中存储有多个指令,所述多个指令当由处理器执行时,使计算设备用于执行示例19-36中任一项的方法。示例38包括一种或多种机器可读存储介质,包括存储在其上的多个指令,所述多个指令响应于被执行而导致计算设备执行示例19-36中任一项的方法。示例39包括一种计算设备,其包括用于执行示例19-36中任一项所述的方法的单元。示例40包括一种用于数据压缩的计算设备,所述计算设备包括:用于基于输入数据流更新索引数据结构的单元,其中所述索引数据结构包括与输入数据流中的偏移相关联的索引数据;用于使用所述索引数据并行处理输入数据流的多个块以生成多个令牌流的单元,其中每个块具有第一长度,并且每个块与先前块重叠第二长度,并且其中根据多个块的相对应的不相交子集生成每个令牌流;以及用于合并多个令牌流以生成输出令牌流的单元。示例41包括示例40的主题,并且其中,所述第一长度包括128个字节。示例42包括示例40和41中任一项的主题,其中,每个块与先前块重叠第二长度。示例43包括示例40-42中任一项的主题,并且其中,所述第一长度包括136个字节,而所述第二长度包括8个字节。示例44包括示例40-43中任一项的主题,还包括:用于将索引数据从索引数据结构提供到多个切片存储器的单元;其中用于使用索引数据并行处理多个块以生成多个令牌流的单元包括用于针对令牌流中的每个,访问切片存储器的单元,该切片存储器包括与和相对应的令牌流相关联的多个块的不相交子集相关联的索引数据。示例45包括示例40-44中任一项的主题,还包括:用于对输出令牌流进行编码以生成压缩的输出块的单元。示例46包括示例40-45中任一项的主题,其中,所述多个块被条带化为所述多个不相交子集。示例47包括示例40-46中任一项的主题,并且其中,不相交子集的每个块与先前块分开所述第一长度乘以比令牌流的数量少一。示例48包括示例40-47中任一项的主题,并且其中,用于合并所述多个令牌流以生成所述输出令牌流的单元包括:用于从多个令牌流中读取先前令牌和下一令牌的单元,其中所述先前令牌和下一令牌相对于输入数据流是连续的;用于确定所述先前令牌和下一令牌是否源自同一令牌流的单元;用于响应于确定所述先前令牌和下一令牌源自同一令牌流,将所述先前令牌输出到输出令牌流的单元;用于响应于输出所述先前令牌,将所述下一令牌复制到先前令牌的单元;用于响应于复制所述下一令牌,从多个令牌流中读取所述下一令牌的单元;以及用于响应于确定所述先前令牌和下一令牌不是源自同一令牌流,而合并所述先前令牌和下一令牌以生成一个或多个同步令牌的单元。示例49包括示例40-48中任一项的主题,其中,用于合并所述先前令牌和所述下一令牌的单元还包括:用于确定所述下一令牌的结束偏移是否大于或等于所述先前令牌的结束偏移的单元;用于响应于确定所述下一令牌的结束偏移不大于或等于所述先前令牌的结束偏移,从多个令牌流中读取下一令牌的单元;以及用于响应于确定所述下一令牌的结束偏移大于或等于所述先前令牌的结束偏移,合并所述先前令牌和下一令牌的单元。示例50包括示例40-49中任一项的主题,其中,用于合并所述先前令牌和所述下一令牌的单元还包括:用于确定所述下一令牌的结束偏移是否等于所述先前令牌的结束偏移的单元;以及用于响应于确定所述下一令牌的结束偏移等于所述先前令牌的结束偏移,丢弃所述下一令牌的单元。示例51包括示例40-50中任一项的主题,其中,用于合并所述先前令牌和所述下一令牌的单元还包括:用于确定所述下一令牌的开始偏移是否小于所述先前令牌的开始偏移的单元;用于响应于确定所述下一令牌的开始偏移小于所述先前令牌的开始偏移,丢弃所述先前令牌的单元;以及用于响应于确定所述下一令牌的开始偏移小于所述先前令牌的开始偏移,截断所述下一令牌以在先前令牌的开始偏移处开始的单元。示例52包括示例40-51中任一项的主题,并且其中,用于合并所述先前令牌和所述下一令牌的单元还包括:用于确定所述下一令牌的开始偏移是否等于所述先前令牌的开始偏移的单元;以及用于响应于确定所述下一令牌的开始偏移等于所述先前令牌的开始偏移,丢弃先前令牌的单元。示例53包括示例40-52中任一项的主题,其中,用于合并所述先前令牌和所述下一令牌的单元还包括:用于确定所述下一令牌的开始偏移是否大于所述先前令牌的开始偏移的单元;用于响应于确定所述下一令牌的开始偏移大于所述先前令牌的开始偏移,确定在所述下一令牌的开始偏移与先前令牌的开始偏移之间的第一差值是否大于预定的阈值偏移的单元;用于响应于确定所述下一令牌的开始偏移大于所述先前令牌的开始偏移,确定在所述下一令牌的结束偏移与所述先前令牌的结束偏移之间的第二差值是否大于预定的阈值偏移的单元;以及用于响应于确定所述第一差值大于预定的阈值偏移并且所述第二差值大于所述预定的阈值偏移,将所述下一令牌截断为在所述先前令牌的结束偏移处开始的引用令牌的单元。示例54包括示例40-53中任一项的主题,其中,用于合并所述先前令牌和所述下一令牌的单元还包括:用于响应于确定所述第一偏移大于所述预定的阈值偏移并且所述第二差值不大于所述预定的阈值偏移,而将所述下一令牌截断为在所述先前令牌的结束偏移处开始的一个或多个文字令牌的单元。示例55包括示例40-54中任一项的主题,其中,用于合并所述先前令牌和所述下一令牌的单元还包括:用于响应于确定所述第一偏移不大于所述预定的阈值偏移并且所述第二差值大于所述预定的阈值偏移,而将所述先前令牌截断为在所述下一令牌的开始偏移处结束的一个或多个文字令牌的单元。示例56包括示例40-55中任一项的主题,其中,用于合并所述先前令牌和所述下一令牌的单元还包括:用于响应于确定所述第一偏移不大于所述预定的阈值偏移并且所述第二差值不大于所述预定的阈值偏移,而基于评分函数在将所述先前令牌截断为一个或多个文字令牌或将所述下一令牌截断为一个或多个文字令牌之间进行选择的单元。示例57包括示例40-56中任一项的主题,其中,用于基于评分函数进行选择的单元包括用于选择最少数量的文字令牌的单元。

权利要求: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所述的计算设备,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于:确定所述下一令牌的开始偏移是否大于所述先前令牌的开始偏移;响应于确定所述下一令牌的开始偏移大于所述先前令牌的开始偏移,确定在所述下一令牌的开始偏移与所述先前令牌的开始偏移之间的第一差值是否大于预定的阈值偏移;响应于确定所述下一令牌的开始偏移大于所述先前令牌的开始偏移,确定在所述下一令牌的结束偏移与所述先前令牌的结束偏移之间的第二差值是否大于所述预定的阈值偏移;以及响应于确定所述第一差值大于所述预定的阈值偏移并且所述第二差值大于所述预定的阈值偏移,将所述下一令牌截断为在所述先前令牌的结束偏移处开始的引用令牌。13.根据权利要求12所述的计算设备,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于响应于确定所述第一偏移大于所述预定的阈值偏移并且所述第二差值不大于所述预定的阈值偏移,而将所述下一令牌截断为在所述先前令牌的结束偏移处开始的一个或多个文字令牌。14.根据权利要求13所述的计算设备,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于响应于确定所述第一偏移不大于所述预定的阈值偏移并且所述第二差值大于所述预定的阈值偏移,而将所述先前令牌截断为在所述下一令牌的开始偏移处结束的一个或多个文字令牌。15.根据权利要求14所述的计算设备,其中,合并所述先前令牌和所述下一令牌还包括所述合并器电路用于响应于确定所述第一偏移不大于所述预定的阈值偏移并且所述第二差值不大于所述预定的阈值偏移,而基于评分函数在将所述先前令牌截断为一个或多个文字令牌或将所述下一令牌截断为一个或多个文字令牌之间进行选择,其中,基于所述评分函数进行选择包括选择最少数量的文字令牌。16.一种用于数据压缩的方法,所述方法包括:由计算设备,基于输入数据流来更新索引数据结构,其中,所述索引数据结构包括与所述输入数据流中的偏移相关联的索引数据;由所述计算设备,使用所述索引数据来并行处理所述输入数据流的多个块以生成多个令牌流,其中,每个块具有第一长度,并且每个块与先前块重叠第二长度,并且其中,每个令牌流是根据所述多个块的相对应的不相交子集生成的;以及由所述计算设备合并所述多个令牌流以生成输出令牌流。17.根据权利要求16所述的方法,其中,所述多个块被条带化为所述多个不相交子集。18.根据权利要求16所述的方法,其中,合并所述多个令牌流以生成所述输出令牌流包括:从所述多个令牌流中读取先前令牌和下一令牌,其中,所述先前令牌和所述下一令牌相对于所述输入数据流是连续的;确定所述先前令牌和所述下一令牌是否源自同一令牌流;响应于确定所述先前令牌和所述下一令牌源自同一令牌流,将所述先前令牌输出到所述输出令牌流;响应于输出所述先前令牌,将所述下一令牌复制到所述先前令牌;响应于复制所述下一令牌,从所述多个令牌流中读取所述下一令牌;以及响应于确定所述先前令牌和所述下一令牌不是源自同一令牌流,而合并所述先前令牌和所述下一令牌以生成一个或多个同步令牌。19.根据权利要求18所述的方法,其中,合并所述先前令牌和所述下一令牌还包括:确定所述下一令牌的结束偏移是否大于或等于所述先前令牌的结束偏移;响应于确定所述下一令牌的结束偏移不大于或等于所述先前令牌的结束偏移,从所述多个令牌流中读取下一令牌;以及响应于确定所述下一令牌的结束偏移大于或等于所述先前令牌的结束偏移,合并所述先前令牌和所述下一令牌。20.根据权利要求19所述的方法,其中,合并所述先前令牌和所述下一令牌还包括:确定所述下一令牌的结束偏移是否等于所述先前令牌的结束偏移;以及响应于确定所述下一令牌的结束偏移等于所述先前令牌的结束偏移,丢弃所述下一令牌。21.根据权利要求19所述的方法,其中,合并所述先前令牌和所述下一令牌还包括:确定所述下一令牌的开始偏移是否小于所述先前令牌的开始偏移;响应于确定所述下一令牌的开始偏移小于所述先前令牌的开始偏移,丢弃所述先前令牌;以及响应于确定所述下一令牌的开始偏移小于所述先前令牌的开始偏移,截断所述下一令牌以在所述先前令牌的开始偏移处开始。22.根据权利要求19所述的方法,其中,合并所述先前令牌和所述下一令牌还包括:确定所述下一令牌的开始偏移是否等于所述先前令牌的开始偏移;以及响应于确定所述下一令牌的开始偏移等于所述先前令牌的开始偏移,丢弃所述先前令牌。23.一种计算设备,包括:处理器;以及存储器,其中存储有多个指令,所述多个指令当由所述处理器执行时,使所述计算设备用于执行根据权利要求16-22中任一项所述的方法。24.一个或多个包括存储在其上的多个指令的机器可读存储介质,所述多个指令响应于被执行而使得计算设备执行根据权利要求16-22中任一项所述的方法。25.一种包括用于执行根据权利要求16-22中任一项所述的方法的单元的计算设备。

百度查询: 英特尔公司 高性能单流LZ77压缩技术

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。