首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
适用于RISC CPU的转移指令的原理及仿真
来源:本站整理  作者:佚名  2011-03-14 21:56:17



  2.3.2 BTC存储

  当 转移指令 第一次执行时,BTC在当前时钟启动存储任务,把该指令执行的信息写入对应的单元中,对于BCC指令,确定2BC的初始状态。同时也把该行的VI置为有效。BTC采用随机替换策略确定数据入口:在复位或Cache清零之后,按顺序填充Cache,如果BTC写满,则随机选通一行进行替换。

  2.3.3 BTC命中

  在取指周期开始时如果发现当前取指地址包含在BTC的TAG中,并且对应行的VI也有效,则认为BTC命中,从而启动命中任务:读出命中行的数据,把DI送到指令总线,如果是CALL指令,转移目标地址作为下一条指令的地址;如果是BCC 指令则需要判断跳转是否发生:当标志位有效时,根据条件码与标志位判断,否则根据HI进行预测,然后确定下一条指令的地址:跳转时为转移目标地址,不跳转为PC+2。对于带A参数的BCC指令,在跳转不执行时,要禁止DI在下一时钟进入译码级。BTC命中的流程如图3。

BTC命中的流程

  2.3.4 BTC检查

  如果前一周期BTC命中,则在当前周期开始时启动BTC检查任务;如果前一周期BTC是根据HI预测BCC的跳转,那么在当前时钟标志位有效后,要重新判断跳转决定是否正确,如果不正确就要进行更正,给出正确的取指地址,请求在下一时钟禁止译码级或执行级。同时还要根据最终的跳转情况和HI的更新算法更新HI。BTC检查的流程图如图4。

BTC检查的流程图

  3 结论

  整个 RISC CPU 用 Verilog HDL语言进行了描述,并针对标准程序进行了仿真,仿真结果表明,采用上述方法处理转移指令可以明显提高流水线的吞吐率。由于在转移指令后面插入了延时槽指令,转移指令的执行与程序顺序执行时完全相同; BTC的使用虽然在硬件上增加了一些开销,但使转移指令再次执行时基本不占用流水线资源,大大提高了CPU的效率。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:144,660.20000 毫秒