计算机系统结构习题答案(郑伟民)

下载可编辑

第一章

重点:

1. P2 1.1.1计算机系统层次结构(1.1.2透明性概念)

2. P9 1.2.1计算机系统设计的定量原理(Amdahl law及CPU性能公式)

3. P22 1.4.1 Von Neumann结构(模拟与仿真)

1. 习题

.专业.整理.

下载可编辑

题1.5 硬件和软件在什么意义上是等效的?在什么意义上又是不等效的?试举例说明。 [解答] 硬件和软件在逻辑功能上是等效的。在原理上,用软件实现的功能完全可以用硬件或固件(微程序解释)来完成。用硬件实现的功能也可以通过用软件进行模拟来完成,只是反映在速度、价格、实现的难易程度上,这两者是不同的。

例如,编译程序、操作系统等许多用机器语言软件子程序实现的功能完全可以用组合电路硬件或微程序固件来解释实现。它们的差别只是软件实现的速度慢,软件的编制复杂,编程工作量大,程序所占的存贮空间量较多,这些都是不利的;但是,这样所花硬件少,硬件实现上也就因此而简单容易,硬件的成本低,解题的灵活性和适应性较好,这些都是有利的。又如,乘除法运算可以经机器专门设计的乘法指令用硬件电路或乘除部件来实现,也可以通过执行一个使用相加、移位、比较、循环等机器指令组成的机器语言子程序来实现。向量、数组运算在向量处理机中是直接使用向量、数组类指令和流水或阵列等向量运算部件的硬件方式来实现,但在标量处理机上也可以通过执行用标量指令组成的循

.专业.整理.

下载可编辑

环程序的软件方式来完成。

浮点数运算可以直接通过设置浮点运算指令用硬件来实现,也可以用两个定点数分别表示浮点数的阶码和尾数,通过程序方法把浮点数阶码和尾数的运算映象变换成两个定点数的运算,用于程序软的方式来实现。十进制数的运算可以通过专门设置十进制运算类指令和专门的十进制运算部件硬的方式来完成,或者通过设置BCD数的表示和若干BCD数运算的校正指令来软硬结合地实现,也可以先经10转2的数制转换子程序将十进制数转成二进制数,再用二进制运算类指令运算,所得结果又调用2转10的数制转换子程序转换成十进制数结果,用全软的方式实现。

题1.7 什么是透明性概念?对于计算机系统结构,下列哪些是透明的?哪些是不透明的?

存贮器的模m交叉存取:浮点数据表示:I/O系统是采用通道方式还是外围处理机方式;数据总线宽度;字符行运算指令;阵列运算部件;通道是采用结合型还是独立型:PDP—11系列中的单总线结构;访问方式保护;程序性中断;串行、重叠还是流水控制方式;堆栈指令;存贮器的最小编址单位;Cache存贮器。

[分析] 所谓透明就是看不到,不属于其管理的部分。对计算机系统结构是否透明,首先要弄清教材1.2.1节中有关计算机系统结构的定义和所包含的属性内容。简单来说,凡是编写机器语言和汇编语言程序要用到的数据表示、指令系统、寻址方式、寄存器组织、机器级I/O结构、存贮容量及其编址方式、中断机构、系统管态和目态间的切换、信息保护方式和机构等对计算机系统结构都是不透明的。而全部由硬件实现,或是在机器语言、汇编语言编程中不会出现和不需要了解的部分,以及只影响机器的速度和价格的逻辑实现(计算机组成)和物理实现(计算机实现)的那些部分,对计算机系统结构都是透明的。 [解答] 客观存在的事物或属性。从某个角度去看,却看不到,称这些事物和属性对

.专业.整理.

下载可编辑

他是透明的。透明了就可以简化这部分的设计,然而因为透明而无法控制和干预,就会带来不利。因此,透明性的取舍要正确选择。

