加速压缩方法以及使用此方法的装置制造方法及图纸

技术编号:16326806 阅读:30 留言:0更新日期:2017-09-29 18:51
本发明专利技术实施例提出一种加速压缩方法,实施于压缩加速器中。在循环的每一迭代中,从第一字符串中取得n个连续字符作为源字符串;将源字符串中的每个字符单独地与第二字符串中的所有字符比较以生成n个第一匹配结果;根据第一匹配结果生成第二匹配结果;根据第二匹配结果判断是否存在n个连续字符的匹配;当不存在时,更新并输出匹配长度,并且结束循环;以及当存在时,将匹配长度加上n并继续循环的下一迭代。

【技术实现步骤摘要】
加速压缩方法以及使用此方法的装置
本专利技术关于一种微处理器技术,特别是一种加速压缩方法以及使用此方法的装置。
技术介绍
字符串匹配方法通常可归类为:基于内容可寻址内存(CAM-,ContentAddressableMemory-based);和基于散列(hash-based);两种。以上所述的字符串匹配都需要优化的最长字串匹配方法,而优化传统上以软件实现。然而,软件的执行效能往往劣于专属硬件的执行效能。因此,需要一种使用专属硬件的加速压缩方法以及使用此方法的装置,用以克服上述缺陷。
技术实现思路
本专利技术的实施例提出一种加速压缩方法,实施于压缩加速器中,至少包含以下步骤:提供第一字符串和第二字符串;以及,反复执行循环,用以决定于第一字符串及第二字符串间的匹配长度。在循环的每一迭代中,从第一字符串中取得n个连续字符作为源字符串;将源字符串中的每个字符单独地与第二字符串中的所有字符比较以生成n个第一匹配结果;根据n个第一匹配结果生成第二匹配结果;根据第二匹配结果判断是否存在n个连续字符的匹配;当不存在上述n个连续字符的匹配时,更新并输出匹配长度,并且结束循环;以及当存在上述n个连续字符的匹配时,将匹配长度加上n及继续循环的下一迭代。本专利技术的实施例提出一种加速压缩装置,至少包含滑动窗口缓存器、预取缓存器、掩码寄存器、n个字符串比较器、位移比较器、结果检查器及控制器,其中n大于1。预取缓存器锁存第一字符串中的n个连续字符作为源字符串,滑动窗口缓存器锁存第二字符串,以及掩码寄存器锁存掩码。n个字符串比较器将源字符串中的每个字符单独地与第二字符串中的所有字符比较,用以生成n个第一匹配结果。位移比较器根据n个第一匹配结果生成第二匹配结果。结果检查器根据第二匹配结果判断是否存在n个连续字符的匹配。当不存在上述n个连续字符的匹配时,控制器更新并输出匹配长度。当存在上述n个连续字符的匹配时,控制器将匹配长度加上n及控制预取缓存器以锁存第一字符串中的后续n个连续字符作为新源字符串。附图说明图1是根据本专利技术实施例的微处理器的系统架构图。图2是根据本专利技术实施例的压缩加速器的方块图。图3是根据本专利技术实施例的字符串比较器的方块图。图4是根据本专利技术实施例的位移比较器的方块图。图5是根据本专利技术实施例的结果检查器的方块图。图6是根据本专利技术实施例的加速压缩的方法流程图。图7A及图7B是根据本专利技术实施例的最大匹配长度计算示意图。图8A及图8B是根据本专利技术实施例的最长字符串匹配器的方块图。图9A是根据本专利技术实施例的第1级位移比较器的方块图。图9B是根据本专利技术实施例的第2级位移比较器的方块图。图9C是根据本专利技术实施例的第3级位移比较器的方块图。图9D是根据本专利技术实施例的第4级位移比较器的方块图。图10是根据本专利技术实施例的结果检查器的方块图。图11A及图11B是根据本专利技术实施例的加速压缩的方法流程图。图12是根据本专利技术实施例的最大匹配长度计算示意图。图13是根据本专利技术实施例的加速压缩的方法流程图。具体实施方式以下说明是为完成专利技术的较佳实现方式,其目的在于描述本专利技术的基本精神,但并不用以限定本专利技术。实际的
技术实现思路
必须参考之后的权利要求范围。必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。在权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。图1是根据本专利技术实施例的微处理器的系统架构图。微处理器10可包含多个处理器核心170_1至170_j及多个加速器(Accelerator)150_1至150_i,i、j为整数,随着不同设计需求而有不同。加速器150_1至150_i举例而言可以是加速功能单元(AFU,AcceleratorFunctionalUnits)。处理器核心170_1至170_j中的任一个包含的组件都涉及电脑指令的执行,包括算术逻辑单元(ALU,ArithmeticLogicUnit)、浮点运算单元(FPU,FloatingPointUnit)、一级缓存(L1Cache)和二级缓存(L2Cache)。每一处理器核心采用指令周期(有时也称提取-解码-执行周期),作为基本操作流程。此流程用以让处理器核心从记忆体取得程式指令,判定此指令指示进行何种操作,并且执行这些操作。加速器150_1至150_i可执行不同功能,并透过加速器接口(AcceleratorInterface)130连接至末级缓存(Last-levelCache)110,用以与处理器核心170_1至170_j通过虚拟位址(virtualaddress)进行数据交换。加速器150_1至150_i中的任一个可协助处理器核心170_1至170_j以更有效率地方式执行特定功能,上述特定功能包括例如压缩,加解密或正则匹配等运算量较大的功能,从而减轻处理器核心170_1至170_j的工作负担。加速器150_1至150_i中的一个可为压缩加速器(compressionaccelerator),用以完成字符串压缩功能。图2是根据本专利技术实施例的压缩加速器的方块图。压缩加速器20包含滑动窗口缓存器(slidingwindowbuffer)310、预取缓存器(lookaheadbuffer)320、掩码寄存器(maskregister)370及匹配长度寄存器393。压缩加速器20包含控制器391,初始时,其控制预取缓存器320以锁存n个字符320_1至320_n,n可为4。虽然本专利技术实施例为每个批次比对4(n=4)个字符的设计,本领域技术人员可根据系统需求在每个批次比对更多或更少的字符,例如,3、5或6个,本专利技术并不因此局限。在一些实施例中,滑动窗口缓存器310可为2048比特的向量寄存器(vectorregister),用以锁存原始字符串中的256个字符,每个字符以8比特表示,例如,“a”、“b”、“c”、“d”、“e”、“f”、“a”、“b”、“c”、“d”、“e”、“f”等等,值得注意的是,在原始字符串的顺序上,滑动窗口缓存器310中的原始字符位于预取缓存器320中的待压缩的原始字符串之前。在一些实施例中,预取缓存器320可为32比特的向量寄存器,用以锁存原始字符串中的4个字符,每个字符以8比特表示,例如,字符320_1至320_4分别为“a”、“b”、“c”及“d”。在一些实施例中,掩码寄存器(maskregister)370可为256比特的寄存器,初始时所有比特均为第一值,例如“2’b1”。在一些实施例中,匹配长度寄存器393可为8比特的寄存器,初始时锁存“0”。压缩加速器20包含字符串比较器330_1至330_4,每一字符串比较器的输入端连接预取缓存器320及滑动窗口缓存器310,其输出端连接至匹配寄存器340_1至340_4中的指定一个。匹配寄存器340_1至340_4中的每一个可包含256个寄存器,其中的第i个寄存器锁存预取缓存器320的输入字符是否与滑动窗本文档来自技高网
...
加速压缩方法以及使用此方法的装置

