02325计算机系统结构(重点)

第1章 计算机系统结构的基本概念

 

1.1 解释下列术语

层次结构:按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征。这些层次依次为:微程序机器级,传统机器语言机器级,汇编语言机器级,高级语言机器级,应用语言机器级等。

 

虚拟机:用软件实现的机器。

 

翻译:先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在这低一级机器上运行,实现程序的功能。

 

解释:对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。

 

计算机系统结构:传统机器程序员所看到的计算机属性,即概念性结构与功能特性。

 

在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性

 

计算机组成:计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。

 

计算机实现:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。

 

系统加速比:对系统中某部分进行改进时,改进后系统性能提高的倍数。

 

Amdahl定律:当对一个系统中的部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比

 

程序的局部性原理:程序执行时所访问存储器地址不是随机分布的,而是相对地簇聚。包括时间局部性和空间局部性。

 

CPI:每条指令执行的平均时钟周期数。

 

测试程序套件:由各种不同的真实应用程序构成的一组测试程序,用来测试计算机在各个方面的处理性能。

 

存储程序计算机:冯·诺依曼结构计算机。其基本点是指令驱动。程序预先存放在计算机存储器中,机器一旦启动,就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。

 

系列机:由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的计算机。

 

软件兼容:一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上运行。差别只是执行时间的不同。

 

向上(下)兼容按某档计算机编制的程序,不加修改就能运行于比它高(低)档的计算机。

 

)兼容按某个时期投入市场的某种型号计算机编制的程序,不加修改地就能运行于在它之)投入市场的计算机。

 

兼容机:由不同公司厂家生产的具有相同系统结构的计算机。

 

模拟:用软件的方法在一台现有的计算机(称为宿主机)上实现另一台计算机(称为虚拟机)的指令系统。

 

仿真:用一台现有计算机(称为宿主机)上的微程序去解释实现另一台计算机(称为目标机)的指令系统。

 

并行性:计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。只要在时间上相互重叠,就存在并行性。它包括同时性与并发性两种含义。

 

时间重叠:在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。

 

资源重复:在并行性概念中引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。

 

资源共享:这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。

 

耦合度:反映多机系统中各计算机之间物理连接的紧密程度和交互作用能力的强弱。

 

紧密耦合系统:又称直接耦合系统。在这种系统中,计算机之间的物理连接的频带较高,一般是通过总线或高速开关互连,可以共享主存。

 

松散耦合系统:又称间接耦合系统,一般是通过通道或通信线路实现计算机之间的互连,可以共享外存设备(磁盘、磁带等)。计算机之间的相互作用是在文件或数据集一级上进行。

 

异构型多处理机系统:由多个不同类型、至少担负不同功能的处理机组成,它们按照作业要求的顺序,利用时间重叠原理,依次对它们的多个任务进行加工,各自完成规定的功能动作。

 

同构型多处理机系统:由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务。

 

 

1.3 计算机系统结构的Flynn分类法是按什么来分类的?共分为哪几类?

答:Flynn分类法是按照指令流和数据流的多倍性进行分类。把计算机系统的结构分为:

  1. 单指令流单数据流SISD
  2. 单指令流多数据流SIMD
  3. 多指令流单数据流MISD
  4. 多指令流多数据流MIMD

 

1.4 计算机系统设计中经常使用的4个定量原理是什么?并说出它们的含义。

答:(1)以经常性事件为重点在计算机系统的设计中,对经常发生的情况,赋予它优先的处理权和资源使用权,以得到更多的总体上的改进。(2)Amdahl定律。加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。(3)CPU性能公式。执行一个程序所需的CPU时间 = IC ×CPI ×时钟周期时间。(4)程序的局部性原理。程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。

 

 

1.7 将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?

 由题可知:   可改进比例 = 40% = 0.4      部件加速比 = 10

根据Amdahl定律可知:

采用此增强功能方法后,能使整个系统的性能提高到原来的1.5625倍。

 

 

