第四章 流水线技术
流水线技术概述

流⽔线技术概述本⽂是对流⽔线技术地基本概念、冒险处理、硬件实现的基本概述。
⾸先我们介绍流⽔线的⼯作原理、组成要求、分类和性能指标,接下来讨论流⽔线的冒险处理,最后我们以MIPS为例,介绍流⽔线数据通路和控制器的实现。
⽬录1. 流⽔线概念针对串⾏执⾏过程中的冗余和瓶颈,我们提出,可以将指令执⾏过程划分为多个阶段,各个阶段可以同时处理操作,这样,每条指令按序通过各段,不同指令的执⾏过程重叠,得到的就是流⽔线。
流⽔线由多个功能段按序组成。
例如,在RISC中,通常包括IF,ID,EX,MEM,WB五个功能段,⽽在CISC中,通常包括IF,ID,OF,EX,WB五个功能段。
理想状况下,流⽔线可以对程序执⾏起到显著的加速作⽤。
例如,有n条指令在m段流⽔线上执⾏,串⾏执⾏的时间为mnt,⽽采⽤流⽔线后,其执⾏时间为(m+n-1)t。
流⽔线在组成上,有三个基本要求。
第⼀,各个段的操作要相互独⽴、相互分离。
因此,每个段的源数据必须来⾃时序部件,结果也要存到时序部件。
实现上,我们设置段间寄存器,其中保存本段的所有后续段需要的本段的数据、地址、命令等。
第⼆,各个流⽔段的操作要同步执⾏。
实现上,我们会设置公共拍时钟,使得段间寄存器被同时写⼊。
拍时钟的周期需要取为各个段长的最⼤值。
第三,各个流⽔段的操作必须⽆冲突,以保证结果正确。
具体⽽⾔,就是消除冒险。
实现上,通过增设部件和控制器,来消除各种冒险。
流⽔线可以按其属性进⾏多种分类。
按处理的级别,可以分为操作级流⽔线、指令级流⽔线、处理机级流⽔线。
按功能,可以分为单功能和多功能流⽔线。
多功能流⽔线的各流⽔段可以进⾏不同的连接,从⽽完成不同的功能。
按⼯作⽅式,可以分为静态流⽔线和动态流⽔线。
静态流⽔线在进⾏功能切换时,必须排空。
显然,动态流⽔线⼀定是多功能流⽔线。
按结构,可以分为线性流⽔线和⾮线性流⽔线。
所谓⾮线性流⽔线,就是其中有部件的复⽤。
按流⼊流出的次序,可以分为顺序流⽔线和乱序流⽔线。
流水线

2. 指令取消技术
• 向后转移(如循环):调整后
LOOP: XXX YYY … COMP R1,R2,LOOP WWW
XXX LOOP: YYY … COMP R1,R2,LOOP XXX WWW
对循环程序而言,仅在循环全部结束的最后一次转移 才不成功。此时才取消指令XXX
2. 指令取消技术
• 向前转移(如分支结构):
1. 先行控制方式的结构和工作过程 先行控制技术的关键是缓冲技术和预处理 技术 缓冲技术:平滑两个工作速度不固定的 功能部件(一般设4个缓冲栈) 预处理技术:将指令预处理成RR型指令, 与缓冲技术相结合,为进入运算器的指 令准备好全部操作数据
先行控制技术
• • • •
(1)处理机结构 (2)指令执行时序 (3)先行缓冲栈 (4)缓冲深度的设计
5.1 流水线基础
5.1.2 RISC对流水线技术的支持 • RISC具有指令简单、规整,只有存(STORE)、取 (LOAD)指令等少量与存储器打交道,几乎所有指令 都在一个机器周期内完成,并注重编译的优化等特 点,容易做到指令重叠运行时各个功能部件的运行 时间相等,大大减少了重叠中功能部件的相互等待, 为指令流水带来天然的支持。 • 此外,为了更好地发挥其在流水线中的效果,RISC 处理机还采用了延时转移、指令取消、重叠寄存器 窗口、指令流调整、硬件为主固件为辅等多种关键 技术。
5.1 流水线基础 5.1.1 指令的重叠执行
5.1.2 RISC对流水线技术的支持 5.1.3 先行控制技术
5.1.1 指令的重叠执行方式
• 设一条指令的执行过程分为:取指(取指 令)、析指(分析指令)、执指(执行指令) 三个阶段
访存取指令
分析指令,可 能访存取数 执行指令,可 能访存存结果
计算机体系结构——流水线技术(Pipelining)

