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

管理压缩加速器中的状态数据制造技术

技术编号:18367177 阅读:62 留言:0更新日期:2018-07-05 08:10
本申请公开了管理压缩加速器中的状态数据。在实施例中,处理器包括:多个处理核;以及压缩加速器,用于压缩包括第一数据块和第二数据块的输入流。压缩加速器包括:第一压缩引擎,用于压缩第一数据块;以及第二压缩引擎,用于:使用第一数据块的子部分来更新第二压缩引擎的状态数据,以及在使用第一数据块的子部分来更新第二压缩引擎的状态数据之后,使用第二压缩引擎的更新的状态数据来压缩第二数据块。描述了其他实施例并要求它们的权利。

Managing state data in a compression accelerator

This application discloses the management of state data in the compression accelerator. In the embodiment, the processor comprises a plurality of processing cores, and a compression accelerator for compressing the input stream including the first data block and the second data block. The compression accelerator includes the first compression engine, which is used to compress the first data block, and the second compression engine, which is used to update the state data of the second compression engine using the subsection of the first data block, and to use second pressure after the second compression engine's state data is updated with the subsection of the first data block. Shrink the updated state data of the engine to compress the second data block. Other embodiments are described and their rights are requested.

【技术实现步骤摘要】
管理压缩加速器中的状态数据
各实施例一般涉及数据压缩。更具体地,各实施例涉及使用具有多个压缩引擎的加速器的数据压缩。
技术介绍
计算和联网中的进步已经与压缩技术的使用相关联以用于减小数据的尺寸。例如,互联网服务可以利用压缩技术来减小网络通信量所要求的带宽。此外,计算设备可以利用压缩来减少存储数据所要求的存储空间的量。附图简述图1A是根据一个或多个实施例的用于数据压缩的系统的框图。图1B是根据一个或多个实施例的用于数据压缩的示例操作的框图。图1C是根据一个或多个实施例的示例状态数据的框图。图2A是根据一个或多个实施例的用于数据压缩的方法的流程图。图2B是根据一个或多个实施例的用于数据压缩的方法的流程图。图3A是根据一个或多个实施例的系统的部分的框图。图3B是根据一个或多个实施例的多域处理器的框图。图3C是根据一个或多个实施例的处理器的框图。图4是根据一个或多个实施例的包括多个核的处理器的框图。图5是根据一个或多个实施例的处理器核的微架构的框图。图6是根据一个或多个实施例的处理器核的微架构的框图。图7是根据一个或多个实施例的处理器核的微架构的框图。图8是根据一个或多个实施例的处理器核的微架构的框图。图9是根据一个或多个实施例的处理器的框图。图10是根据一个或多个实施例的代表性SoC的框图。图11是根据一个或多个实施例的另一示例SoC的框图。图12是可与一个或多个实施例一起使用的示例系统的框图。图13是可与一个或多个实施例一起使用的另一示例系统的框图。图14是根据一个或多个实施例的计算机系统的框图。图15是根据一个或多个实施例的系统的框图。具体实施方式一些无损数据压缩算法包含Lempel-Ziv(“LZ”)算法,诸如LZ77。例如,DEFLATE压缩算法使用LZ77算法与霍夫曼编码的组合。LZ77算法通过将串替换为对数据流内的相同串的较早实例的引用来执行重复串消除。该引用由长度-距离(L,D)对编码。为了标识与较早串的匹配,LZ77使用数据流的最近部分的滑动窗口。用于这些压缩算法的数据在本文中可以被称为压缩状态数据。例如,压缩状态数据可以包括历史缓冲器以存储数据流的最近部分的滑动窗口。在另一示例中,压缩状态数据可以包括将到历史缓冲器中的指针存储为散列值的散列表。在一些情形下,压缩器加速器可以接收要被压缩的堆或输入流,并且可以将所接收的数据分成被单独地处理的多个块。例如,压缩器加速器可以包括能并行地压缩数据块的多个引擎。然而,当跨两个数据块执行串匹配时,压缩器加速器可能必须在引擎之间传递状态信息。因此,处理第二数据块的引擎可能被延迟以接收来自处理第一数据块的引擎的状态信息。此外,这种传递数据可能占用引擎之间的数据带宽。在另一示例中,压缩器加速器一次可以压缩一个数据块(例如,串行地)。然而,如果在处理两个顺序数据块中存在间隙,则压缩器加速器可能必须将第一数据块的状态数据保存到存储器,并且可能必须在准备好处理第二数据块时读取所保存的状态信息。由此,该方法可能涉及与这些到/自存储器的转移相关联的时间延迟和带宽使用。根据一些实施例,压缩加速器可以压缩来自输入流的数据块。在一些实施例中,在压缩给定数据块之前,压缩加速器可以使用在前数据块的子部分来更新状态数据。由此,一些实施例可以避免必须在多个引擎之间传递状态数据,或者必须保存状态数据和从存储器读取状态数据。因此,一些实施例可以减少与传递状态数据相关联的延迟和带宽使用。尽管参考特定实现描述下列实施例,但实施例不限于此方面。具体而言,构想可以将本文所述的实施例的类似的技术和教导应用到其他类型的电路、半导体器件、处理器、系统等。例如,所公开的实施例可以任一类型的计算机系统实现,包括服务器计算机(例如,塔、机架、刀片、微服务器等等)、通信系统、存储系统、任意配置的台式计算机、膝上型计算机、笔记本和平板计算机(包括2:1平板、平板手机等等)。此外,所公开的实施例也可用于其它设备,诸如手持式设备、芯片上系统(SoC)以及嵌入式应用。手持式设备的一些示例包括诸如智能电话的蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)和手持式PC。嵌入式应用通常可以包括微控制器、数字信号处理器(DSP)、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、可穿戴设备,或能够执行以下所教导的功能和操作的任何其他系统。此外,实施例可以在具有标准语音功能的移动终端中实现,诸如移动电话、智能电话和平板电话,和/或在不具有标准无线语音功能通信能力的非移动终端中实现,诸如许多可穿戴设备、平板电脑、笔记本、台式机、微服务器、服务器等等。现在参考图1A,所示为根据一个或多个实施例的用于数据压缩的系统100的框图。在一些实施例中,系统100可以是电子设备或组件的全部或一部分。例如,系统100可以是蜂窝电话、计算机、服务器、网络设备、芯片上系统(SoC)、控制器、无线收发机、电源单元等。此外,在一些实施例中,系统100可以是相关或互连设备的任何群组,诸如数据中心、计算群集等。如图1A所示,系统100可以包括处理器110和系统存储器130。此外,尽管图1A未示出,但是系统100可以包括其他组件。处理器110可以是通用硬件处理器(例如,中央处理单元(CPU))。如所示,处理器110可以包括任意数量的处理核115和压缩加速器120。每个核115可以是通用处理核。系统存储器130可以利用任何类型的计算机存储器(例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、非易失性存储器(NVM)、DRAM和NVM的组合等)来实现。在一个或多个实施例中,压缩加速器120可以是专用于执行压缩操作的硬件设备。例如,压缩加速器120可以是任何硬件单元,诸如压缩协处理器、插入卡、模块、芯片、处理块等。此外,在一些实施例中,压缩加速器120可以实现在处理器110的电路和/或微架构中、在处理核115中,等等。尽管示出为图1A的实施例中的特定实现,但是本文讨论的各实施例的范围不限于此方面。在一些实施例中,压缩加速器120可以包括任意数量的压缩引擎125。每个压缩引擎125可以并行地操作以压缩输入数据的不同块。例如,在一些实施例中,压缩引擎125可以基于LZ77算法执行压缩操作,并且可以使用长度-距离对来编码输入数据内的经复制的串。此外,在一些实施例中,压缩加速器120可以使用其他压缩算法。例如,压缩加速器120可以使用DEFLATE算法、Lempel-Ziv-Oberhumer(LZO)算法、Lempel-Ziv-Stac(LZS)算法、LZ4算法、LZF算法等。在一些实施例中,每个压缩引擎125可以使用单独的状态数据来执行压缩操作。例如,压缩引擎125的状态数据可以包括历史缓冲器以存储压缩引擎125处理的最近多个字符。在另一示例中,压缩引擎125的状态数据可以包括散列表。散列表可以包括任意数量的条目,其中每个条目根据输入数据部分(例如,三个字节的串)的唯一散列值被索引。在一个或多个实施例中,压缩引擎125可以是包括电路/逻辑的执行单元以搜索历史缓冲器中的匹配串。例如,压缩引擎125可以通过将输入数据与读取自历史缓冲器的字符序列进行比较来执行搜索操作。可以使用散列表来访问读取自历史缓冲器的本文档来自技高网...
管理压缩加速器中的状态数据