第2章 指令集结构的分类

 

    1. 解释下列术语

堆栈型机器:CPU 中存储操作数的单元是堆栈的机器。

 

累加器型机器:CPU 中存储操作数的单元是累加器的机器。

 

通用寄存器型机器:CPU 中存储操作数的单元是通用寄存器的机器。

 

CISC:复杂指令集计算机

 

RISC:精简指令集计算机

 

寻址方式:指令系统中如何形成所要访问的数据的地址。一般来说,寻址方式可以指明指令中的操作数是一个常数、一个寄存器操作数或者是一个存储器操作数。

 

数据表示:硬件结构能够识别、指令系统可以直接调用的那些数据结构。

 

    1. 区别不同指令集结构的主要因素是什么?根据这个主要因素可将指令集结构分为哪3类?

答:区别不同指令集结构的主要因素是CPU中用来存储操作数的存储单元。据此可将指令系统结构分为堆栈结构、累加器结构和通用寄存器结构。

 

    1.  常见的3种通用寄存器型指令集结构的优缺点有哪些?

答:

指令系统结构类型

优  点

缺  点

寄存器-寄存器型

(0,3)

指令字长固定,指令结构简洁,是一种简单的代码生成模型,各种指令的执行时钟周期数相近。

与指令中含存储器操作数的指令系统结构相比,指令条数多,目标代码不够紧凑,因而程序占用的空间比较大。

寄存器-存储器型

(1,2)

可以在ALU指令中直接对存储器操作数进行引用,而不必先用load指令进行加载。容易对指令进行编码,目标代码比较紧凑。

由于有一个操作数的内容将被破坏,所以指令中的两个操作数不对称。在一条指令中同时对寄存器操作数和存储器操作数进行编码,有可能限制指令所能够表示的寄存器个数。指令的执行时钟周期数因操作数的来源(寄存器或存储器)不同而差别比较大。

存储器-存储器型

(2,2)或(3,3)

目标代码最紧凑,不需要设置寄存器来保存变量。

指令字长变化很大,特别是3操作数指令。而且每条指令完成的工作也差别很大。对存储器的频繁访问会使存储器成为瓶颈。这种类型的指令系统现在已不用了。

 

    1.  指令集应满足哪几个基本要求?

答:对指令集的基本要求是:完整性、规整性、高效率和兼容性。

完整性是指在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令集所提供的指令足够使用。

规整性主要包括对称性和均匀性。对称性是指所有与指令集有关的存储单元的使用、操作码的设置等都是对称的。均匀性是指对于各种不同的操作数类型、字长、操作种类和数据存储单元,指令的设置都要同等对待。

高效率是指指令的执行速度快、使用频度高。

 

    1.  指令集结构设计所涉及的内容有哪些?

答: (1) 指令集功能设计:主要有RISC和CISC两种技术发展方向; (2) 寻址方式的设计:设置寻址方式可以通过对基准程序进行测试统计,察看各种寻址方式的使用频率,根据适用频率设置必要的寻址方式。 (3) 操作数表示和操作数类型:主要的操作数类型和操作数表示的选择有:浮点数据类型、整型数据类型、字符型、十进制数据类型等等。 (4) 寻址方式的表示:可以将寻址方式编码于操作码中,也可以将寻址方式作为一个单独的域来表示。 (5) 指令集格式的设计:有变长编码格式、固定长度编码格式和混合型编码格式3种。

 

    1.  简述CISC指令集结构功能设计的主要目标。从当前的计算机技术观点来看,CISC指令集结构的计算机有什么缺点?

答:主要目标是增强指令功能,把越来越多的功能交由硬件来实现,并且指令的数量也是越来越多。

缺点: (1) CISC结构的指令集中,各种指令的使用频率相差悬殊。(2)CISC结构指令的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。(3)CISC结构指令集的复杂性给VLSI设计增加了很大负担,不利于单片集成。(4)CISC结构的指令集中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5) 在CISC结构的指令集中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。

 

    1. 简述RISC指令集结构的设计原则。

