马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
5级流水线ARM组织 为了得到更好的性能,必须重新考虑处理器的组织结构。经典的计算执行一个给定程程序需要的时间的计算公式为:
分析以上计算公式,因为对给定程序时常数,所以仅有2种方法来缩短执行时间,提高处理器执行的性能: 提高时钟频率。这就要求简化流水线每一级的逻辑,因此流水线的级数就要增加。 减少每条指令的平均时钟周期CPI。 这就要求重新考虑3级流水线ARM中多于一个流水线槽的指令的实现方法,以便使它占有较少的槽;或者减少因指令执行相关造成的流水线停顿,也可将着两者结合起来。 同3级核相关的减少CPI的根本问题是冯诺曼存储体系结构有关,因为在3级流水线的冯诺曼处理器中,若指令和数据在同一个存储器,则计算机性能将受到现有寄存器贷带宽的限制。3级流水线ARM核在每一个时钟周期都必须访问存储器,或者取指令,或者传输数据。对于访问数据存储器操作时,不得不停止取指令寄存器,使性能受影响。 为了明显改善CPI,存储器系统必须在每个时钟周期给出多于一个的数据,方法可以是每个时钟周期从单个存储器中给出多于32位数据,或为指令和数据分别设置寄存器。 作为上述讨论的结果,较高性能的ARM核使用5级流水线且具有分开的指令和数据存储器。把指令的执行工作分割为5部分二不是3部分,这就减少了在每个时钟周期内必须完成的最大工作量,进而允许使用较高的时钟频率(若是其他系统部件,特别是指令寄存器,也重新设计以较高的时钟频率操作)。分开的指令和数据存储器(可能是分开的Cache连接到同义的指令和数据主寄存器上)使核的CPI明显减少。 在ARM9TDMI中使用了典型的5级ARM流水线。ARM9TDMI的组织结构如图所示。
1.
ARM5级流水线介绍 使用5级流水线的ARM处理器包含下面5个流水线级: 取指。指令从寄存器中取出,放入指令流水线。 译码。指令译码,从寄存器堆中读取寄存器操作数。在寄存器堆中有3个操作数读端口,因此大多数ARM指令能在一个周期内读取其操作数。 执行。把一个操作数移位,产生ALU的结果。如果指令是Load或Store,在ALU中计算存储器的地址。
缓冲/数据。如果需要,则访问数据寄存器;否则,ALU的结果只是简单地缓冲一个时钟周期,以便使所有指令具有同样的流水线流程。 回写。将指令产生的结果回写到寄存器堆中,包括任何从存储器读取的数据。 这种5级流水线在许多RISC处理器中使用过,而且被认为是设计处理器的“经典”方法。尽管在设计ARM指令集是并不是针对这样的流水线,但是将它映射过来相对还是简单的。在组织结构上,为了更好地配合ARM指令集体系结构,它的寄存器堆有3个源操作数读端口和2个写端口,并在执行级包含了地址增值硬件,以支持多寄存器的Load和Store指令中地址的计算,而不用ALU计算地址。 2.
ARM5级流水线下PC的产生 在5级流水线的执行过程中,当通过R15寄存器直接访问PC时,也必须考虑此时流水线执行过程的真实情况。5级流水线ARM的R15的真实情况。 凌阳教育,专注嵌入式人才培养13年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网 |