计算机组成原理课后答案(唐朔飞第二版) 下载本文

内容发布更新时间 : 2024/4/25 6:57:06星期一 下面是文章的全部内容请认真阅读。

.

?2 0 0 0 . 0 1 0 1 1 0 1 1 0 0 0 0 1 1 . 0 + 1 1 1 . 0 0 1 1 0 0 +[-x]补 1 1 1 . 1 0 0 0 1 0 1 1 0 0 0 0 0 0(清0) 4)舍入:设采用0舍1入法,应舍: [x×y]阶补尾补=0,110;1.000 101 5)溢出:无

x×y=2110×(-0.111 011) = 26×(-59/64)

(4) [26×(-11/16)]÷[23×(-15/16)] x= 26×(-11/16)=2110×(-0.101 100) y= 23×(-15/16)=2011×(-0.111 100) [x]阶补尾补=00,110;1.010 100 [y]阶补尾补=00,011;1.000 100 1)阶码相减:

[Ex]补+[-Ey]补=00,110+ 11,101=00,011(无溢出) 2)尾数相除: (补码加减交替除法) 被除数(余数) 商

1 1 . 0 1 0 1 0 0 0 . 0 0 0 0 0 0 试减, + 0 0 . 1 1 1 1 0 0 Mx、My同号,+[-My]补 0 0 . 0 1 0 0 0 0

1? 0 0 . 1 0 0 0 0 0 0 . + 1 1 . 0 0 0 1 0 0 r、My异号,+[My]补 1 1 . 1 0 0 1 0 0

1? 1 1 . 0 0 1 0 0 0 0.1

+ 0 0 . 1 1 1 1 0 0 r、My同号, +[-My]补 0 0 . 0 0 0 1 0 0

1? 0 0 . 0 0 1 0 0 0 0.1 0

+ 1 1 . 0 0 0 1 0 0 r、My异号, +[My]补 1 1 . 0 0 1 1 0 0

被除数(余数) 商

1? 1 0 . 0 1 1 0 0 0 0 . 1 0 1

+ 0 0 . 1 1 1 1 0 0 r、My同号, +[-My]补 1 1 . 0 1 0 1 0 0

1? 1 0 . 1 0 1 0 0 0 0.1 0 1 1

+ 0 0 . 1 1 1 1 0 0 r、My同号,+[-My]补 1 1 . 1 0 0 1 0 0

1? 1 1 . 0 0 1 0 0 0 0.1 0 1 1 1

+ 0 0 . 1 1 1 1 0 0 r、My异号, +[-My]补 0 0 . 0 0 0 1 0 0 1? 0.1 0 1 1 1 1 —— 恒置1 + 1 1 . 0 0 0 1 0 0 r、Mx异号,(恢复余数) 1 1 . 0 0 1 0 0 0 且r、My异号, +[My]补 [Mx?My]补= 0.101 111, [r]补=1.001 000 r= -0 .111 000 ′ 2-6 =-0.000 000 111 000

可编辑范本

.

29. 设浮点数阶码取3位,尾数取6位(均不包括符号位),要求阶码用移码运算,尾数用补码运算,计算x·y,且结果保留1倍字长。 (1)x=2-100× 0.101101, y=2-011×(-0.110101); (2)x=2-011×(-0.100111), y=2101×(-0.101011)。 解:先将x、y转换成机器数形式: (1)[x]阶移尾补=0,100;0.101 101 [y]阶移尾补=0,101;1.001 011 1)阶码相加: [Ex]移+[Ey]补=00,100+11,101 =00,001(无溢出) 2)尾数相乘: (补码两位乘比较法) 部分积 乘数 yn+1 0 0 0 . 0 0 0 0 0 0 1 1 . 0 0 1 0 1 1 0 + 1 1 1 . 0 1 0 0 1 1 +[-x]补 1 1 1 . 0 1 0 0 1 2 1 1 1 . 1 1 0 1 0 0 1 1 1 1 .0 0 1 0 1 + 1 1 1 .0

1 0 1 0 0 1 1 +[-x]补 1 1 1 . 0

0 0 1 1 1 2 1 1 1 . 1 1 0 0 0 1 1 1 1 1 1 1 . 0 1 + 0 0 0 . 1 0 1 1 0 1 +[x]

. 0 1 1 1 1 0 1 0 1 1

补 0 0 0 2 0 0 0 . 0 0 0 1 1 1