答(1) 选取使用频率最高的指令,并补充一些最有用的指令;(2)每条指令的功能应尽可能简单,并在一个机器周期内完成;(3)所有指令长度均相同;(4)只有Load和Store操作指令才访问存储器,其它指令操作均在寄存器之间进行; (5) 以简单有效的方式支持高级语言。

 

    1.  指令中表示操作数类型的方法有哪几种?

答:操作数类型有两种表示方法:(1)操作数的类型由操作码的编码指定,这是最常见的一种方法;(2)数据可以附上由硬件解释的标记,由这些标记指定操作数的类型,从而选择适当的运算。

 

    1.  表示寻址方式的主要方法有哪些?简述这些方法的优缺点。

答:表示寻址方式有两种常用的方法:(1)将寻址方式编于操作码中,由操作码在描述指令的同时也描述了相应的寻址方式。这种方式译码快,但操作码和寻址方式的结合不仅增加了指令的条数,导致了指令的多样性,而且增加了CPU对指令译码的难度。(2)为每个操作数设置一个地址描述符,由该地址描述符表示相应操作数的寻址方式。这种方式译码较慢,但操作码和寻址独立,易于指令扩展。

 

    1.  通常有哪几种指令格式,请简述其适用范围。

答: (1) 变长编码格式。如果系统结构设计者感兴趣的是程序的目标代码大小,而不是性能,就可以采用变长编码格式。(2)固定长度编码格式。如果感兴趣的是性能,而不是程序的目标代码大小,则可以选择固定长度编码格式。 (3) 混合型编码格式。需要兼顾降低目标代码长度和降低译码复杂度时,可以采用混合型编码格式。

 

    1.  根据CPU性能公式简述RISC指令集结构计算机和CISC指令集结构计算机的性能特点。

答:CPU性能公式:CPU时间=IC×CPI×T

其中,IC为目标程序被执行的指令条数,CPI为指令平均执行周期数,T是时钟周期的时间。

相同功能的CISC目标程序的指令条数ICCISC 少于RISC的ICRISC,但是CISC的CPICISC和TCISC都大于RISC的CPIRISC和TRISC,因此,CISC目标程序的执行时间比RISC的更长。

 

 

第3章 流水线技术

 

3.2 指令的执行可采用顺序执行、重叠执行和流水线三种方式,它们的主要区别是什么?各有何优缺点。

答:(1)指令的顺序执行是指指令与指令之间顺序串行。即上一条指令全部执行完后,才能开始执行下一条指令。

优点:控制简单,节省设备。缺点:执行指令的速度慢,功能部件的利用率低。

(2)指令的重叠指令是在相邻的指令之间,让第k条指令与取第k+l条指令同时进行。重叠执行不能加快单条指令的执行速度,但在硬件增加不多的情况下,可以加快相邻两条指令以及整段程序的执行速度。与顺序方式相比,功能部件的利用率提高了,控制变复杂了。

(3)指令的流水执行是把一个指令的执行过程分解为若干个子过程,每个子过程由专门的功能部件来实现。把多个处理过程在时间上错开,依次通过各功能段,每个子过程与其它的子过程并行进行。依靠提高吞吐率来提高系统性能。流水线中各段时间应尽可能相等

 

3.3 简述先行控制的基本思想。

答:先行控制技术是把缓冲技术和预处理技术相结合。缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲器,用以平滑它们的工作。预处理技术是指预取指令、对指令进行加工以及预取操作数等。

采用先行控制方式的处理机内部设置多个缓冲站,用于平滑主存、指令分析部件、运算器三者之间的工作。这样不仅使它们都能独立地工作,充分忙碌而不用相互等待,而且使指令分析部件和运算器分别能快速地取得指令和操作数,大幅度地提高指令的执行速度和部件的效率。这些缓冲站都按先进先出的方式工作,而且都是由一组若干个能快速访问的存储单元和相关的控制逻辑组成。

