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

第5章_重叠、流水和向量处理机

发布时间:2019-07-28 14:53 来源:未知 编辑:admin

  第5章_重叠、流水和向量处理机_计算机软件及应用_IT/计算机_专业资料。第5章 重叠、流水和向量处理机 5.1 重叠方式 5.2 流水方式 5.3 向量的流水处理与向量流水处理机 5.4 指令级高度并行的超级处理机 习题 5.1 重叠方式 5.1.1 基本思想和一次重

  第5章 重叠、流水和向量处理机 5.1 重叠方式 5.2 流水方式 5.3 向量的流水处理与向量流水处理机 5.4 指令级高度并行的超级处理机 习题 5.1 重叠方式 5.1.1 基本思想和一次重叠 5.1.2 相关处理 指令的重叠解释是在解释第k条指令的操作完成之前,就可 开始解释第k+1条指令。显然,重叠解释并不能加快一条指令的 解释,但却能加快相邻两条以至整段程序的解释。 分析指令重叠过程,首先看取指k+1与分析k。它们在时间上 重叠,但取指要访问主存,分析中取操作数也可能访问主存, 这样,在一般的指令和数据混存于同一台机器的情况下,就出 现了主存冲突问题。 一种方法 让操作数和指令分别存放在两个独立编址且可同 时访问的存储器中。这有利于实现指令的保护,但增加了主存 总线控制的复杂性及软件设计的麻烦。 第二种方法是采用多体交叉主存结构,尽量让第k条指令的 操作数与第k+1条指令不在同一个存储体内,就能在一个主存周 期取得。但如果正好共存于同一个存储体就不能重叠了。 第三种方法是 增设采用先进先出方式工作的指令缓冲寄存 器。可乘主存有空时,预取下一条或几条指令存于指缓中。 5.1.1 基本思想和一次重叠 接着,看 执行 k 与分析 k+1 。为了实现它们的重叠, 硬件上应有独立的指令分析部件和指令执行部件 。而 且,由于执行时间的不同,还需在 硬件上解决控制上 的同步问题。此外,当第k条指令是转移指令时,还需 采用延迟转移技术使重叠效率不致下降。 在控制上还需解决邻近指令之间可能出现的数和指 令相关的问题。 5.1.2 相关处理 1.指令相关的处理 如果采用机器指令可修改的办法经第 k 条指令的执 行来形成第 k+1 条指令,由于在执行 k 的末尾才形成第 k+1条指令,按照一次重叠的时间关系,为避免出错, 第k 、k+1 条指令就不能同时解释,这时这两条指令之 间就发生了指令相关。 为解决指令相关问题,可设置一条“执行”指令解 决 。在这条执行指令中,被修改的指令以“执行”指 令操作数形式出现,这样就 将指令相关转化成了数据 相关 因为操作数可以存放在主存,也可以存放在通用寄 存器中,这样就有了 主存空间的数相关 和 通用寄存器 组的数相关。 2.主存空间数相关的处理 如图 5.6 所示,主存空间数相关是相邻两条指令之间 出现对主存同一单元要求先写而后读的关联。要想不出 错,只有推后分析 k+1 的读。 推后读常见的方法是由存控 给读数、写数申请安排不同的访存优先级来解决。当第k 和第 k+1 出现主存数相关时,存控先处理执行 k 的写数, 而将分析 k+1 的读申请推迟到下一个主存周期才能处理, 自动实现推后分析k+1。 3.通用寄存器组相关的处理 通用寄存器可以存放操作数、运算结果、基址值或变 址值,在指令解释过程中,使用通用寄存器作不同用途 所需微操作的时间不同。如图5.7P129所示,存放基址或 变址值一般在“分析”周期的前半段取用;操作数是在 “分析”周期的后半段取出,到“执行”周期的前半段 采用;运算结果是在“执行”周期末尾形成并存入通用 要解决通用寄存器组数相关,一种办法是可以推后分 析k+1的读到执行k结束时开始,也可推后到执行k把结果送 入L3。该方法降低了速度,当不增加设备 另一种方法就是如图5.9P130所示设置相关专用通路。 该方法增加了设备,当重叠效率并不下降。 特别的,当 通用寄存器组基址值或变址值相关 ( 如图 5.10P131)时,也可以采用推后分析(如图5.11P131)和设 置相关专用通路(如图5.12P131)的方法。 综上所述,为实现两条指令在时间上重叠解释,首先 需要付出空间代价 ,如增设数据总线、控制总线、指令 缓冲器、地址加法器、相关专业通路,将指令分析部件 和指令执行部件功能分开、单独设置,主存采用多体交 叉存取等。其次, 要处理好指令之间可能存在的关联 。 此外,还应该 合理调配好机器指令的微操作 ,使分析和 执行的时间尽可能相等,以提高重叠的效率。 5.2 流水方式 5.2.1 基本概念 5.2.2 流水线 流水机器的相关处理和控制机构 5.2.1 基本概念 1.流水是重叠的引申 如图5.14P132所示,流水是重叠的引申。 显然,如能把一条指令的解释分解成时间相等的m个子过程, 则每隔△t=T/m就可以处理一条指令。因此,流水的最大吞吐率 取决于子过程的经过时间△t,△t越小,流水线的最大吞吐率 就越高。流水的最大吞吐率是指流水线满负荷每隔△t流出一个 结果时多达到的吞吐率。实际上,流水线从开始启动到流出第 一个结果,需要经过一段流水线,在这段时间里 流水线并未流出任何结果。所以实际吞吐率总是低于其最大吞 吐率。 在实际流水线中,由于各子部件经过的时间不同,为平滑 这些子过程的速度差,一般在它们之间设有锁存器 。所有锁存 器都受同一时钟信号控制来实现各子部件信息流的同步推进 。 时钟信号周期不得低于速度最慢子部件的经过时间与锁存器的 存取时间之和,还要考虑时钟信号到各锁存器可能存在时延差 2.分类 流水线依据向下和向上扩展的思路,可分类出在计算机系 统不同等级上使用的流水线。向下扩展指的是把子过程进一 步细分,让每个子过程经过的时间都同等程度减少,吞吐率 就会进一步提高。向上扩展可理解为在多个处理机之间流水 ;流水线按照处理级别可分为部件级(部件内各子部件间的流 水)、处理机级(构成处理机的各部件之间的流水)和系统级( 构成计算机系统的多处理机之间的流水);从流水线具有功能 的多少来看,可以分为单功能流水线(只能实现单一功能的流 水)和多功能流水线(同一流水线的各个段之间可以有多种不 同的联接方式以实现多种不同的功能或功能);按多功能流水 线的各段能否允许同时用于多种不同功能联接流水,可把流 水线分成静态流水线(同一时间内各段只能按一种功能联接流 水)和动态流水线(同一时间内可按不同运算或功能联接);以 机器所具有的数据表示可把流水线处理机分为标量流水机(没 有向量数据表示,只能以标量循环方式处理向量和数据)和向 量流水机;从流水线中各功能段之间是否有反馈回路,分为 线性流水和非线.吞吐率 吞吐率是流水线单位时间里能流出的任务数或结果数 一般,如果各子过程所需的时间不同时,取最大的时间作 为时钟周期,这样,流水的最大吞吐率就等于1/最大子过程时 间。可见流水线最大吞吐率受限于流水线中最慢子过程经过的 时间。流水线中经过时间最长的子过程称为瓶颈子过程。为提 高流水线的最大吞吐率,需找到并消除瓶颈。消除瓶颈的一种 方法是如图5.20P137将瓶颈子过程再细分。另一种是如图 5.21P137通过重复设置多套瓶颈段并联,让它们交叉并行。 设一m段流水线的各段经过时间均为△t0,则完成n个任务 后流水线的实际吞吐率 TP=n/(m△t0+(n-1)△t0)=1/△t0(1+(m-1)/n)=TPmax/(1+(m1)/n) 可见,实际吞吐率总是小于最大吞吐率。只有当nm时, 才能使实际吞吐率接近于最大吞吐率。 5.2.2 流水线处理机的主要性能 加速比SP表示流水方式相对于非流水顺序方式速度提高的 比值,SP=nm△t0/(m△t0+(n-1)△t0)=m/(1+(m-1)/n) 所以,线性流水线各段时间相等时,仅当nm时,连续流 入的任务数n远多于流水线子过程数m时,其加速比才能趋于最 大值,即为流水线的段数m。 这样一来,就可以通过让子过程细分增大m的方法来提高加 速比。但是,如果增大m缩短△t0,却未能再软件、算法、语言 编译、程序设计上保证连续流动的任务数n能远大于子过程数m, 则实际吞吐率将大大低于最大吞吐率。极限情况下,当n=1时, 由于m增大。锁存器个数增多,实际增大了任务在流水线上的 通过时间,反而使其速度会比顺序串行的还要低。 如果线性流水线每段经过的时间△ti不等,其中瓶颈段的时 间是△tj ,则完成n个任务的实际吞吐率TP=n/(∑△ti+(n-1)△tj) 其加速比SP=n∑△ti/(∑△ti+(n-1)△tj) 2.效率 流水线的效率是指流水线中设备的实际使用时间占整个运 行时间之比,也称为流水线设备的时间利用率。 如果是线性流水线且各段经过的时间相同,如图5.22P138 所示,则在n个任务执行的整个时间T中,流水线各段的效率 都相同,均为η 0,即 η 1=η 2=…=η m=n△t0/T=n/(m+(n-1)=η 0 整个流水线+…+η m)/m=η 0=mn△t0/mT 式中,分母mT是时空图中m个段和流水线总时间T所围成的 面积,分子mn△t0是时空图中n个任务实际使用的面积。因此 ,从时空图的角度看,效率实际上就是n个任务占用的时空区 面积和m个段总的时空区面积之比。显然,只有当nm时,η 才趋于1。同时还可以看出线性流水线每段时间相等时,流水 线的效率正比于吞吐率,即η =n△t0/T=n/(m+(n-1)=TP△t0 尽管,在非线性流水线或线性流水线各段时间不等时,这 种正比关系并不存在。但是,为提高效率减少时空图中空白 区域所采取的措施也会为提高吞吐率带来好处。 如果流水线各段经过时间不等,各段的效率就会 不等,整个流水线的效率 η =n个任务实际占用的时空区/m个段总的时空区 =n∑△ti/m(∑△ti+(n-1)△tj) 3.流水线 流水机器的相关处理和控制机构 流水线只有连续不断流动,不出现断流,才能提高 效率。造成流水线断流的原因除了编译形成的目的程 序不能发挥流水结构的作用,或存储系统供不上连续 流动所需的指令和操作数以外,还由于出现了相关和 中断。 流水机环境下,转移指令和其后的指令之间存在关 联,使之不能同时解释,其造成的对流水机器的吞吐 率和效率下降的影响要比指令相关、主存操作数相关 和通用寄存器组相关及基址值或变址值相关严重得多, 所以称为全局性相关。而后者只影响相关得两条或几 条指令,最多影响流水线某些段工作的推后,不会改 变指缓中预取得指令,影响是局部得,故称为局部性 相关。 1.局部性相关的处理 包括指令相关、访存操作数相关和通用寄存器组相关等局 部性相关都是由于在机器同时解释的多条指令之间出现了对 同一主存单元或寄存器要求先写后读。重叠机器处理局部性 相关采用推后读和设置相关直接通路的方法,这两种方法同 样适用于流水机器。而其中,因为流水机器同时解释多条指 令,如果在各功能部件之间为每个局部性相关都设置单独的 相关直接通路,将会耗费大量的硬件资源,而且控制复杂, 因此,一般会设置公共数据总线所示的 分布式控制和管理方法进行处理。 任务在流水线中流动顺序的安排和控制可以有两种方式。 一种是让任务流出流水线的顺序保持与流入流水线的顺序一 致,称为顺序流动方式或称同步流动方式;另一种是让流出 流水线的任务顺序和流入流水线的顺序不同,称为异步流动 方式。一般,同步流动方式控制比较简单,但流水线的吞吐 率和效率都要下降;而异步流动方式尽管控制复杂,流水线 的吞吐率和效率则均未下降,但是可能会出现顺序流动不会 发生的写-写相关和先读后写相关等问题。 2.全局相关的处理 1)猜测法 若指令i是条件转移指令,有两个分支。一个是按原来顺 序执行的i+1、i+2、…的转移不成功分支;另一个是转向p、 p+1、…的转移成功分支。当指令i进入流水线时,只有等到 条件码建立才能确认如何进行转移,这必将让i之后的指令停 等,流水线就会断流,性能急剧下降。为此,可采用猜测法 猜取两个分支之一继续向前流动。 在猜测时,如果两个分支概率相近,宜选i+1不成功转移 分支,因为它已经预取进缓指,可以很快从中取出进入流水 线而不用等待。而当两个分支概率不均等时,宜猜高概率分 支。转移概率可以静态根据转移指令类型或程序执行期间转 移的历史状况来预测,但需要事先对大量程序的转移类型和 转移概率进行统计,且统计出的概率也不一定能保证较高的 猜测准确度。如果采用动态策略,由编译程序根据执行过程 中转移的历史纪录来动态预测未来的转移选择,可使预测准 确度提高到90%。 采用猜测法还应能保证猜错时可恢复分支点处原先的现场 。一般有三种方法:一种方法是在执行猜测分支时对指令只 译码和准备好操作数,在转移条件码出现之前不进行运算; 另一种方法是运算但不送回结果;第三种方法是采用后援寄 存器保存可能被破坏的原始状态,一旦猜错,就取出后援寄 存器的内容来恢复分支点的现场。 此外,为了让猜错后能尽快回到原分支处转入另一个分支 ,在沿猜测路径向前流动的同时,还可以由存储器预取转移 成功分支的头几条指令放在转移目标指令缓冲器中,以便在 猜错时不必从访存取p开始;有些机器的指令流水线除了设置 正常指令缓冲器外,还设置了两套转移目标指令缓冲器。 2)加快和提前形成条件码 一方面加快单条指令内部条件码的形成,不等指令执行完 成就提前形成反映运算结果的条件码;另一方面是在一段循 环型程序内提前形成条件码 3)采取延迟转移 将转移指令与其前面不相关一条或多条指令交换位置 4)加快短循环程序的处理 一是可以将长度小于指缓容量的短循环程序整个一次性放 入指缓内,并暂停预取指令,避免执行循环时由于指令预取 导致指缓中需循环执行的指令被冲掉,减少访主存重复取指 的次数;二是由于循环分支概率高,可以让循环出口端的条 件转移指令恒猜循环分支,减少因条件分支造成流水线.流水机器的中断处理 中断会引起流水线断流,但出现的概率比条件转移的概率 低得多,且又是随机发生,故流水机器处理中断主要是如何 处理好断点现场的保存和恢复,而不是如何缩短流水线的断 流时间。 早期采用不精确断点法。即不论指令i在流水线的那一段 发生中断,未进入流水线的后续指令不再进入,已在流水线 的指令仍继续流完,然后再转入中断处理程序执行。这样断 点就不一定是i,即断点不精确。后期采用精确断点法。即不 论指令i是在流水线的那一段响应中断,给中断处理程序的现 场全都对应i,i之后流入流水线的指令的原有现场都能恢复 4.流水线调度 由于线性流水线在执行每个任务的过程中,每段均只通过 一次,故每拍都可以将一个新的任务送入流水线,这些任务 不会争用同一个流水段。而在非线性流水线中,因段间有反 馈回路,一个任务在流水的全过程中,可能会多次通过同一 段或越过某些段,这样就有可能会出现多个任务争用同一功 能段的使用冲突现象。要想不发生冲突就得间隔适当的节拍 数之后再向流水线送入下一个任务。究竟间隔几拍送入下一 个任务才既不发生功能段使用冲突,又能使流水线有较高的 吞吐率和效率,使流水线调度要解决的问题。 为了对流水线任务进行优化调度和控制,提出了使用一个 二维预约表的方法。该方法分为以下几个步骤: ①构成延迟禁止表 ②得到初始冲突变量 ③画出流水线状态转移图 ④计算每种调度方案的平均间隔拍数,找出最小的一种间 隔拍数呈周期性重复的方案 5.3 向量的流水处理与向量流水处理机 5.3.1 向量的流水处理 5.3.2 向量流水处理机 由于向量内部各元素很少相关,且一般又是执行同一 种操作,易于发挥出流水线的功效,所以可将向量数据表 示和流水线结合构成向量流出处理机。 向量的流水处理与所采用的计算机结构有关。不同的 向量处理方式会对流水处理机的结构、组成提出不同的要 求,而结构和组成不同的向量处理反过来也会要求采用不 同的向量流水处理方式。 向量的处理方式有横向处理方式和纵向处理方式两种。 横向处理方式每次从向量中逐次取出分量,完成所有运算, 得到结果向量的相应分量;而纵向处理方式则按照运算的 先后次序,逐个向量进行运算。 如果向量的长度N超出了向量寄存器组中寄存器的个数, 可以将该向量分割成若干组,使每组都能装得进向量寄存 器组中 5.3.1 向量的流水处理 5.4 指令级高度并行的超级处理机 5.4.1 超标量处理机 5.4.2 超长指令字处理机 5.4.3 超流水线 超标量处理机 常规的标量处理机在每个△t期间解释完一条指令, 而超标量处理机则采用多指令流水线,每个同时流出m 条指令(称为度m)。 一般,在超标量流水线处理机中,会配置多套功能 部件、指令译码电路和多组总线,寄存器也备有多个 端口和多组总线。 超标量流水线处理机非常适合于求解稀释矩阵这类 标量计算问题。 5.4.2 超长指令字处理机 超长指令字结构是将水平型微码和超标量处理两者 结合。与超标量处理机不同,在编译时,编译程序找 出指令间潜在的并行性,将多个能并行执行的不相关 或无关的操作先行压缩组合在一起,形成一条有多个 操作段的超长指令。运行时不再用软件或硬件检测其 并行性,直接由这条超长字指令控制机器中多个相互 独立的功能部件并行操作。每个操作段控制其中的一 个功能部件,相当于同时在执行多条指令。 硬件结构和指令系统简单,是一种不同于SIMD的 单指令多操作码多数据的系统结构。

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