执行新增指令的方法及系统技术方案

技术编号:33994670 阅读:36 留言:0更新日期:2022-07-02 10:34
本发明专利技术提出一种执行新增指令的方法及系统,该方法用于一处理器中,包括:接收一指令。当上述接收指令为未知指令时,发出一未知指令异常。响应于上述未知指令异常,进入一系统管理模式。在上述系统管理模式下,通过一转换程序:判断上述接收指令是否为新增指令;当上述接收指令为新增指令时,通过执行至少一个旧指令来模拟上述接收指令的执行。由此,无需更改前代处理核心的硬件架构即可执行新增指令。前代处理核心的硬件架构即可执行新增指令。前代处理核心的硬件架构即可执行新增指令。

【技术实现步骤摘要】
执行新增指令的方法及系统


[0001]本专利技术有关于微电子领域的技术,且特别有关于一种执行新增指令的方法及系统。

技术介绍

[0002]处理器技术这些年来得到迅速发展。随着处理器功能的增强,后代处理器往往会在前代处理器的基础上增加新的指令。由于前代处理器无法执行后代处理器所支持的新增指令,当前代处理器执行到新增指令时,会产生未知指令异常(#UD),进而造成包含新增指令的进程被操作系统终止。从而导致包含新增指令的应用程序或操作系统无法在前代处理器上执行。
[0003]因此,需要一种执行新增指令的方法及系统,以达到在前代处理器上执行新增指令的目的。

技术实现思路

[0004]以下公开的内容仅为示例性的,且不意指以任何方式加以限制。除了所述说明方面、实施方式和特征之外,通过参照附图和下述具体实施方式,其他方面、实施方式和特征也将显而易见。即,以下公开的内容被提供以介绍概念、重点、益处以及本文所描述新颖且非显而易见的技术优势。所选择,非所有的,实施例将进一步详细描述如下。因此,以下公开的内容并不意旨在所要求保护主题的必要特征,也不意旨在决定所要求保护主题的范围中使用。
[0005]因此,本专利技术的主要目的在于提供一种执行新增指令的方法及系统,以达到无需更改前代处理核心的硬件架构即可执行新增指令的目的。
[0006]本专利技术提出一种执行新增指令的方法,包括:接收一指令;当上述接收指令为未知指令时,发出一未知指令异常;响应于上述未知指令异常,进入一系统管理模式(System Management mode,SMM);以及在上述系统管理模式下,通过一转换程序:判断上述接收指令是否为新增指令;以及当上述接收指令为新增指令时,通过执行至少一个旧指令来模拟上述接收指令的执行。
[0007]本专利技术提出一种执行新增指令的系统,包括:一指令译码单元(decoder),接收一指令,判断上述接收指令是否为未知指令;以及一指令提交单元,当上述接收指令为未知指令时,上述指令提交单元发出一未知指令异常;响应于上述未知指令异常,上述执行新增指令的系统进入一系统管理模式,在上述系统管理模式下,上述执行新增指令的系统通过一转换程序:判断上述接收指令是否为新增指令;以及当上述接收指令为新增指令时,通过执行至少一个旧指令来模拟上述接收指令的执行。
[0008]通过本专利技术提供的执行新增指令的方法与执行新增指令的系统,在不对处理核心的硬件架构进行修改的情况下,就可以在前代处理器上执行新增指令。
附图说明
[0009]图1是显示根据本专利技术第一实施例所述的执行新增指令的系统的示意图。
[0010]图2是依据本专利技术第一实施例所述的处理器的结构图。
[0011]图3是显示根据本专利技术第一实施例所述的执行新增指令的流程图。
[0012]图4是显示根据本专利技术第一实施例所述的处理接收指令的流程图。
[0013]图5是显示根据本专利技术第一实施例所述的进入系统管理模式的流程图。
[0014]图6是显示根据本专利技术第一实施例所述的模拟器的处理流程图。
[0015]图7是显示根据本专利技术第一实施例所述的转换程序的处理流程图。
[0016]图8是显示根据本专利技术第一实施例所述的在系统管理模式下处理未知指令的例子。
[0017]图9A~9B是显示根据本专利技术第一实施例所述的退出系统管理模式的流程图。
[0018]图10是显示根据本专利技术第二实施例所述的执行新增指令的系统的示意图。
[0019]图11是依据本专利技术第二实施例所述的处理器的结构图。
[0020]图12是显示根据本专利技术第二实施例所述的执行新增指令的流程图。
[0021]图13是显示根据本专利技术第二实施例所述的处理接收指令的流程图。
[0022]图14是显示根据本专利技术第二实施例所述的在处理未知指令异常的微码中处理接收指令的流程图。
[0023]图15A~15B是显示根据本专利技术第三实施例所述的执行新增指令的系统的示意图。
[0024]图16是依据本专利技术第三实施例所述的处理接收指令的流程图。
[0025]图17是显示根据本专利技术第四实施例所述的执行新增指令的系统的示意图。
[0026]图18是显示根据本专利技术一实施例所述的执行新增指令的流程图。
[0027]图19是显示根据本专利技术一实施例所述的执行新增指令的流程图。
[0028]图20是依据本专利技术一实施例所述的转换新增指令的流程图。
[0029]图21是显示用以实现本专利技术实施例的示例性操作环境。
[0030]其中,附图中符号的简单说明如下:
[0031]100:执行新增指令的系统;110:处理器;112:中断预处理单元;114:系统管理模式出/入口;1142:系统管理模式入口;1144:系统管理模式出口;120:操作系统;130:应用程序;118:指令;132:未知指令;142:模拟器;145:转换程序;200:处理器;201:指令旁路转换缓冲;202:指令快取;203:分支预测器;230:指令译码单元;204:重命名单元;205:保留站;206:执行单元;207:访存单元;220:微体系结构寄存器;240:重排缓冲区;245:指令提交单元;250:系统管理模式;260:架构寄存器;S305、S310、S315、S320、S325:步骤;S405、S410、S415、S420、S425、S430、S435:步骤;S505、S510、S515、S520、S525、S530:步骤;S605、S610、S615、S620、S625、S630、S635、S640、S645:步骤;S705、S710、S712、S715、S720、S725:步骤;S901、S904、S903、S905、S907、S909、S911、S913、S915、S917、S919、S921、S923、S925、S927、S929、S933:步骤;1000:执行新增指令的系统;1100:处理器;1110:转换程序;S1205、S1210、S1215、S1220、S1225:步骤;S1305、S1310、S1315、S1320、S1325:步骤;S1405、S1410、S1415、S1420、S1425:步骤;1500:执行新增指令的系统;150:内核驱动程序;1600:流程图;S1605、S1610、S1620、S1625:步骤;1700:执行新增指令的系统;190:专用处理核心;S1805、S1810、S1815、S1820、S1825:步骤;S1905、S1910、S1915、S1920、S1925:步骤;S2005、S2010、S2015:
步骤;2100:计算装置;2110:总线;2112:内存;2114:处理器;2116:显示元件;2118:I/O端口;2120:I/O元件;2122:电源供应器。
具体实施方式
[0032]在下文中将参考附图对本专利技术的各方面进行更充分的描述。然而,本专利技术可以具体化成许多不同形本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种执行新增指令的方法,用于处理器中,其特征在于,包括:接收指令;当上述接收指令为未知指令时,发出未知指令异常;响应于上述未知指令异常,进入系统管理模式;以及在上述系统管理模式下,通过转换程序:判断上述接收指令是否为新增指令;以及当上述接收指令为新增指令时,通过执行至少一个旧指令来模拟上述接收指令的执行。2.如权利要求1所述的执行新增指令的方法,其中,上述接收指令为指令集架构指令,上述至少一个旧指令为指令集架构指令。3.如权利要求1所述的执行新增指令的方法,还包括:将上述至少一个旧指令译码为至少一个微指令;以及执行上述至少一个微指令。4.如权利要求1所述的执行新增指令的方法,还包括:当上述接收指令为未知指令时,将模拟标识写入微体系结构寄存器中;以及发出上述系统管理中断。5.如权利要求4所述的执行新增指令的方法,其中,上述模拟标识为第一数值,用于表示上述接收指令为待模拟指令。6.如权利要求1所述的执行新增指令的方法,还包括:从微体系结构寄存器中获取模拟标识、上述接收指令的指令指针、上述接收指令的机器码以及上述接收指令的运行环境信息;将上述模拟标识、上述接收指令的指令指针、上述机器码以及上述运行环境信息存入系统管理内存;以及进入上述系统管理模式。7.如权利要求6所述的执行新增指令的方法,在上述系统管理模式下,还包括:从上述系统管理内存获取上述模拟标识;以及当上述模拟标识为第一数值时,根据上述机器码判断上述接收指令是否为新增指令,其中,上述第一数值表示上述接收指令为待模拟指令。8.如权利要求6所述的执行新增指令的方法,在上述系统管理模式下,当上述接收指令为新增指令时,还包括:如果上述接收指令不能在上述运行环境下执行,则产生译码异常;以及将上述译码异常存入上述系统管理内存,并在上述系统管理内存中设置异常标识。9.如权利要求6所述的执行新增指令的方法,还包括:当上述接收指令为未知指令时,将上述模拟标识、上述接收指令的指令指针、上述机器码以及上述运行环境信息写入上述微体系结构寄存器中。10.如权利要求1所述的执行新增指令的方法,在上述系统管理模式下,还包括:从系统管理内存中获取上述接收指令的机器码;对上述机器码进行译码,获得上述接收指令的操作码;以及根据上述操作码判断上述接收指令是否为新增指令。
11.如权利要求10所述的执行新增指令的方法,在上述系统管理模式下,当上述接收指令为新增指令时,还包括:根据上述操作码,产生上述至少一个旧指令;以及执行上述至少一个旧指令。12.如权利要求10所述的执行新增指令的方法,还包括:对上述机器码进行译码,获得上述接收指令的其它译码信息,其中,上述其它译码信息包含源操作数和目的操作数;以及根据上述其它译码信息,执行上述至少一个旧指令。13.如权利要求10所述的执行新增指令的方法,在上述系统管理模式下,当上述接收指令不为新增指令时,还包括:产生未知指令异常的异常编号;以及将上述异常编号存入上述系统管理内存,并在上述系统管理内存中设置异常标识。14.如权利要求1所述的执行新增指令的方法,在上述系统管理模式下,上述方法还包括:从系统管理内存读取上述接收指令的指令指针;根据上述指令指针,从系统内存读取上述接收指令的机器码;以及根据上述机器码判断上述接收指令是否为新增指令。15.如权利要求1所述的执行新增指令的方法,当上述接收指令为新增指令时,上述方法还包括:在上述系统管理模式下,将模拟执行结果存入系统管理内存,其中,上述模拟执行结果是通过执行上述至少一个旧指令获得的。16.如权利要求15所述的执行新增指令的方法,当上述接收指令为新增指令时,上述方法还包括:在退出上述系统管理模式时,将上述系统管理内存中存储的上述模拟执行结果写入架构寄存器。17.如权利要求1所述的执行新增指令的方法,当上述接收指令为新增指令时,上述方法还包括:计算上述接收指令的长度;以及如果在执行上述至少一个旧指令的过程中没有产生异常,则将保存在上述系统管理内存中的上述接收指令的指令指针的值更新为:EIP+Length,其中,EIP为上述接收指令的指令指针更新前的值,Length为上述长度。18.如权利要求1所述的执行新增指令的方法,当上述接收指令为新增指令时,上述方法还包括:计算上述接收指令的长度;以及如果在执行上述至少一个旧指令的过程中产生了异常,并且上述异常为陷阱时,则将保存在上述系统管理内存中的上述接收指令的指令指针的值更新为:EIP+Length,其中,EIP为上述接收指令的指令指针更新前的值,Length为上述接收指令的长度。19.如权利要求1所述的执行新增指令的方法,其中,上述转换程序被预先存储于基本输入输出系统中。
20.如权利要求19所述的执行新增指令的方法,还包括:执行上述基本输入输出系统;以及将上述转换程序载入系统管理内存。21.如权利要求1所述的执行新增指令的方法,还包括:在上述系统管理模式下:从系统管理内存中获取模拟标识;以及当上述模拟标识为第一数值时,执行上述转换程序,其中,上述第一数值表示上述接收指令为待模拟指令。22.如权利要求1所述的执行新增指令的方法,当上述接收指令为新增指令时,上述方法还包括:判断在执行上述至少一个旧指令的过程中是否产生了异常;以及若产生了上述异常,则将上述异常存入系统管理内存,并在上述系统管理内存中设置异常标识。23.如权利要求22所述的执行新增指令的方法,其中,上述异常包含译码异常及运行时异常。24.如权利要求22所述的执行新增指令的方法,当上述接收指令为新增指令时,上述方法还包括:根据上述系统管理内存中存储的上述异常标识,判断是否产生了上述异常;以及如果判断结果为产生了上述异常,则在退出上述系统管理模式后,执行上述系统管理内存中存储的上述异常的微码处理程序。25.如权利要求22所述的执行新增指令的方法,当上述接收指令为新增指令时,上述方法还包括:当上述异常为陷阱时,在退出上述系统管理模式时,使用上述系统管理内存中存储的信息,恢复架构寄存器中存储的值。26.如权利要求1所述的执行新增指令的方法,其中,当上述接收指令为新增指令,且上述接收指令的操作数为新增架构寄存器时,在上述系统管理模式下,上述新增架构寄存器是利用系统管理内存进行模拟的。27.如权利要求26所述的执行新增指令的方法,当上述新增架构寄存器为上述接收指令的目的操作数时,上述方法还包括:模拟上述接收指令的执行完成后,将上述接收指令的运算结果存入上述系统管理内存。28.如权利要求27所述的执行新增指令的方法,当上述新增架构寄存器为上述接收指令的目的操作数时,上述方法还包括:退出上述系统管理模式时,不把保存在上述系统管理内存中的上述运算结果存入架构寄存器。29.如权利要求27所述的执行新增指令的方法,还包括:当所接收的另一指令为新增指令,且上述新增架构寄存器为上述另一指令的源操作数时,直接使用上述系统管理内存中保存的上述运算结果,来模拟上述另一指令的执行。30.如权利要求1所述的执行新增指令的方法,当上述接收指令为新增指令,且上述接
收指令包含内存操作数时,上述方法还包括:将上述内存操作数的虚拟地址转换为物理地址;以及根据上述物理地址读取上述内存操作数的数值,其中,上述物理地址不在系统管理内存中。31.如权利要求30所述的执行新增指令的方法,当上述接收指令为新增指令,且上述接收指令包含内存操作数时,上述方法还包括:通过物理内存直接访问接口,通过访问页表,将上述内存操作数的虚拟地址转换为物理地址。32.如权利要求30所述的执行新增指令的方法,当上述接收指令为新增指令,且上述接收指令包含内存操作数时,上述方法还包括:通过模型特别寄存器,根据上述物理地址读取上述内存操作数的数值。33.如权利要求32所述的执行新增指令的方法,当上述接收指令为新增指令,且上述接收指令包含内存操作数时,上述方法还包括:将上述模型特别寄存器的地址写入第一寄存器;将上述物理地址写入第二寄存器;以及执行写模型特别寄存器指令,以将上述内存操作数的数值存储到上述模型特别寄存器中。34.如权利要求33所述的执行新增指令的方法,当上述接收指令为新增指令,且上述接收指令包含内存操作数时,上述方法还包括:执行读模型特别寄存器指令,以从上述模型特别寄存器中读取上述内存操作数的数值,并将读取到的上述内存操作数的数值存储到上述第二寄存器中。35.如权利要求33所述的执行新增指令的方法,当上述接收指令为新增指令,且上述接收指令包含内存操作数时,上述方法还包括:执行完上述写模型特别寄存器指令后,通过执行从物理地址加载微指令,将上述内存操作数的数值从系统内存加载到上述模型特别寄存器中。36.一种执行新增指令的系统,其特征在于,包括:指令译码单元,接收指令,判断上述接收指令是否为未知指令;以及指令提交单元,当上述接收指令为未知指令时,上述指令提交单元发出未知指令异常;响应于上述未知指令异常,上述执行新增指令的系统进入系统管理模式,在上述系统管理模式下,上述执行新增指令的系统通过转换程序:判断上述接收指令是否为新增指令;以及当上述接收指令为新增指令时,通过执行至少一个旧指令...

【专利技术属性】
技术研发人员:王惟林管应炳杨梦晨
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1