ARM流水线的概念与原理

处理器按照一系列步骤来执行每一条指令。典型计算机系统的步骤如下:

(1)从存储器读取指令(fetch);

(2)译码以鉴别它是属于哪一条指令(dec);

(3)从指令中提取指令的操作数(这些操作数往往存在于寄存器中)(reg);

(4)将操作数进行组合以得到结果或存储器地址(ALU);

(5)如果需要,则访问存储器以存储数据(mem);

(6)将结果写回到寄存器堆(res)。

并不是所有的指令都需要其中的每一个步骤,但是,多数指令需要其中的多个步骤。这些步骤往往使用不同的硬件功能,例如,ALU可能只在第4步中用到。因此,如果一条指令不是在前一条指令结束之前就开始,那么在每一步骤内处理器只有少部分的硬件在使用。

有一个明显的方法可以改善硬件资源的使用率和处理器的吞吐量,这就是当前一条指令结束之前就开始执行下一条指令,也就是通常所说的流水线(Pipeline)技术。流水线是RISC处理器执行指令时采用的机制。使用流水线,可在取下一条指令的同时译码和执行其他指令,从而加快执行的速度。可以把流水线看做是汽车生产线,每个阶段只完成专门的处理器任务。

采用上述操作顺序,处理器可以这样来组织:当一条指令刚刚执行完步骤1并转向步骤2时,下一条指令就开始执行步骤1,下图说明了这个过程。从原理上说,这样的流水线应该比没有重叠的指令执行快6倍,但由于硬件结构本身的一些限制,实际情况会比理想状态差一些。

流水线的分类

从Acorn Computer公司在1983—1985年间开发的第一个3µm器件,到ARM公司在1990—1995年期间开发的ARM6和ARM7,ARM整数处理器核的组织结构变化很小,这些处理器都是采用3级流水线,而这一时期CMOS工艺的发展,几乎将特征尺寸减少了一个数量级。以此,核的性能提高很快,但基本的操作原理却大部分没有变化。

从1995年以来,ARM公司推出了几个新的ARM核。它们采用5级流水线和哈佛架构,获得了显著的高性能。例如,ARM9增加了存储器访问段和回写段,这使得ARM9的处理能力可达到平均1.1 Dhrystone MISP/MHz,与ARM7相比,指令吞吐量增加了约13%。

猜你喜欢

转载自blog.csdn.net/super828/article/details/129828931
今日推荐