单功能流水线:流水线只完成一种固定功能 多功能流水线:流水线可以完成多种功能,如 TI公司的ASC机,8段流水线,能够实现:定点加减 法、定点乘法、浮点加法等功能 3.按同一时间内各段之间的连接方式分 静态多功能流水线 :同一时间内,多功能结构只能按一种功能的连接方式工作。 动态多功能流水线:在同一时间内,可以有多种功能的连接方式同时工作 4.按处理的数据类型 标量流水线 向量流水线 5.按控制方式 同步流水线 异步流水线:当Si功能段要向Si+1段传送数据时,首 先发出就绪信号,Si+1功能段收到信号后,向Si回送 一个回答信号。 6.按任务从输出端的流出顺序 顺序流水方式:指令流出顺序 = 指令流入顺序 乱序流水方式:指令流出顺序 != 指令流入顺序 7. 线性流水线——不带反馈回路的流水线
三、流水线的分类(了解)
四、流水线相关及冲突(重点) 1.流水线相关 2.流水线冲突 3.流水线冲突带来问题 4.数据冲突及其解决方案 5.结构冲突及其解决方案 6.控制冲突及其解决方案
五、流水线性能分析(含例题讲解) 1.流水线的基本参数——吞吐率 2.流水线的基本参数——加速比 3.流水线的基本参数——效率 4.结果分析 5.有关流水线性能的若干问题
整体评估、反馈、再改进
3. 指令周期
单周期处理机模型:一个周期完成一个指令(每个周期是等长的),指令长度可能不一样,会造成很大的浪费 多周期处理机模型:将一个指令的完成划分成若干个周期来实现 流水线模型
二、流水线技术 1. 什么是流水线? 计算机中的流水线是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行。由于这种工作方式与工厂中的生产 流水线十分相似, 因此称为流水线技术 从本质上讲,流水线技术是一种时间并行技术。
生产运营 生产过程组织的基本形式

第四章生产过程组织的基本形式第一节大量生产过程组织形式一、流水生产( flow production )定义:劳动对象按照规定的工艺规程顺序地通过各个工作地,并按照一定的生产速度(节拍)连续不断地进行加工出产品的一种生产组织形式。
(一)流水线的基本特征1、流水线是按照对象专业化原则而设计的一种生产组织形式。
2、工作地专业化程度很高,每个工作地上完成一道或几道工序,工艺过程是封闭的,设备按工艺过程顺序排列;使用比较多的专用设备或工装。
3、生产节奏性强,按规定的节拍进行加工(这是区分其它形式的主要特点——如生产线)的一种高效率的生产形式,生产过程连续程度高,劳动对象在工序间采用平行或平顺移动方式。
4、各道工序的加工时间相等或成简单的倍数关系。
根据以上,可见组织流水生产可以提高生产过程的连续性、协调性和均衡性,便于采用先进工艺和高效率的技术装备,能提高工人的操作的熟练程度和劳动生产率,缩短生产周期,减少在制品的数量,加速资金周转,降低产品成本等。
(二)流水生产的发展过程流水生产起源于“福特制”,建立传送带式的流水生产线,是福特制的重要内容之一。
它把管理工作从单纯对人的制约(泰罗制的特点),发展到把人和机器联系起来,使工人更加成为机器的附属品。
同时从整体的观点出发协调各项作业、各道工序,大大提高了生产过程的连续性和节奏性,提高了劳动生产率,增加了产量,增加了企业的盈利。
由于流水线生产具有很大的优越性和明显的经济效果,所以在工业中越来越广泛地被采用,并且在内容和形式上不断地创新。
流水线开始出现时,采取单一对象流水线的形式,仅用于零件的机械加工和产品的装配,主要用于大量生产,后来逐步发展成为多对象流水线,扩大应用于成批生产类型的企业,并且在铸造、铸锻、热处理、油漆和包装(啤酒、饮料灌装、食品包装)等方面也得到了广泛应用。
成组技术的发展又为建立成组流水线准备了条件,为多品种小批生产的企业采用流水生产提供了可能性。
流水线技术-标量流水部分(ppt 179页)

