首页 理论教育 指令流水线技术-嵌入式系统原理与应用成果

指令流水线技术-嵌入式系统原理与应用成果

时间:2023-11-23 理论教育 版权反馈
【摘要】:指令流水线是RISC 处理器执行指令时采用的机制。指令流水线是RISC 结构的一切处理器共同的一个特点,ARM 处理器也不例外,但不同的ARM 核其流水线级数不同。因此,采用指令流水线技术将大大提高微处理器的运行效率。表2.1不采用指令流水线技术表2.2采用指令流水线技术续表例题2.1已知某ARM 处理器采用一条五级流水线,假设每一级所需时间为4 ns,则该处理器要执行100 亿条指令最快需要多少时间?

指令流水线技术-嵌入式系统原理与应用成果

指令流水线是RISC 处理器执行指令时采用的机制。 采用流水线技术的主要原因是现代处理器的指令变得越来越复杂,往往需要使用多个时钟周期才能实现。 处理器的乘法和除法指令就是这方面的典型代表。 在处理器执行多周期的指令过程中,系统总线通常处于空闲状态。 如果在处理器中采用流水线技术,其总线逻辑就可以在执行指令的同时提前读入几条指令准备运行。

指令流水线是RISC 结构的一切处理器共同的一个特点,ARM 处理器也不例外,但不同的ARM 核其流水线级数不同。 例如:ARM7 采用三级流水线结构(取指、译码、执行),即运行一条指令分为三个阶段:

①取指

取指级完成程序存储器中指令的读取,并放入指令流水线中。

②译码

对指令进行译码,为下一周期准备数据路径需要的控制信号。 在这一级指令“占有”译码逻辑,而不“占有”数据路径。

③执行

指令“占有”数据路径,寄存器堆被读取,操作数在桶式移位器中被移位,ALU 产生相应的运算结果并回写到目的寄存器中,ALU 结果根据指令需求更改状态寄存器的条件位。

ARM9 采用五级流水线结构(取指、译码、执行、缓冲、写回),即运行一条指令分为五个阶段:

①取指

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

②译码

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

③执行

将一个操作数移位,产生ALU 的结果。 如果指令是“load”或“store”,在ALU 中计算存储器的地址。(www.xing528.com)

④缓冲数据

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

⑤回写

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

以五级流水线为例,采用指令流水线技术和不采用指令流水线技术的对比见表2.1 和表2.2,可以看出:不采用指令流水线技术,处理器10 个时间片一共完成2 条指令;而采用流水线技术,处理器10 个时间片一共完成了6 条指令。 因此,采用指令流水线技术将大大提高微处理器的运行效率

表2.1 不采用指令流水线技术

表2.2 采用指令流水线技术

续表

例题2.1 已知某ARM 处理器采用一条五级流水线,假设每一级所需时间为4 ns,则该处理器要执行100 亿条指令最快需要多少时间?

解 因为1 ns=10 -9 s,而每一级所需时间为4 ns,并且每一级能执行一条指令,所以执行一条指令需要4 ns,即4 ×10 -9 s

因此100 亿条指令最快需要1010 ×4 ×10 -9 s=40 s

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