您好、欢迎来到现金彩票网!
当前位置:2019跑狗图高清彩图 > 向量指令 >

工学]第五章 重叠、流水和向量处理机ppt

发布时间:2019-07-25 09:38 来源:未知 编辑:admin

  1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

  第五章 重叠、流水和向量处理机 5.1.1 重叠的基本概念 1.顺序执行方式 执行n条指令所用的时间为: 如果每段时间都为t,则执行n条指令所用的时间为:T=3×n×t 主要优点:控制简单,节省设备 主要缺点:速度慢,功能部件的利用率低 2.一次重叠执行方式 将一条指令的执行分解成“分析”和“执行”两个子过程 主要优点: 指令的执行时间缩短, 功能部件的利用率明显提高。 主要缺点: 需要增加一些硬件, 控制过程稍复杂。 3.二次重叠执行方式 将一条指令的执行分解成“取指”、“分析”和“执行”三个子过程 在理想情况下,处理机中同时有三条指令在执行。 处理机的结构要作比较大的改变,需要采用先行控制技术。 5.1.2 先行控制方式的原理 1.采用二次重叠执行方式必须解决两个问题: (1)有独立的取指令部件、指令分析部件和指令执行部件 把一个集中的指令控制器,分解成三个独立的控制器: 存储控制器、指令控制器、运算控制器 (2)要解决访问主存冲突问题 取指令、分析指令、执行指令都可能要访问存储器 2.解决访存冲突的方法: (1)采用低位交叉存取方式: 这种方法不能根本解决冲突问题。 指令、读操作数、写结果。 (2)两个独立的存储器:独立的指令存储器和数据存储器。 如果再规定,执行指令所需要的操作数和执行结果只写到通用寄存器,则取指令、分析指令和执行指令就可以同时进行。 在许多高性能处理机中,有独立的指令Cache和数据Cache。这种结构被称为哈佛结构。 (3)采用先行控制技术 采用先行控制技术的关键是缓冲技术和预处理技术。 缓冲技术通常用在工作速度不固定的两个功能部件之间。设置缓冲栈的目的是用来以平滑功能部件之间的工作速度。 在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而大幅度提高程序的执行速度。 5.1.3 处理机结构 1.三个独立的控制器: 存储控制器、指令控制器、运算控制器。 2.四个缓冲栈: 先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后行写数栈。 3.处理机组成 5.2 流水方式 空间并行性:设置多个独立的操作部件 时间并行性:分时使用同一个部件的不同部分 5.2.1 流水线 流水线 流水线) 基本概念 流水线:重叠概念的引申 时空图:空间、时间 (2) 流水线.是否有反馈回路 线性流水线(Linear Pipelining): 数据顺序流过流水线各段一次且仅一次 非线性流水线(Nonlinear Pipelining): 有回路,即流水线.按使用级别来分 功能部件级 如“浮点加法流水线”,也叫“运算流水线” 处理机级 指一条指令分解成多个子过程,也叫“指令流水线” 处理机间级 多处理机通过存储器串联,形成流水线. 单功能流水线与多功能流水线 单功能流水线: 只能完成一种固定功能的流水线条 Pentium有一条5段定点和一条8段浮点流水线。 PentiumⅢ有两条定点和一条浮点指令流水线。 多功能流水线: 流水线的各段通过不同连接实现不同功能 Texas公司的ASC机,8段流水线,能够实现:定点加减法、定点乘法、浮点加法、浮点乘法、逻辑运算、移位操作、数据转换、向量运算等。 4.多功能流水线又可分为:静态流水线与动态流水线 静态流水线:同一段时间内,各个功能段只能按照一种方式连接,实现一种固定的功能。 动态流水线:在同一段时间内,各段可以按照不同的方式连接,同时执行多种功能。 5.2.2 流水线处理机的性能 主要指标:吞吐率、加速比和效率 1.吞吐率(Though Put) 流水线吞吐率的最基本公式: 其中:n为任务数, Tk为完成n个任务所用的时间。 各段执行时间相等,输入连续任务情况下,完成n个任务需要的总时间为: Tk=(k+n-1)?t 其中:k 为流水线的段数,?t为时钟周期。 Tk= k ? Δt + (n-1) Δt = (k+n-1)?t 各段时间不等,完成n个连续任务: 吞吐率: 最大吞吐率: 流水线各段执行时间不相等的解决办法 (1)分离瓶颈段(如果可分的线.加速比(Speedup) 计算加速比的基本公式: 各段执行时间相等,输入连续任务情况下, 加速比: 最大加速比: 各段时间不等,输入连续任务情况下, 实际加 速比为: 当流水线段数增加时,需要连续输入的任务 数也必须增加 3.效率(Efficiency) 计算流水线效率的一般公式: 各流水段时间相等,输入n个连续任务,流水线的效率为: 最高效率为: 各流水段时间不等,输入n个连续任务,流水 线. 流水线性能分析举例 对于单功能线性流水线,输入连续任务的情况,通过上面给出的公式很容易计算出流水线的吞吐率、加速比和效率。 对于输入不连续任务,或多功能流水线,通常具体情况具体分析。 例5.2: 用一条4段浮点加法器流水线个浮点数的和:Z=A+B+C+D+E+F+G+H 解: Z=[(A+B)+(C+D)]+[(E+F)+(G+H)] 解: 例:计算向量点积 例:计算向量点积 如果在动态流水线中,时空图变化如下: 练习 设向量A和B各有6个元素在下图所示的静态双功能流水线上计算向量点积A·B= ,其中1→2→3→5组成加法流水线组成乘法流水线。若假定流水线的各段所经过的时间均为△t,流水线输出可直接送回输入或暂存于相应缓冲寄存器中,其延迟时间和功能切换所需的时间都可忽略。 (1)画出时空图 (2)求出吞吐率、加速比。 5.2.3 流水线 非线)构建禁止表F (Forbidden List) F={1,5,6,8} (2)由禁止表求冲突向量C (Collision Vector) C=(Cn-1Cn-2…Ci…C3C2C1) Ci=1表示禁止间隔i 流入后续任务; Ci=0表示允许间隔i 流入后续任务; 初始冲突向量C0=(10110001) (3)由初始冲突向量求后继状态C,画状态有向图 后继状态冲突向量 Cj= SHR(K)(Ci) V C0 C0=(10110001)有4个后继状态: C1= SHR(2)(C0) V C0 =(00101100)V(10110001)=(10111101) C2= SHR(3)(C0) V C0 =(00010110)V(10110001)=(10110111) C3= SHR(4)(C0) V C0=(10111011) C4= SHR(7)(C0) V C0= C0 C1=(10111101)有2个后继状态: C5= SHR(2)(C1) V C0= (00101111)V(10110001)=(10111111) C6= SHR(7)(C1) V C0= C0 C2=(10110111)有2个后继状态: C7= SHR(4)(C2) V C0= (00001011)V(10110001)=(10111011)= C3 C8= SHR(7)(C2) V C0= C0 C3有2个后继状态 C5有1个后继状态,以下略,直到不产生新的后继状态为止 例题 5.3 向量的流水处理与向量处理机 5.4 指令级高度并行的超级处理机 5.4 指令级高度并行的超级处理机 5.4 指令级高度并行的超级处理机 5.4 指令级高度并行的超级处理机 5.4 指令级高度并行的超级处理机 5.4 指令级高度并行的超级处理机 局部性相关:在执行本条指令的过程中,如果用到的指令、操作数、变址量等是前面指令的执行结果,这种相关称为局部性相关。 全局相关:由条件分支指令、转子程序指令等引起的相关。 流水机器的中断处理 局部性相关 指令j的操作数是指令h的结果,流水线段为写段。指令j需要指令h达到第8段时,才能进入第2段进行“读” (先写后读相关) 结果:流水线)设置相关专用通路 全局性相关 (1)猜测法 (2)加快和提前形成条件码 条件码i-1与转移指令分开,将i-1提前形成 (3)采取延迟转移 编译器生成目标程序时,将转移指令与其前面不相关的一条或多条指令交换位置。 (4)加快短循环程序的处理 将长度小于指缓容量的短循环程序整个一次性放入指缓内,并暂停取指令;猜选分支恒选循环分支。 流水机器的中断处理 中断会引起流水线断流。然而,其出现概率比条件转移的概率要低得多,且又是随机发生的。所以,流水机器处理中断主要是如何处理好断点现场的保存和恢复,而不是如何缩短流水线的断流时间。  在执行指令i时有中断,断点本应在指令i执行结束,指令i+1尚未开始执行的地方,但流水机器是同时解释多条指令, 指令i+1、 i+2…可能已进入流水线被部分解释。 有两种处理方式 (1) 精确断点法 (2) 不精确断点法 非线性流水线调度的任务是要找出一个最小的循环周期,按照这周期向流水线输入新任务,流水线的各个功能段都不会发生冲突,而且流水线的吞吐率和效率最高。 非线 √ √ 1 9 8 7 6 5 4 3 2 1 拍号n 段号k C1 C2 C3 C5 (4)由状态有向图求无冲突调度策略 7 △t 7 5.5 △t 4 7 4.67 △t 3 4 7 3.5 △t 3 4 3.67 △t 2 2 7 4.5 △t 2 7 平均时间间隔 调度策略 (3 4) 方式最优 (5)画时空图,求TP、S、E 连续输入8个任务时,流水线的吞吐率为 √ √ S5 √ √ S4 √ √ S3 √ √ S2 √ √ S1 7 6 5 4 3 2 1 一个五段的非线性流水线的预约表如下。试求出最优调度策略,并计算连续输入10个任务时,流水线 向量处理与向量指令 例如:for (i=10;i=1010;i++ ) c[i]=a[i]+b[i+5]; 在向量处理机上,可用1条指令表示: c(10:1010) = a(10:1010) + b(15:1015) 即1条向量指令可以处理N个N对操作数 向量的三种处理方式: 以Y[i]=A[i]*(B[i]+C[i])为例 (1)横向处理方式 T(1) = B(1)+C(1) , Y(1)= A(1)* T(1) T(2) = B(2)+C(2) , Y(2)= A(2)* T(2) ?????? ?????? T(n) = B(n)+C(n) , Y(n)= A(n)* T(n) (2)纵向处理方式 T(1) = B(1)+C(1) T(2) = B(2)+C(2) ?????? T(n) = B(n)+C(n) Y(1)= A(1)* T(1) Y(2)= A(2)* T(2) ?????? Y(n)= A(n)* T(n) (3)纵横处理方式 向量寄存器长度 n=64 ,向量长度N64 ,则需对向量进行分组处理 N = K*n + r 5.3.2 向量处理机的结构 5.3.3 向量指令的执行 Vi冲突:并行工作的各向量指令,源向量或结果向量使用了相同的Vi 例如:V4 - V1 + V2 V5 - V1 ^ V2 ^ 表示任何操作 功能部件冲突:同一个功能部件被要求并行工作的多条指令所使用 例如:V3 - V1 + V2 V6 - V4 + V5 链接方式:只要不出现功能部件和Vi冲突,有“先写后读”的向量指令可以采用链接方式执行 例如:D=A*(B+C),B和C取至了V0,V1后运算以下指令 V3 - 存储器 取A V2 - V0 + V1 B+C V4 - V2 * V3 乘法 向量长度为N 分析:指令1、2无功能部件和Vi冲突,可以并行,第3条指令通过链接,可以实现3条向量指令的大部分时间并行。 3条指令执行完的总时间为:17+(N-1)拍 5.4.1 超标量处理机 单发射、多发射,每△t流出m条指令(称为度m) 普通标量处理机(单流水线)处理N条指令的处理时间: T(1) = (k+N-1) △t 在每个周期发射m条指令的超标量处理机上执行的时间为: 超标量处理机相对于单流水线标量处理机的加速比为: 5.4.1 超标量处理机 度m=3的超标量处理机时空图 5.4.2 超流水线处理机 分时发射,每△t流出n条指令(称为度n) 在每个周期发射m条指令的超标量处理机上执行的时间为: 超流水线处理机相对于单流水线标量处理机的加速比为: 5.4.3 超标量超流水线 向量流水处理与向量处理机 5.4 指令级高度并行的超级处理机 5.1 重叠解释方式 执行k 分析k 执行k+1 分析k+1 执行k+2 分析k+2 求阶差 输入 输出 Dt1 对阶 尾数加 规格化 Dt2 Dt3 Dt4 浮点加法流水线 吞吐率为: 最大吞吐率为: 1 4 7 10 1 4 7 10 S s3b s3a s2 s1 t1 t12 t17 T s3c s4 6 8 11 12 3 5 9 11 12 2 3 5 9 2 6 8 1 4 7 10 3 5 9 11 12 2 6 8 1 4 7 10 3 5 9 11 12 2 6 8 1 4 7 10 3 5 9 11 12 2 6 8 1 4 7 10 3 5 9 11 12 2 6 8 采取“分离瓶颈段”方式时的任务时空图 设有两个向量A和B,各有4个元素,要在如图所示的静态双功能流水线上,计算向量点积AB,其中1-〉2-〉3-〉5组成加法流水线组成乘法流水线,又设每个流水线所经过的时间均为Dt,而且流水线的输出结果可以直接返回到输入或存于相应的缓冲寄存器中,其延迟时间和功能切换所需的时间都可以忽略不计。 1 2 3 5 4 x y z A*B=a1b1+ a2b2+ a3b3+ a4b4 空间 时间 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5 4 3 2 1 5 4 3 2 1 A*B=a1b1+ a2b2+ a3b3+ a4b4 空间 时间 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 * * *

http://bluecaleel.com/xiangliangzhiling/281.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有