【技术保护点】
1.一种用于数据压缩的处理器,包括:多个处理核;以及压缩加速器,用于压缩包括第一数据块和第二数据块的输入流,所述压缩加速器包括:第一压缩引擎,用于压缩所述第一数据块;以及第二压缩引擎,用于:使用所述第一数据块的子部分来更新所述第二压缩引擎的状态数据;以及在使用所述第一数据块的子部分更新所述第二压缩引擎的状态数据之后,使用所述第二压缩引擎的更新的状态数据来压缩第二数据块。

【技术特征摘要】
2016.12.26 US 15/390,5791.一种用于数据压缩的处理器,包括:多个处理核;以及压缩加速器,用于压缩包括第一数据块和第二数据块的输入流,所述压缩加速器包括:第一压缩引擎,用于压缩所述第一数据块;以及第二压缩引擎,用于:使用所述第一数据块的子部分来更新所述第二压缩引擎的状态数据;以及在使用所述第一数据块的子部分更新所述第二压缩引擎的状态数据之后,使用所述第二压缩引擎的更新的状态数据来压缩第二数据块。2.如权利要求1所述的处理器,其特征在于,所述第二压缩引擎不对所述第一数据块的子部分执行匹配操作。3.如权利要求1所述的处理器,其特征在于,所述第一压缩引擎和所述第二压缩引擎用于并行地执行。4.如权利要求1所述的处理器,其特征在于,所述第二块在所述输入流中直接地跟随所述第一块,并且其中所述第一数据块的子部分包括所述第一数据块的末尾部分。5.如权利要求1所述的处理器,其特征在于,所述第二压缩引擎用于接收多个参数,所述多个参数包括所述第二数据块的开始位置、所述第二数据块的尺寸和等于所述第一数据块的子部分的尺寸的偏移。6.如权利要求1所述的处理器,其特征在于,为了压缩所述第一数据块,所述第一压缩引擎用于:使用所述第一数据块的全部来更新所述第一压缩引擎的状态数据;以及对所述第一数据块执行匹配操作。7.如权利要求1所述的处理器,其特征在于,为了压缩所述第二数据块,所述第二压缩引擎用于:使用所述第二数据块的全部来更新所述第二压缩引擎的状态数据;以及对所述第二数据块的全部执行匹配操作。8.如权利要求1所述的处理器,其特征在于,所述状态数据包括:历史缓冲器,用于存储所述输入流的最近部分的滑动窗口,以及散列表,用于将到所述历史缓冲器中的指针存储为散列值。9.一种用于数据压缩的方法,包括:由压缩加速器接收第一数据块的子部分和第二数据块;由所述压缩加速器使用所述第一数据块的子部分来更新状态数据;以及在使用所述第一数据块的子部分来更新所述状态数据之后,由所述压缩加速器使用所述状态数据来压缩所述第二数据块的全部。10.如权利要求9所述的方法,其特征在于,所述压缩加速器不对与所述第二数据块一起接收的所述第一数据块的子部分执行匹配操作。11.如权利要求9所述的方法,其特征在于,压缩所述第二数据块的全部的步骤包括:使用所述第二数据块的全部来更新所述状态数据;以及对所述第二数据块的全部执行匹配操作。12.如权利要求9所述...

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

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

1