采用先行控制技术可以实现多条指令的重叠解释执行。 

 

3.4 设一条指令的执行过程分成取指令、分析指令和执行指令三个阶段,每个阶段所需的时间分别为△t、△t和2△t 。分别求出下列各种情况下,连续执行N条指令所需的时间。

(1)顺序执行方式;

(2)只有“取指令”与“执行指令”重叠;

(3)“取指令”、“分析指令”与“执行指令”重叠。

解:(1)每条指令的执行时间为:△t+△t+2△t=4△t

连续执行N条指令所需的时间为:4N△t

(2)连续执行N条指令所需的时间为:4△t+3(N-1)△t=(3N+1)△t

(3)连续执行N条指令所需的时间为:4△t+2(N-1)△t=(2N+2)△t

 

3.5 简述流水线技术的特点。

答:流水技术有以下特点:

(1) 流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现。因此,流水线实际上是把一个大的处理功能部件分解为多个独立的功能部件,并依靠它们的并行工作来提高吞吐率

(2) 流水线中各段时间应尽可能相等,否则将引起流水线堵塞断流

(3) 流水线每一个功能部件的前面都要有一个缓冲寄存器,称为流水寄存器。

(4) 流水技术适合于大量重复的时序过程,只有输入端不断地提供任务,才能充分发挥流水线的效率。

(5) 流水线需要有通过时间和排空时间。在这两个时间段中,流水线都不是满负荷工作。

 

3.6 解决流水线瓶颈问题有哪两种常用方法?

答:细分瓶颈段与重复设置瓶颈段

 

3.7 减少流水线分支延迟的静态方法有哪些?

答:(1)预测分支失败:沿失败的分支继续处理指令,就好象什么都没发生似的当确定分支失败说明预测正确,流水线正常流动当确定分支成功,流水线就把在分支指令之后取出的指令转化为空操作,并按分支目标地址重新取指令执行。

(2)预测分支成功流水线ID段检测到分支指令后,一旦计算出了分支目标地址就开始从该目标地址取指令执行。

(3)延迟分支主要思想是从逻辑上延长分支指令的执行时间。把延迟分支看成是由原来的分支指令和若干个延迟槽构成。不管分支是否成功,都要按顺序执行延迟槽中的指令。

3种方法的共同特点:它们对分支的处理方法在程序的执行过程中始终是不变的。它们要么总是预测分支成功,要么总是预测分支失败。

 

3.8 简述延迟分支方法中的三种调度策略的优缺点。

调度策略

对调度的要求

对流水线性能改善的影响

从前调度

分支必须不依赖于被调度的指令

总是可以有效提高流水线性能

从目标处调度

如果分支转移失败,必须保证被调度的指令对程序的执行没有影响,可能需要复制被调度指令

分支转移成功时,可以提高流水线性能。但由于复制指令,可能加大程序空间

从失败处调度

如果分支转移成功,必须保证被调度的指令对程序的执行没有影响

分支转移失败时,可以提高流水线性能

 

 

3.9列举出下面循环中的所有相关,包括输出相关、反相关、真相关。

for (i=2; i<100; i=i+1)

a[i]=b[i]+a[i] ;/* s1 */

c[i+1]=a[i]+d[i] ; /* s2 */

a[i-1]=2*b[i] ; /* s3 */

b[i+1]=2*b[i] ;/* s4 */

解:展开循环两次:

a[i] = b[i] + a[i] ; /* s1 */

c[i+1] = a[i] + d[i] ; /* s2 */

a[i-1] = 2 * b[i] ; /* s3 */

b[i+1] = 2 * b[i] ; /* s4 */

a[i+1] = b[i+1] + a[i+1] ; /* s1’ */

c[i+2] = a[i+1] + d[i+1] ; /* s2 ‘*/

a[i] = 2 * b[i+1] ; /* s3 ‘*/

b[i+2] = 2 * b[i+1] ; /* s4 ‘*/

 

输出相关:无

反相关:无

真相关:S1&S2

