[发明专利]基于单/双发射指令集的微处理器指令处理方法及系统有效
申请号: | 201210016166.3 | 申请日: | 2012-01-18 |
公开(公告)号: | CN103218207A | 公开(公告)日: | 2013-07-24 |
发明(设计)人: | 沙力;兰军强;朱磊 | 申请(专利权)人: | 上海算芯微电子有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京戈程知识产权代理有限公司 11314 | 代理人: | 程伟;孙向民 |
地址: | 201203 上海市浦东新*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 发射 指令 微处理器 处理 方法 系统 | ||
技术领域
本发明涉及微处理器的指令处理方法及系统,特别涉及基于混合单发射/双发射指令集的微处理器指令处理方法及系统。
背景技术
在微处理器的基本架构中,在一个指令周期内执行的指令处理过程主要包括指令寻址、指令读取、指令译码、读操作数、运算、结果写回等步骤。传统的基于单发射指令的微处理器在处理一条指令的过程中仅执行一次运算。虽然实际上很多运算可以并行处理,但是由于运算单元ALU在一个周期内仅执行一次运算的限制而无法实现,因此ALU成为了传统微处理器效率的瓶颈,使得这种传统的基于单发射指令的微处理器的工作效率较低。
为了提高微处理器的工作效率,目前已经提出了双发射指令技术。双发射的概念是,每一条指令能够读取四个操作数,进行两个不同(也可能是相同)的运算,目前的高端处理器一般都支持双发射指令,甚至多发射指,使得微处理器工作效率大大提高。
现有的基于双发射指令的微处理器的指令处理方式主要有以下几种:
第一种方式是每条指令仍只包含一个运算,在指令处理的过程中,指令处理系统同时读取两条指令,通过硬件根据两条指令之间的依赖关系临时计算这两条指令是否可以同时进行,如果计算的结果为可以同时进行,则将两条指令分别写入两条流水线。由于两条指令在两个流水线中分别执行的过程中可能出现先后次序颠倒,因此在两条流水线分别完成运算之后,要对两个运算结果进行重新排序,再进行结果的写回。这种处理方式的问题在于实现起来比较复杂,在指令依赖关系的计算以及结果重新排序等环节,都会引入相当庞大的逻辑复杂度和硬件开销。
第二种方式是在一条指令中实现单发射或双发射,也就是说,在指令集中包含单发射指令和双发射指令两种指令,通过额外的状态变量来区分这两种指令,也就是说,在微处理器的应用中通过程序来修改这个状态变量来指示微处理器当前的指令是单发射指令还是双发射指令。在现有技术中,ARM系列微处理器是基于这种方式工作的典型微处理器,其双发射指令也支持微处理器的全部功能,目的是为了节省指令空间。这种方式使得微处理器的硬件结构相对简单,但软件编程十分复杂。由于单发射/双发射指令之间并非动态切换,而是需要通过修改微处理器的状态从而用两套不同的逻辑来处理单发射和双发射指令,因此需要显式的告诉微处理器下一条指令是单发射指令还是双发射指令,这使得微处理器的编程复杂度大大增加。而且因为单发射指令和双发射指令都是全集,即分别实现微处理器的全部功能,导致两条流水线都要实现全部指令,也就是说所有的操作都要重复两遍。并且,由于指令数量巨大,导致指令编码(操作码)字段很长,压缩了地址字段、立即数字段等其他字段的空间,这就限制了微处理器在其他方面的性能。例如典型的ARM微处理器由于指令字段占用较大空间,导致寄存器字段减小,使得寄存器深度只能支持16位。
由此可见,在性能和成本/功耗之间难以兼得,是传统微处理器的关键局限性。尤其是在图形处理或多媒体处理等特定应用场合,需要一种高性能、低成本、低功耗、低应用复杂度的新型的微处理器的指令处理系统和方法。
发明内容
本发明提出了一种基于混合单发射/双发射指令集的微处理器指令处理系统,解决了现有技术中存在的问题,通过非对称式单发射/双发射指令集设置减小了指令字段空间,通过静态切换简化了单发射/双发射指令切换机制,大大降低了硬件成本以及编程复杂度。
利用本发明的微处理器指令处理方法和装置设计的微处理器,具有低成本,低功耗,高处理效率的优点,在40nm工艺下,以小于0.03mm2的芯片面积,可实现超过1Ghz的工作频率以及约1.5Mips/Mhz的指令执行速度。
根据本发明的一方面,提出了一种微处理器指令处理方法,包括:
指令读取步骤,根据指令的地址,从存储器中读取一条指令,其中所述指令中包含指示所述指令为单发射指令或双发射指令的标识位;
指令译码步骤,对所读取的指令进行译码,获得包括所述标识位、操作码、操作数的译码结果,根据所述标识位,确定所述指令为单发射指令或双发射指令;
运算步骤:如果确定该指令为单发射指令,则在第一流水线中完成该单发射指令的操作,如果确定该指令为双发射指令,则在第一流水线中完成该双发射指令中的第一操作,在第二流水线中完成该双发射指令的第二操作,第一流水线和第二流水线以相同的方式并行运行;
写回步骤:将所述第一流水线的运算结果和所述第二流水线的运算结果写回到寄存器。
优选地,由所述单发射指令构成的单发射指令集和由所述双发射指令构成的双发射指令集分别实现微处理器的部分功能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海算芯微电子有限公司,未经上海算芯微电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210016166.3/2.html,转载请声明来源钻瓜专利网。