字符串比较指令优化的中央处理单元以及其操作方法技术

技术编号:14140728 阅读:59 留言:0更新日期:2016-12-10 16:20
中央处理单元的字符串比较指令优化。所述中央处理单元以字符串缓存器的多个缓存单元储存第一字符串的多个数据单元,使第二字符串在移位寄存器的多个缓存单元间逐步移位,以多个比较器将该字符串缓存器的所述缓存单元的内容与该移位寄存器的所述缓存单元的内容进行比较,且根据所述比较器的输出对应该字符串比较指令要求的比较模式运算该第一字符串以及该第二字符串的比较结果。

【技术实现步骤摘要】

本专利技术涉及中央处理单元(CPU)的字符比较指令优化。
技术介绍
中央处理单元的指令集设计必须在硬件成本以及执行效率之间权衡。如何以低成本硬件在中央处理单元内供应高效指令集为本
重要课题。以X86指令集中的字符串比较指令为例,这些指令加速对XML文本的字符串操作、存储校验等,其大幅优化文本处理,从而提升了办公性能。然而在传统的中央处理单元中,字符串比较指令需要译码为上百条微运算(或微操作或“μops”),中央处理单元的执行单元须执行完这上百条的微运算才能完成该字符串比较指令,执行效率低下。
技术实现思路
根据本专利技术一种实施方式所实现的中央处理单元提供字符串比较指令,且包括字符串缓存器、移位寄存器以及逻辑运算单元。该字符串缓存器以多个缓存单元储存第一字符串的多个数据单元。该移位寄存器令载入的第二字符串的多个数据单元在该移位寄存器的多个缓存单元间逐步移位。所述比较器将该字符串缓存器的所述缓存单元的内容与该移位寄存器的所述缓存单元的内容进行比较。该逻辑运算单元用于根据所述比较器的输出对应该字符串比较指令要求的比较模式运算该第一字符串以及该第二字符串的比较结果。根据本专利技术一种实施方式所实现的一种中央处理单元操作方法以中央处理单元执行字符串比较指令,包括:以该中央处理单元的字符串缓存器的多个缓存单元储存第一字符串的多个数据单元;令第二字符串的多个数据单元在该中央处理单元的移位寄存器的多个缓存单元间逐步移位;将该字符串缓存器的所述缓存单元的内容与该移位寄存器的所述缓存单元的内容进行比较;以及根据上述比较的结果,对应该字符串比较指令要求的比较模式,运算该第一字符串以及该第二字符串的比较结果。移位寄存器的设计使得中央处理单元得以在少数时钟周期内完成字符串比较指令。下文特举实施例,并配合所附图示,详细说明本
技术实现思路
。附图说明图1图解根据本专利技术一种实施方式所实现的中央处理单元100;图2以流程图显示根据本专利技术中央处理单元的微架构,字符串比较指令可转换为三个中央处理单元微运算(包括:字符串有效长度辨识微运算202;比较操作微运算204;以及比较结果产生微运算206)依序进行;以及图3依序图解该移位寄存器104内容。具体实施方式以下叙述列举本专利技术的多种实施例。以下叙述介绍本专利技术的基本概念,且并非意图限制本
技术实现思路
。实际专利技术范围应依照申请权利要求书来界定。图1图解根据本专利技术一种实施方式所实现的中央处理单元100,执行字符串比较指令并包括:字符串缓存器102、移位寄存器104、多个多工器Mux1~Mux7、多个比较器cmp0~cmp7、零值比较器Zero_cmp、以及逻辑运算单元106。字符串缓存器102以多个缓存单元储存第一字符串SRC1的多个数据单元(例如图1中编号0至7,但本专利技术并不限于8个数据单元)。移位寄存器104则可有两种输入,一为零值ZERO,一为第二字符串SRC2。载入该移位寄存器104的数据的多个数据单元(例如图1中编号0至7,但本专利技术并不限于8个数据单元)会在该移位寄存器104的多个缓存单元间逐步移位。所述多工器Mux1~Mux7耦接在该移位寄存器104以及所述比较器cmp0~cmp7之间,在第一模式以及第二模式间切换。所述多工器Mux1~Mux7在该第一模式时,所述比较器cmp0~cmp7是分别将该字符串缓存器102的各个缓存单元的内容与该移位寄存器104的该最低位缓存单元(图1中为储存标号’0’数据单元的该缓存单元)的内容进行比较。所述多工器Mux1~Mux7在该第二模式时,所述比较器cmp0~cmp7是分别将该字符串缓存器102的各个缓存单元的内容与该移位寄存器104的各个缓存单元的内容一对一进行比较。该字符串比较指令所要求的比较模式可为:逐个相等比较模式(Equal Any)、逐个大小比较模式(Ranges)、子字符串比较模式(Equal Ordered)以及全相等比较模式(Equal Each),分别对第一字符SRC1以及第二字源SRC2有不同的比较操作。为实现之,除了字符串缓存器102缓存第一字符SRC1外,填入该移位寄存器104的是该第二字符串SRC2。所述多工器Mux1~Mux7的该第一模式操作可用于满足上述逐个相等比较模式(Equal Any)及逐个大小比较模式(Ranges)。比较器cmp0~cmp7将该字符串缓存器102的所述缓存单元的内容(第一字符串SRC1编号’0’至’7’的数据单元)反复于多个时钟周期中与该移位寄存器104的该最低位缓存单元的内容比较。在连续的8个时钟周期中,该移位寄存器104的该最低位缓存单元的内容循序为编号’0’数据单元、编号’1’数据单元、编号’2’数据单元、编号’3’数据单元、编号’4’数据单元、编号’5’数据单元、编号’6’数据单元、以及编号’7’数据单元。该字符串比较指令要求的比较模式为上述逐个相等比较模式(Equal Any)时,该逻辑运算单元106根据所述比较器cmp0~cmp7的输出运算该第二字符串SRC2的所述数据单元(编号’0’至’7’)中任一个与该第一字符串SRC1的所述数据单元(编号’0’至’7’)中任一个的比较结果。该字符串比较指令要求的比较模式为上述逐个大小比较模式(Ranges)时,该逻辑运算单元106根据所述比较器cmp0~cmp7的输出判断该第二字符串SRC2的所述数据单元(编号’0’至’7’)中任一个如何相对至该第一字符串SRC1的所述数据单元(编号’0’至’7’)所界定的范围,例如比较第二字符串SRC2编号’0’的数据单元是否落入第一字符串SRC1编号’0’与编号’1’的数据单元之间的范围,如是则输出命中(hit)信号,如否则再判断其是否落入第一字符串SRC1编号’1’与编号’2’的数据单元之间的范围…直至找到命中的范围或者比较完所有的范围;然后移位寄存器104移位,取第二字符串SRC2编号’1’的数据单元再进行上述比较…以此类推直至第二字符串SRC2编号’7’的数据单元完成上述比较。所述多工器Mux1~Mux7的该第二模式操作可用于满足上述全相等比较模式(Equal Each)以及子字符串比较模式(Equal Ordered)。在单一时钟周期,比较器cmp0~cmp7将该字符串缓存器102的所述缓存单元的内容(第一字符串SRC1编号’0’至’7’的数据单元)与该移位寄存器104的所述缓存单元的内容(第一字符串SRC1编号’0’至’7’的数据单元)一对一比较(即,第一字符串SRC1的编号’0’数据单元与第二字符串SRC2的编号’0’数据单元比较,第一字符串SRC1的编号’1’数据单元与第二字符串SRC2的编号’1’数据单元比较,以此类推至第一字符串SRC1的编号’7’数据单元与第二字符串SRC2的编号’7’数据单元比较)。该字符串比较指令要求的比较模式为上述全相等比较模式(Equal Each)时,该逻辑运算单元106根据所述比较器cmp0~cmp7的输出运算该第一字符串SRC1以及该第二字符串SRC2对应位者是否相等的比较结果。该字符串比较指令要求的比较模式为上述子字符串比较模式(Equal Ordered)时,该逻辑运算单元106根据所述比较器cmp0~cmp7的输出判断出该第一字符串SRC1以及该第二字符本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201610485700.html" title="字符串比较指令优化的中央处理单元以及其操作方法原文来自X技术">字符串比较指令优化的中央处理单元以及其操作方法</a>

