[发明专利]微处理器功能性指令实现装置和方法有效

专利信息
申请号: 200910243808.1 申请日: 2009-12-21
公开(公告)号: CN101739237A 公开(公告)日: 2010-06-16
发明(设计)人: 徐翠萍;李祖松;郝守青;汪文祥 申请(专利权)人: 北京龙芯中科技术服务中心有限公司
主分类号: G06F9/30 分类号: G06F9/30;G06F9/38
代理公司: 北京市隆安律师事务所 11323 代理人: 史霞
地址: 100080 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 微处理器 功能 指令 实现 装置 方法
【说明书】:

技术领域

发明涉及计算机微处理器体系结构技术领域,特别是涉及计算机微处理 器中指令实现的处理装置和方法,尤其是涉及一种微处理器中对程序执行结果 没有任何影响的功能性指令实现装置和方法。

背景技术

现代计算机中,微处理器通过执行指令来完成有效的工作,而这些指令的 集合则被称之为指令集。不同的微处理器可能实现不同的指令集。这些指令用 来指示微处理器去从内存取数到寄存器中,或是将寄存器中的值保存到内存特 定的位置中;或是对两个寄存器里的值做加减乘除等运算;或是做布尔运算, 例如将对两个寄存器里的值做与,或,比较等操作;或是左移或右移寄存器的 值等等。微处理器的这些指令大都是用与运算相关的缩略词所表示,比如一条 典型的处理器的指令ADD,表示加操作,即将一个寄存器的值与另一个寄存器 的值相加,其结果保存在另一个寄存器中。

但是,微处理器的指令集中还有一类功能性指令,功能性指令是指那类特 殊指令,它们虽然进入流水线参与执行,但实际上对整个程序的执行结果不产 生任何影响,仅仅是为了一些特殊的原因需加入到程序中。这类功能性指令对 整个程序执行结果没有任何影响,但是却是为了实现一些特定的目的而加入到 计算机程序中,例如空操作(NOP)指令与流水线停顿指令(MIPS指令集中的 wait,或INTEL指令集中的halt),前缀指令等等。

例如NOP指令作为一条普通的指令,指示微处理器不做任何操作,即它是 一条空操作指令。当微处理器执行这条指令后,不会对微处理器的状态产生任 何的影响。NOP指令最初的用意是用来让处理器通过执行NOP指令产生一定的 延迟,但又不修改处理的状态。比如在执行某条特定指令之前需要等待一些时 间发生时,计算机就可以使用NOP指令来达到等待的目的。例如在一个流水的 微处理器结构中,一条从内存取数到寄存器的LOAD指令后跟着对这个寄存器 做加法的ADD指令,若这个ADD指令需紧跟在LOAD指令后面,那么可能会得 到错误的执行结果。这是因为LOAD指令需要花费两拍或更多拍才能从内存中 取得想要的值,所以当ADD指令执行时,LOAD指令还未将正确的值送入寄存 器中,那么ADD指令将取得错误的操作数从而使运算结果出错。

除了增加延迟以外,NOP指令还有另外的用处,特别是在MIPS处理器结 构中,因为MIPS指令集中要求所有的跳转指令都必须有延迟槽。虽然延迟槽 指令紧跟着跳转指令,但是对于大部分跳转指令而言,不管这条跳转指令是否 跳转与否,延迟槽的指令都必须执行。但是对微处理器而言,并不能为每条跳 转指令都能插入合适的延迟槽指令,这时候就需要NOP指令来填充延迟槽。因 为执行NOP指令对处理器而言并不会修改任何机器状态,NOP指令作为延迟槽 指令就再合适不过。

NOP指令还有一个重要的用处,就是用来做指令对齐。MIPS指令集中所有 的指令的长度都是一个字,所以比如对实现了MIPS指令集,且指令cache(缓 存)的cache行是8个字的处理器而言,若想让两条指令必须在一个cache 行中,那么可以在程序中填充NOP指令,直到这两条指令处于一个cache行。 因为填充的NOP指令不会修改处理器的状态,因此在执行结果上看,与没有 NOP指令是一样的。

而对于流水线停顿指令(wait或halt)而言,这类指令用来停止流水线 指令的执行,当程序发现处理器没有有效的工作在运行时,即可执行一条这种 指令。

在现有技术中,一般处理器体系结构的功能性指令都被编码成普通运算指 令。比如在MIPS指令集中NOP指令的编码与SLLr0,r0,0,即NOP指令其 实等同于将0号处理器向左移0位的指令。因为在MIPS指令集中,0号处理 器是常值0,因此NOP指令等效于空操作,不会修改处理的任何状态。同样, NOP指令在intel与ARM指令集中有类似的处理。

虽然NOP指令本质上是一个空操作,不会修改处理器的任何状态。但是现 有技术中,为了达到NOP指令所要求的功能,在执行NOP指令时,与其他指令 一样,需要经过以上五级流水才算做完。即译码阶段,NOP指令经过译码单元 译码后成为运算写入操作队列并标识其状态为未发射;发射阶段,NOP指令被 发射到对应的指令运算功能单元,并修改其状态为已发射;执行并写回阶段, 指令运算功能单元将运算的结果写回到操作队列,并修改其状态位已写回;提 交阶段,将运算结果提交,但提交的结果不会修改任何机器的状态。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京龙芯中科技术服务中心有限公司,未经北京龙芯中科技术服务中心有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200910243808.1/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top