一种risc处理器装置及其多模式下数据处理方法

文档序号:6613957阅读:217来源:国知局
专利名称:一种risc处理器装置及其多模式下数据处理方法
技术领域
本发明涉及计算机微处理器技术领域,特别是涉及复杂指令集计算机 (RISC)处理器装置以及其在多种虚拟机运行模式下数据处理方法。
背景技术
复杂指令集计算机(Complex Instruction Set Computing, CISC)和精简指 令计算机(Reduced Instruction Set Computing, RISC)是当前CPU的两种架构。 不同架构的处理器只能执行自己的指令集,如Intel的机器只能执行80X86的 指令集(一种CISC指令集),不能执行RISC的指令集;而RISC架构的计 算不能执行80X86的指令集。而由于这种硬件体系结构的不同,操作系统和 各种应用软件通常只能在特定架构的计算机上执行,如RISC架构的微处理器 不能充分利用X86系列机器已有的广泛的应用软件。
为了克服上述缺陷,更充分地使用有限的计算机软硬件资源,出现了虚拟 机技术。
虚拟机是处于计算机软件和硬件中的一个虚拟的中间层,用来给上层的应 用软件程序或者操作系统提供一个所需要的虚拟软件/硬件平台。上层的应用 软件程序或者操作系统是通过这处虚拟的中间层,如虚拟机监视器(Virtual Machine Monitor, VMM)来与硬件进行通信,由VMM来决定其对系统上所 有虚拟硬件设备的访问。在具有多种模式的多个虚拟机在处理器中运行时,处 理器执行指令过程中,将不同模式下的虚拟机指令翻译成本处理器可以执行的 指令,并在指令执行完毕后将执行结果翻译成虚拟机指令执行结果,传输给虚 拟机。
但是,现有技术中,由于虚拟机在运行过程中,需要执行大量的代码,而 在不同的虚拟机上执行时,其语义是有区别的,即同一条指令在RISC处理器 和X86处理器上的语义是有区别的,如加法指令x86上除了计算结果外还要 根据结果计算EFLAG标志位等,这样在处理器翻译过程中,更需要大量的翻
译工作,从而从整体上降低的处理器的性能。因此,如何解决处理器在虚拟机 指令翻译中区分指令所处模式的问题,成为了业界迫切需要解决的问题。

