文档库 最新最全的文档下载
当前位置:文档库 › 第三章 流水线技术

第三章 流水线技术

第三章 流水线技术
第三章 流水线技术

第3章流水线技术

3.1解释下列术语

流水线:将一个重复的时序过程,分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其它子过程同时执行。

单功能流水线:指流水线的各段之间的连接固定不变、只能完成一种固定功能的流水线。

多功能流水线:指各段可以进行不同的连接,以实现不同的功能的流水线。

静态流水线:指在同一时间内,多功能流水线中的各段只能按同一种功能的连接方式工作的流水线。当流水线要切换到另一种功能时,必须等前面的任务都流出流水线之后,才能改变连接。

动态流水线:指在同一时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能的流水线。它允许在某些段正在实现某种运算时,另一些段却在实现另一种运算。

部件级流水线:把处理机中的部件进行分段,再把这些部件分段相互连接而成。它使得运算操作能够按流水方式进行。这种流水线也称为运算操作流水线。

处理机级流水线:又称指令流水线。它是把指令的执行过程按照流水方式进行处理,即把一条指令的执行过程分解为若干个子过程,每个子过程在独立的功能部件中执行。

处理机间流水线:又称为宏流水线。它是把多个处理机串行连接起来,对同一数据流进行处理,每个处理机完成整个任务中的一部分。前一个处理机的输出结果存入存储器中,作为后一个处理机的输入。

线性流水线:指各段串行连接、没有反馈回路的流水线。数据通过流水线中的各段时,每一个段最多只流过一次。

非线性流水线:指各段除了有串行的连接外,还有反馈回路的流水线。

顺序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。

乱序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成。这种流水线又称为无序流水线、错序流水线、异步流水线。

吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量。

流水线的加速比:使用顺序处理方式处理一批任务所用的时间与按流水处理方式处理同一批任务所用的时间之比。

流水线的效率:即流水线设备的利用率,它是指流水线中的设备实际使用时间与整个运行时间的比值。

数据相关:考虑两条指令i和j,i在j的前面,如果下述条件之一成立,则称指令j与指令i数据相关:

(1)指令j使用指令i产生的结果;

(2)指令j与指令k数据相关,而指令k又与指令i数据相关。

名相关:如果两条指令使用了相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。

控制相关:是指由分支指令引起的相关。它需要根据分支指令的执行结果来确定后面该执行哪个分支上的指令。

反相关:考虑两条指令i和j,i在j的前面,如果指令j所写的名与指令i所读的名相同,则称指令i和j发生了反相关。

输出相关:考虑两条指令i和j,i在j的前面,如果指令j和指令i所写的名相同,则称指令i和j发生了输出相关。

换名技术:名相关的两条指令之间并没有数据的传送,只是使用了相同的名。可以把其中一条指令所使用的名换成别的,以此来消除名相关。

结构冲突:因硬件资源满足不了指令重叠执行的要求而发生的冲突。

数据冲突:当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。

控制冲突:流水线遇到分支指令或其它会改变PC值的指令所引起的冲突。

定向:用来解决写后读冲突的。在发生写后读相关的情况下,在计算结果尚未出来之前,后面等待使用该结果的指令并不见得是马上就要用该结果。如果能够将该计算结果从其产生的地方直接送到其它指令需要它的地方,那么就可以避免停顿。

写后读冲突:考虑两条指令i和j,且i在j之前进入流水线,指令j用到指令i的计算结果,而且在i将结果写入寄存器之前就去读该寄存器,因而得到的是旧值。

读后写冲突:考虑两条指令i和j,且i在j之前进入流水线,指令j的目的寄存器和指令i 的源操作数寄存器相同,而且j在i读取该寄存器之前就先对它进行了写操作,导致i读到的值是错误的。

写后写冲突:考虑两条指令i和j,且i在j之前进入流水线,,指令j和指令i的结果单元(寄存器或存储器单元)相同,而且j在i写入之前就先对该单元进行了写入操作,从而导致写入顺序错误。这时在结果单元中留下的是i写入的值,而不是j写入的。

链接技术:具有先写后读相关的两条指令,在不出现功能部件冲突和V i冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。

分段开采:当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。

半性能向量长度:向量处理机的性能为其最大性能

R的一半时所需的向量长度。

向量长度临界值:向量流水方式的处理速度优于标量串行方式的处理速度时所需的向量长度的最小值。

3.2 指令的执行可采用顺序执行、重叠执行和流水线三种方式,它们的主要区别是什么?各有何优缺点。

答:(1)指令的顺序执行是指指令与指令之间顺序串行。即上一条指令全部执行完后,才能开始执行下一条指令。

优点:控制简单,节省设备。缺点:执行指令的速度慢,功能部件的利用率低。

(2)指令的重叠指令是在相邻的指令之间,让第k条指令与取第k+l条指令同时进行。重叠执行不能加快单条指令的执行速度,但在硬件增加不多的情况下,可以加快相邻两条指令以及整段程序的执行速度。与顺序方式相比,功能部件的利用率提高了,控制变复杂了。

(3)指令的流水执行是把一个指令的执行过程分解为若干个子过程,每个子过程由专门的功能部件来实现。把多个处理过程在时间上错开,依次通过各功能段,每个子过程与其它的子过程并行进行。依靠提高吞吐率来提高系统性能。流水线中各段的时间应尽可能相等

3.3 简述先行控制的基本思想。

答:先行控制技术是把缓冲技术和预处理技术相结合。缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲器,用以平滑它们的工作。预处理技术是指预取指令、对指令进行加工以及预取操作数等。

采用先行控制方式的处理机内部设置多个缓冲站,用于平滑主存、指令分析部件、运算器三者之间的工作。这样不仅使它们都能独立地工作,充分忙碌而不用相互等待,而且使指令分析部件和运算器分别能快速地取得指令和操作数,大幅度地提高指令的执行速度和部件的效率。这些缓冲站都按先进先出的方式工作,而且都是由一组若干个能快速访问的存储单元和相关的控制逻辑组成。

采用先行控制技术可以实现多条指令的重叠解释执行。

3.4 设一条指令的执行过程分成取指令、分析指令和执行指令三个阶段,每个阶段所需的时间分别为△t、△t和2△t 。分别求出下列各种情况下,连续执行N条指令所需的时间。

(1)顺序执行方式;

(2)只有“取指令”与“执行指令”重叠;

(3)“取指令”、“分析指令”与“执行指令”重叠。

解:(1)每条指令的执行时间为:△t+△t+2△t=4△t

连续执行N条指令所需的时间为:4N△t

(2)连续执行N条指令所需的时间为:4△t+3(N-1)△t=(3N+1)△t

(3)连续执行N条指令所需的时间为:4△t+2(N-1)△t=(2N+2)△t

3.5 简述流水线技术的特点。

答:流水技术有以下特点:

(1)流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现。因此,流水线实际上是把一个大的处理功能部件分解为多个独立的功能部件,并依靠它们的并行工作来提高吞吐率。

(2)流水线中各段的时间应尽可能相等,否则将引起流水线堵塞和断流。

(3)流水线每一个功能部件的前面都要有一个缓冲寄存器,称为流水寄存器。

(4)流水技术适合于大量重复的时序过程,只有在输入端不断地提供任务,才能充分发挥流水线的效率。

(5)流水线需要有通过时间和排空时间。在这两个时间段中,流水线都不是满负荷工作。

3.6 解决流水线瓶颈问题有哪两种常用方法?

