1.ARM的3级流水线 ARM7架构采用了一个3段的流水线。 (1)取指:将指令从内存中取出来。 (2)译码:操作码和操作数被译码以决定执行什么功能。 (3)执行:执行已译码的指令。 2.ARM的流水线设计问题 由上面的分析可以看到,在ARM7的3级流水线结构中流水线易出现阻塞或间断,这必然降低流水线的效率,因此,为了提高处理器的性能,必然要考虑如何优化处理器的组织结构。 1)缩短程序执行时间 计算处理器运行一个给定程序所需的时间的公式为: Tprog= 式中:Tprog是执行一个程序所需时间;Ninst是执行该程序的指令条数;CPI是执行每条指令的平均时钟周期数;fclk是处理器的时钟频率。 2)解决流水线的相关问题 (1)流水线的结构相关 (2)流水线的数据相关 (3)流水线的控制相关 3.ARM的5级流水线 5级流水线可分为: (1)取指:将指令从指令存储器中取出,放入指令流水线中。 (2)指令译码:对指令进行译码,从寄存器堆中读取寄存器操作数。 (3)执行:把一个操作数移位,产生ALU结果。如果指令是load或store,在ALU中计算存储器的地址。 (4)数据缓存:如果需要,访问数据存储器;否则,ALU的结果只是简单地缓冲一个时钟周期,以便使所有指令具有同样的流水线流程。 (5)写回:将指令产生的结果回写到寄存器堆,包括任何从存储器读取的数据。 |