【技术实现步骤摘要】
本专利技术涉及微处理器体系架构跨平台兼容
,特别是涉及一种支持X86虚拟机的精简指令集计算机(RISC)处理器装置及方法。
技术介绍
中央处理器(CPU)简称微处理器,是计算机的核心单元。微处理器采用的指令集、设计规范(体系结构)是计算机的首要特征,它决定了计算机需要采用的外围设备和应用软件的类型。当今世界比较流行的两大处理器体系结构分别为:以MIPS公司的MIPS32/64指令集为代表的精简指令集计算机(Reduced Instruction SetComputing,RISC)处理器体系结构和以Intel公司的X86为代表的复杂指令集计算机(Complex Instruction Set Computing,CISC)处理器体系结构。CISC处理器指令数量繁多,一些指令可执行相当复杂的功能,一般需要许多时钟周期来执行;RISC处理器使用较少数量的可用指令,以更高的速率执行一组更简单的功能。而采用不同的体系结构的处理器上运行的程序软件需要针对处理器的体系结构专门编写,X86上的应用软件通常不能在MIPS指令集的RSIC处理器的计算机上运行,即常说的不兼容。然而计算机制造商希望通过在自己制造的一种体系结构的微处理器上运行更多的现有软件来节省软件开发的开销,同时达到市场占有率最大化的目的。为了解决这一问题,虚拟机应运而生。一般地,将具有一种类型体系结构的处理器(CPU)计算机称为主机;同时将需要主机仿真的,不相关体系结构类型的处理器(CPU)环境称为目标机,需要一种应用程序,这种程序能够促使主机执行一个或多个主机指令,响应于给定的目标机指令,运行为目 ...
【技术保护点】
一种支持X86虚拟机的RISC处理器,其特征在于,包括指令模块,译码器,查找表,定点运算部件和浮点运算部件,其中:所述指令模块包括扩展指令模块,用于存储支持X86虚拟机的虚拟机指令集;所述译码器,用于在虚拟机指令集指令译码过 程中,区分出指令的虚拟机指令集模式,将指令按照所区分的虚拟机指令集模式,进行译码后输出给定点运算部件或者浮点运算部件;所述查找表,用于对X86程序中的跳转地址到MIPS跳转地址的翻译进行快速查找,提高虚拟机性能;所述定点运算 部件用于根据译码器的输出,对虚拟机指令集的定点指令进行处理,输出执行的结果;所述浮点运算部件用于根据译码器的输出,对虚拟机指令集的浮点指令进行处理,输出执行结果。
【技术特征摘要】
1、一种支持X86虚拟机的RISC处理器,其特征在于,包括指令模块,译码器,查找表,定点运算部件和浮点运算部件,其中:所述指令模块包括扩展指令模块,用于存储支持X86虚拟机的虚拟机指令集;所述译码器,用于在虚拟机指令集指令译码过程中,区分出指令的虚拟机指令集模式,将指令按照所区分的虚拟机指令集模式,进行译码后输出给定点运算部件或者浮点运算部件;所述查找表,用于对X86程序中的跳转地址到MIPS跳转地址的翻译进行快速查找,提高虚拟机性能;所述定点运算部件用于根据译码器的输出,对虚拟机指令集的定点指令进行处理,输出执行的结果;所述浮点运算部件用于根据译码器的输出,对虚拟机指令集的浮点指令进行处理,输出执行结果。2、根据权利要求1所述的支持X86虚拟机的RISC处理器,其特征在于,还包括访存执行单元,内存及相应的数据通路;所述访存执行单元根据译码器的输出,通过数据通路完成内部寄存器与内存之间的数据传输。3、根据权利要求2所述的支持X86虚拟机的RISC处理器,其特征在于,还包括通用物理寄存器堆,所述通用物理寄存器堆包括溢出检查寄存器,上界、下界地址寄存器,模拟标志寄存器,虚拟机模式控制寄存器;所述溢出检查寄存器,用于在对所述栈寄存器进行浮点访问时栈溢出例外检查;所述上界、下界地址寄存器,用于模拟X86处理器的有界访存机制时存储作为上界、下界的有效地址;所述模拟标志寄存器,用于模拟实现CISC处理器的标志寄存器标志位;所述虚拟机模式控制寄存器,当该控制位标志为1时表示此时相应的指令运行在X86虚拟机指令集模式下;当该控制位标志为0时表示指令运行在非X86虚拟机指令集模式下。4、根据权利要求3所述的支持X86虚拟机的RISC处理器,其特征在于,还包括浮点寄存器堆;所述浮点寄存器堆包括浮点控制寄存器,浮点寄存器栈;以及第1~3浮点寄存器。5、根据权利要求1至4任一项所述的支持X86虚拟机的RISC处理器,其特征在于,所述虚拟机指令集包括多倍访存指令、前缀指令、EFLAG标志位指令、浮点栈相关指令、查找表指令中的一种或者一种以上的组合。6、根据权利要求5所述的支持X86虚拟机的RISC处理器,其特征在于,所述译码器包括指令处理模块,模式识别模块,其中:所述指令处理模块,用于对虚拟机指令集的指令进行指令译码,然后输出给定点运算部件或者浮点运算部件;所述模式识别模块,用于在指令译码过程中,区分出指令的虚拟机指令集模式,进行相应的处理。7、根据权利要求6所述的支持X86虚拟机的RISC处理器,其特征在于,所述模式识别模块包括多倍存储译码模块和/或多倍读取译码模块;所述多倍存储译码模块,用于在输入的指令是访存扩展指令中的存储操作指令时,将源寄存器由一个扩展成多个相邻的寄存器,然后输出到访存执行单元执行;所述多倍读取译码模块,用于在输入的指令是访存扩展指令中的读取操作指令时,将该读取操作指令译码为多条内部操作指令,将目标寄存器由一个扩展成多个相邻的寄存器,然后分配到所述多条内部操作中,输出到执行单元执行。8、根据权利要求7所述的支持X86虚拟机的RISC处理器,其特征在于,所述模式识别模块还包括前缀指令译码模块和标志位指令译码模块;所述标志位指令译码模块,用于对处于模拟EFLAGS工作模式下的EFLAG标志位指令进行处理,根据不同的EFLAG标志位指令,将模拟标志寄存器译码为其指令的源寄存器和/或目标寄存器;所述前缀指令译码模块,用于指示前缀指令后的多条指令处于X86虚拟机指令集模式下。9、根据权利要求8所述的支持X86虚拟机的RISC处理器,其特征在于,当前缀指令的范围参数为n时,译码器还包括前缀指令计数器,用于记录受前缀指令影响且不出现转移指令的指令序列的指令数n。10、根据权利要求6所述的支持X86虚拟机的RISC处理器,其特征在于,所述译码器还包括TOP指针寄存器,查找表模块,其中:所述TOP指针寄存器,用于维护一浮点栈操作指针,存储浮点栈栈操作指针的值;所述查找表模块,用于根据查找表指令,利用查找表实现从X86源指令地址到MIPS目标指令地址的转换。11、根据权利要求5所述的支持X86虚拟机的RISC处理器,其特征在于,所述定点运算部件包括标志读写模块,标志运算模块,例外处理模块,前缀例外控制寄存器;所述标志读写模块,用于读写模拟标志寄存器标志位的值;所述标志运算模块,用于在运算过程中,当RISC处理器处于X86虚拟机工作模式时,根据模拟标志寄存器标志位的值,进行控制;所述例外处理模块,用于在前缀指令只影响紧接其后的一条指令时,如果出现执行例外,则采用与延迟槽例外相同的方法,将Cause寄存器的bd位置1,同时将EPC指...
【专利技术属性】
技术研发人员:李国杰,胡伟武,李晓钰,苏孟豪,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。