1 1 1 1 . 0 + 1 1 1 . 0 1 0 0 1 1 +[-x]补 1 1 1 . 0 1 1 0 1 0 1 0 1 1 1 1 0 0(清0)

[Mx × My]补=1.011 010(101 111 00) 3)结果规格化:已是规格化数。 4)舍入:设采用0舍1入法,应入: [x×y]阶移尾补=0,001;1.011 011 5)溢出:无 x×y=2-111×(-0.100 101) 方案二:采用阶补尾原格式计算: [x]阶补尾原=1,100;0.101 101 [y]阶补尾原=1,101;1.110 101 1)阶码相加: [Ex]补+[Ey]补=11,100+11,101 =11,001(无溢出)

原码一位乘: 部分积 乘数y* 0 . 0 0 0 0 0 0 . 1 11

1 0 1 0 1 —— +x* + 0 . 1 0 1 1 0 1 0 . 1 0 1 1 0 1 1 0 . 0 0 1 0 1 0 . 0 1 0 1 1 0 1 . 1 1 0 1 0 —— +0 0 1 . 1 1 0 1 ——

1 0 . 0 1 1 1 0

0 1 0 0 0 0 1 . 1 1 —— +x* + 0 . 1

0 1 1 0 1 1 . 0 0 1 0 1 0 0 1

+x* + 0 . 1 0 1 1 0 1 0 . 1 1 1 0 0 1 0 . 0 0 1 10 0 0 1 . 1 1 0 —— +0 1

0 1 1 0 1 0 . 1 1 1 1 0 . 0 1 1 1 0 1 1 0 0 0 1 . 1 —— +x* + 0 . 0 1 1 1 0 . 1 0 0 1 0 1 0 1 0 0

[Mx × My]原=1.100 101(010 001) 3)结果规格化:已是规格化数。 4)舍入:设采用0舍1入法,应舍: [x×y]阶补尾原=1,001;1.100 101 5)溢出:无 x×y=2-111×(-0.100 101) (2)x=2-011×(-0.100 111) y=2101×(-0.101 011) [x]阶移尾补=0,101;1.011 001 [y]阶移尾补=1,101;1.010 101 1)阶码相加: [Ex]移+[Ey]补=00,101+00,101 =01,010(无溢出)

2)尾数相乘: (补码两位乘比较法) 部分积 乘数 yn+1 0 0 0 . 0 0 0 0 0 0 1 1 . 0 1 0 1 0 1 0 + 1 1 1 . 0 1 1 0 0 1 +[x]补 1 1 1 . 0 1 1 2 1 1 1 . 1 1 0 1 1 0 0 1 1 1 .0 1 0 1 0 + 1

0 0 1 1 1 . 0 1 1 0 0 1 +[x]补 1 1

1 . 0

1 1 1 .

1 . 0 0 1 1 1 1 2 1 1 1 . 1 1 0 0 1 1 1 1 0 1 1

1 0 + 1 1 1 . 0 1 1 0 0 1 +[x]补 2 1 1 1 . 1 1 0 0 1

0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 . 0 + 0 0 0 . 1 0 0 1 1 1 +[-x]补 0 0 0 . 0 1 1 0 1 0 0 0 1 1 0 1 0 0(清0) [Mx × My]补=0.011 010(001 101 00)

3)结果规格化: [x×y]阶移尾补= = 1,010;0.011 010(001 101 00) = 1,001;0.110 100(011 010 0) 4)舍入:设采用0舍1入法,应舍: [x×y]阶移尾补=1,001;0. 110 100 5)溢出:无 x×y=2001×0.110 100 方案二:采用阶补尾原格式计算: [x]阶补尾原=1,101;

可编辑范本

.

1.100 111 [y]阶补尾原=0,101;1.101 011 1)阶码相加: [Ex]补+[Ey]补=11,101+ 00,101 =00,010(无溢出)

原码一位乘: 部分积 乘数y* 0 . 0 0 0 0 0 0 . 1 0 1 0 1 1 1 0 . 0 1 0 0 1 1 1 1

—— +x* + 0 . 1 0 0 1 1 1 0 . 1 0 0 1 1

0 1 0 1 0 1 .

1 0 . 0 1 1 0 1

1 1 . 1 0 1 0 1 —— +x* + 0 . 1 0 0 1 1 1 0 . 1 1 1 0 1 1 0 . 0 0

1 0 . 0 1 1 1 0 1 0 1 . 1 0 1 0 —— +0

1 0 1 —— +x* + 0 . 1 0 0 1 1 1 0 . 1 1 0 1 0 . 0 00 1 1 0 1 . 1 0 —— +0

