CN115167922A - 指令处理方法、装置、电子设备及计算机可读存储介质 - Google Patents

指令处理方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN115167922A
CN115167922A CN202210751604.4A CN202210751604A CN115167922A CN 115167922 A CN115167922 A CN 115167922A CN 202210751604 A CN202210751604 A CN 202210751604A CN 115167922 A CN115167922 A CN 115167922A
Authority
CN
China
Prior art keywords
instruction
custom
type
processing
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210751604.4A
Other languages
English (en)
Inventor
陈伟杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Eswin Computing Technology Co Ltd
Original Assignee
Beijing Eswin Computing Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Eswin Computing Technology Co Ltd filed Critical Beijing Eswin Computing Technology Co Ltd
Priority to CN202210751604.4A priority Critical patent/CN115167922A/zh
Publication of CN115167922A publication Critical patent/CN115167922A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本申请实施例提供了一种指令处理方法、装置、电子设备及计算机可读存储介质,涉及计算机技术领域。本申请实施例中,通过获取自定义指令,对所述自定义指令进行解析,确定所述自定义指令的指令类型,根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。其中,所述自定义指令为预先扩展的自定义指令集中的指令,自定义指令集中包括至少两种类型的指令。也就是说,本申请实施例中,可以通过预先扩展自定义指令集,对自定义指令集中的指令进行处理,实现通过扩充指令集,以满足多种智能计算应用场景的计算需求。

Description

