CN115167923A - 指令处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
指令处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115167923A CN115167923A CN202210715607.2A CN202210715607A CN115167923A CN 115167923 A CN115167923 A CN 115167923A CN 202210715607 A CN202210715607 A CN 202210715607A CN 115167923 A CN115167923 A CN 115167923A
- Authority
- CN
- China
- Prior art keywords
- instruction
- processing
- abnormal
- redirection
- exception
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 230000002159 abnormal effect Effects 0.000 claims abstract description 165
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000008569 process Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 8
- 239000002699 waste material Substances 0.000 abstract description 11
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本申请实施例提供了一种指令处理方法、装置、电子设备及计算机可读存储介质,涉及计算机技术领域。该方法包括:检测到异常指令,终止所述异常指令的后续指令处理流程,并对所述异常指令执行重定向处理;获取重定向的目标指令,执行所述目标指令的指令处理流程。相关技术中,在指令处理流程中检测到异常指令时,通常仅对异常指令进行标识,并继续执行异常指令的指令处理流程,直至异常指令的指令处理流程执行完毕后,在重排序缓存中引退,才会针对于异常指令执行重定向处理的方式。相比于相关技术,本申请实施例实现了降低处理器功耗,减少不必要的功耗浪费,提升了指令处理效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种指令处理方法、装置、电子设备及计算机可读存储介质。
背景技术
在处理器设计中,指令执行场景通常包括两类,一类为指令顺序执行,一类为指令重定向。其中,指令重定向场景中,由于发生程序计数器(Program Counter,PC)的跳变,会带来流水线冲刷(Flush),影响了处理器性能的进一步提升。特别是,在检测到异常指令时的重定向处理方式导致指令处理效率较低,处理器功耗较大。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是指令处理效率较低,处理器功耗较大的技术缺陷。
根据本申请的一个方面,提供了一种指令处理方法,该方法包括:在执行指令处理过程中,检测异常指令;在检测到异常指令时,终止所述异常指令的后续指令处理流程,并响应所述异常指令触发对所述异常指令执行重定向处理;获取重定向处理所确定的目标指令,执行所述目标指令的指令处理流程。
可选的,所述对所述异常指令执行重定向处理,包括:确定所述异常指令的指令异常类型;根据所述指令异常类型对应的预设处理操作,执行所述重定向处理。
可选的,所述根据所述指令异常类型对应的预设处理操作,执行所述重定向处理,包括:根据所述指令异常类型对应的预设处理操作,确定重定向的目标地址。
可选的,所述获取重定向的目标指令,执行所述目标指令的指令处理流程,包括:基于所述目标地址,获取所述目标指令;执行所述目标指令的指令处理流程。
可选的,所述检测到异常指令,对所述异常指令执行重定向处理,包括:若检测到至少两个所述异常指令,确定至少两个所述异常指令的指令生成顺序;按照所述指令生成顺序,分别对所述异常指令执行所述重定向处理。
可选的,所述检测到异常指令之后,所述方法还包括:停止后续指令的指令处理流程,其中,所述后续指令包括在所述异常指令生成之后生成的指令。
根据本申请的另一个方面,提供了一种指令处理装置,该装置包括:
重定向模块,用于在执行指令处理过程中,检测异常指令;在检测到异常指令时,终止所述异常指令的后续指令处理流程,并对所述异常指令执行重定向处理;指令处理模块,用于获取重定向处理所确定的目标指令,执行所述目标指令的指令处理流程。
可选的,所述重定向模块具体用于:确定所述异常指令的指令异常类型;根据所述指令异常类型对应的预设处理操作,执行所述重定向处理。
根据本申请的另一个方面,提供了一种指令处理装置,该装置包括:CPU指令流水线,其在流水线执行阶段或该阶段之前检测到异常指令时,对所述异常指令进行标识并发送;重定向模块,其响应来自CPU指令流水线发送的异常标识,根据所述异常标识识别异常指令的异常类型,并按照异常类型执行预设的重定向处理,且在执行重定向处理期间防止所述异常指令进入所述CPU指令流水线以终止对所述异常指令的后续指令处理流程。
根据本申请的另一个方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据本申请的第一方面任一项所述的指令处理方法。
例如,本申请的第三方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行如本申请的第一方面所示的指令处理方法对应的操作。
根据本申请的再一个方面,提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现本申请的第一方面任一项所述的指令处理方法。例如,本申请实施例的第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示的指令处理方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面的各种可选实现方式中提供的方法。
本申请提供的技术方案带来的有益效果是:
本申请实施例中,在执行指令的过程中检测到异常指令时,立即对所述异常指令执行重定向处理;获取重定向的目标指令,执行所述目标指令的指令处理流程。在相关技术中,在指令处理流程中检测到异常指令时,通常仅对异常指令进行标识,并继续执行异常指令的指令处理流程,直至异常指令的指令处理流程执行完毕后,在重排序缓存中引退,才会针对于异常指令执行重定向处理的方式。相比上述技术,本申请实施例可以减少检测到异常指令至异常指令的指令处理流程执行完毕、在重排序缓存中引退期间的处理功耗及处理时间,实现了降低处理器功耗,减少不必要的功耗浪费,提升了指令处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为现有技术的指令处理的流程示意图;
图2为本申请实施例提供的指令处理的流程示意图;
图3为本申请实施例提供的一种指令处理方法的流程示意图;
图4为本申请实施例提供的一种指令处理装置的结构示意图之一;
图5为本申请实施例提供的一种指令处理装置的结构示意图之二;
图6为本申请实施例提供的一种指令处理的电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
指令重定向:指令重定向是针对指令的重定向,即在检测到异常指令时,重新确定正确的指令处理路径,如,重新确定正确的指令地址,以获取正确的指令。
重排序缓存区(re-order buffer,ROB))可以使指令在乱序执行之后按照原有顺序提交。
icache:指令高速缓冲存储器,用于缓存指令的高速缓冲存储器。其中,高速缓冲存储器是位于CPU和主存储器DRAM(Dynamic Random Access Memory)之间,规模较小,但速度很高的存储器,通常由SRAM(Static Random Access Memory静态存储器)组成。它是位于CPU与内存间的一种容量较小但速度很高的存储器。CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。Cache又分为L1Cache(一级缓存)和L2Cache(二级缓存),L1Cache主要是集成在CPU内部,而L2Cache集成在主板上或是CPU上。
本申请提供的指令处理方法、装置、电子设备和计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
首先,结合图1,对现有技术的指令处理流程及重定向处理流程进行说明。
如图1所示,指令处理流程中涉及7个模块,分别为指令缓存、取指模块、译码模块、分发模块、发射模块、执行模块、ROB缓存。
指令缓存(icache):用于对指令进行缓存。
取指模块(Instruction Fetch Unit,IFU):执行获取指令,通过程序计数器寄存器(Program Counter Register,PCR)的值作为地址,从icache中取出指令。
译码模块(Decoder):执行对取出的指令进行译码,并根据译码结果读取寄存器堆,得到指令的源操作数。
分发模块(Dispatcher):执行按照程序中规定的原始顺序,将译码后的指令发送到发射模块。
发射模块(Issue):执行将发射队列中的指令发送到执行模块。具体地,在指令流水线的执行过程中,经过取指、译码、分发后的指令会被压栈到发射模块,并缓存在发射模块的发射队列中。
执行模块(Execute或lsu):执行根据译码结果执行指令。
ROB缓存:用于缓存指令处理流程执行完毕的指令,以对指令处理流程执行完毕的指令进行引退处理。
其中,指令的处理流程为,依次执行取指模块、译码模块、分发模块、发射模块、执行模块的处理。
现有技术中,若在指令处理流程中检测到异常指令时,通常仅对异常指令进行标识,并继续执行异常指令的指令处理流程,直至异常指令的指令处理流程执行完毕后,异常指令在重排序缓存(Re-order Buffer,ROB)中引退,才会针对于异常指令执行重定向处理。
例如,ecall指令,illegal instr指令等异常指令通常在译码模块中检测到;除0异常指令通常在执行模块中检测到。但ecall指令,illegal instr指令、除0异常指令等均在指令处理流程执行完毕后,即执行模块的处理执行完毕后,并在ROB缓存中引退,才会执行重定向处理。
也就是说,现有技术中,在检测到异常指令至异常指令在重排序缓存中引退的这段时间内,处理器仍在执行对异常指令的指令处理,以及执行对在异常指令生成之后生成的其他指令(为方便描述,在异常指令生成之后生成的其他指令可以称为后续指令)的指令处理。可以理解的是,在检测到异常指令后,异常指令以及后续指令的指令处理流程仍继续执行实际上是做了无用功,即增加了不必要的功耗浪费,也降低了指令处理效率。
而本申请实施例在响应于检测到异常指令时,可以立即对所述异常指令执行重定向处理,能够有效降低处理器功耗,减少不必要的功耗浪费,以及提升指令处理效率,
结合图2,对本申请实施例的指令处理流程及重定向处理流程进行说明。
如图2所示,指令处理流程中涉及8个模块,分别为指令缓存、取指模块、译码模块、重定向处理模块、分发模块、发射模块、执行模块、ROB缓存。
指令缓存(icache):用于对指令进行缓存。
取指模块(Instruction Fetch Unit,IFU):执行获取指令,通过程序计数器(Program Counter Register,PC)寄存器的值作为地址,从icache中取出指令。
译码模块(Decoder):执行对取出的指令进行译码,并根据译码结果读取寄存器堆,得到指令的源操作数。
重定向处理模块(pc redirect module):用于执行重定向处理。
分发模块(Dispatcher):执行按照程序中规定的原始顺序,将译码后的指令发送到发射模块。
发射模块(Issue):执行将发射队列中的指令发送到执行模块。具体地,在指令流水线的执行过程中,经过取指、译码、分发后的指令会被压栈到发射模块,并缓存在发射模块的发射队列中。
执行模块(Execute或lsu):执行根据译码结果执行指令。其中,lsu为存储器访问指令的执行单元,存储器访问指令为访问存储器的指令,该类型指令例如数据加载指令等。Execute是非存储器访问指令的执行单元,非存储器访问指令为不访问存储器的指令,该类型的指令例如执行加法、减法等运算的指令。
ROB缓存:用于缓存指令处理流程执行完毕的指令,以对指令处理流程执行完毕的指令进行引退处理。
其中,指令的处理流程为,依次执行取指模块、译码模块、分发模块、发射模块、执行模块的处理。
在上述指令处理流程中,若检测到异常指令,可以终止所述异常指令的后续指令处理流程,并立即通过重定向处理模块执行重定向处理。
例如,当在译码模块检测到ecall指令或illegal instr指令等异常指令时,终止该异常指令的指令处理流程,并立即通过重定向处理模块确定指令异常类型,根据所述指令异常类型对应的预设处理操作,确定重定向的目标地址(目标地址即重新确定正确的指令地址)。然后,取指模块从所述目标地址获取所述目标指令,进而执行所述目标指令的指令处理流程。又如,当在执行模块检测到除0异常指令时,终止该除0异常指令的指令处理流程,立即通过重定向处理模块确定指令异常类型,根据所述指令异常类型对应的预设处理操作,确定重定向的目标地址。然后,取指模块从所述目标地址获取所述目标指令,进而执行所述目标指令的指令处理流程。
参见图3,本申请实施例提供了一种应用于处理器的指令处理方法,例如,处理器可以是CPU或图形处理器(Graphics Processing Unit,GPU)等。具体的,该方法可以包括以下步骤:
S301:在指令处理过程中,检测异常指令,在检测到异常指令时,终止所述异常指令的后续指令处理流程,并响应异常指令并对所述异常指令执行重定向处理。
可选的,本申请实施例可以应用于计算机技术领域,具体可以应用于针对于异常指令的重定向处理操作场景。
具体而言,异常指令包括指令本身不符合预设指令规则的指令以及指令处理过程中出现错误的指令。例如,异常指令可以包括ecall指令,illegal instr指令(非法指令)、除0异常指令等等。
本申请实施例中,响应于检测到异常指令,一方面,终止所述异常指令的后续指令处理流程,另一方面,立即对所述异常指令执行重定向处理。
其中,终止所述异常指令的后续指令处理流程是指:检测到异常指令,就不再执行针对该异常指令的后续的指令处理流程。例如,ecall指令,illegal instr指令等异常指令通常在译码模块中检测到;当在译码模块检测到ecall指令或illegal instr指令,那么,针对该ecall指令或illegal instr指令,将不再执行译码模块之后的模块中的相关处理,即将不再执行分发模块、发射模块、执行模块及ROB缓存中执行的处理。
对所述异常指令执行重定向处理是指:重新确定正确的指令处理路径,如,重新确定正确的指令地址(正确的指令地址即本申请中的目标地址),以获取正确的指令(正确的指令即本申请中的目标指令)。
综上所述,终止所述异常指令的后续指令处理流程,并立即对所述异常指令执行重定向处理,能够减少检测到异常指令至异常指令的指令处理流程执行完毕、在重排序缓存中引退期间的处理功耗及处理时间,从而有效降低处理器功耗,减少不必要的功耗浪费,以及提升指令处理效率。
S302:获取重定向处理所确定的目标指令,执行所述目标指令的指令处理流程。
具体而言,目标指令为重新确定的正确的指令地址(即目标地址)中的指令。重定向处理可以确定目标地址,以实现从目标地址可以获取到目标指令。
在获取到目标指令后,可以执行所述目标指令的指令处理流程。
本申请实施例中,在执行指令的过程中检测到异常指令时,立即对所述异常指令执行重定向处理;获取重定向的目标指令,执行所述目标指令的指令处理流程。在相关技术中,在指令处理流程中检测到异常指令时,通常仅对异常指令进行标识,并继续执行异常指令的指令处理流程,直至异常指令的指令处理流程执行完毕后,在重排序缓存中引退,才会针对于异常指令执行重定向处理的方式。相比上述技术,本申请实施例可以减少检测到异常指令至异常指令的指令处理流程执行完毕、在重排序缓存中引退期间的处理功耗及处理时间,实现了降低处理器功耗,减少不必要的功耗浪费,提升了指令处理效率。
在本申请的一个实施例中,所述对所述异常指令执行重定向处理,包括:
确定所述异常指令的指令异常类型;
根据所述指令异常类型对应的预设处理操作,执行所述重定向处理。
可选的,所述根据所述指令异常类型对应的预设处理操作,执行所述重定向处理,可以包括如下处理方式:
根据所述指令异常类型对应的预设处理操作,确定重定向的目标地址。
具体而言,不同类型的异常指令对应不同的预设处理操作,根据所述指令异常类型对应的预设处理操作,可以确定与预设处理操作对应的目标地址。
例如,当异常指令的指令异常类型为基地址异常时,基地址异常对应的预设处理操作可以包括执行加法操作、乘法操作等等,基于上述预设处理操作,可以确定与该预设处理操作对应的目标地址。
目标地址为重新确定的正确的指令地址;基于所述目标地址可以获取目标指令。
在本申请的一个实施例中,所述获取重定向的目标指令,执行所述目标指令的指令处理流程,包括:
基于所述目标地址,获取所述目标指令;
执行所述目标指令的指令处理流程。
作为示例二,结合图2,例如,当在译码模块检测到ecall指令或illegal instr指令等异常指令时,终止所述异常指令的后续指令处理流程,并立即通过重定向处理模块确定指令异常类型,根据所述指令异常类型对应的预设处理操作,确定重定向的目标地址。然后,取指模块基于所述目标地址,获取所述目标指令,进而执行所述目标指令的指令处理流程。
在本申请的一个实施例中,所述检测到异常指令,对所述异常指令执行重定向处理,包括:
若检测到至少两个所述异常指令,确定至少两个所述异常指令的指令生成顺序;
按照所述指令生成顺序,分别对所述异常指令执行所述重定向处理。
作为示例三,仍结合图2,在实际场景中,若在指令处理流程中检测到至少两个所述异常指令。例如,在图2所示的指令处理流程中,同时在译码模块检测到异常指令A,及在执行模块检测到异常指令B时,由于在先生成的指令的指令处理流程会影响后续生成的指令的指令处理流程,因此,本申请实施例中,可以确定两个所述异常指令的指令生成顺序,按照所述指令生成顺序,分别对所述异常指令执行所述重定向处理。可以理解的是,执行模块检测到的异常指令B的指令生成顺序,在译码模块检测到异常指令A之前,因此,可以先基于异常指令B执行重定向处理。
在本申请的一个实施例中,所述检测到异常指令之后,所述方法还包括:
停止后续指令的指令处理流程,其中,所述后续指令包括在所述异常指令生成之后生成的指令。
具体而言,由于在先生成的指令的指令处理流程会影响后续生成的指令的指令处理流程,本申请实施例中,当检测到异常指令之后,可以停止后续指令的指令处理流程,这样,可以避免后续指令执行所造成的不必要的功耗浪费。其中,所述后续指令包括在所述异常指令生成之后生成的指令。
此外,需要说明的是,在图2所示的指令处理流程中,当检测到异常指令后,一方面,可以针对异常指令执行重定向处理;另一方面,可以继续执行在异常指令生成之前生成的指令(可以简称为前序指令)的指令处理流程。也就是说,针对异常指令的重定向处理,与其他正常前序指令的指令处理流程可以并行执行。
本申请实施例中,在执行指令的过程中检测到异常指令时,立即对所述异常指令执行重定向处理;获取重定向的目标指令,执行所述目标指令的指令处理流程。在相关技术中,在指令处理流程中检测到异常指令时,通常仅对异常指令进行标识,并继续执行异常指令的指令处理流程,直至异常指令的指令处理流程执行完毕后,在重排序缓存中引退,才会针对于异常指令执行重定向处理的方式。相比上述技术,本申请实施例可以减少检测到异常指令至异常指令的指令处理流程执行完毕、在重排序缓存中引退期间的处理功耗及处理时间,实现了降低处理器功耗,减少不必要的功耗浪费,提升了指令处理效率。
本申请实施例提供了一种指令处理装置,如图4所示,该指令处理装置40可以包括:重定向模块401、指令处理模块402,其中,
重定向模块401,用于在执行指令处理过程中,检测异常指令;在检测到异常指令时,终止所述异常指令的后续指令处理流程,并响应所述异常指令触发对所述异常指令执行重定向处理;
指令处理模块402,用于获取重定向的目标指令,执行所述目标指令的指令处理流程。
在本申请的一个实施例中,所述重定向模块具体用于:
确定所述异常指令的指令异常类型;
根据所述指令异常类型对应的预设处理操作,执行所述重定向处理。
在本申请的一个实施例中,所述重定向模块具体用于:
根据所述指令异常类型对应的预设处理操作,确定重定向的目标地址。
在本申请的一个实施例中,所述指令处理模块具体用于基于所述目标地址,获取所述目标指令;
执行所述目标指令的指令处理流程。
在本申请的一个实施例中,所述重定向模块具体用于:
若检测到至少两个所述异常指令,确定至少两个所述异常指令的指令生成顺序;
按照所述指令生成顺序,分别对所述异常指令执行所述重定向处理。
在本申请的一个实施例中,所述装置还包括停止处理模块,用于在所述检测到异常指令之后,停止后续指令的指令处理流程,其中,所述后续指令包括在所述异常指令生成之后生成的指令。
本申请实施例提供了一种指令处理装置,如图5所示,该指令处理装置50可以包括:CPU指令流水线501、重定向模块502,其中,
CPU指令流水线,其在流水线执行阶段或该阶段之前检测到异常指令时,对所述异常指令进行标识并发送;
重定向模块,其响应来自CPU指令流水线发送的异常标识,根据所述异常标识识别异常指令的异常类型,并按照异常类型执行预设的重定向处理,且在执行重定向处理期间防止所述异常指令进入所述CPU指令流水线以终止对所述异常指令的后续指令处理流程。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中,在执行指令的过程中检测到异常指令时,立即对所述异常指令执行重定向处理;获取重定向的目标指令,执行所述目标指令的指令处理流程。在相关技术中,在指令处理流程中检测到异常指令时,通常仅对异常指令进行标识,并继续执行异常指令的指令处理流程,直至异常指令的指令处理流程执行完毕后,在重排序缓存中引退,才会针对于异常指令执行重定向处理的方式。相比上述技术,本申请实施例可以减少检测到异常指令至异常指令的指令处理流程执行完毕、在重排序缓存中引退期间的处理功耗及处理时间,实现了降低处理器功耗,减少不必要的功耗浪费,提升了指令处理效率。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:本申请实施例中检测到异常指令,对所述异常指令执行重定向处理;获取重定向的目标指令,执行所述目标指令的指令处理流程;相比于相关技术中,在指令处理流程中检测到异常指令时,通常仅对异常指令进行标识;并继续执行异常指令的指令处理流程;直至异常指令的指令处理流程执行完毕后,在重排序缓存中引退,才会针对于异常指令执行重定向处理的方式;本申请实施例在检测到异常指令后,针对异常指令立即执行重定向处理;这样,可以减少检测到异常指令至异常指令的指令处理流程执行完毕、在重排序缓存中引退期间的处理功耗及处理时间;实现了降低处理器功耗,减少不必要的功耗浪费,提升了指令处理效率。
在一个可选实施例中提供了一种电子设备,如图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(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器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.根据权利要求2所述的指令处理方法,其特征在于,所述根据所述指令异常类型对应的预设处理操作,执行所述重定向处理,包括:
根据所述指令异常类型对应的预设处理操作,确定重定向的目标地址。
4.根据权利要求3所述的指令处理方法,其特征在于,所述获取重定向的目标指令,执行所述目标指令的指令处理流程,包括:
基于所述目标地址,获取所述目标指令;
执行所述目标指令的指令处理流程。
5.根据权利要求1所述的指令处理方法,其特征在于,所述检测到异常指令,对所述异常指令执行重定向处理,包括:
若检测到至少两个所述异常指令,确定至少两个所述异常指令的指令生成顺序;
按照所述指令生成顺序,分别对所述异常指令执行所述重定向处理。
6.根据权利要求1所述的指令处理方法,其特征在于,所述检测到异常指令之后,所述方法还包括:
停止后续指令的指令处理流程,其中,所述后续指令包括在所述异常指令生成之后生成的指令。
7.一种指令处理装置,其特征在于,包括:
重定向模块,用于在执行指令处理过程中,检测异常指令;在检测到异常指令时,终止所述异常指令的后续指令处理流程,并响应所述异常指令触发对所述异常指令执行重定向处理;
指令处理模块,用于获取重定向处理所确定的目标指令,执行所述目标指令的指令处理流程。
8.根据权利要求1所述的指令处理装置,其特征在于,所述重定向模块具体用于:
确定所述异常指令的指令异常类型;
根据所述指令异常类型对应的预设处理操作,执行所述重定向处理。
9.一种指令处理装置,其中,该装置包括:
CPU指令流水线,其在流水线执行阶段或该阶段之前检测到异常指令时,对所述异常指令进行标识并发送;
重定向模块,其响应来自CPU指令流水线发送的异常标识,根据所述异常标识识别异常指令的异常类型,并按照异常类型执行预设的重定向处理,且在执行重定向处理期间防止所述异常指令进入所述CPU指令流水线以终止对所述异常指令的后续指令处理流程。
10.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1至6任一项所述的指令处理方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的指令处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210715607.2A CN115167923A (zh) | 2022-06-22 | 2022-06-22 | 指令处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210715607.2A CN115167923A (zh) | 2022-06-22 | 2022-06-22 | 指令处理方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115167923A true CN115167923A (zh) | 2022-10-11 |
Family
ID=83487467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210715607.2A Pending CN115167923A (zh) | 2022-06-22 | 2022-06-22 | 指令处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115167923A (zh) |
-
2022
- 2022-06-22 CN CN202210715607.2A patent/CN115167923A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8015391B2 (en) | Simultaneous multiple thread processor increasing number of instructions issued for thread detected to be processing loop | |
US7203932B1 (en) | Method and system for using idiom recognition during a software translation process | |
US10572301B2 (en) | Extract CPU time facility | |
CN116737240B (zh) | 分支预测方法、装置、处理器、介质及设备 | |
JP2014182817A (ja) | 条件付きショート前方分岐の計算的に等価な述語付き命令への変換 | |
TW201732566A (zh) | 從亂序處理器中的不良儲存-至-負載轉發復原的方法與設備 | |
JP2000322257A (ja) | 条件分岐命令の投機的実行制御方法 | |
CN113535236A (zh) | 基于指令集体系结构的和自动的加载跟踪的方法和装置 | |
CN115576608A (zh) | 处理器核、处理器、芯片、控制设备和指令融合方法 | |
US11675595B2 (en) | Starting reading of instructions from a correct speculative condition prior to fully flushing an instruction pipeline after an incorrect instruction speculation determination | |
US20190370038A1 (en) | Apparatus and method supporting code optimization | |
JP3683439B2 (ja) | 分岐予測を抑止する情報処理装置および方法 | |
US7213136B2 (en) | Apparatus and method for redundant zero micro-operation removal | |
US9395985B2 (en) | Efficient central processing unit (CPU) return address and instruction cache | |
CN115167923A (zh) | 指令处理方法、装置、电子设备及计算机可读存储介质 | |
US11467844B2 (en) | Storing multiple instructions in a single reordering buffer entry | |
CN114924792A (zh) | 指令译码单元、指令执行单元及相关装置和方法 | |
CN111857830B (zh) | 一种提前转发指令数据的通路设计方法、系统及存储介质 | |
CN115167924A (zh) | 指令处理方法、装置、电子设备及计算机可读存储介质 | |
CN114610388A (zh) | 一种指令跳转方法、处理器及电子设备 | |
US20050223202A1 (en) | Branch prediction in a pipelined processor | |
CN114968359A (zh) | 指令执行方法、装置、电子设备及计算机可读存储介质 | |
WO2013147878A1 (en) | Prediction-based thread selection in a multithreading processor | |
US20230078985A1 (en) | Checker and checking method for prossor circuit | |
RU2427883C2 (ru) | Окончание инструкции с учетом потребляемой энергии |
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 |