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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

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

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

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

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

x

5级流水线ARM组织

为了得到更好的性能,必须重新考虑处理器的组织结构。经典的计算执行一个给定程程序需要的时间的计算公式为:

公式.png

分析以上计算公式,因为对给定程序时常数,所以仅有2种方法来缩短执行时间,提高处理器执行的性能:

提高时钟频率。这就要求简化流水线每一级的逻辑,因此流水线的级数就要增加。

减少每条指令的平均时钟周期CPI

这就要求重新考虑3级流水线ARM中多于一个流水线槽的指令的实现方法,以便使它占有较少的槽;或者减少因指令执行相关造成的流水线停顿,也可将着两者结合起来。

3级核相关的减少CPI的根本问题是冯诺曼存储体系结构有关,因为在3级流水线的冯诺曼处理器中,若指令和数据在同一个存储器,则计算机性能将受到现有寄存器贷带宽的限制。3级流水线ARM核在每一个时钟周期都必须访问存储器,或者取指令,或者传输数据。对于访问数据存储器操作时,不得不停止取指令寄存器,使性能受影响。

为了明显改善CPI,存储器系统必须在每个时钟周期给出多于一个的数据,方法可以是每个时钟周期从单个存储器中给出多于32位数据,或为指令和数据分别设置寄存器。

作为上述讨论的结果,较高性能的ARM核使用5级流水线且具有分开的指令和数据存储器。把指令的执行工作分割为5部分二不是3部分,这就减少了在每个时钟周期内必须完成的最大工作量,进而允许使用较高的时钟频率(若是其他系统部件,特别是指令寄存器,也重新设计以较高的时钟频率操作)。分开的指令和数据存储器(可能是分开的Cache连接到同义的指令和数据主寄存器上)使核的CPI明显减少。

ARM9TDMI中使用了典型的5ARM流水线。ARM9TDMI的组织结构如图所示。

ARM9TDMI5级流水线的组织结构.jpg

1.
ARM5级流水线介绍

使用5级流水线的ARM处理器包含下面5个流水线级:

取指。指令从寄存器中取出,放入指令流水线。

译码。指令译码,从寄存器堆中读取寄存器操作数。在寄存器堆中有3个操作数读端口,因此大多数ARM指令能在一个周期内读取其操作数。

执行。把一个操作数移位,产生ALU的结果。如果指令是LoadStore,在ALU中计算存储器的地址。


缓冲/数据。如果需要,则访问数据寄存器;否则,ALU的结果只是简单地缓冲一个时钟周期,以便使所有指令具有同样的流水线流程。

回写。将指令产生的结果回写到寄存器堆中,包括任何从存储器读取的数据。

这种5级流水线在许多RISC处理器中使用过,而且被认为是设计处理器的“经典”方法。尽管在设计ARM指令集是并不是针对这样的流水线,但是将它映射过来相对还是简单的。在组织结构上,为了更好地配合ARM指令集体系结构,它的寄存器堆有3个源操作数读端口和2个写端口,并在执行级包含了地址增值硬件,以支持多寄存器的LoadStore指令中地址的计算,而不用ALU计算地址。

2.
ARM5级流水线下PC的产生

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

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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-25 13:50 , Processed in 0.035443 second(s), 9 queries , Gzip On, Redis On.

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