对计算机系统结构透明的有:存贮器的模m交叉存取,数据总线宽度,阵列运算部件,通道是采用结合型还是独立型,PDP一11系列的单总线结构,串行、重叠还是流水控制方式,Cache存贮器。

对计算机系统结构不透明的有:浮点数据表示,I/O系统采用通道方式还是外围处理机方式,字符行运算指令,访问方式保护,程序性中断,堆栈指令,存贮器最小编址单位。

题1.8 从机器(汇编)语言程序员的角度来看,以下哪些是透明的?

指令地址寄存器;指令缓冲器;时标发生器;条件码寄存器;乘法器;主存地址寄存器;磁盘外设;先行进位链;移位器;通用寄存器;中断字寄存器。

[分析] 从机器(汇编)语言程序员看,实际上也就是从计算机系统结构看的内容。 指令地址寄存器就是程序计数器,汇编语言或机器语言程序都要用到它的,其位数多少会影响到可执行程序的空间大小。指令缓冲器、主存地址寄存器都属于计算机组成中的缓冲器技术,是由全硬件实现的,系统程序不参预对它们的管理。时标发生器、乘法器、先行进位链、移位器等都属于计算机组成中的专用部件配臀,它只影响机器的速度和价格,与软件编程无关。条件码寄存器是存放指令执行后生成反映结果状态或特征的标志码,它要供转移等指令使用,是编程要用到的。磁盘外设的种类、编址方式、容量等都是磁盘管理服务程序要用到的。通用寄存器的数量、位效、编址、使用规定在汇编语言程序和机器语言程序中都是会直接用到的。中断字寄存器是用来记录每一个中断类中,各个中断源发生中断请求的状况的,它是中断服务程序在处理中断时要用到的。

[解答] 从机器(汇编)语言程序员来看,透明的有:指令缓冲器,时标发生器,乘法

.专业.整理.

下载可编辑

器,主存地址寄存器,先行进位链,移位器。

题1.9 下列哪些对系统程序员是透明的?哪些对应用程序员是透明的?

系列机各档不同的数据通路宽度;虚拟存贮器;Cache存贮器;程序状态字:“启动I/O”指令;“执行”指令;指令缓冲寄存器。

[分析] 系统程序员是编写诸如操作系统、编译程序等各种系统软件的人员。应用程序员是指利用计算机及所配的系统软件支持来编写解决具体应用问题的程序员。他们都可以使用汇编语言或机器语言来编写程序,当然也可以用高级语言来编写程序。所以,对系统程序员或应用程序员是不透明的,应包括计算机系统结构所包含的各个方面。而属全硬件实现的计算机组成所包含的方面,如系列机各档不同的数据通路宽度、Cache存贮器、指令缓冲寄存器等,无论是对系统程序员,还是对应用程序员都应当是透明的。对目前高性能计算机系统来讲,大多数都是多用户环境,应用程序(也称算态,目态或用户态程序)中不允许使用管态(也林系统态,监督态)中所用的特权指令。

例如,大型多用户系统中,程序状态字是用于反映计算机系统在当前程序的各种关键状态(它并不是IBM PC计算机那种狭义的所谓程序状态字)的,它是操作系统用于管理计算机系统资源及其使用状况的,用户是不能直接对程序状态字内容进行读,写和访问的,只能由系统来管理。“启动I/O”指令是大型机中的—种管态指令,属于特权指令,只能在操作系绕程序中使用(见教材中第3章3.4.1节的介绍)。用户程序是不能用它来直接启动I/O通道和设备的。虚拟存贮器(参看教材第4章4.1.3节)是一个主存——辅存两级存贮层次。它对应用程序员是完全透明的,使应用程序不必作任何修改就可以在系统上运行。但是,在操作系统中必须配置有相应的管理软件,能对其虚实外部地址的映象和变换、程序的换道、程序由辅存调入主存、主存页面的替换、存贮保护等进行管理,所以对系统程序员来说是不透明的。“执行”指令(参看教材中第5章5.1.2节)是IBM 370等系列机上用于解决程

.专业.整理.

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4