1、计算机系统的体系结构课后答案 1-8章第 1 章 计算机系统结构的基本概念 1、有一个计算机系统可按功能分成 4 级,每级的指令互不相同,每一级的指令都比其下一级的指令在效能上强 M 倍,即第 i 级的一条指令能完成第 i-1级的 M 条指令的计算量。现若需第 i 级的 N 条指令解释第 i+1 级的一条指令,而有一段第 1 级的程序需要运行 Ks,问在第 2、3 和 4 级上一段等效程序各需要运行多长时间?答:第 2 级上等效程序需运行:(N/M)*Ks。第 3 级上等效程序需运行:(N/M)*(N/M)*Ks。第 4 级上等效程序需运行:(N/M)*(N/M)*(N/M)*Ks。2、硬件和
2、软件在什么意义上是等效的?在什么意义上又是不等效的?试举例说明。答:软件和硬件在逻辑功能上是等效的,原理上,软件的功能可用硬件或固件完成,硬件的功能也可用软件模拟完成。只是反映在速度、价格、实现的难易程度上这两者不同。3、试以实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系与影响。答:计算机系统结构、计算机组成、计算机实现互不相同,但又相互影响。(1)计算机的系统结构相同,但可采用不同的组成。如 IBM370 系列有 115、125、135、158、168 等由低档到高档的多种型号机器。从汇编语言、机器语言程序设计者看到的概念性结构相同,均是由中央处理机/主存,通道、设备控制器,外
3、设 4 级构成。其中,中央处理机都有相同的机器指令和汇编指令系统,只是指令的分析、执行在低档机上采用顺序进行,在高档机上采用重叠、流水或其它并行处理方式。(2)相同的组成可有多种不同的实现。如主存器件可用双极型的,也可用 MOS 型的;可用 VLSI 单片,也可用多片小规模集成电路组搭。(3)计算机的系统结构不同,会使采用的组成技术不同,反之组成也会影响结构。如为实现 A:=B+CD:=E*F,可采用面向寄存器的系统结构,也可采用面向主存的三地址寻址方式的系统结构。要提高运行速度,可让相加与相乘并行,为此这两种结构在组成上都要求设置独立的加法器和乘法器。但对面向寄存器的系统结构还要求寄存器能同
4、时被访问,而对面向主存的三地址寻址方式的系统结构并无此要求,倒是要求能同时形成多个访存操作数地址和能同时访存。又如微程序控制是组成影响结构的典型。通过改变控制存储器中的微程序,就可改变系统的机器指令,改变结构。如果没有组成技术的进步,结构的进展是不可能的。综上所述,系统结构的设计必须结合应用考虑,为软件和算法的实现提供更多更好的支持,同时要考虑可能采用和准备采用的组成技术。应避免过多地或不合理地限制各种组成、实现技术的采用和发展,尽量做到既能方便地在低档机上用简单便宜的组成实现,又能在高档机上用复杂较贵的组成实现,这样,结构才有生命力;组成设计上面决定于结构,下面受限于实现技术。然而,它可与实
5、现折衷权衡。例如,为达到速度要求,可用简单的组成但却是复杂的实现技术,也可用复杂的组成但却是一般速度的实现技术。前者要求高性能的器件,后者可能造成组成设计复杂化和更多地采用专用芯片。组成和实现的权衡取决于性能价格比等因素;结构、组成和实现所包含的具体内容随不同时期及不同的计算机系统会有差异。软件的硬化和硬件的软件都反映了这一事实。VLSI 的发展更使结构组成和实现融为一体,难以分开。4、什么是透明性概念?对计算机系统结构,下列哪些是透明的?哪些是不透明的?存储器的模 m 交叉存取;浮点数据表示;I/O 系统是采用通道方式还是外围处理机方式;数据总线宽度;字符行运算指令;阵列运算部件;通道是采用
6、结合型还是独立型;PDP-11 系列的单总线结构;访问方式保护;程序性中断;串行、重叠还是流水控制方式;堆栈指令;存储器最小编址单位;Cache 存储器。答:透明指的是客观存在的事物或属性从某个角度看不到。透明的有:存储器的模 m 交叉存取;数据总线宽度;阵列运算部件;通道是采用结合型还是独立型;PDP-11 系列的单总线结构;串行、重叠还是流水控制方式;Cache 存储器。 不透明的有:浮点数据表示;I/O 系统是采用通道方式还是外围处理机方式;字符行运算指令;访问方式保护;程序性中断;堆栈指令;存储器最小编址单位。P.S. 属于计算机系统结构的属性有:数据表示、寻址方式、寄存器组织、指令系
7、统、存储组织、中断机构、I/O 结构、保护机构等。属于组成的属性有:数据通路宽度、专用部件设置、功能部件并行度、控制机构的组成方式,可靠性技术等。它着眼于机器内各事件的排序方式,控制机构的功能及部件间的关系。属于实现的属性有:部件的物理结构、器件、模块的划分与连接、微组装技术、信号传输技术等,它着眼于器件技术和微组装技术。5、从机器(汇编)语言程序员看,以下哪些是透明的?指令地址寄存器;指令缓冲器;时标发生器;条件寄存器;乘法器;主存地址寄存器;磁盘外设;先行进位链;移位器;通用寄存器;中断字寄存器。答:透明的有:指令缓冲器、时标发生器、乘法器、主存地址寄存器、先进先出链、移位器 6、下列哪些
8、对系统程序员是透明的?哪些对应用程序员是透明的?系列机各档不同的数据通路宽度;虚拟存储器;Cache 存储器;程序状态字;“启动 I/O”指令;“ 执行 ”指令;指令缓冲寄存器。答: 对系统程序员透明的有:虚拟存储器;Cache 存储器;程序状态字;对应用程序员透明的有:系列机各档不同的数据通路宽度;“启动 I/O”指令;“执行” 指令;指令缓冲寄存器。该题答案纯属本人个人见解。对系统程序员透明是否意味着有计算机系统结构透明,而对应用程序员透明则对应着对计算机组成透明呢?-lanjing以下摘自南京大学出版社出版,李学干主编的辅导书分析系统程序员是编写诸如操作系统、编译程序等各种系统软件的人员
9、。应用程序员是指利用计算机及所配的系统软件支持来编写解决具体应用问题的程序员。他们都可以使用汇编语言或机器语言来编写程序,当然也可以用高级语言来编写程序。所以,对系统程序员或应用程序员不透明的,应包括计算机系统结构所包含的方面。而属全硬件实现的计算机组成所包含的方面,如系列机各档不同的数据通路宽度、Caceh 存储器、指令缓冲寄存器等,无论是对系统程序员,还是对应用程序员都应当是透明的。对目前高性能计算机系统来讲,大多数都是多用户环境,应用程序(也称算态、目态或用户态程序)中是不允许使用管态(也称系统态、监督态)中所用的特权指令。例如,大型多用户系统中,程序状态字是用于反映计算机系统在当前程序
10、的各种关键状态(它并不是 IBM PC 计算机那种狭义的所谓程序状态字),它是操作系统用于管理计算机系统资源及其使用状况的,用户不能直接对程序状态字内容进行读、写和访问的,只能由系统来管理。“启动 I/O”指令是大型机中的一种管态指令,属于特权指令,只能在操作系统程序中使用(见教材中第 3 章的 3.4.1 节所介绍)。用户程序是不能用它来直接启动 I/O 通道和设备的。虚拟存储器(参看教材第 4 章 4.1.3 节) 是一个主存-辅存两级存储层次。它对应用程序是完全透明的,使应用程序不必作任何修改就可以在系统上运行。但是,在操作系统中必须配置有相应的管理软件,能对其虚实外部地址的映象和变换、
11、程序的换道、程序由辅存调入主存、主存页面的替换、存储保护等进行管理,所以对系统程序员来说是不透明的。“执行”指令(参看教材中第 5 章 5.1.2 节) 是 IBM370等系列机上用于解决程序在执行过程中不准修改指令,又允许将指令放在操作数区中做修改,以满足指令在执行过程中允许修改的要求。这种指令无论是用户程序,还是系统程序,都希望可以被使用的,所以,“执行”指令应设计成对应用程序和系统程序都是不透明的。解答系列机各档不同数据通路宽度、Cache 存储器、指令缓冲寄存器属计算机组成,对系统程序员和应用程序员都是透明的。虚拟存储器、程序状态字、“启动 I/O”指令,对系统程序员是不透明的,而对应
12、用程序员却是透明的。“执行”指令则对系统程序员和应用程序员都是不透明的。7、想在系列机中发展一种新型号机器,你认为下列哪些设想是可以考虑的,哪些则不行的?为什么?(1)新增加字符数据类型和若干条字符处理指令,以支持事务处理程序的编译。(2)为增强中断处理功能,将中断分级由原来的 4 级增加到 5 级,并重新调整中断响应的优先次序。(3)在 CPU 和主存之间增设 Cache 存储器,以克服因主存访问速率过低而造成的系统性能瓶颈。(4)为解决计算误差较大,将机器中浮点数的下溢处理方法由原来的恒置“1”法,改为用 ROM 存取下溢处理结果的查表舍入法。(5)为增加寻址灵活性和减少平均指令字长,将原
13、等长操作码指令改为有 3类不同码长的扩展操作码;将源操作数寻址方式由操作码指明改成如 VAX-11那种设寻址方式位字段指明。(6)将 CPU 与主存间的数据通路宽度由 16 位扩展成 32 位,以加快主机内部信息的传送。(7)为减少公用总路线的使用冲突,将单总线改为双总线。(8)把原 0 号通用寄存器改作堆栈指示器。答:可以考虑的有:13467。不可以考虑的有:258。原则很简单,看改进后能否保持软件的可移植性。 P.S. 为了能使软件长期稳定,就要在相当长的时期里保证系统结构基本不变,因此在确定系列结构时要非常慎重。其中最主要是确定好系列机的指令系统、数据表示及概念性结构。既要考虑满足应用的
14、各种需要和发展,又要考虑能方便地采用从低速到高速的各种组成的实现技术,即使用复杂、昂贵的组成实现时,也还能充分发挥该实现方法所带来的好处。8、并行处理计算机除分布处理、MPP 和机群系统外,有哪 4 种基本结构?列举它们各自要解决的主要问题。答:除了分布处理,MPP 和机群系统外,并行处理计算机按其基本结构特征可分为流水线计算机,阵列处理机,多处理机和数据流计算机四种不同的结构。流水线计算机主要通过时间重叠,让多个部件在时间上交划重叠地并行招待运算和处理,以实现时间上的并行。它主要应解决:拥塞控制,冲突防止,流水线调度等问题。阵列处理机主要通过资源重复实现空间上的并行。它主要应解决:处理单元灵
15、活、规律的互连模式和互连网络设计,数据在存储器中的分布算法等问题。多处理机主要通过资源共享,让一组计算机在统一的操作系统全盘控制下,实现软件和硬件各级上的相互作用,达到时间和空间上的异 步并行。它主要应解决:处理机间互连等硬件结构,进程间的同上步和通讯,多处理机调度等问题。数据流计算机设有共享变量的概念,指令执行顺序只受指令中数据的相关性制约。数据是以表示某一操作数或参数已准备就绪的数据令牌直接在指令之间传递。它主要应解决:研究合适的硬件组织和结构,高效执行的数据流语言等问题。 9、计算机系统的 3T 性能目标是什么?答:计算机系统的 3T 性能目标是 1TFLOPS 计算能力 , 1TBYT
16、E 主存容量 和 1TBYTES 的 I/O 带宽 第 2 章 数据表示与指令系统 1、数据结构和机器的数据表示之间是什么关系?确定和引入数据表示的基本原则是什么?答:数据表示是能由硬件直接识别和引用的数据类型。数据结构反映各种数据元素或信息单元之间的结构关系。数据结构要通过软件映象变换成机器所具有的各种数据表示实现,所以数据表示是数据结构的组成元素。不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性不同。数据表示和数据结构是软件、硬件的交界面。除基本数据表示不可少外,高级数据表示的引入遵循以下原则:(1)看系统的效率有否提高,是否养活了实现时间和存储空间。 (2)看引入这
17、种数据表示后,其通用性和利用率是否高。2、标志符数据表示与描述符数据表示有何区别?描述符数据表示与向量数据表示对向量数据结构所提供的支持有什么不同?答:标志符数据表示指将数据类型与数据本身直接联系在一起,让机器中每个数所都带类型樗位。其优点是:(1)简化了指令系统和程序设计;(2)简化了编译程序;(3)便于实现一致性校验;(4)能由硬件自动变换数据类型;(5)支持数据库系统的实现与数据类型无关;(6 )为软件调试和应用软件开发提供支持。缺点是:(1)会增加程序所点的主存空间;(2 )在微观上对机器的性能(运算速度)不利。数据描述符指数据的描述与数据分开存放,描述所访问的数据是整块还是单个的,及
18、访问该数据块或数据元素的地址住处它具备标志符数据表示的优点,并减少了标志符数据表示所占的空间,为向量和数组结构的实现提供支持。数据描述符方法优于标志符数据表示,数据的描述与数据分开,描述所访问的数据是整块还是单个的,及访问该数据块或数据元素的地址信息,减少了樗符数据表示所占的窨。用描述符方法实现阵列数据的索引比用变址方法实现要方便,且便于检查出程序中的阵列越界错误。但它不能解决向量和数组的高速运算问题。而在有向量、数组数据表示的向量处理机上,硬件上设置有丰富的赂量或阵列运算指令,配有流水或阵列方式处理的高速运算器,不仅能快速形成向量、数组的元素地址,更重要的是便于实现把向量各元素成块预取到中央
19、处理机,用一条向量、数组指令流水或同时对整个向量、数组高速处理如让硬件越界判断与元素运算并行。这些比起用与向量、阵列无关的机器语言和数据表示串行实现要高效的多。3、堆栈型机器与通用寄存器型机器的主要区别是什么?堆栈型机器系统结构为程序调用的哪些操作提供了支持?答:有堆栈数据表示的机器称为堆栈机器。它与一般通用寄存器型机器不同。通用寄存器型机器对堆栈数据结构实现的支持是较差的。表现在:(1)堆栈操作的指令少,功能单一;(2)堆栈在存储器内,访问堆栈速度低; (3)堆栈通常只用于保存于程序调用时的返回地址,少量用堆栈实现程序间的参数传递。而堆栈机器为堆栈数据结构的实现提供有力的支持表现在:(1)有
20、高速寄存器组成的硬件堆栈,并与主存中堆栈区在逻辑上组成整体,使堆栈的访问速度是寄存器的,容量是主存的;(2) 丰富的堆栈指令可对堆栈中的数据进行各种运算和处理;(3)有力地支持高级语言的编译; (4)有力地支持子程序的嵌套和递归调用。堆栈型机器系统结构有力地支持子程序的嵌套和递归调用。可将以下信息全部压栈,包括:保存子程序的返回地址,保存条件码,保存关键寄存器内容,保存必要的全局型、局部型参数,为子程序开辟存放局部变量和中间结果的工作区。4、设某机阶值 6 位、尾数 48 位,阶符和数符不在其内,当尾数分别以 2、8、16 为基时,在非负阶、正尾数、规格化数情况下,求出其最小阶、最大阶、阶的个
21、数、最小尾数值、最大尾数值、可表示的最小值和最大值及可表示的规格化数的总个数。解:依题意知:p=6 m=48 rm=2, 8, 16lanjing:lanjing:5、 (1)浮点数系统使用的阶基 rp=2,阶值位数 p=2,尾数基值 rm=10,以 rm 为基的尾数位数 m=1,按照使用的倍数来说,等价于 m=4,试计算在非负阶、正尾数、规格化情况下的最小尾数值、最大尾数值、最大阶值、可表示的最小值和最大值及可表示数的个数。(2)对于 rp=2,p=2,rm=4,m=2,重复以上计算。解:依题意知列下表:p=2,rm=10,m=1 p=2,rm=4,m=2 最小尾数值 10-1=0.1 4-
22、1=0.25 最大尾数值 1-10-1=0.9 1-4-2=15/16 最大阶值 2p-1=3 3 可表示的最小值 0.1 0.25 可表示的最大值 103*0.9=900 43*15/16=60 可表示数的总个数 36 48 P.S不明白题中“按照使用的倍数来说,等价于 m=4,” 这句话是什么意思,有什么作用呢? 6、由 4 位数(其中最低位为下溢附加位)经 ROM 查表舍入法,下溢处理成 3 位结果,设计使下溢下处理平均误差接近于零的 ROM 表,列出 ROM 编码表地址与内容的对应关系。解:地址 0000 0001 0010 0011 0100 0101 0110 0111 1000
23、1001 1010 1011 1100 1101 1110 1111 内容 000 001 001 010 010 011 011 100 100 101 101 110 110 111 111 111 7、变址寻址和基址寻址各适用于何种场合?设计一种只用 6 位地址码就可指向一个大地址空间中任意 64 个地址之一的寻址机构。解:基址寻址是对逻辑地址空间到物理地址空间变换的支持,以利于实现程序的动态再定位。变址寻址是对数组等数据块运算的支持,以利于循环。将大地址空间 64 个地址分块,用基址寄存器指出程序所在块号,用指令中 6 位地址码表示该块内 64个地址之一,这样基址和变址相结合可访问大地址任意 64 个地址之一。以下摘自南京大学出版社出版,李学干主编的辅导书变址寻址适合在标量计算机中,通过循环程序访问变址寄存器,修改其变址值来对向量或数组等数据结构中的各元素进行访问和处理。基址寻址则主要是用于程序的逻辑地址空间到物理地址空间的变换,以支持程序使用动态再定位的技术。设计一种只用 6 位地址码就可以指向一个大地址空间中任意 64 个地址之一的寻址机构,意味着指令中为寻址该操作数的地址码只有 6 位,只好用来表示这 64 个地址中的任一个