由于循环引入的相关:S4&S4’(真相关)、S1’&S4(真相关)、S3’&S4(真相关)、S1&S3’(输出相关、反相关)、S2&S3’(反相关)。

 

3.12 有一指令流水线如下所示

  1. 求连续输入10条指令,该流水线的实际吞吐率和效率;
  2. 该流水线的“瓶颈”在哪一段?请采取两种不同的措施消除此“瓶颈”。对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?

解:(1)

(2)瓶颈在3、4段。

  1. 变成八级流水线(细分)

 

 
 

  1. 重复设置部件

 

 

 

 
 

 

 

3.14 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t,其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或

 

 
 

暂存于相应的流水寄存器中。现要在该流水线上计算             ,画出其时空图,并计算其吞吐率、加速比和效率。

 

解:首先,应选择适合于流水线工作的算法。对于本题,应先计算A1B1、A2B2、A3B3和A4B4;再计算(A1B1) ×(A2B2)和(A3B3) ×(A4B4);然后求总的结果。

 

 
 

其次,画出完成该计算的时空图,如所示,图中阴影部分表示该段在工作。

 

 

由图可见,它在18个△t时间,给出7个结果。所以吞吐率为:

                                                       

如果不用流水线,由于一次求3t一次求5t,则产生上述7个结果共需(4×5+3×3)△t =29t。所以加速比为

                                                                

 

该流水线的效率可由阴影区的面积5个段总时空区的面积的比值求得

                                                                    

 

 

3.15 动态多功能流水线由6个功能段组成,如下图:

 

 
 

 

其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算:

  1. 画出时空图;
  2. 计算实际的吞吐率、加速比和效率。

解:机器一共要做10次乘法,4次加法。

 

 

 
 

 

 

 

第5章 存储层次

 

 

    1. 简述“Cache—主存”层次与“主存—辅存”层次的区别。

答:

              存储层次

比较项目

“Cache—主存”层次

“主存—辅存”层次

目的

为了弥补主存速度的不足

为了弥补主存容量的不足

存储管理实现

全部由专用硬件实现

主要由软件实现

访问速度的比值

(第一级比第二级)

几比一

几万比一

典型的块(页)大小

几十个字节

几百到几千个字节

CPU对第二级的访问方式

可直接访问

均通过第一级

不命中时CPU是否切换

不切换

切换到其它进程

 

    1. 地址映象方法有哪几种?它们各有什么优缺点?

答:(1) 全相联映象。实现查找的机制复杂,代价高,速度慢。Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。(2)直接映象。实现查找的机制简单,速度快。Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。(3)组相联映象。组相联是直接映象和全相联的一种折衷。

 

    1. 降低Cache失效率有哪几种方法?简述其基本思想。

答:常用的降低Cache失效率的方法有下面几种:

  1. 增加Cache块大小。增加块大小利用了程序的空间局部性。
  2. 增加Cache的容量。
  3. 提高相联度,降低冲突失效。
  4. 伪相联Cache,降低冲突失效。当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果不命中,将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。
  5. 硬件预取技术。在处理器提出访问请求前预取指令和数据。
  6. 由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。
  7. 编译器优化,通过对软件的优化来降低失效率。
  8. “牺牲”Cache。在Cache和下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache 调入Cache。

 

    1. 简述减小Cache失效开销的几种方法。

答:让读失效优先于写、写缓冲合并、请求字处理技术、非阻塞Cache或非锁定Cache技术、采用二级Cache。

 

5.6 通过编译器对程序优化来改进Cache性能的方法有哪几种?简述其基本思想。