指令处理方法、装置、电子设备及计算机可读存储介质
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种指令处理方法、装置、电子设备及计算机可读存储介质。
背景技术
随着信息技术的发展,智能物联网(Artificial Intelligence&Internet ofThings,AIoT)的应用愈加广泛。AIoT应用场景下,处理芯片规模多达千亿颗以上,远远超过移动互联网和非移动互联网的处理芯片规模。因此,在AIoT应用场景下,可能会出现多种计算需求,例如边缘计算的需求等。在相关技术中,指令集中的指令无法满足AIoT应用场景下的计算需求。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是指令集中的指令无法满足计算需求的技术缺陷。
根据本申请的一个方面,提供了一种指令处理方法,该方法包括:
获取自定义指令,其中,所述自定义指令为预先扩展的自定义指令集中的指令,自定义指令集中包括至少两种类型的指令;所述自定义指令是基于预设类型语言生成的;
对所述自定义指令进行解析,确定所述自定义指令的指令类型;
根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。
可选的,在所述获取自定义指令之前,所述方法还包括:
通过第一类型语言,生成第一指令,根据所述第一指令生成所述自定义指令集;其中,所述第一指令的指令处理模式包括第一处理模式;
和/或
通过第二类型语言,生成第二指令,根据所述第二指令生成所述自定义指令集;其中,所述第二指令的指令处理模式包括第二处理模式;
所述预设类型语言包括所述第一类型语言和所述第二类型语言。
可选的,所述根据所述自定义指令的指令类型,对所述自定义指令执行指令处理,包括:
根据所述指令类型,确定所述自定义指令对应的处理模式;
基于所述处理模式,对所述自定义指令执行指令处理。
可选的,所述自定义指令包括至少两个,所述获取自定义指令之后,所述方法还包括:
将所述自定义指令划分为至少两个待解析指令队列。
可选的,所述对所述自定义指令进行解析,确定所述自定义指令的指令类型,包括:
分别对至少两个所述待解析指令队列中的自定义指令进行解析,确定所述自定义指令的指令类型。
可选的,所述处理模式包括所述第一处理模式和所述第二处理模式,
所述第一处理模式包括插件模式;
所述第二处理模式包括内联模式。
根据本申请的另一个方面,提供了一种指令处理装置,该装置包括:
指令获取模块,用于获取自定义指令,其中,所述自定义指令为预先扩展的自定义指令集中的指令,自定义指令集中包括至少两种类型的指令;所述自定义指令是基于预设类型语言生成的;
指令类型确定模块,用于对所述自定义指令进行解析,确定所述自定义指令的指令类型;
指令处理模块,用于根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。
可选的,所述装置还包括指令集生成模块,用于在所述获取自定义指令之前,通过第一类型语言,生成第一指令,根据所述第一指令生成所述自定义指令集;其中,所述第一指令的指令处理模式包括第一处理模式;
和/或
通过第二类型语言,生成第二指令,根据所述第二指令生成所述自定义指令集;其中,所述第二指令的指令处理模式包括第二处理模式;
所述预设类型语言包括所述第一类型语言和所述第二类型语言。
根据本申请的另一个方面,提供了一种指令处理装置,该装置包括:
取指单元,其通过指令缓存获取自定义指令,其中,所述自定义指令为预先扩展的自定义指令集中的指令,所述自定义指令集中包括至少两种类型的指令;所述自定义指令是基于预设类型语言生成的;
解码器,其对所述自定义指令进行解析,确定所述自定义指令的指令类型;
至少两个不同模式的执行单元,其根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。
根据本申请的另一个方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据本申请的第一方面任一项所述的指令处理方法。
例如,本申请的第三方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行如本申请的第一方面所示的指令处理方法对应的操作。
根据本申请的再一个方面,提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现本申请的第一方面任一项所述的指令处理方法。
例如,本申请实施例的第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示指令处理方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面的各种可选实现方式中提供的方法。
本申请提供的技术方案带来的有益效果是:
本申请实施例中,通过获取自定义指令,对所述自定义指令进行解析,确定所述自定义指令的指令类型,根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。其中,所述自定义指令为预先扩展的自定义指令集中的指令,自定义指令集中包括至少两种类型的指令。也就是说,本申请实施例中,可以通过预先扩展自定义指令集,对自定义指令集中的指令进行处理,实现通过扩充指令集,以满足多种智能计算应用场景的计算需求。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种处理器的架构示意图之一;
图2为本申请实施例提供的一种指令处理方法的流程示意图之一;
图3为本申请实施例提供的一种指令处理方法的流程示意图之二;
图4为本申请实施例提供的一种指令处理器的架构示意图之二;
图5为本申请实施例提供的一种指令处理器的架构示意图之三;
图6为本申请实施例提供的一种指令处理器的架构示意图之四;
图7为本申请实施例提供的一种指令处理装置的结构示意图之一;
图8为本申请实施例提供的一种指令处理装置的结构示意图之二;
图9为本申请实施例提供的一种指令处理的电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
指令集:指令集是CPU中用来计算和控制计算机系统的一套指令的集合;每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令集。而指令集的先进与否,也关系到CPU的性能发挥,它也是CPU性能体现的一个重要标志。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效的工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分。在计算机中,指示计算机硬件执行某种运算、处理功能的命令称为指令。指令是计算机运行的最小的功能单位,而硬件的作用是完成每条指令规定的功能。一台计算机上全部指令的集合,就是这台计算机的指令系统。指令系统也称指令集,是这台计算机全部功能的体现。而人们设计计算机首要考虑的是它拥有的功能,也就是首先要按功能档次设计指令集,然后按指令集的要求在硬件上实现。指令系统不仅仅是指令的集合,还包括全部指令的指令格式、寻址方式和数据形式。
本申请提供的指令处理方法、装置、电子设备和计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
参见图1,本申请实施例提供了一种支持多模式自定义指令集扩展的处理器架构,其中,所述处理器包括:前端部件11、页表缓存12、一级数据缓存13、二级私有缓存14、内联模式执行单元15、插件模式执行单元16。
前端部件11包括一级指令缓存111、混合模式分支预测器112、取指单元113、解码器114。
其中,一级指令缓存(L1-I-Cache)111用于对自定义指令进行缓存。
混合模式分支预测器(Branch predictor)112在分支指令执行结束之前,预测哪一路分支将会被运行,以提高处理器的指令流水线的性能。混合模式分支预测器112的定向预测获取单元支持反馈预测结果至取指单元113;混合模式分支预测器112的混合间接预测单元与取指单元113分离设置,且支持内核中的各模块独立运行,运行期间更易于进行时钟门控,从而实现节省功耗。
取指单元(Instruction Fetch,IFU)113,使用程序计数器(Program CounterRegister,PC)寄存器的值作为地址,可以从L1-I-Cache中获取自定义指令。取指单元113获取的自定义指令可以形成指令队列,指令队列可以划分为四路待解析指令队列。这样,分别对四路待解析指令队列进行解析时,若其中一路待解析指令队列出现解析异常,其他待解析指令队列不会受其影响,因此避免其他待解析指令队列的解析陷入停滞。
解码器114,对所述自定义指令进行解析,可以确定所述自定义指令的指令类型。
上述前端部件可支持四发射指令解码,即支持分别对四个待解析指令队列中的自定义指令进行解析。
页表缓存12用来存放高速缓冲存储器的部分页表。
一级数据缓存13用来存放数据,一级指令缓存111与一级数据缓存13分离设置。
二级私有缓存14用来存放数据,其仅能被本地处理器访问。
内联模式执行单元15,即支持内联模式的自定义指令集扩展执行单元。内联模式执行单元15包括支持运算开销为1拍、2拍、3拍的固定耗时模式,以及自定义的非固定耗时模式。采用内联模式的优点是:1、CPU寄存器直接可用;先生成的指令的执行结果立即可用,不会因中间数据移动而产生延迟。2、自定义指令的执行相对于协处理器执行方法的有效延迟为零。3、系统接口由现有的CPU逻辑执行,因此开销较小。4、准备操作和恢复结果没有软件开销。5、相比于协处理器执行方式,内联模式不会因主CPU可能会中止而丢弃协处理器指令,或者中止并重新运行协处理器指令。6、安全性较好。
插件模式执行单元16,即支持插件模式的自定义指令集扩展执行单元。插件模式执行单元16包括支持运算开销为1拍、2拍、3拍的固定耗时模式,以及自定义的非固定耗时模式。
本申请实施例中,解码器114对自定义指令进行解码、确定自定义指令的指令类型后,根据所述指令类型将自定义指令发射至对应的执行单元(即内联模式执行单元15或插件模式执行单元16),以在执行单元根据译码结果执行指令。
参见图2,本申请实施例提供了一种指令处理方法,该方法应用于处理器;例如,处理器可以是CPU或图形处理器(Graphics Processing Unit,GPU)等。
在本申请实施例中,处理器是用于取指令、译码、发射、执行等操作的核心部件。可选地,本申请的处理器可以为支持多模式自定义指令集扩展的处理器。
具体的,该方法可以包括以下步骤:
S201:获取自定义指令。
其中,所述自定义指令为预先扩展的自定义指令集中的指令,自定义指令集中包括至少两种类型的指令;所述自定义指令是基于预设类型语言生成的。
其中,自定义指令为自定义指令集中的任意一个或者多个指令。自定义指令集为预先扩展的指令集。
具体而言,自定义指令集可以通过以下方式生成:
可选的,可以通过第一类型语言,生成第一指令;然后,根据所述第一指令生成所述自定义指令集。例如,当处理器处于插件模式下,可以在自定义指令集架构(Custom ISA)下,通过例如Verilog等硬件描述语言添加指令执行逻辑,生成第一指令。
可以理解的是,第一指令为自定义指令集中的指令,第一指令通过第一类型语言生成。也就是说,为便于描述,在生成自定义指令集阶段,将自定义指令集中,通过第一类型语言生成的指令称为第一指令。
此外,还可以通过第二类型语言,生成第二指令;然后,根据所述第二指令生成所述自定义指令集。例如,当处理器处于内联模式,可以通过第二类型语言,生成第二指令。
可以理解的是,第二指令为自定义指令集中的指令,第二指令通过第二类型语言生成。也就是说,为便于描述,在生成自定义指令集阶段,将自定义指令集中,通过第二类型语言生成的指令称为第二指令。
需要说明的是,所述预设类型语言包括所述第一类型语言和所述第二类型语言。
可选的,上述第一指令和第二指令分别对应不同的处理模式。其中,在对第一指令进行指令处理时,可以基于插件模式执行第一指令的指令处理;在对第二指令进行指令处理时,可以基于内联模式执行第二指令的指令处理。
综上所述,本申请实施例的自定义指令集可以是支持多模式的自定义指令集,这样,通过扩展自定义指令集可以满足智能计算场景下的多种计算需求。
作为示例,结合图1,图1所示为一种支持多模式自定义指令集扩展的处理器架构。自定义指令可以缓存于图1中的一级指令缓存(L1-I-Cache)111中,通过处理器中的取指单元(Instruction Fetch,IFU)113,使用程序计数器(Program Counter Register,PC)寄存器的值作为地址,可以从L1-I-Cache中获取自定义指令。
S202:对所述自定义指令进行解析,确定所述自定义指令的指令类型。
结合图3,本申请实施例中,可以通过处理器中的解码器114,对所述自定义指令进行解析,确定所述自定义指令的指令类型。
例如,通过解码器114解析得到自定义指令的指令类型为A类型,如,A类型的指令为通过第一类型语言生成的指令;或者,通过解码器114解析得到自定义指令的指令类型为B类型,如,B类型的指令为通过第二类型语言生成的指令。
在一些实施场景中,获取的自定义指令可以包括多个,多个自定义指令可以组成指令队列,可以将该指令队列划分为至少两个待解析指令队列,然后,在一个时钟周期内,可以分别对至少两个待解析指令队列中的自定义指令进行解析。
作为示例,如图1所示的处理器架构,该处理器的前端部件即可支持四发射指令解码,即支持分别对四个待解析指令队列中的自定义指令进行解析。取指单元113获取的自定义指令可以形成指令队列,指令队列可以划分为四路待解析指令队列。这样,分别对四路待解析指令队列进行解析时,若其中一路待解析指令队列出现解析异常,其他待解析指令队列不会受其影响,因此避免其他待解析指令队列的解析陷入停滞。
此外,可选的,对所述自定义指令进行解析,还可以得到自定义指令的操作数等等。操作数(操作数例如XLEN-1:0]rs1及[XLEN-1:0]rs2)可以被传送至处理器的执行模块15或16,以执行自定义指令的指令处理。
S203:根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。
可选的,不同指令类型的自定义指令可以对应不同的指令处理模式。具体而言,可以根据所述指令类型,确定所述自定义指令对应的处理模式;然后基于所述处理模式,对所述自定义指令执行指令处理。
例如,通过第一类型语言生成的指令的指令类型为A类型;通过第二类型语言生成的指令的指令类型为B类型。A类型指令的指令处理模式为第一处理模式;B类型指令的指令处理模式为第二处理模式。可选的,所述第一处理模式包括插件模式;所述第二处理模式包括内联模式。
本申请实施例中,通过获取自定义指令,对所述自定义指令进行解析,确定所述自定义指令的指令类型,根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。其中,所述自定义指令为预先扩展的自定义指令集中的指令,自定义指令集中包括至少两种类型的指令。也就是说,本申请实施例中,可以通过预先扩展自定义指令集,对自定义指令集中的指令进行处理,实现通过扩充指令集,以满足多种智能计算应用场景的计算需求。
在本申请的一个实施例中,在所述获取自定义指令之前,所述方法还包括:
通过第一类型语言,生成第一指令,根据所述第一指令生成所述自定义指令集;其中,所述第一指令的指令处理模式包括第一处理模式;
和/或
通过第二类型语言,生成第二指令,根据所述第二指令生成所述自定义指令集;其中,所述第二指令的指令处理模式包括第二处理模式;
所述预设类型语言包括所述第一类型语言和所述第二类型语言。
具体而言,在所述获取自定义指令之前,本申请实施例还包括生成自定义指令集的步骤。即自定义指令集可以通过以下方式生成:
可选的,可以通过第一类型语言,生成第一指令,然后,根据所述第一指令生成所述自定义指令集。例如,当处理器处于插件模式下,可以在自定义指令集架构(Custom ISA)下,通过例如Verilog等硬件描述语言添加指令执行逻辑,生成第一指令。
可以理解的是,第一指令也为自定义指令集中的指令,第一指令通过第一类型语言生成。也就是说,为便于描述,在生成自定义指令集阶段,将通过第一类型语言生成的指令称为第一指令。
此外,还可以通过第二类型语言,生成第二指令,然后,根据所述第二指令生成所述自定义指令集。例如,当处理器处于内联模式,可以通过第二类型语言,生成第二指令。
可以理解的是,第二指令也为自定义指令集中的指令,第二指令通过第二类型语言生成。也就是说,为便于描述,在生成自定义指令集阶段,将通过第二类型语言生成的指令称为第二指令。
需要说明的是,所述预设类型语言包括所述第一类型语言和所述第二类型语言。
可选的,上述第一指令和第二指令分别对应不同的处理模式。其中,在对第一指令进行指令处理时,可以基于插件模式执行第一指令的指令处理;在对第二指令进行指令处理时,可以基于内联模式执行第二指令的指令处理。
综上所述,本申请实施例的自定义指令集可以是支持多模式的自定义指令集;这样,通过扩展自定义指令集可以满足智能计算场景下的多种计算需求。
在本申请的一个实施例中,所述根据所述自定义指令的指令类型,对所述自定义指令执行指令处理,包括:
根据所述指令类型,确定所述自定义指令对应的处理模式;
基于所述处理模式,对所述自定义指令执行指令处理。
可选的,不同指令类型的自定义指令可以对应不同的指令处理模式。具体而言,可以根据所述指令类型,确定所述自定义指令对应的处理模式;然后基于所述处理模式,对所述自定义指令执行指令处理。
例如,通过第一类型语言生成的指令的指令类型为A类型;通过第二类型语言生成的指令的指令类型为B类型。A类型指令的指令处理模式为第一处理模式;B类型指令的指令处理模式为第二处理模式。可选的,所述处理模式包括所述第一处理模式和所述第二处理模式,所述第一处理模式可以为插件模式;所述第二处理模式可以为内联模式。
作为示例,结合图4,对内联模式进行说明。如图4所示,其中包括支持内联模式的自定义指令集扩展执行单元(即内联模式执行单元)。内联模式执行单元包括支持运算开销为1拍、2拍、3拍的固定耗时模式,以及自定义的非固定耗时模式。采用内联模式的优点是:1、CPU寄存器直接可用;先生成的指令的执行结果立即可用,不会因中间数据移动而产生延迟。2、自定义指令的执行相对于协处理器执行方法的有效延迟为零。3、系统接口由现有的CPU逻辑执行,因此开销较小。4、准备操作和恢复结果没有软件开销。5、相比于协处理器执行方式,内联模式不会因主CPU可能会中止而丢弃协处理器指令,或者中止并重新运行协处理器指令。6、安全性较好。
作为示例,结合图5和图6,对插件模式进行说明。如图5所示,相比内联模式,支持插件模式的自定义指令集扩展处理器需要额外的握手信号,即请求信号plug_in_request、反馈信号plug_in_response。插件模式在跨时钟域应用场景的优势尤为明显,可避免人工智能物联网(Artificial Intelligence&Internet of Things,AIoT)推理计算、音视频加速指令等计算复杂的逻辑所造成的关键路径时序问题。
如图6所示,其中包括支持插件模式的自定义指令集扩展执行单元(即插件模式执行单元)。插件模式执行单元包括支持运算开销为1拍、2拍、3拍的固定耗时模式,以及自定义的非固定耗时模式。
因此,本申请实施例的处理器架构可以支持插件模式以及内联模式,通过确定根据所述指令类型,可以确定所述自定义指令对应的处理模式;进而选择相应的处理模式,对所述自定义指令执行指令处理。
在本申请的一个实施例中,所述自定义指令包括至少两个,所述获取自定义指令之后,所述方法还包括:
将所述自定义指令划分为至少两个待解析指令队列。
在本申请的一个实施例中,所述对所述自定义指令进行解析,确定所述自定义指令的指令类型,包括:
分别对至少两个所述待解析指令队列中的自定义指令进行解析,确定所述自定义指令的指令类型。
在一些实施场景中,获取的自定义指令可以包括多个,多个自定义指令可以组成指令队列;可以将该指令队列划分为至少两个待解析指令队列。例如,可以划分为四个待解析指令队列;然后,在一个时钟周期内,可以分别对四个待解析指令队列中的自定义指令进行解析。
作为示例,如图1所示的处理器架构,该处理器的前端部件即可支持四发射指令解码,即支持分别对四个待解析指令队列中的自定义指令进行解析。其中,该处理器中,取指单元113的运行速度可以为每时钟周期16字节(Byte),混合模式分支预测器112的运行速度可以是取指单元113带宽的两倍,即为每周期32Byte字节(Byte)。取指单元113获取的自定义指令可以形成指令队列,指令队列可以划分为四路待解析指令队列。这样,分别对四路待解析指令队列进行解析时,若其中一路待解析指令队列出现解析异常,其他待解析指令队列不会受其影响,因此避免其他待解析指令队列的解析陷入停滞。
本申请实施例中,通过获取自定义指令,对所述自定义指令进行解析,确定所述自定义指令的指令类型,根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。其中,所述自定义指令为预先扩展的自定义指令集中的指令,自定义指令集中包括至少两种类型的指令。也就是说,本申请实施例中,可以通过预先扩展自定义指令集,对自定义指令集中的指令进行处理,实现通过扩充指令集,以满足多种智能计算应用场景的计算需求。
本申请实施例提供了一种指令处理装置,如图7所示,该指令处理装置70可以包括:指令获取模块701、指令类型确定模块702以及指令处理模块703,其中,
指令获取模块701,用于获取自定义指令,其中,所述自定义指令为预先扩展的自定义指令集中的指令,自定义指令集中包括至少两种类型的指令;所述自定义指令是基于预设类型语言生成的;
指令类型确定模块702,用于对所述自定义指令进行解析,确定所述自定义指令的指令类型;
指令处理模块703,用于根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。
在本申请的一个实施例中,所述装置还包括指令集生成模块(未图示),用于在所述获取自定义指令之前,通过第一类型语言,生成第一指令,根据所述第一指令生成所述自定义指令集;其中,所述第一指令的指令处理模式包括第一处理模式;和/或通过第二类型语言,生成第二指令,根据所述第二指令生成所述自定义指令集;其中,所述第二指令的指令处理模式包括第二处理模式;所述预设类型语言包括所述第一类型语言和所述第二类型语言。
在本申请的一个实施例中,所述指令处理模块70具体用于根据所述指令类型,确定所述自定义指令对应的处理模式;
基于所述处理模式,对所述自定义指令执行指令处理。
在本申请的一个实施例中,所述自定义指令包括至少两个,所述装置还包括划分模块,用于在所述获取自定义指令之后,
将所述自定义指令划分为至少两个待解析指令队列。
在本申请的一个实施例中,所述指令类型确定模块702具体用于分别对至少两个所述待解析指令队列中的自定义指令进行解析,确定所述自定义指令的指令类型。
在本申请的一个实施例中,所述处理模式包括所述第一处理模式和所述第二处理模式,
所述第一处理模式包括插件模式;
所述第二处理模式包括内联模式。
本申请实施例提供了一种指令处理装置,如图8所示,该指令处理装置80可以包括:取指单元801、解码器802以及执行单元803,其中,
取指单元801,其通过指令缓存获取自定义指令,其中,所述自定义指令为预先扩展的自定义指令集中的指令,所述自定义指令集中包括至少两种类型的指令;所述自定义指令是基于预设类型语言生成的;
解码器802,其对所述自定义指令进行解析,确定所述自定义指令的指令类型;
至少两个不同模式的执行单元803,其根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中,通过获取自定义指令,对所述自定义指令进行解析,确定所述自定义指令的指令类型;根据所述自定义指令的指令类型,对所述自定义指令执行指令处理;其中,所述自定义指令为预先扩展的自定义指令集中的指令,自定义指令集中包括至少两种类型的指令;也就是说,本申请实施例中,可以通过预先扩展自定义指令集,对自定义指令集中的指令进行处理;实现通过扩充指令集,以满足多种智能计算应用场景的计算需求。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:本申请实施例中,通过获取自定义指令,对所述自定义指令进行解析,确定所述自定义指令的指令类型;根据所述自定义指令的指令类型,对所述自定义指令执行指令处理;其中,所述自定义指令为预先扩展的自定义指令集中的指令,自定义指令集中包括至少两种类型的指令;也就是说,本申请实施例中,可以通过预先扩展自定义指令集,对自定义指令集中的指令进行处理;实现通过扩充指令集,以满足多种智能计算应用场景的计算需求。
在一个可选实施例中提供了一种电子设备,如图8所示,图8所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码(计算机程序),并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、多媒体播放器、台式计算机等。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。
本申请实施例中,通过获取自定义指令,对所述自定义指令进行解析,确定所述自定义指令的指令类型;根据所述自定义指令的指令类型,对所述自定义指令执行指令处理;其中,所述自定义指令为预先扩展的自定义指令集中的指令,自定义指令集中包括至少两种类型的指令;也就是说,本申请实施例中,可以通过预先扩展自定义指令集,对自定义指令集中的指令进行处理;实现通过扩充指令集,以满足多种智能计算应用场景的计算需求。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。

