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

技术编号:33994672 阅读:14 留言:0更新日期:2022-07-02 10:34
本发明专利技术涉及一种执行新增指令的系统及执行新增指令的方法,该方法包含:接收一指令;判断该接收指令是否为新增指令;以及当该接收指令为新增指令时,进入系统管理模式(System Management mode,SMM),并在该系统管理模式下通过执行至少一个旧指令来模拟该接收指令的执行。由此,在不对处理器的微体系结构进行修改的情况下,就可以在前代处理器上实现后代处理器所新增支持的指令,从而大大减少了用于设计、测试等工作的工作量,所以可以节省大量的成本。成本。成本。

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


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

技术介绍

[0002]随着处理器功能的增强,后代处理器往往会在前代处理器的基础上增加新的指令。在前代处理器上实现后代处理器所新增支持的新增指令时,往往需要对前代处理器的微体系结构进行修改。而对微体系结构进行修改,需要进行大量的设计、测试等工作,因而成本极高。
[0003]因此,如何在不修改前代处理器的微体系结构的前提下,在前代处理器的基础上实现后代处理器所新增支持的指令,已成为本领域需要解决的问题。

技术实现思路

[0004]为了解决上述问题,本专利技术提供一种执行新增指令的方法和执行新增指令的系统。
[0005]本专利技术提供一种执行新增指令的方法,包含:接收一指令;判断该接收指令是否为新增指令;以及当该接收指令为新增指令时,进入系统管理模式(System Management mode,SMM),并在该系统管理模式下通过执行至少一个旧指令来模拟该接收指令的执行。
[0006]本专利技术提供一种执行新增指令的系统,包含:一指令监视单元(monitor),判断一接收指令是否为新增指令;当该接收指令为增新指令时,该执行新增指令的系统进入系统管理模式,并在该系统管理模式下通过执行至少一个旧指令来模拟该接收指令的执行。
[0007]通过本专利技术提供的执行新增指令的方法与执行新增指令的系统,在不对处理器的微体系结构进行修改的情况下,就可以在前代处理器上实现后代处理器所新增支持的指令。从而大大减少了用于设计、测试等工作的工作量,所以可以节省大量的成本。
附图说明
[0008]图1是显示根据本专利技术一实施例所述的执行新增指令的系统的示意图。
[0009]图2A是显示根据本专利技术第一实施例所述的处理器的结构图。
[0010]图2B是显示根据本专利技术第二实施例所述的处理器的结构图。
[0011]图2B1是显示根据本专利技术第二实施例所述的指令监视单元的结构图。
[0012]图2C是显示根据本专利技术第三实施例所述的处理器的结构图。
[0013]图2D是显示根据本专利技术第四实施例所述的处理器的结构图。
[0014]图2D1是显示根据本专利技术第四实施例所述的指令监视单元的结构图。
[0015]图3是显示根据本专利技术一实施例所述的处理接收指令的流程图。
[0016]图4是显示根据本专利技术一实施例所述的进入系统管理模式的流程图。
[0017]图5是显示根据本专利技术一实施例所述的模拟器的处理流程图。
[0018]图6是显示根据本专利技术一实施例所述的在系统管理模式下模拟执行接收指令的例子。
[0019]图7是显示根据本专利技术一实施例所述的退出系统管理模式的流程图。
[0020]图8是显示根据本专利技术一实施例所述的执行新增指令的流程图。
[0021]图9是显示根据本专利技术另一实施例所述的执行新增指令的流程图。
[0022]图10是显示根据本专利技术另一实施例所述的执行新增指令的流程图。
[0023]其中,附图中符号的简单说明如下:
[0024]100:执行新增指令的系统;110:处理器;112:指令监视单元;114:系统管理模式出/入口;1142:系统管理模式入口;1144:系统管理模式出口;116:专用硬件;120:操作系统;130:应用程序;132:新增指令;142:模拟器;201:指令旁路转换缓冲;202、202B、202D:指令快取;203:分支预测器;204、204C、204D:重命名单元;205:保留站;206:执行单元;207:访存单元;210、210B、210C、210D:指令监视单元;2101B、2101D:指令解析单元;2102B、2102D:指令判断单元;211:专用寄存器组;220、220B、220D:私有寄存器;221、221C、221D:微码控制单元;230、230B、230D:指令译码单元;240、240C、240D:重排缓冲区;245、245C、245D:指令提交单元;260:架构寄存器;EF、EF1~EFN:模拟标识;S301~S315、S401~S411、S501~S519、S701~S729、S801~S809、S901~S913、S1001~S1009:步骤。
具体实施方式
[0025]以下说明为完成专利技术的较佳实现方式,其目的在于描述本专利技术的基本精神,但并不用以限定本专利技术。实际的
技术实现思路
必须参考之后的权利要求范围。
[0026]必须了解的是,使用于本说明书中的”包含”、”包括”等词,是用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。
[0027]于权利要求中使用如”第一”、"第二"、"第三"等词是用来修饰权利要求中的元件,并非用来表示元件之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
[0028]为了更好地描述本专利技术的实施例,下面先对本专利技术中用到的专用名词进行定义。
[0029]旧指令:被前代处理器原生支持的指令被称为原生指令(native instruction),也被称为已存在指令或旧指令。
[0030]未知指令:不被前代处理器原生支持的指令。
[0031]新增指令:与前代处理器相比,后代处理器所新增支持的指令。新增指令无法被前代处理器所辨识,因此对前代处理器而言属于未知指令。
[0032]新增架构寄存器:与前代处理器相比,后代处理器所新增支持的架构寄存器。新增架构寄存器在前代处理器中并不存在,因此在前代处理器上模拟执行使用新增架构寄存器的新增指令时,需要模拟新增架构寄存器。
[0033]无法辨识指令:未知指令中,除去新增指令之后剩余的那部分指令。即,无法辨识指令是指不被后代处理器原生支持的指令。
[0034]模型特别寄存器:处理器中的一类寄存器,可用于完成一些特定的功能。
[0035]陷阱:陷阱一般由软中断指令(比如INT指令)引起。当一条指令引起陷阱异常时,
并不表示这条指令本身的执行出现错误。因此,当一条指令出现陷阱异常后,处理器会继续执行这条指令的下一条指令。举例来说,软件开发人员对软件程序码进行调试时,可在程序码中设置断点。在处理器上执行设置了断点的程序码时,执行到断点时,将产生一个陷阱,从而使得程序码在断点处暂停执行。软件开发人员通过处理陷阱的微码处理程序,可以查看程序码执行到断点时处理器中各架构寄存器的值或程序码中各个变量的值。并根据各架构寄存器的值或程序码中各个变量的值,判断执行到断点时程序码是否执行正常。
[0036]图1是显示根据本专利技术一实施例所述的执行新增指令的系统100的示意图。如图1所示,执行新增指令的系统100包含处理器11本文档来自技高网
...

【技术保护点】

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

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

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

1