计算机组成习题答案(清华大学出版社).pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《计算机组成习题答案(清华大学出版社).pdf》由会员分享,可在线阅读,更多相关《计算机组成习题答案(清华大学出版社).pdf(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第 章 习题答案 若有两个基准测试程序和在机器和上运行,假定和 的价格分别是 元和 元,下表给出了 和在 和上所花的时间和指令条数。程序 指令条数 执行时间 指令条数 执行时间 请回答下列问题:()对于,哪台机器的速度快?快多少?对于 呢?()在上执行和的速度分别是多少?在上的执行速度又各是多少?从执行速度来看,对于,哪台机器的速度快?快多少?()假定和的时钟频率各是和,则在和上执行时的平均时钟周 期数各是多少?()如果某个用户需要大量使用程序,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,应该选择 还是?为什么?(提示:从性价比上考虑)()如果另一个用户也需
2、要购进大批机器,但该用户使用 和一样多,主要关心的也是响应时 间,那么,应该选择 还是?为什么?参考答案:()对于,比快一倍;对于,比快一倍。()对于,的速度为:;为。对于,的速度为:;为。从执行速度来看,对于,因为倍,所以 比快倍。()在 上执行 时的平均时钟周期数 为:。在 上执行 时的平均时钟周期数 为:。()考虑运行时和的性价比,因为该用户主要关心系统的响应时间,所以性价比中的性 能应考虑执行时间,其性能为执行时间的倒数。故性价比 为:执行时间 价格 越大说明性价比越高,也即,“执行时间 价格”的值越小,则性价比越高。因为,所以,的性价比高。应选择。()和需要同等考虑,性能有多种方式:
3、执行时间总和、算术平均、几何平均。若用算术平均方式,则:因为,所以的性价比高,应选择。若用几何平均方式,则:因为 ,所以 的性价比高,应选择。若机器和具有相同的指令集,其时钟频率分别为 和。在指令集中有五种不同类 型的指令。下表给出了在和上每类指令的平均时钟周期数。机器 请回答下列问题:()和的峰值各是多少?()假定某程序的指令序列中,五类指令具有完全相同的指令条数,则程序 在和 行时,哪台机器更快?快多少?在 和上执行程序时的平均时钟周期数各是多少?参考答案:()上可以选择一段都是类指令组成的程序,其峰值 为。上可以选择一段和类指令组成的程序,其峰值 为。()类指令具有完全相同的指令条数,所
4、以各占。在和上执行程序时的平均时钟周期数分别为:上运 :假设程序 的指令条数为 ,则在 和 上的执行时间分别为:执行的速度更快,每条指令平均快 (思考:如果说程序在上执行比 错误的。请问错在什么地方?),也即 上快 比快。,那么,这个结论显然是 假设同一套指令集用不同的方法设计了两种机器 的时钟周期为。某个程序在机器 来说,哪台机器的执行速度更快?快多少?和上运行时的 。机器为,在 的时钟周期为 上的 ,机器 为。对于程序 参考答案:假设程序的指令条数为,则在和上的执行时间分别为:所以,执行 的速度更快,每条指令平均快 ,比 快 。假设某机器的时钟频率为,用户程序 上的执行时间是多少?若在机器
5、 上从程序 的时间的百分比是多少?参考答案:在上的指令条数为,其开始启动到执行结束所需的时间是 为,则在 秒,则占用 程序在上的执行时间为:,从启动执行开始到执行结束的总时间为秒,其中秒是在上真正的执行时间,其他时间可能执行操作系统程序或其他用户程序。程序占用的时间的百分比为:。假定某编译器对某段高级语言程序编译生成两种不同的指令序列 机器上运行,目标指令序列中用到的指令类型有、和,在时钟频率为 和四类。四类指令在 的 上的和 两个指令序列所用的各类指令条数如下表所示。各指令的 的指令条数 的指令条数 请问:和 各有多少条指令?各为多少?所含的时钟周期数各为多少?执行时间各为多少?参考答案:间
6、为 有条指令,。为 所含的时钟周期数为 ,执行时 有条指令,间为。为 所含的时钟周期数为 ,执行时 (注:从上述结果来看,对于同一个高级语言源程序,在同一台机器上所生成的目标程序不同,其执行时间可能不同,而且,并不是指令条数少的目标程序执行时间就一定少。)假定机器 的时钟频率为,某程序在机器上的执行时间为秒钟。对优化时,将其所有的乘指令都换成了一条左移位的指令,得到优化后的程序。已知在上乘法指令的 为,左移指令的为,的执行时间是执行时间的倍,则中有多少条乘法指令被替换 成了左移指令被执行?参考答案:显然,的执行时间为秒,因此,比多花了秒钟,因此,执行时被换成左移指令的乘法指令的条数为。第二章
7、习题答案 实现下列各数的转换。()()()()参考答案:()()()()假定机器数为位(位符号,位数值),写出下列各二进制数的原码和补码表示。,参考答案:原码 补码:溢出 溢出:溢出 :假定机器数为位(位符号,位数值),写出下列各二进制数的补码和移码表示。,参考答案:移码 补码:已知补,求 ()补()补()补()补 参考答案:()补 ()补 ()补 ()补 假定一台位字长的机器中带符号整数用补码表示,浮点数用 标准表示,寄存器和 的内容分别为:,:。不同指令对寄存器进行不同的操作,因而,不同 指令执行时寄存器内容对应的真值不同。假定执行下列运算指令时,操作数为寄存器 和的内 容,则和中操作数的
8、真值分别为多少?()无符号数加法指令 ()带符号整数乘法指令 ()单精度浮点数减法指令 参考答案:()对于无符号数加法指令,和中是操作数的无符号数表示,因此,其真值分别为:。()对于带符号整数乘法指令,和中是操作数的带符号整数补码表示,由最高位可知,为正数,为负数。的真值为的真值为。()对于单精度浮点数减法指令,和中是操作数的单精度浮点数表示。在 标准中,单精度浮点数的位数为位,其中包含位符号位,位阶码,位尾数。由中的内容可知,其符号位为,表示其为正数,阶码为,尾数部分为 ,故其为非规格化浮点数,指数为,尾数中没有隐藏的,用十六进制表示尾数为,故表示的真值为。由中的内容可知,其符号位为,表示其
9、为负数,阶码为,尾数部分为 ,故其为规格化浮点数,指数为,尾数中有隐藏的,用十六进制 表示尾数为,故表示的真值为 假定机器的字长为位,用补码表示带符号整数。下表第一列给出了在机器 上执行的语言 程序中的关系表达式,请参照已有的表栏内容完成表中后三栏内容的填写。关系表达式 运算类型 结果 说明 无符号整数 有符号整数 无符号整数 有符号整数 无符号整数 有符号整数 有符号整数 无符号整数 以下是一个语言程序,用来计算一个数组中每个元素的和。当参数为时,返回值应该是,但是在机器上执行时,却发生了存储器访问异常。请问这是什么原因造成的,并说明程序应该如何修改。参考答案:参数的类型是,所以,当时,执行
10、的结果为,是最大可表示的无符号 数,因而,任何无符号数都比它小,使得循环体被不断执行,引起数组元素的访问越界,发生存储器访问异常。只要将声明为型,或循环的测试条件改为。设某浮点数格式为:数符 阶码 尾数 位 位移码 位补码 其中,移码的偏置常数为,补码采用一位符号位,基数为。()用这种格式表示下列十进制数:,。()写出该格式浮点数的表示 X 围,并与 位定点补码整数表示 X 围比较。参考答案:(假定采用 舍入法进行舍入)()故阶码为 尾数为的补码,即,所以表示为。的补码,即所以 表示为 故阶码为 。尾数为 ,故阶码为 尾数为 ,所以表 示为 。,阶码为,尾数为 的补码,即,所以 表示为。()该
11、格式浮点数表示的 X 围如下。正数最大值:),即:(正数最小值:,即:()负数最大值:,即:负数最小值:,即:因此,该格式浮点数的数量级在 之间。位定点补码整数的表示X 围为:,即:由此可见,定点数和浮点数的表示X 围相差非常大。下列几种情况所能表示的数的 X 围是什么?()位无符号整数 ()位原码定点小数 ()位补码定点小数 ()位补码定点整数 ()下述格式的浮点数(基数为,移码的偏置常数为)数符 阶码 尾数 位 位移码 位原码 参考答案:()无符号整数:。()原码定点小数:。()补码定点小数:。()补码定点整数:。()浮点数:负数:正数:。以单精度浮点数格式表示下列十进制数。,参考答案:故
12、阶码为数符为,尾数为,小数点前为隐 藏位,所以表示为,用十六进制表示为。,故阶码为数符为,尾数为,所以 表示为,用十六进制表示为。,尾数为 ,所以 ,阶码为,数符为 表示为,用十六进制表示为。,所以 故阶码为数符为,尾数为 表示为,用十六进制表示为。设一个变量的值为,要求分别用位补码整数和单精度浮点格式表示该变量(结果用十六进制表示),并说明哪段二进制序列在两种表示中完全相同,为什么会相同?参考答案:0000 0000 0010 位补码形式为:0000 0000 0010()单精度格式为:0000 0000 0010()粗体部分为除隐藏位外的有效数字,因此,在两种表示中是相同的序列。设一个变量
13、的值为 ,要求分别用 位补码整数和 单精度浮点格式表示该变量(结果用十六进制表示),并说明哪种表示其值完全精确,哪种表示的是近似值。参考答案:位补码形式为:()单精度格式为:()位补码形式能表示精确的值,而浮点数表示的是近似值,低位被截断 下表给出了有关 浮点格式表示中一些重要数据的取值,表中已经有最大规格化数的相应内 容,要求填入其他浮点数的相应内容。(注:表中代表一个在到之间的正纯小数)单精度 双精度 项目 阶码 尾数 以的幂次表示 以的幂次表 以的幂次表示 以的幂 的值 示的值 的值 次表示的值 最大规格化数 最小规格化数 最大非规格化数 最小非规格化数 非全 已知下列字符编码:,求、的
14、位 码和第一位前加入奇校验位后的 位编码。参考答案:的码为,奇校验位,第一位前加入奇校验位 后的位编码是。的码为,,奇校验位 第一位前加入奇校验位 后的位编码是。的码为,奇校验位 第一位前 加入奇校验 位后的位编码是。的码为 奇校验位第一位前加入奇校验位后 的位编码是。的码为,奇校验位第一位前加入奇校验 位后的位编码是。的码为,奇校验位第一位前加入奇校 验位后的位编码是。的码为,奇校验位第一位前加入奇校验位后 的 位编码是。假定在一个程序中定义了变量、和,其中,和是型变量(用单精度浮点数表 示),是位型变量(用补码表示)。程序执行到某一时刻,、,它们 都被写到了主存(按字节编址),其地址分别是
15、,和。请分别画出在大端机器和小端机器 上变量、和 在内存的存放位置。参考答案:在机器内部的机器数为:在机器内部的机器数为:在机器内部表示的机器数为:()大端机 小端机 地址 内容 内容 假定某计算机的总线采用奇校验,每 位数据有一位校验位,若在 位数据线上传输的信息是 ,则对应的个校验位应为什么?若接受方收到的数据信息和校验位分别为 和 ,则说明发生了什么情况,并给出验证过程。参考答案:传输信息展开为,每位有一个奇校验位,因此,总线上发送方送出的 个校验位应该分别为、。接受方的数据信息为,展开后为;接收到的校验 位分别为、。在接受方进行校验判断如下:根据接收到的数据信息计算出 个奇校验位分别为
16、、,将该位校验位分别和接收到的 位校 验位进行异或,得到、,说明数据信息的第一个字节发生传输错误。对照传输前、后的数 据信息,第一字节 变成了,说明确实发生了传输错误,验证正确。写出位数据的码。假定数据为,说明码如何正确检测数据位 的 错误。参考答案:对于位数据,可以如下插入校验位:其中是原信息数据,是加入的校验位,对于各个校验位的值可以如下计算 所以此时,第五位数据出错时,数据字变为:,故障字,说明码字第 位出错,即出错。假设要传送的数据信息为:,若约定的生成多项式为:,则校验码为多少?假定在 接收端接收到的数据信息为,说明如何正确检测其错误,写出检测过程。参考答案:原数据信息为,对应的报文
17、多项式为 生成多项式的位数为位,所以在原 用去模除,得到的余数为 数据信息后面添加个,变为 ,所以得到码为。检测时,用接收到的码去模除生成多项式,若得到的余数为,则表明正确,否则说明 传输时发生了错误。此题中接收到的 码为(即数据加检验位),显然,用 模除,得到余数为,不为,说明传输时发生错误。第 章 习题答案 2(4)高级语言中的运算和机器语言(即指令)中的运算是什么关系?假定某一个高级语言源程序 有乘、除运算,但机器 M 中不提供乘、除运算指令,则程序 P 能否在机器 M 上运行?为什么?参考答案:(略)P 中 3考虑以下 C 语言程序代码:int func1(unsigned word)
18、return(int)(word 24);int func2(unsigned word)return(int)word 24;32 位机器上执行这些函数,该机器使用二进制补码表示带符号整数。无符号数采用逻辑 假设在一个 移位,带符号整数采用算术移位。请填写下表,并说明函数 func1 和 func2 的功能。W func1(w)func2(w)机器数 值 机器数 值 机器数 值 0000 007FH 127 0000 007FH+127 0000 007FH+127 0000 0080H 128 0000 0080H+128 FFFF FF80H 128 0000 00FFH 255 000
19、0 00FFH+255 FFFF FFFFH 1 0000 0100H 256 0000 0000H 0 0000 0000H 0 函数 func1 的功能是把无符号数高 24 号数;而函数 func2 的功能是把无符号数的高移,高 24 位补符号位(即第 25 位)。位清零(左移 24 位再逻辑右移 24 位),结果一定是正的有符 24 位都变成和第 25 位一样,因为左移 24 位后进行算术右 4填写下表,注意对比无符号数和带符号整数的乘法结果,以及截断操作前、后的结果。模式 x y xy(截断前)xy(截断后)机器数 值 机器数 值 机器数 值 机器数 值 无符号数 110 6 010
20、2 001100 12 100 4 二进制补码 110 2 010+2 111100 4 100 4 无符号数 001 1 111 7 000111 7 111 7 二进制补码 001+1 111 1 111111 1 111 1 无符号数 111 7 111 7 110001 49 001 1 二进制补码 111 1 111 1 000001+1 001+1 5以下是两段 C 语言代码,函数 arith()是直接用 C 语言写的,而 optarith()是对 arith()函数以某个确 定的 M 和 N 编译生成的机器代码反编译生成的。根据 的值各是多少?optarith(),可以推断函数
21、arith()中 M 和 N#define#define M N int arith (int x,int y)int result=0;result=x*M+y/N;int optarith(int x,int y)int t=x;x =4;x-=t;if(y 2;return x+y;y+=3;参考答案:可以看出位相当于乘以 x*M 和“int t=x;x =4;x-=t;”三句对应,这些语句实现了 16,然后再减 1),因此,M 等于 15;x 乘 15 的功能(左移 4 y/N 与“if(y 2;”两句对应,功能主要由第二句“y 右移 2 位”实现,它实现了 y 除以 4 的功能,因此
22、 N 是 4。而第一句“if(y 2=1 而 1/4=0,两者不等;调整后 1+3=2 ,22=0 ,两者相等。思考:能否把 if(y 0)y+=3;改成 if(y 0)y+=2;?不能!因为 y=-4 时不正确。6设 A4 A1 和 B4 B1 分别是四位加法器的两组输入,C 0 为低位来的进位。当加法器分别采用串行进位和 先行进位时,写出四个进位 C 4 C 1 的逻辑表达式。参考答案:串行进位:C1=X1C0+Y1C0+X1Y1 C2=X2C1+Y2C1+X2 Y2 C3=X3C2+Y3C2+X3 Y3 C4=X4C3+Y4C3+X4 Y4 并行进位:C1=X 1Y1+(X 1+Y 1)
23、C0 C 2=X 2Y 2+(X 2+Y 2)X 1Y 1+(X 2+Y 2)(X 1+Y 1)C 0 C 3=X 3Y 3+(X 3+Y 3)X 2Y 2+(X 3+Y 3)(X 2+Y 2)X 1Y 1+(X 3+Y 3)(X 2+Y 2)(X 1+Y 1)C0 C4=X 4Y 4+(X 4+Y 4)X 3Y 3+(X 4+Y 4)(X 3+Y 3)X 2Y 2+(X 4+Y 4)(X 3+Y 3)(X 2+Y 2)X 1Y 1+(X 4+Y 4)(X 3+Y 3)(X 2+Y 2)(X 1+Y 1)C0 7用 SN74181 和 SN74182 器件设计一个 16 位先行进位补码加/减运
24、算器,画出运算器的逻辑框图,并 给出零标志、进位标志、溢出标志、符号标志的生成电路。参考答案(图略):逻辑框图参见教材中的图 3.15 和图 3.16,将两个图结合起来即可,也即只要将图 3.15 中的 B 输入端 的每一位 Bi 取反,得到 Bi,和原码 Bi 一起送到一个二路选择器,由进位 C0 作为选择控制信号。当 C0 为 1 时做减法,此时,选择将 Bi 作为 SN74181 的 B 输入端;否则,当 C0 为 1 时,做加法。零标志 ZF、进位标志 CF、溢出标志 OF、符号标志 SF 的逻辑电路根据以下逻辑表达式画出即可。ZF=F 15+F 14+F 13+F 12+F 11+F
25、 10+F 9+F 8+F 7+F6+F5+F 4+F 3+F 2+F 1+F0 CF=C 16 OF=C 0(A 15B15F15+A15B15F15)+C 0(A 15B15F15+A15B15F15)SF=F 15 8 用 SN74181 和 SN74182 器件设计一个 32 位的 ALU,要求采用两级先行进位结构。(1)写出所需的 SN74181 和 SN74182 芯片数。(2)画出 32 位 ALU 的逻辑结构图。参考答案(图略):将如图 3.15 所示的两个 16 位 ALU 级联起来即可,级联时,低 位 ALU 的低位进位 C 0,因此,只要用 8 片 SN74181 和 2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 习题 答案 清华大学出版社
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内