[发明专利]RISC处理器中执行寄存器类型指令的方法和其系统有效
申请号: | 201010251490.4 | 申请日: | 2010-08-11 |
公开(公告)号: | CN101916180A | 公开(公告)日: | 2010-12-15 |
发明(设计)人: | 安述倩;余磊;张浩;范东睿 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100080 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | risc 处理器 执行 寄存器 类型 指令 方法 系统 | ||
技术领域
本发明涉及计算机领域,尤其涉及RISC处理器中执行寄存器类型指令的方法和其系统。
背景技术
目前通用的RISC处理器设计中,为了充分利用处理器资源,一般采用流水线,流水线一般分为取指(Fetch)、译码(Decode)、读寄存器并发射(RegisterFile)、执行(Execute)、写回(WriteBack)五级,如图1所示。
在大部分采用RISC的指令集中,操作数在指令中通过寄存器号指定,如果寄存器堆中寄存器数目为2n,则指令中有n位用来寻址寄存器。而对于定点寄存器和浮点寄存器的区分,则通过指令类型进行判断。以MIPS指令为例,如图2所示,其有三种格式,立即数型、寄存器型和跳转类型。MIPS结构中寄存器堆分为定点寄存器堆和浮点寄存器堆,每个寄存器堆都包含32个64位寄存器。图2中寄存器型指令中的寄存器号为5位,用来寻址32个寄存器中的一个。
在流水线实际执行过程中,指令和指令之间可能存在着数据依赖关系。比如,一条指令的源操作数是前面一条指令的目的操作数,这样就产生了写后读相关。在产生数据依赖时,可以通过调度指令的顺序解除依赖,使程序达到更高的效率和更好的性能,然而指令调度并不能完全解决数据依赖带来的问题。如果在指令队列中,前一条指令从发射到完成的延迟过长,则会导致需要在与其存在数据依赖的指令之间需插入过多的有效指令,而调度这些指令需要的寄存器数目超出了已有的相应类型寄存器数目,从而产生寄存器不够用的情况。例如,一段关于浮点矩阵乘法的程序,需占用大量的浮点寄存器和少量的定点寄存器,这种情况下,就可能产生浮点寄存器数目不够而定点寄存器空闲的情况,产生这种问题时,需要相关机制和装置来解决。
发明内容
为解决上述问题,本发明提供了RISC处理器中执行寄存器类型指令的方法和其系统,通过复用寄存器扩充各个类型的寄存器的可用数目,提高程序运行的性能,而不受限于处理器中特定类型物理寄存器的数目。
本发明公开了一种RISC处理器中执行寄存器类型指令的方法,包括:
步骤1,如果发现汇编代码中寄存器类型指令在执行时,将会出现所用类型寄存器的可用数目不足,则生成所述寄存器类型指令对应的宏指令,所述宏指令对应的内部操作码编码和所述寄存器类型指令对应的内部操作码编码相同,所述宏指令的完整寄存器号包括表明所用寄存器类型的标志位和表明寄存器地址的寄存器号,使用所述宏指令代替所述寄存器类型指令;
步骤2,按流水线方式对汇编代码进行取指令、译码、读寄存器和发射、执行、以及写回;
在译码时,依据当前指令的操作码确定指令的类型,并识别出当前指令为宏指令或寄存器类型指令,对于寄存器类型指令,依据寄存器类型指令的类型确定操作数类型,并在寄存器类型指令的寄存器号中添加表明操作数类型的标志位,以生成完整寄存器号;在读寄存器时,读取当前指令的完整寄存器号的标志位所指定类型的寄存器堆中同寄存器号对应的寄存器。
所述步骤2进一步为,
步骤21,在取指时,根据指令地址取指令,送入译码阶段;
步骤22,在译码时,根据当前指令的操作码确定指令的类型,并识别出当前指令为宏指令或寄存器类型指令,对于寄存器类型指令,依据寄存器类型指令的类型确定操作数类型,并在寄存器类型指令的寄存器号中添加表明操作数类型的标志位,以生成完整寄存器号;根据当前指令的操作码确定指令的功能部件号,并对当前指令进行编码,以生成功能部件可识别的内部操作码编码;
步骤23,在读寄存器及发射时,读取当前指令的完整寄存器号的标志位所指定类型的寄存器堆中同寄存器号对应的寄存器,根据功能部件号发射指令到对应功能部件;
步骤24,在执行时,功能部件根据当前指令的内部操作码编码进行操作;
步骤25,在写回时,根据当前指令的类型将操作结果写回到对应类型的寄存器堆。
所述步骤2进一步为,
步骤31,在取指时,根据指令地址取指令,送入译码阶段;
步骤32,在译码时,根据当前指令的操作码确定指令的类型,并识别出当前指令为宏指令或寄存器类型指令,对于寄存器类型指令,依据寄存器类型指令的类型确定操作数类型,并在寄存器类型指令的寄存器号中添加表明操作数类型的标志位,以生成完整寄存器号;对当前指令进行编码,以生成功能部件可识别的内部操作码编码;
步骤33,在读寄存器及发射时,读取当前指令的完整寄存器号的标志位所指定类型的寄存器堆中同寄存器号对应的寄存器,根据当前指令的操作码发射指令到对应功能部件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010251490.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:含有二氧化铈和胶态二氧化硅的分散体
- 下一篇:移动终端触屏的触控操作方法