好文档 - 专业文书写作范文服务资料分享网站

计算机组成与系统结构课后答案全(清华大学出版社袁春风主编).docx

天下 分享 时间: 加入收藏 我要投稿 点赞

6.

位来的进位。当加法器分别采用串行进位和

先行进位时,写出四个进位 参考答案: 串行进位:

Ci = XiCo+YiCo + Xi Yi C2 = X2Ci+Y 2Ci + X2 Y2 C3 = X3C2+Y 3C2 + X3 Y3 CA = X4C3+Y 4C3 + XA YA

并行进位:

Ci = XiYi + (Xi+Yi)Co

CA Ci的逻辑表达式。

设AA Ai和B4 Bi分别是四位加法器的两组输入, Co为低

C2 = X2Y2 + (X2+Y2) XiYi + (X2+Y2) (Xi+Yi)Co C3 = X3Y3 + (X3 + 丫

3

)X2Y2 + (X3 + Y 3) (X2 + Y2) XiYi + (X 3 + 丫3)(X 2 + Y2)(Xi + Yi)Co C4=X4Y4+(X

4+Y4)X3Y3+(X4+Y4)(X3+Y3)X2Y2+(X4+Y4)(X3+Y3)(X 2+Y2)XiYi + (X 4+Y4)(X3+Y3) (X 2+Y 2)(Xi+Yi)Co

7. 用SN74i8i和SN74i82器件设计一个i6位先行进位补码加/减运算器,画出运算器的逻辑框图,并 给出零标志、进

位标志、溢出标志、符号标志的生成电路。 参考答案(图略):

逻辑框图参见教材中的图 3.15和图3.16,将两个图结合起来即可,也即只要将图 的每一位Bi取反,得到 Bi,和原码Bi 一起送到一个二路选择器,由进位 Co为1时做减法,此时,选择将

3.15中的B输入端

C0作为选择控制信号。当

Bi作为SN74181的B输入端;否则,当 Co为1时,做加法。

零标志ZF、进位标志CF、溢出标志 OF、符号标志SF的逻辑电路根据以下逻辑表达式画出即可。 ZF=F i5+F i4+F i3+Fi2+Fii+F 10+F9+F8+F 7+F6+F5+F4+F 3+F2+F1+F0 CF=C 16

OF= C 0 (A15B15F15 + A15B15F15) + Co (A15B15F15 + A15B15F15) SF= Fi5

& 用SN74181和SN74182器件设计一个 32位的ALU ,要求采用两级先行进位结构。

(1) 写出所需的SN74181和SN74182芯片数。 (2) 画出32位ALU的逻辑结构图。 参考答案(图略):

将如图3.15所示的两个16位ALU级联起来即可,级联时,低

16位ALU的高位进位 Ci6作为

高16位ALU的低位进位 Co,因此,只要用 8片SN74181和2片SN74182。 9 .已知X = 1O , y = -6,采用6位机器数表示。请按如下要求计算,并把结果还原成真值。

(1) 求[x+y]补,[x -]补。 (2) 用原码一位乘法计算[x ×]原。 3)

用MBA (基4布斯)乘法计算[x ×]补。

(4) 用不恢复余数法计算[x/y]原的商和余数。 (5) 用不恢复余数法计算[x/y]补的商和余数。

参考答案: [10]补=001010 (1)

[ £]补=111010

⑹补=000110

[10]原=001010

[ -6]原=100110

[10+( -6)]补=[10]补 +[ -6]补=001010+111010 = 000100 (+4) [10 - -6)]补=[10]补 +[ -( £)]补=001010+000110 = 010000 (+16)

(2) 先采用无符号数乘法计算 000110的乘积,原码一位乘法过程(前面两个 下:

C 0 0 0 001010× 0省略)如

P Y 说明 P0 = 0 y4 = 0, +0 C P和Y冋时右移一位 得P1 y3 = 1, +X C, P和Y冋时右移一位 得P2 y2 = 1, +X C, P和Y冋时右移一位 得P3 y1 = 0, +0 C, P和Y冋时右移一位 0

0

0

0

