首页> 中国专利> 一种基于开源指令集处理器的AI扩展指令执行方法、装置、存储介质及电子设备

一种基于开源指令集处理器的AI扩展指令执行方法、装置、存储介质及电子设备

摘要

本申请实施例公开了一种AI扩展指令的执行方法、装置、存储介质及电子设备。所述方法由主处理器执行,所述主处理器配置于电子设备,所述电子设备还包括协处理器;所述方法包括:若接收到Custom指令,则根据指令编码的xs1和xs2位识别是否需要读取源寄存器;若是,则在EXU级读取通用寄存器组读出源操作数;在EXU级通过EAI接口的请求通道向协处理器发送请求信息;其中,所述请求信息包括指令编码信息和源操作数;通过EAI接口的反馈通道接收所述协处理器返回的指令执行结果。本技术方案,通过AI指令扩展,调用专用的神经网络计算单元,加快读取时间,可以提升单位时间内处理的图片数量,提升视频分析的实时性。

著录项

说明书

技术领域

本申请实施例涉及人工智能技术领域,尤其涉及一种基于开源指令集处理器的AI扩展指令执行方法、装置、存储介质及电子设备。

背景技术

随着科学技术的不断发展,人工智能(Artificial Intelligence,AI)的工业应用越来越广泛。

目前,在输变配电设备缺陷识别中,通过输电线路无人机,基建现场机动式布控球,检修人员移动作业终端,变电站巡检机器人,以及固定式双目摄像头等巡检装备获取设备运行过程中的可见光、红外光等多谱段光谱图像,通过CPU进行图像的筛选,基于基本的乘加指令集,对图像进行卷积等基本的神经网络计算单元。这种运算方式运行效率非常低,CPU占用率非常高,无法再运行其它的指令。

发明内容

本申请实施例提供一种基于开源指令集处理器的AI扩展指令执行方法、装置、存储介质及电子设备,通过AI指令扩展,调用专用的神经网络计算单元,加快读取时间,可以提升单位时间内处理的图片数量,提升视频分析的实时性。

第一方面,本申请提供了一种基于开源指令集处理器的AI扩展指令执行方法,包括:

根据接收到Custom指令中指令编码的xs1和xs2位识别是否需要读取源寄存器;

需要读取源寄存器时,在EXU级读取通用寄存器组读出源操作数;

在EXU级通过EAI接口的请求通道向协处理器发送请求信息;其中,所述请求信息包括指令编码信息和源操作数;

通过EAI接口的反馈通道接收所述协处理器返回的指令执行结果。

可选的,还包括,根据接收到Custom指令中指令编码的rs1和rs2位识别是否需要写目标寄存器;

若是,则在通过EAI接口的反馈通道接收所述协处理器返回的指令执行结果,并从所述指令执行结果中读取写目标寄存器的值。

可选的,将读取到的写目标寄存器的值写回所述通用寄存器组。

可选的,在EXU级读取通用寄存器组读出源操作数时,包括如下步骤:

确定所述源操作数的目标寄存器是否为先写后读状态;

若是,则暂停所述在EXU级读取通用寄存器组读出源操作数的步骤,直至所述源操作数的目标寄存器解除先写后读状态,在EXU级读取通用寄存器组读出源操作数。

可选的,所述请求信息的编码长度为32比特位。

可选的,所述请求信息的编码格式包括:Opcode编码段,用于使用编码custom-0、custom-1、custom-2和custom-3指令组;

xs1、xs2和xd比特位,控制是否需要读操作;

rs1、rs2和写目标寄存器rd,用于控制是否需要写操作;

funct7区间,用于作为待编码空间。

可选的,若所述请求信息为只读不写的请求信息,则将所述rd比特位作为待编码空间。

第二方面,一种AI扩展指令的执行装置,

读取识别模块,用于根据接收到Custom指令中指令编码的xs1和xs2位识别是否需要读取源寄存器;

源操作数读取模块,用于需要读取源寄存器时,在EXU级读取通用寄存器组读出源操作数;

请求信息发送模块,用于在EXU级通过EAI接口的请求通道向协处理器发送请求信息;其中,所述请求信息包括指令编码信息和源操作数;

执行结果接收模块,用于通过EAI接口的反馈通道接收所述协处理器返回的指令执行结果。

第三方面,一种电子设备,包括协同交互的主处理器和协处理器,所述的主处理器配置上述的装置。

第四方面,一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一项所述的基于开源指令集处理器的AI扩展指令执行方法。

本申请实施例所提供的技术方案,通过AI指令扩展,调用专用的神经网络计算单元,加快读取时间,可以提升单位时间内处理的图片数量,提升视频分析的实时性。

本申请实施例所提供的技术方案,由主处理器执行,所述主处理器配置于电子设备,所述电子设备还包括协处理器;所述方法包括:若接收到Custom指令,则根据指令编码的xs1和xs2位识别是否需要读取源寄存器;若是,则在EXU级读取通用寄存器组读出源操作数;在EXU级通过EAI接口的请求通道向协处理器发送请求信息;其中,所述请求信息包括指令编码信息和源操作数;通过EAI接口的反馈通道接收所述协处理器返回的指令执行结果。

