[发明专利]RISC处理器及其浮点寄存器的非对齐访存方法有效
申请号: | 200810055928.4 | 申请日: | 2008-01-02 |
公开(公告)号: | CN101216755A | 公开(公告)日: | 2008-07-09 |
发明(设计)人: | 蔡嵩松;苏孟豪 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/318 | 分类号: | G06F9/318;G06F9/38 |
代理公司: | 北京律诚同业知识产权代理有限公司 | 代理人: | 梁挥;陈振 |
地址: | 100080北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | risc 处理器 及其 浮点 寄存器 对齐 方法 | ||
技术领域
本发明涉及计算机处理器技术领域,特别是涉及一种精简指令集计算机(RISC)处理器,以及其浮点寄存器的非对齐访存方法。
背景技术
复杂指令集计算机(Complex Instruction Set Computing,CISC)和精简指令计算机(Reduced Instruction Set Computing,RISC)是当前CPU的两种架构。不同架构的处理器只能执行自己的指令集,如Intel的机器只能执行80X86的指令集(一种CISC指令集),不能执行RISC的指令集;而RISC处理器的计算不能执行80X86的指令集。而由于这种硬件体系结构的不同,操作系统和各种应用软件通常只能在特定架构的计算机上执行,如RISC处理器不能充分利用X86系列机器已有的广泛的应用软件。
在RISC处理器,如MIPS指令集的RISC处理器中使用访存指令存储和读取数据单元时,目标地址必须是所访问的数据单元字节数的整数倍,称之为地址对齐。例如在MIPS指令集的RISC处理器上,读取一半字时,访存地址必须是2个字节的整数倍;读取一个字时,访存指令中地址必须是4个字节的整数倍;写入一个双字时,访存地址必须是8个字节的整数倍。
如果在进行内存访问的时候,目标地址没有对齐,则会引起异常。
而CISC处理器,如Intel 80X86处理器是可以处理这种访存地址非对齐的读取和写入的。
因此,当移植CISC处理器处理的软件到RISC处理器处理,或者移植CISC处理器处理的软件到RISC处理器支持CISC虚拟机,如X86虚拟机时,会碰到兼容性处理问题。
现有技术中,可以用生成一个例外处理器程序来模拟期望的读写操作的方式来处理,并且对上层处理隐藏这种特性。但是,除非非对齐的访存很少,否则这种处理方法对计算机性能将是非常严重的打击。
MIPS指令集的RISC处理器对非对齐访存的解决方法是,提供特殊的访存地址非对齐的访存指令,其中,MIPS指令集中与地址非对齐访存有关的指令包括对32位数据的操作和对64位数据的操作,就读取32位数据来说,其提供两条指令来实现,这两条指令被称为“从左读取字”指令和“从右读取字”指令:lwl,lwr,swl,swr,ldl,ldr,sdl,sdr。
但是,MIPS指令集中只包括了到通用寄存器的非对齐读写,而对浮点寄存器并没有支持,如果需要读取到浮点寄存器中使用,则要读取到通用定点寄存器中,然后再从通用定点寄存器中拷贝过来。这样,处理器的性能有很大的下降。
发明内容
本发明的目的在于提供一种精简指令集计算机(RISC)处理器,以及其浮点寄存器的非对齐访存方法。其提高了处理器的性能。
为实现本发明目的而提供的一种RISC处理器,包括指令译码部件和执行单元,还包括扩展指令模块;
所述扩展指令模块包括多个扩展指令,用于实现对浮点寄存器的非对齐访存操作;
所述指令译码部件,包括扩展指令译码模块,用于识别扩展指令模块的扩展指令,并进行译码,译码后输出到执行单元执行。
所述扩展指令译码模块,包括识别子模块,用于在读取指令后,识别出对浮点寄存器的非对齐访存扩展指令。
所述扩展指令包括对32位单精度浮点寄存器的操作指令和/或对64位双精度浮点寄存器的操作指令。
所述扩展指令包括从左读取字扩展指令;从右读取字扩展指令;从左读取双字扩展指令;从右读取双字扩展指令;从左写入字扩展指令;从右写入字扩展指令;从左写入双字扩展指令;从右写入双字扩展指令。
所述执行单元,包括从左读取字模块;从右读取字模块,从左读取双字模块,从右读取双字模块,从左写入字模块,从右写入字模块,从左写入双字模块,从右写入双字模块,其中:
所述从左读取字模块,用于根据指令译码部件译码得到的有效地址,从相应的内存中取出包含4个连续字节的一个字中的一有效部分,将所述有效部分存放到浮点寄存器字的左边部分,所述浮点寄存器中字的右边则维持不变;
所述从右读取字模块,用于根据指令译码部件译码得到的有效地址,从相应的内存中取出包含4个连续字节的一个字中的一有效部分,将所述有效部分存放到浮点寄存器字的右边部分,所述浮点寄存器中字的左边部分则维持不变;
所述从左读取双字模块,用于根据指令译码部件译码得到的有效地址,从相应的内存中取出包含8个连续字节的一个双字中的一有效部分,并将所述有效部分存放到浮点寄存器双字的左边部分,浮点寄存器中双字的右边部分则维持不变;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810055928.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种含有活性肽的宠物饮料及其制备方法
- 下一篇:滑片式压缩机的滑片