本发明涉及硬件处理器的指令集设计的技术领域,尤其是用于计算型存储指令集运算的优化方法、系统及存储介质。
背景技术:
现代处理器由于其处理速度和内存读取速度的巨大差异,处理速度远远大于存储器的读取速度,即“存储墙”现象,该现象限制了现代处理器性能的提升。特殊的硬件架构-计算型存储是为了解决“存储墙”瓶颈的重要手段,现有的指令集结构仅支持操作数分别在内存和寄存器的硬件架构,通过将内存中的操作数读取到处理器中,然后与存储在处理器内部寄存器的操作数进行算术逻辑操作后,再写回内存,导致反复的数据读写操作,降低了运算效率。
技术实现要素:
有鉴于此,本发明实施例提供用于计算型存储指令集运算的优化方法、系统及存储介质,以提高运算效率。
一方面,本发明实施例提供了一种用于计算型存储指令集运算的优化方法,包括以下步骤:
通过指令识别码确定第一指令和第二指令;
通过第二指令的子指令类型位,对第二指令进行模式配置操作、地址配置操作以及计算操作;
通过第二指令的向量长度位,确定第二指令的向量长度;
通过第二指令的操作类型位,确定第二指令的操作类型;
通过第二指令的功能类型位,确定第二指令的功能类型;
通过第二指令的立即数位,确定第二指令的立即数;
根据模式配置操作的结果、地址配置操作的结果、计算操作的结果、向量长度、第二指令的操作类型、第二指令的功能类型以及第二指令的立即数,得到第二指令的运算结果;
其中,所述第二指令为计算型存储指令。
进一步,所述第二指令的指令结构长度为32位;所述第二指令包括指令识别码、子指令类型位、向量长度位、操作类型位、功能类型位和立即数位。
进一步,所述第二指令的类型包括配置指令和计算指令。
进一步,所述配置指令的类型包括地址配置指令和工作模式配置指令;
所述地址配置指令,用于配置协处理器的地址寄存器;
所述工作模式配置指令,用于配置协处理器的工作模式寄存器和向量寄存器。
进一步,所述计算指令的类型包括第一计算指令和第二计算指令;
所述第一计算指令,用于确定指令的计算类型为存储-存储型;
所述第二计算指令,用于确定指令的计算类型为存储-立即数型。
另一方面,本发明实施例提供了一种用于计算型存储指令集运算的优化系统,包括:
识别模块,用于通过指令识别码确定第一指令和第二指令;
配置模块,用于通过第二指令的子指令类型位,对第二指令进行模式配置操作、地址配置操作以及计算操作;
向量确定模块,用于通过第二指令的向量长度位,确定第二指令的向量长度;
操作类型确定模块,用于通过第二指令的操作类型位,确定第二指令的操作类型;
功能类型确定模块,用于通过第二指令的功能类型位,确定第二指令的功能类型;
立即数确定模块,用于通过第二指令的立即数位,确定第二指令的立即数;
运算模块,用于根据模式配置操作的结果、地址配置操作的结果、计算操作的结果、向量长度、第二指令的操作类型、第二指令的功能类型以及第二指令的立即数,得到第二指令的运算结果;
其中,所述第二指令为计算型存储指令。
进一步,所述第二指令的指令结构长度为32位;所述第二指令包括指令识别码、子指令类型位、向量长度位、操作类型位、功能类型位和立即数位。
进一步,所述第二指令的类型包括配置指令和计算指令;
所述配置指令的类型包括地址配置指令和工作模式配置指令;
所述地址配置指令,用于配置协处理器的地址寄存器;
所述工作模式配置指令,用于配置协处理器的工作模式寄存器和向量寄存器;
所述计算指令的类型包括第一计算指令和第二计算指令;
所述第一计算指令,用于确定指令的计算类型为存储-存储型;
所述第二计算指令,用于确定指令的计算类型为存储-立即数型。
另一方面,本发明实施例提供了一种用于计算型存储指令集运算的优化系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的用于计算型存储指令集运算的优化方法。
另一方面,本发明实施例提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的用于计算型存储指令集运算的优化方法。
上述本发明实施例中的一个或多个技术方案具有如下优点:本发明的实施例通过指令识别码确定到计算型存储指令后,根据模式配置操作的结果、地址配置操作的结果、计算操作的结果、向量长度、第二指令的操作类型、第二指令的功能类型以及第二指令的立即数,得到第二指令的运算结果;本发明能够直接通过内存对计算型存储指令进行运算,无需反复在内存和寄存器之间进行数据读写操作,提高了运算效率。
附图说明
图1为本发明实施例的步骤流程图。
具体实施方式
下面结合说明书附图和具体实施例对本发明作进一步解释和说明。
参照图1,本发明实施例提供了一种用于计算型存储指令集运算的优化方法,包括以下步骤:
通过指令识别码确定第一指令和第二指令;
通过第二指令的子指令类型位,对第二指令进行模式配置操作、地址配置操作以及计算操作;
通过第二指令的向量长度位,确定第二指令的向量长度;
通过第二指令的操作类型位,确定第二指令的操作类型;
通过第二指令的功能类型位,确定第二指令的功能类型;
通过第二指令的立即数位,确定第二指令的立即数;
根据模式配置操作的结果、地址配置操作的结果、计算操作的结果、向量长度、第二指令的操作类型、第二指令的功能类型以及第二指令的立即数,得到第二指令的运算结果;
其中,所述第二指令为计算型存储指令。
具体地,本发明实施例中,所述计算型存储指令的指令识别码是特殊的计算型存储指令码,处理器通过指令识别码能区分当前指令为普通指令还是计算型存储指令;
接着,通过配置子指令类型位,能实现计算型存储的模式配置、地址配置以及计算功能;
通过配置指令的向量长度位,能确定向量的长度;
通过配置操作类型位,能区分存储器-存储器和存储器-立即数两种操作类型;
通过配置功能类型位和立即数位,能够区分当前指令的计算操作类型,所述计算操作类型包括:1)、3个操作数同时在内存的计算操作;2)、2个操作数在内存以及1个立即数在寄存器的逻辑操作。
进一步作为优选的实施方式,所述第二指令的指令结构长度为32位;所述第二指令包括指令识别码、子指令类型位、向量长度位、操作类型位、功能类型位和立即数位。
具体地,本发明实施例提出的的指令结构长度为32bit,所述计算型存储指令由识别码、子指令类型、向量长度、操作类型、功能类型和立即数组成。
进一步作为优选的实施方式,所述第二指令的类型包括配置指令和计算指令。
进一步作为优选的实施方式,所述配置指令的类型包括地址配置指令和工作模式配置指令;
所述地址配置指令,用于配置协处理器的地址寄存器;
所述工作模式配置指令,用于配置协处理器的工作模式寄存器和向量寄存器。
进一步作为优选的实施方式,所述计算指令的类型包括第一计算指令和第二计算指令;
所述第一计算指令,用于确定指令的计算类型为存储-存储型;
所述第二计算指令,用于确定指令的计算类型为存储-立即数型。
具体地,本发明实施例的计算型存储指令集由两种指令组成:一种是配置指令,一种是计算指令。
其中,配置指令主要功能是配置协处理器的寄存器。配置指令可以配置协处理器内部的地址寄存器和向量寄存器,为进行下一步的计算指令做好准备。
配置指令分为两种类型:地址配置指令和工作模式配置指令。
地址配置指令对协处理器的地址寄存器进行配置;
工作模式配置指令对协处理器的工作模式寄存器rm、向量寄存器rn进行配置。
计算指令分为两种类型:m-m类型(即存储-存储型)和m-i类型(即存储-立即数型),其主要功能是确定具体的计算类型和将要执行的操作。
m-m类型的计算指令的3个操作数都是内存操作数,协处理器接收到m-m类型指令后,需要将所有寄存器内容发送给内存。
m-i类型的计算指令的2个操作数在内存中,1个操作数在指令的立即数位,协处理器接收到m-i类型的指令后,需要将内部两个寄存器内容和立即数发送给内存。
本发明实施例还提供了一种用于计算型存储指令集运算的优化系统,包括:
识别模块,用于通过指令识别码确定第一指令和第二指令;
配置模块,用于通过第二指令的子指令类型位,对第二指令进行模式配置操作、地址配置操作以及计算操作;
向量确定模块,用于通过第二指令的向量长度位,确定第二指令的向量长度;
操作类型确定模块,用于通过第二指令的操作类型位,确定第二指令的操作类型;
功能类型确定模块,用于通过第二指令的功能类型位,确定第二指令的功能类型;
立即数确定模块,用于通过第二指令的立即数位,确定第二指令的立即数;
运算模块,用于根据模式配置操作的结果、地址配置操作的结果、计算操作的结果、向量长度、第二指令的操作类型、第二指令的功能类型以及第二指令的立即数,得到第二指令的运算结果;
其中,所述第二指令为计算型存储指令。
进一步作为优选的实施方式,所述第二指令的指令结构长度为32位;所述第二指令包括指令识别码、子指令类型位、向量长度位、操作类型位、功能类型位和立即数位。
进一步作为优选的实施方式,所述第二指令的类型包括配置指令和计算指令;
所述配置指令的类型包括地址配置指令和工作模式配置指令;
所述地址配置指令,用于配置协处理器的地址寄存器;
所述工作模式配置指令,用于配置协处理器的工作模式寄存器和向量寄存器;
所述计算指令的类型包括第一计算指令和第二计算指令;
所述第一计算指令,用于确定指令的计算类型为存储-存储型;
所述第二计算指令,用于确定指令的计算类型为存储-立即数型。
本发明实施例还提供了一种用于计算型存储指令集运算的优化系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的用于计算型存储指令集运算的优化方法。
本发明实施例还提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的用于计算型存储指令集运算的优化方法。
下面详细描述本发明中所述计算型存储指令的具体内容:
如表1所示,本发明的计算型存储指令的计算指令的使用字段如下:
表1
其中,(1)[31:29]代表识别码字段,这是计算型存储指令的标志字段,用与区分普通指令和计算型存储指令。
(2)[28]代表子指令类型字段,用于指定是配置指令还是计算指令。
(3)[27:21]代表向量长度字段,用于确定计算的向量的长度。
(4)[20]代表计算操作类型字段,用于区分m-m型指令和m-i型指令。
(5)[19:16]代表具体计算类型字段,用于指定具体的操作类型,如and(与)、or(或)、not(非)、xor(异或)等。
(6)[15:0]代表立即数字段,用于存放16bit的立即数,用于m-i型计算指令。
如表2所示,本发明的计算型存储指令的配置指令的使用字段如下:
表2
其中,(1)[31:29]代表识别码字段,这是计算型存储指令的标志字段,用与区分普通指令和计算型存储指令。
(2)[28]代表子指令类型字段,用于指定是配置指令还是计算指令。
(3)[27]代表配置指令类型字段,用于区分两种配置指令。
(4)[26:0]对于地址配置指令,此字段用于存放源操作数和目的操作数地址的地址包;对于工作模式配置指令,此字段用于存放将要送给向量寄存器的数据。
下面以四种计算型存储指令为例,具体描述计算型存储指令的配置过程:
(1)配置指令1:
addrconfigaddrpacket
说明:将addrpacket的值赋给协处理器内部4个寄存器r0-r3;
(2)配置指令2:
modeconfigrm,rn
说明:配置协处理器中的向量寄存器、模式寄存器;
(3)m-m型计算指令:
mandl
说明:r0寄存器存放的数据作为地址的内容,与r1寄存器存放的内容作为地址的内容,进行l个单元的与操作,然后存入r2寄存器存放的数据作为地址的单元;
(4)m-i型计算指令:
mandil
说明:r0寄存器存放的数据,作为地址,对应单元的数据与r1存放的内容相与存入r2存放的数据作为地址所对应的单元,一次进行l个单元的操作。
下面详细描述本发明的计算型存储指令完成一次完整存储计算的具体过程:
步骤一:配置地址寄存器:addrconfigaddrpacket;
步骤二:配置模式寄存器:modeconfigrm,rn;
步骤三:执行计算型存储指令:mandl。
综上所述,本发明一种用于计算型存储指令集运算的优化方法、系统及存储介质具有以下优点:
本发明通过指令识别码确定到计算型存储指令后,根据模式配置操作的结果、地址配置操作的结果、计算操作的结果、向量长度、第二指令的操作类型、第二指令的功能类型以及第二指令的立即数,得到第二指令的运算结果;本发明能够直接通过内存对计算型存储指令进行运算,无需反复在内存和寄存器之间进行数据读写操作,提高了运算效率。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。