答:(1)数组合并。通过提高空间局部性来减少失效次数。有些程序同时用相同的索引来访问若干个数组的同一维,这些访问可能会相互干扰,导致冲突失效,可以将这些相互独立的数组合并成一个复合数组,使得一个Cache块中能包含全部所需元素。(2)内外循环交换。循环嵌套时,程序没有按数据在存储器中的顺序访问。只要简单地交换内外循环,就能使程序按数据在存储器中的存储顺序进行访问。(3)循环融合。有些程序含有几部分独立的程序段,它们用相同的循环访问同样的数组,对相同的数据作不同的运算。通过将它们融合成一个单一循环,能使读入Cache的数据被替换出去之前得到反复的使用。(4)分块。通过改进时间局部性来减少失效。分块不是对数组的整行或整列进行访问,而是对子矩阵或块进行操作。

 

5.7 在“Cache—主存”层次中,主存的更新算法有哪两种?它们各有什么特点?

答:(1)写直达法。易于实现,而且下一级存储器中的数据总是最新的。

(2)写回法。速度快,“写”操作能以Cache存储器的速度进行。而且对于同一单元的多个写最后只需一次写回下一级存储器,有些“写”只到达Cache,不到达主存,因而所使用的存储器频带较低。

 

5.8 组相联Cache的失效率比相同容量直接映象Cache的失效率低。由此能否得出结论:采用组相联一定能带来性能上的提高?为什么?

答:不一定。因为组相联命中率的提高是以增加命中时间为代价的,组相联需要增加多路选择开关。

 

5.9 写出三级Cache的平均访问时间的公式。

解:平均访存时间 = 命中时间+失效率×失效开销

只有第I层失效时才会访问第I1

三级Cache的命中率分别为HL1 Hl2 HL3失效率分别为Ml1Ml2ML3,第三级Cache的失效开销为PL3

 平均访问时间TA =HL1Ml1{Hl2Ml2(HL3ML3×PL3)}

 

5.10 假设对指令Cache的访问占全部访问的75%;而对数据Cache的访问占全部访问的25%。Cache的命中时间为1个时钟周期,失效开销为50 个时钟周期,在混合Cache中一次load或store操作访问Cache的命中时间都要增加一个时钟周期,32KB的指令Cache的失效率为0.39%,32KB的数据Cache的失效率为4.82%,64KB的混合Cache的失效率为1.35%。又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。试问指令Cache和数据Cache容量均为32KB的分离Cache和容量为64KB的混合Cache相比,哪种Cache的失效率更低?两种情况下平均访存时间各是多少?

解:(1)根据题意,约75%的访存为取指令。

因此,分离Cache的总体失效率为:(75%×0.15%)+(25%×3.77%)=1.055%;    

容量为128KB的混合Cache的失效率略低一些,只有0.95%。   

(2)平均访存时间公式可以分为指令访问和数据访问两部分:     

 平均访存时间=指令所占的百分比×(读命中时间+读失效率×失效开销)+                数据所占的百分比×(数据命中时间+数据失效率×失效开销)    

所以,两种结构的平均访存时间分别为:  

分离Cache的平均访存时间=75%×(1+0.15%×50)+25%×(1+3.77%×50)

=(75%×1.075)+(25%×2.885)=1.5275      

混合Cache的平均访存时间=75%×(1+0.95%×50)+25%×(1+1+0.95%×50)

=(75%×1.475)+(25%×2.475)=1.725

因此,尽管分离Cache的实际失效率比混合Cache的高,但其平均访存时间反而较低。分离Cache提供了两个端口,消除了结构相关。

 

5.11 给定以下的假设,试计算直接映象Cache和两路组相联Cache的平均访问时间以及CPU的性能。由计算结果能得出什么结论?

  1. 理想Cache情况下的CPI为2.0,时钟周期为2ns,平均每条指令访存1.2次;
  2. 两者Cache容量均为64KB,块大小都是32字节;
  3. 组相联Cache中的多路选择器使CPU的时钟周期增加了10%;
  4. 这两种Cache的失效开销都是80ns;
  5. 命中时间为1个时钟周期;
  6. 64KB直接映象Cache的失效率为1.4%,64KB两路组相联Cache的失效率为1.0%。

解:  平均访问时间=命中时间+失效率×失效开销

平均访问时间1-路=2.0+1.4% *80=3.12ns