答:细分瓶颈段与重复设置瓶颈段

3.7 减少流水线分支延迟的静态方法有哪些?

答:(1)预测分支失败:沿失败的分支继续处理指令,就好象什么都没发生似的。当确定分支是失败时,说明预测正确,流水线正常流动;当确定分支是成功时,流水线就把在分支指令之后取出的指令转化为空操作,并按分支目标地址重新取指令执行。

(2)预测分支成功:当流水线ID段检测到分支指令后,一旦计算出了分支目标地址,就开始从该目标地址取指令执行。

(3)延迟分支:主要思想是从逻辑上“延长”分支指令的执行时间。把延迟分支看成是由原来的分支指令和若干个延迟槽构成。不管分支是否成功,都要按顺序执行延迟槽中的指令。

3种方法的共同特点:它们对分支的处理方法在程序的执行过程中始终是不变的。它们要么总是预测分支成功,要么总是预测分支失败。

3.9列举出下面循环中的所有相关,包括输出相关、反相关、真相关。

for (i=2; i<100; i=i+1)

a[i]=b[i]+a[i] ;/* s1 */

c[i+1]=a[i]+d[i] ; /* s2 */

a[i-1]=2*b[i] ; /* s3 */

b[i+1]=2*b[i] ;/* s4 */

解:展开循环两次:

a[i] = b[i] + a[i] ; /* s1 */

c[i+1] = a[i] + d[i] ; /* s2 */

a[i-1] = 2 * b[i] ; /* s3 */

b[i+1] = 2 * b[i]

; /* s4 */ a[i+1] = b[i+1] + a[i+1] ; /* s1’ */ c[i+2] = a[i+1] + d[i+1] ; /* s2 ‘*/ a[i] = 2 * b[i+1] ; /* s3 ‘*/ b[i+2] = 2 * b[i+1] ; /* s4 ‘*/

输出相关:无 反相关:无 真相关:S1&S2

由于循环引入的相关:S4&S4’(真相关)、S1’&S4(真相关)、S3’&S4(真相关)、S1&S3’(输出相关、反相关)、S2&S3’(反相关)。

3.10 简述三种向量处理方式,它们对向量处理机的结构要求有何不同?

答 (1)横向处理方式:若向量长度为N ,则水平处理方式相当于执行N 次循环。若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水处理。 (2)纵向处理方式:将整个向量按相同的运算处理完毕之后,再去执行其他运算。适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成M-M 型的运算流水线。 (3)纵横处理方式:把长度为N 的向量分为若干组,每组长度为n ,组内按纵向方式处理,依次处理各组,组数为「N/n 」,适合流水处理。可设长度为n 的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成R-R 型运算流水线。

3.11 可采用哪些方法来提高向量处理机的性能? 答:可采用多种方法:

(1) 设置多个功能部件,使它们并行工作; (2) 采用链接技术,加快一串向量指令的执行; (3) 采用循环开采技术,加快循环的处理; (4) 采用多处理机系统,进一步提高性能。

3.12 有一指令流水线如下所示

出 50ns 50ns 100ns 200ns

(1) 求连续输入10条指令,该流水线的实际吞吐率和效率; (2) 该流水线的“瓶颈”在哪一段?请采取两种不同的措施消除此“瓶颈”。对于你所给

出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?

解:(1)

2200(ns)