0

1

1

1

1

0

0

0 0 0 0 1 + 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 + 1 0 1 0 ( )0 1 1 0 0 1 0 1 0 0 1 0 1 + 1 0 1 0 0 0 )0 1 0 0 1 1 1 1 0 1 1 1 + 0 0 0 0 0 )0 0 ( 1 0 0 0 0 0 1 1 1 1 0 得P4 0 0 0 1 1 0 1 若两个6位数相乘的话,则还要右移两次,得 0符号位为:0

即 X ×Y = -1 1100B = -60

1 = 1 ,因此,[X ×Y]原=1000 0011 1100

(3) [ -10]补=110110 ,布斯乘法过程如下:

说明

设 y-1 = 0, [P0]补=0

y0 y-1 = 00, P、Y直接右移一位 得[P1]补

+ 1 1 0 1 1 0

1 1 0 1 1 0 1 1 1 0 1 1 + 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 + 1 1 0 1 1 0

■ ■■&■■■■■■■■■■■■■■■■■ Buia ■■■■■■■■ J■ Biiaa ■■■■*■■■■■■?■■■■ ruB∣ιι^ιι ■■■?■■■■ n

0 0 1 1 1 0 1

___

1 0 0 1 1 1 0 1 0 0 1 1 1 0

1 1 1 0 0 0 1 1 1 1 0 0 + 0 0 0 0 0 0

1 1 1 1 0 0 1 1 1 1 1 0

rs— tin r—n IIrmll re—s?ι11rrnι

s—τι

y1 y0 =10, +[ -X 补

P2]补 P得、[Y同时右移一位 y2 y1 =01 , +[X]补 P、Y冋时右移一位 得[P3]补

y3 y2 = 10, +[-<]补

P、Y同时右移一位 得

P4] y4 y3 [= 11, 补+0

P、Y同时右移一位 得[P5]补

nil IiirrTIi Irr5∏ιιι rwτι ιιrr,πιι m?,ιιιrsnι IIlTaτιιmι ι

0 0 1 0

ιτ5∏ιιι r—^t IlrrTlll

1 1

s—Ti Iln

+ 0 0 0 0 0 0

1

0 0 1 0 0 1 1

y5 y4 = 11, +0

P、Y同时右移一位 得[P6]补

即 X ×Y = -11 1100B= -60 因[×Y]补=1111 1100

, 此, X 0100(4) 因为除法计算是 2n位数除n位数,所以 ⑹原=0110, [10]原=0000 1010,[-]补=1010,

商的符号位:

0

1 = 1 ,运算过程(前面两个 0省略)如下:

余数寄存器R余数/商寄存器Q

说 明

开始R0 = X

.aa∞-t: IiX-.iasa-iiii:a_.siib^-s:at—(i:iia_.aia^^iia?-biiia-uiai^i.i:ia—

0 0 0 0 + 1 0 1 0

1 0 1 0

!?11!'M>ll∣a**?lll!!

0 1 0 1 +0 1 1 0 1 0 1 1 0 1 1 0 + 0 1 1 0 1 1 0 0 1 0 0 1 + 0 1 1 0 1 1 1 1

JJIII k-il IIMJJll U—l Illl.

MJl IIkJIII :_i IIIL.

R1 = X -

R1< 0,贝U q 4 = 0,没有溢出

b??a∣!bF?!∣a?UBIII?αJ∣a∣>Mi!ll≡?-ua∣l??u!∣a!∣-

l∣a?'Ue∣II^M!a∣?M>!ll≡?^?lll?*?!∣a!U4lllff-

2R1 (R和Q同时左移,空出一位商) R2 = 2R1+Y

R2 < 0,贝U q 3 = 0

2R2 ( R和Q同时左移,空出一位商) R3 = 2R2 +Y

R3 < 0,贝U q 2 = 0

■ ■*■■■■ ajHΛBIII*l ■■■ ISMl IlBaMaBlMsaill aβMBIII*iJ■■ U*a∣IIUH4Blai*lll BMHAIII BUlB IiA-BlllBbIBlllil-Sl

2R3

( R和Q同时左移,空出一位商) R3 = 2R2 +Y

R4 < 0,贝U q1= 0

00001。所以, [X/Y]原=00001 (最高位为符号位),余数为0100。

(5)将10和£分别表示成补码形式为:

[10]补=0 1010 ,[—补=1 1010,计算过程如下:

先对被除数进行符号扩展, [10]补=00000 01010, [6]补=0

0110 余数寄存器说明 开始R0 = [X] 0 0 0 0 0 R余数/商寄存器Q

R1=[X] +[Y] + 1 1 0 1 0

1 1 0 1 0 ................ R1 与.[YL同号,,则..q5=1

1 0 1 0 0 2R1 ( R和Q同时左移,空出一位上商 +0 0 1 1 0 1

1 1 0 1 0 )

1 0 1 0 1 R2 = 2R1+[ Y

+ 0 0 1 1 0 ........ R2与[YL同号,则….q4=. 1, 2R2 (R和Q同时左

1 1 0 1 1 移,空出一位上商

LlllMIEIBI IlMJIBI IuiIiaLBAHIIia. ?ι∣H*\∣B~?ιa∣!' BiiiB-aBiirv

1 1 1 0 + 0 1 1 0 0 1 0 0

商的数值部分为:

IAaJlll-IKU IlMUll UsJJllLUIl IIAaJIII Ii Il IIUalll IU-: JIlIl-Ul IIUΛ1II Il il IIIL&UI IMdJIII k—II:. ................................................................. ............ J .

0 0 0 0 1

2R4 ( R和Q同时左移,空出一位商)

R5 = 2R4+Y

R5 > 0,贝U q 0 = 1

1 0 1 1 0 + 0 0 1 1 0 1 1 1 0 0

rm Immreni ιmτιιι m ιιιrt

1

!l≡ ?≈P?*\?!≡\,???B ■■-≡?8?≡H?\-≡??1\??B?-5\1?!≡=?≡-e∣?,??,,

R3 = 2R2 +[-Y] R3与[Y]同号,贝U q3 = 1

2R3 (R和Q同时左移,空出一位上

0)

n IlrrTlll IraPIITBTIII rm Ilrrml ιrβ,

1 0 1 1 1

R4 = 2R3 +[ -Y] 2R4 ( R和Q同时左移,空出一位上商 R与[Y]同号,贝R45= 2R4 +[-Y] U q 2 = 1

1 1 0 0 1

+ 0 0 1 1 0 1 1 1 1 1 n IIlIlnIl IrBB,ιιιranι ιmaιιι H

C 1 1 1 1

■ ■I IHH IiIram Ima

■ ■I m*ιιιrBni ImTIIl r^τι Illr-Sll ≡m?ιιιι IJrf Ilrrnll IIal ιιιrrπι IiT≡?ιιι ιιι--?ss ■

1 1 1 1 0 + 0 0 1 1 0 0 0 1 0 0

1 1 1 1 2R5

R5与[Y]同号,贝U q1= 1 ,

( R和Q同时左移,空出一位上商 1

) R6= 2R5 +[ Y

则 q 0 = 0, Q左移, 空出一位上商 R6与[Y]异号,

+ 0 0 0 0 0

0 0 1 0 0

所以,[X/Y]补=11111,余数为 00100。

商为负数,末位加 1;余数不需要修正

即:X/Y= -0001B = -1 ,余数为 0100B = 4 将各数代入公式

(£) × -) +4=

“除数 ×商+余数=被除数”进行验证,得:

10。

10?若一次加法需要 1ns, 一次移位需要 0.5ns。请分别计算用一位乘法、两位乘法、基于

乘法、基于CSA的阵列乘法四种方式计算两个 8位无符号二进制数乘积时所需的时间。

参考答案:

一位乘法:8次右移,8次加法,共计12ns;

二位乘法:4次右移,4次加法,共计6ns;

CRA的阵列

基于 CRA 的阵列乘法: 每一级部分积不仅依赖于上一级部分积, 还依赖于上一级最终的进位, 而每 一级进位又是串行进行的,所以最长的路径总共经过了

8+2X(8-)=22次全加器,共计约 22ns;

基于 CSA 的阵列乘法:本级进位和本级和同时传送到下一级,同级部分积之间不相互依赖,只进行 O( N)次加法运算,因此,共计约

8nSO

11.在 IEEE 754 浮点数运算中, 当结果的尾数出现什么形式时需要进行左规, 什么形式时需要进行右规? 如何

进行左规,如何进行右规? 参考答案:

(1) 对于结果为± 1x . XX……X的情况,需要进行右规。右规时,尾数右移一位,阶码加 可以表示为:M b M b >2 -1, Eb Eb+1。右规时注意以下两点:

a) 尾数右移时,最高位“ 1 ”被移到小数点前一位作为隐藏位,最后一位移出时,要考虑舍入。 b) 阶码加 1 时,直接在末位加 1。

(2) 对于结果为± 0.00……0 1x……X的情况,需要进行左规。左规时,数值位逐次左移,阶码逐次减1, 直到将第一位 “1”移到小数点左边。假定 k 为结果中“±”和左边第一个 1 之间连续 0的个数,则左 规操作可以表示为:

M b M b ×2k, Eb Eb -k。左规时注意以下两点:

k 位后被移到了第

a) 尾数左移时数值部分最左 k 个 0 被移出,因此,相对来说,小数点右移了 k 位。因为进行尾数相 加时,默认小数点位置在第一个数值位(即:隐藏位)之后,所以小数点右移 一位 1 后面,这个 1 就是隐藏位。

b) 执行Eb Eb -k时,每次都在末位减 1, 一共减k次。

12.在 IEEE 754 浮点数运算中,如何判断浮点运算的结果是否溢出?

参考答案: 浮点运算结果是否溢出,并不以尾数溢出来判断,而主要看阶码是否溢出。尾数溢出时,可通过右 规操作进行纠正。阶码上溢时,说明结果的数值太大,无法表示;阶码下溢时,说明结果数值太小, 可以把结果近似为 0。

在进行对阶、规格化、舍入和浮点数的乘

/除运算等过程中,都需要对阶码进行加、减运算,可能会

)

发生阶码上溢或阶码下溢,因此,必须对阶码进行溢出判断。 (有关对阶码进行溢出判断的方法可参见教材中相关章节。

13.假设浮点数格式为:阶码是

时采用就近舍入到偶数方式) (1) (15/16) × +(2/16) (3) (15/16) × +(2/16)

25× 27×

(2) (15/16) 2×-2∕16) (4) (15/16) 2×-2∕16)

2× 2×

1。右规操作

4 位移码,偏置常数为 8,尾数是 6位补码(采用双符号位) ,用浮点运

算规则分别计算在不采用任何附加位和采用 2 位附加位(保护位、舍入位)两种情况下的值。 (假定 对阶和右规

参考答案(假定采用隐藏位) :

X= (15/16) 27×= 0.111100B 27=×(1.111000)2 ×26 Y1= (2/16) 25×= 0.001000B 25×=(1.000000)2 ×22 Y2= (-2/16) 2×5= -0.001000B 2×5= ( -1 .000000)2 ×22 K= (15/16) 25×= 0.111100B 25=×(1.111000)2 ×24 J1= (2/16) 27×=0.001000B 27×=(1.000000)2 ×24

J2= (-2/16) 2×7= -0.001000B 2×7= (-1.000000)2 ×24 根据题目所给的各种位数,可以得到在机器中表示为: [X] 浮 = 00 1110 (1)111000 [K]浮=00

1100 (1)111000

[Y1] 浮 = 00 [J1]浮=00

1010 (1)000000 1100 (1)000000

[Y2] 浮 = 11 1010 (1)000000 [J2]浮=11

1100 (1)000000

所以,E X = 1110, MX = 00 (1). 111000 ,E yi = 1010, My = 00(1).000000 , E y2 = 1010, My = 11(1).000000 Ek = 1100,MK = 00 (1). 111000 ,E J1 = 1100,MJ1 = 00(1).000000 , E J2 = 1100,MJ2 = 11(1).000000

尾数 M 中小数点前面有三位,前两位为数符,表示双符号,第三位加了括号,是隐藏位“ 没有附加位时的计算: (1)

X+Y1

[Δ E]补=[E χ]移 + [ -E y1]移]补(mod 2 n) = 1110 + 0110 = 0100

1”。

ΔE = 4 ,根据对阶规则可知需要对 y1 进行对阶,结果为: E y1 = E X = 1110, My 1= 000.000100 尾数相加:

Mb = MX + My1 = 001. 111000+ 000.000100 = 00 1 . 1 1 1 1 00 ,两位符号相等,数值部分最高 位为 1 ,不需要进行规格化,所以最后结果为: E=1110, M=00(1).111100, 即(31/32) ×27 ( 2) X+Y2

[Δ E]补=[E x]移 + [ -E y2]移]补(mod 2 n) = 1110 + 0110 = 0100;

ΔE = 4 ,根据对阶规则可知需要对 y2 进行对阶,结果为: E y2 = E X = 1110, My2= 111.111100 尾数相加:

Mb = Mx + My2 = 001. 111000+ 111.111100=001.110100,两位符号相等,数值部分最高为 1,不需要进行规格化,所以最后结果为: E=1110, M=00(1).110100, 即(29/32) 27× ( 3) K+J1

[Δ E]补=[E κ]移 + [ -E J1]移]补(mod 2 n) = 1100 + 0100 = 0000;

