第六章 中央控制器(6-7,8,9)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机组成与结构》
——武汉东湖学院本科生课程教学
原稿:武大计算机学院 改编:武 汉东 湖 学院
《计算机组成原理》课程组
2011.9
第六章 中央控制器
控制器的组成 微程序控制的计算机 微程序设计技术 硬布线控制的计算机 控制器的控制方式 流水线工作原理 CPU举例 计算机的加电及控制过程
计算机学院
6.7 流水线工作原理
分析程序中各条指令的执行过程可以发现,机器的各部分
在某些周期内在进行操作,而在某些周期内是空闲的。
以图6.7的加法指令时序图为例,在四个机器周期内,取指
与取数周期访问存储器,而运算器不工作;计算地址与加 法运算周期,运算器进行操作而存储器空闲。
如果控制器调度恰当,让各个部件紧张工作,就可提高计
算机运行速度,于是在大型计算机中首先研究并采用了流 水线结构,如今已推广到小型、微型计算机中。
计算机学院
6.7 流水线工作原理
一、流水线基本工作原理
计算机执行程序是按顺序的方式进行的,即程序中各条机
器指令是按顺序串行执行的。如按四个周期完成一条指令 来考虑,其执行过程(顺序)如下:
计算机学院
6.7 流水线工作原理
顺序执行的优点是控制简单,但是机器各部分的利用率不高。 例如,指令部件(I)工作时,执行部件(E)基本空闲;而执行部件
工作时,指令部件基本空闲。
如果把两条指令或若干条指令在时间上重叠起来进行,如图6.37
所示,将大幅度提高程序的执行速度。
计算机学院
6.7 流水线工作原理
2级流水
4级流水
计算机学院
6.7 流水线工作原理
从图6.37(a)可以看到,当指令部件完成对第一条指令的操 作后,交给执行部件去继续处理,同时进行第二条指令的取指操 作。假如每个部件完成操作所需的时间为了,那么尽管每条指令 的执行时间为2T,但当第一条指令处理完后,每隔一个T时间就 能得到一条指令的处理结果,相当于把处理速度提高一倍。 在图6.37(b),将一条指令分成4段,若每段所需时间为t, 那么一条指令的执行时间为4t,但当第一条指令处理完后每隔一 个t的时间就能得到一条指令的处理结果,平均速度提高到4倍, 其过程相当于现代工业生产装配线上的流水作业,因此把这种处 理机称之为流水线处理机。
计算机学院
6.7 流水线工作原理
二、流水线时空图
流水线技术:把一个重复的过程分解为若干个子过程,每个子
过程可以与其它子过程同时进行。
描述流水线的工作,最常用的方法是时间-空间图(时空图) 横坐标:表示时间,即各个任务在流水线中所经过的时间 纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线 深度(Stage)
计算机学院
6.7 流水线工作原理
非流水计算机的时空图
存结果
指令执行 指令译码
取指令
每4个机器周期才有一个输出结果 计算机学院
6.7 流水线工作原理
流水计算机的时空图
每个机器周期可以输出一个结果 计算机学院
6.7 流水线工作原理
三、流水线的分类
从不同的角度和观点,可以把流水线分成多种不同的种类。
1、单功能流水线与多功能流水线 这是按照流水线所完成的功能来分类的方法。 (1)单功能流水线(unifunction pipelines):只能完成一种固定功 能的流水线。
计算机学院
6.7 流水线工作原理
【例】浮点加法流水线:(把浮点加法的全过程分解为求阶差
、对阶、尾数、相加、规格化4个子过程。 理想情况:速度提 高3倍)
入 求阶差 △t 对 阶 △t 尾数相加 △t 规格化 △t 出
若要完成多种功能,可采用多条单功能流水线实现。例如,
Cray-1巨型机有12条单功能流水线。
计算机学院
6.7 流水线工作原理
(2)多功能流水线(multifunction pipelines):流水线的各段可以 进行不同的连接,以实现不同的功能。
【例】一个典型例子是流水线处理机(TI ASC)处理机中采用
的运算流水线,它有8个功能段,按不同的连接可以实现浮点加 减运算和定点乘法运算。如下图所示:
计算机学院
6.7 流水线工作原理
1 输 入 1 输 入 1 输 入
2
求 阶 差 对 相 阶 加
2
求 阶 差 对 相 规格化 阶 加
2
3
3
3
4
4
4
5
规格化 相 累 输 乘 加 出
5
5 相 累 输 乘 加 出
6
7
6
6
7 输 出
7
8
8
8
(a)分段
(b)浮点连接
(c)定乘连接
计算机学院
6.7 流水线工作原理
2、静态流水线与动态流水线 按照同一时间内各段之间的连接方式对多功能流水线做进一步 的分类的方法。 (1)静态流水线(static pipelines):在同一时间内,多功能流水 线中的各段只能按同一种功能的连接方式工作。
对于静态流水线来说,只有当输入的是一串相同的运算任务时
,流水的效率才能得到充分的发挥。
【例如】上述TI ASC的8段只能是按浮点加减运算连接方式工
作,或者按定点乘法运算连接方式工作。当要在n个浮点运算后 面进行定点乘法时,必须等最后一个浮点加法(n)做完、流水线 排空后,才能改变连接,开始新的运算。
计算机学院
6.7 流水线工作原理
(2)动态流水线(dynamic pipelines):在同一时间内,多功能流 水线中的各段可以按照不同的方式连接,同时执行多种功能。 如下图所示。
优点: 灵活,能够提高流水线各段的使用率,从而提高处理速
度。 缺点: 控制复杂。
计算机学院
6.7 流水线工作原理
计算机学院
6.7 流水线工作原理
由于流水线相邻两段在执行不同的指令(或操作),因此无论是指
令流水线或运算操作流水线,在相邻两段之间必须设置锁存器或 寄存器,以保证在一个周期内流水线的输入信号不变。当流水线 各段工作饱满时,能发挥最大作用。
在流水线计算机中,当任务饱满时,任务源源不断地输入流水线
,不论有多少级过程段,每隔一个时钟周期都能输出一个任务, 从理论上说,一个具有k级过程段的流水线处理n个任务需要的时 钟周期数为:Tk=k+(n-1)
计算机学院
6.7 流水线工作原理
其中k个时钟周期用于处理第一个任务,k个周期后,流水线被装
满,剩余的n-1个任务只需n-1个周期就完成了。如果用非流 水线处理器来处理这n个任务,则所需时钟周期数为: TL=n·k
我们将TL和Tk的比率定义为k级线性流水处理器的加速比:
Ck = TL/ Tk
当n>>k时,Ck →k,这就是说,理论上k级线性流水线处理器几
乎可以提高k倍速度。但实际上由于存储器冲突、数据相关、程 序分支和中断,这个理想的加速比一般达不到。
计算机学院
6.7 流水线工作原理
【例如】假设一条指令的执行分为取指、分析与执行3步,每步
相应的时间为t取指、t分析和t执行,分析以下三种情况下执行完50条 指令所需时间的一般关系式。
(1) 顺序方式。 (2) 如果“执行k”与“取指k+1 ”重叠。 (3) 如果“执行k”、“分析k+1”与 “取指k+2”重叠。
【解答】 (K+1)取指与K执行重叠如下图(a);
(K+2)取指、(K+1)分析、K执行重叠如下图(b)。
计算机学院
6.7 流水线工作原理
第1条 取指 分析 执行 第2条 第3条 第 48 条 取指 分析 执行 第 49 条 第 50 条 取指 分析 执行 取指 分析 执行 取指 分析 执行 取指 分析 执行
(a) (K+1)取指与 K 执行重叠 50 条指令执行情况
计算机学院
6.7 流水线工作原理
. 取指 分析 执行 第1条 第2条 第3条 第4条 取指 分析 执行 第 47 条 第 48 条 第 49 条 第 50 条 取指 分析 执行
取指 分析 执行
取指 分析 执行
取指 分析 执行
取指 分析 执行
取指 分析 执行
(b)
(K+2)取指、(K+l)分析、K 执行重叠时 50 条指令执行情况
计算机学院
6.7 流水线工作原理
(1) 顺序方式50条指令需要:
50×(T取+T分+T执)。
(2)两级流水 50条指令需要:
T取+50T分+49 max(T取,T执)+T执
(3)三级流水 50条指令需要:
T取+max(T分,T取)+48×max(T执,T分,T取)+max(T执,T分)+T执
(1)=150 (2)=101 (3)=52
计算机学院
6.7 流水线工作原理
【例】指令流水线有取指(IF:Instruction Fetch)、译码(ID:
Instruction Decode)、执行(EX: Execute)、访存(MEM: Memory Access)、写回寄存器堆(WB: Write Back)五个过程段 ,共有12条指令连续输入此流水线。 (1) 画出流水处理的时空图,假设时钟周期100ns。 (2) 求流水线的实际吞吐率(单位时间里执行完毕的指令数)。 (3) 求流水处理器的加速比。
【解答】
(1) 12条指令连续进入流水线的时空图如下:
计算机学院
6.7 流水线工作原理
IF ID IF
EX ID
MEM WB EX IF MEM EX ID IF
第1条 WB MEM EX ID IF 第2条 WB MEM EX ID IF 第3条 WB 第 4 条 MEM WB EX ID MEM EX 第5条 WB MEM EX IF 第6条 WB MEM EX ID IF 第7条 WB 第 8 条 MEM EX WB 第 9 条 MEM WB 第 10 条
IF ID
IF ID
IF ID
ID EX MEM WB 第11条 IF ID EX MEM WB 第12条
12条指令连续进入流水线的时空图
计算机学院
6.7 流水线工作原理
(2) 流水线在16个时钟周期中执行完12条指令,实际吞吐率为 12/(16×100ns)= 75 ×105 条指令/s = 7.5MIPS (3) k级流水线处理n个任务所需的时钟周期数为:Tk=k+(n-1) 非流水处理器处理n个任务所需的时钟周期周期数为:TL=nk k级流水线处理器的加速比为Ck=TL/Tk=nk/(k+(n-1)) 代入已知数据 n=12 , k=5, 则 Ck = 12×5/(5+11)=60/16=3.75
计算机学院
6.7 流水线工作原理
(2)处理机级流水线:又称指令流水线
它是指指令步骤并行。把指令的解释执行过程按照流水方式处
理。把一条指令的执行过程分解为若干个子过程,每个子过程 在独立的功能部件中执行。
例如将指令流的处理过程划分为取指、译码、取操作数、执行
这几个并行处理的过程段,如图6.37所示。在程序开始执行时 ,由于流水线未装满,有的功能部件没有工作,速度较低;在 图6.37(b)中,在开始3t时间内得不到指令的处理结果,因此只 有在流水线装满的稳定状态下,才能保证最高处理速率。
计算机学院
6.7 流水线工作原理
当将一条指令的执行过程分成4段,每段有各自的功能部件执行 时,每个功能部件的执行时间是不可能完全相等的。例如,从存 储器取指或取数的时间与运算时间可能就不一样,而在流水线装 满的情况下,各个功能部件同时都在工作,为了保证完成指定的 操作,t值应取4段中最长的时间,此时有些功能段便会长时间处 于等待状态,而达不到所有功能段全面忙碌的要求,影响流水线 作用的发挥。为了解决这一问题可采用将几个时间较短的功能段 合并成一个功能段或将时间较长的功能段分成几段等方法,其目 的是最终使各段所需的时间相差不大。 图6.37(a)为两级流水线,(b)为4级流水线。 目前,几乎所有的高性能计算机都采用了指令流水。
计算机学院
6.7 流水线工作原理
(3)处理机间的流水线:又称宏流水线
处理机间流水线又称为宏流水线,是指程序步骤的并行。它是由
两个或者两个以上的处理机串行连接起来,对同一数据流进行处 理,每个处理机完成整个任务中的一部分。
它由一串级联的处理机构成流水线的各个过程段,每台处理机负
责某一特定的任务,数据流从第一台处理机输入,经处理后被送 入与第二台处理机相联的缓冲存储器中;第二台处理机从该存储 器中取出数据进行处理,然后传送给第三台处理机;如此串联下 去。 如下图所示:
计算机学院
6.7 流水线工作原理
数据流
处理机 1
——武汉东湖学院本科生课程教学
原稿:武大计算机学院 改编:武 汉东 湖 学院
《计算机组成原理》课程组
2011.9
第六章 中央控制器
控制器的组成 微程序控制的计算机 微程序设计技术 硬布线控制的计算机 控制器的控制方式 流水线工作原理 CPU举例 计算机的加电及控制过程
计算机学院
6.7 流水线工作原理
分析程序中各条指令的执行过程可以发现,机器的各部分
在某些周期内在进行操作,而在某些周期内是空闲的。
以图6.7的加法指令时序图为例,在四个机器周期内,取指
与取数周期访问存储器,而运算器不工作;计算地址与加 法运算周期,运算器进行操作而存储器空闲。
如果控制器调度恰当,让各个部件紧张工作,就可提高计
算机运行速度,于是在大型计算机中首先研究并采用了流 水线结构,如今已推广到小型、微型计算机中。
计算机学院
6.7 流水线工作原理
一、流水线基本工作原理
计算机执行程序是按顺序的方式进行的,即程序中各条机
器指令是按顺序串行执行的。如按四个周期完成一条指令 来考虑,其执行过程(顺序)如下:
计算机学院
6.7 流水线工作原理
顺序执行的优点是控制简单,但是机器各部分的利用率不高。 例如,指令部件(I)工作时,执行部件(E)基本空闲;而执行部件
工作时,指令部件基本空闲。
如果把两条指令或若干条指令在时间上重叠起来进行,如图6.37
所示,将大幅度提高程序的执行速度。
计算机学院
6.7 流水线工作原理
2级流水
4级流水
计算机学院
6.7 流水线工作原理
从图6.37(a)可以看到,当指令部件完成对第一条指令的操 作后,交给执行部件去继续处理,同时进行第二条指令的取指操 作。假如每个部件完成操作所需的时间为了,那么尽管每条指令 的执行时间为2T,但当第一条指令处理完后,每隔一个T时间就 能得到一条指令的处理结果,相当于把处理速度提高一倍。 在图6.37(b),将一条指令分成4段,若每段所需时间为t, 那么一条指令的执行时间为4t,但当第一条指令处理完后每隔一 个t的时间就能得到一条指令的处理结果,平均速度提高到4倍, 其过程相当于现代工业生产装配线上的流水作业,因此把这种处 理机称之为流水线处理机。
计算机学院
6.7 流水线工作原理
二、流水线时空图
流水线技术:把一个重复的过程分解为若干个子过程,每个子
过程可以与其它子过程同时进行。
描述流水线的工作,最常用的方法是时间-空间图(时空图) 横坐标:表示时间,即各个任务在流水线中所经过的时间 纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线 深度(Stage)
计算机学院
6.7 流水线工作原理
非流水计算机的时空图
存结果
指令执行 指令译码
取指令
每4个机器周期才有一个输出结果 计算机学院
6.7 流水线工作原理
流水计算机的时空图
每个机器周期可以输出一个结果 计算机学院
6.7 流水线工作原理
三、流水线的分类
从不同的角度和观点,可以把流水线分成多种不同的种类。
1、单功能流水线与多功能流水线 这是按照流水线所完成的功能来分类的方法。 (1)单功能流水线(unifunction pipelines):只能完成一种固定功 能的流水线。
计算机学院
6.7 流水线工作原理
【例】浮点加法流水线:(把浮点加法的全过程分解为求阶差
、对阶、尾数、相加、规格化4个子过程。 理想情况:速度提 高3倍)
入 求阶差 △t 对 阶 △t 尾数相加 △t 规格化 △t 出
若要完成多种功能,可采用多条单功能流水线实现。例如,
Cray-1巨型机有12条单功能流水线。
计算机学院
6.7 流水线工作原理
(2)多功能流水线(multifunction pipelines):流水线的各段可以 进行不同的连接,以实现不同的功能。
【例】一个典型例子是流水线处理机(TI ASC)处理机中采用
的运算流水线,它有8个功能段,按不同的连接可以实现浮点加 减运算和定点乘法运算。如下图所示:
计算机学院
6.7 流水线工作原理
1 输 入 1 输 入 1 输 入
2
求 阶 差 对 相 阶 加
2
求 阶 差 对 相 规格化 阶 加
2
3
3
3
4
4
4
5
规格化 相 累 输 乘 加 出
5
5 相 累 输 乘 加 出
6
7
6
6
7 输 出
7
8
8
8
(a)分段
(b)浮点连接
(c)定乘连接
计算机学院
6.7 流水线工作原理
2、静态流水线与动态流水线 按照同一时间内各段之间的连接方式对多功能流水线做进一步 的分类的方法。 (1)静态流水线(static pipelines):在同一时间内,多功能流水 线中的各段只能按同一种功能的连接方式工作。
对于静态流水线来说,只有当输入的是一串相同的运算任务时
,流水的效率才能得到充分的发挥。
【例如】上述TI ASC的8段只能是按浮点加减运算连接方式工
作,或者按定点乘法运算连接方式工作。当要在n个浮点运算后 面进行定点乘法时,必须等最后一个浮点加法(n)做完、流水线 排空后,才能改变连接,开始新的运算。
计算机学院
6.7 流水线工作原理
(2)动态流水线(dynamic pipelines):在同一时间内,多功能流 水线中的各段可以按照不同的方式连接,同时执行多种功能。 如下图所示。
优点: 灵活,能够提高流水线各段的使用率,从而提高处理速
度。 缺点: 控制复杂。
计算机学院
6.7 流水线工作原理
计算机学院
6.7 流水线工作原理
由于流水线相邻两段在执行不同的指令(或操作),因此无论是指
令流水线或运算操作流水线,在相邻两段之间必须设置锁存器或 寄存器,以保证在一个周期内流水线的输入信号不变。当流水线 各段工作饱满时,能发挥最大作用。
在流水线计算机中,当任务饱满时,任务源源不断地输入流水线
,不论有多少级过程段,每隔一个时钟周期都能输出一个任务, 从理论上说,一个具有k级过程段的流水线处理n个任务需要的时 钟周期数为:Tk=k+(n-1)
计算机学院
6.7 流水线工作原理
其中k个时钟周期用于处理第一个任务,k个周期后,流水线被装
满,剩余的n-1个任务只需n-1个周期就完成了。如果用非流 水线处理器来处理这n个任务,则所需时钟周期数为: TL=n·k
我们将TL和Tk的比率定义为k级线性流水处理器的加速比:
Ck = TL/ Tk
当n>>k时,Ck →k,这就是说,理论上k级线性流水线处理器几
乎可以提高k倍速度。但实际上由于存储器冲突、数据相关、程 序分支和中断,这个理想的加速比一般达不到。
计算机学院
6.7 流水线工作原理
【例如】假设一条指令的执行分为取指、分析与执行3步,每步
相应的时间为t取指、t分析和t执行,分析以下三种情况下执行完50条 指令所需时间的一般关系式。
(1) 顺序方式。 (2) 如果“执行k”与“取指k+1 ”重叠。 (3) 如果“执行k”、“分析k+1”与 “取指k+2”重叠。
【解答】 (K+1)取指与K执行重叠如下图(a);
(K+2)取指、(K+1)分析、K执行重叠如下图(b)。
计算机学院
6.7 流水线工作原理
第1条 取指 分析 执行 第2条 第3条 第 48 条 取指 分析 执行 第 49 条 第 50 条 取指 分析 执行 取指 分析 执行 取指 分析 执行 取指 分析 执行
(a) (K+1)取指与 K 执行重叠 50 条指令执行情况
计算机学院
6.7 流水线工作原理
. 取指 分析 执行 第1条 第2条 第3条 第4条 取指 分析 执行 第 47 条 第 48 条 第 49 条 第 50 条 取指 分析 执行
取指 分析 执行
取指 分析 执行
取指 分析 执行
取指 分析 执行
取指 分析 执行
(b)
(K+2)取指、(K+l)分析、K 执行重叠时 50 条指令执行情况
计算机学院
6.7 流水线工作原理
(1) 顺序方式50条指令需要:
50×(T取+T分+T执)。
(2)两级流水 50条指令需要:
T取+50T分+49 max(T取,T执)+T执
(3)三级流水 50条指令需要:
T取+max(T分,T取)+48×max(T执,T分,T取)+max(T执,T分)+T执
(1)=150 (2)=101 (3)=52
计算机学院
6.7 流水线工作原理
【例】指令流水线有取指(IF:Instruction Fetch)、译码(ID:
Instruction Decode)、执行(EX: Execute)、访存(MEM: Memory Access)、写回寄存器堆(WB: Write Back)五个过程段 ,共有12条指令连续输入此流水线。 (1) 画出流水处理的时空图,假设时钟周期100ns。 (2) 求流水线的实际吞吐率(单位时间里执行完毕的指令数)。 (3) 求流水处理器的加速比。
【解答】
(1) 12条指令连续进入流水线的时空图如下:
计算机学院
6.7 流水线工作原理
IF ID IF
EX ID
MEM WB EX IF MEM EX ID IF
第1条 WB MEM EX ID IF 第2条 WB MEM EX ID IF 第3条 WB 第 4 条 MEM WB EX ID MEM EX 第5条 WB MEM EX IF 第6条 WB MEM EX ID IF 第7条 WB 第 8 条 MEM EX WB 第 9 条 MEM WB 第 10 条
IF ID
IF ID
IF ID
ID EX MEM WB 第11条 IF ID EX MEM WB 第12条
12条指令连续进入流水线的时空图
计算机学院
6.7 流水线工作原理
(2) 流水线在16个时钟周期中执行完12条指令,实际吞吐率为 12/(16×100ns)= 75 ×105 条指令/s = 7.5MIPS (3) k级流水线处理n个任务所需的时钟周期数为:Tk=k+(n-1) 非流水处理器处理n个任务所需的时钟周期周期数为:TL=nk k级流水线处理器的加速比为Ck=TL/Tk=nk/(k+(n-1)) 代入已知数据 n=12 , k=5, 则 Ck = 12×5/(5+11)=60/16=3.75
计算机学院
6.7 流水线工作原理
(2)处理机级流水线:又称指令流水线
它是指指令步骤并行。把指令的解释执行过程按照流水方式处
理。把一条指令的执行过程分解为若干个子过程,每个子过程 在独立的功能部件中执行。
例如将指令流的处理过程划分为取指、译码、取操作数、执行
这几个并行处理的过程段,如图6.37所示。在程序开始执行时 ,由于流水线未装满,有的功能部件没有工作,速度较低;在 图6.37(b)中,在开始3t时间内得不到指令的处理结果,因此只 有在流水线装满的稳定状态下,才能保证最高处理速率。
计算机学院
6.7 流水线工作原理
当将一条指令的执行过程分成4段,每段有各自的功能部件执行 时,每个功能部件的执行时间是不可能完全相等的。例如,从存 储器取指或取数的时间与运算时间可能就不一样,而在流水线装 满的情况下,各个功能部件同时都在工作,为了保证完成指定的 操作,t值应取4段中最长的时间,此时有些功能段便会长时间处 于等待状态,而达不到所有功能段全面忙碌的要求,影响流水线 作用的发挥。为了解决这一问题可采用将几个时间较短的功能段 合并成一个功能段或将时间较长的功能段分成几段等方法,其目 的是最终使各段所需的时间相差不大。 图6.37(a)为两级流水线,(b)为4级流水线。 目前,几乎所有的高性能计算机都采用了指令流水。
计算机学院
6.7 流水线工作原理
(3)处理机间的流水线:又称宏流水线
处理机间流水线又称为宏流水线,是指程序步骤的并行。它是由
两个或者两个以上的处理机串行连接起来,对同一数据流进行处 理,每个处理机完成整个任务中的一部分。
它由一串级联的处理机构成流水线的各个过程段,每台处理机负
责某一特定的任务,数据流从第一台处理机输入,经处理后被送 入与第二台处理机相联的缓冲存储器中;第二台处理机从该存储 器中取出数据进行处理,然后传送给第三台处理机;如此串联下 去。 如下图所示:
计算机学院
6.7 流水线工作原理
数据流
处理机 1