CN118057308A - 指令处理优化方法及相关装置 - Google Patents
指令处理优化方法及相关装置 Download PDFInfo
- Publication number
- CN118057308A CN118057308A CN202211443791.6A CN202211443791A CN118057308A CN 118057308 A CN118057308 A CN 118057308A CN 202211443791 A CN202211443791 A CN 202211443791A CN 118057308 A CN118057308 A CN 118057308A
- Authority
- CN
- China
- Prior art keywords
- destination address
- load instruction
- determining
- instruction
- address
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 100
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000005457 optimization Methods 0.000 title claims abstract description 26
- 238000004364 calculation method Methods 0.000 claims abstract description 36
- 238000006073 displacement reaction Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本申请实施例公开了一种指令处理优化方法及相关装置,方法包括:确定目标加载load指令,其中,第一寄存器包括源地址偏移位、目的地址偏移位和迭代计算位;若目标load指令为第一load指令,则根据源地址偏移位和第一load指令,确定第一源地址,并根据第二寄存器中的初始目的地址和目的地址偏移位,确定第一目的地址;根据第一源地址,获取第一目标数据;将第一目标数据回写至第一目的地址对应的存储空间;根据迭代计算位和初始目的地址确定最终目的地址,若最终目的地址与第一目的地址相同,则确定第一load指令迭代执行完毕。如此,可以通过指令的并行处理,实现批量数据处理,提高数据吞吐率。
Description
技术领域
本申请涉及数据处理的技术领域,具体涉及一种指令处理优化方法及相关装置。
背景技术
在当今大数据的时代,电子设备通过指令实现数据处理的过程中,数据的批量处理是不可避免的场景之一,而数据的存储与访问会直接影响数据处理的效率。现有方法中,为提升数据处理的效率,往往采用的是:面向不同的场景,通过在电子设备的芯片中新增额外的功能单元部件,例如:增加图像处理单元(graph processing unit,GPU)、神经网络处理器(neural processing unit,NPU)等加速单元。而采用这种方式,在实现处理效率提升的同时会导致使得芯片资源增加,最终导致芯片面积扩大。
为解决上述问题,亟需一种指令处理优化方法。
发明内容
本申请实施例提供了一种指令处理优化方法及相关装置,有利于提高电子设备进行指令处理的速度,进而提高批量数据加载的效率。
第一方面,本申请实施例提供一种指令处理优化方法,应用于电子设备,所述电子设备包括第一寄存器和第二寄存器,所述第一寄存器用于确定获取目标数据的源地址,所述第二寄存器用于确定存储所述目标数据的目的地址,所述第一寄存器包括偏移位和迭代计算位;
所述方法包括:
确定目标加载load指令,其中,所述目标load指令包括以下任意一种:第一load指令和第二load指令,所述偏移位包括源地址偏移位和目的地址偏移位;
若所述目标load指令为所述第一load指令,则根据所述源地址偏移位和所述第一load指令,确定第一源地址,并根据所述第二寄存器中的初始目的地址和所述目的地址偏移位,确定第一目的地址;
根据所述第一源地址,获取第一目标数据;
根据所述第一目的地址,将所述第一目标数据回写至所述第一目的地址对应的存储空间;
根据所述迭代计算位和所述初始目的地址确定最终目的地址,并根据所述最终目的地址判断所述第一load指令是否执行完毕;
若所述最终目的地址与所述第一目的地址相同,则确定所述第一load指令执行完毕。
第二方面,本申请实施例提供一种指令处理优化装置,应用于电子设备,所述电子设备包括第一寄存器和第二寄存器,所述第一寄存器用于确定获取目标数据的源地址,所述第二寄存器用于确定存储所述目标数据的目的地址,所述第一寄存器包括偏移位和迭代计算位;
所述装置包括:确定单元、获取单元、执行单元和判断单元;其中,
所述确定单元,用于确定目标加载load指令,其中,所述目标load指令包括以下任意一种:第一load指令和第二load指令,所述偏移位包括源地址偏移位和目的地址偏移位;以及用于,若所述目标load指令为所述第一load指令,则根据所述源地址偏移位和所述第一load指令,确定第一源地址,并根据所述第二寄存器中的初始目的地址和所述目的地址偏移位,确定第一目的地址;
所述获取单元,用于根据所述第一源地址,获取第一目标数据;
所述执行单元,用于根据所述第一目的地址,将所述第一目标数据回写至所述第一目的地址对应的存储空间;
所述判断单元,用于根据所述迭代计算位和所述初始目的地址确定最终目的地址,并根据所述最终目的地址判断所述第一load指令是否执行完毕;以及用于,若所述最终目的地址与所述第一目的地址相同,则确定所述第一load指令执行完毕。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面任一方法中的步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序装置,其中,上述计算机程序装置包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。该计算机程序装置可以为一个软件安装包。
可以看出,本申请实施例中,通过确定目标加载load指令,其中,第一寄存器包括源地址偏移位、目的地址偏移位和迭代计算位;若目标load指令为第一load指令,则根据源地址偏移位和第一load指令,确定第一源地址,并根据第二寄存器中的初始目的地址和目的地址偏移位,确定第一目的地址;根据第一源地址,获取第一目标数据;将第一目标数据回写至第一目的地址对应的存储空间;根据迭代计算位和初始目的地址确定最终目的地址,若最终目的地址与第一目的地址相同,则确定第一load指令迭代执行完毕。如此,可以通过指令的并行处理,实现批量数据处理,为电子设备执行数据处理提供更高的数据吞吐率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请实施例提供的一种现有架构的指令处理过程示意图;
图1B是本申请实施例提供的一种现有架构进行指令执行处理过程示意图;
图1C是本申请实施例提供的一种电子设备实现指令优化处理的架构示意图;
图2是本申请实施例提供的一种指令处理优化方法的流程示意图;
图3是本申请实施例提供的一种第一寄存器结构示意图;
图4A是本申请实施例提供的一种指令处理优化方法的整体流程示意图;
图4B是本申请实施例提供的一种电子设备处理第一load指令的过程示意图;
图5是本申请实施例提供的一种电子设备的结构示意图;
图6是本申请实施例提供的一种指令处理优化装置的功能单元组成框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、装置或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、装置或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
电子设备可以是还包含其它功能诸如个人数字助理和/或音乐播放器功能的便携式电子设备,诸如手机、平板电脑、具备无线通讯功能的可穿戴电子设备(如智能手表、智能眼镜)、车载设备等。便携式电子设备的示例性实施例包括但不限于搭载IOS系统、Android系统、Microsoft系统或者其它操作系统的便携式电子设备。上述便携式电子设备也可以是其它便携式电子设备,诸如膝上型计算机(Laptop)等。还应当理解的是,在其他一些实施例中,上述电子设备也可以不是便携式电子设备,而是台式计算机。
尤其是通用处理器方面,在大数据处理方面有严重的缺陷,因此当前的很多新型架构提出,包括用GPU/NPU等等作为面向大数据处理的加速单元。
电子设备通过指令,进行批量数据处理的应用场景中,现有架构是在原先基本控制架构中新增一个加速器,这个加速器是由简单的控制以及批量的计算单元组成,例如:GPU和NPU。其中,GPU是独立于中央处理器(center processing unit,CPU)之外的另一种主流加速器,专门用于图像数据加速处理功能。而NPU是近年流行起来的用于人工智能方面的神经网络加速功能。这些无一例外都是自成一套体系,与CPU架构是完全不同的体系,这些体系有一个共同的特性,那就是加载需要大量的数据,而数据加载的过程则往往是通过加载load指令实现。而传统的CPU的数据加载性能是制约着当前现实场景中诸多领域数据加速处理的速度。
具体地,如图1A所示,图1A是本申请方案提供的一种现有架构的指令处理过程示意图。如图1A所述,该处理器具体包括程序计数器PC、加法器、指令缓存单元、寄存器组、若干个多路选择器以及逻辑算数部件ALU。其中,指令缓存单元的功能是存储读入的所有32-bit位宽的指令,根据程序计数器PC中的指令地址进行取指令操作并对指令类型进行分析,通过指令类型对所取指令的各字段进行区分识别,最后将对应部分传递给其他模块进行后续处理。其中,指令具体包括但不限于:加载load指令和存储store指令等等,load指令将内存中的数据取入通用寄存器,store指令将通用寄存器中的数据存至内存中。每次从指令缓存单元中取出一条指令,程序计数器根据指令长度通过加法器自动递增产生下一条指令所需要的指令地址。
示例性地,在寄存器类指令中,操作码都由操作码(OP)和辅助操作码(OPX)组成,操作数都包括两个源操作数(RS)和一个目标操作数(RD);立即数类指令都由操作码、源操作数、目标操作数和立即数(Const)组成,立即数的位数各有不同。
示例性地,寄存器组中包括若干个寄存器,每个寄存器位宽32-bit,是存放ALU计算所需要的临时数据的,与数据存储器不同,该部分的寄存器存入的数据可能会在程序执行的过程中被多次覆盖,而数据存储器内的数据一般只有sw指令才能进行修改覆盖。寄存器组会根据操作码与RS、RT字段相应的地址读取数据,同时将RS、RT寄存器的地址和其中的数据输出,在时钟的下降沿到来时将数据存放到RS或RT字段的相应地址的寄存器内。
示例性地,符号扩展位是用于立即数的扩展,用于对指令位数补齐。多路选择器用于根据指令译码得到的数据,选择对应的存储空间,进而实现获取指令指向的数据。逻辑算数部件根据指令译码后的数据选取对应的操作数,根据操作码进行运算并输出结果与零标志位。用于根据指令执行逻辑运算,其中,逻辑运算包括但不限于:加、减、乘和除等等。
具体地,请参阅图1A所示进行数据处理过程相关描述:
示例性地,如图1A所示数据处理具体包括五个流程:取指IF、译指ID、执行EXE、访存MEM和回写WB。
具体地,取指操作即从指令缓存单元(INSTRCACHE)中读取一条指令。为便于理解,此处以指令(load,a0,4(a5))为例。
进一步地,译指操作即对该指令进行译码处理。
进一步地,对译码后的指令,通过逻辑算数部件对该指令执行对应的数据处理操作,例如对指令(load,a0,4(a5))执行的具体操作为:将a5寄存器的值与十进制数4执行一个加法运算,得到当前load指令对应的存储地址,即,addr=[a5]+4。
进一步地,根据上述计算确定的地址addr,进行访存操作,访问addr对应的存储地址,从该地址中读取数据。
最后,将所读取到的数据,回写至寄存器a0中。
具体地,请参阅图1B,图1B为本申请实施例提供的一种现有架构进行指令执行处理过程示意图。
示例性地,若当前存在三条load指令需要电子设备进行指令处理。则如图1B所示,电子设备分别对每一条指令执行上述五个步骤:取指、译指、执行、访存和回写操作。
其中,现有方法中,电子设备在对每一条load指令进行处理过程中,若上一条load指令执行结果未执行到回写操作之前,下一条load指令是无法进行到访存阶段。即上述处理过程会出现指令处理互相等待,造成停顿现象,从而影响指令执行的效率。且如果每条load指令实质对应的操作为同一操作,只是在进行迭代的时候,仍需要每次都需要获取同一条load指令,执行相同的操作,造成程序代码的冗余。
针对上述问题,本申请提出一种指令处理优化方法及相关装置,如图1C所示,图1C是本申请提供的一种电子设备实现指令优化处理的架构示意图。
示例性地,如图1C所示,该架构在复用图1A所示架构的基础上,增加了自定义寄存器和用于做连续性处理load指令的逻辑算数部件。具体硬件新增细节如下:增加两个位宽为32-bit的自定义寄存器。其中,自定义寄存器1(即第一寄存器)用于确定获取目标数据的源地址,自定义寄存器2(即第二寄存器)用于确定存储目标数据的目的地址。当电子设备执行完图1A所述的取指和译指操作后,两个逻辑算数部件同时根据自定义寄存器1和自定义寄存器2中的数据,确定获取目标数据的源地址以及回写目标数据的目的地址。进一步地,根据逻辑算数部件计算结果从对应位置中获取目标数据并将目标数据回写。需要说明的是,当前load指令可以为需要连续执行数据获取操作的load指令。逻辑算数部件只需根据连续执行的次数,以及两个自定义寄存器中的数据,确定每次数据获取的源地址和目的地址,在此过程中,每次重复数据获取和回写操作之间,无需互相等待。从而实现load指令的连续性处理,提高数据处理效率,降低电子设备功耗的目的。
通过上述架构,在电子设备原本的CPU架构中通过灵活配置自定义寄存器,使得传统的CPU架构可以做批量数据操作。且该架构并非仅仅是针对特定的领域进行设置,增加了电子设备在现代化应用场景的生存能力,同时为当前图像处理、信号处理、人工智能等领域方面提供更高的数据吞吐率,通过提高指令执行的流畅性提高数据处理的效率。
为更好地理解本方案,下面将具体进行描述。
请参阅图2,图2是本申请实施例提供的一种指令处理优化方法的流程示意图,应用于电子设备,所述电子设备包括第一寄存器和第二寄存器,所述第一寄存器用于确定获取目标数据的源地址,所述第二寄存器用于确定存储所述目标数据的目的地址,所述第一寄存器包括偏移位和迭代计算位;如图所示,本指令处理优化方法包括以下操作:
S201、确定目标加载load指令,其中,所述目标load指令包括以下任意一种:第一load指令和第二load指令,所述偏移位包括源地址偏移位和目的地址偏移位。
示例性地,如图3所示,图3是本申请实施例提供的一种第一寄存器结构示意图。如图3所示,第一寄存器为位宽32-bit的寄存器,具体包括类型标识位、偏移位和迭代次数位。
具体地,类型标识位C占1bit,用于指示当前的load指令是第一load指令,还是第二load指令。第一load指令用于指示当前load指令需要多次执行数据获取和数据回写操作,即,流水化load指令;第二load指令用于指示当前load指令为单次执行数据获取和数据回写操作,即,正常load指令。
示例性地,电子设备在接收到经过译码处理后的目标load指令,根据第一寄存器中的类型标识位,确定出目标load指令为第一load指令还是第二load指令。
S202、若所述目标load指令为所述第一load指令,则根据所述源地址偏移位和所述第一load指令,确定第一源地址,并根据所述第二寄存器中的初始目的地址和所述目的地址偏移位,确定第一目的地址。
示例性地,如图3所示的第一寄存器结构图中,偏移位占据20bits。其中,偏移位包括源地址偏移位soffset和目的地址偏移位doffset。
具体地,源地址偏移位soffset和目的地址偏移位doffset分别占10bits,soffset所对应的数值即为源地址偏移量,其中,源地址偏移量用于确定每一次执行第一load指令,获取目标数据对应的地址。例如:若第一load指令为(load,x,y),y为初始源地址,soffset为a,则第n次执行第一load指令时,其源地址为:y+(n-1)a。进一步地,电子设备根据每次确定的源地址从对应位置获取目标数据。其中,源地址包括第一源地址,且源地址的个数与执行第一load指令的次数一致。
具体地,Doffset所对应的数值,用于确定每一次执行第一load指令,将目标数据回写到内存空间的目的地址。例如:若第一load指令为(load,x,y),x为初始目的地址,doffset为b,则第n次执行第一load指令时,其源地址为:y+(n-1)b。进一步地,电子设备将每次执行第一load指令所获取的目标数据,回写至目的地址对应的存储空间。其中,目的地址包括第一目的地址,且目的地址的个数与执行第一load指令的次数一致。
需要说明的是,电子设备通过上述步骤确定源地址和目的地址的处理过程,为并行操作,即源地址和目的地址的确定为同时进行。具体可由图1B所示的两个逻辑算数部件并行处理,同时确定获取目标数据的源地址和回写目的地址。
示例性地,以load指令为(load,a0,a5)为例进行详细描述。若电子设备根据类型标识位C确定当前的load指令是第一load指令,则表示每一次数据获取的源地址为[a5]+soffset,即将load指令中指示获取目标数据寄存器地址的数据,叠加一个源地址位移位soffset对应的偏移量,得到实际获取目标数据的源地址。例如:若a5寄存器的值是8,soffset是4,则在第一次执行第一load指令时,第一目标数据的源地址是8,第二目标数据的源地址是12=8+4,第三目标数据的源地址16=12+4,依次类推。
示例性地,当前的load指令是第一load指令,则表示每一次获取目标数据后,执行回写操作时,存放目标数据的目的地址destAddr需要在初始目的地址的基础上,叠加一个目的地址位移位doffset对应的偏移量,得到实际回写目标数据的目的地址。例如上述load指令,若a0为1,doffset为5,如从上述存储地址为8的存储空间中得到第一目标数据,则第一目标数据对应的第一目的地址为1;从源地址为12得到第二目标数据,第二目标数据对应第二目的地址则是6=1+(2-1)*5;从存储地址为16得到第三目标数据,第三目标数据对应第二目的地址则是11=1+(3-1)*5。
需要说明的是,上述源地址和目的地址确认过程,若为连续进行时,则每次执行第一load指令时,源地址和目的地址均为上一次执行时所确定的源地址和目的地址上叠加位移量。
S203、根据所述第一源地址,获取第一目标数据。
具体地,如步骤S202所述过程,电子设备根据第一load指令和第一寄存器中的源地址偏移位确定第一源地址后,执行访存操作,在第一源地址对应的存储空间获取第一目标数据。
S204、根据所述第一目的地址,将所述第一目标数据回写至所述第一目的地址对应的存储空间。
具体地,如步骤S202所述过程,电子设备根据第一load指令和第一寄存器中的目的地址偏移位确定第一目的地址后,执行回写操作,在第一目的地址对应的存储空间存入第一目标数据。
S205、根据所述迭代计算位和所述初始目的地址确定最终目的地址,并根据所述最终目的地址判断所述第一load指令是否执行完毕。
示例性地,第一寄存器还包括迭代计算位,其中,迭代计算位占11bits,用于指示当前第一load指令需要迭代的次数。
具体地,电子设备根据第一寄存器的迭代计算位,确定第一load指令需要迭代执行的次数。并根据第一load指令确定初始目的地址。
进一步地,电子设备根据迭代次数、目的地址偏移位和初始目的地址,计算确定执行完该第一load指令时的最终目的地址。并根据最终目的地址,判断迭代执行是否结束。
S206、若所述最终目的地址与所述第一目的地址相同,则确定所述第一load指令执行完毕。
具体地,若第一load指令迭代执行结束,则电子设备在最后一次执行第一load指令时所确定的目的地址,与最终目的地址一致。
示例性地,电子设备执行一次第一load指令,确定第一目的地址。比较第一目的地址和最终目的地址是否相同,若相同,则表明当前迭代执行过程结束。若不同,则继续执行第一load指令,获取目标数据。
可以看出,本申请实施例所描述的指令处理优化方法,电子设备包括第一寄存器和第二寄存器。其中,电子设备包括第一寄存器和第二寄存器,第一寄存器用于确定获取目标数据的源地址,第二寄存器用于确定存储目标数据的目的地址,第一寄存器包括偏移位和迭代计算位;确定目标加载load指令,其中,目标load指令包括以下任意一种:第一load指令和第二load指令,偏移位包括源地址偏移位和目的地址偏移位;若目标load指令为第一load指令,则根据源地址偏移位和第一load指令,确定第一源地址,并根据第二寄存器中的初始目的地址和目的地址偏移位,确定第一目的地址;根据第一源地址,获取第一目标数据;根据第一目的地址,将第一目标数据回写至第一目的地址对应的存储空间;根据迭代计算位和初始目的地址确定最终目的地址,并根据最终目的地址判断第一load指令是否执行完毕;若最终目的地址与第一目的地址相同,则确定第一load指令执行完毕。如此,可以通过指令的并行处理,实现批量数据处理,为CPU执行数据处理提供更高的数据吞吐率。
在一个可能的示例中,所述确定目标加载load指令之前,上述方法可包括如下步骤:获取指令,并对所述指令进行译码,得到指令数据,其中,所述指令数据包括所述指令的类型标识数据;根据所述类型标识数据,判断所述指令的类型;若所述指令的类型为load指令类型,则将所述指令确定为所述目标load指令。
示例性地,如图1A和图1B所述内容,电子设备通过在指令缓冲单元中获取指令,即取指操作。
进一步地,电子设备对所获取到的指令进行指令译码操作,即译指操作,得到指令数据,其中,指令数据中包括指示当前指令类型的类型标识数据,还包括指示当前指令操作。其中,指令类型包括但不限于:load指令类型和store指令类型等等。
进一步地,电子设备根据类型标识数据,确定当前指令的类型。若确定当前指令为load指令,则进一步根据第一寄存器中的类型标识位C判断load指令是第一load指令还是第二load指令。
可见,电子设备通过从指令缓冲单元进行取指操作,得到指令后,对指令进行译指操作。进而根据译指操作得到的指令数据确定指令的类型是否为load指令,若是,则进一步根据第一寄存器确定load指令的类型。
在一个可能的示例中,所述第一寄存器还包括类型标志位;所述确定目标加载load指令,上述方法可包括如下步骤:若所述类型标识位为1,则确定所述目标load指令为所述第一load指令;若所述类型标识位为0,则确定所述目标load指令为所述第二load指令。
示例性地,如图3所述的第一寄存器的结构,第一寄存器包括类型标识位C,占1bit。其中,类型标识位通过0/1表征目标load指令的类型。
具体地,电子设备获取第一寄存器的类型标识位,若C为1,则确定第一load指令为第一load指令;若C为0,则确定第一load指令为第二load指令。需要说明的是,第一load指令用于指示目标load指令为流水线load指令,需要多次执行处理。第二load指令用于表征目标load指令为常规load指令,按照取指、译指、执行、访存和回写五个处理流程进行常规处理即可。
可见,本示例中,电子设备根据第一寄存器的类型标识位判断目标load指令是第一load指令还是第二load指令后,进而可以根据判断结果对应性地进行指令处理,提高指令处理的效率。
在一个可能的示例中,所述目标load指令的指令数据还包括地址数据,所述地址数据包括获取所述目标数据的第一地址数据和回写所述目标数据的第二地址数据;上述方法可包括如下步骤:根据所述第一地址数据,确定第一地址;从所述第一地址对应的存储空间获取所述目标数据;根据所述第二地址数据,确定第二地址;将所述目标数据存入所述第二地址对应的存储空间。
示例性地,电子设备对目标load指令进行指令译码操作后,所得到的目标load指令的指令数据除用于指示指令类型为load类型的类型标识数据外,还包括用于地址数据。其中,地址数据包括获取目标数据的第一地址数据和回写目标数据的第二地址数据。
示例性地,以目标load指令为(load,a0,a5)为例,解析后的指令数据包括用于指示指令类型为load类型指令的类型标识数据load,以及地址数据a0和a5,其中,第一地址数据为a5,用于指示获取目标数据对应的寄存器地址;第二地址数据为a0,用于指示将目标数据回写的寄存器地址。
进一步地,若电子设备确定目标load指令为第二load指令时,即常规load指令时。电子设备根据第一地址数据,确定出获取目标数据的第一地址,并访问第一地址对应的存储空间获取目标数据;根据第二地址数据,确定回写目标数据的第二地址,并将目标数据回写至第二地址对应的存储空间。
可见,本示例中,若当前目标load指令为第二load指令时,电子设备可直接根据第二load指令对应的指令数据,确定执行第二load指令时所需要访问的第一地址,并在第一地址对应的存储空间中获取目标数据,以及确定存储目标数据所对应的第二地址,并将目标数据存入第二地址对应的存储空间。如此,可以实现第一load指令和第二load指令分别对应各自的处理流程以及逻辑算数部件,实现指令的个性化处理,提高指令的处理效率。
在一个可能的示例中,所述根据所述迭代计算位和所述初始目的地址确定最终目的地址,上述方法可包括如下步骤:根据所述迭代计算位,确定所述第一load指令的迭代总数;根据所述目的地址偏移位和所述迭代总数,确定所述初始目的地址的位移量;根据所述初始目的地址和所述位移量确定所述最终目的地址。
示例性地,如步骤S205所述,第一寄存器中的迭代计算位占11bits,迭代计算位以二进制的形式表征当前第一load指令所需要迭代的次数。电子设备根据迭代计算位的数据,确定第一load指令所需要执行的迭代总数。
进一步地,电子设备根据第一寄存器中所存储的目的地址偏移位,确定每次执行第一load指令时相对于初始目的地址的位移量。
进一步地,电子设备根据第一load指令中的初始目的地址、第一寄存器所确定的迭代总数以及目的地址所对应的偏移量,确定执行完第一load指令时的最终目的地址。其中,最终目的地址的计算方法为:初始目的地址+(迭代总数-1)*初始目的地址的位移量。
示例性地,以第一load指令为(load,a0,a5)、目的地址偏移位为011,迭代计算位为11111111。其中,a0表征初始目的地址,a5表征初始源地址,初始目的地址存放于第二寄存器中。电子设备根据迭代计算位确定当前二进制数据所对应的数值为255,即表明第一load指令需要迭代总数256次,根据目的地址偏移位确定初始目的地址的位移量为3。则执行256次第一load指令后,最终目的地址为a0+255*3。
可见,本示例中,电子设备根据迭代计算位,确定第一load指令的迭代总数,进而根据目的地址偏移位和迭代总数,确定初始目的地址的位移量;最后,根据初始目的地址和位移量确定最终目的地址。如此可以实现,电子设备在获取指令的同时,也能够确定出迭代执行完第一load指令时,该指令所对应的最终目的地址。进而可以将最终目的地址用于判断当前第一load指令是否执行完毕中。
在一个可能的示例中,所述根据所述最终目的地址判断所述第一load指令是否执行完毕之后,上述方法可包括如下步骤:若所述第一目的地址与所述最终目的地址不同,则根据所述第一源地址和所述源地址偏移位,确定第二源地址,其中,所述第二源地址由所述第一源地址位移所述源地址偏移位得到;根据所述第一目的地址和所述目的地址偏移位,确定第二目的地址,其中,所述第二目的地址由所述第一目的地址位移所述目的地址偏移位得到;根据所述第二源地址,获取第二目标数据;根据所述第二目的地址,将所述第二目标数据回写至所述第二目的地址对应的存储空间。
示例性地,电子设备在获取第一load指令的同时,便可根据第一寄存器和第二寄存器确定迭代执行完第一load指令时的最终目的地址。进一步地,电子设备执行一次第一load指令时,得到第一目的地址。判断第一目的地址与最终目的地址是否相同,若相同,则表明当前迭代执行结束;若不同,则在当前基础上继续执行第一load指令。
进一步地,电子设备根据第一源地址和源地址偏移位对应的源地址偏移量,得到第二源地址;根据第一目的地址和目的地址偏移位所对应的目的地址偏移量,得到第二目的地址。即,每一次执行第一load指令所对应的源地址和目的地址为上一次执行的位置偏移结果。
进一步地,电子设备根据第二源地址获取第二目标数据,根据第二目的地址回写第二目标数据。
需要说明的是,上述第二源地址为一个或多个源地址,用于表征每次执行第一load指令时获取目标数据对应的源地址;第二目的地址为一个或多个目的地址,用于表征每次获取目标数据后回写该目标数据所对应的目的地址。
可见,本示例中,电子设备根据每次执行第一load指令所确定的目的地址和最终目的地址的关系确定第一load指令是否执行完毕,若未执行完毕,则可根据上一次执行结果确定本次执行的源地址和目的地址,实现第一load指令的连续执行直至执行完毕,并且每一次回写操作对应的目的地址均为上一次执行的目的地址位移固定的目的地址偏移量,实现数据的连续存储,进而保证存储空间的有效利用,节约存储空间。
在一个可能的示例中,本申请方法可包括如下步骤:确定所述第一load指令当前次执行的迭代次数,其中,所述迭代次数小于或等于所述迭代总数;若所述迭代次数小于所述迭代总数,则根据所述指令数据、所述迭代次数、所述第一寄存器对应的源地址偏移位和所述目的地址偏移位,确定第三源地址和第三目的地址。
示例性地,电子设备在每次执行第一load指令过程中,需要判断当前是否执行完毕,若未执行完毕,则需要一直迭代执行下去。若电子设备需随机确定当前次执行所对应的第三源地址和第三目的地址。只需确定当前次第一load指令执行的迭代次数。
示例性地,若当前迭代次数小于迭代总数,则根据迭代次数、源地址偏移位和目的地址偏移位结合第一load指令的指令数据,确定当前次执行第一load指令所对应的第三源地址和第三目的地址。具体地计算方法,请参阅步骤S202所述内容,在此不做赘述。其中,第三源地址和第三目的地址为某一次迭代执行第一load指令时所对应的源地址和目的地址。
可见,本示例中,电子设备可通过确定第一load指令当前次执行的迭代次数;若迭代次数小于迭代总数,则根据指令数据、迭代次数、第一寄存器对应的源地址偏移位和目的地址偏移位,确定第三源地址和第三目的地址。如此能够实现,电子设备可随机确定当前次执行第一load指令时,加载目标数据所对应的源地址和目的地址而不必完全依赖于上一次执行的结果,造成指令执行的等待现象,进而提高指令处理和数据加载的效率。
请参阅图4A,图4A是本申请实施例提供的一种指令处理优化方法的整体流程示意图,应用于电子设备,所述电子设备包括第一寄存器和第二寄存器,所述第一寄存器用于确定获取目标数据的源地址,所述第二寄存器用于确定存储所述目标数据的目的地址,所述第一寄存器包括偏移位和迭代计算位;本指令处理优化方法包括以下操作。
S401、电子设备从指令缓冲单元中取指。
S402、电子设备对所取出的指令进行译指。
S403、电子设备判断当前指令是否为load指令,若否,则电子设备根据该条指令执行步骤S410-S412。
S404、若是,则电子设备根据第一寄存器判断load指令是否为第一load指令。
S405、若是第一load指令,则电子设备通过逻辑算数部件,根据第一寄存器,计算第一load指令的源地址。
S406、电子设备根据程序计数器判断当前剩余迭代次数是否为0,若否,则对当前次执行第一load指令所确定的源地址执行访存操作,获取目标数据后,返回到步骤S405,根据第一寄存器计算下一次执行第一load指令的源地址。
S407、若是,则对当前次执行确定的源地址执行访存操作,获取目标数据。
S408、电子设备根据第一寄存器和第二寄存器,确定每次执行第一load指令时所对应的目的地址。
S409、电子设备根据每次所确定的目的地址,将目标数据回写至目的地址对应的存储空间。
S410、若电子设备确定当前指令为第二load指令或为其他类型的指令时,执行当前指令,获得指令对应的源地址。
S411、电子设备根据步骤S410获取的源地址,进行访存,获取该源地址所对应的存储空间的数据。
S412、电子设备回写所获取的数据至目的地址。
需要说明的是,上述步骤S401-S409的具体描述可参照图2所述的指令处理优化方法的步骤S201-S206对应的步骤,步骤S410-S412为若电子设备确定目标load指令为第二load指令时所对应的处理步骤,在此不做赘述。
可以看出,本申请实施例所描述的指令处理优化方法,电子设备包括第一寄存器和第二寄存器。其中,电子设备包括第一寄存器和第二寄存器,第一寄存器用于确定获取目标数据的源地址,第二寄存器用于确定存储目标数据的目的地址,第一寄存器包括偏移位和迭代计算位;确定目标加载load指令,其中,目标load指令包括以下任意一种:第一load指令和第二load指令,偏移位包括源地址偏移位和目的地址偏移位;若目标load指令为第一load指令,则根据源地址偏移位和第一load指令,确定第一源地址,并根据第二寄存器中的初始目的地址和目的地址偏移位,确定第一目的地址;根据第一源地址,获取第一目标数据;根据第一目的地址,将第一目标数据回写至第一目的地址对应的存储空间;根据迭代计算位和初始目的地址确定最终目的地址,并根据最终目的地址判断第一load指令是否执行完毕;若最终目的地址与第一目的地址相同,则确定第一load指令执行完毕;若目标load指令为第二load指令,则按照常规load指令处理流程,执行指令、访存和数据回写操作。如此,可以通过对第一load指令的并行处理,实现批量数据处理,为CPU执行数据处理提供更高的数据吞吐率。另外,电子设备既能通过自定义的第一寄存器和第二寄存器以及逻辑算数部件,实现对第一load指令的流水线处理,同时还保留了原本针对常规load指令,即第二load指令的工作处理流程。如此能够实现最大化的利用电子设备的CPU内部的存储空间,减少了资源的浪费,使得能效比得到大量优化。
为更好地理解上述步骤S201-S206以及步骤S401-S409中所述的电子设备针对第一load指令的处理过程。下面将结合图4B进一步描述,图4B是本申请实施例提供的一种电子设备处理第一load指令的过程示意图。具体地,如图4B所示:
具体地,电子设备从指令缓冲单元中进行取指操作后,对该指令进行译指操作,得到指令数据;进一步地,根据指令数据确定当前指令的类型为load指令类型;进一步地,结合第一寄存器确定该指令为第一load指令。即图4B所对应的取指和译指阶段。
进一步地,电子设备根据第二寄存器确定当前第一load指令的迭代总数,然后,根据第一load指令、第一寄存器以及第二寄存器,每执行一次第一load指令,确定该次执行所对应的源地址和目的地址。即,图4B所对应的执行阶段。
进一步地,电子设备从源地址对应的存储空间中获取目标数据,即图4B所示的访存阶段。
进一步地,电子设备将目标数据回写至当前次执行所确定的目的地址所对应的存储空间中。即图4B所示的回写阶段。
需要说明的是,电子设备在确定当前指令为第一load指令后,根据第一寄存器能够确定每次执行第一load指令时,源地址和目的地址的偏移位;根据第二寄存器能够确定第一load指令需要进行的迭代总数。因此,电子设备只需在第一次取指操作,得到第一load指令后,无需反复从指令缓冲单元中获取第一load指令。并且,源地址和目的地址的确定只需根据第一load寄存器和第二load寄存器以及第一load指令的指令数据计算,即可分别确定每次指令执行时所需要访存的源地址以及回写目标数据的目的地址。如此,每次执行第一load指令不需要等待上一次指令执行到回写阶段才开始,这样能极大减少迭代执行指令的时间代价,同时一条第一load指令(即流水线load指令)相当于重复执行n次第二load指令(即常规load指令),即一条第一load指令可以执行n次数据加载操作,极大地简化上位机代码,从而减少芯片上的代码资源空间,降低电子设备的整体功耗,极大节省程序代码,提高指令处理的效率。
请参阅图5,图5是本申请实施例提供的一种电子设备的结构示意图,如图5所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行。
可选地,应用于本申请方案的电子设备时,所述电子设备包括第一寄存器和第二寄存器,所述第一寄存器用于确定获取目标数据的源地址,所述第二寄存器用于确定存储所述目标数据的目的地址,所述第一寄存器包括偏移位和迭代计算位;确定目标加载load指令,其中,所述目标load指令包括以下任意一种:第一load指令和第二load指令,所述偏移位包括源地址偏移位和目的地址偏移位;
若所述目标load指令为所述第一load指令,则根据所述源地址偏移位和所述第一load指令,确定第一源地址,并根据所述第二寄存器中的初始目的地址和所述目的地址偏移位,确定第一目的地址;
根据所述第一源地址,获取第一目标数据;
根据所述第一目的地址,将所述第一目标数据回写至所述第一目的地址对应的存储空间;
根据所述迭代计算位和所述初始目的地址确定最终目的地址,并根据所述最终目的地址判断所述第一load指令是否执行完毕;
若所述最终目的地址与所述第一目的地址相同,则确定所述第一load指令执行完毕。
可以看出,本申请实施例中所描述的电子设备,电子设备包括第一寄存器和第二寄存器。其中,电子设备包括第一寄存器和第二寄存器,第一寄存器用于确定获取目标数据的源地址,第二寄存器用于确定存储目标数据的目的地址,第一寄存器包括偏移位和迭代计算位;确定目标加载load指令,其中,目标load指令包括以下任意一种:第一load指令和第二load指令,偏移位包括源地址偏移位和目的地址偏移位;若目标load指令为第一load指令,则根据源地址偏移位和第一load指令,确定第一源地址,并根据第二寄存器中的初始目的地址和目的地址偏移位,确定第一目的地址;根据第一源地址,获取第一目标数据;根据第一目的地址,将第一目标数据回写至第一目的地址对应的存储空间;根据迭代计算位和初始目的地址确定最终目的地址,并根据最终目的地址判断第一load指令是否执行完毕;若最终目的地址与第一目的地址相同,则确定第一load指令执行完毕。如此,可以通过指令的并行处理,实现批量数据处理,为CPU执行数据处理提供更高的数据吞吐率。
在一个可能的示例中,所述确定目标加载load指令之前,上述程序包括用于执行以下步骤的指令:
获取指令,并对所述指令进行译码,得到指令数据,其中,所述指令数据包括所述指令的类型标识数据;
根据所述类型标识数据,判断所述指令的类型;
若所述指令的类型为load指令类型,则将所述指令确定为所述目标load指令。
在一个可能的示例中,所述第一寄存器还包括类型标志位;所述确定目标加载load指令,上述程序包括用于执行以下步骤的指令:
若所述类型标识位为1,则确定所述目标load指令为所述第一load指令;
若所述类型标识位为0,则确定所述目标load指令为所述第二load指令。
在一个可能的示例中,所述目标load指令的指令数据还包括地址数据,所述地址数据包括获取所述目标数据的第一地址数据和回写所述目标数据的第二地址数据;上述程序包括用于执行以下步骤的指令:
根据所述第一地址数据,确定第一地址;
从所述第一地址对应的存储空间获取所述目标数据;
根据所述第二地址数据,确定第二地址;
将所述目标数据存入所述第二地址对应的存储空间。
在一个可能的示例中,所述根据所述迭代计算位和所述初始目的地址确定最终目的地址,上述程序包括用于执行以下步骤的指令:
根据所述迭代计算位,确定所述第一load指令的迭代总数;
根据所述目的地址偏移位和所述迭代总数,确定所述初始目的地址的位移量;
根据所述初始目的地址和所述位移量确定所述最终目的地址。
在一个可能的示例中,所述根据所述最终目的地址判断所述第一load指令是否执行完毕之后,上述程序包括用于执行以下步骤的指令:
若所述第一目的地址与所述最终目的地址不同,则根据所述第一源地址和所述源地址偏移位,确定第二源地址,其中,所述第二源地址由所述第一源地址位移所述源地址偏移位得到;
根据所述第一目的地址和所述目的地址偏移位,确定第二目的地址,其中,所述第二目的地址由所述第一目的地址位移所述目的地址偏移位得到;
根据所述第二源地址,获取第二目标数据;
根据所述第二目的地址,将所述第二目标数据回写至所述第二目的地址对应的存储空间。
在一个可能的示例中,上述程序包括用于执行以下步骤的指令:
确定所述第一load指令当前次执行的迭代次数,其中,所述迭代次数小于或等于所述迭代总数;
若所述迭代次数小于所述迭代总数,则根据所述指令数据、所述迭代次数、所述第一寄存器对应的源地址偏移位和所述目的地址偏移位,确定第三源地址和第三目的地址。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图6示出了指令处理优化装置的示意图,如图6所示,所述应用于电子设备,所述装置该指令处理优化装置600可以包括:确定单元601、获取单元602、执行单元603和判断单元604;其中,
所述确定单元601,用于确定目标加载load指令,其中,所述目标load指令包括以下任意一种:第一load指令和第二load指令,所述偏移位包括源地址偏移位和目的地址偏移位;以及用于,若所述目标load指令为所述第一load指令,则根据所述源地址偏移位和所述第一load指令,确定第一源地址,并根据所述第二寄存器中的初始目的地址和所述目的地址偏移位,确定第一目的地址;
所述获取单元602,用于根据所述第一源地址,获取第一目标数据;
所述执行单元603,用于根据所述第一目的地址,将所述第一目标数据回写至所述第一目的地址对应的存储空间;
所述判断单元604,用于根据所述迭代计算位和所述初始目的地址确定最终目的地址,并根据所述最终目的地址判断所述第一load指令是否执行完毕;以及用于,若所述最终目的地址与所述第一目的地址相同,则确定所述第一load指令执行完毕。
可以看出,本申请实施例所描述的指令处理优化装置,通过电子设备的确定单元确定目标加载load指令,其中,目标load指令包括以下任意一种:第一load指令和第二load指令,偏移位包括源地址偏移位和目的地址偏移位;以及,若目标load指令为第一load指令,则确定单元根据源地址偏移位和第一load指令,确定第一源地址,并根据第二寄存器中的初始目的地址和目的地址偏移位,确定第一目的地址;获取单元根据第一源地址,获取第一目标数据;执行单元根据第一目的地址,将第一目标数据回写至第一目的地址对应的存储空间;判断单元根据迭代计算位和初始目的地址确定最终目的地址,并根据最终目的地址判断第一load指令是否执行完毕;若最终目的地址与第一目的地址相同,则确定第一load指令执行完毕。如此,可以通过指令的并行处理,实现批量数据处理,为CPU执行数据处理提供更高的数据吞吐率。
在一个可能的示例中,所述确定目标加载load指令之前,上述确定单元601具体用于:
获取指令,并对所述指令进行译码,得到指令数据,其中,所述指令数据包括所述指令的类型标识数据;
根据所述类型标识数据,判断所述指令的类型;
若所述指令的类型为load指令类型,则将所述指令确定为所述目标load指令。
在一个可能的示例中,所述第一寄存器还包括类型标志位;所述确定目标加载load指令,上述确定单元601具体用于:
若所述类型标识位为1,则确定所述目标load指令为所述第一load指令;
若所述类型标识位为0,则确定所述目标load指令为所述第二load指令。
在一个可能的示例中,所述目标load指令的指令数据还包括地址数据,所述地址数据包括获取所述目标数据的第一地址数据和回写所述目标数据的第二地址数据;上述获取单元602和执行单元603具体用于:
根据所述第一地址数据,确定第一地址;
从所述第一地址对应的存储空间获取所述目标数据;
根据所述第二地址数据,确定第二地址;
将所述目标数据存入所述第二地址对应的存储空间。
在一个可能的示例中,所述根据所述迭代计算位和所述初始目的地址确定最终目的地址,上述执行单元603具体用于:
根据所述迭代计算位,确定所述第一load指令的迭代总数;
根据所述目的地址偏移位和所述迭代总数,确定所述初始目的地址的位移量;
根据所述初始目的地址和所述位移量确定所述最终目的地址。
在一个可能的示例中,所述根据所述最终目的地址判断所述第一load指令是否执行完毕之后,上述执行单元603具体用于:
若所述第一目的地址与所述最终目的地址不同,则根据所述第一源地址和所述源地址偏移位,确定第二源地址,其中,所述第二源地址由所述第一源地址位移所述源地址偏移位得到;
根据所述第一目的地址和所述目的地址偏移位,确定第二目的地址,其中,所述第二目的地址由所述第一目的地址位移所述目的地址偏移位得到;
根据所述第二源地址,获取第二目标数据;
根据所述第二目的地址,将所述第二目标数据回写至所述第二目的地址对应的存储空间。
在一个可能的示例中,上述执行单元603具体用于:
确定所述第一load指令当前次执行的迭代次数,其中,所述迭代次数小于或等于所述迭代总数;
若所述迭代次数小于所述迭代总数,则根据所述迭代次数、所述第一寄存器对应的源地址偏移位和所述目的地址偏移位,确定第三源地址和第三目的地址。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的电子设备,用于执行上述指令处理优化方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,电子设备可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理,例如,可以用于支持电子设备执行上述确定单元601、获取单元602、执行单元603和判断单元604执行的步骤。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与电子设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digitalsignalprocessing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他电子设备交互的设备。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序装置,上述计算机程序装置包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序装置可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的装置销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件装置的形式体现出来,该计算机软件装置存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种指令处理优化方法,应用于电子设备,其特征在于,所述电子设备包括第一寄存器和第二寄存器,所述第一寄存器用于确定获取目标数据的源地址,所述第二寄存器用于确定存储所述目标数据的目的地址,所述第一寄存器包括偏移位和迭代计算位;
所述方法包括:
确定目标加载load指令,其中,所述目标load指令包括以下任意一种:第一load指令和第二load指令,所述偏移位包括源地址偏移位和目的地址偏移位;
若所述目标load指令为所述第一load指令,则根据所述源地址偏移位和所述第一load指令,确定第一源地址,并根据所述第二寄存器中的初始目的地址和所述目的地址偏移位,确定第一目的地址;
根据所述第一源地址,获取第一目标数据;
根据所述第一目的地址,将所述第一目标数据回写至所述第一目的地址对应的存储空间;
根据所述迭代计算位和所述初始目的地址确定最终目的地址,并根据所述最终目的地址判断所述第一load指令是否执行完毕;
若所述最终目的地址与所述第一目的地址相同,则确定所述第一load指令执行完毕。
2.根据权利要求1所述的方法,其特征在于,所述确定目标加载load指令之前,所述方法还包括:
获取指令,并对所述指令进行译码,得到指令数据,其中,所述指令数据包括所述指令的类型标识数据;
根据所述类型标识数据,判断所述指令的类型;
若所述指令的类型为load指令类型,则将所述指令确定为所述目标load指令。
3.根据权利要求2所述的方法,其特征在于,所述第一寄存器还包括类型标志位;所述确定目标加载load指令,包括:
若所述类型标识位为1,则确定所述目标load指令为所述第一load指令;
若所述类型标识位为0,则确定所述目标load指令为所述第二load指令。
4.根据权利要求3所述的方法,其特征在于,所述目标load指令的指令数据还包括地址数据,所述地址数据包括获取所述目标数据的第一地址数据和回写所述目标数据的第二地址数据;所述方法还包括:
根据所述第一地址数据,确定第一地址;
从所述第一地址对应的存储空间获取所述目标数据;
根据所述第二地址数据,确定第二地址;
将所述目标数据存入所述第二地址对应的存储空间。
5.根据权利要求1所述的方法,其特征在于,所述根据所述迭代计算位和所述初始目的地址确定最终目的地址,包括:
根据所述迭代计算位,确定所述第一load指令的迭代总数;
根据所述目的地址偏移位和所述迭代总数,确定所述初始目的地址的位移量;
根据所述初始目的地址和所述位移量确定所述最终目的地址。
6.根据权利要求5所述的方法,其特征在于,所述根据所述最终目的地址判断所述第一load指令是否执行完毕之后,所述方法还包括:
若所述第一目的地址与所述最终目的地址不同,则根据所述第一源地址和所述源地址偏移位,确定第二源地址,其中,所述第二源地址由所述第一源地址位移所述源地址偏移位得到;
根据所述第一目的地址和所述目的地址偏移位,确定第二目的地址,其中,所述第二目的地址由所述第一目的地址位移所述目的地址偏移位得到;
根据所述第二源地址,获取第二目标数据;
根据所述第二目的地址,将所述第二目标数据回写至所述第二目的地址对应的存储空间。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
确定所述第一load指令当前次执行的迭代次数,其中,所述迭代次数小于或等于所述迭代总数;
若所述迭代次数小于所述迭代总数,则根据所述指令数据、所述迭代次数、所述第一寄存器对应的源地址偏移位和所述目的地址偏移位,确定第三源地址和第三目的地址。
8.一种指令处理优化装置,应用于电子设备,其特征在于,所述电子设备包括第一寄存器和第二寄存器,所述第一寄存器用于确定获取目标数据的源地址,所述第二寄存器用于确定存储所述目标数据的目的地址,所述第一寄存器包括偏移位和迭代计算位;
所述装置包括:确定单元、获取单元、执行单元和判断单元;其中,
所述确定单元,用于确定目标加载load指令,其中,所述目标load指令包括以下任意一种:第一load指令和第二load指令,所述偏移位包括源地址偏移位和目的地址偏移位;以及用于,若所述目标load指令为所述第一load指令,则根据所述源地址偏移位和所述第一load指令,确定第一源地址,并根据所述第二寄存器中的初始目的地址和所述目的地址偏移位,确定第一目的地址;
所述获取单元,用于根据所述第一源地址,获取第一目标数据;
所述执行单元,用于根据所述第一目的地址,将所述第一目标数据回写至所述第一目的地址对应的存储空间;
所述判断单元,用于根据所述迭代计算位和所述初始目的地址确定最终目的地址,并根据所述最终目的地址判断所述第一load指令是否执行完毕;以及用于,若所述最终目的地址与所述第一目的地址相同,则确定所述第一load指令执行完毕。
9.一种电子设备,其特征在于,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-7中任一项所述的方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211443791.6A CN118057308A (zh) | 2022-11-18 | 2022-11-18 | 指令处理优化方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211443791.6A CN118057308A (zh) | 2022-11-18 | 2022-11-18 | 指令处理优化方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118057308A true CN118057308A (zh) | 2024-05-21 |
Family
ID=91068463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211443791.6A Pending CN118057308A (zh) | 2022-11-18 | 2022-11-18 | 指令处理优化方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118057308A (zh) |
-
2022
- 2022-11-18 CN CN202211443791.6A patent/CN118057308A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210026634A1 (en) | Apparatus with reduced hardware register set using register-emulating memory location to emulate architectural register | |
US10209989B2 (en) | Accelerated interlane vector reduction instructions | |
RU2638641C2 (ru) | Загрузка парциальной ширины, зависящая от режима, в процессорах с регистрами с большим числом разрядов, способы и системы | |
EP3547120B1 (en) | Systems and methods for implementing chained tile operations | |
JP2018500657A (ja) | 融合された単一のサイクルのインクリメント−比較−ジャンプを実施するための命令及びロジック | |
GB2529777A (en) | Processor with granular add immediates capability and methods | |
US20120204008A1 (en) | Processor with a Hybrid Instruction Queue with Instruction Elaboration Between Sections | |
RU2630745C2 (ru) | Пары инструкций установления очерёдности исполнения инструкций, процессоры, способы и системы | |
CN114721720B (zh) | 一种指令集扩展方法、装置、电子设备及存储介质 | |
CN104346132B (zh) | 应用于智能卡虚拟机运行的控制装置及智能卡虚拟机 | |
CN104978284A (zh) | 处理器子程序高速缓冲存储器 | |
CN113703832B (zh) | 一种立即数转移指令的执行方法、装置及介质 | |
CN107870780B (zh) | 数据处理装置和方法 | |
US6986028B2 (en) | Repeat block with zero cycle overhead nesting | |
US10069512B2 (en) | Systems, methods, and apparatuses for decompression using hardware and software | |
CN111814093A (zh) | 一种乘累加指令的处理方法和处理装置 | |
CN118057308A (zh) | 指令处理优化方法及相关装置 | |
CN114691598A (zh) | 用于处理器的独立于存储器的和可缩放状态组件初始化 | |
US20190102199A1 (en) | Methods and systems for executing vectorized pythagorean tuple instructions | |
US8898433B2 (en) | Efficient extraction of execution sets from fetch sets | |
JP2013186547A (ja) | 演算処理装置、携帯端末および演算処理方法 | |
JP3474384B2 (ja) | シフタ回路及びマイクロプロセッサ | |
JP4601624B2 (ja) | 命令プリデコーダ付きダイレクトメモリアクセスユニット | |
US20120079248A1 (en) | Aliased Parameter Passing Between Microcode Callers and Microcode Subroutines | |
US20120079237A1 (en) | Saving Values Corresponding to Parameters Passed Between Microcode Callers and Microcode Subroutines from Microcode Alias Locations to a Destination Storage Location |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |