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

灵活的压缩头部和代码生成制造技术

技术编号:33880525 阅读:18 留言:0更新日期:2022-06-22 17:10
本申请公开了灵活的压缩头部和代码生成。一种集成电路的实施例可以包括硬件压缩器来压缩数据,该硬件压缩器包括电路,来在历史缓冲器中存储输入数据,基于输入数据计算一个或多个码表,并且基于计算出的一个或多个码表来计算压缩流头部。公开并且要求保护了其他实施例。例。例。

【技术实现步骤摘要】
灵活的压缩头部和代码生成


[0001]本公开总体上涉及数据压缩技术,以及硬件压缩技术。

技术介绍

[0002]DEFLATE压缩算法是一种通用的压缩算法(例如,在ZLIB、GZIP等等中实现)。DEFLATE基于LZ77算法来寻找数据匹配,并且DEFLATE用霍夫曼编码的符号对LZ77输出进行编码。压缩流由一系列的块组成,其中块头部定义了在该块中要使用的霍夫曼表。在大多数情况下,霍夫曼码是针对块的内容进行优化的。这意味着需要通过数据两遍:一遍是计算该块的数据的统计信息,另一遍是进行实际压缩。在这两遍之间,要进行计算,以基于来自第一遍的统计信息来计算一组霍夫曼码。

技术实现思路

[0003]根据本公开的第一方面,提供了一种集成电路,包括:衬底;以及耦合到所述衬底的硬件压缩器,用于对数据进行压缩,所述硬件压缩器包括电路,所述电路用于:将输入数据存储在历史缓冲器中,基于所述输入数据计算一个或多个码表,并且基于计算出的一个或多个码表来计算压缩流头部。
[0004]根据本公开的第二方面,提供了一种方法,包括:将输入数据存储在硬件压缩器的历史缓冲器中;由所述硬件压缩器基于所述输入数据计算一个或多个码表;以及由所述硬件压缩器基于计算出的一个或多个码表来计算压缩流头部。
[0005]根据本公开的第三方面,提供了一种装置,包括:两个或更多个硬件加速器引擎;存储器,与所述两个或更多个硬件加速器引擎通信耦合,所述存储器用于为所述两个或更多个硬件加速器引擎存储一个或多个作业;以及控制器,与所述存储器和所述两个或更多个硬件加速器引擎通信耦合,所述控制器用于为所述两个或更多个硬件加速器引擎控制所述一个或多个作业,其中,所述两个或更多个硬件加速器引擎中的每一个包括硬件解压缩器和对在所述两个或更多个硬件加速器引擎之间共享的硬件压缩器的访问,所述硬件压缩器包括电路,所述电路用于:将输入数据存储在历史缓冲器中,基于所述输入数据计算一个或多个码表,并且基于计算出的一个或多个码表来计算压缩流头部。
附图说明
[0006]在附图中以示例方式而非限制方式图示了本专利技术的各种实施例,在附图中:
[0007]图1是根据一个实施例的集成电路的示例的框图;
[0008]图2A至2C是根据一个实施例的方法的示例的流程图;
[0009]图3是根据一个实施例的装置的示例的框图;
[0010]图4是根据一个实施例的硬件压缩器的示例的框图;
[0011]图5是根据一个实施例的硬件加速器的示例的框图。
[0012]图6A是根据本专利技术的实施例图示出示例性有序管线和示例性寄存器重命名、无序
发出/执行管线两者的框图。
[0013]图6B是根据本专利技术的实施例图示出要被包括在处理器中的有序架构核心的示例性实施例和示例性寄存器重命名、无序发出/执行架构核心两者的框图;
[0014]图7A

7B图示出更具体的示例性有序核心架构的框图,该核心将是芯片中的若干个逻辑块(包括相同类型和/或不同类型的其他核心)之一;
[0015]图8是根据本专利技术的实施例的处理器的框图,该处理器可以具有多于一个核心、可以具有集成的存储器控制器、并且可以具有集成的图形;
[0016]图9

图12是示例性计算机架构的框图;并且
[0017]图13是根据本专利技术的实施例的与使用软件指令转换器来将源指令集中的二进制指令转换成目标指令集中的二进制指令相对比的框图。
具体实施方式
[0018]本文论述的实施例以各种方式提供了用于硬件压缩的技术和机制。本文描述的技术可被实现在一个或多个电子设备中。可以利用本文描述的技术的电子设备的非限制性示例包括任何种类的移动设备和/或固定设备,例如相机、蜂窝电话、计算机终端、桌面型计算机、电子阅读器、传真机、一体机(kiosk)、膝上型计算机、上网本计算机、笔记本计算机、互联网设备、支付终端、个人数字助理、媒体播放器和/或记录器、服务器(例如,刀片式服务器、机架安装式服务器、其组合,等等)、机顶盒、智能电话、平板个人计算机、超便携个人计算机、有线电话、其组合,等等。更一般而言,本文描述的技术可以用于包括可操作来提供硬件压缩的集成电路的各种电子设备的任何一种中。
[0019]在接下来的描述中,论述了许多细节以提供对本公开的实施例的更透彻说明。然而,本领域技术人员将会清楚,可以在没有这些具体细节的情况下实践本公开的实施例。在其他实例中,以框图形式而不是详细示出公知的结构和设备,以避免模糊本公开的实施例。
[0020]注意,在实施例的相应附图中,以线条来表示信号。一些线条可能更粗,以指示出更大数目的构成信号路径,和/或在一端或多端具有箭头,以指示出信息流的方向。这种指示并不旨在是限制性的。更确切地说,这些线条与一个或多个示例性实施例结合使用来帮助更容易理解电路或逻辑单元。由设计需要或偏好决定的任何所表示的信号可实际上包括可在任一方向上行进并且可利用任何适当类型的信号方案来实现的一个或多个信号。
[0021]在整个说明书中,以及在权利要求中,术语“连接”意指直接连接,例如连接的事物之间的电连接、机械连接或磁连接,而没有任何中间设备。术语“耦合”意指直接或间接连接,例如连接的事物之间的直接电连接、机械连接或磁连接,或者通过一个或多个无源或有源中间设备的间接连接。术语“电路”或“模块”可以指被布置为彼此协作以提供期望的功能的一个或多个无源和/或有源组件。术语“信号”可以指至少一个电流信号、电压信号、磁信号、或者数据/时钟信号。“一”、“一个”和“该”的含义包括复数引用。“在
……
中”的含义包括“在
……
中”和“在
……
上”。
[0022]术语“设备”通常可以指的是根据该术语的使用的上下文的装置。例如,设备可以指层或结构的堆叠、单个结构或层、具有有源和/或无源元件的各种结构的连接,等等。一般而言,设备是三维结构,该三维结构具有x

