[发明专利]一种RISC处理器装置及其模拟浮点栈操作的方法有效
申请号: | 200710304656.2 | 申请日: | 2007-12-28 |
公开(公告)号: | CN101216756A | 公开(公告)日: | 2008-07-09 |
发明(设计)人: | 段玮;李晓钰 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/302 |
代理公司: | 北京律诚同业知识产权代理有限公司 | 代理人: | 梁挥;陈振 |
地址: | 100080北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 risc 处理器 装置 及其 模拟 浮点 操作 方法 | ||
技术领域
本发明涉及微处理器技术领域,特别是涉及一种精简指令集计算机(RISC)处理器装置及其模拟浮点栈操作,进行浮点数据的压栈和退栈等栈操作的方法。
背景技术
中央处理器(CPU)简称微处理器,是计算机的核心单元。微处理器采用的指令集、设计规范(体系结构)是计算机的首要特征,它决定了计算机需要采用的外围设备和应用软件的类型。
当今世界比较流行的两大处理器体系结构分别为:以MIPS公司的MIPS32/64指令集为代表的精简指令集计算机(Reduced Instruction SetComputing,RISC)处理器体系结构和以Intel公司的X86为代表的复杂指令集计算机(Complex Instruction Set Computing,CISC)处理器体系结构。CISC处理器指令数量繁多,一些指令可执行相当复杂的功能,一般需要许多时钟周期来执行;RISC处理器使用较少数量的可用指令,以更高的速率执行一组更简单的功能。而采用不同的体系结构的处理器上运行的程序软件需要针对处理器的体系结构专门编写,X86上的应用软件通常不能在MIPS指令集的RSIC处理器的计算机上运行,即常说的不兼容。
然而计算机制造商希望通过在自己制造的一种体系结构的微处理器上运行更多的现有软件来节省软件开发的开销,同时达到市场占有率最大化的目的。
为了解决这一问题,虚拟机应运而生。一般地,将具有一种类型体系结构的处理器(CPU)计算机称为主机;同时将需要主机仿真的,不相关体系结构类型的处理器(CPU)环境称为目标机,需要一种应用程序,这种程序能够促使主机执行一个或多个主机指令,响应于给定的目标机指令,运行为目标机编写的软件,这种程序就叫虚拟机。
目前现有的虚拟机有:SimOS,QEMU,Transmeta等,但是现有的虚拟机由于各种体系结构的巨大差异造成虚拟机运行开销过大,执行效率过低,很难应用到实际工作中。
由于X86处理器体系结构是目前个人计算机(PC)上较流行的一类结构,所以多数虚拟机都以X86处理器体系结构为目标机,都需要解决向X86处理器兼容的问题,而众所周知的棘手问题是对X86处理器所具有的独特的浮点栈机制的模拟。一般地,CISC类处理器,如X86,中都设置一个浮点寄存器栈,大部分浮点运算都是在寄存器栈参与下进行的。而除了X86处理器外,其他处理器,特别是MIPS指令集的RISC处理器没有类似的结构,由此带来的如何在虚拟机上进行浮点翻译是众多虚拟机研发部门迫切需要解决的热点问题。
X86处理器的浮点运算提供了压栈(浮点装入指令)、退栈(浮点保存指令)、浮点运算指令和一些其他的辅助指令,程序可以通过浮点装入指令将内存中的浮点数据压入浮点寄存器栈中,通过浮点运算指令对浮点数据进行运算,通过浮点保存指令进行退栈,并将栈顶寄存器的内容保存到内存单元中。
这种浮点运算方式是CISC处理器,如X86处理器所独有的,其他类型的处理器,如MIPS指令集的RISC处理器基本上都没有类似的运算方式。
一般而言,在非CISC处理器,如使用MIPS指令集的RISC处理器内部,设置若干个通用的浮点寄存器,这些浮点寄存器统一编号,指令通过这些编号来直接访问一个固定的浮点寄存器,而X86处理器中,指令所操作的寄存器随着栈顶指针的变化而变化。一般地,为了解决二进制数据翻译问题,非CISC处理器,如RISC处理器需要在内存中开辟一块空间,维护一个仿真的X86浮点寄存器栈。
申请号为200410074532.6的中国申请,公开了一种二进制翻译中对X86中浮点运算的处理方法,包括以下步骤:在运行时环境中设置一个浮点栈,用于仿真X86中的物理浮点栈;通过浮点寄存器映射的处理和归一方法依次对源二进制程序中的每个基本块进行处理。其通过用目标机器的寄存器来映射X86的源寄存器,保证了X86处理器的浮点运算在目标机器上也是由寄存器来实现,确保运算的效率;采用归一的方法,确保每个基本块的入口满足每次top的值相同的假设。
但是,这些现有技术虽然能够准确仿真各种X86浮点操作,但是效率非常低下,无法在性能上实现飞跃。
发明内容
本发明所要解决的问题是提供一种RISC处理器装置及其模拟浮点栈操作的方法,其在RISC处理器上能够支持浮点栈操作,从而方便不同架构的虚拟机进行二进制翻译工作,提高虚拟机效率,增强处理器兼容性。
为实现本发明而提供的一种RISC处理器装置,包括浮点寄存器堆,译码部件和浮点运算部件,还包括控制寄存器,用于控制利用所述浮点寄存器堆模拟浮点寄存器栈操作;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710304656.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种简化的译码电路结构
- 下一篇:微波炉烤盘及其制作方法