Claims (11)

1.一种指令处理方法,其特征在于,包括:
获取自定义指令;其中,所述自定义指令为预先扩展的自定义指令集中的指令,所述自定义指令集中包括至少两种类型的指令;所述自定义指令是基于预设类型语言生成的;
对所述自定义指令进行解析,确定所述自定义指令的指令类型;
根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。
2.根据权利要求1所述的指令处理方法,其特征在于,在所述获取自定义指令之前,所述方法还包括:
通过第一类型语言,生成第一指令,根据所述第一指令生成所述自定义指令集;其中,所述第一指令的指令处理模式包括第一处理模式;
和/或
通过第二类型语言,生成第二指令,根据所述第二指令生成所述自定义指令集;其中,所述第二指令的指令处理模式包括第二处理模式;
所述预设类型语言包括所述第一类型语言和所述第二类型语言。
3.根据权利要求1所述的指令处理方法,其特征在于,所述根据所述自定义指令的指令类型,对所述自定义指令执行指令处理,包括:
根据所述指令类型,确定所述自定义指令对应的处理模式;
基于所述处理模式,对所述自定义指令执行指令处理。
4.根据权利要求1所述的指令处理方法,其特征在于,所述自定义指令包括至少两个,所述获取自定义指令之后,所述方法还包括:
将所述自定义指令划分为至少两个待解析指令队列。
5.根据权利要求4所述的指令处理方法,其特征在于,所述对所述自定义指令进行解析,确定所述自定义指令的指令类型,包括:
分别对至少两个所述待解析指令队列中的自定义指令进行解析,确定所述自定义指令的指令类型。
6.根据权利要求2或3所述的指令处理方法,其特征在于,所述处理模式包括所述第一处理模式和所述第二处理模式,
所述第一处理模式包括插件模式;
所述第二处理模式包括内联模式。
7.一种指令处理装置,其特征在于,包括:
指令获取模块,用于获取自定义指令,其中,所述自定义指令为预先扩展的自定义指令集中的指令,所述自定义指令集中包括至少两种类型的指令;所述自定义指令是基于预设类型语言生成的;
指令类型确定模块,用于对所述自定义指令进行解析,确定所述自定义指令的指令类型;
指令处理模块,用于根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。
8.根据权利要求7所述的指令处理装置,其特征在于,所述装置还包括指令集生成模块,用于在所述获取自定义指令之前,通过第一类型语言,生成第一指令,根据所述第一指令生成所述自定义指令集;其中,所述第一指令的指令处理模式包括第一处理模式;
和/或
通过第二类型语言,生成第二指令,根据所述第二指令生成所述自定义指令集;其中,所述第二指令的指令处理模式包括第二处理模式;
所述预设类型语言包括所述第一类型语言和所述第二类型语言。
9.一种指令处理装置,其特征在于,包括:
取指单元,其通过指令缓存获取自定义指令,其中,所述自定义指令为预先扩展的自定义指令集中的指令,所述自定义指令集中包括至少两种类型的指令;所述自定义指令是基于预设类型语言生成的;
解码器,其对所述自定义指令进行解析,确定所述自定义指令的指令类型;
至少两个不同模式的执行单元,其根据所述自定义指令的指令类型,对所述自定义指令执行指令处理。
10.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1至6任一项所述的指令处理方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的指令处理方法。
CN202210751604.4A 2022-06-28 2022-06-28 指令处理方法、装置、电子设备及计算机可读存储介质 Pending CN115167922A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210751604.4A CN115167922A (zh) 2022-06-28 2022-06-28 指令处理方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210751604.4A CN115167922A (zh) 2022-06-28 2022-06-28 指令处理方法、装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN115167922A true CN115167922A (zh) 2022-10-11