访存
写回
s4
s5
22.10.2019
13
流水处理的时空图
22.10.2019
14
流水处理机的基本结构
22.10.2019
15
• 如果每个流水段的延迟时间(通过时间)均为Δts,锁 定时间为Δtl,则每功能段的处理时间Δti为:
• Δti= Δts+Δtl
• 流水处理机的最高工作频率为:
1
ts tl
i2
22.10.2019
7
执行时间不等时的一次重叠工作方式
分析k
执行k 分析k+1
执行k+1 分析k+2 执行k+2
分析k+3
执行k+3
22.10.2019
8
3. 先行控制方式
• 先行控制方式的基本思想: • 通过设置先行读数栈,先行操作栈,后行写数
栈等,使分析部件和执行部件能够分别连续 不断地分析和执行指令。
• 输出端的任务流出与输入端的任务流入顺序不完 全相同。
• 在乱序流动流水线中,当某任务阻塞时,后面的 任务可绕过它继续流动。
22.10.2019
30
6. Pentium的流水技术
• 在Pentium CPU内部有两个ALU,分别对应两条流水线U和V (80486只有一条流水线),U流水线执行整数和浮点数指 令;V流水线执行整数指令,以及交换寄存器的内容。所以, Pentium能在每个时钟周期内执行两条整数运算指令,或在 每个时钟周期内执行一条浮点数运算指令。
• 设各阶段周期均为t0,则执行n条指令共需
• T=nt0+2t0=(n+2)t0
• 重叠方式缩短了程序的执行时间,提高了功能部件的 利用率,但需增加硬件支持。
计算机系统结构之流水线技术(205页)

入 求阶差
△t
对阶 △t
尾数相加 △t
出 规格化
△t
▲
31/206
1. 时空图 ➢ 时空图从时间和空间两个方面描述了流水线的工作 过程。时空图中,横坐标代表时间,纵坐标代表流 水线的各个段。 ➢ 4段指令流水线的时空图:
空间
存结果
123456
执行 译码
123456
5
123 45 6
取指令 1
2
3
4
k…+…1 k+j
已经由指令分析器预处理完成,存放在先行操作栈中的 RR*型指令,指令所需要的操作数已经读到先行读数栈中
k…+…j+1 k+j+n
已经由指令分析器预处理完成,存放在先行操作栈中,指 令所需要的操作数还没有读到先行读数栈中
k+j+n+1 正在指令分析器中进行分析和预处理的指令
k…+…j+n+2 已经从主存储器中预取到先行指令缓冲栈中的指令 k+j+n+m
1
2
3
…
1
2
3
…n
1
2
3
…
n
2
3
k
ti
i1
…n (n-1)t2
Tk 各段执行时间不相等的流水线及其时空图
n
时间
▲
33/206
2 流水线的基本概念
➢ 流水线每一个功能部件的后面都要有一个缓冲寄 存器(锁存器),称为流水寄存器。
站的某个存储单元(设其地址为j),同时用j替换原来指令
中的目标地址码字段。
✓ 立即数型指令:把指令中的立即数送入读数站(设为第l个 存储单元),同样也用l替换原来指令中的立即数字段。
第4章 标量流水线技术

