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

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

Info

Publication number
CN114968359A
CN114968359A CN202210611690.9A CN202210611690A CN114968359A CN 114968359 A CN114968359 A CN 114968359A CN 202210611690 A CN202210611690 A CN 202210611690A CN 114968359 A CN114968359 A CN 114968359A
Authority
CN
China
Prior art keywords
instruction
data
execution
module
processing
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
CN202210611690.9A
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 CN202210611690.9A priority Critical patent/CN114968359A/zh
Publication of CN114968359A publication Critical patent/CN114968359A/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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本申请实施例提供了一种指令执行方法、装置、电子设备及计算机可读存储介质,涉及计算机技术领域。该方法包括:检测第一指令,响应于检测到的第一指令,并行执行第一处理及第二处理;其中,第一指令中包括将第一数据写入目标地址的指令;第一数据可以包括立即数及常数。也就是说,第一指令中的第一数据是编码在指令中的;这样,检测到第一指令时,可以直接从第一指令中获取第一数据,并基于第一数据执行第二指令;从而,第二指令的执行无需等待至第一指令执行完毕,也就是将第一数据写入目标地址后,从目标地址中获取到第一数据再执行,而是提前执行第二指令,以此实现节约指令处理时间,提升指令处理效率。

Description

指令执行方法、装置、电子设备及计算机可读存储介质
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种指令执行方法、装置、电子设备及计算机可读存储介质。
背景技术
目前,随着计算机技术的发展与进步,人们对处理器的性能需求也逐步提升。其中,高性能超标量处理器中,通常采用指令乱序执行来获得较好的指令并行度(Instruction-Level Parallelism,ILP),以此来提高处理器性能。
然而,在相关技术中,基于精简指令集的开源指令集架构(risk-five,Risc-v)处理器设计中,程序中的一些指令通常串行执行,从而造成指令的处理效率较低。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是指令的处理效率较低的技术缺陷。
根据本申请的一个方面,提供了一种指令执行的方法,该方法包括:
检测第一指令,其中,所述第一指令中包括第一数据,所述第一数据为编码至所述第一指令中且欲被写入目标地址的数据;
响应于检测到的第一指令,并行执行第一处理及第二处理;
其中,所述第一处理包括执行所述第一指令的指令处理流程,以将所述第一数据写入所述目标地址;
所述第二处理包括从所述第一指令中获取所述第一数据,并基于所述第一数据执行第二指令;所述第二指令的执行依赖于所述第一数据。
可选的,检测到第一指令之后,所述方法还包括:
为所述第一指令添加第一标识,所述第一标识用于标识所述第一指令的指令处理流程执行完毕,以基于所述第一标识执行所述从所述第一指令中获取所述第一数据的步骤。
可选的,所述基于所述第一数据执行第二指令,包括:
将所述第一数据输入至所述第二指令的输入端口,以执行所述第二指令的指令处理。
可选的,所述第一数据包括立即数和/或常数。
根据本申请的另一个方面,提供了一种指令执行的装置,该装置包括:
指令检测模块,用于检测第一指令,其中,所述第一指令中包括第一数据,所述第一数据为编码至所述第一指令中且欲被写入目标地址的数据;
指令执行模块,用于响应于检测到的第一指令,并行执行第一处理及第二处理;
其中,所述第一处理包括执行所述第一指令的指令处理流程,以将所述第一数据写入所述目标地址;
所述第二处理包括从所述第一指令中获取所述第一数据,并基于所述第一数据执行第二指令;所述第二指令的执行依赖于所述第一数据。
可选的,所述装置还包括:
标识添加模块,用于在检测到第一指令之后,为所述第一指令添加第一标识,所述第一标识用于标识所述第一指令的指令处理流程执行完毕,以基于所述第一标识执行所述从所述第一指令中获取所述第一数据的步骤。
可选的,第一指令执行模块具体用于将所述第一数据输入至所述第二指令的输入端口,以执行所述第二指令的指令处理。
可选的,所述第一数据包括立即数和/或常数。
根据本申请的另一个方面,提供了一种指令执行的装置,该装置包括:
解码模块,其响应于检测到的第一指令,标记所述第一指令,并从所述第一指令中提取所述第一数据,所述第一数据为编码至所述第一指令中且欲被写入目标地址的数据;
重命名模块,其响应于被标记的第一指令,将与所述第一指令中的第一数据存在依赖关系的至少一个第二指令标记为待执行状态;
发射模块,其检测执行模块是否空闲,待空闲时,则将所述第一指令和至少一个第二指令同时发射到执行模块中进行并行处理;
执行模块,其将所述第一数据直接推送作为第二指令的输入数据,完成第一指令和至少一个第二指令的并行执行。
可选的,所述第一指令包括将所述第一数据写入所述目标地址的指令;
所述第二指令包括基于所述第一数据进行运算的指令。
根据本申请的另一个方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行本申请的第一方面任一项所述的指令执行方法。
例如,本申请的第三方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行如本申请的第一方面所示的指令执行方法对应的操作。
根据本申请的再一个方面,提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现本申请的第一方面任一项所述的指令执行方法。
例如,本申请实施例的第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示的指令执行方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面的各种可选实现方式中提供的方法。
本申请提供的技术方案带来的有益效果是:
本申请实施例中,通过检测第一指令,响应于检测到的第一指令,并行执行第一处理及第二处理;其中,第一指令中包括将第一数据写入目标地址;第一数据可以包括立即数及常数。也就是说,第一指令中的第一数据是编码在指令中的;这样,检测到第一指令时,可以直接从第一指令中获取第一数据,并基于第一数据执行第二指令;从而,第二指令的执行无需等待至第一指令执行完毕,也就是将第一数据写入目标地址后,从目标地址中获取到第一数据再执行,而是提前执行第二指令,以此实现节约指令处理时间,提升指令处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种指令执行方法的流程示意图;
图2为本申请实施例提供的一种指令执行方法的指令处理流程示意图;
图3为本申请实施例提供的一种指令执行方法的原理示意图;
图4为本申请实施例提供的一种指令执行装置的结构示意图;
图5为本申请实施例提供的一种指令执行装置的结构示意图;
图6为本申请实施例提供的一种指令执行的电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
重排序缓存区:重排序缓存区(re-order buffer,ROB))可以使指令在乱序执行之后按照原有顺序提交。
Cache:高速缓冲存储器,是位于CPU和主存储器DRAM(Dynamic Random AccessMemory)之间,规模较小,但速度很高的存储器,通常由SRAM(Static Random AccessMemory静态存储器)组成。它是位于CPU与内存间的一种容量较小但速度很高的存储器。CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。Cache又分为L1Cache(一级缓存)和L2Cache(二级缓存),L1Cache主要是集成在CPU内部,而L2Cache集成在主板上或是CPU上。
立即数:立即数通常是指在立即寻址方式指令中给出的数。可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。
本申请提供的指令执行方法、装置、电子设备和计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
在实际场景中,高性能超标量处理器中,通常采用指令乱序执行来获得较好的指令并行度(Instruction-Level Parallelism,ILP),以此来提高处理器性能。然而,在相关技术中,基于精简指令集的开源指令集架构(risk-five,Riscv)处理器设计中,程序中的一些指令只能串行执行,从而造成指令的处理效率较低。
本申请实施例通过在检测到第一指令时,响应于检测到的第一指令,并行执行第一处理及第二处理来解决上述技术问题。其中,所述第一处理包括执行所述第一指令的指令处理流程,以将所述第一数据写入所述目标地址的处理;所述第二处理包括从所述第一指令中获取所述第一数据,并基于所述第一数据执行第二指令;所述第二指令的执行依赖于所述第一数据。
参见图1,本申请实施例提供了一种指令执行方法,可选地,该方法应用于电子设备。为便于说明,后续以该方法应用于处理器为例介绍本申请实施例。例如,处理器可以是CPU或图形处理器(Graphics Processing Unit,GPU)等。具体的,该方法可以包括以下步骤:
S101:检测第一指令,其中,所述第一指令中包括第一数据,所述第一数据为编码至所述第一指令中且欲被写入目标地址的数据。
可选的,本申请实施例可以应用于计算机技术领域;例如,具体可以应用于针对于多个指令的指令处理场景。
在本例中,所述第一指令中包括第一数据。所述第一数据为编码至所述第一指令中且欲被写入目标地址的数据;可选的,第一数据可以包括立即数及常数等。目标地址即为所述第一数据写入的地址。可以理解的是,本申请实施例中,第一指令中的第一数据是编码在指令中的。
作为示例一,第一指令可以为指令li src1,imm。具体的,该第一指令为立即数加载指令,即将立即数imm写入寄存器src1。
S102:响应于检测到的第一指令,并行执行第一处理及第二处理。
其中,所述第一处理包括执行所述第一指令的指令处理流程,以将所述第一数据写入所述目标地址;所述第二处理包括从所述第一指令中获取所述第一数据,并基于所述第一数据执行第二指令;所述第二指令的执行依赖于所述第一数据。
具体而言,第二指令包括与第一指令之间存在依赖关系的指令。可选的,所述第二指令的执行可以依赖于所述第一指令的第一数据。例如,在实际场景中,第二指令可以为针对所述第一数据及第二数据执行目标运算。
作为示例二,第二指令如指令beq src1,src2,target;具体的,该第二指令为数据比较指令,即对寄存器src1中的第一数据及寄存器src2中的第二数据进行比较;其中,比较后的结果存入target寄存器。
其中,需要说明的是,第二数据可以包括一个或者多个数据;第二数据可以为任意类型的数据;此外,目标运算可以包括例如比较运算、加法运算、乘法运算以及其他复合运算等等,本申请实施例对目标运算的算法不作限定。
在相关技术中,由于第一指令以及依赖于第一指令的第二指令只能串行执行,即第一指令执行完毕才能执行第二指令,这样将导致指令的处理效率较低。
本申请实施例中,由于第一指令包括指示将第一数据写入目标地址的指令;其中,第一数据可以包括立即数及常数。也就是说,第一指令中的第一数据是编码在指令中的;这样,响应于检测到的第一指令,可以直接从所述第一指令中获取所述第一数据,并基于所述第一数据执行第二指令。可以理解的是,上述处理方式中,直接从第一指令中获取第一数据以执行第二指令;这样,第二指令的执行无需再等待至第一指令执行完毕,也就是将第一数据写入目标地址后,从目标地址中获取到第一数据再执行,而是提前执行第二指令,节约了指令处理的时间。
此外,作为另一方面,当检测到第一指令,仍继续执行所述第一指令的指令处理流程,即将所述第一数据写入所述目标地址;也就是说,第一指令的指令处理流程与第二指令的指令处理流程可以并行执行,提高了指令的处理效率。
作为示例三,结合图2,对本申请实施例的指令执行方法进行说明:
如图2所示的指令处理流程包括7个模块,分别为缓存模块、取指模块、译码模块、分发模块、重命名模块、发射模块、执行模块。
缓存模块(I-Cache):用于缓存指令。
取指模块(Instruction Fetch Unit,IFU):用于获取指令,通过程序计数器(Program Counter Register,PC)寄存器的值作为地址,从I-Cache中取出指令。
译码模块(Decoder):用于对取出的指令进行译码,并根据译码结果读取寄存器堆,得到指令的源操作数。
分发模块(Dispatcher):用于按照程序中规定的原始顺序,将译码后的指令发送到发射模块。
重命名模块(Renaming):用于执行重命名处理。
发射模块(Issue):用于将发射队列中的指令发送到执行模块。具体地,在指令流水线的执行过程中,经过取指、译码、分发后的指令会被压栈到发射模块,并缓存在发射模块的发射队列中。
执行模块(Execute或lsu):用于根据译码结果执行指令。
重排序缓存(ReorderBuffer,ROB):用于缓存指令处理流程执行完毕的指令,以对指令处理流程执行完毕的指令进行引退处理。
其中,在上述指令处理流程中,可以通过Decoder模块对指令进行解析并检测第一指令。当检测到第一指令后,一方面,第一指令的指令处理流程可以继续执行,即通过Dispatcher模块执行对指令进行分类的处理;通过Renaming模块执行重命名处理;通过Issue模块执行检验是否满足指令执行条件的处理;通过Execute模块执行将第一数据写入目标地址等等。另一方面,可以从第一指令中获取第一数据,以基于第一数据执行第二指令的指令处理流程。
这样,第一指令的指令处理流程与第二指令的指令处理流程可以并行执行,提高了指令的处理效率。此外,需要说明的是,第二指令可以为与第一指令在同一时钟周期内的一个指令,也可以为与第一指令在同一时钟周期内的多个指令。
本申请实施例中,通过检测第一指令,响应于检测到的第一指令,并行执行第一处理及第二处理;其中,第一指令中包括将第一数据写入目标地址;第一数据可以包括立即数及常数。也就是说,第一指令中的第一数据是编码在指令中的;这样,检测到第一指令时,可以直接从第一指令中获取第一数据,并基于第一数据执行第二指令;从而,第二指令的执行无需等待至第一指令执行完毕,也就是将第一数据写入目标地址后,从目标地址中获取到第一数据再执行,而是提前执行第二指令,以此实现节约指令处理时间,提升指令处理效率。
在本申请的一个实施例中,检测到第一指令之后,所述方法还包括:
为所述第一指令添加第一标识,所述第一标识用于标识所述第一指令的指令处理流程执行完毕,以基于所述第一标识执行所述从所述第一指令中获取所述第一数据的步骤。
具体而言,第一标识为标识所述第一指令的指令处理流程执行完毕的标识。可选的,结合图2所示,为所述第一指令添加第一标识的处理可以通过Renaming模块执行。可以理解的是,指令处理流程中,在Renaming模块的处理之后还包括多个处理步骤,即在Renaming模块的处理之后还包括通过Issue模块执行检验是否满足指令执行条件的处理、通过Execute模块执行将所述第一数据写入所述目标地址的处理等等。也就是说,完成Renaming模块的处理时,指令处理流程并没有执行完毕;这时,在Renaming模块为所述第一指令添加第一标识,并非意味着第一指令的指令处理流程真的执行完毕;而仅是通过第一标识来“假”标记第一指令执行完毕。这样,通过“假”标记第一指令的指令处理流程执行完毕,以此来执行所述从所述第一指令中获取所述第一数据的步骤。
在本申请的一个实施例中,所述基于所述第一数据执行第二指令,包括:
将所述第一数据输入至所述第二指令的输入端口,以执行所述第二指令的指令处理。
作为示例四,如图3所示,第一指令为指令li src1,imm;具体的,该第一指令为立即数加载指令,即将立即数imm写入寄存器src1。第二指令为指令beq src1,src2,target;具体的,该第二指令为数据比较指令,即对寄存器src1中的第一数据及寄存器src2中的第二数据进行比较;其中,比较后的结果存入target寄存器。
本申请实施例中,一方面,立即数imm输入第一指令执行模块的输入端口,即第一执行模块的输入端口;另一方面,立即数imm输入第二指令执行模块的输入端口,即第二执行模块的输入端口。这样,第一指令与第二指令可以并行执行,提高了指令的处理效率。
本申请实施例中,通过检测第一指令,响应于检测到的第一指令,并行执行第一处理及第二处理;其中,第一指令中包括将第一数据写入目标地址;第一数据可以包括立即数及常数。也就是说,第一指令中的第一数据是编码在指令中的;这样,检测到第一指令时,可以直接从第一指令中获取第一数据,并基于第一数据执行第二指令;从而,第二指令的执行无需等待至第一指令执行完毕,也就是将第一数据写入目标地址后,从目标地址中获取到第一数据再执行,而是提前执行第二指令,以此实现节约指令处理时间,提升指令处理效率。
本申请实施例提供了一种指令执行装置,如图4所示,该指令执行装置40可以包括:指令检测模块401、第一指令执行模块402,其中,
指令检测模块401,用于检测第一指令,其中,所述第一指令中包括第一数据,所述第一数据为编码至所述第一指令中且欲被写入目标地址的数据。
指令执行模块402,用于响应于检测到的第一指令,并行执行第一处理及第二处理;
其中,所述第一处理包括执行所述第一指令的指令处理流程,以将所述第一数据写入所述目标地址;
所述第二处理包括从所述第一指令中获取所述第一数据,并基于所述第一数据执行第二指令;所述第二指令的执行依赖于所述第一数据。
在本申请的一个实施例中,所述装置还包括:
标识添加模块,用于在检测到第一指令之后,为所述第一指令添加第一标识,所述第一标识用于标识所述第一指令的指令处理流程执行完毕,以基于所述第一标识执行所述从所述第一指令中获取所述第一数据的步骤。
在本申请的一个实施例中,第一指令执行模块具体用于将所述第一数据输入至所述第二指令的输入端口,以执行所述第二指令的指令处理。
在本申请的一个实施例中,所述第一数据包括立即数和/或常数。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中,通过检测第一指令,响应于检测到的第一指令,并行执行第一处理及第二处理;其中,第一指令中包括将第一数据写入目标地址;第一数据可以包括立即数及常数。也就是说,第一指令中的第一数据是编码在指令中的;这样,检测到第一指令时,可以直接从第一指令中获取第一数据,并基于第一数据执行第二指令;从而,第二指令的执行无需等待至第一指令执行完毕,也就是将第一数据写入目标地址后,从目标地址中获取到第一数据再执行,而是提前执行第二指令,以此实现节约指令处理时间,提升指令处理效率。
本申请实施例提供了一种指令执行装置,如图5所示,该指令执行装置50可以包括:解码模块501、重命名模块502,发射模块503,执行模块504,其中,
解码模块501,其响应于检测到的第一指令,标记所述第一指令,并从所述第一指令中提取所述第一数据,所述第一数据为编码至所述第一指令中且欲被写入目标地址的数据;
重命名模块502,其响应于被标记的第一指令,将与所述第一指令中的第一数据存在依赖关系的至少一个第二指令标记为待执行状态;
发射模块503,其检测执行模块是否空闲,待空闲时,则将所述第一指令和至少一个第二指令同时发射到执行模块中进行并行处理;
执行模块504,其将所述第一数据直接推送作为第二指令的输入数据,完成第一指令和至少一个第二指令的并行执行。
在本申请的一个实施例中,所述第一指令包括将所述第一数据写入所述目标地址的指令;
所述第二指令包括基于所述第一数据进行运算的指令。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中,通过检测第一指令,响应于检测到的第一指令,并行执行第一处理及第二处理;其中,第一指令中包括将第一数据写入目标地址;第一数据可以包括立即数及常数。也就是说,第一指令中的第一数据是编码在指令中的;这样,检测到第一指令时,可以直接从第一指令中获取第一数据,并基于第一数据执行第二指令;从而,第二指令的执行无需等待至第一指令执行完毕,也就是将第一数据写入目标地址后,从目标地址中获取到第一数据再执行,而是提前执行第二指令,以此实现节约指令处理时间,提升指令处理效率。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:本申请实施例中,通过检测第一指令,响应于检测到的第一指令,并行执行第一处理及第二处理;其中,第一指令中包括将第一数据写入目标地址;第一数据可以包括立即数及常数。也就是说,第一指令中的第一数据是编码在指令中的;这样,检测到第一指令时,可以直接从第一指令中获取第一数据,并基于第一数据执行第二指令;从而,第二指令的执行无需等待至第一指令执行完毕,也就是将第一数据写入目标地址后,从目标地址中获取到第一数据再执行,而是提前执行第二指令,以此实现节约指令处理时间,提升指令处理效率。
在一个可选实施例中提供了一种电子设备,如图6所示,图6所示的电子设备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(FieldProgrammable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscReadOnly Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码(计算机程序),并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、多媒体播放器、台式计算机等。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。
本申请实施例中,通过检测第一指令,响应于检测到的第一指令,并行执行第一处理及第二处理;其中,第一指令中包括将第一数据写入目标地址;第一数据可以包括立即数及常数。也就是说,第一指令中的第一数据是编码在指令中的;这样,检测到第一指令时,可以直接从第一指令中获取第一数据,并基于第一数据执行第二指令;从而,第二指令的执行无需等待至第一指令执行完毕,也就是将第一数据写入目标地址后,从目标地址中获取到第一数据再执行,而是提前执行第二指令,以此实现节约指令处理时间,提升指令处理效率。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。

Claims (10)

1.一种指令执行方法,其特征在于,包括:
检测第一指令,其中,所述第一指令中包括第一数据,所述第一数据为编码至所述第一指令中且欲被写入目标地址的数据;
响应于检测到的第一指令,并行执行第一处理及第二处理;
其中,所述第一处理包括执行所述第一指令的指令处理流程,以将所述第一数据写入所述目标地址;
所述第二处理包括从所述第一指令中获取所述第一数据,并基于所述第一数据执行第二指令;所述第二指令的执行依赖于所述第一数据。
2.根据权利要求1所述的指令执行方法,其特征在于,检测到第一指令之后,所述方法还包括:
为所述第一指令添加第一标识,所述第一标识用于标识所述第一指令的指令处理流程执行完毕,以基于所述第一标识执行所述从所述第一指令中获取所述第一数据的步骤。
3.根据权利要求1所述的指令执行方法,其特征在于,所述基于所述第一数据执行第二指令,包括:
将所述第一数据输入至所述第二指令的输入端口,以执行所述第二指令的指令处理。
4.根据权利要求1所述的指令执行方法,其特征在于,所述第一数据包括立即数和/或常数。
5.一种指令执行装置,其特征在于,包括:
指令检测模块,用于检测第一指令,其中,所述第一指令中包括第一数据,所述第一数据为编码至所述第一指令中且欲被写入目标地址的数据;
指令执行模块,用于响应于检测到的第一指令,并行执行第一处理及第二处理;
其中,所述第一处理包括执行所述第一指令的指令处理流程,以将所述第一数据写入所述目标地址;
所述第二处理包括从所述第一指令中获取所述第一数据,并基于所述第一数据执行第二指令;所述第二指令的执行依赖于所述第一数据。
6.根据权利要求5所述的指令执行装置,其特征在于,所述装置还包括:
标识添加模块,用于在检测到所述第一指令之后,为所述第一指令添加第一标识,所述第一标识用于标识所述第一指令的指令处理流程执行完毕,以基于所述第一标识执行所述从所述第一指令中获取所述第一数据的步骤。
7.一种指令执行装置,其特征在于,包括:
解码模块,其响应于检测到的第一指令,标记所述第一指令,并从所述第一指令中提取所述第一数据,所述第一数据为编码至所述第一指令中且欲被写入目标地址的数据;
重命名模块,其响应于被标记的第一指令,将与所述第一指令中的第一数据存在依赖关系的至少一个第二指令标记为待执行状态;
发射模块,其检测执行模块是否空闲,待空闲时,则将所述第一指令和至少一个第二指令同时发射到执行模块中进行并行处理;
执行模块,其将所述第一数据直接推送作为第二指令的输入数据,完成第一指令和至少一个第二指令的并行执行。
8.根据权利要求7所述的指令执行装置,其特征在于,
所述第一指令包括将所述第一数据写入所述目标地址的指令;
所述第二指令包括基于所述第一数据进行运算的指令。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1至4任一项所述的指令执行方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述的指令执行方法。
CN202210611690.9A 2022-05-31 2022-05-31 指令执行方法、装置、电子设备及计算机可读存储介质 Pending CN114968359A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210611690.9A CN114968359A (zh) 2022-05-31 2022-05-31 指令执行方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210611690.9A CN114968359A (zh) 2022-05-31 2022-05-31 指令执行方法、装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN114968359A true CN114968359A (zh) 2022-08-30

Family

ID=82958447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210611690.9A Pending CN114968359A (zh) 2022-05-31 2022-05-31 指令执行方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN114968359A (zh)

Similar Documents

Publication Publication Date Title
US9417855B2 (en) Instruction and logic to perform dynamic binary translation
US9703562B2 (en) Instruction emulation processors, methods, and systems
CN107918546B (zh) 利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统
US11720365B2 (en) Path prediction method used for instruction cache, access control unit, and instruction processing apparatus
US20070204138A1 (en) Device, system and method of tracking data validity
US9459871B2 (en) System of improved loop detection and execution
US20140281398A1 (en) Instruction emulation processors, methods, and systems
US20180173534A1 (en) Branch Predictor with Branch Resolution Code Injection
US9652234B2 (en) Instruction and logic to control transfer in a partial binary translation system
US8484443B2 (en) Running multiply-accumulate instructions for processing vectors
CN110825437B (zh) 用于处理数据的方法和装置
JP2019197531A (ja) 連鎖タイル演算を実施するためのシステムおよび方法
KR101624786B1 (ko) 기입마스크 레지스터의 트레일링 최하위 마스킹 비트를 결정하는 시스템, 장치, 및 방법
WO2012106716A1 (en) Processor with a hybrid instruction queue with instruction elaboration between sections
US20240143325A1 (en) Systems, methods, and apparatuses for matrix operations
US9141362B2 (en) Method and apparatus to schedule store instructions across atomic regions in binary translation
JP2014182817A (ja) 条件付きショート前方分岐の計算的に等価な述語付き命令への変換
CN101438236A (zh) 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统
CN108415728B (zh) 一种用于处理器的扩展浮点运算指令执行方法及装置
CN105814536A (zh) Rsa算法加速处理器、方法、系统以及指令
US20130262793A1 (en) Split-word memory
US20080022072A1 (en) System, method and medium processing data according to merged multi-threading and out-of-order scheme
US11467844B2 (en) Storing multiple instructions in a single reordering buffer entry
CN114968359A (zh) 指令执行方法、装置、电子设备及计算机可读存储介质
CN101944012B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100176 Room 101, 1f, building 3, yard 18, Kechuang 10th Street, Beijing Economic and Technological Development Zone, Beijing

Applicant after: Beijing yisiwei Computing Technology Co.,Ltd.

Address before: 100176 Room 101, 1f, building 3, yard 18, Kechuang 10th Street, Beijing Economic and Technological Development Zone, Beijing

Applicant before: Beijing yisiwei Computing Technology Co.,Ltd.