为了帮助读者理解流水线的概念,先介绍并行性的概念。并行性是指计算机系统可以同时进行运算或操作的特性,它包括同时性与并发性两种含义,同时性指两个或两个以上的事件在同一时刻发生,并发性指的是两个或两个以上的事件在同一时间间隔发生。在计算机系统中,提高并行性的措施包括以下三种:
(1)时间重叠。也称为时间并行技术。在并行性概念中引入时间因素,即多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转时间而赢得速度。
(2)资源重复。也成为空间并行技术。在并行性概念中引入空间因素,以数量取胜的原则,通过重复设置硬件资源,大幅度提高计算机系统的性能。
(3)资源共享。一种软件方法,它是多个任务按一定时间顺序轮流使用同一套硬件设备,该方法降低了成本,同时又提高了计算机设备的利用率。
一条指令的执行过程可以分为多个阶段(或子过程),具体分法随计算机不同而不同。采用流水线技术可以使每个子过程与其它子过程并行执行。从本质上讲,流水线技术是一种时间并行技术,只需增加少量硬件就能把计算机的运算速度提高几倍。
图1-7 指令的顺序执行与并行执行
如图1-7所示,一条指令的执行过程可以分成以下3个阶段:
(1)取指令。按照指令计数器的内容访问主存储器,取出一条指令送到指令寄存器。
(2)指令分析。对指令操作码部分进行译码,按照给定的寻址方式和地址字段中的内容形成操作数地址,并用这个地址读取操作数。
(3)指令执行。把运算结果写到通用寄存器或主存中。