第1章计算机系统结构导论习题参考答案1.1计算机系统结构:是指计算机系统多级层次结构中传统机器级的结构,它是软件和硬件/固件的主要交界面,是让编制的机器语言程序、汇编语言程序以及将高级语言源程序编译生成的机器语言目标程序在机器上正确运行所应看到的计算机属性。计算机系统结构是与汇编语言程序或机器语言程序所能实现的功能,要用到的数据类型、寻址方式、指令系统、I/O结构等密切相关的。计算机组成:是计算机系统结构的逻辑实现,包括机器级内的数据流和控制流的组成以及逻辑设计等。它与指令和编程等没有直接关系,主要是看硬件系统在逻辑上是如何组织的。也即它着眼于机器级内各事件的排序方式与控制机构、各部分的功能及各部件之间的联系。计算机实现:计算机实现指的是计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分与连接,专用器件的设计,微组装技术,信号传输,电源、冷却及整机装配技术等。它着眼于器件技术和微组装技术。器件技术在实现技术中起着主导作用。它直接影响到系统的速度和价格。透明性:指的是在计算机中,客观存在的事物或属性从某个角度看不到,则称这些事物或属性对计算机是透明的。软件兼容:由于系列内各档机器从程序设计者看都具有相同的机器属性,因此按这个属性编制的机器语言程序以及编译程序都能不加修改地通用于各档机器。我们称这种情况下的各档机器是软件兼容的。系列机的区别仅在于运行所需时间不同。系列机:所谓系列机是指由同一个厂家生产的具有相同的系统结构,但具有不同组成和实现的一系列不同型号的机器。模拟:模拟(Simulation):用机器语言程序解释另一机器的机器指令,实现软件移植的方法称为模拟。进行模拟工作的机器称为宿主机(HostMachine),被模拟的机器称为虚拟机(VirtualMachine)仿真:仿真(Emulation):用微程序直接解释另一机器的机器指令实现软件移植的方法称为仿真。进行仿真工作的机器称为宿主机(HostMachine),被仿真的机器则称为目标机(TargetMachine)。Amdahl定律:系统中某一部件由于采取某种更快的执行方式后,整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关。CPI;每条指令所需的时钟周期数。MIPS;每秒百万条指令条数。MFLOPS:每秒百万次浮点操作次数。1.2第2级上等效程序需运行:NKMS。第3级上等效程序需运行:22NKSM。第4级上等效程序需运行:33NKSM1.3软件和硬件在逻辑功能上是等效的,原理上,软件的功能可用硬件或固件完成,硬件的功能也可用软件模拟完成。只是反映在速度、价格、实现的难易程度上这两者不同21.4计算机系统结构、计算机组成、计算机实现互不相同,但又相互影响。⑴计算机的系统结构相同,但可采用不同的组成。如IBM370系列有115、125、135、158、168等由低档到高档的多种型号机器。从汇编语言、机器语言程序设计者看到的概念性结构相同,均是由中央处理机/主存,通道、设备控制器,外设4部分构成。其中,中央处理机都有相同的机器指令和汇编指令系统,只是指令的分析、执行在低档机上采用顺序进行,在高档机上采用重叠、流水或其它并行处理方式。⑵相同的组成可有多种不同的实现。如主存器件可用双极型的,也可用MOS型的;可用VLSI单片,也可用多片小规模集成电路组成。⑶计算机的系统结构不同,会使采用的组成技术不同,反之组成也会影响结构。如为了实现A:=B+CD:=E×F,可采用面向寄存器的系统结构,也可采用面向主存的三地址寻址方式的系统结构。要提高运行速度,可让相加与相乘并行,为此这两种结构在组成上都要求设置独立的加法器和乘法器。但对面向寄存器的系统结构还要求寄存器能同时被访问,而对面向主存的三地址寻址方式的系统结构并无此要求,倒是要求能同时形成多个访存操作数地址和能同时访存。又如微程序控制是组成影响结构的典型。通过改变控制存储器中的微程序,就可改变系统的机器指令,改变结构。如果没有组成技术的进步,系统结构的发展也是不可能的。综上所述,系统结构的设计必须结合应用考虑,为软件和算法的实现提供更多更好的支持,同时要考虑可能采用和准备采用的组成技术。应避免过多地或不合理地限制各种组成、实现技术的采用和发展,尽量做到既能方便地在低档机上用简单便宜的组成实现,又能在高档机上用复杂较贵的组成实现,这样,结构才有生命力;组成设计上面决定于结构,下面受限于实现技术。然而,它可与实现折衷权衡。例如,为达到速度要求,可用简单的组成但却是复杂的实现技术,也可用复杂的组成但却是一般速度的实现技术。前者要求高性能的器件,后者可能造成组成设计复杂化和更多地采用专用芯片。组成和实现的权衡取决于性能价格比等因素;结构、组成和实现所包含的具体内容随不同时期及不同的计算机系统会有差异。软件的硬化和硬件的软件都反映了这一事实。VLSI的发展更使结构组成和实现融为一体,难以分开。1.5透明指的是客观存在的事物或属性从某个角度看不到。透明的有:存储器的模m交叉存取;数据总线宽度;阵列运算部件;通道是采用结合型还是独立型;PDP-11系列的单总线结构;串行、重叠还是流水控制方式;Cache存储器。不透明的有:浮点数据表示;I/O系统是采用通道方式还是外围处理机方式;字符行运算指令;访问方式保护;程序性中断;堆栈指令;存储器最小编址单位。1.6透明的有:指令缓冲器、时标发生器、乘法器、主存地址寄存器、先进先出链、移位器1.7对系统程序员透明的有:虚拟存储器;Cache存储器;程序状态字;对应用程序员透明的有:系列机各档不同的数据通路宽度;“启动I/O”指令;“执行”指令;指令缓冲寄存器1.8⑴可以。在旧型号机器上运行的目标软件能够直接运行于新型号机器上。⑵不可以。中断的分级和中断的响应次序等中断机构都属于计算机系统结构的内容。3中断分级由原来的4级增加到5级应当还是允许的,关键是重新调整了中断响应的优先次序,这就使原来程序中断响应次序发生了改变,会影响原有程序工作的正确性。⑶可以。Cache存储器属于计算机组成,它不会改变原有的系统程序和应用程序,不会影响到它们的正常运行。只是有了Cache存储器后,系统的性能有了明显的提高。⑷可以。浮点数尾数的下益处理不属于计算机系统结构,而是计算机组成设计所考虑的内容。⑸不可以。指令的操作吗、字段格式、寻址方式等的指明都是计算机系统结构的内容,如果将它们加以改变,就会直接导致以前编写的程序都不能正确运行了。⑹可以。⑺可以。单总线改为多总线是计算机组成的内容。⑻不可以。通常寄存器的使用是属于计算机系统结构的内容。0号通用寄存器改作堆栈指示器,将使原先程序中0号通用寄存器中的内容改变为直接影响到堆栈指针的位置发生变化,造成程序无法正常工作的局面。1.9首先对新的存储系统的性能做以下的假设:在Cache不命中的情况下,对Cache的访问不会额外损失时间,即:首先,决定Cache是否命中所用的时间可以忽略;其次,在从主存向Cache传输的同时,数据也被传输给使用部件(不需要再从Cache中读取)。这样,新的存储系统中,平均存取时间分为两个部分:主存与Cache、Cachen1=110.950.9TS改进前改进后T1.101niiiICPICPIIC4500013200021500028000245000320001500080001.5666401025.811.551010fMIPSMIPSCPI程序执行时间T为:6450001320002150002800024010T-3=3.87510秒1.1115fMHZ,10MIPS,每次存取时间为两个时钟周期⑴有效66615101.5101010fCPIMIPS⑵15fMHZ,存储系统的速率不变,但每次存取为2个时钟周期。+30%215%421.9CPICPI新原4666301015.8101.910fMIPSCPI1.530===1.581.915ccTICPITSnTICPIT原原原新新新5第3章数据表示与指令系统设计(习题3参考答案)3.1数据表示:数据表示就是指能由机器硬件直接识别和引用的数据类型。数据结构:研究面向系统软件,面向应用领域所需要处理的各种数据类型,研究这些数据类型的逻辑结构和物理结构之间的关系,并给出相应的算法。规格化浮点数:尾数小数点后第一个数位不为0的浮点数。寻址技术:是系统寻找数据或其它有用信息的地址的技术。隐含编址:操作码隐含了其寻址方式的编址方式。统一编址:将I/O端口地址和存储器地址合为一体,进行统一编址。独立编址:独立设置I/O端口地址。逻辑地址:计算机系统的各个源程序或程序段从自己的零地址开始分配地址空间的,又称为相对地址。物理地址:程序调入主存中占用的实际地址。信息源熵:信息源所含的平均信息量。CISC:复杂指令集计算机,是一种进一步增强原有指令的功能以及设置更为复杂的新指令取代原来由软件子程序实现的功能,实现软件功能的硬化的一种计算机。RISC:精简指令集计算机,使计算机的指令功能尽量简化,指令系统中只有那些功能简单、能在一个机器节拍内完成的指令,对于复杂的功能用一段子程序来实现。零地址指令:指令格式中只有操作码字段,没有地址码字段。一地址指令:指令格式中包含一个地址字段。二地址指令:指令格式中包含两个地址字段:源操作数地址、目标地址,参加运算的连个操作数分别存放其中,运算结果覆盖掉目标地址中的源操作数。三地址指令:指令包含了三个地址段,其中两个存放源操作数地址,第三个用来存放目的操作数地址。20%-80%规律:各种指令的使用频度有很大的差异,约有20%的指令被反复的执行,其使用量占据了整个程序使用量的80%,而另外的80%左右的指令的使用量则很少,仅占了整个程序使用量的20%,而且使用频度高的指令大多数是一些简单的指令。重叠窗口技术:将系统中的寄存器设置一个寄存器堆,将它们划分成多个窗口。每个过程调用使用其中相邻的三个窗口和一个公共窗口,在这些窗口中有一个与前一个过程共用,它主要用来存放前一个过程传送给本过程的参数;还有一个与下一个过程共用,用来存放本过程传送给下一个过程的参数及下一个过程给本过程的结果。延迟转移技术:在指令的流水执行过程中,在遇到转移指令时,会出现转移的目的地址在指令执行完成后才能得到的情况,这时需要将转移指令与其前面的一条或多条指令调换一下位置,使得转移总是在紧跟的指令执行后发生。指令取消技术:转移指令都可以取消其下面执行的指令。3.2计算机系统中引入浮点数据表示主要是因为顶点数据表示有如下缺点:(1)编程困难。设计人员需要先确定小数点的位置,然后对齐数据的小数点位置。(2)数据存储单元的利用率很低。当用定点数据表示表示一个小数点后有很多个“0”的数据时,不仅会浪费存储单元也会降低小数的精度。6(3)表示数的范围小。其表数的范围和机器的字长直接相关,表示一个“很大”或“很小”的数据时,需要的机器字长很长。3.3寄存器寻址方式中的寄存器中存放的如果是操作数则称为寄存器寻址方式;如果是操作数的地址,则称为寄存器间接寻址方式。3.4(1)阶的最小值为:1阶的最大值为:38尾数的最小值为:1/2尾数的最大值为:15/16浮点数的最小值为:18浮点数的最大值为:120浮点数的可表数个数为:32个(2)阶的最小值为:1阶的最大值为:88尾数的最小值为:1/2尾数的最大值为:7/8浮点数的最小值为:1/2浮点数的最大值为:7×78浮点数的可表数个数为:56个3.5数据描述符和标志符的区别在于标志符是和每个数据相连的,合存在一个存储单元中,描述单个数据的类型特征;描述符则是与数据分开存放,用于描述一组数据的属性,比如:访问的数据是整块的还是单个的,访问该数据块或数据元素所要的访问地址及其它信息等。3.6固定长度编码的平均码长为:4,Huffman树如图1所示