y

z笛卡儿坐标系中沿着x

y方向的平面和沿着z方向的高度。设备的平面也可以是包括该设备的装置的平面。
[0023]术语“缩放”一般是指将某个设计(图解和布局)从一个工艺技术转换到另一个工艺技术并随后减小布局面积。术语“缩放”一般也指在同一技术节点内减小布局和器件的大小。术语“缩放”还可以指相对于另一参数(例如,电力供应水平)调整信号频率(例如,减慢或加速——即分别是缩小或放大)。
[0024]术语“基本上”、“接近”、“大致”、“近似”和“大约”一般指在目标值的+/

10%内。例如,除非在其使用的明确上下文中另有指明,否则术语“基本上等于”、“大约等于”和“大致等于”意指在这样描述的事物之间没有超过偶然的差异。在本领域中,这种差异通常不超过预定目标值的+/

10%。
[0025]要理解,这样使用的术语在适当的情况下本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集成电路,包括:衬底;以及耦合到所述衬底的硬件压缩器,用于对数据进行压缩,所述硬件压缩器包括电路,所述电路用于:将输入数据存储在历史缓冲器中,基于所述输入数据计算一个或多个码表,并且基于计算出的一个或多个码表来计算压缩流头部。2.根据权利要求1所述的集成电路,其中,所述电路还用于:为所述硬件压缩器提供多种操作模式。3.根据权利要求2所述的集成电路,其中,在一种操作模式中,所述电路还用于:响应于所述硬件压缩器的单个作业而将整个作业数据集合存储在所述历史缓冲器中,其中,所述作业数据的大小小于或等于所述历史缓冲器的大小;响应于所述单个作业,针对所述作业数据计算所述一个或多个码表;响应于所述单个作业,基于计算出的所述作业数据的一个或多个码表来计算所述压缩流头部;并且响应于所述单个作业,基于计算出的一个或多个码表和计算出的压缩流头部,为存储在所述历史缓冲器中的所述作业数据生成压缩输出数据。4.根据权利要求2至3中任一项所述的集成电路,其中,在一种操作模式中,所述电路还用于:响应于具有超过所述历史缓冲器的大小的作业数据的所述硬件压缩器的第一作业,将计算出的一个或多个码表和计算出的压缩流头部存储到存储器;并且响应于所述硬件压缩器的第二作业,基于存储的一个或多个码表和存储的压缩流头部来为所述作业数据生成压缩输出数据。5.根据权利要求2至3中任一项所述的集成电路,其中,在一种操作模式中,所述电路还用于:从所述输入数据读取统计信息;并且基于读取的统计信息来计算所述一个或多个码表和所述压缩流头部。6.根据权利要求2至3中任一项所述的集成电路,其中,在一种操作模式中,所述电路还用于:在没有所述压缩流头部的情况下输出计算出的一个或多个码表。7.根据权利要求2至3中任一项所述的集成电路,其中,在一种操作模式中,所述电路还用于:用非零值来替换可能存在的令牌的零计数值。8.根据权利要求2至3中任一项所述的集成电路,其中,在一种操作模式中,所述电路还用于:在第一遍之后为预制代码和动态代码两者计算预期压缩大小;并且基于各个计算出的预期压缩大小中的较低结果,为第二遍加载与动态代码或预制代码相对应的一组码表和压缩流头部。9.根据权利要求2至3中任一项所述的集成电路,其中,所述电路还用于:
基于用户可配置的参数来设置最大代码长度限制。10.一种方法,包括:将输入数据存储在硬件压缩器的历史缓冲器中;由所述硬件压缩器基于所述输入数据计算一个或多个码表;以及由所述硬件压缩器基于计算出的一个或多个码表来计算压缩流头部。11.根据权利要求10所述的方法,还包括:为所述硬件压缩器提供多种操作模式。12.根据权利要求11所述的方法,其中,在一种操作模式中,所述方法还包括:响应于所述硬件压缩器的单个作业,将整个作业数据集合存储在所述历史缓冲器中,其中,所述作业数据的大小小于或等于所述历史缓冲器的大小;响应于所述单个作业,针对所述作业数据计算所述一个或多个码表;响应于所述单个作业,基于计算出的所述作业数据的一个或多个码表来计算所述压缩流头部;以及响应于所述单个作业,基于计算出的一个或多个码表和计算出的压缩流头部,为存储在所述历史缓冲器中的所述作业数据生成压缩输出数据。13.根据权利要求11至12中任一项所述的方法,其中,在一种操作模式中,所述方法还包括:响应于具有超过所述历史缓冲器的大小的作业数据的所述硬件压缩器的第一作业,将计算出的一个或多个码表和计算出的压缩流头部存...

【专利技术属性】
技术研发人员:詹姆士
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1