2009200)10050(50t )1n (t T max

m

1

i i pipeline =?++++=?-+?=∑=

)(ns 220

1

T n

TP 1pipeline

-==

45.45%11

5

4400TP m

t

TP E m

1

i i

≈=?

=??

=∑= (2)瓶颈在3、4段。

? 变成八级流水线(细分)

850(ns)

50

9850t 1)(n t T max

m

1

i i pipeline =?+?=?-+?=∑=

)(ns 85

1

T n

TP 1pipeline

-==

58.82%17

10

8400TP m

ti

TP E m

1

i ≈=?

=??

=∑= ? 重复设置部件

)(ns 85

1

T n

TP 1pipeline

-==

58.82%17

10

8

85010

400E ≈=??=

3.13有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。如果每段经过一次所需要的时间都是t ?,问:

(1) 当在流水线的输入端连续地每t ?时间输入任务时,该流水线会发生什么情况? (2) 此流水线的最大吞吐率为多少?如果每t ?2输入一个任务,连续处理10个任务

时的实际吞吐率和效率是多少? (3) 当每段时间不变时,如何提高该流水线的吞吐率?仍连续处理10个任务时,其

吞吐率提高多少?

解:(1)会发生流水线阻塞情况。

(2)

54.35%

92

5045TP

E 2310

T n

Tp 23T 21TP pipeline

pipeline max ≈=??=??==?=?=t t

t t

(3)重复设置部件

t

t

??=??==75

1410

T n

TP pipeline

吞吐率提高倍数=

t

t ??2310

75=1.64

3.14 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t ,其余各段的时间均为△t ,而且流水线的输出可以直接返回输入端或 暂存于相应的流水寄存器中。现要在该流水线上计算

,画出其时空图,并计算其吞吐率、加速比和效率。

解:首先,应选择适合于流水线工作的算法。对于本题,应先计算A 1+B 1、A 2+B 2、A 3+B 3和A 4+B 4;再计算(A 1+B 1) ×(A 2+B 2)和(A 3+B 3) ×(A 4+B 4);然后求总的结果。

其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。

由图可见,它在18个△t 时间中,给出了7个结果。所以吞吐率为:

乘法

加法

)(4

1

i i i B A +∏

=

t

? 14 时间

输 入

A 1

B 1 A 2 B 2 A 3 B 3 A 4 B 4

A B C

D

A ×

B

C ×D

t

TP ?=

817

如果不用流水线,由于一次求积需3△t ,一次求和需5△t ,则产生上述7个结果共需(4×5+3×3)△t =29△t 。所以加速比为:

该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得:

3.15 动态多功能流水线由6个功能段组成,如下图:

其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns ,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算:

∑=5

1

i i

i

i z

y x

(1) 画出时空图; (2) 计算实际的吞吐率、加速比和效率。 解:机器一共要做10次乘法,4次加法。

乘法

加法

61

.18192=??=t

t S 22

3.01853

354=??+?=E

3.16 在MIPS流水线上运行如下代码序列:

LOOP:LW R1,0(R2)

DADDIU R1,R1,#1

SW R1,0(R2)

DADDIU R2,R2,#4

DSUB R4,R3,R2

BNEZ R4,LOOP

其中:R3的初值是R2+396。假设:在整个代码序列的运行过程中,所有的存储器访问都是命中的,并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”。问:

(1)在没有任何其它定向(或旁路)硬件的支持下,请画出该指令序列执行的流水线时空图。假设采用排空流水线的策略处理分支指令,且所有的存储器访问都命中

Cache,那么执行上述循环需要多少个时钟周期?

(2)假设该流水线有正常的定向路径,请画出该指令序列执行的流水线时空图。假设采用预测分支失败的策略处理分支指令,且所有的存储器访问都命中Cache,那

么执行上述循环需要多少个时钟周期?

(3)假设该流水线有正常的定向路径和一个单周期延迟分支,请对该循环中的指令进行调度,你可以重新组织指令的顺序,也可以修改指令的操作数,但是注意不能

增加指令的条数。请画出该指令序列执行的流水线时空图,并计算执行上述循环

所需要的时钟周期数。

解:

寄存器读写可以定向,无其他旁路硬件支持。排空流水线。

指令12345678910111213141516171819202122 LW IF ID EX M WB

DADDIU IF S S ID EX M WB

SW IF S S ID EX M WB

DADDIU IF ID EX M WB

DSUB IF S S ID EX M WB

BNEZ IF S S ID EX M WB

LW IF S S IF ID EX M WB

第i次迭代(i=0..98)开始周期:1+(i×17)

总的时钟周期数:(98×17)+18=1684

有正常定向路径,预测分支失败。

指令12345678910111131415

LW IF ID EX M WB

DADDIU IF ID S EX M WB

SW IF S ID EX M WB

DADDIU IF ID EX M WB

DSUB IF ID EX M WB

BNEZ IF ID EX M WB

LW IF miss miss IF ID EX M WB

第i次迭代(i=0..98)开始周期:1+(i×10)

总的时钟周期数:(98×10)+11=991

有正常定向路径。单周期延迟分支。

LOOP: LW R1,0(R2)

DADDIU R2,R2,#4

DADDIU R1,R1,#1

DSUB R4,R3,R2

BNEZ R4,LOOP

SW R1,-4(R2)

第i次迭代(i =0..98)开始周期:1+(i ×6 )

总的时钟周期数:(98×6)+10=598

指令1234567891011

LW IF ID EX M WB

DADDIU IF ID EX M WB

DADDIU IF ID EX M WB

DSUB IF ID EX M WB

BNEZ IF ID EX M WB

SW IF ID EX M WB

LW IF ID EX M WB

3.17 假设各种分支指令数占所有指令数的百分比如下:

现有一条段数为4的流水线,无条件分支在第二个时钟周期结束时就被解析出来,而条件分支要到第三个时钟周期结束时才能够被解析出来。第一个流水段是完全独立于指令类型的,即所有类型的指令都必须经过第一个流水段的处理。请问在没有任何控制相关的情况下,该流水线相对于存在上述控制相关情况下的加速比是多少?

解:没有控制相关时流水线的平均CPI =1 存在控制相关时:由于无条件分支在第二个时钟周期结束时就被解析出来,而条件分支 要到第3个时钟周期结束时才能被解析出来。所以:

(1)若使用排空流水线的策略,则对于条件分支,有两个额外的stall ,对无条件分支,有一个额外的stall :

CPI = 1+20%*2+5%*1 = 1.45 加速比S=CPI/1 = 1.45

(2) 若使用预测分支成功策略,则对于不成功的条件分支,有两个额外的stall ,对无条件分支和成功的条件分支,有一个额外的stall 1:

CPI = 1+20%*(60%*1+40%*2) +5%*1 = 1.33 加速比S=CPI/1 = 1.33

(3)若使用预测分支失败策略,则对于成功的条件分支,有两个额外的stall ;对无条件分支,有一个额外的stall ;对不成功的条件分支,其目标地址已经由PC 值给出,不必等待,所以无延迟:

CPI = 1+20%*(60%*2 + 40%*0) +5%*1 = 1.29 加速比S=CPI/1 = 1.29

3.18 在CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需多少拍才能得到全部结果? V 0←存储器 (从存储器中取数:7拍) V 2←V 0+V 1 (向量加:3拍)

V 3←V 2

解:通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就是各功能流水线由空到满的时间,具体过程如下图所示。要得到全部结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。

(拍)

=+)=-+((拍))=++)+(++)+(++)+(+=(通过总共通过866323164T T 2312114113117T

3.19 某向量处理机有16个向量寄存器,其中V 0~V 5中分别放有向量A 、B 、C 、D 、E 、F ,向量长度均为8,向量各元素均为浮点数;处理部件采用两条单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。采用类似于CARY-1的链接技术,先计算(A+B )*C ,在流水线不停流的情况下,接着计算(D+E )*F 。

(1) 求此链接流水线的通过时间?(设寄存器入、出各需1拍) (2) 假如每拍时间为50ns ,完成这些计算并把结果存进相应寄存器,此处理部件的实

际吞吐率为多少MFLOPS ?

解:(1)我们在这里假设A +B 的中间结果放在V6中,(A +B )×C 地最后结果放在V7中,D +E 地中间结果放在V8中,(D +E )×F 的最后结果放在V9中。具体实现参考下图:

通过时间应该为前者((A +B )×C )通过的时间:

T 通过= (1+2+1)+(1+3+1) =9(拍)

(2)在做完(A +B )×C 之后,作(C +D )×E 就不需要通过时间了。 V6←A +B

V7←V 6×C V8←D +E

V9←V 8×F

S

26.67MFLOP T

32TP 1200(ns)

24818T T ====+=(拍))-+(通过

Intel系列CPU流水线技术的发展与展望流水线技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实 现技术。在计算机中,把一个重复的过程分解为若干子过程,每个子过程由专门的功能部件来实现。将多个处理过程在时间上错开,依次通过各功能段,这样,每个子过程就可以与其他子过程并行进行。其中,流水线中的每个子过程及其功能部件称为流水线的级或段,段与段相互连接形成流水线。流水线的段数称为流水线的深度。把流水线技术应用于指令的解释执行过程,就形成了指令流水线。其中可以把指令的执行过程分为取指令、译码、执行、存结果4个子过程。把流水线技术应用于运算的执行过程,就形成了运算操作流水线,也称为部件级流水线。 Inter Pentium 系列中采用的流水线技术 流水线技术早在Intel的X86芯片中均得到了实现。而Pentium系列CPU产品更是一个高级的超标量处理器。奔腾处理器可以在一个时钟周期内完成两条指令,一个流水线完成一条指令。具有MMX技术的奔腾处理器为整型流水线增加了一个额外的处理阶段。在486芯片中,一条指令一般被划分为五个标准的部分,奔腾亦是如此,而在P6中,由于采用了近似于RISC的技术,一条指令被划分成了创纪录的十四个阶段,这极大地提高了流水线的速度。P6系列处理器使用动态执行结构,该结构通过硬件寄存器重命名和分支预测的方法,将乱序执行和推测执行合成在一起。奔腾Ⅲ处理器使用了P6中的动态执行技术,增加了超标量双流水线结构、分支预测技术、通过乱序来优化指令流水线、将指令划分为更细的阶段。而奔腾Ⅳ新增的技术有使用高级动态执行、执行跟踪缓存、快速执行引擎、超长管道处理技术、超线程技术。它基本的指令流水线长度达到了20级,更长的流水线可以使处理器运行在更高的主频下,从而提高处理器的性能,但有可能带来一些指令执行上的延迟。 提高流水线性能的方法及相关技术 从不同的角度和观点,可以把流水线分成多种不同的种类。按照流水线所完成的功能来分,可以分为单功能流水线和多功能流水线。按照同一时间段内各段之间的连接方式来对多功能流水线进一步的分类,可以分成静态流水线和动态流水线。若是按照流水的级别来分类,则可以分成部件级、处理机级和处理机间流水线。若按照流水线中是否有回馈回路来分,又可以分为线性流水线和非线性流水线。按照任务流入和流出的顺序是否相同可以分为顺序流水线和乱序流水线。 衡量一个流水线性能的主要指标有吞吐率、加速比和效率。吞吐率是指在单位时间内流水线所完成的任务数量或者输出的结果数量。完成一批任务,不使用流水线所花的时间与使用流水线所用时间直比即为流水线的加速比。流水线的效

流水线与生产线

流水线与生产线 流水线 一、流水线技术的由来: 从前在英格兰北部的一个小镇里,有一个名叫艾薇的人开的鱼和油煎土豆片商店。在店里面,每位顾客需要排队才能点他(她)要的食物(比如油炸鳕鱼,油煎土豆片,豌豆糊,和一杯茶)。然后每个顾客等着盘子装满后坐下来进餐。 艾薇店里的油煎土豆片是小镇中最好的,在每个集市日中午的时候,长长的队伍都会排出商店。所以当隔壁的木器店关门的时候,艾薇就把它租了. 他们没办法再另外增加服务台了;艾薇的鳕鱼和伯特的油煎土豆片是店里面的主要卖点。但是后来他们想出了一个聪明的办法。他们把柜台加长,艾薇,伯特,狄俄尼索斯和玛丽站成一排。顾客进来的时候,艾薇先给他们一个盛着鱼的盘子,然后伯特给加上油煎土豆片,狄俄尼索斯再给盛上豌豆糊,最后玛丽倒茶并收钱。顾客们不停的走动;当一个顾客拿到豌豆糊的同时,他后面的已经拿到了油煎土豆片,再后面的一个已经

拿到了鱼。一些穷苦的村民不吃豌豆糊-但这没关系,这些顾客也能从狄俄尼索斯那里得个笑脸。 这样一来队伍变短了,不久以后,他们买下了对面的商店又增加了更多的餐位。这就是流水线。将那些具有重复性的工作分割成几个串行部分,使得工作能在工人们中间移动,每个熟练工人只需要依次的将他的那部分工作做好就可以了。虽然每个顾客等待服务的总时间没变,但是却有四个顾客能同时接受服务,这样在集市日的午餐时段里能够照顾过来的顾客数增加了三倍。 二、流水线定义:后道包装流水线 流水线是在一定的线路上连续输送货物搬运机械,又称输送线或者输送机。按照输送系列产品大体可以分为:皮带流水线、板链线、倍数链线、插件线、网带线、悬挂线及滚筒流水线这七类流水线。一般包括牵引件、承载构件、驱动装置、张紧装置、改向装置和支承件等。输送机可进行水平、倾斜和垂直输送,也可组成空间输送线路,输送线路一般是固定的。流水线输送能力大,运距长,还可在输送过程中同时完成若干

加快机器语言的解释过程提高机器的运算速度是设计计算机的基本任务之一。这可以通过两个途径来实现。一个途径是提高器件的速度,采用更好的算法,增加指令内各微操作的并行程度,减少解释过程所需要的拍数等多项措施来加快机器指令的解释。另一个途径则是采用重叠和流水方法,同时解释两条、多条以至整段程序,从而加快整个机器语言程序的解释。流水线技术是目前广泛应用于微处理芯片中的一项关键技术,Intel公司更是这项技术在微处理器中应用的首先实现者。这里主要结合Intel公司的Pentium系列微处理芯片(CPU)对流水线技术的原理及实现技术作了阐述,也附带介绍了超流水线、超标量以及向量流水处理的重要概念。 流水线相关概念和问题 指令的三种控制方法:顺序方法、重叠方式、流水方式。顺序方法是指各条机器指令之间顺序串行地执行,而且每条机器指令内部的各个微指令也是串行执行。这种方法虽然控制简单但速度上不去,机器各部件的利用率低。重叠方式是指在解释第K条指令的操作完成之前就开始解释第K+1条指令。通常都是采用一次重叠,即在任何时候,指令分析部件和指令执行部件都只有相邻两条指令在重叠解释。这种方式使指令的解释速度有所提高,控制也不太复杂但会出现冲突、转移、相关等问题,这些都需要在设计时想办法解决。流水方式就是把并行性或并发性镶嵌到计算机系统里的一中形式。它是把重叠的顺序处理过程分解为若干过程,每个过程能在专用的独立模块上有效地并发工作的技术。在概念上“流水”可以看成“重叠”的延伸。不同的是“一次重叠”只是把一条指令的解释分解成两个子过程,而“流水”则是分解为更多的子过程。 流水线的性能的主要指标是吞吐率(throughput)、效率(efficiency)、流水深度(deep)以及加速比(speedup)。 从不同的级别上可对流水线进行不同的分类,这些“分类”对我们理解流水线的概念有着重要的作用。下面就从不同角度对流水线的份类进行讲述: 1 从流水的级别上,可分为部件级、处理机级以及系统级的流水。 2 从流水的功能上,可分为但功能流水线和多功能流水线。 3 从流水的联接上,可分为静态流水线和动态流水线。 4 从流水是否有反馈回路,可分为线性流水线和非线性流水线。 5 从流水的流动顺序上,可分为同步流水线和异步流水线。 6 从流水线的数据表示上,可分为标量流水线和向量流水线。如果机器没有向量数据表示,只对标量数据进行流水处理就称为标量流水线。如果机器具有向量数据表示,设置了相应的向量运算硬件和向量处理指令,能流水地对向量的各元素并行处理就称为向量流水线。 RISC中的流水技术 一、超流水线技术 超流水线(Super Pipeline)技术是RISC采用的一种并行处理技术。他通过细化流水,增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质就是以时间换取空间。超流水机器的特征就是在所有的功能单元都才用流水,并有更高的时钟频率和更深的流水深度。 二、超标量技术 超标量(Super Scalar)技术是RISC采用的有一种处理技术。它通过内装多条流

3.3.2流水线的数据相关 1. 数据相关简介 当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使得读/写操作顺序不同于它们非流水实现的顺序,这将导致数据相关。首先让我们考虑下列指令在流水线中的执行情况:ADD R1,R2,R3 SUB R4,R5,R1 AND R6,R1,R7 OR R8,R1,R9 XOR R10,R1,R11 ADD指令后的所有指令都要用到ADD指令的计算结果,如图3.3.4所示,ADD 指令在WB 段才将计算结果写入寄存器R1 中,但是SUB 指令在其ID 段就要从寄存器R1 中读取该计算结果,这种情况就叫做数据相关。除非有措施防止这一情况出现,否则SUB 指令读到的是错误的值。所以,为了保证上述指令序列的正确执行,流水线只好暂停ADD 指令之后的所有指令,直到ADD 指令将计算结果写入寄存器R1 之后,再启动ADD 指令之后的指令继续执行。

从图3.3.4还可以看到,AND 指令同样也将受到这种相关关系的影响。ADD 指令只有到第五个时钟周期末尾才能结束对寄存器R1 的写操作,所以AND 指令在第四个时钟周期从寄存器R1 中读出的值也是错误的。而XOR 指令则可以正常操作,因为它是在第六个时钟周期读寄存器R1 的内容。 另外,利用DLX流水线的一种简单技术,可以使流水线顺利执行OR 指令。这种技术就是:在DLX 流水线中,约定在时钟周期的后半部分进行寄存器文件的读操作,而在时钟周期的前半部分进行寄存器文件的写操作。在本章的图中,我们将寄存器文件的边框适当地画成虚线来表示这种技术。 2. 通过定向技术减少数据相关带来的暂停 图3.3.4中的数据相关问题可以采用一种称为定向(也称为旁路或短路)的简单技术来解决(动画演示)。定向技术的主要思想是:在某条指令(如图3.3.4中的ADD 指令)产生一个计算结果之前,其它指令(如图3.3.4中的SUB 和AND 指令)并不真正需要该计算结果,如果能够将该计算结果从其产生的地方(寄存器文件EX/MEM)直接送到其它指令需要它的地方(ALU 的输入寄存器),那么就可以避免暂停。基于这种考虑,定向技术的要点可以归纳为: (1) 寄存器文件EX/MEM 中的ALU 的运算结果总是回送到ALU 的输入寄存器。

流水线技术协议 一、技术设计依据 1.输送物:托盘及电机 2重量及尺寸:重量≤3000KG 托盘尺寸:1250mm×1250mm输送速度:3m/min 3.使用环境为常温;室内、常温 4.空气湿度:90%-95%RH 5.电源电压:380V±10%50HZ 二、技术条款 1.甲方提出设备方案、工艺布局、主要技术要求,并监督其实施。工程完 结后按照本协议组织全面验收。 2.甲方负责各有关土建工作,提供现场安装便利条件等。 3.负责将电源引到中控室的低压配电柜内、气源引到需的设备附近。 电源:3P,380V±10,50Hz,五线制;气源要求:压力:0.4~0.6Mpa;(一)、设备布局方案见(布局方案图),工艺流程: (二).设备主要技术参数:(具体精确尺寸见图纸) 1.1#链式输送机(1套): 1)输送面有效宽度为1270mm,线体长为4860mm,工作面高度为700±25mm,护边高于工作面40mm。 2)线体﹑机架均采用槽钢制造,线体表面喷塑处理。 3)输送载体选用倍速链条,链条节距为50.8mm。 4)输送机速度V=3m/min,,选用SEW减速电机。 5)线体配独立控制按钮,以便在工位需求时进行操作启停。 6)线体两侧加封板,材料采用碳钢(厚度1.2MM),表面喷漆处理。

动力辊道旋转台(6(6套): 2.1800动力辊道旋转台 1)长度为1725mm,有效宽度为1270mm,工作面高度700±25mm,护边高于工作面40mm。 2)护边、机架均采用槽钢制造,,线体表面喷塑处理。 3)滚筒采用直径φ76碳钢双链轮滚筒。 4)输送机速度V=3m/min,选用SEW减速电机。 5)旋转机构为直线水平推动滚道180度。 动力辊道旋转台(9(9套): 3.900动力辊道旋转台 1)长度为1725mm,有效宽度为1270mm,工作面高度700±25mm,护边高于工作面40mm。 2)护边、机架均采用槽钢制造,,线体表面喷塑处理。 3)滚筒采用直径φ76碳钢双链轮滚筒。 4)输送机速度V=3m/min,选用SEW减速电机。 5)旋转机构为直线水平推动滚道90度。 4.2#链式输送机(1套): 1)输送面有效宽度为1270mm,线体长为4650mm,工作面高度为700±25mm,护边高于工作面40mm。 2)线体﹑机架均采用槽钢制造,线体表面喷塑处理。 3)输送载体选用倍速链条,链条节距为50.8mm。 4)输送机速度V=3m/min,,选用SEW品牌减速电机。 5)线体配独立控制按钮,以便在工位需求时进行操作启停。 6)线体两侧加封板,材料采用碳钢(厚度1.2MM),表面喷漆处理。 5.3#链式输送机(1套): 1)输送面有效宽度为1270mm,线体长为4330mm,工作面高度为700±25mm,

