凌阳教育的个人空间 https://blog.eetop.cn/204849 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

ARM的3级流水线介绍

已有 809 次阅读| 2015-12-9 10:55 |个人分类:嵌入式培训

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.

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


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 3

    评论
  • 3815

    访问数
关闭

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

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

GMT+8, 2024-4-19 22:09 , Processed in 0.031165 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部