[发明专利]一种RISC处理器及其数据访存方法有效
申请号: | 200710308556.7 | 申请日: | 2007-12-29 |
公开(公告)号: | CN101216757A | 公开(公告)日: | 2008-07-09 |
发明(设计)人: | 李晓钰;段玮 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/318 |
代理公司: | 北京律诚同业知识产权代理有限公司 | 代理人: | 梁挥;陈振 |
地址: | 100080北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 risc 处理器 及其 数据 方法 | ||
技术领域
本发明涉及计算机领域,特别是涉及处理器体系结构及MIPS指令领域,更具体而言,是涉及一种MIPS指令集RISC处理器及其数据访存方法。
背景技术
复杂指令集计算机(Complex Instruction Set Computing,CISC)和精简指令计算机(Reduced Instruction Set Computing,RISC)是当前处理器(CPU)的两种架构。不同架构的处理器只能执行自己的指令集,如Intel的机器只能执行80X86的指令集(一种CISC指令集),不能执行RISC的指令集;而RISC架构的计算不能执行80X86的指令集。而由于这种硬件体系结构的不同,操作系统和各种应用软件通常只能在特定架构的计算机上执行,如RISC处理器不能充分利用X86处理器系列机器已有的广泛的应用软件。
为了克服上述缺陷,更充分地使用有限的计算机软硬件资源,出现了虚拟机技术。
虚拟机是处于计算机软件和硬件中的一个虚拟的中间层,用来给上层的应用软件程序或者操作系统提供一个所需要的虚拟软件/硬件平台。上层的应用软件程序或者操作系统是通过这处虚拟的中间层,如虚拟机监视器(VirtualMachine Monitor,VMM)来与硬件进行通信,由VMM来决定其对系统上所有虚拟硬件设备的访问。
在虚拟机的设计中,X86处理器的通用寄存器被映射到固定的MIPS处理器的寄存器,但是在虚拟机的MIPS代码和翻译后的MIPS代码两种上下文切换时,需要保存或者恢复这些固定的MIPS寄存器的值,以保证这些寄存器在两种上下文中都可以自由的使用,而不互相干扰。这种方法的代价是每次切换都需要至少20条左右的访存指令,既要保存旧上下文的值,又要取出新上下文的值,如果源平台为X86-64,则需要接近40条访存指令的开销。
当然可以限制虚拟机系统上下文不使用被映射的MIPS处理器的寄存器,那样在上下文切换时就不需要保存恢复这些寄存器,但是现有技术中编译器无法完成这个限制,同时即使这样做,虚拟机系统上下文的寄存器压力增大,只能使用不到20个寄存器,性能将大大下降。
发明内容
本发明所要解决的问题是提供一种RISC处理器及其数据访存方法,其加快虚拟机上下文切换,提高计算机性能。
为实现本发明目的而提供的一种RISC处理器,包括指令模块,物理寄存器堆,译码器,执行单元和存储器;
所述指令模块包括访存扩展指令模块,所述扩展指令模块包括对多倍数据宽度进行访存指令;
所述译码器包括判断模块,多倍存储译码模块和多倍读取译码模块,其中:
所述判断模块,用于判断输入到译码器的指令类型;
所述多倍存储译码模块,用于在输入的指令是访存扩展指令中的存储操作指令时,将源寄存器由一个扩展成多个相邻的寄存器,然后输出到执行单元执行;
所述多倍读取译码模块,用于在输入的指令是访存扩展指令中的读取操作指令时,将该读取操作指令译码为多条内部操作指令,将目标寄存器由一个扩展成多个相邻的寄存器,然后分配到所述多条内部操作中,输出到执行单元执行。
所述执行单元包括合并单元,用于在多倍读取译码模块对读取内存操作指令译码后,在执行单元执行前,把多个内部操作进行合并。
所述多倍数据宽度访存指令包括对多倍数据宽度的读取内存、写入内存、以及对浮点寄存器的多倍数据宽度的读取内存、写入内存共四类多倍数据宽度访存扩展指令。
所述合并的方法是如果发现相邻的将要进入执行单元的发射队列的多个操作是多倍数据宽度取数指令译码而成,则后继操作不进入所述发射队列,而将其目的物理寄存器号存为第一个操作的高位目的物理寄存器号。
为实现本发明目的还提供一种RISC处理器的数据访存方法,包括下列步骤:
步骤A,处理器首先取出一条指令输入到译码器;
步骤B,译码器判断指令类型,识别并译码多倍数据宽度指令;
步骤C,将译码后的多倍数据宽度指令发送到执行单元执行操作。
所述步骤B包括下列步骤:
如果输入的指令是现有指令集中的指令,译码器就将其译为内部操作;
如果输入的指令是多倍访存扩展存储指令,译码器将源寄存器由一个扩展成多个相邻的寄存器;
如果输入指令是多倍访存扩展的读取指令,译码器将目标寄存器由一个扩展成多个相邻的寄存器,并将读取操作分配到多个内部操作里,多个相邻的寄存器分别为这多个内部操作的目标寄存器。
所述步骤C包括下列步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710308556.7/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置