流水线技术规范 超级流水线 超级流水线(SuperPipeline)又叫做深度流水线,它是提高cpu速度通常采取的一种技术。CPU处理指令是通过Clock来驱动的,每个clock完成一级流水线操作。每个周期所做的操作越少,需要的时间久越短,时间越短,频率就可以提得越高。超级流水线就是将cpu处理指令是得操作进一步细分,增加流水线级数来提高频率。频率高了,当流水线开足马力运行时平均每个周期完成一条指令(单发射情况下),这样cpu处理得速度久提高了。当然,这是理想情况下,一般是流水线级数越多,重叠执行的执行就越多,那么发生竞争冲突得可能性就越大,对流水线性能有一定影响现在很多cpu都是将超标量和超级流水线技术一起使用,例如pentiumIV,流水线达到20级,频率最快已经超过3GHZ。教科书上用于教学的经典MIPS 只有5级流水。 超标量 将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用率的技术叫做标量流水技术。超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理。在单流 流水线技术

水线结构中,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能发射(issue)或退休(retire)一条指令。超级标量结构的cpu支持指令级并行,每个周期可以发射多条指令(2-4条居多)。可以使得cpu的 IPC(InstructionPerClock)>,从而提高cpu处理速度。超级标量机能同时对若干条指令进行译码,将可以并行执行的指令送往不同的执行部件,在程序运行期间,由硬件(通常是状态记录部件和调度部件)来完成指令调度。超级标量机主要是借助硬件资源重复(例如有两套译码器和ALU等)来实现空间的并行操作。熟知的pentium系列(可能是p-II开始),还有SUNSPARC 系列的较高级型号,以及MIPS若干型号等都采用了超级标量技术。 超长指令字 超常指令字(VLIW:VeryLongInstructionWord)是由美国Yale大学教授Fisher提出的。它有点类似于超级标量,是一条指令来实现多个操作的并行执行,之所以放到一条指令是为了减少内存访问。通常一条指令多达上百位,有若干操作数,每条指令可以做不同的几种运算。那些指令可以并行执行是由编译器来选择的。通常VLIW机只有一个控制器,每个周期启动一条长指令,长指令被分为几个字段,每个字段控制相应的部件。由于编译器需要考虑数据相关性,避免冲突,并且尽可能利用并行,完成指令调度,所以硬件结构较简单。 VLIW机器较少,可能不太容易实现,业界比较有名的VLIW公司之一是Transmeta,在加州硅谷SantaClara(硅谷圣地之一,还有SanJose,PaloAlto)。它做的机器采用X86指令集,VLIW实现,具体资料可以去访问公司的网站。 向量机 平时接触的计算机都是标量机,向量机都是大型计算机,一般用于军事工业,气象预报,以及其他大型科学计算领域,这也说明了向量机都很贵。国产的银河计算机就是向量机普通的计算机所做的计算,例如加减乘