发明内容
本发明所要解决的问题是提供一种RISC处理器装置及其多模式下数据处 理方法,其大大提高计算机性能。
为实现本发明目的而提供的一种RISC处理器装置,包括判断模块,指令 译码器和运算部件,其中
所述判断模块,用于区分指令的虚拟机指令集模式;
所述指令译码器,用于在指令译码过程中,根据判断模块区分出指令的虚 拟机指令集模式,将指令按照所区分的虚拟机指令集模式,进行译码后输出给 运算部件;
所述运算部件,用于根据指令译码器的输出,进行处理,输出执行的结果。 所述判断模块可以为一第一控制寄存器;
所述第一控制寄存器,包括控制位标志,当该控制位标志为1时表示此时
相应的指令运行在X86虚拟机指令集模式下;当该控制位标志为0时表示指
令运行在非X86虚拟机指令集模式下。
所述判断模块也可以为一包含在指令译码器中的前缀指令模块; 所述前缀指令模块,所述前缀指令模块包括一前缀指令,用于表示该指令
后的多条指令处于X86虚拟机指令集模式下。
所述前缀指令包括一范围参数,用于表示前缀指令的影响范围。 所述范围参数是l,表示该前缀指令只影响其后的一条指令;或者是不为
1的整数n,表示该前缀指令影响其后的n条指令。
当所述判断模块为一包含在指令译码器中的前缀指令模块时,所述指令译
码器还包括一计数器,用于记录受前缀指令影响且不出现转换指令的指令序列
的指令数n;
当受影响的当前指令进入运算部件,即下一条指令进入指令译码器时n减1。
所述判断模块也可以为一包含在指令译码器中的指令模式模块,用于在 RISC处理器的指令中标志该指令的虚拟机指令集模式。
所述RISC处理器的指令为在X86指令集中与EFLAG标志相关的指令对 应的虚拟机指令;或者在X86指令集中,对特殊结构进行操作的指令对应的 虚拟机指令。
所述运算部件还包括一例外处理模块,用于在前缀指令只影响紧接其后的 一条指令时,如果出现执行例外,则采用与延迟槽例外相同的方法,将Cause 寄存器的bd位置l,同时将EPC指向前缀指令,例外服务程序完成后重新执 行前缀指令。
所述运算部件还包括一第二控制寄存器,用于记录发生例外的指令是否受 所述前缀指令影响;在出现异常而中断进程的时候向第二控制寄存器中存入当 前指令的计数,在异常结束返回被中断进程时,根据所述计数恢复所述被中断 进程。
所述运算部件还包括一 EFLAG计算模块,用于对于处于虚拟机指令集模 式的指令,根据运算结果计算相应的EFLAG标志位。
为实现本发明目的还提供一种RISC处理器装置多模式下数据处理方法, 包括下列步骤
步骤A,读取指令,区分指令的虚拟机指令集模式;
步骤B,在指令译码过程中,根据区分出的指令的虚拟机指令集模式,将 指令按照所区分的虚拟机指令集模式,进行译码后输出;
步骤C,根据所述输出,进行处理,输出执行的结果。
所述步骤A包括下列步骤
步骤A1,指令译码器读取一条前缀指令,表示该指令后的多条指令处于 X86虚拟机指令集模式下。
所述前缀指令还包括一范围参数,表示前缀指令的影响范围。
所述范围参数是l,表示该前缀指令只影响其后的一条指令;或者是不为 1的整数n,表示该前缀指令影响其后的n条指令。
所述步骤B包括下列步骤
对该前缀指令译码时设置标志,这条指令后面的指令被译为X86虚拟机 指令集模式,然后该前缀指令译为空操作NOP。 所述步骤B还包括下列步骤
指令译码器中的计数器记录受前缀指令影响且不出现转换指令的指令序
列的指令数n;
当受影响的当前指令进入运算部件,即下一条指令进入指令译码器时n减1。
所述步骤C包括下列步骤
运算部件在前缀指令只影响紧接其后的一条指令时,如果出现执行例外,
则采用与延迟槽例外相同的方法,将Cause寄存器的bd位置1,同时将EPC 指向前缀指令,例外服务程序完成后重新执行前缀指令。
所述步骤C还包括下列步骤
运算部件中的第二控制寄存器,用于记录发生例外的指令是否受所述前缀 指令影响。在出现异常而中断进程的时候向第二控制寄存器中存入当前指令的
计数;在异常结束返回被中断进程时,根据所述计数恢复所述被中断进程。 所述步骤C还包括下列步骤
运算部件中的EFLAG计算模块对处于虚拟机指令集模式的指令,根据输 入指令进行运算,然后根据运算结果计算相应的EFLAG标志位。 所述步骤A也可以包括下列步骤 步骤A1',判断第一控制寄存器的控制位标志;
步骤A2',当该标志位为1时表示此时相应的指令运行在X86虚拟机指令 集模式下;
步骤A3',当该标志位为0时表示此时相应的指令运行在非X86虚拟机指 令集模式下。
所述步骤A更可以包括下列步骤
在RISC处理器的指令中标志该指令的虚拟机指令集模式。
所述RISC处理器的指令,为在X86指令集中与EFLAG标志相关的指令
对应的虚拟机指令;或者为在X86指令集中,对特殊结构进行操作的指令对
应的虚拟机指令。
本发明的有益效果是本发明的RISC处理器装置及其多模式下数据处理 方法,在RISC处理器中,当将不同模式下的虚拟机指令翻译成RISC处理器 可以执行的指令时,直接译码并执行,节约了大量的翻译时间,处理器的运算 速度得到指数级提高,从整体上提高处理器的性能。