1 0 1 1 1 0 1 0 1 1 0 1 . 1 ——

+x* + 0 . 1 0 0 1 1 1 0 . 1 0 . 0 1 1 0 1 0 0 0 1 1 0 11 1 0 1 0 0 [Mx × My]原=0.011 010(001 101) 3)结果规格化: [x×y]阶补尾原= = 0,010;0.011 010(001 101) = 0,001;0.110 100(011 01) 4)舍入:设采用0舍1入法,应舍: [x×y]阶补尾原=0,001;0. 110 100 5)溢出:无 x×y=2001×0.110 100

30. 机器数格式同上题,要求阶码用移码运算,尾数用补码运算,计算x÷y。 (1)x=2101× 0.100111, y=2011×(-0.101011); (2)x=2110×(-0.101101), y=2011×(-0.111100)。

解:先将x、y转换成机器数形式: (1)[x]阶移尾补=1,101;0.100 111 [y]阶移尾补=1,011;1.010 101 1)阶码相减: [Ex]移+[-Ey]补=01,101+11,101 =01,010(无溢出)

2)尾数相除: (补码加减交替除法) 被除数(余数) 商 0 0 . 1 0 0 1 1 1 0 . 0 0 0 0 0 0 试减, + 1 1 . 0 1 0 1 0 1 Mx、My异号,+[My]补 1 1 . 1 1 1 1 . 1 1 1 0 0 0 1 . + 0 0 . 1 0 1 01

1 1 0 0 1 0 1 . 0 0 0 1

1 1 r、My同号,+[-My]补 0 0 . 1 0 0 0 1 1 1 0 1.0 + 1 1 . 0 0 . 0 1 1 0 1 1 1 1 0 1 0 1 r、My异号, +[My]补 0 0 . 0 0 1 0 1 1

1 0 1 r、My异号, +[My]补 1 1 . 1 0 1 0 1 1 1

0 1 0 1 0 1 r、My

0 1 0 1 0 1 r、My异号, +[My]补 0 0 . 1 1 0 1 1 0 1.0 0 + 1 1 . 0

续: 被除数(余数) 0 0 . 0 1 0 1 1 0 1 . 0 0 0 + 1 1 . 0 1 01 1 1 . 0 1 0 1 1

0 1.0 0 0 1 + 0 0 . 1 0 1 0 1 1 r、My同号,+[-My]补 0 0 . 0 0 0 0 1 0 1.0 0 0 1 0 + 1 1 .0 0 . 0 0 0 0 0 1 1 1.0 0 0 1

异号, +[My]补 1 1 . 0 1 0 1 1 1 1 0 1 —— 恒置1 + 0 0 . 1 0 1 0 1 1 r、Mx异号,(恢复余数) 0 0 . 0 0 0 0 1 My]补= 1.000 101, [r]补=0.000 010 r= 0 .000

0 且r、My同号, +[-My]补 [Mx 2-6 =0.000 000 000 010

010

[x [x]阶补尾原

3)结果规格化:已是规格化数。 4)舍入:已恒置1舍入。 5)溢出:无 y=2010×(-0.111 011) 方案二:采用阶补尾原形式:

y]阶移尾补=1,010;1.000 101 x

=0,101;0.100 111 [y]阶补尾原=0,011;1.101 011 1)阶码相减: [Ex]补+[-Ey]补=00,101+11,101 =00,010(无溢出)

2)尾数相除: (原码加减交替除法) 被除数(余数) 商 0 0 . 1 0 0 1 1 1 0 . 0 0 0 0 0 0 试减, + 1 1 . 0 1 0 1 0 1 +[-My*]补 1 1 . 1 1 1 0 0 0 0 . + 0 0 .+My* 0 0 . 1 0 0 0 1 1 1+[-My*]补 0 0 . 0 1 1 0 1 1 11 r 1 0 1 1 0 0 . 0 1 0 1 1 0

续: 被除数(余数) 商 1 0, +[-My*]补 1

1 1 . 1 1 1 1 0 0 1 0

0,0,

1 0 1 0 1 1 r 1 . 0 0 0 1 1

0.1 1 + 1 1 . 0 1 0 1 0

0 0.1 + 1 1 . 0 1 0 1 0 1 0 0 . 1 1 0 1 1 0

r 0, +[-My*]补 0 0 . 0 0

可编辑范本

.

