在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 4273|回复: 1

[资料] ARM的3级流水线介绍

[复制链接]
发表于 2015-12-9 11:35:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

1.
ARM3级流水线介绍

ARM7为止,ARM处理器使用的简单3级流水线分别为:

取指级。取指级完成程序存储器中指令的读取,并放入指令流水线中。

译码级。对指令进行译码,为下一个周期准备数据路径需要的控制信号。这一级指令“占有”译码逻辑,而不“占有”数据路径。

执行级。指令“占有”数据路径,寄存器堆被读取,操作数在桶式移位器中被移位,ALU产生相应的运算结果并回到目的寄存器,ALU结果根据指令需要更改状态寄存器的条件位。

在任意时刻,可能有3种不同的指令占用着3级中的一级,因此流水线正常的条件是在任意时刻,每一级中的硬件必须能够独立操作,而不能2级或多级占用同义硬件资源。

当处理器执行简单的数据处理指令时,流水线使得每个时钟周期能完成一条指令。一条指令用3个周期来完成,因此有3个周期的执行时间,但吞吐率是每个周期一条指令。

当执行多周期指令时,指令的执行流程不规则,图中表示了一组单周期指令ADD,而在第一个ADD指令的后面出现一个数据存储指令STR。访问主存储器的周期用浅阴影表示,因此看到在每一个周期中都使用了存储器。同样,在每一个周期中都使用了数据路径,这涉及带所有执行周期、地址计算和数据传送。译码逻辑总是产生数据路径在下一个周期使用的控制信号,因此除译码周期外,在STR地址计算中也产生数据传送所需的控制信号。

这样,在这个指令序列中,处理器的所有部件在每个时钟周期中都要执行相应的操作。对于ARM7,不可能同时占用冯诺曼存储器机构的端口,因此确定了不可能同时访问数据存储器和程序存储器。存储器时一个限制因素,造成了ARM流水线中断。



ARM3级流水线下PC的行为

3级流水线的执行过程中,当通过R15寄存器直接访问PC时,必须考虑此时流水线执行过程的真实情况。

流水线处理器的执行使得程序计数器PC必须在当前指令之前计数。对于图所示的3ARM,可以看到,在以当前PC+4取得指令(在图中取得指令2时,当前的PC+4送到PC,当前的PC相对于第一条PCPC+4,即PC+8PC值都要增加,因此在第一条指令执行周期的开始即execute1时,得到PC+8,第二条指令执行周期的开始即execute2时(也就是第三条指令3取指时),得到PC+12.

3级流水线的PC行为.jpg


凌阳教育,专注嵌入式人才培养13年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网

发表于 2018-12-20 10:18:52 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 19:23 , Processed in 0.018331 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表