用于字符串处理的字节比较方法以及指令处理装置制造方法及图纸

技术编号:28034072 阅读:16 留言:0更新日期:2021-04-09 23:15
公开了一种指令处理装置,包括:第一寄存器,适于指示源字符串,所述源字符串包括至少一个字节;译码单元,适于接收字节比较指令并进行译码,所述字节比较指令至少指示所述第一寄存器;以及执行单元,耦接到所述第一寄存器和所述译码单元,并执行所述译码后的字节比较指令,以便获取所述源字符串;将所述源字符串中的至少一个字节逐个地与结尾标识符进行比较;以及根据所述比较的结果获得与所述源字符串相对应的结果值。该指令处理装置采用字节比较指令定位结尾标识符,以提升字符串处理能力。该字节比较指令可以实现为处理器的扩展指令。本公开还公开了一种相应的字节比较方法、字符串比较方法、计算机系统和片上系统。

【技术实现步骤摘要】
用于字符串处理的字节比较方法以及指令处理装置
本公开涉及处理器
,更具体地,涉及用于字符串处理的字节比较方法以及指令处理装置。
技术介绍
目前,处理器的主流架构包括X86架构、ARM架构和MIPS架构。随着精简指令集RISC的发展,期望进一步开发基于第五代精简指令集RISC-V的新型处理器架构。RISC-V是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),不仅具有完全开源、架构简单、模块化设计的优点,而且该架构的定义使得硬件实现简单,从而可以减少处理器芯片的开发周期和成本。此外,RISC-V架构可以支持32位元或者64位元的寄存器宽度,从而可以兼顾多种应用场景的性能需求。随着处理器应用于人工智能(AI)应用领域,处理器的自然语言处理能力越来越重要。为了将自然语言的文本内容分析成处理器可以理解的含义,处理器对文本内容进行语法分析和分词,其中涉及处理器中实现字符串比较指令的功能。如果在处理器架构中采用扩展指令集,例如字节比较指令,则可以显著提高处理器的文字处理能力,从而在提高文本检索和自然语言处理的处理效率和速度方面有优势。在现有的ARM架构和MIPS架构中,在字符串比较操作中判断字符串结尾和是否相等的汇编指令序列包括多条标准指令(例如,在ARM架构中的mov/sub/orr/bic指令)。现有的处理器架构并未提供适于字符串处理的高性能的专用指令,而是执行标准指令。由于执行的指令数量多,因此字符串处理速度达不到自然语言处理的性能需求。诸如RISC-V架构的精简指令集则需要增强字符串处理能力,才能符合AI应用领域对字符串处理能力的需求。然而,处理器的指令集是内嵌的微代码,需要占用宝贵的系统资源。而且,如果指令集采用复杂的代码设计方式,反而会造成处理器的性能劣化。因此,将实现何种功能的字符串处理指令嵌入处理器中作为扩展指令是处理器的指令系统设计的难点之一。
技术实现思路
有鉴于此,本公开实施例提供适于执行字节比较指令的指令处理装置,从而采用字节比较指令以提升处理器字符串的处理能力。根据本公开的第一方面,提供一种指令处理装置,包括:第一寄存器,适于指示源字符串,所述源字符串包括至少一个字节;译码单元,适于接收字节比较指令并进行译码,所述字节比较指令至少指示所述第一寄存器;以及执行单元,耦接到所述第一寄存器和所述译码单元,并执行所述译码后的字节比较指令,以便获取所述源字符串;将所述源字符串中的至少一个字节逐个地与结尾标识符进行比较;以及根据所述比较的结果获得与所述源字符串相对应的结果值。根据本公开的第二方面,提供一种用于字符串处理的字节比较方法,包括:获取源字符串;将所述源字符串逐个字节地与结尾标识符进行比较;以及根据所述比较结果获得与所述源字符串相对应的结果值。根据本公开的第三方面,提供一种字符串比较方法,包括:按照寄存器位宽加载所述第一字符串和第二字符串彼此相对应的内容;执行字节比较指令,将所述第一字符串的内容作为所述源字符串,产生相对应的第一结果值,根据所述第一结果值判断所述第一字符串的内容是否包含结尾标识符;以及在所述第一字符串的内容未包含结尾标识符的情形下,对所述第一字符串的内容和所述第二字符串的内容进行大小比较。根据本公开的第四方面,提供一种计算机系统,包括:存储器;以及处理器,耦接到所述存储器,并包括:第一寄存器,适于指示源字符串,所述源字符串包括至少一个字节;译码单元,适于接收字节比较指令并进行译码,所述字节比较指令至少指示所述第一寄存器;以及执行单元,耦接到所述第一寄存器和所述译码单元,并执行所述译码后的字节比较指令,以便获取所述源字符串;将所述源字符串中的至少一个字节逐个地与结尾标识符进行比较;以及根据所述比较的结果获得与所述源字符串相对应的结果值。根据本公开的第五方面,提供一种片上系统,包括上述的指令处理装置。根据本公开实施例的指令执行装置,适于执行字节比较指令,其中,根据源字符串的内容产生结果值用于快速定位结尾标识符的位置,从而可以减少字符串比较所需的指令数量,以减少字符串比较操作的执行时间。根据本公开实施例的指令执行装置,采用上述的字节比较指令判断第一字符串的内容中是否存在结尾标识符,在连续的字节比较操作中无需多条指令组合实现判断包含结尾标识符的功能,因而可以减少实现该功能所需指令的数量,提高字符串比较操作的性能。在优选的实施例中,该指令执行装置在执行字节比较指令、异或指令和或指令三条指令之后才进行第一字符串的内容和第二字符串的内容的大小比较,因而可以进一步减少实现该功能所需的减法运算的数量,进一步提高字符串比较操作的性能。附图说明通过参考以下附图对本公开实施例的描述,本公开的上述以及其它目的、特征和优点将更为清楚,在附图中:图1示出根据本公开一个实施例的处理器的示意性框图;图2示出根据本公开一个实施例的指令处理装置的示意性框图;图3示出根据本公开一个实施例的指令处理装置的示意性框图;图4示出根据本公开一个实施例的字节比较方法的流程图;图5示出根据本公开一个实施例的字符串比较方法的流程图;以及图6示出根据本公开一个实施例的检索系统的框图。图7示出根据本公开一个实施例的计算机系统的结构示意图;以及图8示出根据本公开一个实施例的片上系统的结构示意图。具体实施方式以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。在本文中使用以下术语。指令集,在处理器内嵌的用来计算和控制处理器系统的全部指令的集合。在设计时,处理器就已经嵌入与硬件电路相配合的指令集。程序员采用各种语言编写的程序要翻译(编译或解释)成以指令形式表示的机器语言之后,才能在处理器上运行。因此,指令集反映处理器的基本功能,关系到处理器的性能发挥,构成处理器性能的重要标志。处理器可以根据其内嵌的指令集分成不同的类型,例如X86架构的处理器、ARM架构的处理器、MIPS架构的处理器。程序计数器:简称PC,用于存放下一条指令的指令地址的寄存器。处理器根据程序计数器的指令地址从内存或高速缓存中获取和执行指令。图1示出根据本公开一个实施例的处理器的示意性框图。处理器100包括用于处理指令的一个或多个处理器核110。应用程序和/或系统平台可以控制多个处理器核110处理和执行指令。每个处理器核110可以用于处理特定的指令集。在一些实施例中,指令集可以支持复杂指令集计算(ComplexInstructionSetComputing,CISC)、精简指令集计算(ReducedInstructionSetComputing,RISC)或基于超长指令字(VeryLong本文档来自技高网
...

【技术保护点】
1.一种指令处理装置,包括:/n第一寄存器,适于指示源字符串,所述源字符串包括至少一个字节;/n译码单元,适于接收字节比较指令并进行译码,所述字节比较指令至少指示所述第一寄存器;/n以及/n执行单元,耦接到所述第一寄存器和所述译码单元,并执行所述译码后的字节比较指令,以便获取所述源字符串;将所述源字符串中的至少一个字节逐个地与结尾标识符进行比较;以及根据所述比较的结果获得与所述源字符串相对应的结果值。/n

【技术特征摘要】
1.一种指令处理装置,包括:
第一寄存器,适于指示源字符串,所述源字符串包括至少一个字节;
译码单元,适于接收字节比较指令并进行译码,所述字节比较指令至少指示所述第一寄存器;
以及
执行单元,耦接到所述第一寄存器和所述译码单元,并执行所述译码后的字节比较指令,以便获取所述源字符串;将所述源字符串中的至少一个字节逐个地与结尾标识符进行比较;以及根据所述比较的结果获得与所述源字符串相对应的结果值。


2.根据权利要求1所述的指令处理装置,还包括:
第二寄存器,适于指示所述结果值,
所述字节比较指令指示:
所述第一寄存器,作为第一操作数、
所述第二寄存器,作为第二操作数,
所述第一寄存器和所述第二寄存器分别为通用寄存器,所述第一寄存器保存所述源字符串的内容或地址信息,所述第二寄存器保存所述结果值的内容或地址信息。


3.根据权利要求1所述的指令处理装置,还包括:
零标志寄存器,适于指示所述结果值,
其中,所述字节比较指令指示:
所述第一寄存器,作为第一操作数,
所述第一寄存器为通用寄存器,所述第一寄存器保存所述源字符串的内容或地址信息,所述执行单元根据所述结果值修改设置所述零标志寄存器的标志位。


4.根据权利要求1所述的指令处理装置,其中,所述结尾标识符的数值为00H、0FFH中的任意一个。


5.根据权利要求2所述的指令处理装置,其中,在所述源字符串中表示所述结尾标识符的字节位置,所述结果值的相应字节设置为第一数值,在所述源字符串中表示非结尾标识符的字节位置,所述结果值的相应字节设置为第二数值,所述第一数值与所述第二数值不同。


6.根据权利要求5所述的指令处理装置,其中,所述第一数值为0FFH、01H、080H中的任意一个,所述第二数值为00H、010H中的任意一个。


7.根据权利要求6所述的指令处理装置,其中,所述第一数值为0FFH,所述第二数值为00H,所述结果值非零则表示存在所述结尾标识符。


8.根据权利要求7所述的指令处理装置,其中,所述结果值与所述源字符串的字节长度相同,并且在所述结尾标识符相应的字节位置所有位均置1,在所述非结尾标识符相应的字节位置所有位均置0。


9.根据权利要求8所述的指令处理装置,其中,所述执行单元适于对所述结果值按照字节宽度移位,从非零至零的移位次数表示所述字符结尾符的字节位置。


10.根据权利要求1所述的指令处理装置,其中,所述执行单元适于执行字符串比较操作,包括:
按照寄存器位宽加载所述第一字符串和第二字符串彼此相对应的内容;
执行字节比较指令,将所述第一字符串的内容作为所述源字符串,产生相对应的第一结果值,根据所述第一结果值判断所述第一字符串的内容是否包含结尾标识符;以及
在所述第一字符串的内容未包含结尾标识符的情形下,对所述第一字符串的内容和所述第二字符串的内容进行大小比较。


11.根据权利要求10所述的指令处理装置,其中,重复加载、执行字节比较指令、以及进行大小比较的操作,按照寄存器位宽处理所述第一字符串的全部内容。


12.根据权利要求10所述的指令处理装置,其中,进行大小比较包括采用减指令,对所述第一字符串的内容和所述第二字符串的内容进行减法运算,根据运算结果判断大小。


13.根据权利要求10所述的指令处理装置,所述字符串比较操作还包括:
对所述第一字符串的内容和所述第二字符串的内容进行相等比较;以及
在所述第一字符串的内容未包含结尾标识符,且所述第一字符串的内容和所述第二字符串的内容不相等的情形下,对所述第一字符串的内容和所述第二字符串的内容进行大小比较。


14.根据权利要求13所述的指令处理装置,进行相等比较包括采用异或指令,对所述第一字符串的内容和所述第二字符串的内容进行异或运算以产生第二结果值,根据所述第二结果值判断是否相等。


15.根据权利要求14所述的指令处理装置,其中,所述第一结果值非零表示所述第一字符串的内容包含结尾标识符,所述第二结果值非零表示所述第一字符串的内容与所述第二字符串的内容不相等。


16.根据权利要求15所述的指令处理装置,其中:以及
采用或指令,对所述第一结果值和所述第二结果值进行或运算,以判断是否满足所述第一字符串的内容未包含结尾标识符,且所述第一字符串的内容和所述第二字符串的内容不相等的情形。


17.根据权利要求1所述的指令处理装置,还包括:耦接到所述执行单元的硬件寄存器,适于存储指示是否允许执行字节比较指令的使能标识,以及
所述执行单元适于在所述使能标识指示不允许执行所述字节比较指令时,不执行所述译码后的所述字节比较指...

【专利技术属性】
技术研发人员:刘畅瞿仙淼夏立方朱峰
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1