【技术实现步骤摘要】
执行新增指令的方法及系统
[0001]本专利技术有关于微电子领域的技术,且特别有关于一种执行新增指令的方法及系统。
技术介绍
[0002]处理器技术这些年来得到迅速发展。随着处理器功能的增强,后代处理器往往会在前代处理器的基础上增加新的指令。由于前代处理器无法执行后代处理器所支持的新增指令,当前代处理器执行到新增指令时,会产生未知指令异常(#UD),进而造成包含新增指令的进程被操作系统终止。从而导致包含新增指令的应用程序或操作系统无法在前代处理器上执行。
[0003]因此,需要一种执行新增指令的方法及系统,以达到在前代处理器上执行新增指令的目的。
技术实现思路
[0004]以下公开的内容仅为示例性的,且不意指以任何方式加以限制。除了所述说明方面、实施方式和特征之外,通过参照附图和下述具体实施方式,其他方面、实施方式和特征也将显而易见。即,以下公开的内容被提供以介绍概念、重点、益处以及本文所描述新颖且非显而易见的技术优势。所选择,非所有的,实施例将进一步详细描述如下。因此,以下公开的内容并不意旨在所要求保护主题的必要特征,也不意旨在决定所要求保护主题的范围中使用。
[0005]因此,本专利技术的主要目的在于提供一种执行新增指令的方法及系统,以达到无需更改前代处理核心的硬件架构即可执行新增指令的目的。
[0006]本专利技术提出一种执行新增指令的方法,包括:接收一指令;当上述接收指令为未知指令时,发出一未知指令异常;响应于上述未知指令异常,进入一系统管理模式(System Mana ...
【技术保护点】
【技术特征摘要】
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.一种执行新增指令的系统,其特征在于,包括:指令译码单元,接收指令,判断上述接收指令是否为未知指令;以及指令提交单元,当上述接收指令为未知指令时,上述指令提交单元发出未知指令异常;响应于上述未知指令异常,上述执行新增指令的系统进入系统管理模式,在上述系统管理模式下,上述执行新增指令的系统通过转换程序:判断上述接收指令是否为新增指令;以及当上述接收指令为新增指令时,通过执行至少一个旧指令...
【专利技术属性】
技术研发人员:王惟林,管应炳,杨梦晨,
申请(专利权)人:上海兆芯集成电路有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。