平均访问时间2-路=2.0*(1+10%)+1.0% *80=3.0ns

两路组相联的平均访问时间比较低

CPUtime=(CPU执行+存储等待周期)*时钟周期

CPU time=IC(CPI执行+总失效次数/指令总数*失效开销) *时钟周期

=IC((CPI执行*时钟周期)+(每条指令的访存次数*失效率*失效开销*时钟周期))

CPU time 1-way=IC(2.0*2+1.2*0.014*80)=5.344IC

CPU time 2-way=IC(2.2*2+1.2*0.01*80)=5.36IC

相对性能比:5.36/5.344=1.003

直接映象cache的访问速度比两路组相联cache要快1.04倍,而两路组相联Cache的平均性能比直接映象cache要高1.003倍。因此这里选择两路组相联。

 

 

  • 15
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《计算机系统结构教程》是由张晨曦所编写的一本关于计算机系统结构的教材,主要介绍了计算机系统的设计原理、组成结构和性能优化等内容。 首先,本教程详细介绍了计算机系统的基本组成部分,包括中央处理器(CPU)、内存、输入输出设备和系统总线等。通过对这些组成部分的功能、特点和相互之间的连接关系进行讲解,读者可以全面了解计算机系统的基本构成和工作原理。 其次,教程重点介绍了计算机系统的指令集体系和指令执行过程。它深入解析了指令集的分类、指令格式、寻址方式以及指令的执行过程,帮助读者了解计算机是如何解析和执行指令的。同时,通过介绍流水线技术和多核处理器等最新的指令执行技术,使读者对计算机系统的性能优化有更深入的认识。 此外,教程还介绍了计算机系统的存储器层次结构和存储器管理策略。它详细讲解了主存储器和辅助存储器的特点和组织方式,并介绍了高速缓存和虚拟内存等存储器管理技术。通过对存储器管理的讲解,读者可以了解到如何提高计算机系统的存储器性能和能力。 最后,教程还介绍了计算机系统的输入输出设备和总线结构。它详细介绍了输入输出设备的种类、特点和接口技术,并讲解了总线的基本概念、结构和传输方式。通过对输入输出设备和总线结构的介绍,读者可以全面了解计算机系统的输入输出环境和数据传输过程。 总之,《计算机系统结构教程》是一本全面且深入浅出的教材,不仅适合计算机专业的学生和教师使用,也适合对计算机系统结构感兴趣的读者阅读。它通过生动的案例和清晰的图表,帮助读者理解计算机系统的设计思想和工作原理,进一步拓宽了读者对计算机系统结构的认知。 ### 回答2: 《计算机系统结构教程》是由张晨曦在CSDN上发布的一篇关于计算机系统结构的教程。计算机系统结构是计算机硬件和软件之间的组织和交互方式,它确定了计算机的运行原理和特点。 这篇教程主要介绍了计算机系统结构的基本概念、重要组成部分和运行原理。通过学习这篇教程,读者可以了解到计算机系统是由中央处理器(CPU)、内存、输入输出设备和外部存储器等多个部分组成的,每个部分都有各自的功能和作用。 教程首先介绍了计算机系统的分类,包括单机系统和分布式系统,并解释了它们的区别和应用领域。接着,教程详细介绍了计算机系统的硬件组成部分,包括CPU、内存、输入输出设备等,以及它们之间的连接和通信方式。 教程还详细讲解了计算机系统的运行原理,包括指令执行过程、中断处理和资源管理等。通过对这些原理的学习,读者可以深入了解计算机系统的工作方式和运行机制。 除了理论知识,教程还提供了一些实践示例和编程代码,帮助读者更好地理解和应用所学内容。通过实践,读者可以加深对计算机系统结构的理解,并掌握一些实用的技巧和方法。 总之,张晨曦的《计算机系统结构教程》是一篇系统而全面的教程,通过阅读和学习这篇教程,读者可以快速掌握计算机系统结构的基本概念和运行原理,提高对计算机系统的理解和应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值