附图说明

构成本申请的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本申请实施例提供的AI扩展指令的执行方法的流程图;

图2是本申请实施例提供的EAI指令编码格式的示意图;

图3是本申请实施例提供的AI扩展指令的执行装置的结构示意图;

图4是本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

以下详细说明均是示例性的说明,旨在对本发明提供进一步的详细说明。除非另有指明,本发明所采用的所有技术术语与本申请所属领域的一般技术人员的通常理解的含义相同。本发明所使用的术语仅是为了描述具体实施方式,而并非意图限制根据本发明的示例性实施方式。

图1是本申请实施例提供的AI扩展指令的执行方法的流程图,本实施例可适用于AI扩展指令执行情况,该方法可以由本申请实施例所提供的AI扩展指令的执行装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于电子设备中。

如图1所示,所述方法由主处理器执行,所述主处理器配置于电子设备,所述电子设备还包括协处理器;所述方法包括:

S110、若接收到Custom指令,则根据指令编码的xs1和xs2位识别是否需要读取源寄存器。

主处理器的译码(Decode)单元在EXU级对指令的Opcode进行译码,判断其是否属于任意一种Custom指令组。

在本实施例中,可选的,所述请求信息的编码长度为32比特位。

在本实施例中,可选的,所述请求信息的编码格式包括:Opcode编码段,用于使用编码custom-0、custom-1、custom-2和custom-3指令组;

xs1、xs2和xd比特位,控制是否需要读操作;

rs1、rs2和写目标寄存器rd,用于控制是否需要写操作;

funct7区间,用于作为待编码空间。

图2是本申请实施例提供的EAI指令编码格式的示意图,如图2所示,指令的第0位至第6位区间为Opcode编码段,使用编码custom-0、custom-1、custom-2和custom-3指令组。

xs1、xs2和xd比特位分别用于控制是否需要读源寄存器rs1、rs2和写目标寄存器rd。

如果xs1位的值为1,则表示该指令需要读取由rs1比特位索引的通用寄存器作为源操作数1;如果xs1位的值为0,则表示该指令不需要源操作数1。

同理,如果xs2位的值为1,则表示该指令需要读取由rs2比特位索引的通用寄存器作为源操作数2;如果xs2位的值为0,则表示该指令不需要源操作数2。

如果xd位的值为1,则表示该指令需要写回结果至由rd比特位指示的目标寄存器;如果xd位的值为0,则表示该指令无须写回结果。

指令的第25位~第31位为funct7区间,可作为额外的编码空间,用于编码更多的指令,因此一种Custom指令组可以使用funct7区间编码出128条指令,则4组Custom指令组共可以编码出512条两读一写(读取两个源寄存器,写回一个目标寄存器)的协处理器指令。

在本实施例中,可选的,若所述请求信息为只读不写的请求信息,则将所述rd比特位作为待编码空间。

如果有的协处理器指令仅读取一个源寄存器,或者无须写回目标寄存器,则可以使用这些无用的比特位(譬如rd比特位)来编码出更多的协处理器指令。

S120、若是,则在EXU级读取通用寄存器组读出源操作数。

如果主处理器译码判断该指令属于Custom指令,则继续依据指令编码的xs1和xs2位判断是否需要读取源寄存器。如需要读取,则在EXU级读取通用寄存器组(Regfile)读出源操作数。

在本实施例中,可选的,在EXU级读取通用寄存器组读出源操作数之前,所述方法还包括:

确定所述源操作数的目标寄存器是否为先写后读状态;

若是,则暂停所述在EXU级读取通用寄存器组读出源操作数的步骤,直至所述源操作数的目标寄存器解除先写后读状态,执行暂停所述在EXU级读取通用寄存器组读出源操作数的步骤。

主处理器会维护数据依赖的正确性,譬如该指令需要读取的源寄存器与之前正在执行的某条指令存在着先写后读(RAW)的依赖性,则处理器流水线会暂停直至该RAW解除。另外,主处理器会依据指令编码的xd位判断该Custom指令是否需要写回结果至通用寄存器组,如需要写回,则会将目标寄存器的索引信息存储在主处理器的流水线控制模块中,直至写回完成,以便供后续的指令进行数据依赖性的判断。

S130、在EXU级通过EAI接口的请求通道向协处理器发送请求信息;其中,所述请求信息包括指令编码信息和源操作数。

其中,经过上述的步骤之后,主处理器在EXU级通过EAI接口的请求通道派发给外部的协处理器,派发的信息包括指令的编码信息、两个源操作数的值。

协处理器通过请求通道接受指令之后,需对指令做进一步的译码,并进行实际的执行操作。

S140、通过EAI接口的反馈通道接收所述协处理器返回的指令执行结果。

协处理器在完成执行后,通过EAI接口的反馈通道将结果反馈给主处理器。如果是需要写回结果的指令,则反馈通道还需包含返回结果的值。

