• 1.32 MB
  • 2022-04-22 11:51:50 发布

理》课后题答案_清华大学出版_秦磊华_吴非··.doc

  • 66页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'第一章系统给概论习题一1.l解释下列名词摩尔定律:对集成电路上可容纳的晶体管数目、性能和价格等发展趋势的预测,其主要内容是:成集电路上可容纳的晶体管数量每18个月翻一番,性能将提高一倍,而其价格将降低一半。主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取。控制器:计算机的指挥中心,它使计算机各部件自动协调地工作。时钟周期:时钟周期是时钟频率的倒数,也称为节拍周期或T周期,是处理操作最基本的时间单位。多核处理器:多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核)。字长:运算器一次运算处理的二进制位数。存储容量:存储器中可存二进制信息的总量。CPI:指执行每条指令所需要的平均时钟周期数。MIPS:用每秒钟执行完成的指令数量作为衡量计算机性能的一个指标,该指标以每秒钟完成的百万指令数作为单位。CPU时间:计算某个任务时CPU实际消耗的时间,也即CPU真正花费在某程序上的时间。计算机系统的层次结构:计算机系统的层次结构由多级构成,一般分成5级,由低到高分别是:微程序设计级,机器语言级,操作系统级,汇编语言级,高级语言级。基准测试程序:把应用程序中使用频度最高的那那些核心程序作为评价计算机性能的标准程序。软/硬件功能的等价性:从逻辑功能的角度来看,硬件和软件在完成某项功能上是相同的,称为软/硬件功能是等价的,如浮点运算既可以由软件实现,也可以由专门的硬件实现。固件:是一种软件的固化,其目的是为了加快软件的执行速度。可靠性:可靠性是指系统或产品在规定的条件和规定的时间内,完成规定功能的能力。产品可靠性定义的要素是三个“规定”:“规定条件”、“规定时间”和“规定功能”。MTTF:平均无故障时间,指系统自使用以来到第一次出故障的时间间隔的期望值。MTTR:系统的平均修复时间。MTBF:平均故障间隔时间,指相邻两次故障之间的平均工作时间。可用性:指系统在任意时刻可使用的概率,可根据MTTF、MTTR和MTBF等指标计算处系统的可用性。1.2什么是计算机系统的硬件和软件?为什么说计算机系统的硬件和软件在逻辑功能上是等价的?答:计算机硬件系统是指构成计算机系统的电子线路和电子元件等物理设备的总称。硬件是构成计算机的物质基础,是计算机系统的核心。计算机的硬件系统包含运算器、控制器、存储器、输入设备和输出设备等五大部件。计算机软件是计算机中全部程序的集合。软件按其功能分成应用软件和系统软件两大类。计算机硬件实现的往往是最基本的算术运算和逻辑运算功能,而其它功能大多是通过软件的扩充得以实现的。有许多功能可以由硬件实现,也可以由软件实现,即从用户的角度来看它们在功能上是等价的,这一等价性被称为软/硬件逻辑功能的等价性。1.3冯·诺依曼型计算机的基本思想是什么?按此思想设计的计算机硬件系统应由哪些部件组成?各起什么作用? 答:冯诺依曼型计算机的基本思想是存储程序和程序控制,其中的“存储程序”是指将解题的步骤编写成程序,然后把存储存放到计算机的内存中,而“程序控制”是指控制器读出存放在存储器中的程序并根据该程序控制全机协调工作以完成程序的功能。根据冯诺依曼型计算机的基本思想,计算机的硬件应该由运算器、控制器、存储器、输入/输出设备和总线组成。各部件的作用:运算器:对数据进行运算的部件。存储器:存放程序和数据。控制器:根据指令的功能控制构成计算机的各大功能部件协调工作,共同完成指令的功能。输入设备:将外部信息输送到主机内部的设备。输出设备:能将计算机内部的信息以不同并且相应的形式反馈给人们的设备。总线:连接两个或多个设备(部件)的公共信息通路。1.4什么是计算机字长?它取决于什么?计算机字长统一了哪些部件的长度?答:计算机的字长一般指一次参与运算数据的基本长度,用二进制数位的长度来衡量。它取决于运算器一次运算处理的二进制位数。它是计算机的重要性能指标。常用的计算机字长有8位、16位、32位及64位。一般与计算机内部寄存器、加法器、数据总线的位数以及存储器字长等长,因此,字长直接影响硬件的代价。1.5计算机系统从功能上可划分为哪些层次?各层次在计算机系统中起什么作用?答:计算机系统分成五级层次结构,第1级为微程序设计级、第2级为机器语言级、第3级为操作系统级、第4级为汇编语言级、第5级为高级语言级。各层次的作用:微程序级:为机器指令级提供机器指令的解释指行功能。机器指令级:是软件系统和硬件系统的界面,一条机器指令的功能由微程序机器级的一段微型程序的功能实现。操作系统级:调度计算机中的软件和硬件资源。汇编语言级:它将用户编写的接近人类语言的程序,翻译成能在机器上运行的目标程序。高级语言级:完全面向用户,是用户关心的目标,可执行各种用途的程序。1.6计算机内部有哪两股信息在流动?它们彼此有什么关系?答:计算机中有两股信息在流动:一股是控制信息,即操作命令,它分散流向各个部件;一股是数据信息,它受控制信息的控制,从一个部件流向另一个部件,在流动的过程被相应的部件加工处理。1.7为什么说计算机系统的软件与硬件可以互相转化?答:计算机硬件实现的往往是最基本的算术运算和逻辑运算功能,而其它功能大多是通过软件的扩充得以实现的。有许多功能可以由硬件实现,也可以由软件实现,即从用户的角度来看它们在功能上是等价的,这一等价性被称为软/硬件逻辑功能的等价性。由于这样的等价性,所以可以说计算机系统的软件与硬件是可以互相转化的。1.8什么叫软件系统?它包含哪些内容?答: 一台计算机中全部程序的集合,统称为这台计算机的软件系统。软件按其功能分成应用软件和系统软件两大类。应用软件是用户为解决某种应用问题而编制的一些程序。系统软件用于对计算机系统的管理、调度、监视和服务等功能,常将系统软件分为以下六类:操作系统,言处理程序,标准程序库,服务性程序,数据库管理系统和算机网络软件。1.9说明高级语言、汇编语言和机器语言三者之间的差别和联系。答:机器语言是直接用二进制代码指令表达的计算机语言,是一种面向机器的编程语言,属于低级语言。汇编语言是用助记符号来表示计算机指令的语言,也是低级的语言。高级语言是一类接近于人类自然语言和数学语言的程序设计语言的统称,分为面向过程的语言和面向对象的语言。它们都是计算机的编程语言,并且是计算机编程语言发展的三个阶段。三者各自的特点:使用机器语言编写的程序,占用内存少、执行效率高。缺点:编程工作量大,容易出错;依赖具体的计算机体系,因而程序的通用性、移植性都很差。使用汇编语言编写计算机程序,能够根据特定的应用对代码做最佳的优化,提高运行速度;能够最大限度地发挥硬件的功能。但是编写的代码非常难懂,不好维护;开发效率很低,时间长且单调。高级语言的优点是:编程相对简单、直观、易理解、不容易出错;编写的计算机程序通用性好,具有较好的移植性。1.10什么是系统的可靠性?衡量系统可靠性的指标有哪些?如何提高系统的可靠性?答:系统的可靠性是指系统在规定的条件和规定的时间内,完成规定功能的能力。衡量系统可靠性的指标有三个:平均无故障时间、平均故障间隔时间和可用性。提高系统可靠性的常用方法包括避错和容错。前者即避免错误的出现,从而提高系统的平均无故障时间;后者容许错误的出现,但采取有效的方法来防止其造成的不利影响。1.11假定某计算机1和计算机2以不同的方式实现了相同的指令集,该指令集中共有A、B、C、D四类指令,它们在程序中所占比例分别为40%、20%、20%、20%,机器1和机器2的时钟周期为600MHZ和800MHZ,各类指令在两机器上的CPI如表1.5所示,求两机器的MIPS各为多少?表1.5两台计算机不同指令的CPIABCDCPI12345CPI22234解:CPI1=2*0.4+0.2*(3+4+5)=3.2MIPS1=f/(CPI1´106)=600´106/(3.2´106)=187.5CPI2=2*0.4+0.2*(2+3+4)=2.6MIPS2=f/(CPI1´106)=800´106/(2.6´106)=307.71.12若某程序编译后生成的目标代码由A、B、C、D四类指令组成,它们在程序中所占比例分别为40%、20%、15%、25%。已知A、B、C、D四类指令的CPI分别为1、2、2、2。现需要对程序进行编译优化,优化后的程序中A类指令条数减少了一半,而其它指令数量未发生变化。假设运行该程序的计算机CPU主频为500MHZ。完成下列各题:1)优化前后程序的CPI各为多少? 2)优化前后程序的MIPS各为多少?3)通过上面的计算结果你能得出什么结论?解:1)优化前:CPI==1´0.4+2´0.2+2´0.15+2´0.25=1.6优化后:A、B、C、D四类指令在程序中所占比例分别为1/4、1/4、3/16、5/16,CPI==1´1/4+2´1/4+2´3/16+2´5/16=1.752)根据公式MIPS=得优化前:MIPS=(500´106)/(1.6´106)=312.5优化后:MIPS=(500´106)/(1.75´106)=285.73)优化后,A类指令条数减少,造成计算机的CPI增加,MIPS减少。这样的优化虽然减少了A类指令条数,却降低了程序的执行速度。 第二章数据表示方法习题二2.1解释下列名词真值:正号和负号分别用“+”和“-”表示,数据位保持二进制值不变的数据表示方法。数值数据:计算机所支持的一种数据类型,用于科学计算,常见的数值数据类型包括小数、整数、浮点数数等。非数值数据:计算机所支持的一种数据类型,一般用来表示符号或文字等没有数值值的数据。机器数:数据在机器中的表示形式,是正负符号数码化后的二进制数据。变形补码:用两个二进制位来表示数字的符号位,其余与补码相同。即“00”表示正,“11”表示负。规格化:将非规格化的数处理成规格化数的过程。规格化数规定尾数用纯小数表示,且真值表示时小数点后第一位不为0(以机器数表示时对小数点后第一位的规定与具体的机器数的形式有关)。机器零:计算机保存数字的位有限,所能表示最小的数也有范围,其中有一个范围之中的数据无法精确表示,当实际的数据处在这个无法精确表示的数据范围时计算机就将该数作为机器零来处理,因此,计算机中的机器零其实对应的不是一个固定的数,而是一个数据表示范围。BCD码:用4位二进制数来表示1位十进制数中的0~9这10个数码,即二进制表示的十进制数。汉字内码:计算机内部存储、处理加工和传输汉字时所用的由0和1符号组成的代码。码距:一组编码中对应位上数字位不同的最小个数。奇偶校验:通过检测校验码中1的个数的奇/偶性是否改变来判断数据是否出错的一种数据校验方法。海明校验:是一种基于多重奇校验且具有检测与纠正错误的校验方法。其基本原理是将有效信息按某种规律分成若干组,每组安排一个校验位进行奇偶测试,就能提供多位检错信息,以指出最大可能是哪位出错,从而将其纠正。循环冗余校验:是数据通信领域中最常用的一种具有检测与纠正错误能力差错校验码,基利用生成多项式并基于模2运算建立编码规则。检错:检测被传送的信息中是否发生差错。纠错:纠正信息在传送或存储过程中所发生的错误。2.2回答下列问题1)为什么计算机中采用二进制?答:因为二进制具有运算简单和表示简单的优点,除此之外还有可靠和容易实现等特点。具体来说,是因为:(1)技术实现简单,计算机是由逻辑电路组成,逻辑电话通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。(2)简化运算规则:两个二进制数和、积运算组合各有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。(3)适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数中的“真”和“假”相吻合。(4)易于进行转换,二进制与十进制数易于互相转换。2)为什么计算机中采用补码表示带符号的整数? 答:采用补码运算具有如下两个特征:(1)因为使用补码可以将符号位和其他位统一处理,同时,减法也可以按加法来处理,即如果是补码表示的数,不管是加减法都直接用加法运算即可实现。(2)两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。这样的运算有两个好处:(a)使符号位能与有效值部分一起参加运算,从而简化运算规则。从而可以简化运算器的结构,提高运算速度;(减法运算可以用加法运算表示出来。)(b)加法运算比减法运算更易于实现。使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计。3)浮点数的表示范围和精确度分别由什么决定?字长一定时浮点数的表示范围与精确度之间有和关系?答:浮点数的表示范围由阶码的位数决定,精确度由尾数的位数决定。当机器字长一定时,分给阶码的位数越多,尾数占用的位数就越少,则数的表示范围越大。而尾数占用的位数减少,必然会减少数的有效数位,即影响数的精度。4)汉字输入码、机内码和字型码在汉字处理过程中各有何作用?答:汉字输入码、机内码和字型码,分别用于汉字的输入、汉字在计算机内的处理以及汉字的显示和打印。具体来说,计算机要对汉字信息进行处理,首先要将汉字转换成计算机可以识别的二进制形式并输入到计算机,这是由汉字输入码完成的;汉字输入到计算机后,还需要转换成内码才能被计算机处理,显然,汉字内码也应该是二进制形式。如果需要显示和打印汉字,还要将汉字的内码转换成字形码。5)在机内码中如何区分两个ASCII码字符和一个汉字?答:将一个汉字看成是两个扩展ASCII码,使表示GB2312汉字的两个字节的最高位都为1,而每个ASCII码字符中每个字节的最高位为0。这样就能区别一个机内码到底对应一个汉字还是两个西文字符。6)“8421码就是二进制数”。这种说法对吗?为什么?答:这种说法是不对的。8421码是一种最简单的有权码,它选取4位二进制数的前10个代码0000~1001分别对应表示十进制数的10个数码。若按权求和,和数就等于该代码所对应的十进制数。8421码是一种编码方式,用于十进位制与二进制数之间的转换。而二进制数是用0和1两个数码来表示的数。二者是不同的概念,不能等同。7)如何识别浮点数的正负?浮点数能表示的数值范围和数值的精确度取决于什么?答:当采用一般浮点数格式表示浮点数时,阶码和尾数都各包含一位符号位。浮点数的正负由尾数的的符号位决定。当采用IEEE754格式时,通过数符就能判断出浮点数的正负。浮点数能表示的数值范围和数值的精确度,分别取决于阶码的位数和尾数的位数。8)简述CRC的纠错原理。答:发送部件将某信息的CRC码传送至接收部件,接收部件收到CRC码后,仍用约定的生成 多项式G(x)去除,若余数为0,表示传送正确;若余数不为0,表示出错,再由余数的值来确定哪一位出错,从而加以纠正。具体的纠错原理如下:(1)不论错误出现在哪一位,均要通过将出错位循环左移到最左边的一位上时被纠正;(2)不为零余数的具有循环特性。即在余数后面补一个零除以生成多项目式,将得到下一个余数,继续在新余数基础上补零除以生成多项式,继续该操作,余数最后能循环到最开始的余数。(3)CRC就是利用不为零余数的循环特性,在循环计算余数的同时,将收到的CRC编码同步移动,当余数循环到等于最左边位出错对应的余数时,表明已将出错的位移到CRC码的最左边,对出错位进行纠错。(4)继续进行余数的循环计算,并同步移动CRC编码,当余数又回到最开始的值时,纠错后的CRC码又回到了最开始的位置。至此,完成CRC的纠错任务。2.3写出下列各数的原码、反码和补码。0,一0,0.10101,一0.10101,0.11111,一0.11111,-0.10000,0.10000解:x=0,则[+0]原=0.00…0,[+0]反=0.00…0,[+0]补=0.00…0;x=-0,则[-0]原=1.00…0,[-0]反=1.11…l,[-0]补=0.00…0;x=0.10101,则[x]原=0.10101,[x]反=0.10101,[x]补=0.10101;x=一0.10101,则[x]原=1.10101,[x]反=1.01010,[x]补=1.01011;x=0.11111,则[x]原=0.11111,[x]反=0.00000,[x]补=0.00001;x=一0.11111,则[x]原=1.11111,[x]反=1.00000,[x]补=1.00001;x=-0.10000,则[x]原=1.10000,[x]反=1.01111,[x]补=1.10000;x=0.10000,则[x]原=0.10000,[x]反=0.10000,[x]补=0.10000。2.4已知数的补码表示形式,求数的真值。[x]补=0.10010,[x]补=1.10010,[x]补=1.11111,[x]补=1.00000,[x]补=0.10001,[x]补=1.00001,解:[x]补=0.10010,则[x]原=0.10010,x=0.10010;[x]补=1.10010,则[x]原=1.01101,x=-0.01101;[x]补=1.11111,则[x]原=1.00000,x=-0;[x]补=1.00000,则[x]原=1.11111,x=-0.11111;[x]补=0.10001,则[x]原=0.10001,x=0.10001;[x]补=1.00001,则[x]原=1.11110,x=-0.11110。2.5已知x=0.10110,y=—0.01010,求:[x/2]补,[x/4]补,[y/2]补,[2y]补解:[x]原=0.10110=[x]反=[x]补,所以[x/2]补=0.010110,[x/4]补=0.0010110;[y]原=1.01010,[y]反=1.10101,[y]补=1.10110,所以[y/2]补=1.110110,[2y]补=1.0110。2.6C语言中允许无符号数和有符号整数之间的转换,下面是一段C语言代码:Intx=-1;Unsignedu=2147483648; Printf(“x=%u=%dn”,x,x);Printf(“u=%u=%dn”,u,u);给出在32位计算机中上述程序段的输出结果并分析原因.解:x=4294967295=-1;u=2147483648=-2147483648原因:x是int型,在计算机中以补码形式存在。%u以无符号输出,%d输出真值,所以x=4294967295=-1。u=231是一个无符号数,无溢出,由于首位为1%u符号输出第一位为非符号位,所以是2147483648%d第一位为符号位,所以是负数,取反加1还是231所以是-2147483648。2.7分析下列几种情况下所能表示的数据范围分别是多少1)16位无符号数;2)16位原码定点小数;3)16位补码定点小数;4)16位补码定点整数;解:1)16位无符号数:0~1111111111111111,即0~216-1=655352)16位原码定点小数:1.111111111111111~0.111111111111111,即-(1-2-15)~1-2-153)16位补码定点小数:1.000000000000000~0.111111111111111,即-1~1-2-154)16位补码定点整数:1000000000000000~0111111111111111,即-215~215-12.8用补码表示8位二进制整数,最高位用一位表示符号(即形如x0x1x2x3x4x5x6x7)时,模应为多少?解:因为8位二进制数补码的表示范围为:-128~127一共有256个数,所以模为256。2.9用IEEE75432位浮点数标准表示十进制数a)b)3.1415927c)64000解:a)首先分别将整数和分数部分转换成二进制数:=-110.101移动小数点,使其变成1.M的形式:-110.101=-1.10101*22于是得到:S=0,e=2,E=10+01111111=10000001,M=10101最后得到32位浮点数的二进制存储格式为:11000000110101000000000000000000=(C0D40000)16b)首先分别将整数和分数部分转换成二进制数:3.1415927=11.00100100001111110110101移动小数点,使其变成1.M的形式11.00100100001111110110101=1.100100100001111110110101×2 于是得到:S=0,e=1,E=1+01111111=10000000,M=10010010000111111011010最后得到32位浮点数的二进制存储格式为:01000000010010010000111111011010=(40490FDA)16c)首先将6400转换成二进制数:64000=1100100000000移动小数点,使其变成1.M的形式1100100000000=1.100100000000×212于是得到:S=0,e=12,E=1100+01111111=10001011,M=1001最后得到32位浮点数的二进制存储格式为:01000101110010000000000000000000=(45C80000)162.10求与IEEE75432位浮点数43940000H对应的十进制数。解:43940000H=(01000011100101000000000000000000)2S=0,E=(10000111)2-127=8,M=1.00101所以表示数为100101000,对应的十进制数为296。2.11求32位IEEE754浮点数能表示的最大数和最小数。解:用IEEE754格式(E的取值范围:1~254,留出全0和全1分别表示0和无穷大)313023220SEM(1)最大数的二进制表示:01111111011111111111111111111111即2127(2-2-23)(2)最小数的二进制表示:11111111011111111111111111111111即-2127(2-2-23)2.12设有两个正浮点数:N1=2m×M1,N2=2n×M2。(1)若m>n,是否有N1>N2?(2)若M1和M2是规格化的数,上述结论是否正确?解:(1)不一定。例如,N1=23×0.001,N2=22×0.01,此时m>n,却有N1=N2。再如,N1=23×0.001,N2=22×0.1,此时m>n,却有N1<N2。(2)正确。因为浮点数规格化,要求尾数的最高位为非0数码,即当尾数的值不为零时,其绝对值应大于或等于(1/2)10。那么M1和M2都必须是0.1××…×的形式。这时,若m>n,则一定有N1>N2。2.13 设二进制浮点数的阶码为3位,尾数是7位。用模2补码写出它们所能表示的最大正数、最小正数、最大负数和最小负数,并将它们转换成十进制数。解:补码真值最大正数:011;0.111111,23×(1-2-6)最小正数:101;0.000001,23×2-6最大负数:101;1.111111,-23×2-6最小负数:011;1.000000,-23×(1-2-6)2.14将下列十进制数表示成浮点规格化数,阶码4位,尾数10位,各含1位符号,阶码和尾数均用补码表示。(1)57/128(2)—69/128解:(1)57/128=(0.0111001)2,记x=0.0111001,则[x]原=[x]反=[x]补=0.0111001,规格化:[x]补=0.111001*2-1阶码的原码为:1001,因此补码为:1111尾数为:0111001000表示成浮点规格化数:11110111001000(2)-69/128=(-0.1000101)2,记x=-0.1000101,则[x]原=1.1000101,[x]反=1.0111010,[x]补=1.0111011,无需规格化,阶码为0000,尾数为1011101100表示成浮点规格化数:000010111011002.15设有效信息为01011011,分别写出奇校验码和偶校验码。如果接收方收到的有效信息为01011010,说明如何发现错误。解:奇偶校验位分别为:0和1,奇校验码:010110110偶校验码:010110111如果采用奇校验,则发送方发出的奇校验码x=010110110(前8位是有效信息位,最后一位是校验位),如果接收方收到的x=010110100(只有1位出错,最后一个0是校验位),接收方按奇校验方式根据01011010计算得到的验位C’=1,与从信息中读到得校验码的取值不同,表明传送的信息发生了错误。如果采用偶校验,利用相似的方法可以发现错误。2.16由6个字符的7位ASCII编码排列,再加上水平和垂直偶校验位构成如表2.23的行列结构(最后一列为水平奇偶校验位,最后一行为垂直奇偶校验位)表2.23ASCII码交叉校验字符7位ASCII码HP30X1X200110Y1100100X31+X41010110Y201X5X61111D100X710X80 =0X9111X1011VP00111X111X12则X1X2X3X4处的比特分别为_1110_;X5X6X7X8处的比特分别为_1000_;X9X10X11X12处的比特分别为_1011_;Y1和Y2处的字符分别为__I__和__7__。解答思路:利用交叉奇/偶校验原理来确定各个X值,再查询ASCII码表获知Y1和Y2是什么字符。2.17设8位有效信息为01101ll0,试写出它的海明校验码。给出过程,说明分组检测方式,并给出指误字及其逻辑表达式。如果接收方收到的有效信息变成01101111,说明如何定位错误并纠正错误。解:被检验位有8位,设检验位有r位因为:8+r<=2r-1r=4;设四位分别为P1,P2,P3,P4海明码为:P1P20P3110P41110P1:3,5,7,9,11P2:3,6,7,10,11P3:5,6,7,12P4:9,10,11,12所以P1=1,P2=1P3=0P4=1海明码为:110011011110指错位G1:1,3,5,7,9,11G2:2,3,6,7,10,11G3:4,5,6,7,12G4:8,9,10,11,12G1=0,G2=0,G3=0,G4=0图略。2.18设要采用CRC编码传送的数据信息x=1001,当生成多项式为G(x)=1101时,请写出它的循环校验码。若接收方收到的数据信息x’=1101,说明如何定位错误并纠正错误。解:作模二除法:所以循环码为:1001011。若接收到的数据信息x’=1101,,所以是第2位出错,将第2位的1改为0即可。 第三章运算方法和运算器习题三3.1解释下列名词变形形补码:即用两个二进制位来表示数据的符号位,其余与补码相同。溢出:运算结果超出数据类型所能表示数据范围的现象称为溢出。阵列乘法:采用类似手工乘法运算的方法,用大量与门产生手工乘法中的各乘积项,同时将大量一位全加器按照手工乘法算式中需要进行加运算的各相关项的排列方式组成加法器阵列。恢复余数除法:比较被除数(余数)与除数的大小是用减法实现的。对原码除法而言,由于操作数以绝对值的形式参与运算,因此,相减结果为正(余数的符号位为0)说明够减,商上1;相减结果为负(余数的符号位为1)说明不够减,商上0。由于除法通过减法实现,当商上1时,可将比较数据大小时的减法操作与除法操作中的减法操作合并,即商上1后继续后面的除法操作。商上0时表明不够减,但因比较操作时已经实施了一次减法,因此,需要对执行比较操作后的结果加上除数,既将余数还原成比较操作前的数值,这种方法就称为恢复余数法。不恢复余数除法:又称加减交替法,是对恢复余数法的改进。不恢复余数法的特点是不够减时不再恢复余数,而根据余数的符号作相应处理就可继续往下运算,因此运算步数固定,控制简单,提高了运算速度。阵列除法:类似于阵列乘法器的思想,为了加快除法的执行速度,也可以采用阵列除法器来实现除法。为简化运算及阵列除法器的结构,对参加运算的数据进行适当的处理,使其以正数的形式参加运算。行波进位:多位进位之间存在高位进位的产生依赖低位进位的一种进位方式。并行进位:高、低进位之间不存在具有依存关系,而是同时计算的进位方式。算术移位:分为算术左移和算术右移。其中算数左移n位相当于乘上2n,执行方法是把原来的数中每一位都向左移动n个位置,左面移出的高位丢弃不要,右面低位空出的位置上全部补0,当符号位发生改变时表明发生了溢出。算术右移时,符号位保持不变,其余各位依次右移,最右边一位移出,将符号位拷贝到左边空出的位,一次移位相当于除2。逻辑移位:逻辑左移n位的执行方法,是把原来的数中每一位都向左移动n个位置,左面移出的高位丢弃不要,右面低位空出的位置上全部补"0"。逻辑右移n位的执行方法是把原来数中的每一位都向右移动n个位置,右面移出的低位丢弃不要,左面高位空出的位置上全部补0。对阶:使阶码相等的过程,对阶的时一般采取小的阶码向大阶码看齐的方式。规格化:就是使浮点数的运算结果中,将尾数从非规格化数变成规格化数的过程。根据尾数形式的不同,规格化可分为左移规格化和右移规格化。3.2回答下列问题:1)为什么采用并行进位能提高加法器的运算速度?答:由于并行进位电路能很快产生各位的进位信号,使得加法器的速度大大提高。2)如何判断浮点数运算结果是否发生溢出?答:由于溢出与数据的表示范围有关,而浮点数的阶码影响到其数据表示的范围,因此,浮点数的溢出是通过接码的是否溢出为判断标志。对于采用双符号位的阶码而言,当双符号位不同时表示浮点数发生溢出,否则则未发生溢出。3)如何判断浮点数运算结果是否为规格化数?如果不是规格化数,如何进行规格化?答:当尾数采用补码表示时,若运算结果不是11.0××…×或00.1××…×的形式时,结果就不是规格化数。则应进行相应的规格化处理: ·当尾数符号为01或10时,需要向右规格化,且只需将尾数右移一位,同时将结果的阶码值加1。·当尾数运算结果为11.1××…×或00.0××…×时需要左移规格化,而且左移次数不固定,与运算结果的形式有关。左规的方法是尾数连同符号位一起左移位、和的阶码减1,直到尾数部分出现11.0或00.1的形式为止。4)为什么阵列除法器中能用CAS的进位/借位控制端作为上商的控制信号?答:阵列除法器利用不恢复余数的除法,当商上1的时候,会产生进位,当商上0时,不产生进位,进位信号与上商信号是相同的,所以可以用CAS的进位/借位控制作为上商的控制信号。5)移位运算和乘法及除法运算有何关系?答:移位运算是乘除法中的基本运算。3.3已知x和y,用变形补码计算x+y,并判断结果是否溢出。(1)x=0.11010,y=0.101110(2)x=0.11101,y=-0.10100(3)x=-0.10111,y=-0.11000解:(1)[x+y]补=01.100010,溢出。(2)[x+y]补=00.01001,未溢出。(3)[x+y]补=10.10001,溢出。3.4已知x和y,用变形补码计算x-y,并判断结果是否溢出。(1)x=0.11011,y=0.11101(2)x=0.10111,y=0.11110(3)x=-0.11111,y=-0.11001解:(1)[x-y]补=11.11110,未溢出。(2)[x-y]补=11.11001,未溢出。(1)[x-y]补=11.11001,未溢出。3.5设移码用6位表示(包含2位符号位),求[x±y]移(1)x=-6,y=-3(2)x=7,y=11(3)x=-3,y=-12解:(1)[x]移=001010,[y]移=001101[-y]移=110011[Y]补=111101[-Y]补=000011[X]移+[y]移=010111,[X]移+[Y]补=001010+111101=000111根据移码加法公式[x+y]移=[X]移+[Y]补=000111根据移码加法公式及溢出判断规则,双符号位为00,结果为负,未溢出。根据移码的减法公式:[x-y]移=[x]移+[-y]补=001010+000011=001101根据移码溢出判断规则,双符号位为00,结果为负,未溢出。 (2)[x]移=110111,[y]补=001011[-y]补=110101根据移码加法公式[x+y]移=[X]移+[Y]补=010111+001011=100010(根据教材中说明的当以译码和补码两种数据表示进行运算时,要将移码第一符号位表示为0)根据移码溢出判断规则,双符号位为10,结果为正,且发生溢出。根据移码的减法公式:[x-y]移=[x]移+[-y]补=010111+110101=001100根据移码溢出判断规则,双符号位为00,结果为负,未溢出。(3)略,请参照本题前两小题的思路和方法求解即可3.6用原码一位乘法计算x×y=?(1)x=-0.11111,y=0.11101(2)x=-0.11010,y=-0.01011解:(1)部分积乘数(y)判断位说明↑00.00000yf.11101P0=0+00.1111100.11111→00.011111yf.1110右移一位,得P1+00.0000000.01111→00.0011111yf.111右移一位,得P2+00.1111101.00110→00.10011011yf.11右移一位,得P3+00.1111101.10010→00.110010011y.1右移一位,得P4+00.1111101.11000→00.1110000011yf右移一位,得P5=|x|·|y|由于Pf=xfyf=01=1所以x·y=-0.1110000011 (2)部分积乘数(y)判断位说明↑00.00000yf.01011P0=0+00.1101000.11010→00.011010yf.0101右移一位,得P1+00.1101001.00111→00.1001110yf.010右移一位,得P2+00.0000000.10011→00.01001110yf.01右移一位,得P3+00.1101001.00011→00.100011110y.0右移一位,得P4+00.0000000.10001→00.0100011110yf右移一位,得P5=|x|·|y|由于Pf=xfyf=11=0所以x·y=0.0100011110 3.7用补码一位乘法计算x×y=?(1)x=0.10110,y=-0.00011(2)x=-0.011010,y=-0.011101解:(1)[x]补=0.10110,[-x]补=1.01010,[y]补=1.11101部分积乘数ynyn+1说明¯¯00.000001.111010yn+1=0+11.01010yn+1yn=01,加[-x]补11.01010→11.1010101.11101右移一位,得P1+00.10110yn+1yn=10,加[x]补00.01011→00.00101101.1110右移一位,得P2+11.01010yn+1yn=01,加[-x]补11.01111→11.101111101.111右移一位,得P3+00.00000yn+1yn=11,加011.10111→11.1101111101.11右移一位,得P4+00.00000yn+1yn=11,加011.11011→11.11101111101.1右移一位,得P5+00.00000yn+1yn=11,加011.1110111110最后一步数据不移位所以[x·y]补=1.1110111110 (2)[x]补=1.100110,[-x]补=0.011010,[y]补=1.100011部分积乘数ynyn+1说明¯¯00.0000001.1000110yn+1=0+00.011010yn+1yn=01,加[-x]补00.011010→00.00110101.100011右移一位,得P1+00.000000yn+1yn=11,加000.001101→00.000110101.10001右移一位,得P2+11.100110yn+1yn=10,加[x]补11.101100→11.1101100101.1000右移一位,得P3+00.000000yn+1yn=00,加011.110110→11.11101100101.100右移一位,得P4+00.000000yn+1yn=00,加011.111011→11.111101100101.10右移一位,得P5+00.011010yn+1yn=01,加[-x]补00.010111→00.0010111100101.1右移一位,得P6+00.000000yn+1yn=00,加000.001011110010最后一步数据不移位所以[x·y]补=0.001011110010 3.8用原码不恢复余数法和补码不恢复余数法计算x÷y=?(1)x=0.10101,y=0.11011(2)x=-0.10101,y=0.11011解:(1)[y]补=0.11011,[-y]补=1.001011源码不恢复余数法:101被除数/余数商寄存器上商位说明00.10101+[-y]补11.00101(x-y)比较11.110100r0<0,商上0←11.101000左移一位+00.11011余数为负,加y比较00.011111r1>0,商上1←00.111100.1左移一位+[-y]补11.00101余数为正,减y比较00.000111r2>0,商上1←00.001100.11左移一位+[-y]补11.00101余数为正,减y比较11.010110r3<0,商上0←11.101100.110左移一位+00.11011余数为负,加y比较00.000010.11011r4>0,商上1,左移一位即←00.00010+[-y]补11.00101余数为正,减y比较11.001110.11010r5<0,商上0,只移商[x]原÷[y]原=[Q]原=0.11010,余数[r]原=1.00111-101。 补码不恢复余数法:[y]补=0.11011,[-y]补=1.00101被除数/余数商上商位说明00.10101+[-y]补11.00101被除数与除数同号,减除数比较11.110100余数r0与除数异号,商上0←11.101000左移一位,商从上商位移入商寄存器+[y]衬00.11011加除数比较00.011111余数r1与除数同号,商上1←00.111100.1左移一位+[-y]补11.00101减除数00.000111余数r2与除数同号,商上1←00.001100.11左移一位+[-y]补11.00101减除数比较11.010110余r3与除数异号,商上0←11.101100.110左移一位+[y]衬00.11011加除数比较00.100011余r4与除数同号,商上1←11.101100.1101左移一位+[-y]补11.00101减除数比较11.110110.11010余r3与除数异号,商上0故[x÷y]衬=0.11010,余数[r]补=1.0000011011因未除尽,商为正,因此商不需要校正。商为正,余数与被除数异号,则应将余数加上除数进行修正才能获得正确的余数,为:(1.11011+0.11011)*0.00001=0.0000010110 (2)[y]补=0.11011,[-y]补=1.00101源码不恢复余数法:101被除数/余数商寄存器上商位说明00.10101+[-y]补11.00101(x-y)比较11.110100r0<0,商上0←11.101000左移一位+00.11011余数为负,加y比较00.011111r1>0,商上1←00.111100.1左移一位+[-y]补11.00101余数为正,减y比较00.000111r2>0,商上1←00.001100.11左移一位+[-y]补11.00101余数为正,减y比较11.010110r3<0,商上0←11.101100.110左移一位+00.11011余数为负,加y比较00.000010.11011r4>0,商上1,左移一位即←00.00010+[-y]补11.00101余数为正,减y比较11.001110.11010r5<0,商上0,只移商[x]原÷[y]原=[Q]原=-0.11010,余数[r]原=1.00111-101。 补码不恢复余数法:[y]补=1.01011,[y]补=0.11011,[-y]补=1.00101被除数/余数商上商位说明11.01011+[y]补00.11011被除数与除数异号,加除数比较00.001101余数r0与除数同号,商上1←00.011001左移一位,商从上商位移入商寄存器+[-y]补11.00101减除数比较11.100010余数r1与除数异号,商上0←11.000101.0左移一位+[y]补00.11011加除数11.111010余数r2与除数异号,商上0←11.110101.00左移一位+[y]补00.11011加除数比较00.101011余r3与除数异号,商上1←00.010101.001左移一位+[-y]补11.00101减除数比较11.011110余r4与除数同号,商上0←11.101101.0010左移一位+[y]补00.110111加除数比较00.100011.00101余r3与除数同号,商上1故[x÷y]衬=1.00101,余数[r]补=0.0000010001因未除尽,商为负,因此商需要校正。[x÷y]衬=1.00101+0.00001=1.00110商为负,余数与被除数同号,余数不需要处理。3.9设数的阶码为3位,尾数为6位(不包括符号位)按机器补码浮点运算步骤,完成[x+y]补(1)x=2011×0.100100,y=2010×(-0.011010)(2)x=2-101×(-0.100010),y=2-100×(-0.010110)解:1、(a)对阶[x]补=0001100100100[y]补=0001011100110阶差△E=Ex-Ey=00001,阶差为1将[y]补尾数右移一位得到0001111110011(b)相加[x]补+[y]补=0001100010111,尾数相加为00010111 (c)结果规格化由于尾数符号位跟最高有效位相同,需要左规:规格化结果为:[x]补+[y]补=0001000101110(d)不需舍入,无溢出则:[x]补+[y]补=00010001011102、(a)对阶[x]补=1101111011101[y]补=1110011101010阶差△E=Ey-Ex=00001,阶差为1将[x]补尾数右移一位得到1110011101111(b)相加[x]补+[y]补=1110011011001,尾数相加为11011001(c)结果规格化由于尾数符号位跟最高有效位不相同,不需要左规:(d)不需舍入,无溢出3.10采用IEEE754单精度浮点数格式计算(1)0.625+(-12.25)(2)0.625–(-12.25)解:(1)0.625=(0.101)2=(00111111001000000000000000000000)2-12.25=(11000001010001000000000000000000)2对阶01111110-10000010=-00000100尾数计算将0.625的尾数右移4位,计算得到:0.000101+(-1.100010)=-1.011101则0.625+(-12.25)=(11000001001110100000000000000000)2=(C13A0000)16(2)0.625=(0.101)2=(00111111001000000000000000000000)2-12.25=(11000001010001000000000000000000)2对阶01111110-10000010=-00000100尾数计算将0.625的尾数右移4位,计算得到:0.000101-(-1.100010)=1.100111则0.625+(-12.25)=(01000001010011100000000000000000)2=(414E0000)163.11用“与或非”门设计一个4位并行进位的加法器。解:C1=Y1+X1C0=Y1•X1C0C2=Y2+X2C1=Y2+X2Y1+X2X1C0=Y2•X2Y1•X2X1C0C3=Y3+X3C2=Y3+X3Y2+X3X2Y1+X3X2X1C0=Y3•X3Y2•X3X2Y1•X3X2X1C0C4=Y4+X4C3=Y4+X4Y3+X4X3Y2+X4X3X2Y1+X4X3X2X1C0=Y4•X4Y3•X4X3Y2•X4X3X2Y1•X4X3X2X1C0电路图略 3.12利用上题结果,设计一个4位运算器。运算器中包括加法器、两个寄存器、输入选择和输出控制电路。要求输入选择电路能接收选择总线或寄存器中的数据,能对两个寄存器中的数以原码和补码两种形式送入加法器,并能对加法器的输出进行直接传送、左移一位和右移一位传送,然后以将结果送寄存器或总线。本题略第四章存储系统习题四4.l解释下列名词:存储单元:保存数据的基本内存单元。根据保存内容的大小,一般可分位存储单元,字存储单元等。存储单元一般应具有存储数据和读写数据的功能,每个单元有一个地址,并按地址访问。存取时间:又称为存储器的访问时间,是指启动一次存储器的操作(读或写分别对应存与取)到该操作完成所经历的时间。存取周期:连续启动两次访问操作之间的最短时间间隔。存储器带宽:单位时间内存储器所能传输的信息量,常用的单位包括位/秒或字节/秒。静态存储器:存储体以静态MOS存储元为基本单元组成的存储器称为静态存储器。动态存储器:存储体以动态存储元为基本单元组成的存储器称为动态存储器。刷新:动态存储单元中,为使所存信息能长期保存,在电容电荷泄露完之前定时地补充电荷的过程。猝发式读:只需给出块的起始地址,然后对固定块长度的数据一个接一个地读出的快速存储器读方式。即一块数据的读出只需要给出一个地址的数据读取方式。多模块交叉存储器:由多个存储容量相同,读写速度相同或相近的多个存储模块构成容量更大的存储器,其中每个存储模块具有各自独立的地址寄存器、地址译码器、驱动电路和读写控制电路,根据存储模块的组织方式不同,又可分为低位交叉和高位交叉两种组织方式。。高速缓冲存储器:为缓解快速的CPU与慢速主存之间的速度差异,在CPU和主存之间插入的一至多级速度较快、容量较小的SRAM,起到缓冲作用;使CPU既可以以较快速度存取SRAM中的数据,又不使系统成本上升过高。双端口存储器:指同一个存储器具有两组相互独立端口的存储器,每个端口有各自独立的数据端口、地址端口以及读/写控制端口、片选端口等,每个端口可独立进行读写操作。相联存储器:是一种按内容访问的存储器(ContentAddressableMemory:CAM),用于提高查找信息的速度。在计算机系统中,相联存储器主要用于虚拟存储器中存放段表、页表和快表以及高速缓冲存储器中的查找。时间局部性:指当程序访问一个存储位置时,有很大的可能性程序会在不久的将来再次访问同一位置,程序的循环结构和过程调用就很好地体现了时间局部性。地址映射:指把主存地址空间映射到Cache的地址空间,即把存放在主存中的程序或数据按照某种规则装入到Cache,并建立两者之间地址的对应关系。组相联映射:地址映射时,主存数据块只能映射到索引字段所指向的Cache特定组(其中的行可任选);地址变换时,需查找的范围也只是索引字段所指向的特定Cache组的所有行。 直接映射:地址映射时,主存数据块只能映射到索引字段所指向的Cache行中保存;地址变换时,需查找的范围也只涉及索引字段所指向的特定Cache行。全相联映射:主存地址不划分索引字段,因此地址映射时,主存数据块可以映射到Cache的任意行中;地址变换时,需查找所有的Cache行。命中率:指CPU访问存储系统时,命中Cache的次数占总访问次数的比铝。设NC为某程序运行期间命中Cache的次数,Nm为从主存中访问信息的次数,则命中率(hitratio)H定义为:地址复用:可以从不同的角度来理解该概念。第一种方式是指CPU的地址线在一次存储访问过程中多次使用,每次作为访问地址的不同部分使用;另一种是指地址线在一次存储访问的不同阶段分别作为地址线和数据线使用,即地址总线在存储访问的不同时间段表现出不同的功能。字扩展:用多位满足一定要求的存储芯片构成容量更大的存储器。位扩展:用多片存储芯片构成位数更多的存储器。虚拟存储器:是一种解决主存容量不足的存储管理机制,处于存储系统层次结构中“主存-辅存”存储层次。在这种机制下,通过增加部分软件(如操作系统)和必要的硬件(如地址映射与转换机构、缺页中断结构等),使辅存和主存构成一个有机的整体,就像一个单一的、可供CPU直接访问的大容量主存,程序员使用比主存空间大的逻辑地址空间编程序,作业运行时,主需要将作业当前执行的部分调入内存,而其余部分仍然存放在磁盘中,从而减少对主存的消耗。页表(慢表):是一张保存虚拟页号和物理页号(也称实页号)之间对应关系的表格。页表项:页表的表项,每一个表项由有效位和物理页号两部分构成,用于实现虚拟地址与物理地址之间的转换。TLB(快表):又称为转换旁路缓冲器(TranslationLook-asideBuffer),为了降低虚拟存储器地址转换的开销,根据局部性原理,将页表的一部分装入MMU或Cache中,从而减少虚拟地址与物理地址之间转换时访问内存的次数。LRU:LRU(LeastRecentlyUsed)算法是将近期内长久未被访问过的行换出。LFU:LFU(LeastFrequentlyUsed)算法将一段时间内被访次数最少的那行数据换出。存储保护:为了保证计算机系统能正确运行,当多个用户共享主存时,应防止由于一个用户程序出错而破坏其他用户的程序和系统软件,以及一个用户程序不合法地访问不是分配给它的主存区域。Cache一致性:指保存在cache中的数据与保存在主存相关单元的数据相同。写回法:当CPU对Cache写命中时,只修改Cache的内容不立即写入主存,只当Cache行被替换时才将Cache中的数据写回主存。写直达法:也称写贯通法或全写法,其基本思想是当Cache写命中时,同时对Cache和主存中同一数据块进行修改;当cache写未命中时,直接向主存写入新的信息,但此时是否将修改过的主存块调入Cache,写直达法却有两种选择。一种是将数据调入Cache,称为写分配法WA(Write-Allocate)。另一种是不取主存块到Cache,而是直接写主存,称为非写分配法NWA(No-Write-Allocate)。边界对齐的数据存放:指半字、字、双字都按它们各自地址所指定的空间进行存储,而不是随意存放。大端:存储器的低字节地址单元中存放的是数据的最高字节,高字节地址单元中存放的是数 据的最低字节。RAID:廉价冗余磁盘阵列RAID(RedundantArrayofInexpensiveDisk)或独立冗余磁盘阵列RAID(RedundantArrayofIndependentDisk),简称磁盘阵列,它将多块独立的普通磁盘按照一定的方式组织与管理,构成一个大容量、高速度、高容错的存储系统。寻道时间:将磁头定位到指定磁道上所需的时间。旋转时间:磁头定位到指定磁道后至指定的记录移到磁头下的时间。4.2回答下列问题:1)计算机系统中采用层次化存储体系结构的目的是什么?层次化存储体系结构如何构成?答:采用层次化存储体系的目的包括两方面:其一是解决快速的CPU和慢速的主存之间的速度差异;其二是解决主存容量不够大的问题.存储系统的分级结构由Cache、主存和辅助存储器三级结构构成。其理论基础是时间局部性原理和空间局部性原理,Cache—主存存储层次解决了主存速度不快的问题;而主存-辅存存储层次解决了主存容量不足的问题。2)为什么在存储器芯片中设置片选输入端?答:由于存储芯片的容量及字长与目标存储器的容量及字长之间可能存在差异,应用存储芯片组织一定容量与字长的存储器时,一般可采用位扩展、字扩展、字位同时扩展等方法来组织。这样就会使用多个存储芯片,从而要设置片选输入端来选择正确的存储芯片来进行操作。3)动态MOS存储器为什么要刷新?如何刷新?答:动态存储单元中,信息以电荷形式存储在T1或T2管的栅极电容中。由于电容容量小,所存电荷会在一段时间后逐渐泄漏(一般为ms级),为使所存信息能长期保存,需要在电容电荷泄露完之前定时地补充电荷,这一过程称为刷新。刷新的方法:①刷新方式:集中刷新、分散刷新和异步刷新。前者存在CPU死时间;分散刷新由于刷新次数过多,降低了存储器的速度;异步刷新是前两者的折中。②刷新按行进行,因此设计刷新电路时需要知道动态存储器的内部行、列结构。③刷新地址由刷新地址计数提供。4)试述多体交叉存储器的设计思想和实现方法。答:多体交叉存储器由多个存储模块构成,这些模块的容量和存取速度相同,具有各自独立的地址寄存器、地址译码器、驱动电路和读写控制电路。根据对多各模块编址方式的不同,又可分为高位多体交叉和低位多体交叉两种方式。(1)高位交叉:按存储器地址的高位地址划分模块,同一存储体内的地址是连续的。当多个目标同时访问存储器时(如CPU和DMA设备同时访问存储器),如果访问的地方范围处于不同的存储芯片,则提供并行访问。(2)低位交叉:按存储器地址的低位地址划分模块,同一存储体内的地址不相邻,相邻地址处在不同存储体中。CPU可同时启动多个存储体,并进行并行访问。5)为什么说Cache对程序员是透明的?答:因为在程序员看来,数据是在内存和辅存之间进行交换的,程序员感觉不到中间层cache的存在。6)直接映射方式下为什么不需要使用替换算法?答:因为在直接映射方式中,一个内存块只能固定的映射到cache中的特定行,当有新的主存块调入时,cache特定行中的内容必须调出,因此不需要替换算法去选择替换掉哪一块。7)为什么要考虑Cache的一致性?答:正常情况下,cache中的数据 是主存数据的副本,当两者不一致时可能导致程序结果不正确,因此,必须考虑并设法保证Cache的一致性。6)替换算法有哪几种?各有何优缺点?答:①先进先出算法(FIFO)基本思想:按照数据块进入Cache的先后决定替换的顺序,即在需要进行替换时,选择最先被调入Cache中的块作为替换块。这种方法要求为每块记录它们进入Cache的先后次序。优点:FIFO算法系统开销较小。缺点:是不考虑程序访问的局部性,可能会把一些需要经常使用的块(如循环程序块)也作为最早进入Cache的块而替换掉,因此,可能导致Cache的命中率不高。②近期最少使用(LRU)算法基本思想:将近期内长久未被访问过的行换出。为此,每行设置一个计数器,cache每命中一次,命中行计数器清零,其它各行计数器增1,因此它是未访问次数计数器。当需要替换时,比较各特定行的计数值,将计数值最大的行换出。优点:这种算法显然保护了刚调入Cache的新数据,符合cache工作原理,因而使cache有较高的命中率。LRU算法硬件实现简单③最不经常使用(LFU)算法基本思想:将一段时间内被访次数最少的那行数据换出。为此,每行设置一个计数器,新新调入行的数据从0开始计数,每访问一次被访行的计数器增1。当需要替换时,对这些特定行的计数值进行比较,将计数值最小的行换出。缺点:一段期间访问情况不能严格反映近期访问情况。例如特定行中的A、B两行,A行在期间的前期多次被访问而后期未被访问,但累积计数值很大,B行是前期不常用而后期却正被频繁访问,但可能由于累积计数小于A行而被LFU算法换出了。④随机替换算法基本思想:需要进行替换时,从特定的行位置中随机地选取一行进行替换。优点:硬件实现最容易,而且速度也比前几种策略快。缺点:随意换出的数据很可能马上又要用,从而降低命中率和cache工作效率。但这个负面效应随着cache容量增大会减少,模拟研究表明随机替换策略的功效只是稍逊于LFU和LRU。7)不同RAID级各有哪些技术特点?答:RAID0具有如下技术特点:①无数据冗余、无数据校验功能,因此它不具备数据的容错能力,数据的可靠性不高;②从RAID0的数据分布看,其本质上是多磁盘体交叉存储(类似于主存的多体交叉存储),多个磁盘可并行工作,存储系统的访问速度高。③条带的大小影响RAI0的性能与应用a)条带大小对数据传输率的影响:小条带可将数据分配到更多的磁盘上,通过更多磁盘的并行工作可提高存储系统的数据传输率。b)条带对I/O请求响应速度的影响:在面向事物处理的应用中,可能同时存在上百个I/O请求。此时,用户对I/O请求的响应时间比较关注。通过选者小而适中的条带,使得一次事务请求所传送的数据刚好集中在一个条带中,就能大大减少每个I/O请求的响应时间。④磁盘利用率高,由于RAID0中没有冗于数据,所有的磁盘存储空间都可保存工作数据。RAID0主要应用于对访问速度要求高,但对数据的可靠性要求不高的场合。RAID1具有如下技术特点:①每个磁盘都有一个镜象磁盘,图4.60中备份磁盘i就是磁盘i的备份盘;② 读请求时,可由包含该数据的两个磁盘中的任一个提供;写请求时,需同时更新两个磁盘中相应的数据块;③当一个磁盘被损坏时,数据仍可从另一磁盘获取。因此具有很高的安全性;④存储系统中磁盘的利用率只有50%;⑤无数据校验功能;⑥对大批读请求来说,RAID1可以从对应的盘中并行读出。但对于写,其效率并不高。由于RAID1的读性能优于写性能,因此,RAID1主要应用于对数据的可用性要求高,且读操作所占比重较高的场合。RAID2具有如下技术特点:①条带容量小,按位交叉存储,因此每个I/O请求都会访问到多个磁盘,导致I/O响应速度慢;②每个I/O请求都会访问到多个磁盘;对于单个读,所有磁盘同时读取,数据和相应的纠错码被送至控制器,若出现一位错,则由控制器立即识别并纠正。对于单个写,所有数据盘和校验盘都要进行写操作;③采用海明校验,具有纠错和检错功能,数据的可靠性高;但控制复杂;④冗余存放校验位,其数量与使用的数据盘的数量成正比;⑤由于按位存取,在I/O过程中所有磁盘上的磁头在任何时刻都处于同一位置,具有空间并行处理能力,数据传输率高。受成本的影响,目前RAID2很少被使用。RAID3的技术特点与RAID2类似,不同点主要有两方面,其一是采用奇偶校验而不是海明校验,其二是校验盘只有一个,磁盘的利用率高。RAID4的技术特点如下:①采用大条带区,I/O请求响应速度快,但数据传输率不高;②采用奇偶校验技术;③各盘采用独立存取技术;④磁盘利用率高;⑤校验盘成为写访问的瓶颈。RAID5具有如下技术特点:①采用大条带区,I/O请求响应速度快;②采用奇偶校验技术;③各盘采用独立存取技术;④校验信息在不同磁盘中循环存放,克服了RAID4中校验盘成为写瓶颈的不足;⑤磁盘利用率高。可以认为RAID5是对RAID4的改进,对大、小数据的读/写都具有较好的性能,具有比较广泛的应用。RAID6采用了按块交叉存放和双磁盘容错技术,相对RAID5而言,其缺点是在组成中增加了一个磁盘,而且每次写都要进行P和Q两种校验以形成两个奇偶校验块。6)说明磁表面存储器记录二进制信息的基本原理。答:磁表面存储器利用磁性材料剩磁的两种磁化方向(S-N或者N-S)来记录信息。写入信息时,在读/写线圈中通上脉冲电流(电流的方向不同,则写入的信息不同),磁头气隙处的磁场把它下面一小区域的磁层向某一方向磁化(S—N或N—S),形成某种剩磁状态,因而记下一位二进制信息。磁层上这个被磁化的小区域,称为磁化单元。随着磁层的运动,读/写线圈中的一串电流脉冲,就会在磁层上形成一串磁化单元。读出时,某一磁化单元移动到磁头处,在磁层与磁头交链的磁路中磁通发生变化,于是在读/写线圈中感应出不同方向的电流,经读出放大器放大和整形之后,还原出写入的信息。 6)主存与磁盘存储器在工作速度方面为何采用不同的参数指标?后者采用哪几个指标表明其工作速度?为什么?答:因为两种存储器的存储数据的原理不同,所以不能采用同一种技术指标。磁盘存储器采用平均定位时间(寻道时间+等待时间)和数据传输速率两个指标表明工作速度。4.3对于32K字容量的存储器,若按字编址,字长16位。其地址寄存器应是多少位?数据寄存器是多少位?解:该存储器的寻址空间为:32K*8位/16位=16K字地址寄存器的位数为:14位数据寄存器的位数和字长相等为16位4.4用4片32K×8位SRAM存储芯片可设计哪几种不同容量和字长的存储器?画出相应设计图并完成与CPU连接。解:可设计字长为8位,容量为128K的存储器:译码器。。。。A16A15A14A0WED0~D701101100CPUCS32K×8WECS32K×8WECS32K×8WECS32K×8WE...................................数据总线可设计字长为16位,容量为64K的存储器:译码器。。A16A15A1WED0~D1510CPUUCS32K×8WECS32K×8WECS32K×8WECS32K×8WE.....................数据总线 可设计字长为32位,容量为32K的存储器:0A16A2WED0~D31CPUUCS32K×8WECS32K×8WECS32K×8WECS32K×8WE..............数据总线4.5用32K×8位RAM芯片和64K×4位ROM芯片,设计256K×8位存储器。其中,从30000H到3FFFFH地址空间为只读存储区,其它为可读、可写存储区。完成存储器与CPU连接。解:只读区域的地址空间为:30000H-3FFFFH,为64K,需要64K×4位ROM芯片2片,需要32K×8位RAM芯片的片数为:256K-64K/32K=6片设计如下:存储器的0000H-2FFFFH存储空间为RAM芯片,也就是32K×8位RAM芯片6片,采用字扩展连接。存储空间30000H-3FFFFH使用64K×4位ROM芯片2片,采用位扩展方式连接。数据线条数为8条:D0-D7。地址线的条数为18条:A1-A18,其中A18-A16为片选信号的输入端。设计图如下:译码器A18A17A16A15A1WED0~D7&CPUU110或111101100011010001000CS64K×4ROMWECS64K×4ROMCS32K×8RAMWECS32K×8RAMWECS32K×8RAMWECS32K×8RAMWECS32K×8RAMWECS32K×8RAMWE........................................................数据总线 4.6某计算机字长16位,主存容量128KW,请用16K×8位的静态RAM芯片和32K×16位的ROM芯片,为该机设计一个主存储器。要求18000H~1FFFFH为ROM区,其余为RAM区。画出存储器结构及其与CPU连接的框图。解:设计如下:通过简单的计算可知:地址空间00000H-18000H都是RAM区域(共96KW)地址空间18000H-1FFFFH为ROM区域(共32KW)故共使用16K×8位的静态RAM芯片12片使用32K×16位的ROM芯片1片数据线条数为16条:D0-D15。地址线的条数为17条:A1-A17,其中A17-A15为片选信号的输入端。设计图如下:译码器A17A16A15A14A1WED0~D15&101110或111100011010000001CPUUCS32K×16ROMCS16K×8RAMWECS16K×8RAMWECS16K×8RAMWECS16K×8RAMWECS16K×8RAMWECS16K×8RAMWECS16K×8RAMWECS32K×8RAMWECS16K×8RAMWECS16K×8RAMWECS16K×8RAMWECS16K×8RAMWE........................................................数据总线4.7假设CPU有16根地址线,8根数据线,并用MREQ作为访存控制信号(低电平有效),用W/R做读/写控制信号(高电平为读,低电平为写),主存地址空间分配如下:6000H-67FFH为系统程序区6800H-6BFFH为用户程序区现有下列存储芯片:1K*4位RAM,4K*8位RAM,8K*8位RAM,2K*8位ROM,4K*8位ROM,8K*8位ROM及译码器和各种门电路,设计该机的主存系统,并画出CPU与存储器的连接图。本题略4.8用64K×1位的DRAM芯片构成1M×8位的存储器,若采用异步刷新,若每行刷新间隔不超过2ms,则产生刷新信号的间隔是多少时间?若采用集中刷新方式,则存储器刷新一遍最少用多少个读写周期?CPU的死时间为多少?(假定存储器的读写时间为0.5ms)解:64K×1位的DRAM芯片的排列方式为256行*256列,该存储器中有64K×1位的DRAM芯片128片刷新信号的产生间隔为2ms.将2ms分成256个小段(因为DRAM按行刷新),每个时间段为:7.8125ms,将其中最后0.5ms用于刷新DRAM的一行,即产生刷新信号的时间间隔为7.8125ms. 若采用集中刷新,存储器刷新一遍至少需要256个读写周期,CPU的死时间是256´0.5ms=128ms则刷新信号的间隔是0.03ms4.9某动态RAM芯片,容量为64K´1位,除电源线、接地线和刷新线外,该芯片的最小引脚数量是多少?解:该芯片1位数据线,行选通和列选通各一位,64K的存储器对应16根地址线,在DRAM中,行和列复用,即地址线为8根,故在不考虑电源线的情况下,该DRAM芯片的最小引脚数为1+1+1+8=11个。4.10有一个具有8个存储体的低位交叉存储器中,如果处理器的访问地址为以下八进制地址值,求该存储器比单体存储器的平均访问速度提高多少?(忽略最初的启动时延)(1)10018,10028,10038,…,11008(2)10028,10048,10068,…,12008(3)10038,10068,10118,…,13008解:假设改存储体的地址空间从00008开始,并且存储周期为T,故有:三个访问序列访存空间的大小都为64个存储单元,故在不使用低位交叉存储体的情况下访存耗时都为64T。(1)该访问序列访存如图所示:M0M1M2M3M4M5M6M7........................10008100181002810038100481005810068100781010810118101281013810148101581016810178102081021810228......................................11008则访问该段序列所用时间为T+63*T/8=71T/8故速度提升倍数为:(64T*8)/71T=7.2倍(2)该访问序列访存如图所示:M0M1M2M3M4M5M6M7..............................10028...10048...10068...10108.....................10208............................................12008则访问该段序列所用时间为3T+63*2T/8=75T/4故速度提升倍数为:(64T*4)/75T=3.41(3)该访问序列访存如图所示:M0M1M2M3M4M5M6M7.................................10038......10068......10118......10148......10178......10228......10258...... 10308......10338......10368......10418......10448......10478........................13008则访问该段序列所用时间为4T+63*3T/8=221T/8故速度提升倍数为:(64T*8)/221T=2.34.11用16K´1位的DRAM芯片构成64K´8位的存储器,设存储器的读写周期为0.5ms,要使CPU在1ms内至少访问存储器一次,问采用哪种刷新方式比较合适?若每行刷新间隔不超过2ms,该方式下刷新信号的间隔是多少?解:由于要使CPU在1ms内至少访问存储器一次,而存储器的读写周期为0.5ms,故不可采用集中式刷新方式,因为集中是刷新的死时间会超过1ms,从而不可保证CPU在1ms内至少访问存储器一次,故采用异步刷新方式比较合适。设16K´1位的DRAM芯片采用地址复用后,采用128*128的排列方式,则将2ms分成128个时间段,每段的时间为:2000ms/128=15.625ms,即刷新信号的产生周期为15.625ms4.12设Cache的容量为214块,每块是一个32位字,主存容量是Cache容量的256倍,其中有如表4.11所示数据(地址和数据均采用16进制表示).表4.11主存数据分布情况地址数据00000087568536000008877923010100049ABEFCD001FFFC4FFFFC68FFFFF801BF2460将主存中这些数据装入到Cache后,Cache各块中的数据内容及相应的标志是什么?(1)全相联映射(2)直接相联映射(3)组相联映射解:(1)全相联映射全相联映射方式下,主存的一个数据块可映射到Cache的任意行,表中共有5个地址,数据从主存映射到Cache后占用其中的5行,假设就是Cache的前5行,具体分布如下表所示。Cache行标志数据000,0000,0000,0000,0000,0000(000000H)87568536100,0000,0000,0000,0000,0010(000002H)87792301200,0000,0100,0000,0000,0001(004001H)9ABEFCD0300,0000,0111,1111,1111,1111(007FFFH)4FFFFC68411,1111,1111,1111,1111,1110(03FFFFEH)01BF2460(2)直接相联映射 该方式下,主存的一个数据块只能射到Cache的特定行,表中共有5个地址,数据从主存映射到Cache后占用其中的特定的5行。由于一个数据块为32位,即4B,所以,只需要用主存地址的最后2位表示块内偏移地,由于Cache有16K行,所有,去掉最后2位地址后的连续14位就表示主存数据块映射到的Cache行,剩余的8位即为对应的标志.具体分布如下表所示。Cache行标志数据00000000000000(0000行)000000008756853600000000000010(0002行)000000008779230100000000000001(0001行)000000019ABEFCD011111111111111(03FFF行)000000014FFFFC6811111111111110(03FFE行)1111111101BF2460(2)组相联映射:(假设采用的是四路组相联1)该方式下,主存的一个数据块只能射到Cache的特定组中的任意行,假定Cache采用四路组相联,则Cache共分为4K组。由于一个数据块为32位,即4B,所以,只需要用主存地址的最后2位表示块内偏移地,由于Cache有4K组,因此,去掉最后2位地址后的连续12位就表示主存数据块映射到的Cache组,剩余的10位即为对应的标志.具体分布如下表所示。Cache组标志数据000000000000(000组任意行)000000000087568536000000000010(002组任意行)000000000087792301000000000001(001组任意行)00000001009ABEFCD0111111111111(0FFF组任意行)00000001114FFFFC68111111111110(0FFE组任意行)111111111101BF24604.13某计算机Cache由64个存储块构成,采用四路组相联映射方式.主存包含4096个存储块,每块由128个字组成.访问地址为字地址.(1)求主存地址和Cache地址各有多少位?(2)按照题目条件中的映射方式,列出主存地址的划分情况,并标出各部分的位数.解:(1)主存容量为:4096*128=512KW故主存地址位数为:19位Cache容量为:64*128=8KW故Cache地址位数为:13位(2)每个组中包含的存储块的个数为:4块故索引字段(Index)位数为:2位由于每块由128个字组成.访问地址为字地址,故块内地址的位数为:7位故标记部分(Tag)的位数为:10位则主存地址划分情况如下:Tag(标记)Index(索引)块内字地址12位72104.14某计算机中主存容量为4MB,Cache容量为16KB,每块包含8个字,每字32位,映射方式采用4路组相联.设Cache的初始状态为空,CPU依次从主存第0,1,2,…,99号单元读出100个字(每次读一个字),并重复此操作10次.替换算法采用LRU. (1)求Cache的命中率(2)若Cache比主存块10倍,分析采用Cache后存储访问速度提高了多少?解:(1)0,1,2,…,99号单元共100个字,每块8个字,故100个字被分配在13块内。Cache中能存放的主存块数为:16KB/8=2K块因为是四路组相联,故每组中包含的块数为:2K/4=512块由于Cache的初始状态为空,根据前面的分析,13块数据调入Cache后不会被调出,所有10次访问中,每块第一次访问不命中外,其余访问均可命中,因此10次循环访问共访问内存100*10=1000次,其中不命中的次数只有13次。则Cache的命中率为:(1000-13)/1000=98.7%(2)设访问Cache的访问时间为T(访问一个数据单元所用的时间),则访问主存的访问时间为10T,故有:使用Cache后访存所用时间为:T2=13*10T+(1000-13)*T=1117T不使用Cache访问耗时为:T1=10000T故使用了Cache后速度提高了:10000T/1117T=8.95倍4.15假定某数组元素按行优先顺序存放在主存中,则以下两段伪代码A和B中:(1)分析两段代码中对数组访问的时间局部性和空间局部性.(2)分析变量SUM的时间局部性和空间局部性.(3)分析for循环体对指令访问的时间局部性和空间局部性.Intsum_array_A(inta[M][N]){Inti,j,sum=0;For(i=0;iB>A>C,画出串行链式排队电路。解:地址线、数据线、控制线总线控制器BSBRBGACBD图8.10串行链接方式示意图8.6有4个设备A、B、C、D的响应优先权为A>B>C>D,试画出独立请求方式的排队电路。解:其中优先权的设定可通过编程进行修改。8.7假定有一个具有以下性能的系统1)存储器和总线系统支持大小为4-16个32位字的数据块访问;2)总线的时钟频率为200MHZ,总线宽度为64位,每64位数据的传输需要一个时钟周期,向存储器发送一个地址需要一个时钟周期;每个总线操作之间需要2个总线周期(设一次存储之前总线总是处于空闲状态);3)对最初的4个字的访问时间为200ns,随后的4个字能在20ns的时内被读取,假定总线传输数据的操作可以与读下4个字的操作重叠进行。读操作中,分别用4个字的数据块和16个字的数据块传输256个数据,计算机两种情况下总线传输的带宽和每秒中总线事务的次数。(说明:一个总线传输操作包含一个地址和紧随其后的数据)解:用4个字的数据块传输256个数据,需要传送64次数据,根据题目假设条件,传输256个数据需要的总时间为:t=200ns+20ns*(64-1)=1460ns3*64*T+200ns*64,则传输的带宽为:256*4B/1460ns=701MB/s总线事务次数为:64*(1+2)=192次。用16个字的数据块传输256个数据:t=3*16*T+200ns*16+48*20ns传输带宽为:256*4B/(3*16*T+200ns*16+48*20ns)=233MB/s 总线事务次数为:16*(1+8)=144次。第九章输入输出系统习题九9.1解释下列名词接口中断中断处理优先级中断屏蔽多重中断中断向量中断响应优先级中断隐指令程序中断I/O程序查询I/ODMA周期挪用通道选择型通道通道指令输入设备输出设备显示分辨率点距行反转扫描法解:(1)接口:接口是两个不同部件或系统之间的连接部分,可以是两个硬设备(可以都是计算机,也可以都是外部设备)之间的连接,也可以是软件系统中两个独立程序块之间的连接。(2)中断:计算机系统运行时,若系统外部、内部或现行程序本身出现某种非预期的事件,CPU将暂时停下现行程序,转向为该事件服务,待事件处理完毕,再恢复执行原来被终止的程序,这个过程称为中断。(3)中断处理优先级:处理优先级是指CPU实际完成中断处理程序的先后次序。对单级中断而言,先被CPU响应的中断服务程序先完成;对多重中断而言,先被CPU响应的中断不一定先完成,这与中断屏蔽密切相关。(4)中断屏蔽:为了便于利用程序控制中断处理的先后顺序,可通过程序有选择地封锁部分中断源发出的中断请求,而允许其余部分中断仍得到响应,这种方式称为中断屏蔽。(5)多重中断:若在中断服务程序执行过程中,如果允许CPU响应其它中断请求,则这种中断称为多重中断,也称中断嵌套。(6)中断向量:通常将中断服务程序的入口地址和程序状态字(有的机器不包含此项)称为中断向量。(7)中断响应优先级:响应优先级是指CPU对各设备中断请求进行响应的先后次序,它根据中断事件的重要性和迫切性而定。当几个设备同时有中断请求时,优先级高的先响应,优先级低的后响应。(8)中断隐指令:CPU响应中断之后,经过某些操作,转去执行中断服务程序。这些操作是由硬件直接实现的,把它称为中断隐指令。中断隐指令并不是指令系统中的一条真正的指令,它没有操作码,所以中断隐指令是一种不允许、也不可能为用户使用的特殊指令。(9)程序中断I/O:当主机启动外设后,无需等待查询,而是继续执行原来的程序,外设在做好输入输出准备时,向主机发出中断请求,主机接到请求后就暂时中止原来执行的程序,转去执行中断服务程序对外部请求进行处理,在中断处理完毕后返回原来的程序继续执行。(10)程序查询I/O:程序查询方式是一种程序直接控制方式,这是主机与外设间进行信息交换的最简单的方式,输入和输出完全是通过CPU执行程序来完成的。一旦某一外设被选中并启动后,主机将查询这个外设的某些状态位,看其是否准备就绪?若外设未准备就绪,主机将再次查询;若外设已准备就绪,则执行一次I/O操作。(11)DMA:直接存储器存取控制方式DMA方式下外设与主存之间传送数据时,CPU仍可执行主程序.(12)周期挪用:周期挪用是指利用CPU不访问存储器的那些周期来实现DMA操作,此时DMAC可以使用总线而不用通知CPU也不会妨碍CPU的工作。(13)通道:通道方式是DMA方式的发展,在通道方式下,数据的传送方向、存取数据的内存起始地址及传送的数据块长度等都由独立于CPU的通道来进行控制,因此,通道方式可进一步减少CPU的干预。(14)选择型通道:对于这种高速传输,通道难以同时对多个这样的设备进行操作,只能一次对一个设备进行操作,这种通道称为选择通道。(15)通道指令: 通道程序是由一系列通道指令组成的,通道指令一般包含被交换数据在内存中应占据的位置、传送方向、数据块长度及被控制的I/O设备的地址信息、特征信息(例如是磁带设备还是磁盘设备)等.(16)输入设备:向计算机输入数据和信息的设备.(17)输出设备:是人与计算机交互的一种部件,用于数据的输出。(18)显示分辨率:显示分辨率是显示器在显示图像时的分辨率,分辨率是用点来衡量的,显示器上这个“点”就是指像素(pixel)。(19)点距:点距指屏幕上相邻两个同色像素单元之间的距离,即两个红色(或绿、蓝)像素单元之间的距离。(20)行反转扫描法:先对所有行线送"1",所有列线送“0”,读键盘行扫描值;然后反过先对所有行线送"0",然后对所有列线送“1”,并读键盘列扫描值。9.2简要回答下列问题1)什么是接口?它有哪些功能?2)主机与外部设备之间如何连接?3)主机与外部设备信息交换的控制方式有哪些?各有什么特点?4)什么是程序程序查询I/O方式,简要说明其工作原理.5)比较单级中断和多重中断处理流程的异同点.6)中断隐指令完成什么功能?7)为什么在保护现场和恢复现场的过程中,CPU必须关中断?8)CPU响应中断的条件有哪些?9)什么是中断向量,简要分析中断向量方式下形成中断向量的基本方法.10)为什么采用DMA方式能提高成组数据传送的速度?11)什么是中断优先级?它具有哪两层含义?划分优先等级的原则是什么?12)计算机中断系统中使用屏蔽技术有什么好处?13)计算机中断响应后,如何调出中断服务程序?14)DMA方式传送数据前,主机应向DMA接口输送哪些参数?15)比较中断I/O和DMA的一统点。16)比较DMA与通道的异同点。17)中断系统中设计中断允许和中断屏蔽的作用分别是什么?两者是否可以合二为一?解:(1)接口是两个不同部件或系统之间的连接部分,可以是两个硬设备(可以都是计算机,也可以都是外部设备)之间的连接,也可以是软件系统中两个独立程序块之间的连接。具有的功能:1)寻址功能。2)数据输入/输出功能。3)匹配主机与外设的速度差距。4)实现数据格式转换或逻辑电平转换。5)传送主机命令。6)反映设备的工作状态。(2)主机通过接口连接I/O设备,接口实现主机与外设的连接和信息的交换。(3)主机与外部设备信息交换的控制方式有:程序查询控制方式、程序中断控制方式、直接存储器存取控制方式(DMA)、通道方式、外围处理机方式。特点:程序查询控制方式接口设计简单,但是CPU与外设只能串行工作,由于CPU的速度比外设的速度要高得多,所以在信息传送过程中,CPU的大量时间是花费在查询和等待上,从而使系统效率大大降低。程序中断控制方式:允许外部设备用“中断”信号中止CPU正在执行的程序。具体他说,当接口电路需要与CPU进行数据交换(输入、输出等)时,便由接口电路向CPU发出一个中断请求信号,CPU响应这一中断请求,并调用中断服务程序完成一个或多个字节的信息交换。这种方式不需要接口软件主动查询,而是由接口电路主动通知CPU,即在设备准备数据阶段,CPU与外设能并行工作,使得接口软件的效率比较高。直接存储器存取控制方式 :数据传输的基本单位是数据块;所传输的数据是从设备直接送入内存的,或者相反;整块数据的传送是在控制器的控制下完成的;通道方式:CPU发出启动通道的指令,通道就开始工作。I/O通道控制I/O控制器工作,I/O控制器又控制I/O设备。这样,一个通道可以连接多个I/O控制器,而一个I/O控制器又可以连接若干台同类型的外部设备。外围处理机方式:通常用于大、中型计算机系统中。由于PPU基本上独立于主机工作,其结构更接近一般处理机,甚至就是一般的通用微小型计算机。它可以完成IOP的功能,还可以完成码制变换、格式处理、数据块检错、纠错等操作。9.3A、B、C是与主机连接的3台设备,在硬件排队线路中,它们的优先级是A>B>C>CPU,为改变中断处理的次序,它们的中断屏蔽字如表9.3所示(设“0”表示允许中断,“1”表示中断屏蔽).表9.3中断屏蔽表8.1屏蔽码设备名称ABCA111B010C011请按图9.37所示时间轴给出的设备中断请求时刻,画出CPU执行程序的轨迹。A、B、C中断服务程序的时间宽度均为20us。BCA0中断请求20406080图9.37中断程序执行轨迹解:分析如下:A在0us到达,首先执行A,20us后返回,30us时B到过开始执行B,40us时C到过,由B的屏蔽码可知没有对C屏蔽,故40us后去执行C,60us后C返回B,70秒时返回主程序。流程图如下:时间0A到达20A返回30B到达40C到达60C返回70B返回主程序ABC 9.4设某机有5级中断;L0,L1,L2,L3,L4,其中断响应优先次序为:L0最高,L1次之,L4最低。现在要求将中断处理次序改为L1->L3->L0->l4->L2,试问:(1)表9.4所示的中断屏蔽字该如何设置(“0”表示允许中断,“1”表示中断屏蔽)?(2)若这5级中断同时都发出中断请求,按更改后的次序画出进入各级中断处理程序的过程示意图。9.4更新后的中断屏蔽表中断处理程序中断处理级屏蔽位L0级L1级L2级L3级L4级L0中断处理程序L1中断处理程序L2中断处理程序L3中断处理程序L4中断处理程序解:(1)中断处理程序中断处理级屏蔽位L0级L1级L2级L3级L4级L0中断处理程序L1中断处理程序L2中断处理程序L3中断处理程序L4中断处理程序1101001001111100101011011(2)主程序L0L1L2L3L4L0L1L2L3L4同时到达 9.5以图6.15所示的多周期方案数据通路高层视图为例,设计带异常处理的控制器有限状态机示意图。本章中没找到相关的知识点!9.6某计算机的CPU主频为500MHZ,与之连接的外设的最大数据传输率为20KBps,外设接口中有一个16位的数据缓冲器,相应的中断服务执行时间为500个时钟周期,通过计算分析该设备是否可采用中断I/O方式?若该设备的最大数据传输率为2MBps,该设备是否可采用中断I/O方式?解:由题意可知:当外设的最大数据传输率为20KBps,缓冲区为2B。则每秒钟产生的中断数为:20KB/2B=10000次。每次的执行为500个周期。则中断占CPU时间的比率为:500*10000/(500*106)=1%,对CPU的影响不大,可以采用中断方式。当最大数率为2MBps时,每秒钟产生的中断数为:2MB/2B=106则中断占CPU的时间比率为:(500*106)/(500*106)=100%故不能采用中断方式。9.7假设某个主频为1GHZ的处理器需要从某个成块传送的I/O设备读取1000字节的数据到主存缓冲区中,该I/O设备一旦启动就按50KBps的数据传输率向主机传送1000字节的数据,每个字节的读、处理及送内存缓冲区共需要1000个时钟周期的时间,则以下四种方式下,在1000字节的读取过程中,CPU花费在该设备I/O操作上的时间分别为多少?这部分时间占处理器时间的百分比分别是多少?(1)采用独占式查询方式,每次处理一个字节,一次状态查询需要60个时钟周期;(2)采用中断I/O方式,外设每准备好一个字节发送一次中断请求。每次中断请求需要2个时钟周期,中断服务程序的执行需要1200个时钟周期;(3)采用周期挪用的DMA方式,每挪用一次主存周期处理一个字节,一次DMA传送完成1000字节数据的传输,DMA初始化和后处理的总时间为2000个时钟周期,CPU和DMA没有访存冲突。(4)如将外设的速度提高到5MBps,则上述三种方式中,哪些不可行,为什么?对于可行的I/O方式,计算机CPU花费在I/O操作上的时间占CPU时间的百分比。解:(1)采用独占式查询方式第个字节的查询时间为60个周期,每个字节的读、处理及送内存缓冲区共需要1000个时钟周期的时间。则:一共的时间为:(1000+60)*1000=1.06*106周期占处理器时间的百分比为:(1.06*106)/(1*109)=0.106%.(2)采用中断I/O方式:(1200+2+1000)*1000=2.202*106个周期占处理器的百分比为:(2.202*106)/(1*109)=0.2202%.(3)DMA方式:1000+2000=3*103个周期占处理器的百分比为:(3*103)/(1*109)=0.000003%9.8某CRT显示器可显示64种ASCII字符,每帧可显示64字×25排;字符采用7×8点阵,即横向7点,字间间隔1点,纵向8点,排间间隔6条扫描线;水平回扫为行扫描周期的1/5;垂直回扫为帧扫描周期的1/4;帧频为50Hz,采取逐行扫描方式。问:(1)刷新存储器VRAM中存放的是什么内容,其容量至少需多少字节?(2)字符发生器ROM中存放的是什么内容,其容量是多少字节?(3)设置哪些计数器控制刷新存储器访问与屏幕扫描之间的同步?它们的分频关系如何? (4)设时钟直接用于点计数脉冲,则其频率是多少?解:(1)刷新存储器VRAM中存放的是待显示字符的编码,因为每屏字符数为64*25=1600,VRAM容量至少要存放一帧字符的ASCII码,所以至少为1600字节。(2)字符发生器ROM存放的是全部可显示字符的点阵代码,由于可显示64种字符,而每个字符的点阵码为8个字节,所以ROM的容量至少为存放所有可显示字符点阵所需要的空间,即64*8=512字节。(3)按显示过程的需要,应设置4级计数器①点计器,7×8字符点阵一行有7个光点,加上字符间隔1个点,则点计数器应按8循环。②字计数器,字计数器用来控制一排中第i个字符的刷新,其输出送到刷新存储器,作为其X向地址,因为一排可显示64个字符,行回扫占行扫描周期的1/5,即相当于20个字符,所以字计数器应按84循环计数。归零输出作为行计数脉冲。③行字数,该计数器用来控制第j行扫描线,其输出送到字符发生器,作为读取字符发生器的低位地址。因为一排字符有6条扫描线,加上排间隔8条扫描线,所以行计数器应按14循环计数。归零输出作为排计器的计数脉冲。④排字数,该计数器用来控制第n排字符,其输出送到刷新存储器,作为刷新存储器的Y地址。因为一帧可显示25排,而帧回扫占帧扫描周期的1/4,约相当于8排字符,所以排计数器应按33循环计数。由上述分析可见各级计数器的分频关系为:点计数器(7+1):1分频,字计数器(64+20):1分频,行计数器(8+6):1分频,排计数器(25+8):1分频。(4)当时钟频率直接用于点计数脉冲时,其频率为f=50×8×84×14×33=15.52MHz9.9有一汉字CRT显示器,它可显示3000个汉字,每字以11×16点阵组成,字间间隔一点,两排字间隔4条扫描线,32字/排,一个汉字编码点2个字节,帧频50Hz,帧回扫描和行回扫描均占扫描时间的20%(扫描时间包括正扫和回扫),行频可在60~70us之间选择,由时钟源输出经点计数器→字计数器→行计数器→排计数器分频产生RAM用来存放字符的编码,ROM用来存储汉字的点阵信息。试求:(1)RAM的存储容量是多少字节?(2)ROM的存储容量是多少字节?(3)各计数器位数分别是多少?(4)时钟源频率是多少?解:此题不会计算。。。9.10已知字符显示器每排显示80个字符,一帧可显示25排,字符编码采用ASCII码,使用7×7字符点阵,字间隔一个点,字符排间隔为一条扫描线,行逆程占34个字符时间,场逆程点7排字符时间,刷新频率为60Hz,求:(1)刷新存储器容量和存取时间的要求;(2)时钟频率和定时各计数器的最大值;(3)画出该字符显示器框图。解:(1)存储容量至少为:80*25=2000个字节存取时间必小于1/60=0.017s(2)①点计器,7×7字符点阵一行有7个光点,加上字符间隔1个点,则点计数器应按8循环。②字计数器,字计数器用来控制一排中第i 个字符的刷新,其输出送到刷新存储器,作为其X向地址,因为一排可显示80个字符,行回扫占行扫描周期的1/5,即相当于20个字符,所以字计数器应按100循环计数。归零输出作为行计数脉冲。③行字数,该计数器用来控制第j行扫描线,其输出送到字符发生器,作为读取字符发生器的低位地址。因为一排字符有7条扫描线,加上排间隔7条扫描线,所以行计数器应按14循环计数。归零输出作为排计器的计数脉冲。④排字数,行逆程占34个字符时间.所以其频率为:f=60*8*100*14*34=22.8MHZ(3)图略。9.11一光栅扫描图形显示器,分辨率为800×600,可显示32位真彩色,刷新频率为72Hz,问:(1)刷新存储器容量至少需要多少MB?(2)每一个像素允许的读出时间是多少ns?(3)设总带宽的60%用于刷新屏幕,保留40%带宽用于其他非刷新功能,则刷新存储器的总带宽应是多少?解:(1)刷新存储器的容量至少要存放一帧画面的内容,所以为800*600*32/8=1.83M(2)允许读出的时间为:1/72=0.0139s。(3)刷新屏幕所需带宽为:800*600*32/8*72=135M60%用于刷新,所以需:135/60%=225M'