PPT第二张 超标量流水线思想:多条流水线并行工作,提高指令级并行度。 超标量流水线由12个功能段组成:以RISC指令缓冲池(再定序缓冲器)为核心实现。 PPT第三张 IFU1 取指单元段1 每次从L1 I-Cache取一32字节的行装入预取流式缓冲器。 IFU2 取指单元段2 每次从预取流式缓冲器取16字节块; 在16字节中标志指令边界(预译码); 若发现转移指令,指令地址交BTB进行动态预测(针对命中的转移指令,不命中时的预测留给静态转移预测完成)。 IFU3取指单元段3 每次旋转送来的16字节中3条指令,按一定次序(复杂/简单、简单、简单)同时递交给DEC1。 取指段特征:各段不按时钟动作,而是需要时产生动作;指令按序流动。 DEC1 译码段1 每次3个译码器同时可将3条IA指令译码成最多6个RISC的微操作(μop);微操作翻造由MIS实现。 DEC2 译码段2 每次最多接收6个μop,并按原始程序顺序排成队列; 若μop为转移型且BTB未命中(BTB未处理),则交静态转移预测机构(替换/生成BTB 项、预测转移方向)。 静态预测转移规则: 对转移地址非相对PC方式,属返回/调用指令的预测转移,否则不转移; 对转移地址是相对PC,地址增加的预测不转移,否则转移。 RAT 寄存器重命名和分配段(按序发射) 每时钟取3个μop,检查是否使用IA寄存器,若有则转为内部寄存器(ROB项的值域段,又称别名寄存器),然后将3个μop送ROB。 此段消除了绝大多数RAW、W AW、W AR数据相关。 ROB再定序缓冲器段 ROB(有40个项的环形缓冲器)接收μop; 负责管理每项的各种标志位(如是否已到保存站等)。 译码段特征:CISC→RISC,指令按序流动, 需要时动作→按时钟发射。 DIS派遣段(保存站RS实现) RS能以任意顺序从ROB拷贝μop到相应端口; RS从端口调度到ALU的原则是操作数已就绪(已排除RAW相关)且执行单元可用(指令执行完时); 对MEM的读、写的动态MEM地址判别在DIS段实现。

