《计算机组成原理》课后题答案清华大学出版秦磊华吴非.docx
《《计算机组成原理》课后题答案清华大学出版秦磊华吴非.docx》由会员分享,可在线阅读,更多相关《《计算机组成原理》课后题答案清华大学出版秦磊华吴非.docx(37页珍藏版)》请在冰点文库上搜索。
《计算机组成原理》课后题答案清华大学出版秦磊华吴非
习题一之杨若古兰创作
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两台计算机分歧指令的CPI
A
B
C
D
CPI1
2
3
4
5
CPI2
2
2
3
4
解:
CPI1=2*0.4+0.2*(3+4+5)=3.2MIPS1=f/(CPI1106)=600106/(3.2106)=187.5
CPI2=2*0.4+0.2*(2+3+4)=2.6MIPS2=f/(CPI1106)=800106/(2.6106)=307.7
1.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=
=10.4+20.2+20.15+20.25
=1.6
优化后:
A、B、C、D四类指令在程序中所占比例分别为1/4、1/4、3/16、5/16,
CPI=
=11/4+21/4+23/16+25/16
=1.75
2)根据公式MIPS=
得
优化前:
MIPS=(500106)/(1.6106)=312.5
优化后:
MIPS=(500106)/(1.75106)=285.7
3)优化后,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=%d\n”,x,x);
Printf(“u=%u=%d\n”,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=65535
2)16位原码定点小数:
1.111111111111111~0.111111111111111,即-(1-2-15)~1-2-15
3)16位补码定点小数:
1.000000000000000~0.111111111111111,即-1~1-2-15
4)16位补码定点整数:
1000000000000000~0111111111111111,即-215~215-1
2.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)16
b)首先分别将整数和分数部分转换成二进制数:
3.1415927=11.00100100001111110110101
挪动小数点,使其酿成1.M的方式
11.00100100001111110110101=1.100100100001111110110101×2
因而得到:
S=0,e=1,E=1+01111111=10000000,M=10010010000111111011010
最初得到32位浮点数的二进制存储格式为:
01000000010010010000111111011010=(40490FDA)16
c)首先将6400转换成二进制数:
64000=1100100000000
挪动小数点,使其酿成1.M的方式
1100100000000=1.100100000000×212
因而得到:
S=0,e=12,E=1100+01111111=10001011,M=1001
最初得到32位浮点数的二进制存储格式为:
01000101110010000000000000000000=(45C80000)16
2.10求与IEEE75432位浮点数43940000H对应的十进制数.
解:
43940000H=(01000011100101000000000000000000)2
S=0,E=(10000111)2-127=8,M=1.00101
所以暗示数为100101000,对应的十进制数为296.
2.11求32位IEEE754浮点数能暗示的最大数和最小数.
解:
用IEEE754格式(E的取值范围:
1~254,留出全0和全1分别暗示0和无量大)
313023220
S
E
M
(1)最大数的二进制暗示:
011111110111111*********11111111即2127(2-2-23)
(2)最小数的二进制暗示:
111111110111111*********11111111即-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×