【技术保护点】
一种加速压缩方法,实施于一压缩加速器中,包括:反复执行一第一循环,用以决定于一第一字符串及一第二字符串间的最大匹配长度,其中,在上述第一循环的每一迭代中,包括:从上述第一字符串中取得n个连续字符作为一源字符串,n大于1;将上述源字符串中的每个字符单独地与上述第二字符串中的所有字符比较以生成n个第一匹配结果;根据上述n个第一匹配结果生成一第二匹配结果;根据上述第二匹配结果判断是否存在上述n个连续字符的匹配;当不存在上述n个连续字符的匹配时,更新并输出一匹配长度,并且结束上述第一循环;以及当存在上述n个连续字符的匹配时,将上述匹配长度加上n并继续上述循环的下一迭代。

【技术特征摘要】
1.一种加速压缩方法,实施于一压缩加速器中,包括:反复执行一第一循环,用以决定于一第一字符串及一第二字符串间的最大匹配长度,其中,在上述第一循环的每一迭代中,包括:从上述第一字符串中取得n个连续字符作为一源字符串,n大于1;将上述源字符串中的每个字符单独地与上述第二字符串中的所有字符比较以生成n个第一匹配结果;根据上述n个第一匹配结果生成一第二匹配结果;根据上述第二匹配结果判断是否存在上述n个连续字符的匹配;当不存在上述n个连续字符的匹配时,更新并输出一匹配长度,并且结束上述第一循环;以及当存在上述n个连续字符的匹配时,将上述匹配长度加上n并继续上述循环的下一迭代。2.如权利要求1所述的加速压缩方法,其中,上述第一匹配结果中的每一个包含m个比特,每一上述第一匹配结果中的第i个比特为一第一值时,指示上述第二字符串中的第i个字符与上述源字符串中的一相应字符相符的信息;以及每一上述第一匹配结果中的第i个比特为一第二值时,指示上述第二字符串中的第i个字符与上述源字符串中的上述相应字符不相符的信息。3.如权利要求1所述的加速压缩方法,其中,除第一迭代外,上述n个连续字符接续上一迭代取得的一字符串。4.如权利要求1所述的加速压缩方法,其中,应用一掩码至上述第二匹配结果以判断是否存在上述n个连续字符的匹配,其中上述掩码储存连续匹配的期望结束位置的后一位置的信息。5.如权利要求4所述的加速压缩方法,其中,当上述第二匹配结果及上述掩码的第t+1个比特均为一第一值时,判断存在上述n个连续字符的匹配,t为n的倍数。6.如权利要求1所述的加速压缩方法,其中,上述第二匹配结果包含m个比特,当上述第二匹配结果中的第j个比特为一第一值时,代表上述第二字符串的第“j-n”至“j-1”个字符与上述源字符串中的全部字符相符,j为n至(m-1)间的任意整数。7.如权利要求1所述的加速压缩方法,其中,在更新上述匹配长度并输出上述更新后的匹配长度的步骤中,还包括:更新上述匹配长度以加上p,p为1至(n-1)间的任意整数。8.如权利要求7所述的加速压缩方法,其中,上述第二匹配结果包含第1级第二匹配结果至第n级第二匹配结果,每级第二匹配结果包含m个比特,其中第p级第二匹配结果中的第i个比特为一第一值时,代表上述第二字符串的第“i-p”至“i-1”个字符与上述源字符串中的前p个字符相符,p为1至n间的任意整数。9.如权利要求7所述的加速压缩方法,其中,在更新上述匹配长度并输出上述更新后的匹配长度的步骤中,还包括:执行一第二循环,用以检查第(n-1)级第二匹配结果至第1级第二匹配结果,以决定上述p值,其中,在上述第二循环的每一迭代中,还包括:当上述第k级第二匹配结果包含至少一个上述第一值时,将上述掩码右移k个比特,k为(n-1)至1之间的任意整数;以及当上述位移后的掩码及上述第k级第二匹配结果的一逻辑及运算结果指示存在k个连续字符的匹配时,p=k。10.如权利要求1所述的加速压缩方法,其中,还包括:当存在上述n个连续字符的匹配时,更新上述掩码中的值为上述掩码及上述第二匹配结果的一应用结果。11.一种加速压缩装置,包括:一滑动窗口缓存器,锁存一第二字符串;一预取缓存器,锁存一第一字符串中的n个连...

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

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

1