主处理器在收到反馈通道的反馈结果之后,则将此次指令从流水线中退役并将结果写回Regfile。

在一种可行的实施例中,可选的,在接收到Custom指令之后,所述方法还包括:

根据指令编码的rs1和rs2位识别是否需要写目标寄存器;

若是,则在通过EAI接口的反馈通道接收所述协处理器返回的指令执行结果之后,所述方法还包括:

从所述指令执行结果中读取写目标寄存器的值。

本技术方案,通过增加EAI协处理接口,EAI指令的编码以及EAI指令执行过程,降低了CPU的利用率,加快了AI神经网络的运行速率,提高算法的运行效率,提高了芯片的性能。

可选的,在从所述指令执行结果中读取写目标寄存器的值之后,所述方法还包括:

将所述写目标寄存器的值写回所述通用寄存器组。

主处理器在收到反馈通道的反馈结果之后,则将此次指令从流水线中退役并将结果写回Regfile。

本申请实施例所提供的技术方案,由主处理器执行,所述主处理器配置于电子设备,所述电子设备还包括协处理器;所述方法包括:若接收到Custom指令,则根据指令编码的xs1和xs2位识别是否需要读取源寄存器;若是,则在EXU级读取通用寄存器组读出源操作数;在EXU级通过EAI接口的请求通道向协处理器发送请求信息;其中,所述请求信息包括指令编码信息和源操作数;通过EAI接口的反馈通道接收所述协处理器返回的指令执行结果。本技术方案,通过AI指令扩展,调用专用的神经网络计算单元,加快读取时间,可以提升单位时间内处理的图片数量,提升视频分析的实时性。

图3是本申请实施例提供的AI扩展指令的执行装置的结构示意图。如图3所示,所述装置配置于主处理器,所述主处理器配置于电子设备,所述电子设备还包括协处理器;所述装置包括:

读取识别模块310,用于若接收到Custom指令,则根据指令编码的xs1和xs2位识别是否需要读取源寄存器;

源操作数读取模块320,用于若所述读取识别模块识别为是,则在EXU级读取通用寄存器组读出源操作数;

请求信息发送模块330,用于在EXU级通过EAI接口的请求通道向协处理器发送请求信息;其中,所述请求信息包括指令编码信息和源操作数;

执行结果接收模块340,用于通过EAI接口的反馈通道接收所述协处理器返回的指令执行结果。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。

本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种AI扩展指令的执行方法,该方法包括:

若接收到Custom指令,则根据指令编码的xs1和xs2位识别是否需要读取源寄存器;

若是,则在EXU级读取通用寄存器组读出源操作数;

在EXU级通过EAI接口的请求通道向协处理器发送请求信息;其中,所述请求信息包括指令编码信息和源操作数;

通过EAI接口的反馈通道接收所述协处理器返回的指令执行结果。

存储介质——任何的各种类型的存储器电子设备或存储电子设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的AI扩展指令的执行操作,还可以执行本申请任意实施例所提供的AI扩展指令的执行方法中的相关操作。

本申请实施例提供了一种电子设备,该电子设备中可集成本申请实施例提供的AI扩展指令的执行装置。图4是本申请实施例提供的一种电子设备的结构示意图。如图4所示,本实施例提供了一种电子设备400,其包括:一个或多个处理器420;存储装置410,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器420执行,使得所述一个或多个处理器420实现本申请实施例所提供的AI扩展指令的执行方法,该方法包括:

若接收到Custom指令,则根据指令编码的xs1和xs2位识别是否需要读取源寄存器;

若是,则在EXU级读取通用寄存器组读出源操作数;

在EXU级通过EAI接口的请求通道向协处理器发送请求信息;其中,所述请求信息包括指令编码信息和源操作数;

通过EAI接口的反馈通道接收所述协处理器返回的指令执行结果。

当然,本领域技术人员可以理解,处理器420还实现本申请任意实施例所提供的AI扩展指令的执行方法的技术方案。

图4显示的电子设备400仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图4所示,该电子设备400包括处理器420、存储装置410、输入装置430和输出装置440;电子设备中处理器420的数量可以是一个或多个,图4中以一个处理器420为例;电子设备中的处理器420、存储装置410、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线450连接为例。

存储装置410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块单元,如本申请实施例中的AI扩展指令的执行方法对应的程序指令。

存储装置410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置430可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏、扬声器等电子设备。

本申请实施例提供的电子设备,CPU通过增加EAI协处理接口,EAI指令的编码,在EAI指令执行时使用硬件加速单元,提升AI算法的处理效率。

上述实施例中提供的AI扩展指令的执行装置、存储介质及电子设备可执行本申请任意实施例所提供的AI扩展指令的执行方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的AI扩展指令的执行方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

由技术常识可知,本发明可以通过其它的不脱离其精神实质或必要特征的实施方案来实现。因此,上述公开的实施方案,就各方面而言,都只是举例说明,并不是仅有的。所有在本发明范围内或在等同于本发明的范围内的改变均被本发明包含。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号