Family

ID=83489962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210751604.4A Pending CN115167922A (zh) 2022-06-28 2022-06-28 指令处理方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN115167922A (zh)

Similar Documents

Publication Publication Date Title
KR101642556B1 (ko) 이진 번역을 수행하기 위한 방법 및 시스템
US9846581B2 (en) Method and apparatus for asynchronous processor pipeline and bypass passing
US6986128B2 (en) Multiple stage program recompiler and method
US11604643B2 (en) System for executing new instructions and method for executing new instructions
US9804852B2 (en) Conditional execution support for ISA instructions using prefixes
US11625247B2 (en) System for executing new instructions and method for executing new instructions
EP0507210A2 (en) A data processing system for performing square operations with improved speed and a method therefor
CN117193861B (zh) 指令处理方法、装置、计算机设备和存储介质
CN108037951B (zh) 一种dtp处理器的中断快速切换方法及装置
CN112099851A (zh) 指令执行方法、装置、处理器及电子设备
CN115167922A (zh) 指令处理方法、装置、电子设备及计算机可读存储介质
NL2028988B1 (en) Instruction set architecture and microarchitecture for early pipeline re-steering using load address prediction to mitigate branch misprediction penalties
US20210089305A1 (en) Instruction executing method and apparatus
CN108228239B (zh) 基于快速模拟器qemu的分支指令抓取方法和装置
US20140372992A1 (en) Data processing system and data simulation method in the system
CN117591184B (zh) Risc-v向量压缩乱序执行的实现方法及装置
Novkovic et al. Graphic Library Optimization for MIPS Architecture
Otoom et al. Novel Framework for Designing Representative Usage-Based Benchmarks for Smartphones
De Moura et al. Value reuse potential in arm architectures
KR100388943B1 (ko) 디지털 신호 처리 프로세서의 즉시 데이터 처리 장치
CN115167923A (zh) 指令处理方法、装置、电子设备及计算机可读存储介质
CN117055962A (zh) 数字信号处理器、电子设备以及数据处理方法
CN115167924A (zh) 指令处理方法、装置、电子设备及计算机可读存储介质
CN115269011A (zh) 指令执行单元、处理单元及相关装置和方法
CN116991481A (zh) 一种运算指令的执行方法、装置以及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination