实现的指令流水线是使用微处理器时使用的常用技术。流水线改善了操作和处理时间。微处理器如Microchip®PIC32MX460F512LchipKIT Pro MX4电路板利用这种技术提供高效的处理和指令执行。虽然这个过程很复杂,但实际上在概念上很简单。在解释指令管道时,我将特别提到上面提到的Microchip PIC32微处理器。
PIC32用一个5级管道执行指令。这5个阶段如下:
- 教学阶段(我)
- 执行阶段(E)
- 记忆阶段(M)
- 对齐阶段(a)
- 写后台(W)
指令在指令阶段被取走,在执行阶段被解码。然后操作在内存阶段完成,结果数据在align阶段对齐,数据被写后阶段写回所谓的寄存器文件。因此,在所有相关操作完成之前,一条指令要经历5个独立的阶段。也就是说,每个指令需要5个时钟周期来完成,假设每个阶段需要一个时钟周期。5个时钟周期可能看起来并不多,特别是在PIC32的工作频率高达80MHz的情况下,但计算是关于效率的!这就是使用指令管道的原因。与一次发送一条指令并等待所有5个阶段完成后再执行下一条指令不同,流水线允许同时操作5条不同的指令。
假设我们有i-1、i-2、i-3等指令,并参考上面的图表。指令i-1首先被取走。在一个时钟周期后,i-1继续到流水线的下一个阶段。一旦i-1进入执行阶段,计算机就可以获取下一条指令i-2。在另一个时钟周期中,i-1被解码并继续进入记忆阶段。指令i-2已经被取走并继续到执行阶段,然后计算机可以再取走另一条指令i-3。现在你可能已经开始明白我的意思了。本质上,一次管理5条指令,在流水线的每个阶段都有一条。从图中可以看到,一旦流水线满了,每个时钟周期就会完成一条指令。很明显,这比每5个时钟周期完成一条指令的效率要高得多。
最后,为了让这个概念更清楚一点,你可以把指令管道想象成,嗯,管道。所有的5个阶段,或部分,由5个不同的指令填充,每个时钟周期完成一个指令。看看下面的图片。