10.1指令流水 一、如何提高机器速度 1. 提高访存速度 2. 提高I/O 和主机之间的传送速度?提高整机处理能力高速芯片 Cache 多体并行 I/O 处理机 DMA 多总线 通道 高速器件 改进系统结构,开发系统的并行性 中断 3. 提高运算器速度高速芯片 改进算法 快速进位链

二、系统的并行性 时间上互相重叠 2. 并行性的等级 指令级(指令之间) (指令内部) 过程级(程序、进程)两个或两个以上事件在同一时刻发生 两个或两个以上事件在同一时间段发生 并行 1. 并行的概念 粗粒度软件实现细粒度 硬件实现 并发同时

取指令3执行指令3三、指令流水原理 2. 指令的二级流水 1. 指令的串行执行 取指令取指令部件 完成 总有一个部件空闲 指令预取 若取指和执行阶段时间上完全重叠… 执行指令 执行指令部件完成 取指令1执行指令1 取指令2执行指令2 取指令3 执行指令3 取指令2执行指令2 取指令1执行指令1

必须等上条指令执行结束,才能确定下条指令的地址, 造成时间损失 3. 影响指令流水效率加倍的因素 (1) 执行时间> 取指时间 (2) 条件转移指令对指令流水的影响 解决办法? 取指令部件 指令部件缓冲区 执行指令部件 猜测法

4. 指令的六级流水 串行执行 6 ×9 =54个时间单位完成一条指令 6 个时间单位 CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI 指令1指令2指令3指令4 指令5指令6指令7指令8 指令9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 t

第五章标量处理机与流水线 选择题25,简答题10,演算题15 1 选择题 ★ 1.假设一条指令的执行过程可以分为“取指令”、“分析”和“执行”三段,每 一段的执行时间分别为t?、t? 3,顺序执行n条指令至少需要花费的 2和t? 时间为: A. t 3 n? B. t 2 n? C. t n? 6 D. t n? 答案:C ★★ 2.假设一条指令的执行过程可以分为“取指令”、“分析”和“执行”三段,每 一段的执行时间均为t?,连续执行n条指令所需要花费的最短时间约为(假设仅有“取指令”和“执行”可重叠并假设n足够大): A. t 3 n? B. t 2 n? 3 C. t n? 2 D. t n? 答案B 3.假设一条指令的执行过程可以分为“取指令”、“分析”和“执行”三段,每 一段的执行时间均为t?,连续执行n条指令所需要花费的最短时间约为(假设仅有“取指令”和“分析”可重叠并假设n足够大): A. t 3 n? B. t 2 n? 3 C. t n? 2 D. t n? 答案B ★★ 4.假设一条指令的执行过程可以分为“取指令”、“分析”和“执行”三段,每 一段的执行时间分别为t?、t? 3,连续执行n条指令所需要花费的最 2和t? 短时间约为(假设仅有“取指令”和“执行:”可重叠并假设n足够大): A. t 6 n? B. t 5 n? C. t 3 n?

D. t n? 答案B ★★ 5.假设一条指令的执行过程可以分为“取指令”、“分析”和“执行”三段,每 一段分别只有一个部件可供使用并且执行时间分别为t?、t? 3,连续 2和t?执行n条指令所需要花费的最短时间约为(假设“取指令”、“分析”和“执行”可重叠并假设n足够大): A. t 6 n? B. t 2 n? C. t 3 n? D. t n? 答案C ★★ 6.看下述程序段: k:R0=R1×R4 k+1:R6=R5+1 k+2:R2=R0×R3 k+3:R3=R4-1 k+4:R2=R5 K+5:…… 下列哪个数据相关没有在上述程序段中发生 A. 先写后读相关 B. 写-写相关 C. 先读后写相关 D. 以上都不对 答案:D ★ 7.看下述程序段: k:R5=R2 k+1:R0=R1×R4 k+2:R2=R5+1 k+3:R4=R0×R3 k+4:R3=R4-1 K+5:…… k和k+2之间发生的是什么数据相关 I. 先写后读相关 II.写-写相关 III. 先读后写相关 A.只有I B.只有I、II C.只有I、III D.以上都不对 答案:C ★

第三章流水线、组成技术和柔性制造系统 学习目的:了解流水线的分类、组成技术的背景、柔性制造技术的概念。掌握流水线生产的特点、流水线组成的几个主要问题、自动线组织的优点、成组技术的定义、成组技术的主要内容。熟练掌握流水线的节拍和工序同期化、柔性制造系统的组成。 第一节流水线生产 一、流水线概述 再按对象专业化形式组织生产单位的基础上进一步提高,就可组成流水线生产。所谓流水线生产是指劳动对象按规定的工艺路线、生产速度、连续不断地通过各个工作地,顺序进行加工,并出产产品(零件)的一种生产组织形式。流水线的生产示意图如图3-1所示。 历史上的流水线对生产管理发展起过很大的作用。 图3-1 流水线生产示意图 (一)流水线生产的主要特点 (1)工作的专业化程度高,每一工作地只固定完成一道或少数几道工序。 (2)工作地按工艺顺序排列,劳动对象在工序间作单向移动。 (3)节奏性强,按规定的节拍生产产品。所谓节拍,是指流水线上前后两件产品之间间隔。节拍是流水线生产的一个重要参数,是流水线生产企业的指挥棒,企业的一切生产活动都围绕着节拍来组织。某压缩机制造企业,其装配流水线的节拍为13秒,这意味着全厂的生产活动的节奏,均以此为指标,即它所有的零部件生产都必须以此为节奏,甚至包括原料的采购等。 (4)流水线上各工序之间生产能力是平衡的,成比例的。 (二)组织流水线生产的条件 (1)产品结构和工艺相对稳定。 (2)制品要有足够大的产量,以保证流水线各项工作有充分的负荷。 (3)制品加工个工序能细分和合并,能达到工序同期化。工序同期化是指流水线上各工序的时间定额与其生产节拍相等或成倍数关系。 (三)流水线的分类 1. 按流水线上生产对象的种类划分 (1)单一对像流水线。它是固定生产一种产品或零件,也叫不变流水线。 (2)多对象流水线。固定生产几种结构上、工艺上相似的产品或零件。从劳动对象轮换方式看,多对象流水线又可分为可变流水线、成组流水线和混合流水线。可变流水线是成批轮番地生产固定在流水线上的几种加工对象,当变换生产对象时,流水线上的设备和工装需要调整。成组流水线是同时或者顺序地生产固定在流水线上的几种加工对象;变换生产对象时,不需要重新调整设备和工装。混合流水线是在同一时间内混合生产多个制品,单要遵循一定的投产顺序,变换品种时,基本上不需要重新调整设备和工装。