【技术保护点】
一种中央处理单元,执行字符串比较指令,其特征在于,包括:字符串缓存器,以多个缓存单元储存第一字符串的多个数据单元;移位寄存器,令载入的第二字符串的多个数据单元在该移位寄存器的多个缓存单元间逐步移位;多个比较器,将该字符串缓存器的所述缓存单元的内容与该移位寄存器的所述缓存单元的内容进行比较;以及逻辑运算单元,根据所述比较器的输出对应该字符串比较指令要求的比较模式运算该第一字符串以及该第二字符串的比较结果。

【技术特征摘要】
1.一种中央处理单元,执行字符串比较指令,其特征在于,包括:字符串缓存器,以多个缓存单元储存第一字符串的多个数据单元;移位寄存器,令载入的第二字符串的多个数据单元在该移位寄存器的多个缓存单元间逐步移位;多个比较器,将该字符串缓存器的所述缓存单元的内容与该移位寄存器的所述缓存单元的内容进行比较;以及逻辑运算单元,根据所述比较器的输出对应该字符串比较指令要求的比较模式运算该第一字符串以及该第二字符串的比较结果。2.根据权利要求1所述的中央处理单元,其特征在于:该字符串比较指令要求的该比较模式为逐个相等比较模式时,所述比较器将该字符串缓存器的所述缓存单元的内容与该移位寄存器的所述缓存单元中的最低位缓存单元的内容进行比较,且该逻辑运算单元根据所述比较器的输出运算该第二字符串的所述数据单元中任一个与该第一字符串的所述数据单元中任一个的比较结果。3.根据权利要求1所述的中央处理单元,其特征在于:该字符串比较指令要求的该比较模式为逐个大小比较模式时,所述比较器将该字符串缓存器的所述缓存单元的内容与该移位寄存器的所述缓存单元中的最低位缓存单元的内容进行比较,且该逻辑运算单元根据所述比较器的输出判断该第二字符串的所述数据单元中任一个如何相对至该第一字符串的所述数据单元所界定的范围。4.根据权利要求1所述的中央处理单元,其特征在于:该字符串比较指令要求的该比较模式为全相等比较模式时,所述比较器是将该字符串缓存器的所述缓存单元的内容与该移位寄存器的所述缓存单元的内容一对一进行比较,且该逻辑运算单元根据所述比较器的输出运算该第一字符串以及该第二字符串对应位是否相等的比较结果。5.根据权利要求1所述的中央处理单元,其特征在于:该字符串比较指令要求的该比较模式为子字符串比较模式时,所述比较器是将该字符串缓存器的所述缓存单元的内容与该移位寄存器的所述缓存单元的内容一对一进行比较,且该逻辑运算单元根据所述比较器的输出判断出该第一字符串以及该第二字符串之间相同的子字符串。6.根据权利要求1所述的中央处理单元,其特征在于:对应该字符串比较指令,该移位寄存器的所述缓存单元的内容全部初始化为零值、所述比较器是将该字符串缓存器的所述缓存单元的内容与该移位寄存器的所述缓存单元的内容一对一进行比较、且该逻辑运算单元根据所述比较器的输出辨识该第一字符串的有效长度。7.根据权利要求6所述的中央处理单元,其特征在于,还包括:零值比较器,将该第二字符串与零值比较,使该逻辑运算单元根据该零值比较器的输出辨识该第二字符串的有效长度。8.根据权利要求7所述的中央处理单元,其特征在于:该零值比较器对应该移位寄存器的所述缓存单元的内容初始化为零值的期间动作,使该第一字符串以及该第二字符串的有效长度在同一时钟周期获得。9.根据权利要求1所述的中央处理单元,其特征在于:对应该字符串比较指令,该字符串缓存器的所述缓存单元的内容全部初始化为零值、所述比较器是将该字符串缓存器的所述缓存单元的内容与该移位寄存器的所述缓存单元的内容一对一进行比较、且该逻辑运算单元根据所述比较器的输出辨识该第二字符串的有效长度。10.根据权利要求1所述的中央处理单元,其特征在于,还包括:多个多工器,耦接在该移位寄存器以及所述比较器之间,使所述比较器是在所述多工器的第一模式下将该字符串缓存器的所述缓存单元的内容与该移位寄存器的最低位缓存单元的内容进行比较,其中,在所...

【专利技术属性】
技术研发人员:孙云胜张稚
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海;31

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

1