欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    计算机组成习题答案(清华大学出版社).pdf

    • 资源ID:73651766       资源大小:5.80MB        全文页数:75页
    • 资源格式: PDF        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机组成习题答案(清华大学出版社).pdf

    第 章 习题答案 若有两个基准测试程序和在机器和上运行,假定和 的价格分别是 元和 元,下表给出了 和在 和上所花的时间和指令条数。程序 指令条数 执行时间 指令条数 执行时间 请回答下列问题:()对于,哪台机器的速度快?快多少?对于 呢?()在上执行和的速度分别是多少?在上的执行速度又各是多少?从执行速度来看,对于,哪台机器的速度快?快多少?()假定和的时钟频率各是和,则在和上执行时的平均时钟周 期数各是多少?()如果某个用户需要大量使用程序,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,应该选择 还是?为什么?(提示:从性价比上考虑)()如果另一个用户也需要购进大批机器,但该用户使用 和一样多,主要关心的也是响应时 间,那么,应该选择 还是?为什么?参考答案:()对于,比快一倍;对于,比快一倍。()对于,的速度为:;为。对于,的速度为:;为。从执行速度来看,对于,因为倍,所以 比快倍。()在 上执行 时的平均时钟周期数 为:。在 上执行 时的平均时钟周期数 为:。()考虑运行时和的性价比,因为该用户主要关心系统的响应时间,所以性价比中的性 能应考虑执行时间,其性能为执行时间的倒数。故性价比 为:执行时间 价格 越大说明性价比越高,也即,“执行时间 价格”的值越小,则性价比越高。因为,所以,的性价比高。应选择。()和需要同等考虑,性能有多种方式:执行时间总和、算术平均、几何平均。若用算术平均方式,则:因为,所以的性价比高,应选择。若用几何平均方式,则:因为 ,所以 的性价比高,应选择。若机器和具有相同的指令集,其时钟频率分别为 和。在指令集中有五种不同类 型的指令。下表给出了在和上每类指令的平均时钟周期数。机器 请回答下列问题:()和的峰值各是多少?()假定某程序的指令序列中,五类指令具有完全相同的指令条数,则程序 在和 行时,哪台机器更快?快多少?在 和上执行程序时的平均时钟周期数各是多少?参考答案:()上可以选择一段都是类指令组成的程序,其峰值 为。上可以选择一段和类指令组成的程序,其峰值 为。()类指令具有完全相同的指令条数,所以各占。在和上执行程序时的平均时钟周期数分别为:上运 :假设程序 的指令条数为 ,则在 和 上的执行时间分别为:执行的速度更快,每条指令平均快 (思考:如果说程序在上执行比 错误的。请问错在什么地方?),也即 上快 比快。,那么,这个结论显然是 假设同一套指令集用不同的方法设计了两种机器 的时钟周期为。某个程序在机器 来说,哪台机器的执行速度更快?快多少?和上运行时的 。机器为,在 的时钟周期为 上的 ,机器 为。对于程序 参考答案:假设程序的指令条数为,则在和上的执行时间分别为:所以,执行 的速度更快,每条指令平均快 ,比 快 。假设某机器的时钟频率为,用户程序 上的执行时间是多少?若在机器 上从程序 的时间的百分比是多少?参考答案:在上的指令条数为,其开始启动到执行结束所需的时间是 为,则在 秒,则占用 程序在上的执行时间为:,从启动执行开始到执行结束的总时间为秒,其中秒是在上真正的执行时间,其他时间可能执行操作系统程序或其他用户程序。程序占用的时间的百分比为:。假定某编译器对某段高级语言程序编译生成两种不同的指令序列 机器上运行,目标指令序列中用到的指令类型有、和,在时钟频率为 和四类。四类指令在 的 上的和 两个指令序列所用的各类指令条数如下表所示。各指令的 的指令条数 的指令条数 请问:和 各有多少条指令?各为多少?所含的时钟周期数各为多少?执行时间各为多少?参考答案:间为 有条指令,。为 所含的时钟周期数为 ,执行时 有条指令,间为。为 所含的时钟周期数为 ,执行时 (注:从上述结果来看,对于同一个高级语言源程序,在同一台机器上所生成的目标程序不同,其执行时间可能不同,而且,并不是指令条数少的目标程序执行时间就一定少。)假定机器 的时钟频率为,某程序在机器上的执行时间为秒钟。对优化时,将其所有的乘指令都换成了一条左移位的指令,得到优化后的程序。已知在上乘法指令的 为,左移指令的为,的执行时间是执行时间的倍,则中有多少条乘法指令被替换 成了左移指令被执行?参考答案:显然,的执行时间为秒,因此,比多花了秒钟,因此,执行时被换成左移指令的乘法指令的条数为。第二章 习题答案 实现下列各数的转换。()()()()参考答案:()()()()假定机器数为位(位符号,位数值),写出下列各二进制数的原码和补码表示。,参考答案:原码 补码:溢出 溢出:溢出 :假定机器数为位(位符号,位数值),写出下列各二进制数的补码和移码表示。,参考答案:移码 补码:已知补,求 ()补()补()补()补 参考答案:()补 ()补 ()补 ()补 假定一台位字长的机器中带符号整数用补码表示,浮点数用 标准表示,寄存器和 的内容分别为:,:。不同指令对寄存器进行不同的操作,因而,不同 指令执行时寄存器内容对应的真值不同。假定执行下列运算指令时,操作数为寄存器 和的内 容,则和中操作数的真值分别为多少?()无符号数加法指令 ()带符号整数乘法指令 ()单精度浮点数减法指令 参考答案:()对于无符号数加法指令,和中是操作数的无符号数表示,因此,其真值分别为:。()对于带符号整数乘法指令,和中是操作数的带符号整数补码表示,由最高位可知,为正数,为负数。的真值为的真值为。()对于单精度浮点数减法指令,和中是操作数的单精度浮点数表示。在 标准中,单精度浮点数的位数为位,其中包含位符号位,位阶码,位尾数。由中的内容可知,其符号位为,表示其为正数,阶码为,尾数部分为 ,故其为非规格化浮点数,指数为,尾数中没有隐藏的,用十六进制表示尾数为,故表示的真值为。由中的内容可知,其符号位为,表示其为负数,阶码为,尾数部分为 ,故其为规格化浮点数,指数为,尾数中有隐藏的,用十六进制 表示尾数为,故表示的真值为 假定机器的字长为位,用补码表示带符号整数。下表第一列给出了在机器 上执行的语言 程序中的关系表达式,请参照已有的表栏内容完成表中后三栏内容的填写。关系表达式 运算类型 结果 说明 无符号整数 有符号整数 无符号整数 有符号整数 无符号整数 有符号整数 有符号整数 无符号整数 以下是一个语言程序,用来计算一个数组中每个元素的和。当参数为时,返回值应该是,但是在机器上执行时,却发生了存储器访问异常。请问这是什么原因造成的,并说明程序应该如何修改。参考答案:参数的类型是,所以,当时,执行的结果为,是最大可表示的无符号 数,因而,任何无符号数都比它小,使得循环体被不断执行,引起数组元素的访问越界,发生存储器访问异常。只要将声明为型,或循环的测试条件改为。设某浮点数格式为:数符 阶码 尾数 位 位移码 位补码 其中,移码的偏置常数为,补码采用一位符号位,基数为。()用这种格式表示下列十进制数:,。()写出该格式浮点数的表示 X 围,并与 位定点补码整数表示 X 围比较。参考答案:(假定采用 舍入法进行舍入)()故阶码为 尾数为的补码,即,所以表示为。的补码,即所以 表示为 故阶码为 。尾数为 ,故阶码为 尾数为 ,所以表 示为 。,阶码为,尾数为 的补码,即,所以 表示为。()该格式浮点数表示的 X 围如下。正数最大值:),即:(正数最小值:,即:()负数最大值:,即:负数最小值:,即:因此,该格式浮点数的数量级在 之间。位定点补码整数的表示X 围为:,即:由此可见,定点数和浮点数的表示X 围相差非常大。下列几种情况所能表示的数的 X 围是什么?()位无符号整数 ()位原码定点小数 ()位补码定点小数 ()位补码定点整数 ()下述格式的浮点数(基数为,移码的偏置常数为)数符 阶码 尾数 位 位移码 位原码 参考答案:()无符号整数:。()原码定点小数:。()补码定点小数:。()补码定点整数:。()浮点数:负数:正数:。以单精度浮点数格式表示下列十进制数。,参考答案:故阶码为数符为,尾数为,小数点前为隐 藏位,所以表示为,用十六进制表示为。,故阶码为数符为,尾数为,所以 表示为,用十六进制表示为。,尾数为 ,所以 ,阶码为,数符为 表示为,用十六进制表示为。,所以 故阶码为数符为,尾数为 表示为,用十六进制表示为。设一个变量的值为,要求分别用位补码整数和单精度浮点格式表示该变量(结果用十六进制表示),并说明哪段二进制序列在两种表示中完全相同,为什么会相同?参考答案:0000 0000 0010 位补码形式为:0000 0000 0010()单精度格式为:0000 0000 0010()粗体部分为除隐藏位外的有效数字,因此,在两种表示中是相同的序列。设一个变量的值为 ,要求分别用 位补码整数和 单精度浮点格式表示该变量(结果用十六进制表示),并说明哪种表示其值完全精确,哪种表示的是近似值。参考答案:位补码形式为:()单精度格式为:()位补码形式能表示精确的值,而浮点数表示的是近似值,低位被截断 下表给出了有关 浮点格式表示中一些重要数据的取值,表中已经有最大规格化数的相应内 容,要求填入其他浮点数的相应内容。(注:表中代表一个在到之间的正纯小数)单精度 双精度 项目 阶码 尾数 以的幂次表示 以的幂次表 以的幂次表示 以的幂 的值 示的值 的值 次表示的值 最大规格化数 最小规格化数 最大非规格化数 最小非规格化数 非全 已知下列字符编码:,求、的位 码和第一位前加入奇校验位后的 位编码。参考答案:的码为,奇校验位,第一位前加入奇校验位 后的位编码是。的码为,,奇校验位 第一位前加入奇校验位 后的位编码是。的码为,奇校验位 第一位前 加入奇校验 位后的位编码是。的码为 奇校验位第一位前加入奇校验位后 的位编码是。的码为,奇校验位第一位前加入奇校验 位后的位编码是。的码为,奇校验位第一位前加入奇校 验位后的位编码是。的码为,奇校验位第一位前加入奇校验位后 的 位编码是。假定在一个程序中定义了变量、和,其中,和是型变量(用单精度浮点数表 示),是位型变量(用补码表示)。程序执行到某一时刻,、,它们 都被写到了主存(按字节编址),其地址分别是,和。请分别画出在大端机器和小端机器 上变量、和 在内存的存放位置。参考答案:在机器内部的机器数为:在机器内部的机器数为:在机器内部表示的机器数为:()大端机 小端机 地址 内容 内容 假定某计算机的总线采用奇校验,每 位数据有一位校验位,若在 位数据线上传输的信息是 ,则对应的个校验位应为什么?若接受方收到的数据信息和校验位分别为 和 ,则说明发生了什么情况,并给出验证过程。参考答案:传输信息展开为,每位有一个奇校验位,因此,总线上发送方送出的 个校验位应该分别为、。接受方的数据信息为,展开后为;接收到的校验 位分别为、。在接受方进行校验判断如下:根据接收到的数据信息计算出 个奇校验位分别为、,将该位校验位分别和接收到的 位校 验位进行异或,得到、,说明数据信息的第一个字节发生传输错误。对照传输前、后的数 据信息,第一字节 变成了,说明确实发生了传输错误,验证正确。写出位数据的码。假定数据为,说明码如何正确检测数据位 的 错误。参考答案:对于位数据,可以如下插入校验位:其中是原信息数据,是加入的校验位,对于各个校验位的值可以如下计算 所以此时,第五位数据出错时,数据字变为:,故障字,说明码字第 位出错,即出错。假设要传送的数据信息为:,若约定的生成多项式为:,则校验码为多少?假定在 接收端接收到的数据信息为,说明如何正确检测其错误,写出检测过程。参考答案:原数据信息为,对应的报文多项式为 生成多项式的位数为位,所以在原 用去模除,得到的余数为 数据信息后面添加个,变为 ,所以得到码为。检测时,用接收到的码去模除生成多项式,若得到的余数为,则表明正确,否则说明 传输时发生了错误。此题中接收到的 码为(即数据加检验位),显然,用 模除,得到余数为,不为,说明传输时发生错误。第 章 习题答案 2(4)高级语言中的运算和机器语言(即指令)中的运算是什么关系?假定某一个高级语言源程序 有乘、除运算,但机器 M 中不提供乘、除运算指令,则程序 P 能否在机器 M 上运行?为什么?参考答案:(略)P 中 3考虑以下 C 语言程序代码:int func1(unsigned word)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 0000 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 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(),可以推断函数 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 的功能,因此 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)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 位先行进位补码加/减运算器,画出运算器的逻辑框图,并 给出零标志、进位标志、溢出标志、符号标志的生成电路。参考答案(图略):逻辑框图参见教材中的图 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 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 片 16 位 ALU SN74182。的高位进位 C16 作为高 16 9已知 x=10,y=6,采用 6 位机器数表示。请按如下要求计算,并把结果还原成真值。(1)求 x+y 补,xy补。(2)用原码一位乘法计算 x y原。(3)用 MBA(基 4 布斯)乘法计算 x y补。(4)用不恢复余数法计算 x/y原 的商和余数。(5)用不恢复余数法计算 x/y补 的商和余数。参考答案:10补=001010 6补=111010 6补=000110 10原=001010 6原=100110 (1)10+(6)补=10 补+6补=001010+111010=000100(+4)10(6)补=10 补+(6)补=001010+000110=010000(+16)(2)先采用无符号数乘法计算 001010 000110 的乘积,原码一位乘法过程(前面两个 0 省略)如下:C P Y 说明 0 0000 0110 P0=0 +0000 y4=0,+0 0 0000 C,P 和 Y 同时右移一位 0 00000011 得 P1 +1010 y3=1,+X 01010 C,P 和 Y 同时右移一位 0 0101 0001 得 P2+1 0 1 0y 2=1,+X 0 1111 0000 C,P 和 Y 同时右移一位 0 01111000 得 P3 +0 0 0 0y 1=0,+0 0 0111 C,P 和 Y 同时右移一位 0 00111100 得 P4 若两个 6 位数相乘的话,则还要右移两次,得 000000 111100 符号位为:0 1=1,因此,XY 原=1000 0011 1100 即 X Y=11 1100B=60 (3)10补=110110,布斯乘法过程如下:P Y y-1 说明 0 0 0000 1110100 设 y-1=0,P0补=0 y0 y-1=00,P、Y 直接右移一位 0 0 0000 011101 0 得 P1补+1 1 0 110y1 y0=10,+X 补 110110 P、Y 同时右移一位 111011 001110 1 得 P2补+0 0 1 010y 2 y1=01,+X 补 000101 P、Y 同时右移一位 000010100111 0得P3补+1101 1 0 100111 0y3 y2=10,+X 补 11 1 0 0 0P、Y 同时右移一位 1111000100111得P4补 0 0 0 00 00 1 0 0 1 11y 4 y3=11,+0 111 1 0 0P、Y 同时右移一位 1111100010011得P5补 +0 0 0 00 00 0 10 0 1 1y5 y4=11,+0 111 1 1 0P、Y 同时右移一位 1111110001001得P6补 因此,X Y 补=1111 1100 0100,即 X Y=11 1100B=60 (4)因为除法计算是 2n 位数除 n 位数,所以 6原=0110,10原=0000 1010,6补=1010,商的符号位:0 1=1,运算过程(前面两个 0 省略)如下:余数寄存器 R 余数/商寄存器 Q 说明 00001010 开始 R0=X +1010 R 1=X Y 101010100 R10,则 q4=0,没有溢出 01010100 2R 1(R 和 Q 同时左移,空出一位商)+0110 R 2=2R 1+Y 101101000 R 20,则 q3=0 0110 1000 2R2(R 和 Q 同时左移,空出一位商)+0110 R3=2R2+Y 110010000 R 30,则 q2=0 10 01 0000 2R 3 (R 和 Q 同时左移,空出一位商)+0110 R3=2R2+Y 111100000 R 40,则 q0=1 商的数值部分为:00001。所以,X/Y 原=00001(最高位为符号位 ),余数为 0100。(5)将 10 和6 分别表示成补码形式为:10补=0 1010,6补=1 1010,计算过程如下:先对被除数进行符号扩展,10补=00000 01010,6 补=0 0110 余数寄存器 R 余数/商寄存器 Q 说明 00000 01010 开始 R0=X +11010 R1=X+Y 1101001010 R 1 与 Y 同号,则 q5=1 101001 0 101 2R 1(R 和 Q 同时左移,空出一位上商 1)+00110 R 2=2R 1+Y 1101010101 R 2 与 Y 同号,则 q4=1,1010101011 2R 2(R 和 Q 同时左移,空出一位上商 1)+00110 R 3=2R 2+-Y 110110 1011 R 3 与 Y 同号,则 q3=1 1011010111 2R 3(R 和 Q 同时左移,空出一位上商 1)+00110 R 4=2R 3+Y 1110010111 R 4 与 Y 同号,则 q 2=1 1100101111 2R 4(R 和 Q 同时左移,空出一位上商 0)+00110 R 5=2R 4+-Y R 5 与 Y 同号,则 q1=1,11111 01111 1111011111 2R 5(R 和 Q 同时左移,空出一位上商 1)+00110 R 6=2R 5+Y R 6 与 Y 异号,则 q0=0,Q 左移,空出一位上商 1 00100 11110 +00000+1 商为负数,末位加 1;余数不需要修正 00100 11111 所以,X/Y 补=11111,余数为 00100。即:X/Y=0001B=1,余数为 0100B=4 将各数代入公式“除数 商+余数=被除数”进行验证,得:(6)(1)+4=10。10若一次加法需要 1ns,一次移位需要 0.5ns。请分别计算用一位乘法、两位乘法、基于 CRA 的阵列 乘法、基于 CSA 的阵列乘法四种方式计算两个 8 位无符号二进制数乘积时所需的时间。参考答案:一位乘法:8 次右移,8 次加法,共计 12ns;二位乘法:4 次右移,4 次加法,共计 6ns;基于 CRA 的阵列乘法:每一级部分积不仅依赖于上一级部分积,还依赖于上一级最终的进位,而每 一级进位又是串行进行的,所以最长的路径总共经过了 8+2(81)=22 次全加器,共计约 22ns;基于 CSA 的阵列乘法:本级进位和本级和同时传送到下一级,同级部分积之间不相互依赖,只进行O(N)次加法运算,因此,共计约 8ns。11在 IEEE 754 浮点数运算中,当结果的尾数出现什么形式时需要进行左规,什么形式时需要进行右规?如何进行左规,如何进行右规?参考答案:(1)对于结果为 1x xxx 的情况,需要进行右规。右规时,尾数右移一位,阶码加 1。右规操作可 以表示为:M b M b 2-1,E b E b+1。右规时注意以下两点:a)尾数右移时,最高位“1”被移到小数点前一位作为隐藏位,最后一位移出时,要考虑舍入。b)阶码加 1 时,直接在末位加 1。(2)对于结果为 0.00 01xx 的情况,需要进行左规。左规时,数值位逐次左移,阶码逐次减 1,直到将第一位 “1”移到小数点左边。假定 k 为结果中“”和左边第一个 1 之间连续 0 的个数,则左 规操作可以表示为:M b M b 2k,Eb Ebk。左规时注意以下两点:a)尾数左移时数值部分最左 k 个 0 被移出,因此,相对来说,小数点右移了 k 位。因为进行尾数相 加时,默认小数点位置在第一个数值位(即:隐藏位)之后,所以小数点右移 k 位后被移到了第 一位 1 后面,这个 1 就是隐藏位。b)执行 Eb Ebk 时,每次都在末位减 1,一共减 k 次。12在 IEEE 754 浮点数运算中,如何判断浮点运算的结果是否溢出?参考答案:浮点运算结果是否溢出,并不以尾数溢出来判断,而主要看阶码是否溢出。尾数溢出时,可通过右规操作进行纠正。阶码上溢时,说明结果的数值太大,无法表示;阶码下溢时,说明结果数值太小,可以把结果近似为 0。在进行对阶、规格化、舍入和浮点数的乘/除运算等过程中,都需要对阶码进行加、减运算,可能会发生阶码上溢或阶码下溢,因此,必须对阶码进行溢出判断。(有关对阶码进行溢出判断的方法可参见教材中相关章节。)13假设浮点数格式为:阶码是 4 位移码,偏置常数为 8,尾数是 6 位补码(采用双符号位),用浮点运 算规则分别计算在不采用任何附加位和采用 2 位附加位(保护位、舍入位)两种情况下的值。(假定 对阶和右规时采用就近舍入到偶数方式)(1)(15/16)7 5(2)(15/16)7 5 2+(2/16)2 2(2/16)2 5 7 5 7 (3)(15/16)2 ()2 +(2/16)4(15/16)2 2 参考答案(假定采用隐藏位):X=(15/16)7 7 6 2=0.111100B 2=(1.111000)22 Y1=(2/16)5 5 2 2=0.001000B 2=(1.000000)22 Y2=(2/16)5 5 22 2 2=0.001000B 2=(1.000000)K=(15/16)5 5 22 4 2=0.111100B 2=(1.111000)J1=(2/16)7 7 4 2=0.001000B 2=(1.000000)22 7 0.001000B 7 22 4 J2=(2/16)2=2=(1.000000)根据题目所给的各种位数,可以得到在机器中表示为:X 浮=00 1110(1)111000 Y1 浮=00 1010 (1)000000 Y2 浮=11 1010(1)000000 K 浮=00 1100(1)111000 J1浮=00 1100 (1)000000 J2 浮=11 1100(1)000000 所以,E x=1110,M x=00(1).111000,E y1=1010,M y=00(1).000000,E y2=1010,M y=11(1).000000 E k=1100,M K=00(1).111000,EJ1=1100,M J1=00(1).000000,E J2=1100,M J2=11(1).000000 尾数 M 中小数点前面有三位,前两位为数符,表示双符号,第三位加了括号,是隐藏位“没有附加位时的计算:(1)X+Y1 1”。E 补=E x移+E y1移 补(mod 2n)=1110+0110=0100 E=4,根据对阶规则可知需要对 y1 进行对阶,结果为:E y1=E x=1110,M y 1=000.000100 尾数相加:M b=M x+M y1=001.111000+000.000100=001.111100,两位符号相等,数值部分最高 位为 1,不需要进行规格化,所以最后结果为:E=1110,M=00(1).111100,7 即(31/32)2 (2)X+Y2 E 补=E x移+E y2移 补(mod 2n)=1110+0110=0100;E=4,根据对阶规则可知需要对 y2 进行对阶,结果为:E y2 x,y2 =E=1110 M=111.111100 尾数相加:M b=M x+M y2=001.111000+111.111100=001.110100,两位符号相等,数值部分最高为 1,不需要进行规格化,所以最后结果为:E=1110,M=00(1).110100,7 即(29/32)2 (3)K+J1 E 补=E K 移+E J1移 补(mod 2n)=1100+0100=0000;E=0,根据对阶规则可知不需要进行对阶。尾数相加:M b=M K+M J1=001.111000+001.000000=010.111000,两位符号不等,说明尾数溢出,需要进行右规,最后结果为:E=1101,M=00(1).011100,6 即(23/32)2 (4)K+J2 E 补=E K 移+E J2移 补(mod 2n)=1100+0100=0000;E=0,根据对阶规则可知不需要进行对阶。尾数相加:M b=M K+M J2=00 1.111000+111.000000=000.111000,两位符号相等,数值部分最高 位为 0,需要进行左规,所以最后结果为:E=1011,M=00(1).110000,4 即(7/8)2 如果有两位附加位精度上会有提高,在对阶的时候要注意小数点后就不是 6 位,而是 8 位,最后 两位为保护位和舍入位。但是由于本题 6 位尾数已经足够,再加 2 位附加位,其结果是一样的。14采用 IEEE 754 单精度浮点数格式计算下列表达式的值。(1)0.75+(65.25)(2)0.75(65.25)参考答案:x=0.75=0.110.0B=(1.10.0)22-1 6 y=65.25=1000001.01000.0B=(1.00000101.0)22 x浮=0 01111110 10.0 y浮=1 10000101 000001010.0 所以,E x=01111110,M x=0(1).1.0,E y=10000101,M y=1(1).000001010.0 尾数 M x 和 M y 中小数点前面有两位,第一位为数符,第二位加了括号,是隐藏位“1”。以下是计算机中进行浮点数加减运算的过程(假定保留 2 位附加位:保护位和舍入位)(1)0.75+(65.25)对阶:E 补=E x移+E y移 补(mod 2n)=0111 1110+0111 1011=1111 1001 E =7,根 据 对 阶 规 则 可 知 需 要 对 x 进 行 对 阶,结 果 为:E x =E y=10000101,M x =00.000000110.000 x 的尾数 M x 右移 7 位,符号不变,数值高位补 0,隐藏位右移到小数点后面,最后移出的 2 位 保留=0 尾数相加:M b M x+M y 000000110.000+11000001010.000(注意小数点在隐藏位后)根据原码加 /减法运算规则,得:00.000000110.000+11.000001010.000=11.000000100 000 上式尾数中最左边第一位是符号位,其余都是数值部分,尾数后面两位是附加位(加粗)。规格化:根据所得尾数的形式,数值部分最高位为 1,所以不需要进行规格化。舍入:把结果的尾数 M b 中最后两位附加位舍入掉,从本例来看,不管采用什么舍入法,结果都一样,都是把最后两个 0 去掉,得:M b=11.000000100 0 溢出判断:在上述阶码计算和调整过程中,没有发生“阶码上溢”和“阶码下溢”的问题。因此,阶 码 E b=10000101。最后结果为 Eb=10000101,M b=1(1).0000001 0 0,即:64.5。(2)0.75(65.25)n 对阶:E 补=E x移+E y移 补(mod 2)=0111 1110+0111 1011=1111 1001 E =-7,根 据 对 阶 规 则 可 知 需 要 对 x 进 行 对 阶,结 果 为:E x =E y=10000110,M x=00.000000110.000 x 的尾数 M x 右移一位,符号不变,数值高位补 0,隐藏位右移到小数点后面,最后移出的位保 留 尾数相加:M b=M xM y=0 0 000000110.000 11 000001010.000 (注意小数点在隐藏位后)根据原码加 /减法运算规则,得:00.000000110.00011.000001010.000=01.000010 00000 上式尾数中最左边第一位是符号位,其余都是数值部分,尾数后面两位是附加位(加粗)。规格化:根据所得尾数的形式,数值部分最高位为 1,不需要进行规格化。舍入:把结果的尾数 M b 中最后两位附加位舍入掉,从本例来看,不管采用什么舍入法,结果都一样,都是把最后两个 0 去掉,得:M b=01.000010 00 0 溢出判断:在上述阶码计算和调整过程中,没有发生“阶码上溢”和“阶码下溢”的问题。因此,阶 码 E b=10000101。最后结果为 Eb=10000101,M b=0(1).000010 00 0,即:+66。思考题:对阶时发生什么情况,就可以不再继续进行计算?15假定十进制数用 8421 NBCD 码表示,采用十进制加法运算计算下列表达式的值,并讨论在十进制 BCD 码加法运算中如何判断溢出。(1)234+567(2)548+729 参考答案:(1)234+567 001000110100 0101 01100111 0111 10011011 0110 01111010 0001 0110 0000 10000000 0001 结果为:(801)10 (2)548+729 0000 010101001000 00000111 00101001 0000 110001110001 0000 0110 0000 0110 00010010 0111 0111 结果为:(1277)10 在第(2)题中,如果是采用 12 位数表示加数 548 和 729,则能看出最后得到的答案是 1100 0111 0111,这时就是 BCD 码加法溢出了。所以我们在判断的时候不能仅仅看 BCD 码最高位是不是丢失,而要看结果的最高 4 位是不是大于 9,如果大于 9,就可以认为是溢出了。16假定十进制数用 8421 NBCD 码表示,十进制运算 673 356 可以采用 673 加上(356)的模 10 补码实现。画出实现上述操作的 3 位十进制数的 BCD 码减法运算线路,列出线路中所有的输入变量和输出变量。参考答案:(356)10补=0110 0100 0100 011001110011 0110 01000100 110010110111 0110 01100000 00110001 0111 最高位产生进位,因此,结果为正数:0011 0001 0111,故结果为:(+317)10 电路图分为两部分,一个是求出模 10 补码,另一个是计算以及判断输出结果的

    注意事项

    本文(计算机组成习题答案(清华大学出版社).pdf)为本站会员(w****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开