Intel系列CPU的流水线技术的发展 流水线技术一开始就是在巨型机、大型机上应用,后来Intel公司把这项技术运用于微处理器,这项技术的根本目的就是合理利用现有硬件,提高CPU处理能力。由于使用多种技术包括硬气件发展提高了微处理的运算速度,同时也拓展了微型机的应用范围。随着硬气件的发展以后还会出现这种“自上向下”的发展,今天我们使用的微型机就是往日的巨型机、大型机。流水线技术早在 Intel 的 X86 芯片中均得到了实现。流水线的使用使 CPU 的性能得到了很大的提升,而 Pentium 系列 CPU 产品更是一个高级的超标量处理器。 在Pentium III 的时候主要采用的技术1. 采用超标量双流水线结构超标量流水线设计是Pentium 微处理器技术的核心。所谓超标量就是处理器内部含有多个执行单元来完成多条指令的同时执行。Pentium 有两条分别称为U 和V 的指令流水线,各自有独立的算术逻辑单元ALU 及高速缓存结构。这种双流水线并行作业的方式,使得Pentium 在每个时钟周期内可同时执行两条指令。此外,还有一个执行单元,保证同时完成一条浮点运算指令。在Pentium III 时采用3 条独立的12 级超标量流水线。2. 分支预测技术为了减少由于转移导致流水线的效率损失,Pentium 采用分支预测技术来动态预测指令的目标地址,从而节省了CPU 的执行时间。通常在用户程序中包含不少的条件转移指令,在流水线计算机中,这些转移指令由于产生分支可能使予取和予译码指令作废。Pentium 内部有两个予取指令缓冲队列,在执行条件转移指令前,一个以顺序方式予取指令,另一个以转移方式予取指令,后者也称作分支目标缓冲器BTB(Branch Target Buffer),这是一个小的cache,它基于转移指令,尤其是循环转移的固有特点,可以认为在大多数情况下,当一条转移指令被再次执行时,其成功与否及转移目标与上次相同。据此可造动态的分支目标预测硬件。BTB 是一种效果较好的硬件机制,统计表明BTB 的容量较大时(如超过256 项)预测准确率可达90%。通过这种动态分支预测技术,不管是否产生转移,所需指令都在执行前予取好。3. 通过乱序来优化指令流水线在执行中采取了无序执行(out-of-order processing)技术。即当某条指令需要一些数据而未能立即执行完毕时,它将被剔出流水线并等待数据,CPU 则马上执行下条指令,就好比在装配线上发现某件产品不太合格,而被淘汰,等待返工一个道理。这样,可以防止一条指令不能执行而影响了整个流水线的效率。 随着CPU 频率不断地攀升,Intel 总是在自己某个核心的处理器到达极限之时采用新的、更长流水线的核心来消除频率的瓶颈(流水线越长,频率能更高)。但是这样做势必会带来一系列的问题。首先,由于现有芯片制造工艺的限制,频率的提升带来高功耗、高发热量的问题。尽管流水线增长,频率提升的空间相应增大,但是处理器频率提升的其它瓶颈却无法解决。而且过长的流水线意味着更加复杂的内部结构,生产的良品率也难以保证。其次,在CPU 的工作中,指令往往不是孤立的,许多指令按一定的顺序执行才能完成一个任务。而一旦某个指令在运算过程中发生了错误,或者执行了没有用的指令,那

第3章流水线技术 3.1解释下列术语 流水线:将一个重复的时序过程,分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其它子过程同时执行。 单功能流水线:指流水线的各段之间的连接固定不变、只能完成一种固定功能的流水线。 多功能流水线:指各段可以进行不同的连接,以实现不同的功能的流水线。 静态流水线:指在同一时间内,多功能流水线中的各段只能按同一种功能的连接方式工作的流水线。当流水线要切换到另一种功能时,必须等前面的任务都流出流水线之后,才能改变连接。 动态流水线:指在同一时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能的流水线。它允许在某些段正在实现某种运算时,另一些段却在实现另一种运算。 部件级流水线:把处理机中的部件进行分段,再把这些部件分段相互连接而成。它使得运算操作能够按流水方式进行。这种流水线也称为运算操作流水线。 处理机级流水线:又称指令流水线。它是把指令的执行过程按照流水方式进行处理,即把一条指令的执行过程分解为若干个子过程,每个子过程在独立的功能部件中执行。 处理机间流水线:又称为宏流水线。它是把多个处理机串行连接起来,对同一数据流进行处理,每个处理机完成整个任务中的一部分。前一个处理机的输出结果存入存储器中,作为后一个处理机的输入。 线性流水线:指各段串行连接、没有反馈回路的流水线。数据通过流水线中的各段时,每一个段最多只流过一次。 非线性流水线:指各段除了有串行的连接外,还有反馈回路的流水线。 顺序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。 乱序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成。这种流水线又称为无序流水线、错序流水线、异步流水线。 吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量。 流水线的加速比:使用顺序处理方式处理一批任务所用的时间与按流水处理方式处理同一批任务所用的时间之比。 流水线的效率:即流水线设备的利用率,它是指流水线中的设备实际使用时间与整个运行时间的比值。

浅谈指令生产流水线技术 Intel公司的X86序列CPU以及其它公司所生产的兼容产品,是目前世界上个人电脑中装机最多的芯片。每当各种媒体介绍或评价这类CPU时,经常会提到诸如“流水线”、“乱序执行”和“分枝预测”等专业术语,尽管不少朋友也知道这些都是CPU使用的先进技术,但毕竟比什么主频、外频等难理解多了。所以我就对经常出现在CPU特性表中的专业术语谈谈自己的理解,以供其他电脑爱好者参考。 1、IA一32&IA-64 IA是英语“英特尔体系/Intel Architecture”的缩写。这是因为目前使用的CPU以Intel公司的X86序列产品为主,所以人们将Intel生产的CPU统称为英特尔体系(IA)CPU。由于其它公司如AMD等公司生产的CPU 基本上能在软、硬件方面与Intel的CPU兼容,所以人们通常也将这部分CPU列入IA系列。由于目前使用的CPU,包括新推出的Pentium III都还是32位的,所以又被列为IA-32。而IA-64就是Intel下一步将推出的64位CPU,但其物理结构和工作机理与目前的X86序列的IA-32CPU完全不同。 2、CPU的位和字长 位:在数字电路和电脑技术中采用二进制,代码只有“0”和“1”,其中无论是“0”或是“1”在CPU中都是一“位”。 字长:电脑技术中对CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。所以能处理字长为8位数据的CPU通常就叫8位的CPU。同理32位的CPU就能在单位时间内处理字长为32位的二进制数据。 字节和字长的区别:由于常用的英文字符用8位二进制就可以表示,所以通常就将8位称为一个字节。字节的长度是不固定的,对于不同的CPU、字长的长度也不一样。8位的CPU一次只能处理一个宇节,而32位的CPU一次就能处理4个宇节,同理字长为64位的CPU一次可以处理8个字节。 3、CPU外频 CPU外频也就是常见特性表中所列的CPU总线频率,是由主板为CPU提供的基准时钟频率,而CPU的工作主频则按倍频系数乘以外频而来。在Pentium时代,CPU的外频一般是60/66MHz,从Pentium II350开始,CPU外频提高到1O0MHz。由于正常情况下CPU总线频率和内存总线频率相同,所以当CPU外频提高后,与内存之间的交换速度也相应得到了提高,对提高电脑整体运行速度影响较大。 4、CPU主频 CPU主频也叫工作频率,是CPU内核(整数和浮点运算器)电路的实际运行频率。在486 DX2 CPU之前。CPU 的主频与外频相等。从486DX2开始,基本上所有的CPU主频都等于“外频乘上倍频系数”了。 5、流水线技术 流水线(pipeline)是InteI首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5~6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5~6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。

