加速压缩方法以及加速压缩装置制造方法及图纸

技术编号:21298077 阅读:28 留言:0更新日期:2019-06-12 07:31
本发明专利技术公开一种加速压缩方法以及加速压缩装置。该加速压缩装置包括预取缓冲器(look‑ahead buffer)、字串匹配处理流水线及控制电路。从数据缓冲器(data buffer)提取的待压缩字串被存储至预取缓冲器。在每个发布周期从所述预取缓冲器并行发布P个实例。当这些实例所对应的P个子字串互为完全相同时,所述控制电路所述P个实例中的一个实例发送至所述字串匹配处理流水线进行匹配操作,而不将所述P个实例中的其余实例发送至所述字串匹配处理流水线。

【技术实现步骤摘要】
加速压缩方法以及加速压缩装置
本专利技术涉及一种加速装置,且特别涉及一种对压缩操作进行硬件加速的加速压缩方法以及加速压缩装置。
技术介绍
压缩加速装置(compressionaccelerator)是专门协助执行压缩/解压缩的硬件。压缩加速装置一般会采用基于字典的压缩算法(例如LZ77、LZSS、LZ78、LZW等算法)。在字典(即滑动窗,slidingwindow)中的位置信息(包含匹配长度与匹配偏移量)被用来替代原始数据(rawdata),从而实现数据压缩。对于压缩加速装置来说,最复杂的部分在于进行最长首码字串匹配(longest-prefixstringmatching),而最长首码字串匹配方法通常可归类为:基于内容可定址存储器(CAM-based,ContentAddressableMemory-based)以及基于散列(hash-based)二种。以基于散列的字串匹配器为例,其通常利用散列电路将待压缩字串的多个字符(散列键,HaskKey)转换为散列值(HashValue)。散列电路依据散列值对散列表(hashtable)进行查表与比较。散列键对应的散列值出现在散列表中,表明字典(滑动窗)的内容具有这个字符(散列键),因此压缩加速装置可以获得这个字符在字典(滑动窗)中的位置(匹配偏移量),接着进行最长匹配(LongestMatch,LM)比较。所谓最长匹配比较,是从所述匹配偏移量开始,在字典(滑动窗)中寻找最长能匹配的长度。最后,压缩加速装置可以输出匹配对(matchpair,即匹配长度与匹配偏移量)来替代原始数据(rawdata),从而实现数据压缩。无论如何,若是待压缩字串的内容出现了大量连续重复字符,很显然地,这些连续重复字符(相同的HaskKey)必然对应相同的散列值。相同的散列值都进入同一个散列库(HashBank),导致原本可以并行方式处理多个散列键的硬件压缩加速器,只能以串行方式处理,进而导致数据吞吐能力(throughput)降低,甚至可能会降低至软件压缩的水准。
技术实现思路
本专利技术提供一种加速压缩方法以及加速压缩装置,以改善相同内容的多个子字串被发送至散列匹配器导致散列冲突的情形,提高硬件压缩加速器的压缩效率。本专利技术的实施例提供一种加速压缩方法,用以实施于一加速压缩装置中。加速压缩装置包括预取缓冲器及字串匹配处理流水线。所述加速压缩方法包括:从数据缓冲器提取待压缩字串并存储至预取缓冲器,其中所述待压缩字串包括Q个字符;以及在每个发布周期从所述预取缓冲器并行发布P个实例(instance)。其中,所述P个实例的每一个依序对应于以所述待压缩字串中的连续P个字符的每一个字符作为起始字符的一个子字串,其中Q和P为大于1的正整数,且Q大于P。当所述P个实例所对应的P个所述子字串互为完全相同时,将所述P个实例中的其中之一发送至所述字串匹配处理流水线进行匹配操作,而不将所述P个实例中的其余实例发送至所述字串匹配处理流水线。本专利技术的实施例提供一种加速压缩装置。加速压缩装置包括预取缓冲器、字串匹配处理流水线以及控制电路。预取缓冲器用以存储从数据缓冲器提取的待压缩字串,其中所述待压缩字串包括Q个字符,在每个发布周期从所述预取缓冲器并行发布P个实例。所述P个实例的每一个依序对应于以所述待压缩字串中的连续P个字符的每一个字符作为一起始字符的一个子字串。其中,Q和P为大于1的正整数,且Q大于P。字串匹配处理流水线耦接于预取缓冲器。当所述P个实例所对应的P个子字串互为完全相同时,所述控制电路将所述P个实例中的一个实例发送至所述字串匹配处理流水线进行一匹配操作,而不将所述P个实例中的其余实例发送至所述字串匹配处理流水线。基于上述,本专利技术诸实施例所述加速压缩方法以及加速压缩装置判断多个实例所关联的多个子字串是否互为相同。当这些实例所关联的这些子字串互为相同时,这些实例中的一个实例被发送至所述字串匹配处理流水线进行一匹配操作,而这些实例中的其余实例不被发送至所述字串匹配处理流水线。因此,所述加速压缩方法以及加速压缩装置可以改善相同内容的多个子字串被发送至散列匹配器导致散列冲突的情形。所述加速压缩方法以及所述加速压缩装置可以提高硬件压缩加速器的压缩效率。为让本专利技术的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是依据本专利技术实施例的微处理器的系统架构图。图2是依据本专利技术一实施例所绘示的一种加速压缩装置的电路方块(circuitblock)示意图。图3是依据本专利技术实施例所绘示的状态图。图4是依据本专利技术一实施例所绘示的散列请求操作的流程示意图。图5是依据本专利技术一实施例所绘示的散列回复处理操作的流程示意图。图6是依据本专利技术一实施例所绘示的数据回复处理操作的流程示意图。图7是依据本专利技术一实施例所绘示的退却处理操作的流程示意图。图8是依据本专利技术一实施例说明图2所示散列匹配器的电路方块示意图。图9是依据本专利技术一实施例说明图8所示匹配器的电路方块示意图。图10是依据本专利技术一实施例说明一种散列匹配方法的流程示意图。图11说明待压缩字串的具体范例。图12说明待压缩字串的另一个具体范例。图13说明待压缩字串的又一个具体范例。【符号说明】10:微处理器20:加速压缩装置22:字串匹配处理流水线110:末级高速缓冲存储器130:加速器接口150_1、150_2、150_j:加速器170_1、170_2、170_i:处理器内核210:数据缓冲器220:提取单元230:中介缓冲器240:控制电路250:散列匹配器260:最长字串匹配器270:格式化器280:预取缓冲器810_1、810_2、810_3、810_4:散列函数830:选择器850_1、850_2、850_3、850_4:先进先出队列870_1、870_2、870_3、870_4:匹配器890_1、890_2、890_3、890_4:存储器库910_1、910_2、910_3:比较器930:仲裁器IP:发布指针RP:退却指针S31:空闲状态S32:散列请求状态S33:数据请求状态S34:不匹配状态S36:完全匹配状态S37:部分匹配状态S410~S470、S510~S577、S610~S695、S710~S770、S1010~S1077:步骤T1、T2、T3、Tk、Ta、Tb、Tc:发布周期具体实施方式在本申请说明书全文(包括权利要求书)中所使用的“耦接(或连接)”一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成该第一装置可以直接连接于该第二装置,或者该第一装置可以通过其他装置或某种连接手段而间接地连接至该第二装置。另外,凡可能之处,在附图及实施方式中使用相同标号的元件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的元件/构件/步骤可以相互参照相关说明。图1是依据本专利技术实施例的微处理器10的系统架构图。微处理器10可包含多个处理器内核,例如图1所示处理器内核170_1、170_2、…、170_i。微处理器10还包含多个加速器(Accelerator),例如图1所示加速器150_1、150_2、…、150_j。其中,i、j为整数,随着不同设计需求而有不同。加速器本文档来自技高网
...

