系统结构
- 格式:doc
- 大小:51.50 KB
- 文档页数:5
计算机系统结构读书报告摘要介绍如何通过采用重叠与流水等控制方式来提高结实机器语言程序的速度,介绍所用的控制结构,实现中要解决的冲突及相关,以及对性能的分析。
在此基础上,介绍向量的流水处理、向量流水处理机,最后简要介绍在指令级上发展高度并行的超标量处理机、超长指令字处理机及超流水线处理机的工作原理。
关键词重叠流水向量的流水处理超级处理机引言随着计算机的发展,加快机器语言的解释成为计算机组成设计的瓶颈。
要想使得计算机有着更好的运算速度与反应速度,一方面通过选用更高速的器件、更好的运算方法、减少解释过程中所需的节拍数。
另一方面,通过控制机构采用同时解释两条、多条以致整个程序段的控制方式来加快整个机器语言程序的解释。
而重叠和流水则是其中最常用的控制方式。
1 重叠解释方式1.1 基本思想指令的重叠解释方式是相对于指令的顺序解释方式的。
在顺序解释方式中,各条指令之间顺序串行的执行,执行完一条指令后才取出下一条指令执行,并且每条机器指令内部的各个微操作也是顺序执行;重叠解释方式是在解释第k条执行的操作完成前,就可开始解释第k+1条指令,它虽不能加快一条指令的实现,但能加快响应两条以至一段程序的解释。
1.2 怎样实现重叠为了解决“取指k+1”与“分析k”在时间上重叠,一种办法是让操作数和指令分别存放于两个独立编址且可同时访问的存储器中;另一种办法仍维持指令和操作数混存,但采用多体交叉主存结构,只要第k条指令的操作数与第k+1条指令不在同一个体内,仍可在一个主存周期取得,从而实现“分析k”与“取指k+1”重叠,然而,这两者若正好共存于一个体内时就无法重叠。
第三种办法是增设采用先进先出方式工作的指令缓冲寄存器(简称指缓)。
设置指缓就可乘主存有空时,预取下一条或下几条指令存于指缓中。
为了实现“执行k”与“分析k+1”重叠,硬件上还应有独立的指令分析部件和指令执行部件,此外还需在硬件上解决控制上的同步,保证任何时候都只是“执行k ”与“分析k +1”重叠。
就是说,即使“分析k +1”比“执行k ”提前结束,“执行k +1”也不紧接在“分析k +1”之后与“执行k ”重叠进行;即使“执行k ”比“分析k+1”提前结束,“分析k +2”也不紧接在“执行k ”之后与“分析k +1”重叠进行1.3 控制问题条件转移:第k 条指令是按其执行结果进行转移的条件转移指令,并成功转移到m 单元,则与“执行k ”重叠的“分析k +1”需要撤销并从头分析第m 条指令。
针对条件转移,可利用延迟转移技术(将转移指令与其前面一条指令对换位置,让成功转移总是在紧跟的指令被执行之后发生)。
数相关:分为主存数相关和寄存器数相关。
主存数相关是在相邻指令之间出现了对主存同一单元要求在先的指令必须先完成写,在后的指令才能读的“先写后读”相关。
由于发生主存数相关概率很低,可采用推后后续指令对相关单元的读操作;寄存器数相关,包括L 1(k +1)=L 3(k )的L1相关,而当L 2(k +1)=L 3(k )时就发生了L2相关,其发生概率很高,采用相关专用通路来解决。
通用寄存器组基址值或变址值相关的处理:对于B(k+2)=L3(k)的B 二次相关设置相关专用通路,就可以不用推后处理;对于B(k+1)=L3(k)的B 一次相关则需要延后一个执行周期。
2 流水方式流水是重叠的引申,即是把指令的解释分成更多的子过程,让相邻的指令的解释在时间上错开重叠。
2.1 流水线的分类流水的向下扩展是把流水的子过程进一步细分,通过减少子过程的经过时间,来提高流水线的最大吞吐率;流水的向上扩展是让流水在多个处理机之间进行,在任务、作业一级上的流水。
按流水具有功能的多少,将流水分成单功能的和多功能两类。
单功能流水线是流水线内各段固定连接,只能完成单一的一种功能。
多功能流水线式流水线中各个段可以有多种不同的连接,以实现多种不同的功能。
按流水线处理机是否具有向量数据表示,分为向量流水机和标量流水机。
从流水线中各功能段之间是否有反馈回路,可把流水线分为线性流水和非线性流水。
流水线各段串行连接,各段只经过一次,没有反馈回路的,称为线性流水线。
流水线除有串行连接的通路,还有反馈回路,使任务流经流水线需多次经过某个段或越过某些段,则称为非线性流水线。
2.2 流水线处理机的主要性能吞吐率Tp :吞吐率是流水线单位时间里能流出的任务数或结果数。
它受限于流水线中最慢子过程经过的时间。
流水线中经过时间最长的子过程称为瓶颈子过程。
}{max 11m ax i m i p t T ∆==为了提高流水线的最大吞吐率,首先要找出瓶颈,然后设法消除此瓶颈。
消除瓶颈的一种办法是将瓶颈子过程再细分。
若是在不能细分,在考虑将多个瓶颈子过程并联。
设现行流水段的经过瓶颈段时间j t ∆,在指令之间无数据相关的情况下,完成n 条指令所达到的实际吞吐率:加速比:流水线的效率是指流水线中的设备实际使用时间占整个运行时间之比,也称流水线设备的时间利用率。
2.3 流水机器的相关流水机的相关有全局性相关和局部性相关。
流水机的全局相关是指转移指令与其后续指令之间的关联,不仅不能同时解释,还会使指令缓冲器所预取的指令全部作废,重新花较长时间再去访存取出指令。
局部相关是指令相关、主存数相关、通用寄存器相关等,它们只影响到使相关的指令在某些功能段上停等一段时间,对流水线的吞吐率和效率下降的影响是局部的。
局部性相关的处理:与重叠一样,一种是推后后续指令对相关单元的读,直至在先的指令写入完成;另一种是设置相关直接通路,将运算结果经相关直接通路直接送入所需部件。
为了是流水线发生局部相关的指令在某个功能段处于停留时,后续不相关的指令可以越过它继续向前流动,以保证流水线仍具有高的吞吐率和效率,可以采用异步流动的控制方式。
异步流动方式是指流入流水线的指令顺序可以与流入流水线之前的指令顺序吧相同。
流水线采用异步流动后,会产生同步流动不会出现的“写——写”相关和“先读后写”相关。
全局性相关的处理:1、猜测法:猜选i+1和p 中的一个分支继续流入流水j m i i m i i p j mi i t n t t n S t n t n TP ∆-+∆∆⋅=∆-+∆=∑∑∑===)1()1(111⎥⎦⎤⎢⎣⎡∆-+∆⋅∆⋅=--=∑∑==j m i i m i i t n t m t n m n )1(11空区个段总的时空白个任务实际占用的时η线;2、加快条件转移时条件码的生成,提前知道程序将流向哪个分支,就可以减少猜错时,流水线效率的过分下降;3、加快对短循环程序的处理,如果发现是一个短循环程序,可将整个循环程序中的各条指令一次性全部装入指令缓冲器,并暂时停止指令的预取操作,以减少不必要的访存次数。
流水线的中断处理中断会引起流水线断流。
流水机器处理中断主要是如何处理好断点现场的保存和恢复。
其中有“不精确断点法”和“精确断点”。
不精确断点即在发生中断时,不再取指令进入流水线,这种方法响应中断不及时,等流水线上的指令运行完再进行中断。
其硬件投入少,故障指令不精确,不利于编程和程序的排错。
“精确断点”法需设置很多后援寄存器,以保证流水线内各条指令的原有现场都能保存和恢复。
这些寄存器也是“指令复执”所必需的。
2.4 流水线调度为了能对流水线的任务进行优化调度和控制,1971年E.S.Davidson等人提出使用一个二维的预约表(ReservationTable)。
根据预约表可以很容易得出一个任务使用各段所需间隔的拍数。
将流水线中所有各段对一个任务流过时会争用同一段的节拍间隔数汇集在一起构成一个延迟禁止表F。
冲突向量(cN-1…ci…c2c1)中第i位的状态表示与当时相隔i拍给流水线送入后续任务是否会发生功能段的使用冲突。
如果不会发生冲突,令该位为“0”,表示允许送入;否则让该位为“1”,表示禁止送入。
冲突向量取N-1位是因为经N拍后,该任务已流出流水线不会与后续的任务争用流水功能段了。
只要按流水线状态图中由初始状态出发,能构成一种调度间隔延迟拍数呈周期性重复的方案来进行流水线的调度,都不会发生功能段使用冲突。
要想找出一种最佳的调度方案使流水线的吞吐率最高,只要计算出每种调度方案的平均间隔拍数,从中找出其最小者即可。
其中第n冲突向量的移位要与初始向量相或,产生新的冲突向量。
3 向量的流水处理与向量流水处理机不同的向量处理方式会对流水处理机的结构、组成提出不同的要求,而结构和组成不同的向量处理机反过来也会要求采用不同的向量流水处理方式。
如果采用逐个求D向量元素的方法,即访存取ai、bi、ci元素,按上述算术表达式求出di,再取ai+1、bi+1、ci+1,求di+1,这种处理方式我们称其为横向(水平)处理方式。
如果向量的长度N太长,超出了向量寄存器组中寄存器的个数,可以将该向量分割成若干个组,使每组都能装得进向量寄存器组中。
这样,每一组内均按纵向方式处理,而组和组之间则采用软件方法编制循环程序的方法依次循环处理。
我们称这种处理方式为分组纵横处理方式。
3.1 向量流水处理机在CRAY—1向量处理机中,每条向量指令的内部都是流水,在此基础上,邻近多条向量指令之间如果既无流水线功能部件的使用冲突,也无向量寄存器组V i的使用冲突,只有V i的先写后读相关,可以通过链接,实现指令之间大部分时间并行地流水。
所谓流水线的链接,就是将前面指令的结果向量元素直接链入后续指令所用的流水线,使多个流水线功能部件链接,构成一条大的流水线从而使处理机有更高的性能,在链接时,如果后续指令的两个源向量寄存器恰好分别是先行两条指令的结果向量寄存器组,只要前面这两条指令能够设法调整在同一时钟周期得到第一对分量时,也可以与后续指令链接。
如果两条向量指令的向量长度不等,不能链接。
CRAY—1的向量指令可以让源向量和结果使用同一个向量寄存器组,并控制分量计数器值的修改来实现递归操作。
3.2 指令级高度并行的超级处理机超标量处理机、超长指令字处理机和超流水线处理机是指令级高度并行的三种不同的超级处理机。
让单处理机在每个时钟周期里可同时解释m条指令,称处理机并行的度为m。
超标量处理机是采取设置m条指令流水线同时并行,来实现度为m的。
它是靠编译时,由编译程序来优化编排指令的执行程序,将可并行的指令搭配成组,硬件不调整所执行指令的顺序,以利于实现。
超长指令字处理机是将水平型微码和超标量处理相结合。
在编译时,将多个能并行执行的不相关或无关的操作组合在一起,形成一条有多个操作码字段的超长指令字。
运行时,直接控制机器中多个相互独立的功能部件并行操作,来实现同时执行多条指令。
超流水线处理机不同于超标量处理机和VLIW处理机,每个Δt′仍只流出一条指令,但它的Δt′值小,一台度为m的超流水线处理机的Δt′只是基本机器周期Δt的1/m。