1 . 10 . 1 1 1 + 1 1 . 0 1 0 1 0 1 r 1 1 . 0 1 0 1 1 0 0.1 1 1

0 1 0 1 1 1 0 0 . 0 0 0 00,+My* 0 0 . 0 0 0 0 0 1 1

0 1

0 + 0 0 . 1 0 1

1 r 0,1 0 0.1 1 1 0 1 + 1 1 . 0 1 0 1 0 1 r 0.1 1 1 0 1 0 + 0 0 . 1 0 1 0 1原= 1.111 010 r*= 0 .000 010

+[-My*]补 1 1 . 0 1 0 1 1 1 1 0 ,恢复余数,

My]

+My* 0 0 . 0 0 0 0 1 0 1 r 2-6 =0.000 000 000 010

[Mx

3)结果规格化:已是规格化数。 4)舍入:无 5)溢

y]阶补尾原=0,010;1.111 010 x

出:无 [x y=2010×(-0.111 010) (2)x=2110×(-0.101 101) y=2011×(-0.111 100) [x]阶移尾补=1,110;1.010 011 [y]阶移尾补=1,011;1.000 100 1)阶码相减: [Ex]移+[-Ey]补=01,110+11,101 =01,011(无溢出)

2)尾数相除: (补码加减交替除法) 被除数(余数) 商 1 1 . 0 1 0 0 1 1 0 . 0 0 0 0 0 0 试减, + 0 0 . 1 1 1 1 0 0 Mx、My同号,+[-My]补 0 0 . 0 0 0 . 0 1 1 1 1 0 0 . + 1 1 . 0 0 0 0

0 1 1 1 1 1 1 1 . 0 0 0 1

1 0 0 r、My异号,+[My]补 1 1 . 1 0 0 0 1 0 1 0 0.1 + 0 0 .

1 1 1 1 0 0 r、My同号, +[-My]补 0 0 . 0 0 0 0 0 0 0.1 0 + 1 1 . 0 0 . 0 0 0 0 0 0 1 0 0 0 1 0 0 r、My异号, +[My]补 1 1 . 0 0 0 1 0 0 续: 被除数(余数) 1 0 . 0 0 1 0 0 0 0 . 1 0 1 + 0 0 . 1 11 1 0 . 0 0 1 0

1 1 0 0 r、My同号, +[-My]补 1 1 . 0 0 0 1 0 0 1 0

1 1 . 0 0 0 1 0 0 1 0.1 0 1

. 1 1 1 1 0 0 r、My

1 1 1 —— 恒置

[r]补=1.000

0 0.1 0 1 1 + 0 0 . 1 1 1 1 0 0 r、My同号,+[-My]补 1 0 . 0 0 1 0 0 0 0.1 0 1 1 1 + 0 0

同号, +[-My]补 1 1 . 0 0 0 1 0 0 1 My]补= 0.101 111,100=[My]补 r= -0.111 100

注:由于补码加减交替除法算法中缺少对部分余数判“0”的步骤,因此算法运行中的某一步已除尽时,算法不会自动停止,而是继续按既定步数运行完。此时商由算法本身的这一缺陷引入了一个误差,而余数的误差正好等于除数。 商的误差引入的原因:当r、My同号时,此题中表示够减(r、Mx同号);当r、My异号时,此题中表示不够减(r、Mx异号);因此,当r=0时,被判为不够减(实际上应为够减),商0(实际上应商1),由此引入了误差。 3)结果规格化:已是规格化数。 y=2011× 0.101 111

y]阶移尾补=1,011;0.101 111 x

4)

舍入:已恒置1舍入。 5)溢出:无 [x 方案二:采用阶补尾原形式: [x]阶补尾原=0,110;1.101 101 [y]阶补尾原=0,011;1.111 100 1)阶码相减: [Ex]补+[-Ey]补=00,110+11,101 =00,011(无溢出)

2)尾数相除: (原码加减交替除法) 被除数(余数) 商 0 0 . 1 0 1 1 0 1 0 . 0 0 0 0 0 0 试减, + 1 1 . 0 0 0 1 0 0 1 1 . 1 0 0 0 1 0

+[-My*]补 1 1 . 1 1 0 0 0 1 1 0,+My* 0 0

0, +[-My*]补 0 0 . 0 0 0 0 0 0 1

0 . + 0 0 .

. 0 1

1 1 1 1 0 0 r 0 0 . 1 1 1 1 0 0 0.1 + 1 1 . 0 0 01 1 1 0 1 0 0 . 0 00 1 0 0

