一、什么是流水线技术
流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。流水线是Intel初次在486芯片中开始使用的。流水线的工作方式就像工业生产上的装配流水线。在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即取指令、译码、执行、写回结果,浮点流水又分为八级流水。
二、流水线的产生背景
借鉴了工业流水线制造的思想,现代CPU也采用了流水线设计。在工业制造中采用流水线可以提高单位时间的生产量;同样在CPU中采用流水线设计也有助于提高CPU的频率。先以汽车装配为例来解释流水线的工作方式。假设装配一辆汽车需要4个步骤:①冲压:制作车身外壳和底盘等部件;②焊接:将冲压成形后的各部件焊接成车身;③涂装:将车身等主要部件清洗、化学处理、打磨、喷漆和烘干;④总装:将各部件(包括发动机和向外采购的零部件)组装成车;流水线同时对应地需要冲压、焊接、涂装和总装四个工人。采用流水线的制造方式,同一时刻四辆汽车在装配。如果不采用流水线,那么初辆汽车依次经过上述四个步骤装配完成之后,下一辆汽车才开始进行装配,早期的工业制造就是采用的这种原始的方式。未采用流水线的原始制造方式,同一时刻只有一辆汽车在装配。
流水线的生产背景是什么
不久之后就发现,流水线某个时段中一辆汽车在进行装配时,其它三个工人处于闲置状态,显然这是对资源的极大浪费!于是开始思考能有效利用资源的方法:在初辆汽车经过冲压进入焊接工序的时候,立刻开始进行第二辆汽车的冲压,而不是等到初辆汽车经过全部四个工序后才开始。之后的每一辆汽车都是在前一辆冲压完毕后立刻进入冲压工序,这样在后续生产中就能够保证四个工人一直处于运行状态,不会造成人员的闲置。这样的生产方式就好似流水川流不息,因此被称为流水线。
CPU的工作也可以大致分为指令的获取、解码、运算和结果的写入四个步骤,采用流水线设计之后,指令(好比待装配的汽车)就可以连续不断地进行处理。在同一个较长的时间段内,显然拥有流水线设计的CPU能够处理更多的指令。