Δ E = 0 ,根据对阶规则可知不需要进行对阶。

尾数相加: M b = M κ + M J1 = 001. 111000+ 001.000000= 01 0. 1 1 1 000 ,两位符号不等, 说明尾数溢出, 需要进行右规,最后结果为: E=1101, M=00(1).011100, 即(23/32) 2×6 ( 4) κ+J2

[Δ E]补=[E κ]移 + [ -E J2]移]补(mod 2 n) = 1100 + 0100 = 0000;

Δ E = 0 ,根据对阶规则可知不需要进行对阶。

尾数相加: Mb = Mκ + MJ2 = 00 1. 111000+ 111.000000 = 000.111000,两位符号相等,数值部分最高 位为 0,需要进行左规,所以最后结果为: E=1011, M=00(1).110000, 即(7/8) 2×4 如果有两位附加位精度上会有提高,在对阶的时候要注意小数点后就不是 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) 2 ×2-1

y = -65.25 = -1000001.01000...0B = (-1.00000101...0) 2 ×26 用 IEEE 754 标准单精度格式表示为: 凶浮=0

01111110 10...0

[y]浮=1 10000101 000001010...0

1 ”。

所以, E x = 01111110, Mx = 0 (1). 1...0 , E y = 10000101, My = 1(1).000001010...0 尾数 M x 和 M y 中小数点前面有两位,第一位为数符,第二位加了括号,是隐藏位“ 以下是计算机中进行浮点数加减运算的过程(假定保留 2 位附加位:保护位和舍入位) (1) 0.75+ (-65.25)

① 对阶:[Δ E]补=[Ex]移 + [ -E y]移]补(mod 2n) = 0111 1110 + 0111 1011 = 1111 1001

Δ E = -7,根据对阶规则可知需要对

00.000000110...000

x 进行对阶,结果为: Ex = E y = 10000101, Mx =

保留

x 的尾数 M x 右移 7 位,符号不变,数值高位补

0,隐藏位右移到小数点后面,最后移出的 2 位

计算机组成与系统结构课后答案全(清华大学出版社袁春风主编).docx

6.位来的进位。当加法器分别采用串行进位和先行进位时,写出四个进位参考答案:串行进位:Ci=XiCo+YiCo+XiYiC2=X2Ci+Y2Ci+X2Y2C3=X3C2+Y3C2+X3Y3CA=X4C3+Y4C3+XAYA并行进位:Ci=
推荐度:
点击下载文档文档为doc格式
9evw80rqi310e609m87w9sc9l3ppgr019x8
领取福利

微信扫码领取福利

微信扫码分享