版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、四川大学系统结构期末总结第一章RISC:精简指令集计算机,简化了指令系统,使得 更多地实现流水和caches系统结构的重大转折:从单纯依靠指令级并行转向开发线程 级并行和数据级并行。翻译:先把N+1级程序全部转换成 N级程序后,再去执行 新产生的N级程序,在执行过程中 N+1级程序不再被访问。(编译)解释:每当一条N+1级指令被译码后,就直接去执 行一串等效的N级指令,然后再去取下一条 N+1级的指令,依 此重复进行。解释执行比编译后再执行所花的时间多,但占用的存储空间 较少。Amdahl提出的系统结构实际上是指传统机器语言级程序员 所看到的计算机属性。计算机组成:计算机系统结构的逻辑实现。计
2、算机实现:计算机组成的物理实现计算机系统结构的分类:Flynn分类法:按指令流和数据流的多倍性进行分类。SISD (顺序处理机、标量流水线处理机)SIMD(阵列处理机、向量流水线处理机)MISDMIMD (多处理机)指令流 (Instructionstream ):机器执行的指令序列;数据流 (Datastream):由指令处理的数据序列;多倍性( Multiplicity ): 在系统最窄的部件上,处于同一时间单位内,最多可并行执行的指令条数或处理的数据个数冯式分类法:用系统的最大并行度对计算机进行分类。最大并行度:计算机系统在单位时间内能够处理的最大的二 进制位数。计算机系统的定量原理1.
3、以经常性事件为重点进行优化2.Amdahl定律加快某部件执行速度(部件加速比Se)所能获得的系统性能加速比(Sn),受限于该部件的执行时间占系统中总 执行时间的百分比(Fe)。假定某部件的运行时间在全系统运行时间T0中所占的百分比为Fe,系统中其他部分运行时间所占百分比为1-Fe。再设该部件改进前后的运行时间之比为Se,也即该部件速度提高的倍数。于是对该部件改进后,全系统的运行时间应为: Tn=T0(1 -Fe)+T0Fe/Se=T0(1 Fe+Fe/Se)(利用对力口速比的计算, 可以决定提高全系统性能的努力应该从何处入手,即花较小的代价,获取较大的效益。)3.CPU性能公式1)习惯上总是以
4、主时钟(时钟周期)T C来表示一个 CPU的速度2) CPU时间一个程序在 CPU上运行 所需的时间TCPU表示为:?TC表示时钟周期时间。?CPI表示执行每条指令所需的平均时钟周期数。(作为衡量CPU运行速度的指标)?IN表示要执行程序中的 指令总数。(执行概率)4.程序的局部性原理:时间局部性:程序即将用到的信息很可能就是目前正在使用的信息。空间局部性:程序即将用到的信息很可能与目前正在使用的 信息在空间上相邻或者临近。二.计算机系统的性能评测1.执行时间:计算机完成某一任务 所花费的全部时间2.吞吐率(throughput):单位时间内完成的任 务数。3.基准测试程序(benchmark
5、):用高级语言编写用于测试和 比较性能的程序。分为两类:1)一类用以测试系统中所用的元部件,如 CPU、 硬盘等。2)一类则用来对全系统的性能进行测试。以前常采用简化了的程序,例如:(1)核心程序:从真实的 程序中选出的关键代码段构成的小程序。(2)合成测试程序:人工合成出来的程序。(3)小测试程序:简单的只有几十行的程序。从测试性能的角度来看,上述测试程序不可信。SPEC测试程序套件:由各种不同的真实应用程序构成,能 比较全面地反映计算机在各个方面的处理性能。4.MIPS (MillionInstructionPerSecond ),被称为每秒百万条指 令,用于衡量标量处理机定点运算的速度对
6、冯诺依曼系统结构 进行的改进1)输入/输出方式的改进2)采用并行处理技术(在 不同的级别采用并行技术。如:微操作级、指令级、线程级、进程级、任务级等。)3)存储器组织结构的发展4)指令集的发展(复杂指令集计 算机(CISC)精减指令集计算机(RISC)软件的可移植性: 一个软件可以不经修改或者只需少量修改就可以由一台计算机 移植到另一台计算机上正确地运行。我们称这两台计算机是软件兼容的。实现可移植性的常用方法:系列机,模拟与仿真,统一高级语 言。模拟:指用软件的方法在一台计算机 a上实现另一台计算机 B的功能。A机通常称为宿主机,B机实际上不一定存在,因此称为虚 拟机。仿真:当宿主机采用微程序
7、控制器时,通过宿主机上的微程 序来实现虚拟机指令系统中一条指令的功能。这种模拟过程不是在指令级进行,而是在宿主机的微程序水 平上进行,称为仿真。并行性:计算机系统在同一时刻或者同一时间间隔内进行多 种运算或操作。(只要在时间上相互重叠,就存在并行性 )(1)同时性:两个 或两个以上的事件在同一时刻发生。(2)并发性:两个或两个以上的事件在同一时间间隔内发生。并行性的实现途径(1)时间重叠:引入时间因素,让多个 处理过程在时间上相互错开, 轮流重叠地使用同一套硬件设备的 各个部分,以加快硬件周转而赢得速度。最典型的例子:流水线技术(部件功能专用化)(2)资源重复: 引入空间因素,以数量取胜。通过
8、重复设置硬件资源,大幅度地提高计算机系统的性能。(实现指令级并行)(3)资源共享:这是一种软件方法,它使 多个任务按一定时间顺序轮流使用同一套硬件设备。如:多道程序、分时系统 并行性的等级(1)从处理数据的 角度来看,从低到高可分为:字串位串:每次只对一个字的一位 进行处理。(最基本的串行处理方式,不存在并行性)字串位并:同时 对一个字的全部位进行处理,不同字之间是串行的。(开始出现并行性)字并位串:同时对许多字的同一位(称 为位片)进行处理。(具有较高的并行性)全并行:同时对许多字的全部位或部 分位进行处理。(最高一级的并行)(2)从执行程序的角度来看,从低到高 可分为:指令内部并行:单条指
9、令中各微操作之间的并行。指令级并行:并行执行两条或两条以上的指令。(流水线)线程级并行:并行执行两个或两个以上的线程。通常是以一个进程内派生的多个线程为调度单位。任务级或过程级并行:并行执行两个或两个以上的过程或任 务(程序段)。以子程序或进程为调度单元。作业或程序级并行:并行执行两个或两个以上的作业或程序。在发展高性能单处理机过程中,起主导作用的是时间重叠原 理。实现时间重叠的基础:部件功能专用化第三章:流水线技术 (提高指令并行度、计算机性能)顺序执行(取、分析、执行指令)、重叠执行(一次重叠、二次重叠。OO)(让前后连续的指令在处理机内以重叠的方式执行.)缓冲栈实际上是一个以先进先出(F
10、IFO)方式工作的移位寄存器组(锁 存器、缓冲寄存器)先行控制技术是指令预处理技术和缓冲技 术的结合,使指令分析部件和执行部件中同时处理的两条指令可 以是不相邻的,实现了多条指令的重叠解释执行。流水线技术(pipelining):把一个重复的过程分解为若干个子 过程,每个子过程由专门的功能部件来实现。把多个处理过程在时间上错开,依次通过各功能段,这样, 每个子过程就可以与其他的子过程并行进行。流水线中的每个子过程及其功能部件称为流水线的级或段, 段与段相互连接形成流水线。流水线的段数称为流水线的深度。分类:按功能:单功能流水线、多功能流水线(各段进行不 同连接实现不同功能)静态流水线、动态流水
11、线(同一时间段内 执行了不同功能)按流水的级别:部件级流水线(运算操作)、处理机级流水线(指令流水线)、处理机间级(宏流水线)(异构 型多处理机系统)按是否有反馈回路:线性流水线、非线性流水 线(有反馈回路,某些段要多次通过)按任务流入和流出的顺序: 顺序流水线、乱序流水线 流水线的性能指标:吞吐率(TP)、加 速比(S)和效率(e) 一.吞吐率:把流水线在单位时间内完成的 任务量定义为吞吐率。TP=完成的指令总条数/完成n个任务所用的时间。若各段执行时间不同,瓶颈:在各级的执行时间不相等的 流水线中,时间最长的段。瓶颈”问题的消除:(两种方式在效果上是可以等效的) 1)分 割瓶颈部件的工作2
12、)重复设置瓶颈部件二、 加速比:处理同一批 任务,不用流水线与采用流水线时所花费的时间之比, 称为流水 线的加速比。S=T0/Tk三.效率:流水线设备的利用率(面积比)减少数据相 关性一个经典的5段流水线一条指令的执行过程分为 5个周期: 取指令周期(IF)、指令译码/读寄存器周期(ID)、执行/有效地 址计算周期(EX)、存储器访问/分支完成周期(MEM)(只有load、store、分支指令在 MEM有操作)写回周期(WB)5段流水线的两种描述方式 流水线的相关(两条指令之间存在某种依赖关系)与冲突一、相关 1)名相关:如果两条指令使 用相同的名(寄存器、存储单元),但是它们之间并没有数据流
13、 动,则称这两条指令存在名相关。(解决:换名技术)1、反相关(前读后写用同名)2、输出相关(前写后写用同名)2)数据相关:后指令用到前指令,具 有传递性3)控制相关:由分支指令引起的相关(与一条分支指 令控制相关的指令不能被移到该分支之前,如果一条指令与某分支指令不存在控制相关,就不能把该指令移到该分支之后)二、 流水线冲突(hazards冒险):对于具体的流水线来说,由于相关 的存在,使得指令流中的下一条指令不能在指定的时钟周期执 行。流水线冲突有3种类型:1结构冲突:指多条指令进入流水 线后,在同一时间争用同一功能部件,从而发生冲突。解决方法:暂停一拍(也称为流水线气泡,简称气泡)。2、数
14、据冲突:指由于流水线中各指令重叠执行,使得原来对 操作数的访问顺序发生变化,从而引起的一种数据冲突。类型:写后读冲突、写后写冲突、读后写冲突、解决办法 : 采用定向传送技术(旁路技术或相关专用通路技术)减少数据冲 突引起的停顿;将计算结果从产生的地方 (EX和MEM之间的流 水寄存器)直接送到需要的地方(ALU入口)。增加流水线互锁硬件,插入 暂停指令调度(流水线调度)3、控制冲突:流水线遇到分支指 令(转移指令)和其他会改变 PC值的指令所引起的冲突。为了减小分支延迟造成的损失,可采用以下措施:1)在流水线中尽早判断出分支转移是否成功。2)尽早计算出分支目标地址。为了减小分支延迟造成的损失,
15、还可通过软件(编译器)来减少分支延迟,常见的有以下几种:(1)预测分支失败n允许分 支指令后的指令继续在流水线中流动,就好象什么都没发生似 的。n若确定分支失败,将分支指令看作是一条普通指令,流水 线正常流动。n若确定分支成功,流水线就把在分支指令之后取出的所有 指令转化为空操作,并按分支目地重新取指令执行。(2)预测分支成功n假设分支转移成功,并从分支目标地址 处取指令执行。n起作用的前题:先知道分支目标地址,后知道分支是否成 功。n前述5段流水线中,由于判断分支是否成功与分支目标地 址计算是在同一流水段(MEM)完成,这种方法没有任何好处。(3)延迟分支(分支指令+延迟糟,不管分支是否成功
16、,按 顺序执行延迟槽中的指令;若失败,什么都没发生继续顺序执行; 若失败,跳转到目标指令)从前调度(把分支指令前一条指令放入延迟糟)从目标处调度(目标处指令)从失败处调度(不 跳转,顺序执行)向量处理的几种方式横向处理方式纵向处理方式纵横处理方式五.提高向量处理机性能的方法主要有:n设置多个功能部件,使它们并行工作。n采用链接技术,加快一串向量指令的执行。n采用循环开采技术,加快循环的处理。n采用多处理机系统,进一步提高性能。第四章指令级并行(ILP : Instruction-LevelParallelism ) CPI 流水线=CPI理想+停顿结构冲突+停顿数据冲突+停顿控制冲 突CPI表
17、示执行每条指令所需的平均时钟周期数IPC: InstructionsPerCycle (每个时钟周期完成的指令条数)1.循环级并行:(使一个循环中的不同循环体并行执行,指令级并行研究 的重点之一锦环展开(loopunrolling )技术:在编译时多次展开 循环体,再对指令序列重新排序,以进一步提高流水线的并行性。宗用向量指令和向量数据表示 2.相关与流水线冲突n静态指 令调度n动态指令调度4.对于正确地执行程序来说,必须保持的 最关键的两个属性是:数据流和异常行为。数据流:指数据值从其产生者指令到其消费者指令的实际流 动。保持异常行为是指:无论怎么改变指令的执行顺序,都不能 改变程序中异常的
18、发生情况。静态调度:在编译期间通过把相关的指令拉开距离来减少可能产生的停顿进行代码调度和优化O(乱序执行)动态调度:在程序的执行过程中,依靠专门硬件 对代码进行调度,减少数据相关导致的停顿。(乱序执行)指令的动态调度:为了允许乱序执行,我们将 5段流水线的译码阶段(ID)再分为两个阶段:1,流出(Issue, IS):指令译码,检查是否存在结构冲突。(in-orderissue)2,读操作数(ReadOperands, RO):等待数 据冲突消失,然后读操作数。Tomasulo算法可以通过使用寄存器重命名来消除(名相关或输出相关造成的WAR和WAW冲突)。核心思想:1、记录和检测指令相关,操作
19、数一旦就绪就立即 执行,把发生 RAW冲突的可能性减少到最小;2、通过寄存器 换名来消除 WAR冲突和 WAW 冲突。1)保留站(reservationstation)每个保留站中保存一条已经流 出并等待到本功能部件执行的指令(相关信息)。包括:操作码、操作数以及用于检测和解决冲突的信息。"一条指令流出到保留站的时候,如果该指令的源操作数已经在寄存器中就绪,则将之取到该保留站中。口果操作数还没有计算出来,则在该保留站中记录将产生这 个操作数的保留站的标识。2)公共数据总线 CDB所有功能部件的计算结果都是送到 CDB上,由它把这些结果直接送到(播送到)各个需要该结果的地方。3) lo
20、ad缓冲器和store缓冲器(存放读/写存储器的数据或地 址)4)浮点寄存器 FP5)指令队列(指令先进先出) 6)运算部 件(浮点加法、乘法器)n在Tomasulo算法中,寄存器换名是通 过保留站和流出逻辑来共同完成的。'''当指令流出时,如果其操作数还没有计算出来,则将该指 令中相应的寄存器号换名为将产生这个操作数的保留站的标识。'''指令流出到保留站后,其操作数寄存器号或者换成了数据 本身(如果该数据已经就绪),或者换成了保留站的标识,不再 与寄存器有关系。计算结果通过 CDB直接从产生它的保留站传送到所有需 要它的功能部件,而不用经过寄存
21、器。Tomasulo指令执行的步骤使用 Tomasulo算法的流水线需 3 段:1)流出:从指令队列的头部取一条指令。饮口果没有空闲的保留站,指令就不能流出。(发生了结构冲突)效口果该指令的操作所要求的保留站有空 闲的,就把该指令送到该保留站。(寄存器换名和对操作数进行缓冲,消除WAR冲突)猊成对目标寄存器的预约工作(消除了WAW冲突)2)执行当两个操作数都就绪后,本保留站就用相应的功能部件开始执行指令规 定的操作。(消除了 RAW冲突)3)写结果功能部件计算完毕后,就将计算结果放到CDB上,所有等待该计算结果的寄存器和保留站(包括store缓冲器)都同时从 CDB上获得所需要的数据。动态分支
22、预测:在程序运行时,根据分支指令过去的表现来 预测其将来的行为。1、采用分支历史表 BHT (BranchHistoryTable)分支预测缓 冲器(BranchPredicitonBuffer)来记录分支指令最近一次或几次 的执行情况(成功或不成功),并据此进行预测。2)操作步骤:分支预测。当分支指令到达译码段(ID)时,根据从BHT读出的信息进 行分支预测;若预测正确,就继续处理后续的指令,流水线没有 断流。否则,就要作废已经预取和分析的指令,恢复现场,并从另 一条分支路径重新取指令。状态修改。2、.采用分支目标缓冲器 BTB (预测的分支目标地址)n目 标:将分支的开销降为0n方法:分支目标缓冲分支成功的分 支指令的地址和它的分支目标地址都放到一个缓冲区中保存起 来,缓冲区以分支指令的地址作为标识。立个缓冲区就是分支目标缓冲器( Branch-TargetBuffer,简 记为 BTB ,或者 Branch-TargetCache)。3、基于硬件的前瞻执行 1.前瞻执行(speculation)的基本思 想:n对分支指令的结果进行猜测,并假设这个猜测总是对的,然后按这个猜测结果继续取、流出和执行后续的指令。只是执行指令的结果不是写回到寄存器或存储器,而是放到一个称为 ROB (ReOrderBuffer)的缓冲
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论