CN111142940B - 处理器与软件的适配方法、装置、处理器、芯片和设备 - Google Patents
处理器与软件的适配方法、装置、处理器、芯片和设备 Download PDFInfo
- Publication number
- CN111142940B CN111142940B CN201911338866.2A CN201911338866A CN111142940B CN 111142940 B CN111142940 B CN 111142940B CN 201911338866 A CN201911338866 A CN 201911338866A CN 111142940 B CN111142940 B CN 111142940B
- Authority
- CN
- China
- Prior art keywords
- instruction
- software
- processor
- preset
- predetermined
- 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
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/3017—Runtime instruction translation, e.g. macros
-
- 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种处理器与软件的适配方法、装置、处理器、芯片和设备,处理器适于执行软件的指令,方法包括:执行软件的在先指令流至第一预定指令,执行第一预定指令并调整软件执行时的处理器寄存器的状态为微码补丁开始适配状态;获取软件的中间指令流的中间指令,当获取的中间指令为预定不适配指令时,利用与预定不适配指令所对应的预定微码补丁指令,调整预定不适配指令,得到调整适配指令,并执行调整适配指令,直至执行软件的第二预定指令,调整软件执行时的处理器寄存器的状态为微码补丁停止适配状态。本发明实施例所提供的处理器与软件的适配方法、装置、处理器、芯片和设备,可以提高软件与处理器的适配后,功能实现的可能性。
Description
技术领域
本发明实施例涉及计算机领域,具体涉及一种处理器与软件的适配方法、装置、处理器、芯片和设备。
背景技术
由于软件的设计与CPU(中央处理器)并非完全匹配,从而在进行软件的运行时,会出现由于二者的不匹配而导致软件不能很好地运行或者CPU的全部性能不能很好地发挥的问题。
为此,需要使软件和处理器相互适配:对于开源软件或者有源码的软件,可通过修改源码重新编译的方式来进行,但由于编译环境的变化,重新编译后的软件会与原来的软件有差异,造成功能实现的不确定;而对于闭源软件或者没有源码的软件,可采用修改软件二进制编码的方式进行,但此方法成功率较低,不确定性更高,并且对于采用了二进制保护机制的软件,修改完成后,软件也无法运行。
因此,如何提高软件与处理器适配后的功能实现可能性,成为了本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明实施例提供一种处理器与软件的适配方法,方法、装置、处理器、芯片和设备,以提高软件与处理器的适配后,功能实现的可能性。
为实现上述目的,本发明实施例提供如下技术方案:
为解决上述问题,本发明实施例提供一种处理器与软件的适配方法,所述处理器适于执行所述软件的指令,包括:
执行所述软件的在先指令流至第一预定指令,执行所述第一预定指令并调整所述软件执行时的处理器寄存器的状态为微码补丁开始适配状态,其中,所述在先指令流为所述软件的第一预定指令之前的各指令;
获取所述软件的中间指令流的中间指令,当获取的所述中间指令为预定不适配指令时,利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令,并执行所述调整适配指令,直至执行所述软件的第二预定指令,调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态,其中,所述中间指令流为所述软件的所述第一预定指令和所述第二预定指令之间的各指令。
可选地,所述执行所述软件的第二预定指令的步骤之后还包括:
执行所述软件的在后指令流,所述在后指令流为所述软件的所述第二预定指令之后的各指令。
可选地,所述预定不适配指令通过所述软件与所述处理器的调试获取。
可选地,所述第一预定指令和所述第二预定指令之间包含所述软件的全部的所述预定不适配指令。
可选地,所述利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令的步骤包括:
通过所述处理器的译码单元利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令。
可选地,所述获取所述软件的中间指令流的中间指令的步骤包括:
获取所述软件的中间指令流的中间指令,并调整所述软件执行时的处理器寄存器的状态为微码补丁适配中状态。
为解决上述问题,本发明实施例还提供一种处理器与软件的适配装置,所述处理器适于执行所述软件的指令,包括:
在先指令流及第一预定指令执行单元,适于执行所述软件的在先指令流至第一预定指令,执行所述第一预定指令并调整所述软件的状态寄存器的状态为开始适配状态,其中,所述在先指令流为所述软件的第一预定指令之前的各指令;
调整适配指令获取及指令执行单元,适于获取所述软件的中间指令流的中间指令,当获取的所述中间指令为预定不适配指令时,利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令,并执行所述调整适配指令,直至执行所述软件的第二预定指令,调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态,其中,所述中间指令流为所述软件的所述第一预定指令和所述第二预定指令之间的各指令。
可选地,所述适配装置,还包括:
在后指令流执行单元,适于执行所述软件的在后指令流,所述在后指令流为所述软件的所述第二预定指令之后的各指令。
可选地,所述预定不适配指令通过所述软件与所述处理器的调试获取。
可选地,所述第一预定指令和所述第二预定指令之间包含所述软件的全部的所述预定不适配指令。
可选地,所述调整适配指令获取及指令执行单元,适于利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令包括:
通过所述处理器的译码单元利用与所述预定不适配指令所对应的微码补丁指令,调整所述预定不适配指令,得到调整适配指令。
可选地,调整适配指令获取及指令执行单元,适于执行所述软件的中间指令流,包括:
执行所述软件的中间指令流,并调整所述软件执行时的处理器寄存器的状态为微码补丁适配中状态。
为解决上述问题,本发明实施例还提供一种处理器,所述处理器配置为执行如前述的处理器与软件的适配方法。
为解决上述问题,本发明实施例还提供一种芯片,包括微码补丁指令存储单元和如前速述的处理器,所述微码补丁指令存储单元存储有与不适配软件的不适配指令对应的微码补丁指令。
为解决上述问题,本发明实施例还提供一种设备,包括如前述的芯片。
本发明实施例所提供的处理器与软件的适配方法、装置、处理器、芯片和设备,所述处理器适于执行所述软件的指令,所述方法包括:
执行所述软件的在先指令流至第一预定指令,执行所述第一预定指令并调整所述软件执行时的处理器寄存器的状态为微码补丁开始适配状态,其中,所述在先指令流为所述软件的第一预定指令之前的各指令;
获取所述软件的中间指令流的中间指令,当所述中间指令为预定不适配指令时,利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令,并执行所述调整适配指令,直至执行所述软件的第二预定指令,调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态,其中,所述中间指令流为所述软件的所述第一预定指令和所述第二预定指令之间的各指令。
这样,本发明实施例所提供的处理器与软件的适配方法,在执行第一预定指令的同时,调整软件执行时的处理器寄存器的状态为微码补丁开始适配状态,从而在执行第一预定指令和第二预定指令之间的中间指令流时,进行处理器与软件的适配,当确定即将执行的指令为预定不适配指令时,利用与其对应的预定微码补丁指令对预定不适配指令进行调整,得到调整适配指令,然后执行调整适配指令,直至执行到第二预定指令时,调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态,完成处理器与软件的适配。从而,本发明实施例所提供的处理器与软件的适配方法,利用预定微码补丁指令实现了对预定不适配指令的调整,在软件执行的过程中,不执行预定不适配指令,而执行基于其获取的调整适配指令,可以实现软件与处理器的适配,并且可以提高适配后的功能实现的可能性,进而保证软件和处理器功能的实现;同时,利用执行第一预定指令和第二预定指令时对处理器寄存器的状态的标识,可以实现软件执行过程中的适配的开始和结束,避免无需进行适配的指令进行适配操作,降低运算量,提高运算效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例所提供的处理器与软件的适配方法的一流程示意图;
图2示出了本发明实施例提供的设备的结构框图;
图3示出了本发明实施例所提供的处理器与软件的适配装置的一可选框图。
具体实施方式
由背景技术可知,进行软件和处理器适配时,软件与处理器的适配后功能实现的不确定性很高,导致软件和处理器适配失败。
为了提高软件与处理器的适配后功能实现的可能性,本发明实施例提供了一种处理器与软件的适配方法,方法、装置、处理器、芯片和设备,本发明实施例所提供的一种处理器与软件的适配方法,包括:
执行所述软件的在先指令流至第一预定指令,执行所述第一预定指令并调整所述软件执行时的处理器寄存器的状态为微码补丁开始适配状态,其中,所述在先指令流为所述软件的第一预定指令之前的各指令;
执行所述软件的中间指令流,当执行的所述中间指令流的中间指令为预定不适配指令时,利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令,并执行所述调整适配指令,直至执行所述软件的第二预定指令,调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态,其中,所述中间指令流为所述软件的所述第一预定指令和所述第二预定指令之间的各指令。
这样,本发明实施例所提供的处理器与软件的适配方法,在执行第一预定指令的同时,调整软件执行时的处理器寄存器的状态为微码补丁开始适配状态,从而在执行第一预定指令和第二预定指令之间的中间指令流时,进行处理器与软件的适配,当确定即将执行的指令为预定不适配指令时,利用与其对应的预定微码补丁指令对预定不适配指令进行调整,得到调整适配指令,然后执行调整适配指令,直至执行到第二预定指令时,调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态,完成处理器与软件的适配。
从而,本发明实施例所提供的处理器与软件的适配方法,利用预定微码补丁指令实现了对预定不适配指令的调整,在软件执行的过程中,不执行预定不适配指令,而执行基于其获取的调整适配指令,可以实现软件与处理器的适配,并且可以提高适配后的功能实现的可能性,进而保证软件和处理器功能的实现;同时,利用执行第一预定指令和第二预定指令时对处理器寄存器的状态的标识,可以实现软件执行过程中的适配的开始和结束,避免无需进行适配的指令进行适配操作,降低运算量,提高运算效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1和图2,图1是本发明实施例所提供的处理器与软件的适配方法的一流程示意图;图2示出了本发明实施例提供的设备的结构框图。
如图1所示,本发明实施例所提供的处理器与软件的适配方法包括以下步骤:
步骤S10:执行所述软件的在先指令流至第一预定指令,执行所述第一预定指令并调整所述软件执行时的处理器寄存器的状态为微码补丁开始适配状态,所述在先指令流为所述软件的第一预定指令之前的各指令。
开始进行处理器1(示于图2中)与软件的适配时,处理器1按照软件的指令顺序依次执行各指令,首先执行位于第一预定指令之前的在先指令流,然后执行第一预定指令,当执行第一预定指令时,需要同时调整处理器寄存器(图中未示出)的状态为微码补丁开始适配状态,标识进入适配指令区域,为后续的适配做好准备。
具体地,可以通过改变处理器寄存器的状态位的数值,实现对处理器寄存器的状态的调整,比如:将状态位的数值调整为1,标识进入适配指令区域。
可以理解的是,软件与处理器1的适配是在利用处理器1进行软件指令的执行的过程中实现的,但是,第一预定指令的确定需要在适配前,在利用处理器1进行软件的调试过程中确定的,在适配过程中,以预先确定的第一预定指令作为信号,调整软件执行时的处理器寄存器的状态为微码补丁开始适配状态,标识对软件指令的执行开始进入适配状态。
当然,第一预定指令可以为第一条需要进行适配的预定不适配指令之前的任何一条指令,第一预定指令可以根据需要和具体的软件特点确定,可选地,可以选择第一条需要进行适配的预定不适配指令之前的指令流中比较有特点的指令,比如:在所述软件的执行过程中出现较少的指令;容易理解的是,软件可以为操作系统软件,也可以为普通软件。
步骤S11:获取所述软件的中间指令流的中间指令。
当然,执行完第一预定指令并完成处理器状态寄存器的状态调整后,需进一步执行后续的指令,由于后续的指令可能会有需要进行适配的指令,为此先获取所述软件的中间指令流的中间指令。
其中,中间指令流即为第一预定指令和第二预定指令之间的各条指令,中间指令即为中间指令流中的一条指令,而第二预定指令可以理解为最后一条需要进行适配的预定不适配指令之后的任何一条指令,第二预定指令可以根据需要和具体的软件特点确定,可选地,也可以选择最后一条需要进行适配的预定不适配指令之后的指令流中比较有特点的指令,比如:在所述软件的执行过程中出现较少的指令。
当然,第二预定指令也需要在进行适配前完成确定,可以利用处理器1进行软件的调试进行确定,要保证软件中与处理器1不适配的指令在第二预定指令全部位于第二预定指令之前。
结合第一预定指令可知,通过利用处理器1进行软件的调试,确保所最终确定的第一预定指令和第二预定指令满足所述第一预定指令和所述第二预定指令之间包含所述软件的全部的所述预定不适配指令。
在一种具体实施方式中,为了明确当前的处理器1状态,在获取所述软件的中间指令流的中间指令的同时,还可以调整所述软件执行时的处理器寄存器的状态为微码补丁适配中状态。
具体地,可以通过改变处理器寄存器的状态位的数值,实现对处理器寄存器的状态的调整,比如:在步骤S10中将状态位的数值调整为1时,此时可以将状态位的数值调整为2,标识进入微码补丁适配中区域。
步骤S12:判断所述中间指令是否为所述软件的第二预定指令,若是,执行步骤S16;若否,执行步骤S13。
得到中间指令后,需要判断当前的中间指令是否为第二预定指令,如果是,则表明处理器1已经完成所有的需要进行适配的预定不适配指令的调整和执行,需要调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态,即执行步骤S16;否则,则表明处理器1仍然处于需要确定当前的中间指令是否是需要调试的预定不适配指令,即执行步骤S13,然后基于判断结果进行相应的指令执行。
步骤S13:判断所述中间指令是否为预定不适配指令,若是,执行步骤S14;若否,执行步骤S15。
当确定中间指令不是第二预定指令后,进一步判断是否为预定不适配指令,当然预定不适配指令也是预先通过所述软件与所述处理器1的调试获取。
由于预定不适配指令的适配调整是通过微码补丁指令实现的,而微码补丁指令只能够对微码指令进行修改,因此预定不适配指令首先需要是微码指令,即在利用处理器进行软件的调试时,所确定的预定不适配指令是微码指令。
对应地,请参考图2,在进行中间指令是否为预定不适配指令的判断时,如果当前的中间指令是通过处理器1的微码存储单元11进行进一步的执行,则表示已经经过了第一层的判断,即当前的中间指令为微码指令,然后,再进一步利用预先在微码补丁指令存储单元4中存储的预定不适配指令,确定当前的中间指令是否是预定不适配指令,如果是,那么执行步骤14,对其进行调整;如果不是,那么执行步骤S15,直接执行当前的中间指令。
可以理解的是,微码补丁指令存储单元4中存储的预定不适配指令的数量不确定,基于软件实际的情况而定,而当微码补丁指令存储单元4中存储的预定不适配指令的数量为多个时,确定中间指令是否为预定不适配指令是指确定中间指令是否为各个预定不适配指令中的一个。
步骤S14:利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令,并执行所述调整适配指令。
确定当前的中间指令为预定不适配指令,由于其与处理器1不适配,因此需要对其进行调整。
可以理解的是,微码补丁指令为对微码指令进行修改的指令,而微码指令是指处理器在执行功能复杂的指令时,将复杂的指令进行分解得到的一系列相对简单但是与电路强相关的微指令,是处理器设计的一部分,软件不可见,且无法修改,为此当需要对微码进行修改时,就需要通过微码补丁指令进行。
具体地,基于预定不适配指令获取微码补丁指令存储单元4中存储的与其对应的预定微码补丁,然后利用预定微码补丁指令调整预定不适配指令,得到调整指令,进而执行调整适配指令。
容易理解的是,预定微码补丁指令也是需要预先获取,并存储至微码补丁指令存储单元4中的。具体地,可以在经过调试获取到预定不适配指令时,根据具体情况,确定微码补丁指令,进而作为与其对应的预定微码补丁指令进行存储。
在一种具体实施方式中,可以通过所述处理器1的译码单元12利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令。处理器1的译码单元12可以很方便地实现利用预定微码补丁指令对预定不适配指令的调整,降低了实现难度。
当然,如图2所示,预定微码补丁指令可以通过BIOS3(Basic Input/OutputSystem,基本输入输出系统)传输至译码单元12。
步骤S15:执行所述中间指令。
确定当前的中间指令不是预定不适配指令,则可以直接利用处理器1执行所述中间指令。
步骤S16:执行所述软件的第二预定指令,调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态。
结合步骤S12的判断结果,所述中间指令若为所述软件的第二预定指令,则执行第二预定指令,并同时调整软件执行时的处理器寄存器的状态至微码补丁停止适配状态,处理器1已经完成所有的需要进行适配的预定不适配指令的调整和执行。
具体地,可以通过改变处理器寄存器的状态位的数值,实现对处理器寄存器的状态的调整,比如:在步骤S10中将状态位的数值调整为1,标识进入适配指令区域;在步骤S11中将状态位的数值调整为2,标识进入微码补丁适配中区域,此时,将状态位的数值调整为0,标识进入微码补丁停止适配区域。
步骤S17:执行所述软件的在后指令流,所述在后指令流为所述软件的所述第二预定指令之后的各指令。
由于第二预定指令可以为最后一条需要进行适配的预定不适配指令之后的任何一条指令,因此,在一种具体实施方式中,第二预定指令之后可能还存在其他的所述软件的指令未被执行,在此情况下,为保证指令执行完毕,还需要执行第二预定指令之后的执行,即执行软件的在后指令流(所述软件的所述第二预定指令之后的各指令),直至完成整个软件指令的执行。
这样,本发明实施例所提供的处理器与软件的适配方法,在执行第一预定指令的同时,调整软件执行时的处理器寄存器的状态为微码补丁开始适配状态,从而在执行第一预定指令和第二预定指令之间的中间指令流时,进行处理器与软件的适配,当确定即将执行的指令为预定不适配指令时,利用与其对应的预定微码补丁指令对预定不适配指令进行调整,得到调整适配指令,然后执行调整适配指令,直至执行到第二预定指令时,调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态,完成处理器与软件的适配。
从而,本发明实施例所提供的处理器与软件的适配方法,利用预定微码补丁指令实现了对预定不适配指令的调整,在软件执行的过程中,不执行预定不适配指令,而执行基于其获取的调整适配指令,可以实现软件与处理器的适配,并且可以提高适配后的功能实现的可能性,进而保证软件和处理器功能的实现;同时,利用执行第一预定指令和第二预定指令时对处理器寄存器的状态的标识,可以实现软件执行过程中的适配的开始和结束,避免无需进行适配的指令进行适配操作,降低运算量,提高运算效率。
下面对本发明实施例提供的处理器与软件的适配装置进行介绍,下文描述的处理器与软件的适配装置可以认为是处理器为实现本发明实施例提供的处理器与软件的适配方法,所需设置的程序模块。下文描述的处理器与软件的适配装置可与前文描述的方案内容相互对应参照。
请结合图2参照图3,图3示出了本发明实施例所提供的处理器与软件的适配装置的一可选框图,该装置可以包括:
在先指令流及第一预定指令执行单元100,适于执行所述软件的在先指令流至第一预定指令,执行所述第一预定指令并调整所述软件的状态寄存器的状态为开始适配状态,其中,所述在先指令流为所述软件的第一预定指令之前的各指令;
调整适配指令获取及指令执行单元110,适于获取所述软件的中间指令流的中间指令,当获取的所述中间指令为预定不适配指令时,利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令,并执行所述调整适配指令,直至执行所述软件的第二预定指令,调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态,其中,所述中间指令流为所述软件的所述第一预定指令和所述第二预定指令之间的各指令。
本发明实施例所提供的处理器与软件的适配装置的在先指令流及第一预定指令执行单元100,在开始进行处理器1与软件的适配时,处理器1按照软件的指令顺序依次执行各指令,首先执行位于第一预定指令之前的在先指令流,然后执行第一预定指令,当执行第一预定指令时,同时调整处理器寄存器的状态为微码补丁开始适配状态,标识进入适配指令区域,为后续的适配做好准备。
需要说明的是,第一预定指令的确定需要在适配前,在利用处理器1进行软件的调试过程中确定的,在适配过程中,以预先确定的第一预定指令作为信号,调整软件执行时的处理器寄存器的状态为微码补丁开始适配状态,标识对软件指令的执行开始进入适配状态。
第一预定指令可以为第一条需要进行适配的预定不适配指令之前的任何一条指令,第一预定指令可以根据需要和具体的软件特点确定,可选地,可以选择第一条需要进行适配的预定不适配指令之前的指令流中比较有特点的指令,比如:在所述软件的执行过程中出现较少的指令;容易理解的是,软件可以为操作系统软件,也可以为普通软件。
当然,执行完第一预定指令并完成处理器状态寄存器的状态调整后,需进一步执行后续的指令,由于后续的指令可能会有需要进行适配的指令,为此调整适配指令获取及指令执行单元110,先获取所述软件的中间指令流的中间指令。
其中,中间指令流即为第一预定指令和第二预定指令之间的各条指令,中间指令即为中间指令流中的一条指令,而第二预定指令可以理解为最后一条需要进行适配的预定不适配指令之后的任何一条指令,第二预定指令可以根据需要和具体的软件特点确定,可选地,也可以选择最后一条需要进行适配的预定不适配指令之后的指令流中比较有特点的指令,比如:在所述软件的执行过程中出现较少的指令。
当然,第二预定指令也需要在进行适配前完成确定,可以利用处理器1进行软件的调试进行确定,要保证软件中与处理器1不适配的指令在第二预定指令全部位于第二预定指令之前。
结合第一预定指令可知,通过利用处理器1进行软件的调试,确保所最终确定的第一预定指令和第二预定指令满足所述第一预定指令和所述第二预定指令之间包含所述软件的全部的所述预定不适配指令。
在一种具体实施方式中,为了明确当前的处理器1状态,在获取所述软件的中间指令流的中间指令的同时,还可以调整所述软件执行时的处理器寄存器的状态为微码补丁适配中状态。
得到中间指令后,调整适配指令获取及指令执行单元110需要判断当前的中间指令是否为第二预定指令,如果是,则表明处理器1已经完成所有的需要进行适配的预定不适配指令的调整和执行,需要调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态;否则,则表明处理器1仍然处于需要确定当前的中间指令是否是需要调试的预定不适配指令。
当确定中间指令不是第二预定指令后,进一步判断是否为预定不适配指令,当然预定不适配指令也是预先通过所述软件与所述处理器1的调试获取。
由于预定不适配指令的适配调整是通过微码补丁指令实现的,而微码补丁指令只能够对微码指令进行修改,因此预定不适配指令首先需要是微码指令,即在利用处理器进行软件的调试时,所确定的预定不适配指令是微码指令。
对应地,在调整适配指令获取及指令执行单元110进行中间指令是否为预定不适配指令的判断时,如果当前的中间指令是通过处理器1的微码存储单元11进行进一步的执行,则表示已经经过了第一层的判断,即当前的中间指令为微码指令,然后,再进一步利用预先在微码补丁指令存储单元4中存储的预定不适配指令,确定当前的中间指令是否是预定不适配指令,如果是,那么对其进行调整;如果不是,那么,直接执行当前的中间指令。
可以理解的是,微码补丁指令存储单元4中存储的预定不适配指令的数量不确定,基于软件实际的情况而定,而当微码补丁指令存储单元4中存储的预定不适配指令的数量为多个时,确定中间指令是否为预定不适配指令是指确定中间指令是否为各个预定不适配指令中的一个。
然后调整适配指令获取及指令执行单元110利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令,并执行所述调整适配指令。
具体地,可以基于预定不适配指令获取微码补丁指令存储单元4中存储的与其对应的预定微码补丁,然后利用预定微码补丁指令调整预定不适配指令,得到调整指令,进而执行调整适配指令。
容易理解的是,预定微码补丁指令也是需要预先获取,并存储至微码补丁指令存储单元4中的。具体地,可以在经过调试获取到预定不适配指令时,根据具体情况,确定微码补丁指令,进而作为与其对应的预定微码补丁指令进行存储。
在一种具体实施方式中,可以通过所述处理器1的译码单元12利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令。处理器1的译码单元12可以很方便地实现利用预定微码补丁指令对预定不适配指令的调整,降低了实现难度。
在另一种具体实施方式中,由于第二预定指令可以为最后一条需要进行适配的预定不适配指令之后的任何一条指令,因此,第二预定指令之后可能还存在其他的所述软件的指令未被执行,为保证指令执行完毕,还需要执行第二预定指令之后的执行,本发明实施例所提供的处理器与软件的适配装置还包括:在后指令流执行单元120,适于执行所述软件的在后指令流,所述在后指令流为所述软件的所述第二预定指令之后的各指令。
这样,本发明实施例所提供的处理器与软件的适配装置,利用预定微码补丁指令实现了对预定不适配指令的调整,在软件执行的过程中,不执行预定不适配指令,而执行基于其获取的调整适配指令,可以实现软件与处理器的适配,并且可以提高适配后的功能实现的可能性,进而保证软件和处理器功能的实现;同时,利用执行第一预定指令和第二预定指令时对处理器寄存器的状态的标识,可以实现软件执行过程中的适配的开始和结束,避免无需进行适配的指令进行适配操作,降低运算量,提高运算效率。
可选地,本发明实施例还提供一种处理器,所述处理器配置为执行前述的处理器与软件的适配方法。
请参考图2,本发明实施例还提供一种芯片,包括微码补丁指令存储单元4和如前述的处理器1,所述微码补丁指令存储单元4存储有与不适配软件的不适配指令对应的微码补丁指令。
当然,本发明实施例还提供一种设备,其特征在于,包括如前述的芯片。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (15)
1.一种处理器与软件的适配方法,所述处理器适于执行所述软件的指令,其特征在于,包括:
执行所述软件的在先指令流至第一预定指令,执行所述第一预定指令并调整所述软件执行时的处理器寄存器的状态为微码补丁开始适配状态,其中,所述在先指令流为所述软件的第一预定指令之前的各指令;
获取所述软件的中间指令流的中间指令,当获取的所述中间指令为预定不适配指令时,利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令,并执行所述调整适配指令,直至执行所述软件的第二预定指令,调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态,其中,所述中间指令流为所述软件的所述第一预定指令和所述第二预定指令之间的各指令。
2.如权利要求1所述的处理器与软件的适配方法,其特征在于,所述执行所述软件的第二预定指令的步骤之后还包括:
执行所述软件的在后指令流,所述在后指令流为所述软件的所述第二预定指令之后的各指令。
3.如权利要求2所述的处理器与软件的适配方法,其特征在于,所述预定不适配指令通过所述软件与所述处理器的调试获取。
4.如权利要求2所述的处理器与软件的适配方法,其特征在于,所述第一预定指令和所述第二预定指令之间包含所述软件的全部的所述预定不适配指令。
5.如权利要求2所述的处理器与软件的适配方法,其特征在于,所述利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令的步骤包括:
通过所述处理器的译码单元利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令。
6.如权利要求1-5任一项所述的处理器与软件的适配方法,其特征在于,所述获取所述软件的中间指令流的中间指令的步骤包括:
获取所述软件的中间指令流的中间指令,并调整所述软件执行时的处理器寄存器的状态为微码补丁适配中状态。
7.一种处理器与软件的适配装置,所述处理器适于执行所述软件的指令,其特征在于,包括:
在先指令流及第一预定指令执行单元,适于执行所述软件的在先指令流至第一预定指令,执行所述第一预定指令并调整所述软件的状态寄存器的状态为开始适配状态,其中,所述在先指令流为所述软件的第一预定指令之前的各指令;
调整适配指令获取及指令执行单元,适于获取所述软件的中间指令流的中间指令,当获取的所述中间指令为预定不适配指令时,利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令,并执行所述调整适配指令,直至执行所述软件的第二预定指令,调整所述软件执行时的处理器寄存器的状态为微码补丁停止适配状态,其中,所述中间指令流为所述软件的所述第一预定指令和所述第二预定指令之间的各指令。
8.如权利要求7所述的处理器与软件的适配装置,其特征在于,还包括:
在后指令流执行单元,适于执行所述软件的在后指令流,所述在后指令流为所述软件的所述第二预定指令之后的各指令。
9.如权利要求8所述的处理器与软件的适配装置,其特征在于,所述预定不适配指令通过所述软件与所述处理器的调试获取。
10.如权利要求8所述的处理器与软件的适配装置,其特征在于,所述第一预定指令和所述第二预定指令之间包含所述软件的全部的所述预定不适配指令。
11.如权利要求8所述的处理器与软件的适配装置,其特征在于,所述调整适配指令获取及指令执行单元,适于利用与所述预定不适配指令所对应的预定微码补丁指令,调整所述预定不适配指令,得到调整适配指令包括:
通过所述处理器的译码单元利用与所述预定不适配指令所对应的微码补丁指令,调整所述预定不适配指令,得到调整适配指令。
12.如权利要求7-11任一项所述的处理器与软件的适配装置,其特征在于,调整适配指令获取及指令执行单元,适于执行所述软件的中间指令流,包括:
执行所述软件的中间指令流,并调整所述软件执行时的处理器寄存器的状态为微码补丁适配中状态。
13.一种处理器,其特征在于,所述处理器配置为执行如权利要求1-6任一项所述的处理器与软件的适配方法。
14.一种芯片,其特征在于,包括微码补丁指令存储单元和如权利要求13所述的处理器,所述微码补丁指令存储单元存储有与不适配软件的不适配指令对应的微码补丁指令。
15.一种计算机设备,其特征在于,包括如权利要求14所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911338866.2A CN111142940B (zh) | 2019-12-23 | 2019-12-23 | 处理器与软件的适配方法、装置、处理器、芯片和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911338866.2A CN111142940B (zh) | 2019-12-23 | 2019-12-23 | 处理器与软件的适配方法、装置、处理器、芯片和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111142940A CN111142940A (zh) | 2020-05-12 |
CN111142940B true CN111142940B (zh) | 2023-06-30 |
Family
ID=70519373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911338866.2A Active CN111142940B (zh) | 2019-12-23 | 2019-12-23 | 处理器与软件的适配方法、装置、处理器、芯片和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111142940B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1513137A (zh) * | 2001-05-31 | 2004-07-14 | Arm | 使用多重指令集的数据处理 |
CN106687938A (zh) * | 2014-10-28 | 2017-05-17 | 英特尔公司 | 跨电源周期维护安全处理环境 |
CN107729252A (zh) * | 2013-07-09 | 2018-02-23 | 甲骨文国际公司 | 用于降低升级软件时的不稳定性的方法和系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100511175C (zh) * | 2005-11-03 | 2009-07-08 | 华为技术有限公司 | 一种使用软件补丁修改微码程序的方法 |
US20100180104A1 (en) * | 2009-01-15 | 2010-07-15 | Via Technologies, Inc. | Apparatus and method for patching microcode in a microprocessor using private ram of the microprocessor |
CN101551747B (zh) * | 2009-04-09 | 2012-06-20 | 怯肇乾 | Arm系列微处理器的软件体系架构工具 |
US8489904B2 (en) * | 2010-03-25 | 2013-07-16 | International Business Machines Corporation | Allocating computing system power levels responsive to service level agreements |
US8516506B2 (en) * | 2011-03-29 | 2013-08-20 | Denso International America, Inc. | Method and system for restoring an application in a dynamically linked environment |
EP2624126B1 (en) * | 2011-04-07 | 2016-11-02 | VIA Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US9652234B2 (en) * | 2011-09-30 | 2017-05-16 | Intel Corporation | Instruction and logic to control transfer in a partial binary translation system |
CN109375955A (zh) * | 2018-11-01 | 2019-02-22 | 无锡市同芯恒通科技有限公司 | 一种同种cpu适配不同操作系统的方法 |
CN109743041B (zh) * | 2018-12-30 | 2021-08-06 | 成都海光微电子技术有限公司 | 锁存输入数据的电路、芯片、电子产品及方法 |
-
2019
- 2019-12-23 CN CN201911338866.2A patent/CN111142940B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1513137A (zh) * | 2001-05-31 | 2004-07-14 | Arm | 使用多重指令集的数据处理 |
CN107729252A (zh) * | 2013-07-09 | 2018-02-23 | 甲骨文国际公司 | 用于降低升级软件时的不稳定性的方法和系统 |
CN106687938A (zh) * | 2014-10-28 | 2017-05-17 | 英特尔公司 | 跨电源周期维护安全处理环境 |
Also Published As
Publication number | Publication date |
---|---|
CN111142940A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8375013B2 (en) | Server-controlled testing of handheld devices | |
US7949972B2 (en) | Method, system and computer program product for exploiting orthogonal control vectors in timing driven synthesis | |
US10133651B2 (en) | Software defect analysis tool | |
US10140201B2 (en) | Software defect detection tool | |
CN108182077B (zh) | 设备、设备的固件升级方法、装置和存储介质 | |
CN111142940B (zh) | 处理器与软件的适配方法、装置、处理器、芯片和设备 | |
CN116107639A (zh) | 寄存器重命名、指令译码方法、装置、处理器及电子设备 | |
US8108840B2 (en) | Method for enhancing debugger performance of hardware assisted breakpoints | |
CN114327574A (zh) | 一种差分升级方法、电子设备及存储介质 | |
CN108874405B (zh) | 一种OpenStack环境升级方法 | |
CN110928753A (zh) | 浏览器控制台日志输出的控制方法、装置、计算机设备及计算机可读存储介质 | |
CN108509773B (zh) | 一种源代码加固方法及装置 | |
CN113468564B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN111966602B (zh) | 一种定点代码调试方法、系统、终端及存储介质 | |
EP2820547B1 (en) | Debugging method and computer program product | |
CN110928580B (zh) | 异步流程控制方法和装置 | |
CN114296982A (zh) | 智能穿戴设备的异常处理方法、装置及设备和存储介质 | |
CN107145334B (zh) | 常量获取方法、装置、处理器及计算机可读存储介质 | |
US7080231B2 (en) | Processor with tagging buffer and methods for avoiding memory collisions | |
CN117289965B (zh) | 一种拓展指令更新方法、装置、电子设备和存储介质 | |
CN108446147B (zh) | 移动终端的多线程计算方法及系统 | |
EP4040294A1 (en) | Process scheduling method and apparatus of vision software | |
WO2011001305A1 (en) | A method, apparatus and computer program for loading files during a boot- up process | |
CN117251191A (zh) | 一种光模块固件的架构定义以及在线升级方法 | |
KR20090073051A (ko) | 에스펙 컴포넌트를 이용한 내장형 소프트웨어의 온더플라이테스팅 방법 및 시스템 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |