计算机体系结构课后习题原版答案-张晨曦著.pdf
第 1 章 计算机系统结构的基本概念.1第 2 章 指令集结构的分类.6第 3 章 流水线技术.8第 4 章 指令级并行.20第 5 章 存储层次.30第 6 章输入输出系统.38第第 1 1 章章 计算机系统结构的基本概念计算机系统结构的基本概念。解释下列术语层次机构:按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征。这些层次依次为:微程序机器级,传统机器语言机器级,汇编语言机器级,高级语言机器级,应用语言机器级等。虚拟机:用软件实现的机器。翻译:先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在这低一级机器上运行,实现程序的功能。解释:对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。计算机系统结构:传统机器程序员所看到的计算机属性,即概念性结构与功能特性。在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。;计算机组成:计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。计算机实现:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。系统加速比:对系统中某部分进行改进时,改进后系统性能提高的倍数。Amdahl 定律:当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。程序的局部性原理:程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。包括时间局部性和空间局部性。CPI:每条指令执行的平均时钟周期数。测试程序套件:由各种不同的真实应用程序构成的一组测试程序,用来测试计算机在各个方面的处理性能。!存储程序计算机:冯诺依曼结构计算机。其基本点是指令驱动。程序预先存放在计算机存储器中,机器一旦启动,就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。系列机:由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的计算机。软件兼容:一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上运行。差别只是执行时间的不同。向上(下)兼容:按某档计算机编制的程序,不加修改就能运行于比它高(低)档的计算机。;向后(前)兼容:按某个时期投入市场的某种型号计算机编制的程序,不加修改地就能运行于在它之后(前)投入市场的计算机。兼容机:由不同公司厂家生产的具有相同系统结构的计算机。模拟:用软件的方法在一台现有的计算机(称为宿主机)上实现另一台计算机(称为虚拟机)的指令系统。仿真:用一台现有计算机(称为宿主机)上的微程序去解释实现另一台计算机(称为目标机)的指令系统。并行性:计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。只要在时间上相互重叠,就存在并行性。它包括同时性与并发性两种含义。时间重叠:在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。资源重复:在并行性概念中引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。资源共享:这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。耦合度:反映多机系统中各计算机之间物理连接的紧密程度和交互作用能力的强弱。紧密耦合系统:又称直接耦合系统。在这种系统中,计算机之间的物理连接的频带较高,一般是通过总线或高速开关互连,可以共享主存。松散耦合系统:又称间接耦合系统,一般是通过通道或通信线路实现计算机之间的互连,可以共享外存设备(磁盘、磁带等)。计算机之间的相互作用是在文件或数据集一级上进行。异构型多处理机系统:由多个不同类型、至少担负不同功能的处理机组成,它们按照作业要求的顺序,利用时间重叠原理,依次对它们的多个任务进行加工,各自完成规定的功能动作。同构型多处理机系统:由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务。试用实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系。答:如在设计主存系统时,确定主存容量、编址方式、寻址范围等属于计算机系统结构。确定主存周期、逻辑上是否采用并行主存、逻辑设计等属于计算机组成。选择存储芯片类型、微组装技术、线路设计等属于计算机实现。计算机组成是计算机系统结构的逻辑实现。计算机实现是计算机组成的物理实现。一种体系结构可以有多种组成。一种组成可以有多种实现。计算机系统结构的 Flynn 分类法是按什么来分类的共分为哪几类答:Flynn 分类法是按照指令流和数据流的多倍性进行分类。把计算机系统的结构分为:(1)单指令流单数据流 SISD(2)单指令流多数据流 SIMD(3)$(4)多指令流单数据流 MISD(5)(6)多指令流多数据流 MIMD计算机系统设计中经常使用的4 个定量原理是什么并说出它们的含义。答:(1)以经常性事件为重点。在计算机系统的设计中,对经常发生的情况,赋予它优先的处理权和资源使用权,以得到更多的总体上的改进。(2)Amdahl 定律。加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。(3)CPU 性能公式。执行一个程序所需的 CPU 时间=IC CPI 时钟周期时间。(4)程序的局部性原理。程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。分别从执行程序的角度和处理数据的角度来看,计算机系统中并行性等级从低到高可分为哪几级答:从处理数据的角度来看,并行性等级从低到高可分为:(1)字串位串:每次只对一个字的一位进行处理。这是最基本的串行处理方式,不存在并行性;(2)字串位并:同时对一个字的全部位进行处理,不同字之间是串行的。已开始出现并行性;(3)字并位串:同时对许多字的同一位(称为位片)进行处理。这种方式具有较高的并行性;(4)全并行:同时对许多字的全部位或部分位进行处理。这是最高一级的并行。从执行程序的角度来看,并行性等级从低到高可分为:(1)指令内部并行:单条指令中各微操作之间的并行;#(2)指令级并行:并行执行两条或两条以上的指令;(3)线程级并行:并行执行两个或两个以上的线程,通常是以一个进程内派生的多个线程为调度单位;(4)任务级或过程级并行:并行执行两个或两个以上的过程或任务(程序段),以子程序或进程为调度单元;(5)作业或程序级并行:并行执行两个或两个以上的作业或程序。某台主频为 400MHz 的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下:|指令类型平均时钟周期数指令执行数量整数数据传送45000750001】2浮点分支)8000150042求该计算机的有效 CPI、MIPS 和程序执行时间。解:(1)CPI(4500017500028000415002)/129500(2)MIPS 速率f/CPI 400/(3)程序执行时间=(4500017500028000415002)400=575s将计算机系统中某一功能的处理速度加快10 倍,但该功能的处理时间仅为整个系统运行时间的 40%,则采用此增强功能方法后,能使整个系统的性能提高多少解解 由题可知:可改进比例=40%=部件加速比=10根据 Amdahl 定律可知:1.56250.41 0.410采用此增强功能方法后,能使整个系统的性能提高到原来的倍。计算机系统中有三个部件可以改进,这三个部件的部件加速比为:部件加速比1=30;部件加速比2=20;部件加速比3=10(1)如果部件 1 和部件 2 的可改进比例均为 30%,那么当部件 3 的可改进比例为多少时,系统加速比才可以达到10(2)(3)(4)系统加速比1如果三个部件的可改进比例分别为30%、30%和 20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少解:(1)在多个部件可改进情况下,Amdahl 定理的扩展:Sn1F(1Fi)iSi已知 S130,S220,S310,Sn10,F1,F2,得:110 1(-0.30.3 F3)(0.3/300.3/20 F3/10)得 F3,即部件 3 的可改进比例为 36%。(2)设系统改进前的执行时间为T,则 3 个部件改进前的执行时间为:(+)T=,不可改进部分的执行时间为。已知 3 个部件改进后的加速比分别为S130,S220,S310,因此3 个部件改进后的执行时间为:Tn0.3T0.3T0.2T 0.045T302010改进后整个系统的执行时间为:Tn=+=那么系统中不可改进部分的执行时间在总执行时间中占的比例是:0.2T 0.820.245T假设某应用程序中有4 类操作,通过改进,各操作获得不同的性能提高。具体数据如下表所示:¥操作类型程序中的数量(百万条指令)!10303515改进前的执行时间(周期)改进后的执行时间(周期)11531操作 1操作 2操作 3操作 4220104(1)改进后,各类操作的加速比分别是多少(2)各类操作单独改进后,程序获得的加速比分别是多少(3)4 类操作均改进后,整个程序的加速比是多少解:根据 Amdahl 定律Sn1Fe(1 Fe)Se可得各类操作的加速比 Si2操作类型各类操作的指令条数在程序中所占的比例 Fi%各类操作单独改进后,程序获得的加速比操作 1操作 2操作 3操作 444 类操作均改进后,整个程序的加速比:Sn1F(1Fi)iSi 2.16第第 2 2 章章 指令集结构的分类指令集结构的分类2.1 解释下列术语堆栈型机器:CPU 中存储操作数的单元是堆栈的机器。累加器型机器:CPU 中存储操作数的单元是累加器的机器。通用寄存器型机器:CPU 中存储操作数的单元是通用寄存器的机器。CISC:复杂指令集计算机RISC:精简指令集计算机寻址方式:指令系统中如何形成所要访问的数据的地址。一般来说,寻址方式可以指明指令中的操作数是一个常数、一个寄存器操作数或者是一个存储器操作数。数据表示:硬件结构能够识别、指令系统可以直接调用的那些数据结构。2.2 区别不同指令集结构的主要因素是什么根据这个主要因素可将指令集结构分为哪 3类答:区别不同指令集结构的主要因素是CPU 中用来存储操作数的存储单元。据此可将指令系统结构分为堆栈结构、累加器结构和通用寄存器结构。&2.3 常见的 3 种通用寄存器型指令集结构的优缺点有哪些答:指令系统结构类型优点缺点指令字长固定,指令结构寄存器-寄存器型与指令中含存储器操作数的指令系统结简洁,是一种简单的代码构相比,指令条数多,目标代码不够紧凑,生成模型,各种指令的执(0,3)因而程序占用的空间比较大。行时钟周期数相近。可以在 ALU 指令中直接 由于有一个操作数的内容将被破坏,所以寄存器-存储器型 对存储器操作数进行引 指令中的两个操作数不对称。在一条指令(1,2)用,而不必先用 load 指 中同时对寄存器操作数和存储器操作数令进行加载。容易对指令 进行编码,有可能限制指令所能够表示的进行编码,目标代码比较 寄存器个数。指令的执行时钟周期数因操紧凑。作数的来源(寄存器或存储器)不同而差别比较大。指令字长变化很大,特别是 3 操作数指:令。而且每条指令完成的工作也差别很目标代码最紧凑,不需要存储器-存储器型大。对存储器的频繁访问会使存储器成为设置寄存器来保存变量。(2,2)或(3,3)瓶颈。这种类型的指令系统现在已不用了。2.4 指令集应满足哪几个基本要求答:对指令集的基本要求是:完整性、规整性、高效率和兼容性。%完整性是指在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令集所提供的指令足够使用。规整性主要包括对称性和均匀性。对称性是指所有与指令集有关的存储单元的使用、操作码的设置等都是对称的。均匀性是指对于各种不同的操作数类型、字长、操作种类和数据存储单元,指令的设置都要同等对待。高效率是指指令的执行速度快、使用频度高。2.5 指令集结构设计所涉及的内容有哪些答:(1)指令集功能设计:主要有RISC 和 CISC 两种技术发展方向;(2)寻址方式的设计:设置寻址方式可以通过对基准程序进行测试统计,察看各种寻址方式的使用频率,根据适用频率设置必要的寻址方式。(3)操作数表示和操作数类型:主要的操作数类型和操作数表示的选择有:浮点数据类型、整型数据类型、字符型、十进制数据类型等等。(4)寻址方式的表示:可以将寻址方式编码于操作码中,也可以将寻址方式作为一个单独的域来表示。(5)指令集格式的设计:有变长编码格式、固定长度编码格式和混合型编码格式3 种。2.6#2.7简述 CISC 指令集结构功能设计的主要目标。从当前的计算机技术观点来看,CISC 指令集结构的计算机有什么缺点答:主要目标是增强指令功能,把越来越多的功能交由硬件来实现,并且指令的数量也是越来越多。缺点:(1)CISC 结构的指令集中,各种指令的使用频率相差悬殊。(2)CISC 结构指令的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。(3)CISC 结构指令集的复杂性给VLSI 设计增加了很大负担,不利于单片集成。(4)CISC 结构的指令集中,许多复杂指令需要很复杂的操作,因而运行速度慢。(5)在 CISC 结构的指令集中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。2.8 简述 RISC 指令集结构的设计原则。答(1)选取使用频率最高的指令,并补充一些最有用的指令;(2)每条指令的功能应尽可能简单,并在一个机器周期内完成;(3)所有指令长度均相同;(4)只有Load 和 Store操作指令才访问存储器,其它指令操作均在寄存器之间进行;(5)以简单有效的方式支持高级语言。2.9(2.10指令中表示操作数类型的方法有哪几种答:操作数类型有两种表示方法:(1)操作数的类型由操作码的编码指定,这是最常见的一种方法;(2)数据可以附上由硬件解释的标记,由这些标记指定操作数的类型,从而选择适当的运算。2.11 表示寻址方式的主要方法有哪些简述这些方法的优缺点。答:表示寻址方式有两种常用的方法:(1)将寻址方式编于操作码中,由操作码在描述指令的同时也描述了相应的寻址方式。这种方式译码快,但操作码和寻址方式的结合不仅增加了指令的条数,导致了指令的多样性,而且增加了 CPU 对指令译码的难度。(2)为每个操作数设置一个地址描述符,由该地址描述符表示相应操作数的寻址方式。这种方式译码较慢,但操作码和寻址独立,易于指令扩展。2.12 通常有哪几种指令格式,请简述其适用范围。(答:(1)变长编码格式。如果系统结构设计者感兴趣的是程序的目标代码大小,而不是性能,就可以采用变长编码格式。(2)固定长度编码格式。如果感兴趣的是性能,而不是程序的目标代码大小,则可以选择固定长度编码格式。(3)混合型编码格式。需要兼顾降低目标代码长度和降低译码复杂度时,可以采用混合型编码格式。2.13 根据 CPU 性能公式简述 RISC 指令集结构计算机和 CISC 指令集结构计算机的性能特点。答:CPU 性能公式:CPU 时间ICCPIT其中,IC 为目标程序被执行的指令条数,CPI 为指令平均执行周期数,T 是时钟周期的时间。相同功能的CISC目标程序的指令条数ICCISC少于RISC的ICRISC,但是CISC的CPICISC和TCISC都大于 RISC 的 CPIRISC和 TRISC,因此,CISC 目标程序的执行时间比RISC 的更长。?第第 3 3 章章 流水线技术流水线技术解释下列术语流水线:将一个重复的时序过程,分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其它子过程同时执行。单功能流水线:指流水线的各段之间的连接固定不变、只能完成一种固定功能的流水线。多功能流水线:指各段可以进行不同的连接,以实现不同的功能的流水线。:静态流水线:指在同一时间内,多功能流水线中的各段只能按同一种功能的连接方式工作的流水线。当流水线要切换到另一种功能时,必须等前面的任务都流出流水线之后,才能改变连接。动态流水线:指在同一时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能的流水线。它允许在某些段正在实现某种运算时,另一些段却在实现另一种运算。部件级流水线:把处理机中的部件进行分段,再把这些部件分段相互连接而成。它使得运算操作能够按流水方式进行。这种流水线也称为运算操作流水线。处理机级流水线:又称指令流水线。它是把指令的执行过程按照流水方式进行处理,即把一条指令的执行过程分解为若干个子过程,每个子过程在独立的功能部件中执行。处理机间流水线:又称为宏流水线。它是把多个处理机串行连接起来,对同一数据流进行处理,每个处理机完成整个任务中的一部分。前一个处理机的输出结果存入存储器中,作为后一个处理机的输入。线性流水线:指各段串行连接、没有反馈回路的流水线。数据通过流水线中的各段时,每一个段最多只流过一次。非线性流水线:指各段除了有串行的连接外,还有反馈回路的流水线。:顺序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。乱序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成。这种流水线又称为无序流水线、错序流水线、异步流水线。吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量。流水线的加速比:使用顺序处理方式处理一批任务所用的时间与按流水处理方式处理同一批任务所用的时间之比。流水线的效率:即流水线设备的利用率,它是指流水线中的设备实际使用时间与整个运行时间的比值。数据相关:考虑两条指令 i 和 j,i 在 j 的前面,如果下述条件之一成立,则称指令j 与指令 i数据相关:(1)指令 j 使用指令 i 产生的结果;(2)指令 j 与指令 k 数据相关,而指令 k 又与指令 i 数据相关。|名相关:如果两条指令使用了相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。控制相关:是指由分支指令引起的相关。它需要根据分支指令的执行结果来确定后面该执行哪个分支上的指令。反相关:考虑两条指令i 和 j,i 在 j 的前面,如果指令j 所写的名与指令 i 所读的名相同,则称指令 i 和 j 发生了反相关。(2)指令的重叠指令是在相邻的指令之间,让第k 条指令与取第 k+l 条指令同时进行。重叠执行不能加快单条指令的执行速度,但在硬件增加不多的情况下,可以加快相邻两条指令以及整段程序的执行速度。与顺序方式相比,功能部件的利用率提高了,控制变复杂了。(3)指令的流水执行是把一个指令的执行过程分解为若干个子过程,每个子过程由专门的功能部件来实现。把多个处理过程在时间上错开,依次通过各功能段,每个子过程与其它的子过程并行进行。依靠提高吞吐率来提高系统性能。流水线中各段的时间应尽可能相等简述先行控制的基本思想。答:先行控制技术是把缓冲技术和预处理技术相结合。缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲器,用以平滑它们的工作。预处理技术是指预取指令、对指令进行加工以及预取操作数等。采用先行控制方式的处理机内部设置多个缓冲站,用于平滑主存、指令分析部件、运算器三者之间的工作。这样不仅使它们都能独立地工作,充分忙碌而不用相互等待,而且使指令分析部件和运算器分别能快速地取得指令和操作数,大幅度地提高指令的执行速度和部件的效率。这些缓冲站都按先进先出的方式工作,而且都是由一组若干个能快速访问的存储单元和相关的控制逻辑组成。采用先行控制技术可以实现多条指令的重叠解释执行。设一条指令的执行过程分成取指令、分析指令和执行指令三个阶段,每个阶段所需的时间分别为t、t 和 2t。分别求出下列各种情况下,连续执行N 条指令所需的时间。(1)顺序执行方式;(2)只有“取指令”与“执行指令”重叠;(3)“取指令”、“分析指令”与“执行指令”重叠。解:(1)每条指令的执行时间为:tt2t4t连续执行 N 条指令所需的时间为:4Nt(2)连续执行 N 条指令所需的时间为:4t3(N-1)t(3N1)t(3)连续执行 N 条指令所需的时间为:4t2(N-1)t(2N2)t简述流水线技术的特点。答:流水技术有以下特点:(1)流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现。因此,流水线实际上是把一个大的处理功能部件分解为多个独立的功能部件,并依靠它们的并行工作来提高吞吐率。(2)流水线中各段的时间应尽可能相等,否则将引起流水线堵塞和断流。#(3)流水线每一个功能部件的前面都要有一个缓冲寄存器,称为流水寄存器。(4)流水技术适合于大量重复的时序过程,只有在输入端不断地提供任务,才能充分发挥流水线的效率。(5)流水线需要有通过时间和排空时间。在这两个时间段中,流水线都不是满负荷工作。解决流水线瓶颈问题有哪两种常用方法答:细分瓶颈段与重复设置瓶颈段(减少流水线分支延迟的静态方法有哪些答:(1)预测分支失败:沿失败的分支继续处理指令,就好象什么都没发生似的。当确定分支是失败时,说明预测正确,流水线正常流动;当确定分支是成功时,流水线就把在分支指令之后取出的指令转化为空操作,并按分支目标地址重新取指令执行。(2)预测分支成功:当流水线 ID 段检测到分支指令后,一旦计算出了分支目标地址,就开始从该目标地址取指令执行。(3)延迟分支:主要思想是从逻辑上“延长”分支指令的执行时间。把延迟分支看成是由原来的分支指令和若干个延迟槽构成。不管分支是否成功,都要按顺序执行延迟槽中的指令。3 种方法的共同特点:它们对分支的处理方法在程序的执行过程中始终是不变的。它们要么总是预测分支成功,要么总是预测分支失败。简述延迟分支方法中的三种调度策略的优缺点。对调度的要求调度策略对流水线性能改善的影响从前调度分支必须不依赖于被调度的指令总是可以有效提高流水线性能分支转移成功时,可以提高流水线如果分支转移失败,必须保证被调度的指 性能。但由于复制指令,可能加大从目标处调令对程序的执行没有影响,可能需要复制 程序空间度被调度指令从失败处调 如果分支转移成功,必须保证被调度的指 分支转移失败时,可以提高流水线度令对程序的执行没有影响性能列举出下面循环中的所有相关,包括输出相关、反相关、真相关。for(i=2;i暂存于相应的流水寄存器中。现要在该流水线上计算,画出其时空图,并计算其吞吐率、加速比和效率。1t加法2ttt2t3乘法45解:首先,应选择适合于流水线工作的算法。对于本题,应先计算A1B1、A2B2、A3B3和 A4B4;再计算(A1B1)(A2B2)和(A3B3)(A4B4);然后求总的结果。其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。段54321ABCDABCDABCDA=A1B1B=A2B2C=A3B3D=A4B4输0123入456789A1A2A3A4B1B2B3B41011 12131415 16 17 18ABACBDCD时间由图可见,它在 18 个 t 时间中,给出了 7 个结果。所以吞吐率为:|TP 718t如果不用流水线,由于一次求积需 3 t,一次求和需 5 t,则产生上述 7 个结果共需(45+33)t=29 t。所以加速比为:29tS 1.6118t该流水线的效率可由阴影区的面积和5 个段总时空区的面积的比值求得:4533E 0.322518动态多功能流水线由6 个功能段组成,如下图:S1S2S3加法S4乘法S5S6其中,S1、S4、S5、S6 组成乘法流水线,S1、S2、S3、S6 组成加法流水线,各个功能段时间均为 50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算:x y ziii15i(1)画出时空图;(2)计算实际的吞吐率、加速比和效率。解:机器一共要做 10 次乘法,4 次加法。在 MIPS 流水线上运行如下代码序列:LOOP:LWR1,0(R2)DADDIUR1,R1,#1SWR1,0(R2)DADDIUR2,R2,#4DSUBR4,R3,R2BNEZR4,LOOP其中:R3 的初值是 R2+396。假设:在整个代码序列的运行过程中,所有的存储器访问都是命中的,并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”。问:(1)(2)在没有任何其它定向(或旁路)硬件的支持下,请画出该指令序列执行的流水线时空图。假设采用排空流水线的策略处理分支指令,且所有的存储器访问都命中Cache,那么执行上述循环需要多少个时钟周期(3)假设该流水线有正常的定向路径,请画出该指令序列执行的流水线时空图。假设采用预测分支失败的策略处理分支指令,且所有的存储器访问都命中Cache,那么执行上述循环需要多少个时钟周期(4)假设该流水线有正常的定向路径和一个单周期延迟分支,请对该循环中的指令进行调度,你可以重新组织指令的顺序,也可以修改指令的操作数,但是注意不能增加指令的条数。请画出该指令序列执行的流水线时空图,并计算执行上述循环所需要的时钟周期数。解:1IF2345678910 11 12 13 14 15 16 17 18 19 20 21 22WBID EX MWBIFSSID EX MWBIFID EX MWBIFSSID EX MWBIFSSID EX MWBIFSSIFID EX MWB寄存器读写可以定向,无其他旁路硬件支持。排空流水线。指令LWDADDIUSWDADDIUDSUBBNEZLWID EX MIFSS第 i 次迭代(i0.98)开始周期:1(i17)总的时钟周期数:(9817)181684有正常定向路径,预测分支失败。指令LWDADDIUSWDADDIUDSUBBNEZLW1IFIDIF23EX MIDSIFS45678910111131415WBEX MWBIDEX MWBIFIDEX MWBIFIDEX MWBIFIDEX MWBIFmiss miss IFIDEX MWB第 i 次迭代(i0.98)开始周期:1(i10)总的时钟周期数:(9810)11991有正常定向路径。单周期延迟分支。LOOP:LWR1,0(R2)DADDIUR2,R2,#4DADDIUR1,R1,#1DSUBR4,R3,R2:BNEZR4,LOOPSWR1,-4(R2)第 i 次迭代(i 0.98)开始周期:1(i 6)总的时钟周期数:(986)10598指令1234567891011LWIFIDEX MWBDADDIUIFIDEX MWBDADDIUIFIDEX MWBDSUBIFIDEX MWBBNEZIFIDEX MWBSWIFIDEX MWBLWIFIDEX MWB¥假设各种分支指令数占所有指令数的百分比如下:条件分支跳转和调用20%(其中的 60%是分支成功的)5%现有一条段数为 4 的流水线,无条件分支在第二个时钟周期结束时就被解析出来,而条件分支要到第三个时钟周期结束时才能够被解析出来。第一个流水段是完全独立于指令类型的,即所有类型的指令都必须经过第一个流水段的处理。请问在没有任何控制相关的情况下,该流水线相对于存在上述控制相关情况下的加速比是多少%解:没有控制相关时流水线的平均CPI1存在控制相关时:由于无条件分支在第二个时钟周期结束时就被解析出来,而条件分支要到第 3 个时钟周期结束时才能被解析出来。所以:(1)若使用排空流水线的策略,则对于条件分支,有两个额外的stall,对无条件分支,有一个额外的 stall:CPI=1+20%*2+5%*1=加速比 S=CPI/1=(2)若使用预测分支成功策略,则对于不成功的条件分支,有两个额外的stall,对无条件分支和成功的条件分支,有一个额外的stall 1:CPI=1+20%*(60%*1+40%*2)+5%*1=加速比 S=CPI/1=(3)若使用预测分支失败策略,则对于成功的条件分支,有两个额外的 stall;对无条件分支,有一个额外的stall;对不成功的条件分支,其目标地址已经由PC 值给出,不必等待,所以无延迟:CPI=1+20%*(60%*2+40%*0)+5%*1=加速比 S=CPI/1=在 CRAY-1机器上,按照链接方式执行下述4 条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1 拍,试求此链接流水线的通过时间是多少拍如果向量长度为64,则需多少拍才能得到全部结果V0存储器(从存储器中取数:7 拍)*V2V0+V1(向量加:3 拍)V3V2F2,0(R1)F8,8(R1)12F4,F2,F0F10,F8,F0F16,F14,F0F22,F20,F0345678F14,16(R1)F20,24(R1)F6,0(R2)F12,8(R2)F18,16(R2)F24,24(R2)F6,F4,F6F12,F10,F12F18,F16,F18F24,F22,F24?DADDIU R1,R1,#32F6,0(R2)F12,8(R2)F18,16(R2)F24,24(R2)910111213141516DADDIU R2,R2,#32DSUBIUR3,R1,#DONEBNEZ计算一个Y值需要 16/4=4 个时钟周期,加速比=14/4=(6)访存1访存2浮点指令1,0(R1)F8,8(R1),F2,F0,F14,F0,F4,F6,F8,F0,F20,F0,F10,F12,R3,FOO整数指令浮点指令2时钟周期1),16(R1),0(R2)。,16(R2),24(R1),8(R2),24(R2)345(,F22,F24DADDIU R1,R1,#32DADDIU R2,R2,#32!,F16,F18678-DSUBIUR3,R1,#DONEBNEZR3,FOO,-32(R2),-24(R2),-8(R2)91011,-16(R2)计算一个 Y 值需要 11/4 个时钟周期,加速比=14/(11/4)=56/11(5)如果展开 10 遍,会出现哪些问题解:展开 7 遍循环访存指令 1#访存指令 2F6,-8(R1)F14,-24(R1)$浮点指令 1浮点指令 2&整数/转移指令-F0,0(R1)F10,-16(R1)F18,-32(R1)F26,-48(R1)F8,F6,F2F22,-40(R1)F4,F0,F2%F16,F14,F2F12,F10,F2$-F20,F18,F2F28,F26,F2F24,F22,F2F4,0(R1)F12,-16(R1)F20,-32(R1)F8,-8(R1)F16,24(R1))F24,40(R1)R1,R1,#DADDIU-56BNER1,LoopF28,8(R1)这段程序的运行时间为9 个时钟周期,每遍循环平均约个时钟周期。9 个时钟周期内流出了 23 条指令,每个时钟周期条。9 个时钟周期共有操作槽95=45 个,有效槽的比例为%。设指令流水线由取指令、分析指令和执行指令3 个部件构成,每个部件经过的时间为t,连续流入 12 条指令。分别画出标量流水处理机以及ILP 均为 4 的超标量处理机、超长指令字处理机、超流水处理机的时空图,并分别计算它们相对于标量流水处理机的加速比。解:标量流水处理机的时空图:执行分析取指14时间执行完 12 条指令需 T114t。超标量流水处理机与超长指令字处理机的时空图:执行执行分析分析取指5时间取指超长指令字处理机时空图5时间超标量处理机时空图超标量流水处理机中,每一个时钟周期同时启动 4 条指令。执行完 12 条指令需 T25t,相对于标量流水处理机的加速比为:T14tS21 2.8T25t超长指令字处理机中,每4 条指令组成一条长指令,共形成3 条长指令。执行完 12 条指令需 T35t,相对于标量流水处理机的加速比为:T14tS31 2.8T35t超流水处理机的时空图:执行分析取指45 5.75时间超流水处理机中,每 1/4 个时钟周期启动一条指令。执行完12 条指令需 T4t,相对于标量流水处理机的加速比为:【S4T114t 2.435T45.75t第第 5 5 章章 存储层次存储层次解释下列术语多级存储层次:采用不同的技术实现的存储器,处在离 CPU 不同距离的层次上,各存储器之间一般满足包容关系,即任何一层存储器中的内容都是其下一层(离 CPU 更远的一层)存储器中内容的子集。目标是达到离CPU 最近的存储器的速度,最远的存储器的容量。全相联映象:主存中的任一块可以被放置到Cache 中任意一个地方。直接映象:主存中的每一块只能被放置到Cache 中唯一的一个地方。组相联映象:主存中的每一块可以放置到Cache 中唯一的一组中任何一个地方(Cache 分成若干组,每组由若干块构成)。(替换算法:由于主存中的块比Cache 中的块多,所以当要从主存中调一个块到Cache 中时,会出现该块所映象到的一组(或一个)Cache 块已全部被占用的情况。这时,需要被迫腾出其中的某一块,以接纳新调入的块。LRU:选择最近最少被访问的块作为被替换的块。实际实现都是选择最久没有被访问的块作为被替换的块。写直达法:在执行写操作时,不仅把信息写入 Cache 中相应的块,而且也写入下一级存储器中相应的块。写回法:只把信息写入 Cache 中相应块,该块只有被替换时,才被写回主存。【按写分配法:写失效时,先把所写单元所在的块调入Cache,然后再进行写入。不按写分配法:写失效时,直接写入下一级存储器中,而不把相应的块调入Cache。命中时间:访问 Cache 命中时所用的时间。.失效率:CPU 访存时,在一级存储器中找不到所需信息的概率。失效开销:CPU 向二级存储器发出访问请求到把这个数据调入一级存储器所需的时间。强制性失效:当第一次访问一个块时,该块不在Cache中,需要从下一级存储器中调入Cache,这就是强制性失效。容量失效:如果程序在执行时,所需要的块不能全部调入Cache 中,则当某些块被替换后又重新被访问,就会产生失效,这种失效就称作容量失效。¥冲突失效:在组相联或直接映象Cache 中,若太多的块映象到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。2:1Cache 经验规则:大小为 N 的直接映象 Cache 的失效率约等于大小为N/2 的两路组相联Cache 的实效率。相联度:在组相联中,每组Cache 中的块数。!Victim Cache:位于Cache 和存储器之间的又一级 Cache,容量小,采用全相联策略。用于存放由于失效而被丢弃(替换)的那些块。每当失效发生时,在访问下一级存储器之前,先检查 Victim Cache 中是否含有所需块。故障性预取:在预取时,若出现虚地址故障或违反保护权限,就会发生异常。非故障性预取:在预取时,若出现虚地址故障或违反保护权限,不发生异常。非阻塞 Cache:Cache 在等待预取数据返回时,还能继续提供指令和数据。;尽早重启动:在请求字没有到达时,CPU 处于等待状态。一旦请求字到达,就立即发送给CPU,让等待的 CPU 尽早重启动,继续执行。请求字优先:调块时,首先向存储器请求 CPU 所要的请求字。请求字一旦到达,就立即送往 CPU,让 CPU 继续执行,同时从存储器调入该块的其余部分。虚拟 Cache:地址使用虚地址的 Cache。)多体交叉存储器:具有多个存储体,各体之间按字交叉的存储技术。存储体冲突:多个请求要访问同一个体。TLB:一个专用高速存储器,用于存放近期经常使用的页表项,其内容是页表部分内容的一个副本。5.2 简述“Cache主存”层次与“主存辅存”层次的区别。答:&存 储层次比较项目目的“Cache主存”层次“主存辅存”层次为了弥补主存速度的不足全部由专用硬件实现几比一几十个字节可直接访问为了弥补主存容量的不足主要由软件实现几万比一几百到几千个字节均通过第一级存储管理的实现访问速度的比值(第一