CN115167924A - 指令处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
指令处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115167924A CN115167924A CN202210726011.2A CN202210726011A CN115167924A CN 115167924 A CN115167924 A CN 115167924A CN 202210726011 A CN202210726011 A CN 202210726011A CN 115167924 A CN115167924 A CN 115167924A
- Authority
- CN
- China
- Prior art keywords
- instruction
- processing
- abnormal
- path
- excepting
- 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 123
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000004044 response Effects 0.000 claims abstract description 15
- 230000008569 process Effects 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 6
- 239000002699 waste material Substances 0.000 abstract description 15
- 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
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002093 peripheral effect 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
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种指令处理方法、装置、电子设备及计算机可读存储介质。
背景技术
在处理器设计中,指令执行通常包括两类,一类为指令顺序执行,一类为指令流重定向。在指令流重定向场景中,对于异常指令,通常一方面对异常指令执行重定向处理,另一方面执行异常指令的后续指令的指令处理操作。然而,这样的处理方式导致处理器功耗较大,指令处理效率较低。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是处理器功耗较大,指令处理效率较低的技术缺陷。
根据本申请的一个方面,提供了一种指令处理方法,该方法包括:
在执行指令处理过程中,检测第一异常指令;
响应于检测到第一异常指令,确定与所述第一异常指令对应的错误路径指令;其中,所述错误路径指令包括在指令处理流程中,按照指令处理顺序,在所述第一异常指令处理之后处理的、且与第一异常指令关联的指令;
终止所述错误路径指令的后续指令处理流程。
可选的,所述检测到第一异常指令之后,所述方法还包括:
响应于检测到第一异常指令触发对所述第一异常指令执行重定向处理,并终止所述第一异常指令的后续指令处理流程;
获取所述重定向处理所确定的目标指令。
可选的,所述确定与所述第一异常指令对应的错误路径指令,包括:
确定第一指令为所述错误路径指令;
其中,所述第一指令的指令处理顺序位于所述第一异常指令与所述目标指令之间。
可选的,所述检测到第一异常指令,包括:
在所述指令处理流程的第一处理模块,检测到所述第一异常指令,
在同一时钟周期内,所述检测到第一异常指令之前,所述方法还包括:
在所述指令处理流程的第二处理模块,检测到第二异常指令,其中,在所述指令处理流程中,按照处理流程顺序,所述第一处理模块位于所述第二处理模块之后;
确定所述第二异常指令为所述错误路径指令。
可选的,所述确定所述第二异常指令为所述错误路径指令之后,所述方法还包括:
终止对所述第二异常指令的重定向处理。
可选的,所述确定与所述第一异常指令对应的错误路径指令之后,所述方法还包括:
为所述错误路径指令添加无效指令标识,以指示终止所述错误路径指令的后续指令处理流程。
根据本申请的另一个方面,提供了一种指令处理装置,该装置包括:
指令确定模块,用于在执行指令处理过程中,检测第一异常指令;
响应于检测到第一异常指令,确定与所述第一异常指令对应的错误路径指令;其中,所述错误路径指令包括在指令处理流程中,按照指令处理顺序,在所述第一异常指令处理之后处理的、且与第一异常指令关联的指令;
指令终止模块,用于终止所述错误路径指令的后续指令处理流程。
可选的,所述指令确定模块具体用于:
确定第一指令为所述错误路径指令;
其中,所述第一指令的指令处理顺序位于所述第一异常指令与所述目标指令之间。
根据本申请的另一个方面,提供了一种指令处理装置,该装置包括:
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)中引退后,对错误路径指令的状态进行恢复,以抹掉检测到异常指令后,仍执行错误路径指令的指令处理所造成的影响。这样,在检测到异常指令后,对不必要执行后续指令处理流程的错误路径指令,仍继续执行其后续指令处理流程的处理方式增加了不必要的处理功耗。
例如,异常指令中excpt指令、ecall指令、illegal instr指令等异常指令通常在译码模块被检测到;除0异常指令通常在执行模块被检测到。以在执行模块检测到除0异常指令为例,现有技术中,在执行模块检测到除0异常指令后,继续执行除0异常指令对应的错误路径指令的后续指令处理流程。其中,错误路径指令可以分别位于执行模块之前的处理模块,即取指模块、译码模块、分发模块、发射模块等。在执行模块检测到除0异常指令后,继续执行的错误路径指令的后续指令处理流程,增加了不必要的功耗浪费,也降低了指令处理效率。
而本申请实施例中,检测到异常指令后,确定与异常指令对应的错误路径指令,并终止所述错误路径指令的后续指令处理流程,实现了降低处理器功耗,减少不必要的功耗浪费,以及提升指令处理效率。
参见图2,本申请实施例提供了一种应用于处理器的指令处理方法,例如,处理器可以是CPU或图形处理器(Graphics Processing Unit,GPU)等。具体的,该方法可以包括以下步骤:
S201:在执行指令处理过程中,检测第一异常指令;响应于检测到第一异常指令,确定与所述第一异常指令对应的错误路径指令。
其中,所述错误路径指令包括在指令处理流程中,按照指令处理顺序,在所述第一异常指令处理之后处理的、且与第一异常指令关联的指令。
可选的,本申请实施例可以应用于计算机技术领域,具体可以应用于检测到异常指令时,对异常指令以及所述异常指令对应的错误路径指令的指令处理操作场景。为便于区分后续描述中的其他异常指令,将所检测的异常指令称为第一异常指令。
具体而言,第一异常指令可以包括任一异常指令。其中,异常指令包括指令本身不符合预设指令规则的指令以及指令处理过程中出现错误的指令。例如,异常指令可以为excpt指令、ecall指令、illegal instr指令(非法指令)、除0异常指令等等。
所述错误路径指令包括在指令处理流程中,按照指令处理顺序,在所述第一异常指令处理之后处理的、且与第一异常指令关联的指令。
具体而言,在指令处理流程中检测到第一异常指令后,需要对第一异常指令执行重定向处理,即重新确定正确的指令地址,以获取正确的指令(正确的指令可以称为目标指令),进而执行目标指令的指令处理流程。
也就是说,在检测到第一异常指令、对第一异常指令执行重定向处理后,本应执行目标指令的指令处理。对于在第一异常指令之后至目标指令到来之前的指令,是没有必要对其执行后续指令处理流程的。
因此,更为具体的,错误路径指令即为指令处理顺序在所述第一异常指令之后、且在目标指令之前的指令。(目标指令之后的指令即为正确路径上的指令,其与第一异常指令无关联)
为降低处理器功耗,减少不必要的功耗浪费,以及提升指令处理效率,本申请实施例可以响应于检测到第一异常指令,确定与所述第一异常指令对应的错误路径指令,以终止对所述错误路径指令的后续指令处理流程。
其中,可选的,可以通过以下方式确定错误路径指令:
当检测到第一异常指令,可以对所述第一异常指令执行重定向处理,确定所述重定向处理所确定的目标指令(即上述正确的指令)的标识信息。然后,在译码模块解析任一指令后,将任一指令的标识信息与目标指令的标识信息进行比较,如果任一指令的标识信息与目标指令的标识信息不相同,说明该指令并非目标指令,则该指令为错误路径指令。也就是说,此时,目标指令尚未流入指令处理流程,即尚未开始执行目标指令的指令处理。如果指令的标识信息与目标指令的标识信息相同,说明该指令为目标指令;也就是说,目标指令流入指令处理流程。
S202:终止所述错误路径指令的后续指令处理流程。
为降低处理器功耗,减少不必要的功耗浪费,以及提升指令处理效率,本申请实施例中,在确定错误路径指令后,可以终止对所述错误路径指令的后续指令处理流程。其中,后续指令处理流程为检测到第一异常指令之后,错误路径指令的指令处理流程。
可选的,在确定错误路径指令后,可以通过更新状态机为所述错误路径指令添加无效指令标识;其中,所述无效指令标识可以指示终止所述错误路径指令的后续指令处理流程。例如,可以通过更新状态机将错误路径指令的状态标识由“1”更新为“0”,即无效指令标识可以为“0”。然后,可以终止所述错误路径指令的后续指令处理流程;以及删除所述错误路径指令。
本申请实施例中,由于在所述第一异常指令之后处理的、且与第一异常指令关联的错误路径指令,是没有必要对其执行后续指令处理流程的,本申请实施例在确定所述错误路径指令后,通过终止所述错误路径指令的后续指令处理流程,实现了降低处理器功耗,减少不必要的功耗浪费,以及提升指令处理效率。
在本申请的一个实施例中,所述检测到第一异常指令之后,所述方法还包括:
响应于检测到第一异常指令触发对所述第一异常指令执行重定向处理,并终止所述第一异常指令的后续指令处理流程;
获取所述重定向处理所确定的目标指令。
现有技术中,若在指令处理流程中检测到第一异常指令时,通常仅对第一异常指令进行标识,并继续执行第一异常指令的指令处理流程,直至第一异常指令的指令处理流程执行完毕后,第一异常指令在重排序缓存(Re-order Buffer,ROB)中引退,才会针对第一异常指令执行重定向处理。
例如,ecall指令,illegal instr指令等异常指令通常在译码模块中检测到;除0异常指令通常在执行模块中检测到。但ecall指令,illegal instr指令、除0异常指令等均在指令处理流程执行完毕后,即执行模块的处理执行完毕后,并在ROB缓存中引退,才会执行重定向处理。
也就是说,现有技术中,在检测到第一异常指令至第一异常指令在重排序缓存中引退的这段时间内,处理器仍在执行对第一异常指令的指令处理。可以理解的是,在检测到第一异常指令后,第一异常指令的指令处理流程仍继续执行实际上是做了无用功,即增加了不必要的功耗浪费,也降低了指令处理效率。
而本申请实施例在响应于检测到第一异常指令时,可以立即对所述第一异常指令执行重定向处理,并终止所述第一异常指令的后续指令处理流程,能够有效降低处理器功耗,减少不必要的功耗浪费,以及提升指令处理效率。
其中,终止所述第一异常指令的后续指令处理流程是指:检测到第一异常指令,就不再执行针对该第一异常指令的后续的指令处理流程。例如,ecall指令,illegal instr指令等异常指令通常在译码模块中检测到;当在译码模块检测到ecall指令或illegal instr指令,那么,针对该ecall指令或illegal instr指令,将不再执行译码模块之后的模块中的相关处理,即将不再执行分发模块、发射模块、执行模块及ROB缓存中执行的处理。
对所述第一异常指令执行重定向处理是指:重新确定正确的指令处理路径,如,重新确定正确的指令地址,以获取正确的指令(正确的指令即本申请中的目标指令)。
综上所述,立即对所述第一异常指令执行重定向处理,并终止所述第一异常指令的后续指令处理流程,能够减少检测到第一异常指令至第一异常指令的指令处理流程执行完毕、在重排序缓存中引退期间的处理功耗及处理时间,从而有效降低处理器功耗,减少不必要的功耗浪费,以及提升指令处理效率。
在本申请的一个实施例中,所述确定与所述第一异常指令对应的错误路径指令,包括:
确定第一指令为所述错误路径指令;
其中,所述第一指令的指令处理顺序位于所述第一异常指令与所述目标指令之间。
具体而言,在指令处理流程中检测到第一异常指令后,需要对第一异常指令执行重定向处理,即重新确定正确的指令地址,以获取正确的指令,正确的指令即目标指令,进而执行目标指令的指令处理流程。也就是说,在检测到第一异常指令、对第一异常指令执行重定向处理后,本应执行目标指令的指令处理。对于在第一异常指令之后至目标指令到来之前的指令,是没有必要对其执行后续指令处理流程的。
因此,指令处理顺序在所述第一异常指令之后、且在目标指令之前的指令即为错误路径指令。
其中,可选的,可以通过以下方式确定错误路径指令:
当检测到第一异常指令,可以对所述第一异常指令执行重定向处理,获取所述重定向处理所确定的目标指令的标识信息。然后,在译码模块解析任一指令后,将任一指令的标识信息与目标指令的标识信息进行比较,如果任一指令的标识信息与目标指令的标识信息不相同,说明该指令并非目标指令,则该指令为错误路径指令。也就是说,此时,目标指令尚未流入指令处理流程,即尚未开始执行目标指令的指令处理。如果指令的标识信息与目标指令的标识信息相同,说明该指令为目标指令;也就是说,目标指令流入指令处理流程。
在本申请的一个实施例中,所述检测到第一异常指令,包括:
在指令处理流程的第一处理模块,检测到所述第一异常指令,
在同一时钟周期内,所述检测到第一异常指令之前,所述方法还包括:
在所述指令处理流程的第二处理模块,检测到第二异常指令,其中,在所述指令处理流程中,按照处理流程顺序,所述第一处理模块位于所述第二处理模块之后;
确定所述第二异常指令为所述错误路径指令。
第二异常指令可以为任一异常指令。
作为示例,结合图3所示,第一处理模块可以为执行模块;第二处理模块可以为译码模块。其中,按照处理流程顺序,即对指令执行处理操作时,由icache缓存到IFU模块、再到译码模块、再到分发模块、再到发射模块、再到执行模块、再到ROB缓存的顺序,执行模块位于译码模块之后。
本申请实施例中,可以在执行模块检测到第一异常指令;例如,第一异常指令可以为除0异常指令。此外,在执行模块检测到除0异常指令之前,可以在译码模块检测到第二异常指令;例如,第二异常指令可以为excpt指令。由于除0异常指令与excpt指令在同一时钟周期内执行指令处理操作,并且,除0异常指令对应的执行模块位于excpt指令对应的译码模块之后;可以理解的是,除0异常指令先于excpt指令执行指令处理操作,即除0异常指令先于excpt指令流入指令处理流程。这种情况下,当检测到除0异常指令后,除0异常指令重定向的目标指令尚未执行指令处理操作前,excpt指令即为除0异常指令对应的错误路径指令。
此外,结合图3,在其他实施例中,在同一时钟周期内,若分别在第一处理模块(如执行模块)及第二处理模块(如译码模块),同时检测到第一异常指令(如除0异常指令)与第二异常指令(如excpt指令),可以理解的是,由于执行模块位于译码模块之后,因此,除0异常指令先于excpt指令流入指令处理流程。这种情况下,当检测到除0异常指令后,除0异常指令重定向的目标指令尚未进入指令流水线,excpt指令即为除0异常指令对应的错误路径指令。
在本申请的一个实施例中,所述确定所述第二异常指令为所述错误路径指令之后,所述方法还包括:
终止对所述第二异常指令的重定向处理。
具体而言,由于第二异常指令为错误路径指令,因此,无需对第二异常指令执行重定向处理。
结合上述示例,可以理解的是,在同一时钟周期内,检测到第二异常指令(例如excpt指令)之前未检测到其他异常指令时,即第二异常指令并非错误路径指令,才可以对所述第二异常指令执行重定向处理。
在本申请的一个实施例中,所述确定与所述第一异常指令对应的错误路径指令之后,所述方法还包括:
为所述错误路径指令添加无效指令标识,以指示终止所述错误路径指令的后续指令处理流程。
可选的,在确定错误路径指令后,可以通过更新状态机为所述错误路径指令添加无效指令标识,其中,所述无效指令标识可以指示终止所述错误路径指令的后续指令处理流程。例如,可以通过更新状态机将错误路径指令的状态标识由“1”更新为“0”,即无效指令标识可以为“0”。然后,本申请实施例中,可以终止所述错误路径指令的后续指令处理流程;以及删除所述错误路径指令。
本申请实施例中,由于在所述第一异常指令之后处理的、且与第一异常指令关联的错误路径指令,是没有必要对其执行后续指令处理流程的,本申请实施例在确定所述错误路径指令后,通过终止所述错误路径指令的后续指令处理流程,实现了降低处理器功耗,减少不必要的功耗浪费,以及提升指令处理效率。
本申请实施例提供了一种指令处理装置,如图4所示,该指令处理装置40可以包括:指令确定模块401、指令终止模块402,其中,
指令确定模块401,用于在执行指令处理过程中,检测第一异常指令;
响应于检测到第一异常指令,确定与所述第一异常指令对应的错误路径指令;其中,所述错误路径指令包括在指令处理流程中,按照指令处理顺序,在所述第一异常指令处理之后处理的、且与第一异常指令关联的指令;
指令终止模块402,用于终止所述错误路径指令的后续指令处理流程。在本申请的一个实施例中,该装置还包括重定向模块,用于响应于检测到第一异常指令触发对所述第一异常指令执行重定向处理,并终止所述第一异常指令的后续指令处理流程;
获取所述重定向处理所确定的目标指令。
在本申请的一个实施例中,所述指令确定模块具体用于:
确定第一指令为所述错误路径指令;
其中,所述第一指令的指令处理顺序位于所述第一异常指令与所述目标指令之间。
在本申请的一个实施例中,指令确定模块具体用于在所述指令处理流程的第一处理模块,检测到所述第一异常指令,
该装置还包括检测模块,用于在在同一时钟周期内,所述检测到第一异常指令之前,在所述指令处理流程的第二处理模块,检测到第二异常指令,其中,在所述指令处理流程中,按照处理流程顺序,所述第一处理模块位于所述第二处理模块之后;
确定所述第二异常指令为所述错误路径指令。
在本申请的一个实施例中,该装置还包括重定向终止模块,用于在所述确定所述第二异常指令为所述错误路径指令之后,终止对所述第二异常指令的重定向处理。
在本申请的一个实施例中,该装置还包括标识模块,用于在所述确定与所述第一异常指令对应的错误路径指令之后,为所述错误路径指令添加无效指令标识,以指示终止所述错误路径指令的后续指令处理流程。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中,由于在所述第一异常指令之后处理的、且与第一异常指令关联的错误路径指令,是没有必要对其执行后续指令处理流程的,本申请实施例在确定所述错误路径指令后,通过终止所述错误路径指令的后续指令处理流程,实现了降低处理器功耗,减少不必要的功耗浪费,以及提升指令处理效率。
本申请实施例提供了一种指令处理装置,如图5所示,该指令处理装置50可以包括:CPU指令流水线501、译码模块502、终止模块503,其中,
CPU指令流水线501,其在流水线执行阶段或该阶段之前检测到第一异常指令时,对所述第一异常指令进行标识并发送;
译码模块502,其响应于检测到第一异常指令,确定与所述第一异常指令对应的错误路径指令;其中,所述错误路径指令包括在指令处理流程中,按照指令处理顺序,在所述第一异常指令处理之后处理的、且与第一异常指令关联的指令;
终止模块503,其用于终止所述错误路径指令的后续指令处理流程。
本申请实施例中,由于在所述第一异常指令之后处理的、且与第一异常指令关联的错误路径指令,是没有必要对其执行后续指令处理流程的,本申请实施例在确定所述错误路径指令后,通过终止所述错误路径指令的后续指令处理流程,实现了降低处理器功耗,减少不必要的功耗浪费,以及提升指令处理效率。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:本申请实施例中,由于在所述第一异常指令之后处理的、且与第一异常指令关联的错误路径指令,是没有必要对其执行后续指令处理流程的,本申请实施例在确定所述错误路径指令后,通过终止所述错误路径指令的后续指令处理流程,实现了降低处理器功耗,减少不必要的功耗浪费,以及提升指令处理效率。
在一个可选实施例中提供了一种电子设备,如图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可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器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.根据权利要求1所述的指令处理方法,其特征在于,所述检测到第一异常指令,包括:
在所述指令处理流程的第一处理模块,检测到所述第一异常指令,
在同一时钟周期内,所述检测到第一异常指令之前,所述方法还包括:
在所述指令处理流程的第二处理模块,检测到第二异常指令,其中,在所述指令处理流程中,按照处理流程顺序,所述第一处理模块位于所述第二处理模块之后;
确定所述第二异常指令为所述错误路径指令。
5.根据权利要求4所述的指令处理方法,其特征在于,所述确定所述第二异常指令为所述错误路径指令之后,所述方法还包括:
终止对所述第二异常指令的重定向处理。
6.根据权利要求1所述的指令处理方法,其特征在于,所述确定与所述第一异常指令对应的错误路径指令之后,所述方法还包括:
为所述错误路径指令添加无效指令标识,以指示终止所述错误路径指令的后续指令处理流程。
7.一种指令处理装置,其特征在于,包括:
指令确定模块,用于在执行指令处理过程中,检测第一异常指令;
响应于检测到第一异常指令,确定与所述第一异常指令对应的错误路径指令;其中,所述错误路径指令包括在指令处理流程中,按照指令处理顺序,在所述第一异常指令处理之后处理的、且与第一异常指令关联的指令;
指令终止模块,用于终止所述错误路径指令的后续指令处理流程。
8.根据权利要求7所述的指令处理装置,其特征在于,所述指令确定模块具体用于:
确定第一指令为所述错误路径指令;
其中,所述第一指令的指令处理顺序位于所述第一异常指令与所述目标指令之间。
9.一种指令处理装置,其特征在于,包括:
CPU指令流水线,其在流水线执行阶段或该阶段之前检测到第一异常指令时,对所述第一异常指令进行标识并发送;
译码模块,其响应于检测到第一异常指令,确定与所述第一异常指令对应的错误路径指令;其中,所述错误路径指令包括在指令处理流程中,按照指令处理顺序,在所述第一异常指令处理之后处理的、且与第一异常指令关联的指令;
终止模块,其用于终止所述错误路径指令的后续指令处理流程。
10.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1至6任一项所述的指令处理方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的指令处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210726011.2A CN115167924A (zh) | 2022-06-23 | 2022-06-23 | 指令处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210726011.2A CN115167924A (zh) | 2022-06-23 | 2022-06-23 | 指令处理方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115167924A true CN115167924A (zh) | 2022-10-11 |
Family
ID=83486925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210726011.2A Pending CN115167924A (zh) | 2022-06-23 | 2022-06-23 | 指令处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115167924A (zh) |
-
2022
- 2022-06-23 CN CN202210726011.2A patent/CN115167924A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9262160B2 (en) | Load latency speculation in an out-of-order computer processor | |
US7836289B2 (en) | Branch predictor for setting predicate flag to skip predicated branch instruction execution in last iteration of loop processing | |
US8959318B2 (en) | Illegal mode change handling | |
US11861365B2 (en) | Macro-op fusion | |
US11061683B2 (en) | Limiting replay of load-based control independent (CI) instructions in speculative misprediction recovery in a processor | |
US20220283811A1 (en) | Loop buffering employing loop characteristic prediction in a processor for optimizing loop buffer performance | |
CN116737240A (zh) | 分支预测方法、装置、处理器、介质及设备 | |
CN110825437A (zh) | 用于处理数据的方法和装置 | |
JP2000322257A (ja) | 条件分岐命令の投機的実行制御方法 | |
US20140047221A1 (en) | Fusing flag-producing and flag-consuming instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media | |
CN115576608A (zh) | 处理器核、处理器、芯片、控制设备和指令融合方法 | |
CN112035170B (zh) | 用于分支预测器的方法和系统 | |
US20040255104A1 (en) | Method and apparatus for recycling candidate branch outcomes after a wrong-path execution in a superscalar processor | |
US20040230782A1 (en) | Method and system for processing loop branch instructions | |
CN116737241B (zh) | 一种指令融合方法、处理器核、处理器和计算机系统 | |
JP3683439B2 (ja) | 分岐予測を抑止する情報処理装置および方法 | |
CN112559048B (zh) | 一种指令处理装置、处理器及其处理方法 | |
CN115167924A (zh) | 指令处理方法、装置、电子设备及计算机可读存储介质 | |
CN111857830B (zh) | 一种提前转发指令数据的通路设计方法、系统及存储介质 | |
CN115167923A (zh) | 指令处理方法、装置、电子设备及计算机可读存储介质 | |
US20140201505A1 (en) | Prediction-based thread selection in a multithreading processor | |
CN114968359A (zh) | 指令执行方法、装置、电子设备及计算机可读存储介质 | |
US20230078985A1 (en) | Checker and checking method for prossor circuit | |
JP2894438B2 (ja) | パイプライン処理装置 | |
CN114968364B (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 |