【技术保护点】
1.一种加速压缩方法,实施于加速压缩装置中,该加速压缩装置包括预取缓冲器及字串匹配处理流水线,所述加速压缩方法包括:从数据缓冲器提取待压缩字串并存储至所述预取缓冲器,其中所述待压缩字串包括Q个字符;以及在每个发布周期从所述预取缓冲器并行发布P个实例,其中,所述P个实例的每一个依序对应于以所述待压缩字串中的连续P个字符的每一个字符作为一起始字符的子字串,其中Q和P为大于1的正整数,且Q大于P,其中:当所述P个实例所对应的P个所述子字串互为完全相同时,将所述P个实例中的其中之一发送至所述字串匹配处理流水线进行匹配操作,而不将所述P个实例中的其余实例发送至所述字串匹配处理流水线。

【技术特征摘要】
1.一种加速压缩方法,实施于加速压缩装置中,该加速压缩装置包括预取缓冲器及字串匹配处理流水线,所述加速压缩方法包括:从数据缓冲器提取待压缩字串并存储至所述预取缓冲器,其中所述待压缩字串包括Q个字符;以及在每个发布周期从所述预取缓冲器并行发布P个实例,其中,所述P个实例的每一个依序对应于以所述待压缩字串中的连续P个字符的每一个字符作为一起始字符的子字串,其中Q和P为大于1的正整数,且Q大于P,其中:当所述P个实例所对应的P个所述子字串互为完全相同时,将所述P个实例中的其中之一发送至所述字串匹配处理流水线进行匹配操作,而不将所述P个实例中的其余实例发送至所述字串匹配处理流水线。2.如权利要求1所述的加速压缩方法,其中,当所述P个实例所对应的P个所述子字串互不完全相同时,将所述P个实例的每一个发送至所述字串匹配处理流水线进行所述匹配操作。3.如权利要求1所述的加速压缩方法,其中该方法还包括:存储所有所述实例于中介缓冲器,其中每个所述实例包含所对应的所述子字串的状态、匹配长度及匹配偏移量,其中没有被发送至所述字串匹配处理流水线的实例在该中介缓冲器的该状态为不匹配状态。4.如权利要求1所述的加速压缩方法,其中所述字串匹配处理流水线还包括散列匹配器及最长字串匹配器,所述匹配操作还包括:为每一所述实例发送散列请求给所述散列匹配器,当所述散列匹配器传来的第一回复中包含匹配信息时,发送数据请求给所述最长字串匹配器;以及依据所述最长字串匹配器传来的第二回复中包含的长度是否小于最大匹配长度的判断,去更新所述实例的状态、匹配长度及匹配偏移量;以及按照所述实例所对应的所述子字串在所述待压缩字串中的原始顺序,并依据所述实例的每一个的所述状态、所述匹配长度及所述匹配偏移量,而输出结果给格式化器,使得所述格式化器据以压缩所述待压缩字串。5.如权利要求4所述的加速压缩方法,其中,还包括:当所述第一回复包含不匹配信息时,将所述实例的所述状态更新为不匹配状态;以及当所述第一回复包含所述匹配信息时,还将所述实例的所述状态更新为数据请求状态,更新所述实例的所述匹配长度为所述子字串的长度,以及更新所述实例的所述匹配偏移量为所述第一回复中的偏移量。6.如权利要求4所述的加速压缩方法,其中,当所述第二回复所包含的所述长度小于所述最大匹配长度时,更新所述实例的所述状态为部分匹配状态,以及以所述长度更新所述实例的所述匹配长度;以及当所述第二回复包含的所述长度不小于所述最大匹配长度时,更新所述实例的所述状态为完全匹配状态,以所述最大匹配长度更新所述实例的所述匹配长度,以及发出相应于所述实例的另一数据请求给所述最长字串匹配器以继续后续的字串比对。7.如权利要求4所述的加速压缩方法,其中,输出所述结果给所述格式化器的步骤包括:当所述实例的所述状态为不匹配状态时,所述结果包含所述实例中的字符;以及当所述实例的所述状态为部分匹配状态或者完全匹配状态时,所述结果包含所述实例中的所述匹配长度及所述匹配偏移量。8.如权利要求4所述的加速压缩方法,其中,所述实例所对应的所述子字串在所述待压缩字串中的所述原始顺序由退却指针控制,其中在每个所述发布周期,所述退却指针顺序向后跳转P个字符。9.如权利要求1所述的加速压缩方法,其中发布所述实例的顺序由发布指针控制,其中在每个所述发布周期,所述发布指针顺序向后跳转P个字符。10.一种加速压缩装置,包括:预取缓冲器,用以存储从数据缓冲器提取的...

【专利技术属性】
技术研发人员:李琳王峥李晓阳齐宗普
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海,31

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

1