1 0 .续: 被除数(余数) 商 1 0 0 1 0 0 0 0 . 1 1 0 + 0 0 . 1 1 1 1 0 0 1 0 . 0 0 1 0 0 0 0.10,+My* 1 1 . 0 0 0 1 0 0 1

r 0,+My* 1 1 . 0 0

1 0 0 + 0 0 . 1 1 1 1 0 0 r 1 0 . 0 0

0 1 0 0 1 0.1 1 0 0 0 0

0,+My* 1

+ 0

1 0 0 0 0.1 1 0 0 0 + 0 0 . 1 1 1 11 . 0 0 0 1 0 0 1

1 r、Mx同号,结束。 [Mx 2-6 = -0.000 000 111 100

1 0 0 r 0,

0 0 0 0 0.1 1 + 1 1 . 0 0 0 1 0 0 r +[-My*]补 1 1 . 0 0

0 0 r 0,恢复余数,+My* 0 0 . 0 0 0 0 0 0

可编辑范本

.

0 . 1 1 1 1 0 0 r 2-6 = -0.000 000 000 000舍入:无 5)溢出:无 [x

My]原= 0.110 000, r= -0.000 000[Mx

4)

3)结果规格化:已是规格化数。 y=2011× 0.110 000 29.y]阶补尾原=0,011;0.110 000 x

31.设机器字长为32位,用与非门和与或非门设计一个并行加法器(假设与非门的延迟时间为

30ns,与或非门的延迟时间为45ns),要求完成32位加法时间不得超过0.6μs。画出进位链及加法器逻辑框图。

解:首先根据题意要求选择进位方案: 1)若采用串行进位链(行波进位),则在di、ti函数的基础上,实现32位进位需要的时间为: 30=1920ns 不满足0.6μs的加法时间限制,不能用。(设1ty=30ns)

32=64ty=64

T=2ty 30=600ns

8组=20ty=20

2)若采用单重分

组跳跃进位(级连方式),则在di、ti的基础上,4位一组分组,32位进位需: T=2.5ty 刚好满足0.6 μs加法时间的限制,

考虑到一次加法除进位时间外,还需di、ti函数的产生时间、和的产生时间(最高位和)等因素,故此进位方案仍不适用。 30=450ns

6组=15ty=15

结论:若采用单重分组跳跃进

位,小组规模需在6位以上较为合适。即: T=2.5ty 除进位外还有150ns(约5ty)左右的时间供加法开销,较充裕。 3)若采用双重分组跳跃进位(二级先行—级联进位),4位一小组,4小组为一大组分组,则32位进位需: 30=300ns 完全满足0.6μs的加法时间限制,可以使用。4级=10ty=10的进位链框图如下:

加法器逻辑框图如下。图中,进位链电路可选上述两种方案之一。

32. 设机器字长为16位,分别按4、4、4、4和5、5、3、3分组后,

(1)画出按两种分组方案的单重分组并行进位链框图,并比较哪种方案运算速度快。 (2)画出按两种分组方案的双重分组并行进位链框图,并对这两种方案进行比较。 (3)用74181和74182画出单重和双重分组的并行进位链框图。

解:(1)4—4—4—4分组的16位单重分组并行进位链框图见教材286页图6.22。

5—5—3—3分组的16位单重分组并行进位链框图如下:

(2)4—4—4—4分组的16位双重分组并行进位链框图见教材289页图6.26。 5—5—3—3分组的16位双重分组并行进位链框图如下:

5—5—3—3分组的进位时间=2.5ty 4—4—4—4分组的进位时间=2.5ty

3=7.5ty; 3=7.5ty;

T=2.5ty

32位双重分组跳跃进位的进位链框图见教材287页图6.23。 6位一组单重分组跳跃进位

可见,两种分组方案最长加法时间相同。

结论:双重分组并行进位的最长进位时间只与组数和级数有关,与组内位数无关。 (3)单重分组16位并行加法器逻辑图如下(正逻辑):

注意: 1)74181芯片正、负逻辑的引脚表示方法;

2)为强调可比性,5-5-3-3分组时不考虑扇入影响;

3)181芯片只有最高、最低两个进位输入/输出端,组内进位无引脚; 4)181为4位片,无法5-5-3-3分组,只能4-4-4-4分组;

5)单重分组跳跃进位只用到181,使用182的一定是双重以上分组跳跃进位; 6)单重分组跳跃进位是并行进位和串行进位技术的结合;双重分组跳跃进位是二级

可编辑范本