1.吞吐率Tp
吞吐率是指单位时间内处理机所能处理的任务数或者输出的结果数,可 分为最大吞吐率和实际吞吐率。
(1)最大吞吐率
若以△ti表示通过流水线各功能段所用的时间,那么在流水线稳定后可 获得的最大吞吐率可表示为:
Tpmax=
1 max(△ti) i=1 (4.4)
4.2.2 标量流水线分类
从不同的角度来看,有不同的分类方式,大致有以下几类。 1. 按照处理机分类 按照处理机分类,流水线可以分为操作部件级、指令级和处理机级。 ① 操作部件级流水线是按复杂的算术逻辑运算的过程构成流水线,比如 把浮点加法运算分成求阶差、对阶、尾数相加和结果规格化四个子过程。 ② 指令级流水线是把一条指令的解释执行过程分成若干个子过程,比 如前面所说的取指令、译码、执行、访存和写回五个子过程。 ③ 处理机流水线是一种
n个任务占用时空区面积
E= nm△t = n = m+n-1 = m
Sp
(4.7)
m段流水线总时空区面积
m(m+n-1)△t
图4.9 流水线各段组成与时空图
【例4.1】流水线性能分析。设有A、B两个向量,每个向量有4个元素,要 求在如图4.14所示的静态加、乘双功能流水线上计算 率、加速比和效率。 ,并求吞吐
图4.14 双功能静态流水线
解:在流水线中,由功能段S1、S2、S3、S4、S6构成乘法流水线,S1、 S5、S6构成加法流水线。设经过每一个功能段的时间均为△t,流水线的输 出可直接返回输入端或者暂存到缓冲寄存器中,流水线功能切换时间忽略 不计。为了在最短的时间内完成上述运算,可让流水线先进行两个向量中 4个元素的加法运算,即求(a0+b0)、(a1+b1)、(a2+b2)、(a3+b3);然后切 换成乘法功能,再按照[(a0+b0)×(a1+b1)]×[(a2+b2)×(a3+b3)]的顺序进 行三次乘法运算。根据分析,可画出流水线的时空图,如图4.15 所示。 从图中可以看出,在17△t时间内输出了7个结果,因此实际吞吐率为: Tp=7/17△t 顺序操作,则需要作4次加法运算和3次乘法运算。一次加法运算需要 3△t,一次乘法运算需要5△t,总共需要To=4×3△t+3×5△t=27△t。 这样加速比为: Sp=To/Tp=27△t/17△t=1.88 流水线的效率可用阴影面积除以全部6个状态段的总时空面积而求得: E=(3×4△t+5×3△t)/(6×17△t)=27/102=26.4%
计算机科学中的流水线技术.