采用流水线生产有什么优点 流水线这个词相信大家都不陌生,什么INTEL的20级超长流水线之类的大家肯 定也能闭上眼睛说上来,那么大家对流水线的具体含义有没有理解呢,流水线 是把一个重复的过程分解为若干个子过程,每个子过程可以与其他子过程并行进行。由于这种工作方式与工厂中的生产流水线十分相似,因此称为流水线技术。 比如说进行一个程序,最起码要进行取指令,分析指令,执行指令的操作,实际上,我们的计算机分化的要比这个要多的,上面那个分法就是一条3级流水线,比如说,我们的CPU在执行上面的分法的时候,每一时间要么是在取指令阶段,要么是在分析指令,要么是在执行指令,发现没有,他只有一部分在工作而其他大部分都在闲置,那么为解决这个问题,就发明了流水线技术,每取完一个指令后送到分析指令部分,取指令的部分就开始取新的指令,这样就形成了下面的状态:取指令指令1 指令2 指令3 指令4 时间方向分析指令1 指令2 指令 3 执行指令1 指令2 大家发现没有,这个时候CPU内同时执行的是3条指令,正如同一个流水线上,可能有N件产品,只有最后一件是完成的成品,虽然没有提高执行每一步的速度,但是整个CPU的速度增加了3倍,如果说,CPU执行 的程序是一条跳转语句,在没有进行分析指令前,CPU是不能知道他是要跳转的,那么在他分析指令的时候,取指令的部分把上面那条指令的下一条指令取了进来,由于跳转指令的存在,这条后取来的指令实际上是不应该被执行的,所以,他要从流水线上排掉,才能从跳转指令要跳转的地方重新开始,这样就造成整个流水线的等待,流水线越长,速度越快,这样的流水线的等待也就越明显,整个CPU 的利用率就越低。 采用流水线技术生产,极大的提高了流水线工作效率,为工厂,工人创造出更多的价值 流水线的特征是每一道工序都有特定的人去完成,一步一步地加工.每个人做一个特定的工作. 优点是这样生产起来会比较快,因为每个人只需要做一样事,对自己所做的事都非常熟悉. 缺点是工作的人会很觉得很乏味.

物理与电子工程学院课程设计任务书专业:班级

摘要 随着当今社会的快速发展,越来越多的产品装配线上及各种公共场所都需要自动计数。基于单片机的自动计数器是计数直观、显示准确的优势产品,已经被广泛应用于各个行业。自动计数器有各种形式,具体来说有接触式和非接触式两种计数器。随着当今科学的发展,非接触式红外计数器被广泛的应用到各行各业。 本次设计以STC89C51单片机为核心,利用专用的红外传感器作为检测装置,用LED数码管作为人机交互的界面。具有结构简单、操作方便、显示清楚等特点。具体思路是专业检测芯片(本次设计用红外传感器)形成计数脉冲后送入STC89C51单片机控制单元,通过对单片机编程实现计数,然后由数码管LED显示,从而实现对流水线产品产量的统计显示。 关键词:红外检测;自动计数;单片机;LED数码管

目录 摘要 1. 第一章绪论 (2) 1.1前言 (3) 1.2研究背景 (3) 1.3设计要求 (3) 1.4国内外研究概况 (4) 1.5此次设计研究的主要内容应解决问题 (3) 2. 第二章基于单片机构成的产品自动计数器的设计 (5) 2.1方案论证与选择 (3) 2.2系统总体框图和原理 (3) 2.3系统单元电路设计 (7) 2.3.1电源供电电路 (7) 2.3.2红外线检测部分 (7) 2.3.3液晶显示部分 (7) 2.3.3.1LED数码管的特点 (7) 2.3.3.2数码管动态扫描 (7) 2.3.3.3数码管驱动部分 (7) 2.3.3.4单片机计数及控制部分 (7) 3. 第三章系统单元电路的设计 (6) 3.1系统程序设计 (6) 3.1.1程序流程图 (6) 3.1.2程序设计 (6) 3.2全电路图 (7) 3.2.1原理图 (7) 3.2.2PCB板图 (7) 4. 第四章总结 (9) 附录 (3) 1绪论 1.1前言 自动化时代的社会,许多制造商在生产经营中几乎都要使用到流水线技术,但如何实现对其产品实时,高效,准确的自动计数成为广大厂商的极为关注的问题。传统的计数器是一个数字集成电路组件,有许多缺点:例如:电路有更复杂

超标量、超级流水线、超长指令字、向量机 记得本科学计算机系统结构时,在了解了流水线这一用于提高cpu处理速度的方法后,书中还介绍了一些其他的结构,这些结构一般用于较高性能的计算机中 (呵呵,嵌入式系统中我还没看到,连multi issue的cpu都不多),包括: 超标量(Super Scalar)、超级流水线(Super Pipeline)、超长指令字(VLIW)、和向量机。这些概念我总混淆,现在随着理解的深入,已经完全知道了它们各自的 特点,写点简要的介绍,贴在这里。 1、超标量(Super Scalar) 将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用 率的技术叫做标量流水技术. 超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理.在单流水线结构中,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能发射(issue)或退休(retire) 一条指令.超级标量结构的cpu支持指令级并行,每个周期可以发射多条指令(2-4条居多).这样,可以使得cpu的IPC(Instruction Per Clock) > 1, 从而提高cpu处理速度. 超级标量机能同时对若干条指令进行译码,将可以并行执行的指令送往不同的执行部件,在程序运行期间,由硬件(通常是状态记录部件和调度部件)来完成指令调度. 超级标量机主要是借助硬件资源重复(例如有两套译码器和ALU等)来实现空间的并行操作. 我们熟知的pentium系列(可能是p-II开始),还有SUN SPARC系列的较高级型号,以及MIPS若干型号等都采用了超级标量技术. 2、超级流水线(Super Pipeline) 超级流水线又叫做深度流水线,它是提高cpu速度通常采取的一种技术。CPU处理指令是通过Clock来驱动的,每个clock完成一级流水线操作。每个周期所做的操作越少,那么需要的时间久越短,时间越短,频率就可以提得越高。所以超级流水线就是将cpu处理指令是得操作进一步细分,增加流水线级数来提高频率。频率高了,当流水线开足马力运行时平均每个周期完成一条指令(单发射情况下),这样cpu处理得速度 久提高了。当然,这是理想情况下,一般是流水线级数越多,重叠执行的执行就越多,那么发生竞争冲突得可能性就越大,对流水线性能有一定影响。 现在很多cpu都是将超标量和超级流水线技术一起使用,例如pentium IV,流水线达到20级,频率最快已经超过3GHZ.我们教科书上用于教学的经典MIPS只有5 级流水。 3、超长指令字(VLIW:Very Long Instruction Word) 超常指令字是由美国Yale大学教授Fisher提出的。它有点类似于超级标量,是一条指令来实现多个操作的并行执行,之所以放到一条指令是为了减少内存访问。通常 一条指令多达上百位,有若干操作数,每条指令可以做不同的几种运算。那些指令可以并行执行是由编译器来选择的。通常VLIW机只有一个控制器,每个周期启动一条长指令,长指令被分为几个字段,每个字段控制相应的部件。由于编译器需要考虑数据相关

相关文档