计算机的并行处理技术
概括起来主要有以下三种形式:
1.时间并行
时间并行指时间重叠,在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
时间并行性概念的实现方式就是采用流水处理部件。这是一种非常经济而实用的并行技术,能保证计算机系统具有较高的性能价格比。目前的高性能微型机几乎无一例外地使用了流水技术。
2.空间并行
空间并行指资源重复,在并行性概念中引入空间因素,以“数量取胜” 为原则来大幅度提高计算机的处理速度。大规模和超大规模集成电路的迅速发展为空间并行 技术带来了巨大生机,因而成为目前实现并行处理的一个主要途径。空间并行技术主要体现 在多处理器系统和多计算机系统。但是在单处理器系统中也得到了广泛应用。
3.时间并行+空间并行
指时间重叠和资源重复的综合应用 ,既采用时间并行性又采用空间并行性。显然,第三种并行技术带来的高速效益是最好的。
流水计算机
流水计算机中,CPU按流水线方式组织,通常由三部分组成:指令部件、指令队列、执行部件。这三个功能部件可以组成一个3级流水线。
流水CPU的时空图
计算机的流水处理过程非常类似于工厂中的流水装配线。为了实现流水,首先把输入的任务(或过程)分割为一系列子任务,并使各子任务能在流水线的各个阶段并发地执行。当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现了子任务级的并行性。
图(a)表示流水CPU中一个指令周期的任务分解。
图(b)表示非流水计算机的时空图。
图(c)表示流水计算机的时空图。
图(d)表示超标量流水计算机的时空图。
流水线分类
指令流水线 指指令步骤的并行。将指令流的处理过程划分为取指令、译码、执行、写回等几个并行处理的过程段。目前,几乎所有的高性能计算机都采用了指令流水线。
【例】流水线中有三类数据相关冲突:写后读相关;读后写相关;写后写相关。判断以下三组指令各存在哪种类型的数据相关。
(1) I1: ADD R1,R2,R3 ; (R2) + (R3)->R1
I2: SUB R4,R1,R5 ; (R1) - (R5)->R4
(2) I3: STA M(x),R3 ; (R3)->M(x),M(x)是存储器单元
I4: ADD R3,R4,R5 ; (R4)+(R5)->R3
(3) I5: MUL R3,R1,R2 ; (R1)×(R2)->R3
I6: ADD R3,R4,R5 ; (R4) + (R5)->R3
第(1)组指令中,I1指令运算结果应先写入R1,然后在I2指令中读出R1内容。由于I2指令进入流水线,变成I2指令在I1指令写入R1前就读出R1内容,发生RAW相关。
第(2)组指令中,I3指令应先读出R3内容并存入存储单元M(x),然后在I4指令中将运算结果写入R3。但由于I4指令进入流水线,变成I4指令在I3指令读出R3内容前就写入R3,发生WAR相关。
第(3)组指令中,如果I6指令的加法运算完成时间早于I5指令的乘法运算时间,变成指令I6在指令I5写入R3前就写入R3,导致R3的内容错误,发生WAW相关 。
算术流水线 指运算操作步骤的并行。如流水加法器、流水乘法器、流水除法等。 现代计算机中已广泛采用了流水的算术运算器。
处理机流水线 又称为宏流水线,是指程序步骤的并行。由一串级联的处理机构成流水线的各个过程段,每台处理机负责某一特定的任务。数据流从第一台处理机输入,经处理后被送入与第二台处理机相联的缓冲存储器中。第二台处理机从该存储器中取出数据进行处理,然后传送给第三台处理机,如此串联下去。随着高档微处理器芯片的出现, 构造处理机流水线将变得容易了。处理机流水线应用在多机系统中。