摘要流水线技术是提高系统吞吐率的一项强大的实现技术,并且不需要大量重复设置硬件。
20世界60年代早期的一些高端机器中第一次采用了流水线技术。
第一个采用指令流水线的机器是IBM7030(又称作Stretch计算机)。
后来的CDC 6600同时采用了流水线和多功能部件。
到了20世纪80年代,流水线技术成为RISC处理器设计方法中最基本的技术之一。
RISC设计方法的大部分技术都直接或者间接以提高流水线性能为目标。
从此以后,流水线技术也被有效地应用到CISC处理器的设计中。
Intel i486是IA32体系结构中的第一个流水线实现。
Digital的VAX和Motorola的M68K的流水线版本在商业上也取得了成功。
流水线技术是当前指令集处理器设计中广泛采用的技术。
在这里我们将重点放在(标量)流水线处理器的设计。
流水线处理器设计中的许多方法和技术,例如用于检测和化解相关的流水线互锁机制,都是标量处理器设计的基本方法。
当前的趋势是朝着超深度流水线的方向发展。
流水线的深度已经从不到10发展到超过20.深度流水是获得高速始终频率的必要条件,这是提高处理器性能的一个非常有效的方法。
有迹象表明。
这种趋势还将持续下去。
[关键词] 流水线技术猜测法中断处理吞吐率指令重叠加快短循环程序的处理AbstractPipeline technology is to improve the system throughput of a powerful technology, and does not require repetitive set hardware. The 20 world early 60's some high-end machines used the first pipeline technology. The first use of the instruction pipeline machine is IBM7030(also called Stretch computer ). Later CDC6600at the same time lines and multiple functional components.In the nineteen eighties, pipeline technology to become the RISC processor design method is one of the most basic techniques. The design method of RISC most of the techniques are directly or indirectly to improve performance as the goal line. Since then, assembly line techniques have also been applied effectively to the CISC processor. Intel i486 is IA32 architecture is the first in a pipelined implementation. Digital VAX and Motorola M68K pipelined version also achieved success in business.Pipeline technology is the current instruction set processor is widely used in the design of technology. Here we will focus on the ( scalar ) pipelined processor design. A pipelined processor in the design of many methods and techniques, for example, used to detect and resolve the relevant pipeline interlock mechanism, is a scalar processor design method.The current trend is towards super depth line direction. Pipeline depth has less than10 to the development of more than 20depth of water is always necessary to obtain high speed frequency, which is to improve the performance of a very effective method. There are signs. This trend will continue.Keywords: Pipeline technology forecast method of interrupt processing throughput instruction overlapping accelerate short cycle program processing目录第一章绪论 (5)1.1现代RISC中的流水线技术 (5)1.1.1超流水线技术 (5)1.1.2超标量技术 (4)1.1.3流水技术在Pentium系列微处理器中的实现 (6)第二章流水线基础 (8)2.1流水线概念 (8)2.1.1指令重叠 (9)2.1.2流水线 (10)2.1.3流水线的特点 (10)2.1.4流水线的分类 (11)2.2流水线的主要性能 (12)2.2.1吞吐率 (12)2.2.2加速比和效率 (13)第三章指令流水线设计 (14)3.1流水线理想假设 (14)3.1.1一致的运算分量 (14)3.1.2重复的运算 (15)3.1.3独立的运算 (16)3.2指令流水线 (17)3.2.1指令流水线设计 (17)3.2.2指令集体系结构的影响 (18)3.2.3流水线分级的考虑 (20)3.3流水线处理器设计 (20)3.3.1保持流水段均衡 (20)3.3.2统一指令类型 (21)3.3.3减少流水线停顿 (25)第四章流水线中各种相关及中断处理 (26)4.1流水线中相关 (26)4.2资源相关 (26)4.3数据相关 (27)4.3.1指令相关 (27)4.3.2主存空间操作数相关 (28)4.3.3通用寄存器组相关 (28)4.4控制相关 (31)4.4.1猜测法 (30)4.4.2加快和提前形成条件码 (31)4.4.3采取转移延迟 (31)4.4.4加快短循环程序的处理 (31)第五章中断处理与流水线调度 (32)5.1中断处理 (32)5.2流水线调度 (33)第六章总结与展望 (35)致谢 (41)参考文献 (38)第一章绪论流水线技术是提高系统吞吐率的一项强大的实现技术,并且不需要大量重复设置硬件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢流水线中每个功能段(站)都是由一些执行算术和逻辑功能 的组合逻辑线路组成的,它们可以互相独立地对流过的信息 进行某种操作,相邻两个功能段(站)由高速锁存器(latch) 隔开,信息在各站间的流动靠同时送到各站的时钟信号来控 制。
计算机系统结构
计算机系统结构
Computer Architecture
第四章 流水线技术
加快指令执行过程的两种方法:
➢在设计中,选用高速的器件、更好的算法及提高指令内部的并行程度 等措施,可以加快每条指令的解释过程; ➢可以通过提高指令间的并行性,使控制结构能并发地解释两条、多条 甚至整段程序来加快整个机器语言程序的解释过程。
取指k 分析k 执行k 取指k+1 分析k+1 执行k+1 …
取指令:按指令计数器的内容访主存,取出该指令送到指令寄存器; 分析:对指令的操作码进行译码,按寻址方式和地址字段形成操作数地址, 并用此地址取操作数,还要为取下条指令提前形成其地址;
执行:对操作数进行运算、处理或存储运算结果。
计算机系统结构
Computer Architecture
第四章 流水线技术
取指令
分析
执行
每阶段时间为△t,共n条指令
……
若取指令、分析和执行指令周期都相等,设为△t,则顺序解释n条指令, 需时间T=3×n×△t。
如果每个阶段所需时间不等,各为t取、t分和t执,则顺序执行n条指令所需时 间:
n
T =
(t取 i + t分 i + t执 i)
计算机系统结构
Computer Architecture
第四章 流水线技术
(2) 流水线的分级、分类
1、流水线的分级:(按处理的级别分级)
❖ 操作部件级(arithmetic pipelining):将复杂的算逻运算 组成流水工作方式;
❖ 指令级(instruction pipelining) :把一条指令解释过程分 成多个子过程 ;
特点:静态流水线仅当指令都是同一类型时才能连续不断地执 行。当从一种功能方式变为另一种功能方式时,必须先排空流 水线,然后再切换成另一种功能进行流水处理。 静态流水线的功能不能频繁地变换,否则它的效率将很低。
动态流水线可以提高流水线的吞吐率和设备的利用率。
提高处理速度和系统使用效率的三条途径:
➢时间重叠 ➢资源重复 ➢资源共享
计算机系统结构
Computer Architecture
第四章 流水线技术
一、 流水线处理概述
CPU工作方式: ➢ 顺序 ➢ 重叠 ➢ 流水 1.顺序解释方式(Sequence):各条机器指令之间顺序串行地执行,执行完一 条指令后才取出下条指令来执行,而且每条机器指令内部的各个微操作也是 顺序串行地执行。
计算机系统结构
Computer Architecture
第四章 流水线技术
➢ 按工作方式分类:静态流水线、动态流水线
❖静态流水线(static pipelining):在同一时间内各功能段只能 按一种运算(功能)的连接方式工作。
❖动态流水线(dynamic pipelining) :在同一时间内各功能段 允许按多种不同运算(功能)的连接方式工作。
Computer Architecture
第四章 流水线技术
输入 S1
输出
S2
。。。
Sk
L
输入
பைடு நூலகம்
L
L
流水线的基本结构
IF
ID
EX
取指
译码
执行
S1
S2
S3
指令的流水处理
L
MEM 访存
S4
L
WB 写回 S5
输出
计算机系统结构
Computer Architecture
第四章 流水线技术
如果每个子过程经过的时间都是t,则指令的流水线处理过程可用时空图来描 述。
❖ 流水线的时空图是描述流水线工作、分析评价流水线效能的重要工具。
2、流水线特点: 1)流水一定重叠,比重叠更苛刻。 2)一条流水线通常由多个流水段组成。 3)每段有专用功能部件,各部件顺序连接,不断流。 4)流水线有建立时间、满载时间、排空时间, 5)各段时间尽量短、一致,不一致时最慢子过程为瓶颈。 6)给出的最大吞吐率等指标,为满负载最佳指标。
❖ 处理机级或宏流水线级(macro pipelining) :由两个以上 处理机串行地对同一数据流进行处理,每个处理机完成某一专 门任务,各个处理机所得到的结果需存放在与下一个处理机所 共享的存储器中。
计算机系统结构
Computer Architecture
第四章 流水线技术
2、流水线的分类:
➢ 按功能分类:单功能流水线、多功能流水线
❖ 单功能流水线(unifunction pipelining):只能实现一种固 定的专门功能的流水线(如CRAY-1)。
❖ 多功能流水线(multifunction pipelining) :通过各站间的 不同连接方式可以同时或不同时地实现多种功能的流水线(如 TI-ASC)。
多功能流水线从一种功能变为另一种功能时需要重新连接, 虽然它对资源的利用率可以较高,应用时也较灵活,但它的控 制比单功能流水线复杂得多。因此大多数流水计算机主要采用 单功能流水线。
S空间 (段号)
填入
正常
排空
4
1 2 3 4 5 ... ... ... n-1 n
3
1 2 3 4 5 ... ... ... n-1 n
2
1 2 3 4 5 ... ... ... n-1 n
1 1 2 3 4 5 ... ... ... n-1 n △t △t △t △t △t
m △t
(n-1) △t
T时间
流水时空图
计算机系统结构
Computer Architecture
第四章 流水线技术
建立时间:在流水线开始时有一段流水线填入时间,使得流水线填 满。即第1条指令从流入到流出所需的时间。
正常流动时间:流水线正常工作,各功能段源源不断满载工作。
排空时间(释放时间):流水线最后一条指令流入后到流出的时间。
i=1
优点:控制简单;
缺点:速度慢,机器各部件的利用率很低。
计算机系统结构
Computer Architecture
第四章 流水线技术
二、流水工作方式
(1) 流水线处理概念和特点 1、流水线的基本概念
流水线技术:将一个重复的时序过程分成若干个子过程,每个 子过程都可有效的在其专用功能段上和其它子过程同时执行的 一种技术。