图1为本发明RISC处理器装置结构示意图2为本发明实施例利用MIPS指令集实现前缀指令格式编码示意图; 图3为本发明实施例利用MIPS指令集实现本发明多模式下虚拟机加法指 令实现编码格式示意图4为本发明RISC处理器装置多模式下数据处理方法流程图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明的一种RISC处理器装置及其多模式下数据处理方法进行进一 步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不 用于限定本发明。
下面详细说明本发明的RISC处理器装置。
本发明实施例以MIPS64指令集的RISC处理器装置为例,而对本发明的 RISC处理器装置及其多模式下数据处理方法而进行说明,但是,应当指明的 是,其不是对本发明权利要求的限定。
在RISC处理器架构的计算机上支持CISC架构的虚拟机,如X86虚拟机, 需要区别指令是处于RISC处理器的指令集模式下,还是处于X86指令集模式 下,如以MIPS指令集的RISC处理器,在运行虚拟机的过程中,对于一条加 法指令而言,MIPS指令集中对加法的处理是进行两个数的相加操作,但是对 于X86指令集而言,加法指令不仅要计算两个操作数相加,还要进行其他的 操作,如依据加法的结果修改相应的EFLAG标志寄存器的标志位,两者执行 过程并不一样,因此,在RISC处理器中,需要区分RISC处理器不同虚拟机 指令集模式下的操作。
本发明的RISC处理器装置,如图1所示,包括判断模块,指令译码器2 和运算部件3,其中
所述判断模块,用于区分指令的虚拟机指令集模式。
所述指令译码器2,用于在指令译码过程中,根据判断模块区分出的指令 的虚拟机指令集模式,并将指令按照所区分的虚拟机指令集模式,进行译码后 输出给运算部件3。
所述运算部件3,用于根据指令译码器2的输出,进行处理,输出执行的 结果。
本发明的RISC处理器装置中,指令译码器2除了具有现有技术的数据通 路,包括了译码的输入输出,指令译码功能以外,还可以根据判断模块区分指 令的虚拟机指令集模式,然后该指令译码器2将指令按照所区分的虚拟机指令 集模式进行译码后输出给运算部件3,其增强了现有指令译码器2的功能,直 接译码,提高了处理器运算速度。
运算部件3接收到译码指令后,进行处理,输出执行的结果。 运算部件3除具有现有技术的数据通路,包括指令输入输出,指令执行外, 还可以由指令译码器2对指令区分其指令集模式后,由运算部件3根据不同的 指令模式执行相应的计算,输出执行的结果。
作为一种可实施的方式,本发明的RISC处理器装置的判断模块,为一第 一控制寄存器l,所述第一控制寄存器l,包括控制位标志X86MODEl,当该 位为1时表示此时相应的指令运行在X86虚拟机指令集模式下;当该标志为0 时表示此时相应的指令运行在非X86虚拟机指令集模式下。
在RISC处理器的MIPS64指令集中,有一些CoprocessorO (CP0)控制寄 存器是预留给用户自定义的,如22号寄存器在所有Sel位的情况下都是预留 给用户自定义的。
本发明实施例利用这些控制寄存器(CP0)中的一位来做X86模式控制标 志位X86MODEl,在需要区分指令所处模式的时候,可以通过读取这个控制 寄存器的相应位来进行判断。当该标志位为1时表示此时相应的指令运行在 X86虚拟机指令集模式下;当该标志位为0时表示此时相应的指令运行在非 X86虚拟机指令集模式下。
当RISC处理器取指令,由指令译码器2进行译码并执行时,指令译码器 2首先读取第一控制寄存器1的控制位标志X86MODEl,根据标志位的值为0 或1区分的虚拟机指令集模式,并按其虚拟机指令集模式译码,直到第一控制 寄存器1的控制位标志X86MODE1被改写。
如一条加法指令进入指令译码器2时,RISC处理器对相应的控制寄存器 进行判断,区分其为X86虚拟机指令集模式或者非X86虚拟机指令集模式。
所述运算部件3包括一 EFLAG计算模块33 ,用于根据输入指令进行运算, 然后根据运算结果计算相应的EFLAG标志位。 实施例二
作为一种可实施的方式,本发明的RISC处理器装置,所述判断模块为一 包含在指令译码器2中的前缀指令模块21,所述前缀指令模块21包括一前缀 指令X86MODE2,用于表示该指令后的多条指令处于X86虚拟机指令集模式 下。
本发明实施例的前缀指令模块21中的前缀指令,在RISC处理器的 MIPS64指令集中的格式如图2所示,其利用MIPS指令集中的SPECIAL2的 空槽的保留值实现。
指令译码器2的前缀指令模块21,在对该前缀指令译码时设置标志,这 条指令后面的指令被译为X86虚拟机指令集模式,然后该前缀指令译为空操 作NOP。
较佳地,所述前缀指令X86MODE2包括一范围参数,用于表示前缀指令 X86MODE2的影响范围,其可以是1,表示该前缀指令只影响其后的一条指 令;也可以是n,表示该前缀指令影响其后的n条指令。
较佳地,所述指令译码器2还包括一个计数器22,用于记录受前缀指令 影响且不出现转换指令的指令序列的指令数n;
当受影响的当前指令进入运算部件3,即下一条指令进入指令译码器2时 n减l。所述指令序列中不允许出现转移指令,即一旦出现转移指令则从转移 指令开始的指令序列不受前缀指令的影响。
较佳地,作为一种可实施方式,所述运算部件3包括一例外处理模块31, 用于在前缀指令只影响紧接其后的一条指令时,如果出现执行例外,则采用与 延迟槽例外相同的方法,将Cause寄存器的bd位置1,同时将EPC指向前缀 指令,例外服务程序完成后重新执行前缀指令。
较佳地,作为另一种可实施方式,所述运算部件3还包括一第二控制寄存 器32,用于记录发生例外的指令是否受所述前缀指令影响。在出现异常而中 断进程的时候向第二控制寄存器32中存入当前指令的计数;在异常结束返回 被中断进程时,根据所述计数,即根据之前第二控制寄存器32保存的计数恢 复被中断进程这个状态。 所述运算部件3还包括一 EFLAG计算模块33,用于对于处于虚拟机指令 集模式的指令,根据输入指令进行运算,然后根据运算结果计算相应的EFLAG 标志位。
:为另一种可实施的方式,所述判断模块为一指令模式模块23,用于在 RISC处理器的MIPS指令中标志该指令的虚拟机指令集模式。
对于使用频度特别高的X86虚拟机指令,则需要地在RISC处理器的MIPS 指令集中,通过指令模式模块23,设置一标志,标志该MIPS指令为在X86 虚拟机指令集模式下执行的指令。这样,对使用频度高的X86虚拟机指令, 标志该指令为X86虚拟机指令集模式,直接由RISC处理器的MIPS指令集执 行,以减少相应的开销。
受指令模式模块23影响的指令,只能影响该条指令的译码执行,对其它 指令则不影响,其它指令按其原有的虚拟指令集模式执行。
较佳地,所述RISC处理器的MIPS指令,包括在X86指令集中与EFLAG 标志相关的指令对应的虚拟机指令,以及在X86指令集中,对特殊结构,如 浮点栈进行操作的指令对应的虚拟机指令。
如指令模式模块23对RISC处理器的加法指令(Add),标志该指令的虚 拟机指令集模式为X86虚拟机指令集模式X86Add,其格式如图3所示,其可 以利用RISC处理器MIPS指令集中SPECIAL2的空槽的保留值实现。这条指 令并不是和原有的加法指令(Add)指令一样,而只是对原有的指令提供部分 的支持,其对寄存器中的值进行相加操作,并且也根据结果修改相应的 EFLAGS标志位,但是计算的结果并不存储到寄存器中,即寄存器的值并不会 发生改变。
本发明的RISC处理器装置,利用现有的MIPS指令集中的保留值,进行 编码,数据通路和各种队列如访存队列等也没有变化,通过增强指令译码器2 和运算部件3的处理能力,使其可以判断指令类型,以便执行不同虚拟机指令 集模式下的指令,提高虚拟机的指令执行速度。
相应地,本发明还包括一种RISC处理器装置多模式下数据处理方法,如
图4所示,其包括如下步骤
步骤S100,读取指令时,区分指令的虚拟机指令集模式。 作为一种可实施的方式,所述步骤S100包括下列步骤
步骤S110,指令译码器2读取一条前缀指令X86MODE2,表示该指令后 的多条指令处于X86虚拟机指令集模式下,区分出指令的虚拟机指令集模式;
前缀指令X86MODE2还包括一范围参数,表示前缀指令X86MODE2的 影响范围,其可以是l,表示该前缀指令只影响其后的一条指令;也可以是n (n^1),表示该前缀指令影响其后的n条指令。
对该前缀指令译码时设置标志,这条指令后面的指令被译为X86虚拟机 指令集模式,然后该前缀指令译为空操作NOP。
作为另一种可实施方式,所述步骤S100包括下列步骤
步骤S120,当指令进入指令译码器2时,第一控制寄存器1的控制位标 志X86M0DE1区分指令的虚拟机指令集模式。
所述步骤S120包括下列步骤
步骤S121 ,判断第一控制寄存的控制位标志X86MODE; 步骤S122,当该标志位为1时表示此时相应的指令运行在X86虚拟机指 令集模式下;
步骤S123,当该标志位为0时表示此时相应的指令运行在非X86虚拟机 指令集模式下。
作为另一种可实施方式,所述步骤S100包括下列步骤
步骤S130,指令译码器2读取指令,按该指令中的标志的虚拟机指令集 模式,区分指令的虚拟机指令集模式。
步骤S200,指令译码器2在指令译码过程中,根据区分出的指令的虚拟 机指令集模式,将指令按照所区分的虚拟机指令集模式,进行译码后输出给 RISC处理器的运算部件3;
当以前缀指令区分出指令的虚拟机指令集模式时,包括下列步骤
步骤S210,指令译码器2通过译码识别前缀指令,在指令译码器2置一 个标志位X86mode2=l ,
所述步骤S200还包括下列步骤
步骤S220,指令译码器2中的计数器22,记录受前缀指令影响且不出现
转换指令的指令序列的指令数n;
当受影响的当前指令进入运算部件3,即下一条指令进入指令译码器2时 n减1。
所述指令序列中不允许出现转移指令,即一旦出现转移指令则从转移指令 开始的指令序列不受前缀指令的影响。
当以第一控制寄存器1控制位标志X86MODE1区分出指令的虚拟机指令 集模式时,所述步骤S200指令译码器2进行译码,包括下列步骤
步骤S210',当RISC处理器取指令,由指令译码器2进行译码并执行时, 指令译码器2首先读取第一控制寄存器1的控制位标志X86MODEl,根据标 志位的值为0或1区分的虚拟机指令集模式,并按其虚拟机指令集模式译码, 直到第一控制寄存器1的控制位标志X86MODEl被改写。
步骤S300, RISC处理器的运算部件3根据指令译码器2的输出,进行处 理,输出执行的结果。
当以前缀指令区分出指令的虚拟机指令集模式时,包括下列步骤
步骤S310,由于译码器将前缀指令译码为内部的空操作NOP,所以运算 部件3执行NOP指令;
为了避免在多模式指令集指令执行过程中,出现中断例外,较佳地,所述 步骤S300包括下列步骤
步骤S320,运算部件3在前缀指令只影响紧接其后的一条指令时,如果 出现执行例外,则采用与延迟槽例外相同的方法,将Cause寄存器的bd(Branch delay)位置1 ,同时将EPC (The Exception Program Counter)指向前缀指令,例 外服务程序完成后重新执行前缀指令。
一般地,EPC寄存器存放的是当例外服务程序执行完成后处理器继续原有 操作的入口地址。
步骤S330,运算部件3在前缀指令影响n条指令时,用第二控制寄存器 32记录发生例外的指令是否受所述前缀指令影响。在出现异常而中断进程的 时候向第二控制寄存器32中存入当前指令的计数。在异常结束返回被中断进 程时,根据所述计数,即根据之前第二控制寄存器32保存的计数恢复被中断 进程这个状态。
步骤S340,运算部件3根据输入指令进行运算,然后根据运算结果计算
相应的EFLAG标志位输出。
下面以加法指令为例,以前缀指令的方式来具体本发明的RISC处理器装 置多模式下数据处理方法
首先, 一条前缀指令进入指令译码器2;
然后,指令译码器2通过译码识别前缀指令,在指令译码器2置一个标志 位X86mode2=l ,然后将前缀指令译码为内部的空操作NOP,执行后继的指令;
其后,当前缀指令的下一条指令即加法指令进入指令译码器2时,判断前 缀标志位是否存在,如果加法指令不在前缀指令的参数范围内,指令译码器2 正常译码出指令本身带有的源寄存器和目标寄存器以及内部操作的操作码 (op);如果这条加法指令处于前缀指令参数范围内,即处于X86模式下的 加法指令,则按照X86虚拟机指令集模式,根据计算结果修改EFLAGS标志 位,因此指令译码器2会将EFLAGS标志位译码为源寄存器中的一个,同时 将EFLAGS标志位译码为目标寄存器,然后同时将加法指令本身所带有的源 寄存器和目标寄存器以及内部操作的操作码(op)译码出来;
最后,运算部件3将译码器的输出作为输入,如果是正常的MIPS指令集 中的指令,进行加法计算;如果是受前缀指令影响的加法指令,运算部件3 会先进行加法计算,然后根据加法运算的结果运算出新的EFLAGS标志位的 值。
本发明的RISC处理器装置及其多模式下数据处理方法,在RISC处理器 装置中,当将不同模式下的虚拟机指令翻译成RISC处理器装置可以执行的指 令时,直接译码并执行,节约了大量的翻译时间,处理器装置的运算速度得到 指数级提高,从整体上提高处理器装置的性能。
通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本 领域的技术人员而言是显而易见的。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只 是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行 解释。
权利要求
1、一种RISC处理器装置,其特征在于,包括判断模块,指令译码器和运算部件,其中所述判断模块,用于区分指令的虚拟机指令集模式;所述指令译码器,用于在指令译码过程中,根据判断模块区分出指令的虚拟机指令集模式,将指令按照所区分的虚拟机指令集模式,进行译码后输出给运算部件;所述运算部件,用于根据指令译码器的输出,进行处理,输出执行的结果。
2、 根据权利要求1所述的RISC处理器装置,其特征在于,所述判断模 块为一第一控制寄存器;所述第一控制寄存器,包括控制位标志,当该控制位标志为1时表示此时 相应的指令运行在X86虚拟机指令集模式下;当该控制位标志为0时表示指 令运行在非X86虚拟机指令集模式下。
3、 根据权利要求1所述的RISC处理器装置,其特征在于,所述判断模 块为一包含在指令译码器中的前缀指令模块;所述前缀指令模块包括一前缀指令,用于表示该指令后的多条指令处于 X86虚拟机指令集模式下。
4、 根据权利要求3所述的RISC处理器装置,其特征在于,所述前缀指 令包括一范围参数,用于表示前缀指令的影响范围。
5、 根据权利要求4所述的RISC处理器装置,其特征在于,所述范围参 数是l,表示该前缀指令只影响其后的一条指令;或者是不为l的整数n,表 示该前缀指令影响其后的n条指令。
6、 根据权利要求3所述的RISC处理器装置,其特征在于,所述指令译 码器还包括一计数器,用于记录受前缀指令影响且不出现转换指令的指令序列 的指令数n;当受影响的当前指令进入运算部件,即下一条指令进入指令译码器时n减1。
7、 根据权利要求1所述的RISC处理器装置,其特征在于,所述判断模 块为一包含在指令译码器中的指令模式模块,用于在RISC处理器的指令中标志该指令的虚拟机指令集模式。
8、 根据权利要求7所述的RISC处理器装置,其特征在于,所述RISC处 理器的指令为在X86指令集中与EFLAG标志相关的指令对应的虚拟机指令; 或者在X86指令集中,对特殊结构进行操作的指令对应的虚拟机指令。
9、 根据权利要求5所述的RISC处理器装置,其特征在于,所述运算部 件还包括一例外处理模块,用于在前缀指令只影响紧接其后的一条指令时,如 果出现执行例外,则采用与延迟槽例外相同的方法,将Cause寄存器的bd位 置l,同时将EPC指向前缀指令,例外服务程序完成后重新执行前缀指令。
10、 根据权利要求5所述的RISC处理器装置,其特征在于,所述运算部 件还包括一第二控制寄存器,用于记录发生例外的指令是否受所述前缀指令影 响;在出现异常而中断进程的时候向第二控制寄存器中存入当前指令的计数, 在异常结束返回被中断进程时,根据所述计数恢复所述被中断进程。
11、 根据权利要求1所述的RISC处理器装置,其特征在于,所述运算部 件还包括一EFLAG计算模块,用于对于处于虚拟机指令集模式的指令,根据 运算结果计算相应的EFLAG标志位。
12、 一种RISC处理器装置多模式下数据处理方法,其特征在于,包括下 列步骤步骤A,读取指令,区分指令的虚拟机指令集模式;步骤B,在指令译码过程中,根据区分出的指令的虚拟机指令集模式,将 指令按照所区分的虚拟机指令集模式,进行译码后输出; 步骤C,根据所述输出,进行处理,输出执行的结果。
13、 根据权利要求12所述的RISC处理器装置多模式下数据处理方法, 其特征在于,所述步骤A包括下列步骤步骤A1,指令译码器读取一条前缀指令,表示该指令后的多条指令处于 X86虚拟机指令集模式下。
14、 根据权利要求13所述的RISC处理器装置多模式下数据处理方法, 其特征在于,所述前缀指令还包括一范围参数,表示前缀指令的影响范围。
15、 根据权利要求14所述的RISC处理器装置多模式下数据处理方法, 其特征在于,所述范围参数是l,表示该前缀指令只影响其后的一条指令;或 者是不为1的整数n,表示该前缀指令影响其后的n条指令。
16、 根据权利要求13至15中任一项所述的RISC处理器装置多模式下数据处理方法,其特征在于,所述步骤B包括下列步骤对该前缀指令译码时设置标志,这条指令后面的指令被译为X86虚拟机 指令集模式,然后该前缀指令译为空操作NOP。
17、 根据权利要求16所述的RISC处理器装置多模式下数据处理方法, 其特征在于,所述步骤B还包括下列步骤指令译码器中的计数器记录受前缀指令影响且不出现转换指令的指令序 列的指令数n;当受影响的当前指令进入运算部件,即下一条指令进入指令译码器时n减1。
18、 根据权利要求16所述的RISC处理器装置多模式下数据处理方法, 其特征在于,所述歩骤C还包括下列步骤运算部件在前缀指令只影响紧接其后的一条指令时,如果出现执行例外, 则采用与延迟槽例外相同的方法,将Cause寄存器的bd位置l,同时将EPC 指向前缀指令,例外服务程序完成后重新执行前缀指令。
19、 根据权利要求16所述的RISC处理器装置多模式下数据处理方法, 其特征在于,所述步骤C还包括下列步骤运算部件中的第二控制寄存器记录发生例外的指令是否受所述前缀指令 影响;在出现异常而中断进程的时候向第二控制寄存器中存入当前指令的计 数;在异常结束返回被中断进程时,根据所述计数恢复所述被中断进程。
20、 根据权利要求12所述的RISC处理器装置多模式下数据处理方法, 其特征在于,所述步骤C还包括下列步骤运算部件中的EFLAG计算模块对处于虚拟机指令集模式的指令,根据输 入指令进行运算,然后根据运算结果计算相应的EFLAG标志位。
21、 根据权利要求12所述的RISC处理器装置多模式下数据处理方法, 所述步骤A包括下列步骤步骤A1',判断第一控制寄存器的控制位标志;步骤A2',当该标志位为1时表示此时相应的指令运行在X86虚拟机指令 集模式下;步骤A3',当该标志位为0时表示此时相应的指令运行在非X86虚拟机指令集模式下。
22、 根据权利要求12所述的RISC处理器装置多模式下数据处理方法, 其特征在于,所述步骤A包括下列步骤在RISC处理器的指令中标志该指令的虚拟机指令集模式。
23、 根据权利要求22所述的RISC处理器装置多模式下数据处理方法, 其特征在于,所述RISC处理器的指令,为在X86指令集中与EFLAG标志相 关的指令对应的虚拟机指令;或者为在X86指令集中,对特殊结构进行操作 的指令对应的虚拟机指令。
全文摘要
本发明公开了一种PISC处理器装置及其多模式下数据处理方法。该处理器装置包括判断模块,指令译码器和运算部件,其中所述判断模块,用于区分指令的虚拟机指令集模式;所述指令译码器,用于在指令译码过程中,根据判断模块区分出的指令的虚拟机指令集模式,并将指令按照所区分的虚拟机指令集模式,进行译码后输出给运算部件;所述运算部件,用于根据指令译码器的输出,进行处理,输出执行的结果。其大大提高计算机性能。
文档编号G06F9/30GK101187858SQ20071017883
公开日2008年5月28日 申请日期2007年12月5日 优先权日2007年12月5日
发明者李晓钰, 苏孟豪 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1