用于解码的并行霍夫曼数据解码器、设计结构和方法技术

技术编号:13824694 阅读:82 留言:0更新日期:2016-10-12 19:12
在保持寄存器中保持主数据输入和超前输入。向多个即M个半解码器提供所述主数据输入和所述超前输入的连续的重叠部分,所述半解码器包括霍夫曼码的频繁出现的码字的子集。当没有遇到在所述半解码器中不可获取的码字时,所述半解码器并行地在单个时钟周期中将所述频繁出现的码字中的M个解码。当遇到在所述半解码器中不可获取的码字时,将意图用于所述半解码器中的对应的一个的输入施加到以三态内容可寻址存储器实现的全解码器的输入,该意图用于所述半解码器中的对应的一个的输入包括在所述半解码器中的所述对应的一个中不可获取的所述码字。所述全解码器包括所述霍夫曼码的全部码字。

【技术实现步骤摘要】

本专利技术涉及电气、电子和计算机领域,并且更具体地涉及系统架构等。
技术介绍
霍夫曼码是使用由David A.Huffman开发的算法发现的最优前缀码。更常见的符号通常使用比更不常见的符号更少的比特表示。DEFLATE是使用LZ77算法和霍夫曼编码的组合的数据压缩算法,并且在RFC 1951中规定。在DEFLATE RFC 1951中定义一个示例霍夫曼解码器。
技术实现思路
本专利技术的原理提供用于并行霍夫曼解码器的技术。在一个方面中,用于将根据霍夫曼码编码的数据解码的并行霍夫曼数据解码器包括:保持寄存器,其具有保持主数据输入的主部分、保持超前输入的超前部分、以及多个输出;以及多个即M个半解码器,每一个半解码器具有输入和输出,所述输入耦接到所述保持寄存器的所述多个输出中的对应的一个。所述输入各自从所述保持寄存器的所述输出获得所述保持寄存器的所述主部分和所述超前部分中的数据的连续的重叠部分。还包括以三态内容可寻址存储器实现的全解码器。所述全解码器具有输入和输出,所述输入可选择性地连接以获得数据的所述重叠部分中的给定一个。进一步的元件包括解码器选择和排序单元,其具有多个输入、选择输出和多个输出通道(lane),所述多个输入耦接到所述半解码器的所述输出和所述全解码器的所述输出,所述选择输出控制所述全解码器输入的选择性连接。所述全解码器包括所述霍夫曼码的全部码字;所述半解码器包括所述霍夫曼码的频繁出现的码字的子集;以及当没有遇到在所述半解码器中不可获取的码字时,所述半解码器并行地在单个时钟周期中将所述频繁出现的码字中的M个解码。当遇到在所述半解码器中不可获取的码字时,所述解码器选择和排序单元使得意图用于所述半解码器中的对应的一个的输入被施加到所述全解码器的所述输入,该意图用于所述半解码器中的对
应的一个的输入包括在所述半解码器中的所述对应的一个中不可获取的所述码字。在另一方面中,一种设计结构被有形地实施在非临时性机器可读介质中,所述设计结构用于设计、制造或测试集成电路,并且所述设计结构包括如刚才所述的并行霍夫曼数据解码器。在再一方面中,一种用于并行地将根据霍夫曼码编码的数据解码的示例方法包括在保持寄存器中保持主数据输入和超前输入;并且向多个即M个半解码器提供所述主数据输入和所述超前输入的连续的重叠部分。所述半解码器包括所述霍夫曼码的频繁出现的码字的子集。当没有遇到在所述半解码器中不可获取的码字时,进一步的步骤包括并行地在单个时钟周期中将所述频繁出现的码字中的M个解码。当遇到在所述半解码器中不可获取的码字时,进一步的步骤包括将意图用于所述半解码器中的对应的一个的输入施加到以三态内容可寻址存储器实现的全解码器的输入,该意图用于所述半解码器中的对应的一个的输入包括在所述半解码器中的所述对应的一个中不可获取的所述码字,所述全解码器包括所述霍夫曼码的全部码字。如这里使用的,“促成”动作包括执行所述动作、使得所述动作更容易、帮助进行所述动作、或使得所述动作被执行。因此,通过示例而非限制的方式,通过发送适当的数据或命令以使得或帮助执行由在远程处理器上执行的指令进行的动作,在一个处理器上执行的指令可以促成所述动作。为了避免疑惑,在动作器通过除了执行动作之外促成所述动作时,所述动作仍然由某一实体或实体的组合执行。可以使用计算机程序产品来实现多个设计结构方面,所述计算机程序产品包括具有计算机可用程序代码的计算机可读存储介质。此外,可以经由包括存储器和耦接到所述存储器并且可操作以实现设计结构或设计过程的至少一个处理器的系统(或装置)来实现所述设计结构或过程。本专利技术的技术可以提供大量有益技术效果;例如,通过使用半解码器而非全解码器,比先前的技术需要更少的硬件资源和/或更少的芯片面积。注意,如这里所使用的,“半解码器”不一定精确地是全解码器的大小的1/2。根据结合附图阅读的对本专利技术的示例性实施例的下列详细描述,本专利技术的这些和其他特征和优点将变得清楚。附图说明图1示出从现有技术中已知的霍夫曼编码的多个方面;图2示出根据本专利技术的一方面的示例性的基于三态内容可寻址存储器(TCAM)的解码器;图3示出根据本专利技术的一方面的并行霍夫曼解码器的实施例;图4示出根据本专利技术的一方面的并行霍夫曼解码器的进一步的多个方面;图5和6示出根据本专利技术的多个方面的符号分布;图7示出根据本专利技术的一方面的用于处置不由半解码器处理的码字的技术;图8示出本专利技术的进一步的半解码器方面;图9示出根据本专利技术的一方面的示例执行数据;以及图10是在半导体设计、制造和/或测试中使用的设计过程的流程图。具体实施方式如所述,霍夫曼码是使用由David A.Huffman开发的算法发现的最优前缀码。更常见的符号通常使用比更不常见的符号更少的比特表示。DEFLATE是使用LZ77算法和霍夫曼编码的组合的数据压缩算法,并且在RFC 1951中规定。在DEFLATE RFC 1951中定义一个示例霍夫曼解码器。此外,在该方面中,数据被编码成块,如下:<块><块><块>…例如,在每一个块中可以存在3比特的首标(header)。如果给定的块是块的序列中的最后的块,则第1比特可以具有值1,否则(即,在预计更多的块的情况下)具有值0。第2和第3比特对于原始的块可以使得值00存储在块中,对于固定的霍夫曼表(事先商定的)可以使得值01存储在块中,对于动态霍夫曼表可以使得值10被存储在块中。通过重复串消除(LZ编码)和使用加权的符号树(霍夫曼编码)来实现压缩。关于重复串消除,考虑以下:如由箭头指示的,重复的串由返回所述串的第一次出现的指针替代。保
留所述串的第一个副本。这里,由返回“S”的第一次出现的指针替代“S”的随后的出现,并且由返回“P”的第一次出现的指针替代“P”的随后的出现。指针将包括诸如“回溯100个字符并且复制10个字节”的信息。指针比原始数据更小,并且因此可以实现压缩。对文件进行“拉链压缩(zipping)”是非限制性示例。这是第一阶段;在第二阶段执行霍夫曼编码。编码的串具有从3到258字节的长度和从1到32768字节的距离(滑动窗口)。现在参考图1,霍夫曼编码使用更少的比特来编码更常见的符号。码的比特序列长度与符号频率成反比。例如,可以如下编码符号A、B、P和Q:符号:码=A:0,B:10,P:110,Q:111。霍夫曼编码是无前缀的;即,没有码的比特序列是另一个码的比特序列的前缀。因此,B:10→C:101是不可能的。此外,关于无前缀属性,当编码的比特被级联时,关于一个符号何时开始和结束不存在模糊性。因此,不需要分开符号的记号。序列PABQ可以因此被编码为110010111。然而,这使得并行解码器的构造变得复杂,因为它是比特串行处理。此外,关于DEFLATE,霍夫曼编码器将符号编码为码。288个符号将文字和指针长度编码,如下:●0-255:文字(例如原始ASCII将在这里)●256:deflate块的结束(终结符号)●257-285:3-258字节的匹配长度+额外的比特(不是文字,而是将跟随在该码字之后的指针的串(匹配)长度)。下列表示出串匹配长度:注意,符号首先被“霍夫曼化”,并且随后附加额外的比特以将匹配长(match 本文档来自技高网
...

【技术保护点】
一种用于将根据霍夫曼码编码的数据解码的并行霍夫曼数据解码器,所述并行霍夫曼数据解码器包括:保持寄存器,其具有保持主数据输入的主部分、保持超前输入的超前部分、以及多个输出;多个即M个半解码器,每一个半解码器具有输入和输出,所述输入耦接到所述保持寄存器的所述多个输出中的对应的一个,所述输入各自从所述保持寄存器的所述输出获得所述保持寄存器的所述主部分和所述超前部分中的数据的连续的重叠部分;全解码器,其以三态内容可寻址存储器实现,所述全解码器具有可选择性地连接以获得数据的所述重叠部分中的给定一个的输入、和输出;解码器选择和排序单元,其具有耦接到所述半解码器的所述输出和所述全解码器的所述输出的多个输入、控制所述全解码器输入的所述选择性连接的选择输出、和多个输出通道;其中:所述全解码器包括所述霍夫曼码的全部码字;所述半解码器包括所述霍夫曼码的频繁出现的码字的子集;当没有遇到在所述半解码器中不可获取的码字时,所述半解码器并行地在单个时钟周期中将所述频繁出现的码字中的M个解码;以及当遇到在所述半解码器中不可获取的码字时,所述解码器选择和排序单元使得意图用于所述半解码器中的对应的一个的输入被施加到所述全解码器的所述输入,该意图用于所述半解码器中的对应的一个的输入包括在所述半解码器中的所述对应的一个中不可获取的所述码字。...

【技术特征摘要】
2015.03.28 US 14/672,1351.一种用于将根据霍夫曼码编码的数据解码的并行霍夫曼数据解码器,所述并行霍夫曼数据解码器包括:保持寄存器,其具有保持主数据输入的主部分、保持超前输入的超前部分、以及多个输出;多个即M个半解码器,每一个半解码器具有输入和输出,所述输入耦接到所述保持寄存器的所述多个输出中的对应的一个,所述输入各自从所述保持寄存器的所述输出获得所述保持寄存器的所述主部分和所述超前部分中的数据的连续的重叠部分;全解码器,其以三态内容可寻址存储器实现,所述全解码器具有可选择性地连接以获得数据的所述重叠部分中的给定一个的输入、和输出;解码器选择和排序单元,其具有耦接到所述半解码器的所述输出和所述全解码器的所述输出的多个输入、控制所述全解码器输入的所述选择性连接的选择输出、和多个输出通道;其中:所述全解码器包括所述霍夫曼码的全部码字;所述半解码器包括所述霍夫曼码的频繁出现的码字的子集;当没有遇到在所述半解码器中不可获取的码字时,所述半解码器并行地在单个时钟周期中将所述频繁出现的码字中的M个解码;以及当遇到在所述半解码器中不可获取的码字时,所述解码器选择和排序单元使得意图用于所述半解码器中的对应的一个的输入被施加到所述全解码器的所述输入,该意图用于所述半解码器中的对应的一个的输入包括在所述半解码器中的所述对应的一个中不可获取的所述码字。2.如权利要求1所述的并行霍夫曼数据解码器,其中,以比所述三态内容可寻址存储器更便宜的技术实现所述半解码器。3.如权利要求2所述的并行霍夫曼数据解码器,其中,所述更便宜的技术包括静态随机存取存储器。4.如权利要求2所述的并行霍夫曼数据解码器,其中,所述更便宜的技术包括动态随机存取存储器。5.如权利要求1所述的并行霍夫曼数据解码器,进一步包括超前寄存器,
\t其具有获得数据流的数据输入,并且具有耦接到所述保持寄存器的所述主部分的输出,其中所述保持寄存器通过抽取所述数据流和绕过所述超前寄存器来获得所述超前输入。6.如权利要求1所述的并行霍夫曼数据解码器,进一步包括复用器,其具有耦接到所述保持寄存器的第一输入、选择输入、以及耦接到所述全解码器的所述输入的输出,其中所述解码器选择和排序单元通过发送选择信号到所述选择输入来使得意图用于所述半解码器中的所述对应的一个的所述输入被施加到所述全解码器的所述输入,该意图用于所述半解码器中的所述对应的一个的所述输入包括在所述半解码器中的所述对应的一个中不可获取的所述码字。7.如权利要求1所述的并行霍夫曼数据解码器,其中,数据的所述重叠部分重叠1比特。8.一种有形地在非临时性机器可读介质中实施的设计结构,用于设计、制造或测试集成电路,所述设计结构包括用于将根据霍夫曼码编码的数据解码的并行霍夫曼数据解码器,所述并行霍夫曼数据解码器继而包括:保持寄存器,其具有保持主数据输入的主部分、持超前输入的超前部分、及多个输出;多个即M个半解码器,每一个半解码器具有输入和输出,所述输入耦接到所述保持寄存器的所述多个输出中的对应的一个,所述输入各自从所述保持寄存器的所述输出获得所述保持寄存器的所述主部分和所述超前部分中的数据的连续的重叠部分;全解码器,其以三态内容可寻址存储器实现,所述全解码器具有可选择性地连接以获得数据的所述重叠部分中的给定一个的输入、和输出;解码器...

【专利技术属性】
技术研发人员:B阿巴利B布拉纳
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1