资源描述
3.9 本章真题解析
在本章的内容中,需要考生重点掌握的有存储器的组成、Cache的映像等。本节按照研究生入学考试的试题样式,参考历年的真题和全国40所高校的研究生入学试题,组织了相关的真题及解析,供读者参考。
3.9.1 单项选择题
例题1
某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块)。每个主存块大小为32字节,按字节编址。主存129号单元所在主存块应装入到的Cache组号是 (1) 。[2023年试题14]
(1)A.0 B.2 C.4 D.6
例题1分析
组相联映射方式是将某一主存块j按模Q(Q是Cache的组数)映射到Cache的第i组中的任一块,即i = j mod Q。根据题目条件可知,Q=16/2=8组。由于每个主存块大小为32字节,按字节编址,所以主存129号单元所在的主存块号为4(注意:从0开始计数),所以i=4 mod 8=4。
例题1答案
(1)C
例题2
某计算机主存容量为64KB,其中ROM区为4KB,其余为RAM区,按字节编址。现要用2K×8位的ROM芯片和4K×4位的RAM芯片来设计该存储器,则需要上述规格的ROM芯片数和RAM芯片数分别是 (2) 。[2023年试题15]
(2)A.1、15 B.2、l5 C.1、30 D.2、30
例题2分析
由于1B=8位,ROM区的总大小为4KB,即为4K×8位,那么需要的ROM芯片数为:(4K×8位)/(2K×8位)=2片。
RAM区的总大小为64KB-4KB=60KB,即60K×8位,那么需要的RAM芯片数为:(60K×8位)/(4K×4位)=30片。
例题2答案
(2)D
例题3
假设某计算机的存储系统由Cache和主存组成。某程序执行过程中访存1000次,其中访问Cache缺失(未命中)50次,则Cache的命中率是 (3) 。[2023年试题21]
(3)A.5% B.9.5% C.50% D.95%
例题3分析
程序执行过程中访存1000次,其中访问Cache缺失(未命中)50次,也就是说Cache完毕存取的总次数为1000-50=950。那么Cache的命中率=(1000-50)/1000=95%。
例题3答案
(3)D
例题4
假定用若干个2K×4位芯片组成一个8K×8位存储器,则地址0B1FH所在芯片的最小地址是 (4) 。[2023年试题15]
(4)A.0000H B.0600H C.0700H D.0800H
例题4分析
芯片的大小为2K×4位,而存储器的大小为8K×8位,不难得出要获得这样一个大小的存储器,需要8片2K×4位的芯片。
假如按字节编址,相应一个大小为8K×8位的存储器,需要13位地址,其中高3位为片选地址,低10位为片内地址,而题目给出的地址0B1FH转换为二进制为0 1011 0001 1111,其高3位为010,即片选地址为2。因此,地址0B1FH相应第2片芯片,该芯片的起始地址(最小地址)为0 1000 0000 0000,即0800H。
例题4答案
(4)D
例题5
下列有关RAM和ROM的叙述中,对的的是 (5) 。[2023年试题16]
I RAM是易失性存储器,ROM是非易失性存储器
II RAM和ROM都采用随机存取方式进行信息访问
III RAM和ROM都可用做Cache
IV RAM和ROM都需要进行刷新
(5)A.仅I和II B.仅II和III C.仅I,II,III D.仅II,III,IV
例题5分析
对于计算机系统中的存储器,常用的数据存取方式有顺序存取、直接存取、随机存取和相联存取四种。其中RAM和ROM都是采用随机存取方式。
RAM具有读/写方便,使用灵活等优点,但断电后无法保存信息,因此只能用于暂存数据,可用于主存和高速缓冲存储器。
ROM的信息是固化在存储器中,断电后仍然能保存信息,信息不容易丢失。但ROM中的信息只可读出,无法改写,当然不需要刷新。一般用于存放系统程序BIOS和用于微程序控制,不适合用于读写频繁的Cache。
例题5答案
(5)A
例题6
下列命令组合情况中,一次访存过程中,不也许发生的是 (6) 。[2023年试题17]
(6)A.TLB未命中,Cache未命中,Page未命中
B.TLB未命中,Cache命中,Page命中
C.TLB命中,Cache未命中,Page命中
D.TLB命中,Cache命中,Page未命中
例题6分析
TLB是缓存曾经访问过的虚拟地址所指向的物理地址,以使将来快速得到相同物理地址的高速存储器,可以与Cache的作用相类比。
在一次访问存储器的过程中,假如可以Cache命中,很显然,说明就访问到了需要的页(Page),即Page命中。同样的道理,假如可以TLB命中,也说明访问到了需要的页,假如这两者都命中,那么页肯定命中。因此本题中选项D的情况是不也许发生的。
例题6答案
(6)D
例题11
4位机器内的数值代码,它所表达的十进制真值为(11) 。
(11)A.9 B.-10
C.-7 D.16
例题11分析
在计算机内部,符号和数字都用二进制码表达,两者合在一起构成数的机内表达形式,称为机器数,而它真正表达的带有符号的数称为这个机器数的真值。4位机器内的代码值除去最高位符号位外,它所能表达的数值范围为0~7,因此表达的十进制真值可认为-7,而不能表达9或-10。
例题11答案
(11)C
例题12
下列BCD码中,不是合法8421码的是(12) 。
(12)A.0111 1001 B.1101 0110
C.0000 0100 D.1000 0101
例题12分析
如表2-11所示列出了几种常见的BCD码。
表2-11 常见的BCD码
十进制数
8421码
2421码
余3码
0
1
2
3
4
5
6
7
8
9
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
0000
0001
0010
0011
0100
1011
1100
1101
1110
1111
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
从表2-11中可以看出,不是合法8421码的是1101 0110。
例题12答案
(12)B
例题13
用32位字长(其中1位符号位)表达定点小数时,所能表达的数值范围是(13) 。
例题13分析
定点小数即纯小数,小数点的位置固定在最高有效数位之前,符号位之后,如图2-3所示。定点小数的小数点位置是隐含约定的,小数点并不需要真正地占据一个二进制位。
当表达X为负数,此时情况要稍微复杂一些,这是由于在计算机中带符号数可用补码表达,也可用原码表达,原码和补码的表达范围有一些差别。
若机器数为原码,当均等于1时,X为绝对值最大的负数,也称为最负的数或最小负数,其真值等于:
综上所述,设机器字长有n+1位,原码定点小数的表达范围为补码定点小数的表达范围为
在本题中,规定32位字长所表达定点小数的数值范围,它只要我们给出其数值的表达范围,并不是整个表达范围,从上面的分析中可以看出,32位字长的数值表达范围是。
例题13答案
(13)B
例题14
设机器码的长度为8,X为带符号纯小数,Y为带符号纯整数,则X的十进制真值为(14) ,Y的十进制真值为(15) 。
(14)A.1/128 B.-1/128 C.-127/128 D.127/128
(15)A.-1 B.127 C.-127 D.1
例题14分析
对于带符号数,机器数的最高位是表达正、负的符号位,其余位则表达数值。若约定小数点的位置在机器数的最低数值位之后,则是纯整数;若约定小数点的位置在机器数的最高数值位之前(符号位之后),则是纯小数。
数值X的原码记为假如机器字长为n(即采用n个二进制位表达数据),则最高位是符号位,0表达正数,1表达负数,其余的n-1位表达数值的绝对值。因此,当即X=-127/128。
数值Y的补码记为假如机器字长为n,则最高位为符号位,0表达正数,1表达负数,正数的补码与其原码和反码相同,负数的补码等于其反码的末尾加1。因此,当
例题14答案
(14)C (15)A
例题15
已知x=-73,若采用8位机器码表达,则=(16) ,=(17) 。
(16)A.11001001 B.01001001 C.11011001 D.01011001
(17)A.10110111 B.01001001 C.10110011 D.01011001
例题15分析
在计算机系统内部,对于二进制数而言,存在三种不同的表达方法:原码、反码和补码。它们各有优缺陷,可以合用于不同的方面。如表2-12所示总结了这三种码字的表达法(其中假设字长为8位)。
根据表2-13所示的规则,用原码来表达-73,最高位的符号位应当是1,73的二进制表达是1001001,因此[X]原=11001001。而对于负数而言,补码是该数的反码加1。而[X]反映为10110110,而补码就应当是10110111。
表2-12 原/反/补码表达法
类 型
正数(以94为例)
负数(以-94为例)
原码
说明
高位为符号位,0表达正数,1表达负数
实例
01011110
11011110
反码
说明
正数与原码相同
符号位为1,其他按位取反
实例
01011110
10100001
补码
说明
正数与原码相同
是该数反码加1(即补)
实例
01011110
10100010
例题15答案
(16)A (17)A
例题16
某数值编码为FFH,若它所表达的真值为-127,则它是用 (18) 表达的;若它所表达的真值为-1,则它是用 (19) 表达的。
(18)A.原码 B.反码 C.补码 D.移码
(19)A.原码 B.反码 C.补码 D.移码
例题16分析
原码表达又称符号数值表达法。正数的符号位用0表达,负数的符号位用1表达,数值部分保持不变。
反码的符号位表达法与原码相同,即符号0表达正数,符号1表达负数。与原码不同的是,反码数值部分的形成和它的符号位有关。正数反码的数值和原码的数值相同,而负数反码的数值是原码的数值按位求反。
补码的符号表达和原码相同,0表达正数,1表达负数。正数的补码和原码、反码相同,就是二进制数值自身。负数的补码是这样得到的:将数值部分按位取反,再在最低位加1。补码的补码就是原码。
移码又称为增码,它的符号表达和补码相反,1表达正数,0表达负数。移码为该数的补码,但符号位相反,常用来表达浮点数的阶码。
例题16答案
(18)A (19)C
例题17
IEEE754标准规定:单精度浮点数的最高位为符号位,后面跟8位经偏移的阶码移码,偏移量为+127。尾数用原码表达,且把尾数规格化为1.xxx…x(x为0或1),并将1去掉,尾数用23位表达。根据该标准,十进制数+178.125的规格化表达形式为 (20) 。
(20)A.0 10000110
B.0 10000111
C.1 10000100
D.0 10000110
例题17分析
本题中,要表达的数是+178.125,转化为二进制数就是10110010.001。由于规定把尾数规格化为1.xxx…x(x为0或1),并将1去掉,尾数用23位表达,因此就需要将小数点移到第1个1的后面,即得到1.的形式,共向左移动了7位。移动完毕后,去掉1,再表达成23位,显然尾数部分就是。
接下来,再构造阶码部分,由于左移了7位,因此阶码应为+7,表达成为移码则是127+7,得到10000110。
+178.125是正数,因此符号位为0。
这样,最终的结果是0 10000110 。
例题17答案
(20)A
例题18
设机器码的长度为8位,已知x,z为带符号纯整数,y为带符号纯小数,[X]原= [Y]补 = [Z]移=11111111,求出x、y、z的十进制真值:X=(21) ,Y= (22) ,Z=(23) 。
(21)A.-1 B.127 C.-127 D.1
(22)A.1/128 B.-1/128 C.-127/128 D.127/128
(23)A.-1 B.127 C.-127 D.1
例题18分析
移码是在真值X的基础上,加上一个常数(也称为偏置值),这也是移码一词的由来。假如没有特殊说明,其加的偏置值是其中n为机器码的长度。例如,对于字长8位的定点整数,假如偏置值为那么:
通过比较可以发现,在移码中,最高位0表达负数,1表达正数,并且它和补码之间的区别,正好是符号位相反,其他位相同。此外,移码全为0时,值最小;全为1时,值最大。并且在移码中,0的表达方法也只有一种,即。
因此,假如纯整数的原码是11111111,其符号位为1,说明是负数;其绝对值是1111111,即127,所以它表达的数就是-127。
假如纯小数的补码是11111111,其符号位为1,说明是负数;其相应的原码就应当是10000001,它表达的数是-2-7,即-1/128。
假如纯整数的移码是11111111,其相应的补码就是01111111,因此表达的数应为127。
例题18答案
(21)C (22)B (23)B
例题19
计算机中十六位浮点数的表达格式为:
某机器码为0000。
若阶码为移码且尾数为反码,则其十进制真值为 (24) ;
若阶码为移码且尾数为原码,则其十进制真值为 (25) ;
若阶码为补码且尾数为反码,则其十进制真值为 (26) ;
若阶码为补码且尾数为原码,则其十进制真值为 (27) ,将其规格化后的机器码为 (28) 。
(24)A.0.078125 B.20 C.1.25 D.20.969375
(25)A.0.078125 B.20 C.1.25 D.20.969375
(26)A.0.078125 B.20 C.1.25 D.20.969375
(27)A.0.078125 B.20 C.1.25 D.20.969375
(28)A.0000 B.00
C.0000 D.00
例题19分析
根据题目中所示的格式可以得知:阶码为1110,尾数为。此外,对于4位的二进制码,移码所加的偏移位应当是有了这些基础知识,就可以逐个来地解答本题。
若阶码为移码且尾数为反码。阶码为1110,其相应的补码就是0110,因此真值为+6;而尾数为反码,由于其为正数,因此尾数不变,即为。由于阶码为+6,因此小数点将向右移动6位,得到10100(注意,最高位为尾符),因此值为20。
若阶码为移码且尾数为原码。这种情况下,由于尾数的值为正数,原码和反码相同,所以它表达的数也相同,因此其值也是20。
若阶码为补码且尾数为反码。若阶码为补码,由于最高位为1,即表达其为负数,而它相应的原码就是1010,表达的数就是-2。因此,要将尾数再向右移动两个小数点,得到0.000101,转换为十进制数就是
若阶码为补码且尾数为原码。同样的道理,其值也应当与前者相同,即为0.078 125。而需要对其进行规格化,一方面应将小数点右移3位,得到(其中最高位是符号位,表达正数),而其阶码应当是-3,用补码表达为1101,从而得到0000。
例题19答案
(24)B (25)B (26)A (27)A (28)C
例题20
假设某机器中浮点数的格式为:
令某浮点数为(指数和尾数部分均是按十进制表达的)。若把该浮点数以规格化形式放于机器中,则阶码和尾数都用原码表达时为 (29) ,都用反码表达时为 (30) ,都用补码表达时为 (31) ,而阶码用移码、尾数用补码表达时为 (32) 。在最后一种情况下,该机器所可以表达的绝对值最大的浮点数是 (33) 。
(29)A.110000 B.010000
C.010000 D.101111
(30)A.101111 B.110000
C.110000 D.100101
(31)A.110000 B.101111
C.110000 D.110000
(32)A.110000 B.010000
C.110000 D.101111
例题20分析
根据题目中给出的格式,在该浮点数中阶码部分是7位,尾码是11位,其中最高位是尾符。要将浮点数表达出来,一方面将尾数转化为二进制表达:0.0101101,由于其最高位不是1,因此要再左移一位得到0.101101,所以阶码要再加1,即为-62。
若阶码和尾数都用原码表达时,则阶码为-62,其二进制表达为1111110,而尾数显然是1 101101 0000,组合起来就是010000。
由于阶码和尾数都是负数,因此反码与原码不同,需按位取反(负号位保持不变),因此阶码就是1000001,尾数则是1 010010 1111,组合起来就是101111。
补码是在反码的基础上加1,因此阶码就得到1000010,尾数则是1 010011 0000,组合起来就是110000。
移码和补码的区别只在于符号位,假如阶码用移码表达,则应当是0000010,尾码不变,组成起来就是110000。
假如用k、n分别表达阶码和尾数的数值位位数,尾数用补码,阶码用移码表达,则浮点数的表达范围如表2-13所示。
表2-13 浮点数的取值范围
条 件
结 果
值
es=0,ms=0,阶码和尾数的数值位均为1
最大正数
es=1,ms=0,尾数数值位的最低位为1,其他位均为0
最小正数
es=0,ms=1,阶码的数值位全为1,尾数数值位全为0
绝对值最大负数
例题20答案
(29)C (30)A (31)D (32)C (33)C
例题21
A=[A1…A16]和B=[B1…B16]是两个16位二进制补码表达的整数,其中A1和B1是符号位;A与B的加法和记为S=[S1…S16],那么表达和溢出的布尔表达式是 (34) 。若A采用以下浮点记数法:
阶码用移码,基数为2,尾数用补码。该数不等于0时,表达其为规格化数的布尔表达式为 (35) 。它所能表达的最大规格化浮点数是 (36) ,最小规格化浮点数是 (37) 。
若A=1000,则其十进制真值为 (38) 。
例题21分析
在补码加减法运算中,有时会出现一些异常:两个正数相加,结果的符号位为1(结果为负);两个负数相加,结果的符号位为0(结果为正),这就是溢出,这是由于两数相加的和超过了机器允许的表达范围。检查是否溢出有三种方法,如表2-14所示。
表2-14 补码加减法运算的溢出判断
方 法
判断方法说明
符号位判断
被操作数和操作数的符号相同,却与结果的符号位不同
进位判断
两正数相加,最高有效位产生进位,符号位却无进位,说明正溢出
两负数相加,最高有效位无进位,符号位却产生进位,说明负溢出
双符号位判断
前两种方法只可以检测是否溢出,而双符号位可以判断结果符号
00:正数、无溢出;01:正溢出;10:负溢出;11:负数、无溢出
在本题中,显然应当采用符号位判断。不同的符号位组合如表2-15所示。
表2-15 符号位情况分析
操作数A
操作数B
和S
是否溢出
+
+
+
否
+
+
-
是
+
-
+
否
+
-
-
否
-
+
+
否
-
+
-
否
-
-
+
是
-
-
-
否
因此,可以得到溢出的表达式就应当是:用文字说明就是,和的符号位为0并且加数与被加数的符号位都是1,或者和的符号位为1并且加数与被加数的符号位都是0。
例如,16位整数补码所可以表达的真值范围是,即[-32768, 32767]。若A=[0001],B= [000010],则A与B的真值分别为16385及16386,其和为32771,已溢出。如图2-19(a)中的例子所示,此时,A1=B1=0,而S1=1。
假如A=[0001],B=[000010],则A与B的真值分别为-32767和-32766,其和等于-65533,也已溢出。此时如图2-19(b)中的例子所示,此时,A1=B1=1,而S1=0。
根据题中的浮点记数法,阶码是采用4位移码表达,取值范围是[-8, +7];尾数采用12位补码,其真值范围是[-1, 1-2-11]。根据表2-13,所能表达的最大浮点数是:
其机器码为0000。按照浮点数规格化的定义,其尾数的绝对值应大于等于1/2。对于补码来说必然是尾符位和尾数的数值部分最高位正好相反(一个是0,另一个是1),即其布尔表达式为。上述最大的浮点数而最小的浮点数都符合此条件,故都是规格化的数。所以,它们分别表达最大规格化浮点数和最小规格化浮点数。
若A=1000,其阶码为移码1101,表达的真值是+5。尾数为补码,表达的真值是二进制数-0.,故浮点数的真值为:
将其转换成等值的十进制数是-18.875。
例题21答案
(34)A (35)C (36)D (37)C (38)D
例题22
设01011010和01001011两个数为余3码,如采用这种代码进行十进制运算,其和的余3码应为 (39) 。其所代表的十进制值为 (40) ,其BCD码(8421码)为 (41) 。余3码十进制加法运算原则是:当和无进位时(和的十进制值9), (42) ;当和有进位时(和的十进制值>9), (43) 。
(39)A.01111000 B.10000111 C.10100101 D.01111001
(40)A.78 B.87 C.45 D.72
(41)A.01111000 B.01000101
C.10000111 D.01110010
(42)A.不需修正 B.需减0011修正
C.需减0110修正 D.修正方法不拟定
(43)A.不需修正 B.需减0011修正
C.需加0011修正 D.需加0110修正
例题22分析
二进制是计算机中最适合的表达方法。而要表达十进制数,最直接的方法是将十进制数的各位数字变成一组相应的二进制代码,用4位二进制数来表达一位十进制数。由于4位二进制数可以组合出16种代码,所以只需任取10种代码即可产生多种BCD编码。如表2-16所示是几种常见的BCD码的特点比较。
表2-16 常见BCD编码的特点比较
编码类型
重要特点
8421码
(1)有权码,从高到低各位的权分别是8、4、2、1;
(2)简朴直观,不允许出现1010~1111
2421码
(1)有权码,从高到低各位的权分别是2、4、2、1;
(2)它是对9的自补码,即某数的2421码,只要自身按位取反,就可以得到该数对9补数的2421码;
(3)不允许出现0101~1010
余3码
(1)无权码,是在8421码的基础上加0011形成的;
(2)它也是一种对9的自补码;
(3)不允许出现0000~0010、1101~1111;
(4)当和无进位时(和的十进制值9),需减0011修正;
(5)当和有进位时(和的十进制值>9),需加0011修正
设A=01011010,B=01001011,则其求和的过程如图2-20所示,也就是说,A+B的和为01111000。
由于余3码是在8421码的基础上加0011得到的,所以和相应的8421码高位为0111-0011=0100,低位为1000-0011=0101,合起来就是01000101。根据BCD求得其所表达的十进制数就比较容易了,0100表达十进制的4,0101表达十进制的5,所以该数表达的是十进制数45。
例题22答案
(39)A (40)C (41)B (42)B (43)C
例题23
执行算术右移指令的操作过程是 (44) 。
(44)A.操作数的符号位填0,各位顺次右移1位,最低位移至进位标志位中
B.操作数的符号位填1,各位顺次右移1位,最低位移至进位标志位中
C.操作数的符号位不变,各位顺次右移1位,最低位移至进位标志位中
D.进位标志移至符号位,各位顺次右移1位,最低位移至进位标志位中
例题23分析
在计算机中,实现乘除运算的方案有三种:软件实现、通过逻辑线路来将乘除运算变换为移位操作;设立专有的乘法、除法器。其中大部分采用移位操作来实现。而移位操作重要涉及算术移位、逻辑移位和循环移位三种,如表2-17所示。
表2-17 移位操作的类型
类 型
说 明
算术移位
对象是有符号数,在移位过程中保持操作数的符号不变
逻辑移位
对象是无符号数,移位时无须考虑符号位
循环移位
左移移出的数放到最右,右移移出的数放在最左
显然,关于算术右移指令操作过程描述对的的是,操作数的符号位不变,各位顺次右移1位,最低位移至进位标志位中。
例题23答案
(44)C
例题24
原码除法是指(45) 。
(45)A.尾数用绝对值表达,加上符号位后相除
B.操作数用补码表达,以利加减,但商用原码表达
C.取绝对值相除,符号位单独解决
D.操作数用原码表达,然后相除
例题24分析
原码除法是指取两个操作数的绝对值相除,符号位单独解决的除法。
例题24答案
(45)C
例题25
例题25分析
对于带符号数,在移位时遵循如表2-18所示的规则。
表2-18 移位规则
码 类
移位规则
原码
符号位不变,空出位一律以“0”补入
补码
正数
符号位不变,空出位一律以“0”补入
负数
符号位不变,左移后的空出位补“0”,右移后的空出位补“1”
转换成二进制数为10100101,右移两位后,则符号位不变,右移的空位被“1”补齐,得到11101001,转换成十六进制数就是。
例题25答案
(46)C
例题26
某数据的7位编码为0110101,若在其最高位之前增长一位偶校检位,则编码为 (47) 。
(47)A.10110101 B.00110101 C.01101011 D.01101010
例题26分析
奇偶校验码可以分为奇校验和偶校验两种,都是添加1位校验位,根据信息码中1的个数来决定校验位的取值,填入校验位后,使得1的个数为奇数(奇校验)或偶数(偶校验)。例如:对于7位编码0110101而言,若在最高位加上奇偶校验位,那么:
奇校验:0110101共有4个1,要使1的个数为奇数,就需要补1,因此加上校验位后就得到10110101。
偶校验:0110101共有4个1,要使1的个数为偶数,无须补1,因此加上校验位后就得到00110101。
例题26答案
(47)B
例题27
对于16位的数据,需要 (48) 个校验位才干构成海明码。
在某个海明码的排列方式其中表达校验位,数据位由 (49) 进行校验。
(48)A.3 B.4 C.5 D.6
(49)A.P4P2P1 B.P4P3P2 C.P4P3P1 D.P3P2P1
例题27分析
要计算海明校验码,一方面要知道海明校验码是放置在2的幂次位上的,即1,2,4,8,16,32,…,而对于信息位为m的原始数据,需加入k位的校验码,它满足计算时很烦琐。而有一种简朴的方法,则是从第1位开始写,碰到校验位留下空格。例如,对于16位的数据,需要第1、2、4、8、16位作为校验位(共5个校验位),加上校验位后,共有21位。
在海明码的排列方式D9D8D7D6D5D4P4D3D2D1P3D0P2P1中,加上P1到P4四个校验位之后,D8就是第13位,其相应的二进制表达是1101,因此参与校验的位就是P4P3P1。
例题27答案
(48)C (49)C
例题28
在浮点加减运算中,(50) 。
(50)A.阶码部分与尾数部分分别进行加减运算
B.阶码与尾数作为一个整体相加减
C.阶码对齐后,尾数相加减
D.尾数单独加减,取两数中最大阶码作为结果的阶码值
例题28分析
浮点数的加减法须执行以下五步完毕运算:
第1步:对阶,对阶的目的就是使参与运算的两个数的阶码相等,以提供尾数相加减的也许性;
第2步:实现尾数的加、减运算;
第3步:尾数规格化;
第4步:尾数的舍入解决;
第5步:检查阶码是否溢出。
综上所述,可以知道在浮点加减运算中,是阶码对齐后,尾数相加减。
例题28答案
(50)C
例题29
下列关于串行加法器与并行加法器的描述中,不对的的是(51) 。
(51)A.相对并行进位,串行进行的解决速度较慢
B.串行加法器只有一个全加器,并行加法器有多个全加器
C.若采用并行加法器的分组并行进位方式,那么在组间可采用串行进位方式
D.并行加法器的并行进位方式容易实现
例题29分析
加法器重要有串行加法器和并行加法器两种。
在串行加法器中,只有一个全加器,数据逐位串行送入加法器进行运算。并行加法器可有多个全加器,可同时对数据的多位相加,它克服了串行加法器只能逐位进行相加的缺陷,很显然,它的解决速度要比串行加法器快。并行加法器中的每个全加器都有一个从低位送来的进位输入和一个传送给高位的进位输出。
在使用并行加法器的时候,虽然操作数的各位是同时提供的,但低位运算所产生的进位会影响高位的运算结果。并行进位又叫先行进位、同时进位,其特点是各级进位信号同时形成。
C1=G1+PC0
C2=G2+P2C1=G2+P2G1+P2P1C0
C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0
C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0
…
上述各式中所有的进位输出仅由及最低进位输入决定,而不依赖于其低位的进位输入,因此各级进位输出可以同时产生。这种进位方式是快速的,若不考虑的形成时间,从的最长延迟时间仅为2ty,而与字长无关。但是随着加法器位数的增长,的逻辑表达式会变得越来越长,输入变量会越来越多,这会使电路结构变得很复杂,所以完全采用并行进位是不现实的。
分组并行进位方式把n位字长分为若干小组,在组内各位之间实行并行快速进位,在组间既可以采用串行进位方式,也可以采用并行快速进位方式,因此有两种情况。
第一种情况是单级先行进位方式,它又称为组内并行、组间串行进位方式。以16位加法器为例,可分为4组,每组4位。第一小组组内的进位逻辑函数C1~C4信号是同时产生的。在这种情况下,若不考虑Gi、Pi的形成时间,从C1~C16的最长延迟时间为4×2ty=8ty,其进位的时间图如图2-21所示。
第二种情况是多级先行进位方式,又称为组内并行、组间并行进位方式。在这种方式下,若不考虑的形成时间,它的进位时间图如图2-22所示,此时加法器的最长进位延迟时间是6ty。
用同样的方法可以扩展到多于两级的先行进位加法器,如用三级先行进位结构设计64位加法器。这种加法器的字长对加法时间影响甚小,但造价较高。
例题29答案
(51)D
例题30
两个同符号的数相加或异符号的数相减,所得结果的符号位SF和进位标志CF进行(52) 运算为l时,表达运算的结果产生溢出。
(52)A.与 B.或 C.与非 D.异或
例题30分析
解答这道题,我们一方面需要清楚一个概念,即什么是溢出。溢出,是指运算结果超过机器数的表达范围。从这个概念我们可以了解到,两个异号数相加不会产生溢出,仅两个同号数相加时才有也许产生溢出。两个正数相加而绝对值超过允许的表达范围时称为正溢,两个负数相加而绝对值超过允许的表达范围时则称为负溢。一旦溢出,溢出的部分将丢失,留下来的结果将不对的。假如只有一个符号位,溢出将使结果的符号位产生错乱。因此,一般计算机中都设立了溢出判断逻辑,假如产生溢出,将停机并显示“溢出”标志。
现在我们来看几个典型的例子,从中我们可以总结出判断溢出的方法。其实在平时的学习当中,大家也应当尽也许多地自己总结规律,而不要光看书上的判断方法。
在下面的4个例题中,二进制数首位为符号位,后面4位为数据位,采用补码运算。
例1:
3+6=9
0 0011
+0 0110
0 1001
例2:
8+9=17
0 1000
+0 1001
1 0001(正溢)
例3:
8+(-5)=3
0 1000
+1 1011
0 0011
例4:
(-9)+(-8)=-17
1 0111
+1 1000
0 1111(负溢)
看完上面的4个运算式,我们可以开始总结规律了。由于上面的计算,是对两个4位的带符号二进制数进行运算,运算结果仍是一个4位带符号二进制数。所以其运算结果的范围应是:-16 ~ +15,非常明显,上面的例2和例4的结果溢出了。接下来,我们对这几个例题进行具体分析。
为了便于分析,令两个操作数的符号位分别为Sa和Sb。结果的符号位为Sf。符号位直接参与运算,所产生的符号位进位为Cf。将符号位之后的A1和B1称为最高有效位,它产生的进位为C。在例3中,C=1,但并未溢出,所以进位不等于溢出,不能简朴地根据单个进位信号去判断有无溢出,而应当从几个相关信号之间的关联去进行溢出判断。
在双符号位中,高位就是符号位的进位C
展开阅读全文