所以有[x]补=2x0+x,x0=
9.已知:
x=0.1011,y=-0.0101,求:
[
x]补,[
x]补,[-x]补,[
y]补,[
y]补,[-y]补。
解:
[x]补=0.1011,[y]补=1.1011
[
x]补=0.01011,[
x]补=1.11011
[
x]补=0.001011,[
x]补=1.111011
[-x]补=1.0101,[-x]补=0.0101
10..由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数x,其值表示为:
x=(-1)S×(1.M)×2E–128
问:
其所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少
解:
(1)最大正数
x=[1+(1–2-23)]×2127
00000000000000000000000000000
(2)最小正数
x=1.0×2-128
10000000000000000000000000000
(3)最大负数
x=-1.0×2-128
11111111111111111111111111111
(4)最小负数
x=-[1+(1–2-32)]×2127
11.设[X]补=01111,[Y]补=11101,用带求补器的补码阵列乘法器求出乘积
X·Y=?
并用十进制数乘法验证。
解:
设最高位为符号位,输入数据为[x]补=01111[y]原=11101
算前求补器输出后:
x=1111y=1101
1111
×1101
1111
0000乘积符号位运算:
1111x0⊕y0=0⊕1=1
+1111
11000011
算后求补级输出为00111101,加上乘积符号位1,最后得补码乘积值为
10011101。
利用补码与真值的换算公式,补码二进制数的真值是:
x×y=-1×28+1×25+1×24+1×23+1×22+1×20=-195
十进制数乘法验证:
x×y=(+15)×(-13)=-195
12.将十进制数20.59375转换成32位浮点数的二进制格式来存储。
解:
先将十进制数转换为二进制数:
(20.59375)10=(10100.10011)2
然后移动小数点,使其在1,2位之间
10100.10011=1.0010011×24,e=4
于是得到S=0,E=4+127=131M=01001011
最后得到32位浮点数的二进制格式为:
010000010101001001100000000000000=(41A4C000)16
第4章主存储器
1.设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。
存储周期T=200ns,数据总线宽度为64位,总线周期τ=50ns.问顺序存储器和交叉存储器的带宽各是多少?
解:
信息总量:
q=64位×4=256位
顺序存储器和交叉存储器读出4个字的时间分别是:
t2=mT=4×200ns=8×10–7(s)
t1=T+(m–1)τ=200+3×50=3.5×10–7(s)
顺序存储器带宽是:
W1=q/t2=32×107(位/S)
交叉存储器带宽是:
W2=q/t1=73×107(位/S)
2.某机字长32位,常规设计的存储空间≤32M,若将存储空间扩至256M,请提出一种可能方案。
解:
可采用多体交叉存取方案,即将主存分成8个相互独立、容量相同的模块M0,M1,M2,…M7,每个模块32M×32位。
它各自具备一套地址寄存器、数据缓冲寄存器,各自以同等的方式与CPU传递信息,其组成结构如图B3.3:
图B3.3
CPU访问8个存贮模块,可采用两种方式:
一种是在一个存取周期内,同时访问8个存贮模块,由存贮器控制它们分时使用总线进行信息传递。
另一种方式是:
在存取周期内分时访问每个体,即经过1/8存取周期就访问一个模块。
这样,对每个模块而言,从CPU给出访存操作命令直到读出信息,仍然是一个存取周期时间。
而对CPU来说,它可以在一个存取周期内连续访问8个存贮体,各体的读写过程将重叠进行。
3.图B5.1所示为存贮器的地址空间分布图和存贮器的地址译码电路,后者可在A组跨接端和B组跨接端之间分别进行接线。
74LS139是2:
4译码器,使能端G接地表示译码器处于正常译码状态。
要求:
完成A组跨接端与B组跨接端内部的正确连接,以便使地址译码电路按图的要求正确寻址。
图B5.1
解:
根据图中已知,ROM1的空间地址为0000H——3FFFH,ROM2的地址空间地址为4000H——7FFFH,RAM1的地址空间为C000H——DFFFH,RAM2的地址空间为E000H——FFFFH。
对应上述空间,地址码最高4位A15——A12状态如下:
0000——0011ROM1
0100——0111ROM2
1100——1101RAM1
1110——1111RAM2
2:
4译码器对A15A12两位进行译码,产生四路输出,其中:
y0=00对应ROM1,
y1=01对应ROM2,y3=11对应RAM1和RAM2。
然后用A13区分是RAM1(A13=0)
还是RAM2(A13=1),此处采用部分译码。
由此,两组端子的连接方法如下:
1——6,2——5,3——7,8——12,11——14,9———3
4.已知某8位机的主存采用半导体存贮器,地址码为18位,若使用4K×4位RAM芯片组成该机所允许的最大主存空间,并选用模块条的形式,问:
(1)若每个摸条为32K×8位,共需几个模块条?
(2)每个模块内共有多少片RAM芯片?
主存共需多少RAM芯片?
CPU如何选择各模块条?
解:
(1)由于主存地址码给定18位,所以最大存储空间为218=256K,主存的最大
容量为256KB。
现每个模块条的存储容量为32KB,所以主存共需256KB/32KB=8
块板。
(2)每个模块条的存储容量为32KB,现使用4K×4位的RAM芯片拼成4K×8
位(共8组),用地址码的低12(A0——A11)直接接到芯片地址输入端,然后用地址的高3位(A14——A12)通过3:
8译码器输出分别接到8组芯片的选片端。
共有8×2=16个RAM。
(3)
据前面所得,共需8个模条,每个模条上有16片芯片,故主存共需8×16=128片
RAM芯片。
5.图B6.1是某SRAM的写入时序,其中R/W是读、写命令控制线,当R/W线为低电平时,存贮器按给定地址把数据线上的数据写入存贮器。
请指出图中时序的错误,并画出正确的写入时序。
图B6.1
解:
写入存贮器时时序信号必须同步。
通常,当R/W线加负脉冲时,地址线和数据线的电平必须是稳定的。
当R/W线一达到逻辑0电平时,数据立即被存贮。
因此,当R/W线处于低状态时,如果数据线改变数值,那么存贮器将存贮新的数据⑤。
同样,当R/W线处于低状态时,地址发生了变化,那么同样的数据将存贮到新的地址(②或③)。
正确的写入时序图如下图所示:
图B6.3
6.什么是闪速存储器?
它有那些特点?
解:
闪速存储器是高密度、非易损性的读/写半导体存储器。
从原理上看,它属于ROM型存储器,但是它又随时改写信息;从功能上看,它又相当于RAM,所以传统ROM与RAM的定义和划分已失去意义,因而是一种新型的存储器技术。
闪速存储器的特点:
(1)固有的非易失性;
(2)廉价的高密度;
(3)可直接执行;
(4)固态性能;
7.用16K×1位的DRAM芯片构成64K×8位的存贮器。
要求:
(1)画出该寄存起组成的逻辑框图。
(2)设存贮器读/写周期均为0.5μs,CPU在1μs内至少要访存一次。
试问采用哪种刷新方式比较合理?
两次刷新的最大时间间隔是多少?
对全部存贮单元刷新一遍,所需实际刷新时间是多少?
解:
(1)根据题意,存贮器总量为64KB,故地址线总需16位。
现使用16K×1位的动态RAM芯片,共需32片。
芯片本身地址线占14位,所以采用位并联与地址串联相结合的方法来组成整个存贮器,其组成逻辑框图如图B9.3,其中使用一片2:
4译码器。
(2)根据已知条件,CPU在1μs内至少需要访存一次,所以整个存贮器的平均读/写周期与单个存贮器片的读/写周期相差不多,应采用异步刷新比较合理。
对动态MOS存贮器来讲,两次刷新的最大时间间隔是2ms。
RAM芯片读/写周期为0.5μs,
假设16K×1位的RAM芯片由128×128矩阵存贮元构成,刷新时只对128行进行异步方式刷新,则刷新间隔为2m/128=15.6μs,可取刷新信号周期15μs。
图B9.3
8.某机器中,已知配有一个地址空间为(0000—1FFF)16的ROM区域,现在用一个SRAM芯片(8K×8位)形成一个16K×16位的ROM区域,起始地址为(2000)16。
假设SRAM芯片有CS和WE控制端,CPU地址总线A15——A0,数据总线为D15——D0,控制信号为R/W(读/写),MREQ(当存储器读或写时,该信号指示地址总线上的地址是有效的)。
要求:
(1)满足已知条件的存储器,画出地址码方案。
(2)画出ROM与RAM同CPU连接图。
解:
存储器地址空间分布如图B18.2所示,分三组,每组8K×16位。
由此可得存储器方案要点如下:
(1)组内地址:
A12——A0(A0为低位);
(2)组号译码使用2:
4译码器;
(3)RAM1,RAM2各用两片SRAM芯片位进行并联连接,其中一片组成高8位,另一片组成低8位。
(4)用MREQ作为2:
4译码器使能控制端,该信号低电平(有效)时,译码器工作。
(5)PU的R/W信号与SRAM的WE端连接,当R/W=1时存储器执行读操作,当R/W=0时,存储器执行写操作。
如图B18.3
图B18.2
图B18.3
第5章指令系统
1.令格式如下所示,OP为操作码字段,试分析指令格式特点。
312622181716150
OP————源寄存器变址寄存器偏移量
解:
(1)操作码字段为6位,可指定26=64种操作,即64条指令。
(2)单字长(32)二地址指令。
(3)一个操作数在原寄存器(共16个),另一个操作数在存储器中(由变址寄
存器内容+偏移量决定),所以是RS型指令。
(4)这种指令结构用于访问存储器。
2.指令格式如下所示,其中OP为操作码,试分析指令格式特点。
181211109540
OP
———
源寄存器
目标寄存器
解:
(1)单字长二地址指令。
(2)操作码字段OP可以指定27=128条指令。
(3)源寄存器和目标寄存器都是通用寄存器(可分别指定32个),所以是RR型指令,两个操作数均存在寄存器中。
这种指令结构常用于算术逻辑类指令。
3.指令格式如下所示,OP为操作码字段,试分析指令格式的特点。
1510987430
OP源寄存器基值寄存器
位移量(16位)
解:
(1)双字长二地址指令,用于访问存储器。
(2)操作码字段OP为6位,可以指定26=64种操作。
(3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由基值寄存器
和位移量决定),所以是RS型指令。
4.某计算机字长16位,主存容量为64K字,采用单字长单地址指令,共有64条指令,试采用四种寻址方式(立即、直接、基值、相对)设计指令格式。
解:
64条指令需占用操作码字段(OP)6位,这样指令余下长度为10位。
为了覆盖主存64K字的地址空间,设寻址模式(X)2位,形式地址(D)8位,其指令格式如下:
15109870
OP
X
D
寻址模式定义如下:
X=00直接寻址有效地址E=D(256单元)
X=01间接寻址有效地址E=(D)(64K)
X=10变址寻址有效地址E=(R)+D(64K)
X=11相对寻址有效地址E=(PC)+D(64K)
其中R为变址寄存器(16位),PC为程序计数器(16位),在变址和相对寻址时,位移量D可正可负。
5.假设机器字长16位,主存容量为128K字节,指令字长度为16位或32位,共有128条指令,设计计算机指令格式,要求有直接、立即数、相对、基值、间接、变址六种寻址方式。
解:
由已知条件,机器字长16位,主存容量128KB/2=64KB字,因此MAR=18位,共128条指令,故OP字段占7位。
采用单字长和双字长两种指令格式,其中单字长指令用于算术逻辑和I/O类指令,双字长用于访问主存的指令。
OPR1R2
OPXR2
D
15954320
159865320
寻址方式由寻址模式X定义如下:
X=000直接寻址E=D(64K)
X=001立即数D=操作数
X=010相对寻址E=PC+DPC=16位
X=011基值寻址E=Rb+D,Rb=16位
X=100间接寻址E=(D)
X=101变址寻址E=RX+D,RX=10位
6.RISC机中一些指令没有选入指令系统,但很重要,使用指令集中的另外一条指令来替换实现。
下表左半部分列出5条指令的功能,请在表的右半部分填入SPARC机的替代指令及实现方法。
指令功能替代指令实现方法
MOV寄存器间传送数据
INC寄存器内容加1
DEC寄存器内容减1
NEG取负数
NOT取反码
解:
因为SPARC机约定R0的内容恒为0,而且立即数作为一个操作数处理,所以
某些指令可以替代实现。
由此可体会到“精简指令系统”的含义和用意。
指令功能替代指令实现方法
ADD(加法)Rs+R0Rd
ADD(加法)立即数imm13=1,做为操作数
SUB(减法)立即数imm13=-1,做为操作数
SUB(减法)R0+RsRd
XOR(异或)立即数imm13=-1,做为操作数
ADD(加法)R0+R0Rd
7.下表列出pentium机的9种寻址方式名称及有关说明,请写出对应寻址方式的有效地址E的计算方法。
Pentium机寻址方式
序号
寻址方式名称
说明
(1)
立即
操作数在指令中
(2)
寄存器
操作数在某寄存器中,指令给出寄存器号
(3)
直接
Disp为偏移量
(4)
基值
B为基值寄存器
(5)
基值+偏移量
(6)
比例变址+偏移量
I为变址寄存器,S为比例因子
(7)
基值+变址+偏移量
(8)
基值+比例变址+偏移量
(9)
相对
PC为程序计算器
解(3)E=Disp
(4)E=(B)
(5)E=(B)+Disp
(6)E=(I)×S+Disp
(7)E=(B)+(I)+Disp
(8)E=(B)+(I)×S+Disp
(9)指令地址=(PC)+Disp
8.一种二地址RR型,RS型指令结构如下所示
6位4位4位1位2位16位
OP
源寄存器
目标寄存器
I
X
D(偏移量)
其中源寄存器,目标寄存器都是通用寄存器,I为间接寻址标志位,X为寻址模