CN109144572B - 指令执行方法和处理器 - Google Patents
指令执行方法和处理器 Download PDFInfo
- Publication number
- CN109144572B CN109144572B CN201810884537.7A CN201810884537A CN109144572B CN 109144572 B CN109144572 B CN 109144572B CN 201810884537 A CN201810884537 A CN 201810884537A CN 109144572 B CN109144572 B CN 109144572B
- Authority
- CN
- China
- Prior art keywords
- instruction
- access
- pipeline
- loopback
- program code
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000003860 storage Methods 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 59
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000009776 industrial production Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
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
技术领域
本发明涉及计算机技术领域,尤其涉及一种指令执行方法和处理器。
背景技术
软件程序是指为了完成某项或某几项特定功能而被开发运行于操作系统之上的计算机程序。软件程序一旦编译完成,在微处理器上运行时,就可以实现特定的功能。软件程序还可以依据输入数据的改变而有不同的功能体现,不同功能的选择是通过分支指令实现的。也就是说,所有的功能都是预置在软件程序中的,只是依据不同的输入进入到了不同的功能分支。
很多时候,我们需要更改软件程序的执行功能。比如,在软件程序执行出错需要诊断时,就需要插入诊断功能。再比如,对软件程序的错误进行打补丁时,或者对其功能进行部分升级时,等等。目前,可以利用微处理器中的例外/中断机制,通过打断正常程序执行流的功能,插入其他执行程序。
但是,例外/中断发生时需要刷新流水线,且需要进行上下文保护,导致软件程序的更改效率低下且复杂。而且,有些软件程序本身就屏蔽例外/中断,导致软件程序无法更改,大大限制了软件程序的扩展性和适用性。
发明内容
本发明提供一种指令执行方法和处理器,提升了软件代码的扩展性和适用性。
本发明提供的指令执行方法,包括:
获取程序代码的指令;其中,所述程序代码的预设位置设置有访存回送流水线指令,所述访存回送流水线指令用于获取目标数据,并将所述目标数据回送至指令流水线中以执行所述目标数据;
对所述程序代码的指令解码,并根据解码后的程序代码的指令判断所述程序代码的指令是否为所述访存回送流水线指令;
若所述程序代码的指令为所述访存回送流水线指令,则执行所述访存回送流水线指令,并暂停对所述指令流水线中的待处理指令解码;其中,所述待处理指令为所述指令流水线中位于所述访存回送流水线指令之后的指令。
本发明提供的处理器,包括:
取指令单元,用于获取程序代码的指令;其中,所述程序代码的预设位置设置有访存回送流水线指令,所述访存回送流水线指令用于获取目标数据,并将所述目标数据回送至指令流水线中以执行所述目标数据;
解码单元,用于对所述程序代码的指令解码,并根据解码后的程序代码的指令判断所述程序代码的指令是否为所述访存回送流水线指令;
处理单元,用于若所述程序代码的指令为所述访存回送流水线指令,则执行所述访存回送流水线指令,并暂停对所述指令流水线中的待处理指令解码;其中,所述待处理指令为所述指令流水线中位于所述访存回送流水线指令之后的指令。
本发明提供一种指令执行方法和处理器,通过在软件代码中的预设位置设置访存回送流水线指令,处理器执行访存回送流水线指令以获取目标数据,并将目标数据回送至指令流水线作为新的指令执行,高效地、方便地完成软件代码的功能更新或扩展,提升了软件代码的扩展性和适用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的指令执行方法的流程图;
图2为本发明实施例一提供的处理器的结构示意图;
图3为本发明实施例二提供的处理器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的指令执行方法的流程图。本实施例提供的指令执行方法,执行主体可以为处理器。如图1所示,本实施例提供的指令执行方法,可以包括:
S101、获取程序代码的指令。
其中,程序代码的预设位置设置有访存回送流水线指令。访存回送流水线指令用于获取目标数据,并将目标数据回送至指令流水线中以执行目标数据。
具体的,程序代码可以实现特定的功能。程序代码经过编译后形成指令,存储在存储器中。可选的,存储器可以为内存。可选的,内存可以包括指令存储器和数据存储器。所述指令可以存储在指令存储器中。在本实施例中,所述指令可以称为程序代码的指令。处理器可以获取程序代码的指令,以运行所述程序代码的指令。需要说明的是,本实施例对于程序代码的指令的类型不做限定。
在本实施例中,程序代码的预设位置设置有访存回送流水线指令。本实施例对于预设位置不做限定,不同的程序代码可以不同,根据需要进行设置。例如,预设位置可以为程序代码需要插入诊断功能的位置,或者,为程序代码中可能增加新的功能分支的位置,等等。所述访存回送流水线指令,用于获取目标数据,并将目标数据回送至指令流水线中以执行目标数据。其中,流水线技术是指程序执行时多条指令重叠进行操作的一种准并行处理技术。流水线的工作方式就像工业生产上的装配流水线。所谓指令流水线,是指将不同功能的电路单元组成的一条指令处理流水线,可以将一条指令分为多步后再由不同的电路单元分别执行,提高了处理器的运算速度。
可见,通过访存回送流水线指令,首先,可以获得目标数据。然后,将目标数据回送到指令流水线中作为新的指令运行。这样,通过访存回送流水线指令和目标数据,就可以在指令流水线中插入需要运行的数据。下面以具体应用场景为例进行说明。例如,在程序代码需要插入诊断功能的位置设置访存回送流水线指令,通过访存回送流水线指令首先可以获得用于实现诊断功能的目标数据,然后,将用于实现诊断功能的目标数据回送到指令流水线中作为新的指令运行,从而实现诊断功能。又例如,当程序代码存储在只读存储器中无法修改时,在程序代码中可能增加新的功能分支的位置可以设置访存回送流水线指令。通过访存回送流水线指令首先可以获得用于实现新功能的目标数据,然后,将用于实现新功能的目标数据回送到指令流水线中作为新的指令运行,从而增加新功能。
S102、对程序代码的指令解码,并根据解码后的程序代码的指令判断程序代码的指令是否为访存回送流水线指令。
具体的,取到的程序代码的指令可能是访存回送流水线指令,也可能不是。对程序代码的指令解码后,可以确定程序代码的指令是否为访存回送流水线指令。
如果程序代码的指令是访存回送流水线指令,则执行S103。
如果程序代码的指令不是访存回送流水线指令,则可以按照现有的指令执行方法执行所述程序代码的指令。
可选的,S102中,根据解码后的程序代码的指令判断程序代码的指令是否为访存回送流水线指令,可以包括:
根据解码后的程序代码的指令是否包括预设标识信息以及预设标识信息是否占用预设比特位,判断程序代码的指令是否为访存回送流水线指令。
具体的,解码后的程序代码的指令通常为具有一定长度的二进制比特数据,例如32bit长度的二进制数据。本实施例对此不做特别限定。如果解码后的程序代码的指令包括预设标识信息,且预设标识信息占用了预设比特位,则可以确定程序代码的指令为访存回送流水线指令。如果解码后的程序代码的指令不包括预设标识信息,则可以确定程序代码的指令不是访存回送流水线指令。如果解码后的程序代码的指令包括预设标识信息,但是预设标识信息没有占用预设比特位,则可以确定程序代码的指令不是访存回送流水线指令。
需要说明的是,本实施例对于预设标识信息和预设比特位的具体取值不做限定。
下面通过示例进行说明。假设,解码后的程序代码的指令为32bit长度的二进制数据。
在一个示例中,假设,预设标识信息为2bit,取值为二进制数11。预设比特位为低位的2bit。如果解码后的程序代码的指令包括2bit的二进制信息11(预设标识信息),且所述二进制信息11位于32bit长度的低2bit位置,则可以确定程序代码的指令为访存回送流水线指令。如果解码后的程序代码的指令包括2bit的二进制信息11(预设标识信息),但是所述二进制信息11位于32bit长度的高2bit位置,则可以确定程序代码的指令不是访存回送流水线指令。
在另一个示例中,假设,预设标识信息和预设比特位均包括两部分。预设标识信息的第一部分为取值为二进制数111100的6bit二进制信息,对应的预设比特位的第一部分为高位的6bit。预设标识信息的第二部分为取值为二进制数11001的5bit二进制信息,对应的预设比特位的第二部分为低位的5bit。则,在解码后的程序代码的指令中,只有当32bit长度的二进制信息中,高位的6bit为二进制数111100且低位的5bit为二进制数11001时,才可以确定程序代码的指令为访存回送流水线指令。除此之外,可以确定程序代码的指令不是访存回送流水线指令。
S103、若程序代码的指令为访存回送流水线指令,则执行访存回送流水线指令,并暂停对指令流水线中的待处理指令解码。
其中,待处理指令为指令流水线中位于访存回送流水线指令之后的指令。
具体的,当程序代码的指令为访存回送流水线指令时,执行访存回送流水线指令,并暂停对指令流水线中的待处理指令解码。此时,不需要刷新指令流水线。
可见,本实施例提供的指令执行方法,可以应用于需要对软件代码进行修改但是修改困难或者无法修改的场景。例如,软件代码执行出错需要诊断时、软件代码对错误进行打补丁修改时、软件代码对其功能进行部分升级时、软件代码存储在只读存储器中无法修改时、软件代码本身屏幕例外/中断导致无法修改时,等等。通过在软件代码中的预设位置设置访存回送流水线指令,处理器执行访存回送流水线指令以获取目标数据,并将目标数据回送至指令流水线中以执行目标数据,可以高效地、方便地完成软件代码的功能更新或扩展。同时,由于在软件代码的预设位置设置了访存回送流水线指令,软件代码可以存储在只读存储器中,提升了软件代码的私密性、扩展性和适用性。
可选的,S103中,执行访存回送流水线指令,可以包括:
根据访存回送流水线指令获得目标访存地址。
根据目标访存地址获得目标访存地址存储的目标数据。
将目标数据插入至指令流水线中的待处理指令之前。
对目标数据解码。
执行解码后的目标数据。
具体的,根据访存回送流水线指令获得目标访存地址,根据目标访存地址从数据存储器中获得目标访存地址存储的目标数据,与现有的处理器执行指令的过程相似,可以参见现有的指令处理方法。当获得目标数据之后,将目标数据插入至指令流水线中的待处理指令之前。然后,将目标数据作为新的指令在指令流水线中运行。具体的,对目标数据解码,执行解码后的目标数据。其中,对目标数据解码,并执行解码后的目标数据,与现有的处理器执行指令的过程相似,可以参见现有的指令处理方法。
通过将目标数据回送到指令流水线中作为新的指令执行,高效方便地完成软件代码的功能更新或扩展,提升了软件代码的扩展性和适用性。
可选的,本实施例提供的指令执行方法,对目标数据解码之后,还可以包括:
恢复对待处理指令解码。
具体的,将目标数据插入到指令流水线中的待处理指令之前以执行所述目标数据,首先,需要对目标数据解码。之后,可以将解码后的目标数据发射到指令流水线中的其他单元以执行解码后的目标数据。而对目标数据解码之后,可以恢复对待处理指令解码,从而恢复指令流水线对软件代码的指令的处理,提高处理器的处理速度。
可选的,S103中,执行访存回送流水线指令之前,还可以包括:
获取寄存器中存储的功能配置标识,功能配置标识用于指示是否执行访存回送流水线指令。
若功能配置标识指示了执行访存回送流水线指令,则执行访存回送流水线指令。
若功能配置标识指示了不执行访存回送流水线指令,则将访存回送流水线指令作为空指令执行。
通过在处理器中的寄存器中设置功能配置标识,可以控制是否执行访存回送流水线指令,提升了指令执行的灵活性。
需要说明的是,本实施例对于功能配置标识的实现方式不做限定,根据需要进行设置。可选的,功能配置标识可以占用系统寄存器中的1个bit位。取值为1时表示执行访存回送流水线指令,取值为0时表示不执行访存回送流水线指令。
可选的,本实施例提供的指令执行方法,获取寄存器中存储的功能配置标识之前,还可以包括:
获取功能配置指令,功能配置指令用于设置是否执行访存回送流水线指令。
根据功能配置指令设置寄存器中存储的功能配置标识。
通过功能配置指令设置功能配置标识,进一步提升了指令执行的灵活性。
需要说明的是,功能配置指令可以设置在软件代码的预设位置,本实施例对于预设位置不做限定。
需要说明的是,本实施例提供的指令执行方法,可以适用于单发射处理器,也适用于多发射处理器。其中,单发射处理器是指在一个时钟周期内只从存储器中取出一条指令,并且只对一条指令进行解码,只执行一条指令,只写一个运算结果。具体可以参见图2所示实施例提供的处理器。多发射处理器是指在一个时钟周期内可以同时从存储器中取出多条指令,同时对多条指令进行解码。通常,多发射处理器可以包括多个取指令单元和多个解码单元。具体可以参见图3所示实施例提供的处理器结构。
本实施例提供一种指令执行方法,包括:获取程序代码的指令,对程序代码的指令解码,并根据解码后的程序代码的指令判断程序代码的指令是否为访存回送流水线指令,若程序代码的指令为访存回送流水线指令,则执行访存回送流水线指令,并暂停对指令流水线中的待处理指令解码。本实施例提供的指令执行方法,通过在软件代码中的预设位置设置访存回送流水线指令,处理器执行访存回送流水线指令以获取目标数据,并将目标数据回送至指令流水线作为新的指令执行,高效地、方便地完成软件代码的功能更新或扩展,提升了软件代码的扩展性和适用性。
图2为本发明实施例一提供的处理器的结构示意图。本实施例提供的处理器,用于执行图1所示实施例提供的指令执行方法。如图2所示,本实施例提供的处理器,可以包括:
取指令单元11,用于获取程序代码的指令。其中,程序代码的预设位置设置有访存回送流水线指令,访存回送流水线指令用于获取目标数据,并将目标数据回送至指令流水线中以执行目标数据。
解码单元12,用于对程序代码的指令解码,并根据解码后的程序代码的指令判断程序代码的指令是否为访存回送流水线指令。
处理单元13,用于若程序代码的指令为访存回送流水线指令,则执行访存回送流水线指令,并暂停对指令流水线中的待处理指令解码。其中,待处理指令为指令流水线中位于访存回送流水线指令之后的指令。
可选的,处理单元13包括执行单元131、访存单元132和数据回送单元133。
执行单元131,用于根据访存回送流水线指令获得目标访存地址。
访存单元132,用于根据目标访存地址获得目标访存地址存储的目标数据。
数据回送单元133,将目标数据插入至指令流水线中的待处理指令之前。
解码单元12,还用于对目标数据解码。
处理单元13,还用于执行解码后的目标数据。
可选的,解码单元12还用于:
恢复对待处理指令解码。
可选的,解码单元12还用于:
获取寄存器中存储的功能配置标识,功能配置标识用于指示是否执行访存回送流水线指令。
若功能配置标识指示了执行访存回送流水线指令,则处理单元13具体用于执行访存回送流水线指令。
若功能配置标识指示了不执行访存回送流水线指令,则处理单元13具体用于将访存回送流水线指令作为空指令执行。
可选的,取指令单元11还用于:
获取功能配置指令,功能配置指令用于设置是否执行访存回送流水线指令。
解码单元12,还用于根据功能配置指令设置寄存器中存储的功能配置标识。
可选的,解码单元12具体用于:
根据解码后的程序代码的指令是否包括预设标识信息以及预设标识信息是否占用预设比特位,判断程序代码的指令是否为访存回送流水线指令。
可选的,处理单元13还可以包括物理寄存器134。在执行指令的过程中,指令中可能包括源操作数,需要从物理寄存器堆134中读取出来。物理寄存器堆中还可以存储与指令运行相关的其他数据。例如,将执行单元131或者访存单元132的执行结果写回到物理寄存器堆134中。
可选的,执行单元131可以包括至少一个运算单元。所述至少一个运算单元的类型可以不同,例如,定点运算单元、浮点运算单元,等。
可选的,本实施例提供的处理器,可以为单发射处理器。单发射处理器是指在一个时钟周期内只从存储器中取出一条指令,并且只对一条指令进行解码,只执行一条指令,只写一个运算结果。
本实施例提供的处理器,用于执行图1所示实施例提供的指令执行方法,原理和技术效果相似,此处不再赘述。
图3为本发明实施例二提供的处理器的结构示意图。本实施例提供的处理器,用于执行图1所示实施例提供的指令执行方法。本实施例提供的处理器,相比于图2所示实施例提供的处理器,可以为多发射处理器。多发射处理器是指在一个时钟周期内可以同时从存储器中取出多条指令,同时对多条指令进行解码。如图3所示,本实施例提供的处理器,在图2所示处理器的基础上,还可以包括:重命名单元135、发射单元136和重排序单元137。
其中,重命名单元135用于将指令的写回物理寄存器堆134的地址重命名。
发射单元136,用于确定将指令发送到哪个单元执行,例如,发送到执行单元执行,或者发送到访存单元执行,或者发送到执行单元中的定点运算单元执行,或者发送到执行单元中的浮点运算单元执行,等等。
重排序单元137,用于按照取指令的顺序,将指令在物理寄存器堆134中的写回地址的数据标记为已提交。
本实施例提供的处理器,用于执行图1所示实施例提供的指令执行方法,可以参见图1和图2,原理和技术效果相似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
Claims (10)
1.一种指令执行方法,其特征在于,包括:
获取程序代码的指令;其中,所述程序代码的预设位置设置有访存回送流水线指令,所述访存回送流水线指令用于获取目标数据,并将所述目标数据回送至指令流水线中以执行所述目标数据;
对所述程序代码的指令解码,并根据解码后的程序代码的指令判断所述程序代码的指令是否为所述访存回送流水线指令;
若所述程序代码的指令为所述访存回送流水线指令,则执行所述访存回送流水线指令,并暂停对所述指令流水线中的待处理指令解码;其中,所述待处理指令为所述指令流水线中位于所述访存回送流水线指令之后的指令;
所述执行所述访存回送流水线指令,包括:
根据所述访存回送流水线指令获得目标访存地址;
根据所述目标访存地址从数据存储器中获得所述目标访存地址存储的所述目标数据;
将所述目标数据插入至所述指令流水线中的所述待处理指令之前;
对所述目标数据解码;
执行解码后的目标数据。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标数据解码之后,还包括:
恢复对所述待处理指令解码。
3.根据权利要求1或2所述的方法,其特征在于,所述执行所述访存回送流水线指令之前,还包括:
获取寄存器中存储的功能配置标识,所述功能配置标识用于指示是否执行访存回送流水线指令;
若所述功能配置标识指示了执行访存回送流水线指令,则执行所述访存回送流水线指令;
若所述功能配置标识指示了不执行访存回送流水线指令,则将所述访存回送流水线指令作为空指令执行。
4.根据权利要求3所述的方法,其特征在于,所述获取寄存器中存储的功能配置标识之前,还包括:
获取功能配置指令,所述功能配置指令用于设置是否执行访存回送流水线指令;
根据所述功能配置指令设置所述寄存器中存储的所述功能配置标识。
5.根据权利要求1或2所述的方法,其特征在于,所述根据解码后的程序代码的指令判断所述程序代码的指令是否为所述访存回送流水线指令,包括:
根据解码后的程序代码的指令是否包括预设标识信息以及所述预设标识信息是否占用预设比特位,判断所述程序代码的指令是否为所述访存回送流水线指令。
6.一种处理器,其特征在于,包括:
取指令单元,用于获取程序代码的指令;其中,所述程序代码的预设位置设置有访存回送流水线指令,所述访存回送流水线指令用于获取目标数据,并将所述目标数据回送至指令流水线中以执行所述目标数据;
解码单元,用于对所述程序代码的指令解码,并根据解码后的程序代码的指令判断所述程序代码的指令是否为所述访存回送流水线指令;
处理单元,用于若所述程序代码的指令为所述访存回送流水线指令,则执行所述访存回送流水线指令,并暂停对所述指令流水线中的待处理指令解码;其中,所述待处理指令为所述指令流水线中位于所述访存回送流水线指令之后的指令;
所述处理单元包括执行单元、访存单元和数据回送单元;
所述执行单元,用于根据所述访存回送流水线指令获得目标访存地址;
所述访存单元,用于根据所述目标访存地址从数据存储器中获得所述目标访存地址存储的所述目标数据;
所述数据回送单元,将所述目标数据插入至所述指令流水线中的所述待处理指令之前;
所述解码单元,还用于对所述目标数据解码;
所述处理单元,还用于执行解码后的目标数据。
7.根据权利要求6所述的处理器,其特征在于,所述解码单元还用于:
恢复对所述待处理指令解码。
8.根据权利要求6或7所述的处理器,其特征在于,所述解码单元还用于:
获取寄存器中存储的功能配置标识,所述功能配置标识用于指示是否执行访存回送流水线指令;
若所述功能配置标识指示了执行访存回送流水线指令,则所述处理单元具体用于执行所述访存回送流水线指令;
若所述功能配置标识指示了不执行访存回送流水线指令,则所述处理单元具体用于将所述访存回送流水线指令作为空指令执行。
9.根据权利要求8所述的处理器,其特征在于,所述取指令单元还用于:
获取功能配置指令,所述功能配置指令用于设置是否执行访存回送流水线指令;
所述解码单元,还用于根据所述功能配置指令设置所述寄存器中存储的所述功能配置标识。
10.根据权利要求6或7所述的处理器,其特征在于,所述解码单元具体用于:
根据解码后的程序代码的指令是否包括预设标识信息以及所述预设标识信息是否占用预设比特位,判断所述程序代码的指令是否为所述访存回送流水线指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810884537.7A CN109144572B (zh) | 2018-08-06 | 2018-08-06 | 指令执行方法和处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810884537.7A CN109144572B (zh) | 2018-08-06 | 2018-08-06 | 指令执行方法和处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109144572A CN109144572A (zh) | 2019-01-04 |
CN109144572B true CN109144572B (zh) | 2021-03-30 |
Family
ID=64791725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810884537.7A Active CN109144572B (zh) | 2018-08-06 | 2018-08-06 | 指令执行方法和处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144572B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159660B (zh) * | 2019-12-30 | 2022-07-15 | 龙芯中科技术股份有限公司 | 指令执行方法、处理器和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539847B2 (en) * | 2006-01-30 | 2009-05-26 | Nec Electronics Corporation | Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages |
CN102681819A (zh) * | 2011-03-10 | 2012-09-19 | 炬力集成电路设计有限公司 | 实现灵活且低成本的指令替换方法及装置 |
CN106371807A (zh) * | 2016-08-30 | 2017-02-01 | 华为技术有限公司 | 一种扩展处理器指令集的方法及装置 |
CN107250977A (zh) * | 2015-03-04 | 2017-10-13 | 森蒂彼得塞米有限公司 | 通过对指令序列的近似监控的运行时代码并行化 |
-
2018
- 2018-08-06 CN CN201810884537.7A patent/CN109144572B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539847B2 (en) * | 2006-01-30 | 2009-05-26 | Nec Electronics Corporation | Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages |
CN102681819A (zh) * | 2011-03-10 | 2012-09-19 | 炬力集成电路设计有限公司 | 实现灵活且低成本的指令替换方法及装置 |
CN107250977A (zh) * | 2015-03-04 | 2017-10-13 | 森蒂彼得塞米有限公司 | 通过对指令序列的近似监控的运行时代码并行化 |
CN106371807A (zh) * | 2016-08-30 | 2017-02-01 | 华为技术有限公司 | 一种扩展处理器指令集的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109144572A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2430526B1 (en) | Instruction cracking based on machine state | |
CN108139908B (zh) | 移动前缀指令 | |
US9424037B2 (en) | Instructions and functions for evaluating program defined conditions | |
US9262161B2 (en) | Tracking multiple conditions in a general purpose register and instruction therefor | |
TWI411957B (zh) | 亂序執行微處理器、微處理器及其相關之提升效能之方法及執行方法 | |
KR20090061644A (ko) | 명시적 서브루틴 호출의 브랜치 예측 동작을 에뮬레이트하기 위한 방법 및 장치 | |
WO2012136975A1 (en) | A data processing apparatus and method for performing vector operations | |
EP3166015A1 (en) | Fetch ahead branch target buffer | |
CN104978284A (zh) | 处理器子程序高速缓冲存储器 | |
KR102307581B1 (ko) | 레지스터 복구 분기 명령 | |
KR100986375B1 (ko) | 피연산자의 빠른 조건부 선택 | |
CN109144572B (zh) | 指令执行方法和处理器 | |
US7234043B2 (en) | Decoding predication instructions within a superscaler data processing system | |
US20060200654A1 (en) | Stop waiting for source operand when conditional instruction will not execute | |
CN111124499B (zh) | 一种兼容多指令系统的处理器及其运行方法 | |
CN106990939B (zh) | 修改数据处理单元的行为 | |
CN113703842B (zh) | 一种基于分支预测的值预测方法、装置及介质 | |
GB2515020A (en) | Operand generation in at least one processing pipeline | |
US11663014B2 (en) | Speculatively executing instructions that follow a status updating instruction | |
US10552156B2 (en) | Processing operation issue control | |
JP3748191B2 (ja) | 計算機とその制御方法 | |
CN115269011A (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: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |