《计算机系统结构》PPT课件.ppt_第1页
《计算机系统结构》PPT课件.ppt_第2页
《计算机系统结构》PPT课件.ppt_第3页
《计算机系统结构》PPT课件.ppt_第4页
《计算机系统结构》PPT课件.ppt_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章 标量处理机,5.1先行控制技术 5.2 流水线处理机 5.3 超标量与超流水线处理机,只有标量数据表示和标量指令系统的处理机称为标量处理机 提高指令执行速度的主要途径: (1) 提高处理机的工作主频 (2) 采用更好的算法和设计更好的功能部件 (3) 采用指令级并行技术 三种指令级并行处理机: (1) 流水线处理机和超流水线(Super- pipelining)处理机 (2) 超标量(Superscalar)处理机 (3) 超长指令字(VLIW: Very Long Instruction Word)处理机,5.1先行控制技术,先行控制技术的关键是缓冲技术和与处理技术。,一条指令的执行过程可以分为多个阶段,如: 取指 分析 执行 可以有多种处理方式:,5.1 指令的重叠执行方式,1、顺序执行方式 执行n条指令所用的时间为: 如果每段时间都为t,则执行n条指令所用的时间为: T=3nt,取指令k,分析k,执行k,取指令k+1,分析k+1,执行k+1,主要优点: 控制简单,节省设备。 主要缺点: 执行指令的速度慢,功能部件的利用率很低。 2、一次重叠执行方式 一种最简单的流水线方式 如果两个过程的时间相等,则执行n条指令的时间为:T=(1+2n)t,取指,分析,执行,取指,分析,执行,取指,分析,执行,主要优点: 指令的执行时间缩短 功能部件的利用率明显提高 主要缺点: 需要增加一些硬件 控制过程稍复杂,3、二次重叠执行方式 如果三过程的时间相等,执行n条指令的时间为:T=(2+n)t 理想情况下同时有三条指令在执行 处理机的结构要作比较大的改变,必须采用先行控制方式,取指k+2,分析k+2,执行k+2,取指k+1,分析k+1,执行k+1,取指k,分析k,执行k,5.1.2先行控制方式的原理 1、采用二次重叠执行方式,必须解决两个问题: (1) 有独立的取指令部件、指令分析部件 和指令执行部件 独立的控制器: 存储控制器、指令控制器、运算控制器 (2) 要解决访问主存储器的冲突问题 取指令、分析指令、执行指令都可能要访问存储器 2、解决访存冲突的方法: (1) 采用低位交叉存取方式: 这种方法不能根本解决冲突问题。 取指令、读操作数、写结果。,(2) 两个独立的存储器:独立的指令存储器和数据存储器。 如果再规定,执行指令所需要的操作数和执行结果只写到通用寄存器,那么,取指令、分析指令和执行指令就可以同时进行。 在许多高性能处理机中,有独立的指令Cache和数据Cache。 这种结构被称为哈佛结构。 (3) 采用先行控制技术。 先行控制技术的关键是缓冲技术和预处理技术。 缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲栈,用以平滑它们的工作。 在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而大幅度提高程序的执行速度。,5.1.2.1处理机结构,图5.3 5.4 需要解决的三个问题: (1)指令不同,执行与分析相互等待 (2)数据相关 (3)转移指令,5.1.2.2指令执行顺序Fig5.6 5.7 5.8,5.1.2.3先行缓冲栈 Fig5.9 先行指令缓冲栈用于平滑主存储器和指令分析器的工作。 先行指令缓冲栈用于平滑分析与运算。 先行读数栈用于平滑主存与运算器。 后行写数栈用于平滑主存与运算器。,5.1.2.4缓冲深度的设计 各个缓冲栈中的缓冲寄存器个数的设置,静态分析法 一种极端 另一种极端,5.1.3数据相关,(1)数据相关包括 指令相关 主存操作数相关 通用寄存器相关 变址相关 (2)解决数据相关的途径: 一、推后分析法 二、设置专用路径,5.1.4控制相关,包括:无条件转移、一般条件转移、安全条件转移。 解决方法: 1、软件猜测法 2、硬件猜测法 3、两个先行指令缓冲栈,5.2 流水线处理机 5.2.1 流水线工作原理 5.2.2 流水线的分类 5.2.3 线性流水线的性能分析 5.2.4 非线性流水线的调度技术 5.2.5局部相关 5.2.6全局相关,处理机内部并行性 空间并行性: 设置多个独立的操作部件 多操作部件处理机 超标量处理机 时间并行性: 采用流水线技术。 不增加或只增加少量硬件就能使运算速度提高几倍 流水线处理机 超流水线处理机,5.2.1 流水线工作原理 1、简单流水线 流水线的每一个阶段称为流水步、流水步骤、流水段、流水线阶段、流水功能段、功能段、流水级、流水节拍等。,分析器 分析k+1,流水 锁存器,执行部件 执行k,流水 锁存器,输 入,输 出,t1,t2,在每一个流水段的末尾或开头必须设置一个寄存器,称为流水寄存器、流水锁存器、流水闸门寄存器等。会增加指令的执行时间。 为了简化,在一般流水线中不画出流水锁存器。 2、一种指令流水线,取指,形成操 作数地址,译码,取操 作数,执行,保存 结果,一般4至12个流水段,等于及大于8个流水段的称为超流水线处理机 3、流水线的时空图 一条简单流水线的时空图:,分析k,分析k+1,分析k+2,分析k+3,执行k,执行k+1,执行k+2,执行k+3,时间,空间,0,t1,t2,t3,t4,t5,一个浮点加法器流水线的时空图(由求阶差、对阶、尾数加和规格化4个流水段组成):,ED1,时间,空间,0,t1,t2,t3,t4,t5,ED2,ED3,ED4,ED5,EA1,EA2,EA3,EA4,EA5,MA1,MA2,MA3,MA4,MA5,NL1,NL2,NL3,NL4,NL5,t6,t7,t8,NL:规格化,MA:尾数加,EA:对阶,ED:求阶差,4、流水线的主要特点 只有连续提供同类任务才能充分发挥流水线的效率: 对于指令流水线:要尽量减少因条件分支造成的“断流” 对于操作部件:主要通过编译技术,尽量提供连续的同类操作 在流水线的每一个流水线段中都要设置一个流水锁存器 时间开销:流水线的执行时间加长 是流水线中需要增加的主要硬件之一,各流水段的时间应尽量相等 流水线处理机的基本时钟周期等于时间最长的流水段的时间长度 流水线需要有“装入时间”和“排空时间”,装入时间:在流水线开始时有一段流水线填入时间,使得流水线填满。 正常流动时间:流水线正常工作,各功能段源源不断满载工作。 排空时间:在流水线第一条指令结束时,其他指令还需要一段释放时间。,5.2.2 流水线的分类 1、线性流水线与非线性流水线 流水线的各个流水段之间是否有反馈信号 线性流水线(Linear Pipelining) 每个流水段都流过一次,且仅流过一次 非线性流水线(Nonlinear Pipelining) 在流水线的某些流水段之间有反馈回路或前馈回路 线性流水线能够用流水线连接图唯一表示 非线性流水线必须用流水线连接图流水线预约表等共同表示,S1,输入,S2,S3,输出,前馈回路,反馈回路,一种简单的非线性流水线,2、按照流水线的级别来分 处理机级流水线, 又称为指令流水线 (Instruction Pipelining) 例如:在采用先行控制器的处理机中,各功能部件之间的流水线,先行指令 缓冲栈,输入,先行控制方式 中的指令流水线,先行指令 分析器,先行读数栈 先行操作栈,取指,译码,取操作数,指令执 行部件,后行 写数栈,输出,执行,写结果,部件级流水线(操作流水线),如浮点加法器流水线 处理机之间的流水线称为宏流水线 (Macro Pipelining) 每个处理机对同一个数据流的不同部分分别进行处理,求阶差,输入,输出,t1,对阶,尾数加,规格化,t2,t3,t4,P1,输 入,任务1,M,M,P2,任务2,M,P3,任务3,输 出,3、单功能流水线与多功能流水线 单功能流水线: 只能完成一种固定功能的流水线 Cray-1计算机中有12条;YH-1计算机有18条;Pentium有一条5段的定点和一条8段的浮点流水线;Pentium有三条指令流水线,其中两条定点指令流水线,一条浮点指令流水线。,多功能流水线: 流水线的各段通过不同连接实现不同功能 Texas公司的ASC计算机中的8段流水线,能够实现:定点加减法、定点乘法、浮点加法、浮点乘法、逻辑运算、移位操作、数据转换、向量运算等。,4、静态流水线与动态流水线 静态流水线: 同一段时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接,实现一种固定的功能。 只有连续出现同一种运算时,流水线的效率才能得到充分的发挥。 动态流水线: 在同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。,5.2.3 线性流水线的性能分析 衡量流水线性能的主要指标有: 吞吐率、加速比和效率 1、吞吐率(Through Put) 定义:单位时间内能处理的指令条数或能输出的数据量。吞吐率越高,计算机系统的处理能力就越强。就流水线而言,吞吐率就是单位时间内能流出的任务数或能流出的结果数。 求流水线吞吐率的最基本公式:TP = n / Tk n为任务数, Tk为完成n个任务所用时间 各段执行时间相等,输入连续任务情况下完成n个连续任务需要的总时间为: Tk= (k+n-1) t k为流水线的段数, t为时钟周期,吞吐率: 最大吞吐率为: 各段执行时间不相等、输入连续任务情况下: 吞吐率为: 最大吞吐率为:,2、加速比(Speedup) 计算流水线加速比的基本公式: S = 顺序执行时间T0 / 流水线执行时间Tk 各段执行时间相等,输入连续任务情况下 加速比为: 最大加速比为: 各段执行时间不等,输入连续任务情况下实际加速比为:,3、效率(Efficiency) 定义:设备的利用率,直接反映了处理机结构有效程度。 计算流水线效率的一般公式: 各流水段执行时间相等,输入n个连续任务 流水线的效率为: 流水线的最高效率为: 各流水段执行时间不等,输入n个连续任务 流水线的效率为:,流水线各段的设备量或各段的价格不相等时: 流水线的效率为: 即: 其中,ai k,且,流水线的吞吐率、加速比与效率的关系: 因为 因此:E=TP t ,S=kE 5、流水线性能分析举例 对于单功能线性流水线,输入连续任务的情况,通过上面给出的公式很容易计算出流水线的吞吐率、加速比和效率。,例5.1:用一条4段浮点加法器流水线求8个浮点数的和:ZABCDEFGH 分析: 1、线性流水线,输入任务不连续 2、存在数据相关,如只有A+B的运算结果出来之后才能做加C的运算 3、如果这样,与顺序执行方式完全一样 4、如果作如下变换: Z = (A+B) + (C+D) + (E+F) + (G+H) 小括号内的操作之间,没有数据相关,可以连续输入到流水线中。,解: Z = (A+B) + (C+D) + (E+F) + (G+H),1,时间,空间,2,3,求阶差,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,对阶,尾数加,规格化,加数,A,C,E,G,A+B,E+F,B,D,F,H,C+D,G+H,A+B+C+D,E+F+G+H,结果,A+B,C+D,E+F,G+H,A+B+C+D,E+F+G+H,7个浮点加法共用了15个时钟周期。 流水线的吞吐率为: 流水线的加速比为: 流水线的效率为:,5.2.4非流水线的调度技术,5.2.4.1非线性流水线的表示 1、一条非流水线一般需要一个各功能段之间的连接图和一张预约表共同来表示。 2、一张非线性流水线的预约表可能与多个非线性流水线连接图相对应 3、一个非线性流水线的连接图也可能对应有多张预约表,5.2.4.2非线性流水线的冲突,向一条非线性流水线的输入端连续输入两个任务之间的时间间隔称为非线性流水线的启动距离或等待时间。 非线性流水线的冲突:某一个或几个功能段中发生的多个任务同时争用同一功能段的情况。 禁止启动距离:引起非线性流水线功能段冲突的启动距离。所有的禁止启动距离为冲突向量。 非线性流水线中,不发生冲突的启动距离通常情况下是一个循环数列。 恒定循环。,5.2.4.3无冲突调度方法,对于一张有K列的预约表,则有m=k-1。禁止向量用C=(CmC3C2C1), 如果i在禁止向量中,则Ci=1,否则Ci=0,其中Cm一定为1,因为m比在禁止向量中。 一张预约表对应一个状态图 不同的预约也可能有相同的状态图,5.2.4.4优化调度方法,1、最小平均启动距离的下限是任意一行中“叉号”的最多个数。 2、最小平均启动距离小于或等于任意一个简单循环的平均启动距离。 3、最小平均启动距离的上限是1的个数加1。 上述方法适用于单功能非线性流水线和静态多功能非线性流水线。,5.2.5局部相关,5.2.5.1顺序流动与乱序流动 先写后读写读 先读后写读写 写写 B0和B2之间的相关是全局相关,B2内部的相关是局部相关。,5.2.5.2数据相关及其避免方法,先写后读 先读后写 写写 避免方式: (1)延迟执行 (2)建立专用路径如采用分散控制的公共数据总线法,采用集中控制的CDC记分牌法等。,5.2.5.3 数据重定向,P308 图5.62 P309 图5.63,5.2.5.4 Tomasula动态指令调度算法 令牌法,5.2.6 全局相关,全局相关是由条件转移或程序中断引起的相关,也叫控制相关。 5.2.6.1 转移的影响 为了不破坏通用寄存器和主存储器中的内容,有两种方法: (1)只进行指令译码和准备好运算所需要的操作数,在转移条件没有形成之前不执行运算。简单 (2)一直执行运算,但不送回运算结果。设置缓冲器,回送结果复杂,减少条件转移指令影响可采取的措施 1、延迟转移技术和指令取消技术 2、静转移预测技术 3、动态转移预测技术,5.2.6.2动态转移预测技术,动态转移预测技术要解决的两个问题: (1)如何记录转移历史信息。 (2)如何根据所记录的转移历史信息预测转移的方向。,三种动态转移预测技术,方法一:在指令Cache中记录转移历史信息 方法二:转移目标地址缓冲栈 方法三:转移目标指令缓冲栈 5.2.6.3提前形成条件码 5.2.6.4精确断点与不精确断点 不精确断点最后进入流水线的那条指令的地址 精确断点从中间进入流水线的那条指令的地址,5.3超标量处理机与超流水线处理机,指令级并行处理机: 超标量 m 超流水线 n 超标量超流水线 (m,n) 区别:一般流水线处理机,具有一个多功能的操作部件。ILP1,5.3.1 超标量处理机 5.3.1 .1基本结构 5.3.1.2 单发射与多发射 5.3.1.3 超标量处理机性能,5.3.1 基本结构,典型结构 (1)多个操作部件。 (2)一个或几个较大的通用寄存器堆。 (3)一个或两个高速Cache. 先进的 (1)三个处理单元 包括 A 定点CPU-由多个整数处理部件组成。 B 浮点CPU-浮点加法和乘除部件组成。 C 图形加速部件 (2)大量的寄存器,5.3.1.2 单发射与多发射 单发射处理机:取指、译码各设置一套,ILP的期望值1。一般为ILP1 多发射处理机:取指、译码各设置两套以上,ILP的期望值m。一般为1ILPm 先行至另窗口可以先发射无数据相关的指令。,5.3.1.3多流水线调度,指令的发射顺序与完成顺序 (1)顺序发射顺序完成 (2)顺序发射乱序完成 (3)乱序发射顺序完成 其中(1)和(2)均未用先行指令窗口 Fig 5.74 5.75 5.76 及程序,5.3.1.4资源冲突,以无流水线的操作与有流水线的操作相比,后者比前者少了3个时钟周天气,“忙”标志触发器。 每个时钟发射m条指令,对延迟时间为K个时钟周期的操作。不用流水线结构则使用同一个部件的两条指令的序号用那个该至少相差m*k.若用流水线,则相差m个,则不冲突。,5.3.1.5超标量处理机性能 N条指令在单流水线普通标量处理机上的执行时间: T(1,1)=(k+N-1)t,k是流水级数,t为始终周期 N条指令在一台每个时钟周期发射m条指令的超标量处理机上所需时间: T(m,1)=k+(N-m)/m t 则相对于单流水线普通标量处理机的加速比为: S(m,1)=T(1,1)/T(m,1)=m(k+N-1)/N+m(k-1) 当N趋近于无穷大时,S(m,1)max=m,5.3.2超流水线处理机 两种定义: 一个周期内能够分时发射多条指令的处理机称为超流水线处理机 两种不同并行性: 超标量处理机采用的是空间并行性 超流水线处理机采用的是时间并行性,5.3.2.1 指令执行时序 每隔1/n个时钟周期发射一条指令,流水线周期为1/n个时钟周期 在超标量处理机中,流水线的有些功能段还可以进一步细分 例如:ID功能段可以再细分为译码、读第一操作数和读第二操作数三个流水段。也有些功能段不能再细分,如WR功能段一般不再细分。因此有超流水线的另外一种定义:有8个或8个以上流水段的处理机称为超流水线处理机,5.3.2.2 典型处理机结构 MIPS R4000处理机每个时钟周期包含两个流水段,是一种很标准的超流水线处理机结构。指令流水线有8个流水段 有两个Cache,指令Cache和数据Cache的容量各8KB,每个时钟周期可以访问Cache两次,因此在一个时钟周期内可以从指令Cache中读出两条指令,从数据Cache中读出或写入两个数据。 主要运算部件有整数部件和浮点部件,5.3.2.3 超流水线处理机性能 指令级并行度为(1,n)的超流水线处理机,执行N条指令所的时间为: K是指令流水线的时钟周期数,而不是流水线级数 超流水线处理机相对于单流水线普通标量处理机的加速比为:,即: 超流水线处理机的加速比的最大值为:S(1,n)MAX = n,5.3.3 超标量超流水线处理机 把超标量与超流水线技术结合在一起,就成为超标量超流水线处理机 从开发程序的指令级并行性来看 (1)超标量开发空间并行性依靠多个操作在重复设置的部件上并行操作来提高速度。 (2)超标量开发时间并行性在同一个部件操作上重叠操作。 5.3.3.1 指令执行时序 5.3.3.2 典型处理机结构 5.3.3.3 超标量超流水线处理机性能,5.5.1 指令执行时序 超标量超流水线处理机在一个时钟周期内分时发射指令n次,每次同时发射指令m条,每个时钟周期总共发射指令m n条。,IF,时钟周期,指令,I1,I2,I3,ID,EX,WR,1,2,3,4,5,I4,I5,I6,I7,I8,I9,IF,ID,EX,WR,IF,ID,EX,WR,IF,ID,EX,WR,IF,ID,EX,WR,IF,ID,EX,WR,IF,ID,EX,WR,IF,ID,EX,WR,IF,ID,EX,WR,IF,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论