计算机组成原理与系统结构课后作业答案(包健_冯建文版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《运算器》
P101 3.4写出下列各机器数的二进制真值X:
(1)[X]补=0,1001 X=1001
(2)[X]补=1,1001 X=-111
(3)[X]原=0,1101 X=1101
(4)[X]原=1,1101 X=-1101
(5)[X]反=0,1011 X=1011
(6)[X]反=1,1011 X=-100
(7)[X]移=0,1001 X=-111
(8)[X]移=1,1001 X=+1001
(9)[X]补=1,0000000 X=-10000000B,X=-128
(10)[X]反=1,0000000 X=-1111111B,X=-127
(11)[X]原=1,0000000 X=-0
(12)[X]移=1,0000000 X=0
P156 4.1X=0.1101 Y=-0.0110(设机器数长度为8位)[X]补=0.1101000
[-X]补=1.0011000
[2X]补=溢出
[-2X]补=溢出
[X/2]补=0.0110100
[-X/2]补=1.1001100
[Y]补=1.1010000
[-Y]补=0.0110000
[2Y]补=1.0100000
[-2Y]补=0.1100000
[Y/2]补=1.1101000
[-Y/2]补=0.0011000
[-Y/4]补=0.0001100
(1) X=-25/64=-0.011001B ,Y=2.875=10.111B
[X]浮=0,11111 1.11001=7F9H [Y]浮=1,00010 0.10111=897H (2) [Z]浮=9F4H=1,00111 1.10100=-80
P102:9、机器数字长16位 (1) 无符号整数:12
~016
-
(2) 原码表示的定点整数:1,111…11~0,111…11即12~)12(1515--- (3) 补码表示的定点整数:1,00…000~0,111…11即12~2
1515
--
(4) 补码表示的定点小数:1.00…000~0.111…11即15
21~1---
(5) 非规格化浮点数:E
R M N ⨯=
最大数=1
2
77
2)21(--⨯-
最小数=1
272
1-⨯-
最大负数=7
27
2
2
--⨯-
最小正数=7
27
22
--⨯
(6) 最大数=1
2
77
2)21(--⨯-
最小数=1
272
1-⨯-
最大负数=7
2712)22(---⨯+-
最小正数=7
21
2
2--⨯
(1)(2)
P156:4-1
4-2
P156:5
5-1补码BOOTH算法
5-2补码BOOTH算法
P156:6、
6-1原码恢复余数算法
6-2原码加减交替算法
P156 7-1补码加减交替算法
7-2补码加减交替算法
P156:4.8
(1)X=-1.625=-1.101B Y=5.25=101.01B X+Y
X-Y:
1、对阶同上
2、尾数相减:11.1100110
+ 11.01011
[E X-Y]补= 11.0010010
3、结果不需规格化
4、舍入处理:[E X-Y]补=1.00101
[X-Y] = 0,0011 1,00101
X=0.2344 = 0.00111 Y= -0.1133=-0.00011
X-Y:
1、对阶同上
2、尾数相减:00.11100
+ 00.01100
[E X-Y]补= 01.01000 发生正溢
尾数右移,阶码加1
[E X-Y]补= 0.10100
[M x-y] = 1.1111
3、结果不需规格化
4、舍入处理:[E X-Y]补=0.10100
[X-Y] = 1,1111 0,10100
(1)X=5.25=101.01B Y=-1.625=-1.101B X*Y
9-1 X/Y:
9-2 X*Y
9-2 X/Y
《存储体系》
P225:2、 (1) 片6416411616
64=⨯=⨯⨯K K
(2) s ms
μ625.15128
2=
(3) s ns μ64500128=⨯ P225:3、
(1) 最大主存容量=bit 16218
⨯
(2) 共需
片6416416416218=⨯=⨯⨯bit
K bit
芯片;若采用异步刷新,则刷新信号的周期为s ms
μ625.15128
2= (3) 每块8字节,则Cache 容量为
行925128162==⨯Byte
bit
K ,即c=9,Cache 采用2路
组相联映射,则r=1。
主存容量为块161828162=⨯Byte
bit
,即m=16。
每块包含4个字,
每字包含2个字节。
标记行0标记行11
标记行21
标记行3
…
28
-1
标记
行29
-2
标记
行29 -1
Cache Cache
主存01 (2)
8
主存字块标记
组地址
块内字地
址
8
8
2
主存字地址
16
主存字块标记
组地址
块内字地
址
8
8
2
主存字节地址
16
字内字节地址
1
主存字地址=462EH=00 0100 01,10 0010 11,10;因此该字映射到Cache 的第139组。
(4) 分析地址:
A 15A 14A 13A 12A 11A 10A 9A 8A 7A 6A 5A 4A 3A
2
A 1A 0最小128K RAM
000
0000000000000
11
1
1
1
1
1
1
1
1
1
1
1
1
1
11
1
1
1
1
1
1
1
1
1
1
1
1
1110000000000000… …… …
… …A 17A 1600最高端8K ROM
1
1
111
1
1
1保留区
128K 的RAM 区由
片162881616128=⨯=⨯⨯bit
K bit
K SRAM 芯片构成;分为8组,组与组之间
进行字扩展;每个组内有2片进行位扩展。
P225:5、
平均访问时间)()1()1()()1(p c m m c c m m c c c a t t t h h t t h h t h t ++⨯-⨯-++⨯⨯-+⨯= 其中:t a —— 平均访问时间;t c —— Cache 的存储周期;t m —— 主存的存储周期;t p —— 磁盘的存储周期;h c —— Cache 的命中率;h m —— 主存的命中率。
所以,
ns
ns ns ns ns t ns ns ns ns t a a 74482.38.418)120080(%40%1080%60%1020%90=+++=+⨯⨯+⨯⨯+⨯=
P168:6、 命中率%5.97%100100
39003900
=⨯+=
h
平均访问时间
ns
ns ns ns ns t t h t h t a m
c a 45639240%5.240%5.97)1(=+=⨯+⨯=⨯-+⨯=
e = t c /t a =40/45=8/9
P168:7、
4路组相联映射,所以r=2 每块4字,所以b=2; 每字32位,所以每字包含4字节。
Cache 容量为
行行字节
字节
92512448==⨯K ,故c=9
主存容量为
块块字节
字节
20214416==⨯M M ,故m=20
标记行0标记行31标记行4
标记行7
…
27
-1
标记
行29
-4
标记
行29 -1
Cache Cache
主存01 (213)
…
………
(1) Cache 共分为:2c-r
= 2
9-2
= 128组。
(2)
主存字块标记
组地址
块内字地
址
13
7
2
主存字节地址
20
字内字节地址
2
P226:8、
4路组相联映射,所以r=2 每块64字,所以b=6; Cache 容量为
行字
字
72648=K ,故c=7 主存容量为
块字
字
12264256=K ,故m=12
标记行0标记行31标记行4
标记行
7
…
25
-1
标记
行27
-4
标记
行27 -1
Cache Cache
主存01 (2)
7
…
………
主存字地址0~8447,位于主存的哪几块内呢?
132648448=字字,即主存的第0~8447字位于连续的132块内。
4421325余商块
块
=,因此这
132块连续分布在第0~4大组内,其中在第4大组中只有4块。
CPU 第1次依次访问主存的0~8447字时不命中132次。
Cache 的变化如图所示
CPU 从第2次开始直到第21次访问主存的0~8447字时,每轮不命中20次(从第0~4大组的前4块都不命中,其余都命中),Cache 的变化如图所示
Cache
第0大组
第1
大组第2大组
第3大组第4大组主存Cache Cache Cache Cache Cache Cache
因为10
m
c t t =
, 命中率%7.99%100177408
176876
%1002184482020132218448=⨯=⨯⨯⨯--⨯=
h
设使用Cache 比不使用Cache 在速度上提高x 倍,则
倍7.910
11)1(10)
()1(=⨯⨯-+⨯=
+⨯-+⨯=
m m m
c m c m
t h t h t t t h t h t x
《指令系统》
12、
地址
0019H
001AH
第一条转移指令:
0019H
001AH
(PC)=001AH,执行该JMP指令后(PC)=001AH+0006H=0020H
第二条转移指令:
0019H
001AH
(PC)=001AH,执行该
13、
寄存器-存储器型指令是指一个操作数来自寄存器,另一个操作数来自存储器。
间接寻址时EA=(ADDR),因此操作数地址存放在主存地址为0~219-1的单元内,假设存储器按字编址,则EA应该是32位的地址,则主存最大存储空间为232字。
(2)其实用32位通用寄存器做基址寄存器,类似于80X86机器上存储器分段管理。
EA=32位基地址+偏移地址,所以EA是32位,则主存最大存储空间为232字。
16、设某机寄存器字长16位,用16进制表示,已知:变址寄存器内容为0004H,PC 的内容为0003H,内存中部分单元内容如下:
地址:内容地址:内容
0002H:000AH 0007H:000AH
0003H:0002H 0008H:0002H
0004H:0007H 0009H:0003H
0005H:0004H 000AH:0009H
0006H:0005H 000BH:0008H
若
某机器字长16位,采用单字长指令,每个地址码6位。
试采用操作码扩展技术,设计14条二地址指令,80条一地址指令,60条零地址指令。
请给出指令编码示意图。
设某8位计算机,除HALT 指令外,指令均为双字长,格式如下:
其中,
问:CPU 启动执行指令到停机,期间执行了哪几条指令?写出每条指令的功能、寻址方式、操作数及执行结果。
解:由于(PC )=22H ,即程序的第一条指令地址为22H ,从22H 开始,执行到2DH (HALT 指令)为止,共五条指令。
经分析,所有指令的目的操作数的寻址方式均为寄存器寻址方式,为R1。
下面列出每条指令的功能、源操作数的寻址方式、源操作数及执行结果。
《控制器》
6、设某机平均执行一条指令需要两次访问内存,平均需要三个机器周期,每个机器 周期包含4个节拍周期。
若机器主频为25MHz ,试回答:
1)若访问主存不需要插入等待周期,则平均执行一条指令的时间为多少? 2)若每次访问内存需要插入2个等待节拍周期,则平均执行一条指令的时间是
又多少?
解:(1)
MHz
251
1==
主频时钟周期 s μ48.043=⨯⨯=时钟周期平均指令周期
(2)
s μ64.02243=⨯⨯+⨯⨯=时钟周期时钟周期平均指令周期
7、设某机主频为8MHz ,每个机器周期包含4个节拍周期,该机平均指令执行速度为1MIPS 。
试回答:1)该机的平均指令周期是多少时间?2)平均每条指令周期包含几个机器周期? 解:(1)s μ11
==
机器速度
平均指令周期
(2)2
84
=⇒∙==
χχ机器周期平均每条指令机器周期MHz
8、参见图7-41的数据通路,指令“INC R1”将R1寄存器的内容加1,画出其指令周期微程序流程图,并根据表7-11和表7-12写出每一条微指令码。
解:INC R1;(R1)+1→R1
9、根据图7-41所示的模型机结构和数据通路,写出以下指令从取址到执行的全部微操作序列,说明各条指令需要哪几个机器周期,需要几次访问内存及完成什么操作。
1)SUB A,R ,该指令完成(A)-R→(A),源操作数一个为寄存器寻址,目标操作数为指令提供的内存有效地址A。
2)JMP 偏移量,该指令完成PC+偏移量→PC。
解:(1)SUB A,R ;(A)-R→(A)
所以,共需要8个机器周期,共访存4次。
(2)JMP DISP;(PC)+DISP→PC
所以,共需要7个机器周期,共访存2次
10、假设某机器主要部件有:程序计数器PC、指令寄存器IR、通用寄存器R0~R3、暂存器DD1和DD2、ALU、移位器、存储器地址寄存器MAR及存储器M。
1)要求采用单总线结构,画出包含上述部件的逻辑框图,并注明数据流动方向。
2)画出ADD (R1),(R2)指令在取指和执行阶段的操作步骤流程图。
R1寄存器存放目标操作数地址,R2寄存器存放源操作数地址。
3)写出各操作步骤所需的全部微操作命令。
解:(1)
(2)
(3)
取ADD指令的微指令
①PC-B#、B-MAR、PC+1
②M-R#、B-IR
③指令译码信号MAP#有效
执行ADD指令的微指令
①R2-B#、B-MAR
②M-R#, B-DD1
③R1-B#、B-MAR
④M-R#, B-DD2
⑤“+”,ALU-B#,M-W#
11、假设某机共有76条指令,平均每一条指令由11条微指令组成,其中有一条取指令的微指令是所有指令公共的,该机共有微命令31个,微指令的微操作码采用直接控制法。
试问:1)该机微指令长度为多少?
2)控制存储器的容量应为多少?
解:设微指令共有N条,N=76*11-75=761条;下址字段长为X位,2X ≥761,则X≥10(1)所以,该机微指令长度=31+10=41位
(2)控制存储器的容量应该≥761×41位,取1024×41位。
12、某机采用微程序控制方式,其存储器容量为512×48(位),微程序在整个控制存储器中实现转移,可控制微程序的条件共4个,判别测试字段采用编译法。
微指令采用水平型格式,后继微指令地址采用判定方式,如图所示:
(1)微指令中的三个字段分别应多少位?
(2)画出对应这种微指令格式的微程序控制器逻辑框图。
解:(1)22
9(2)
图7-20 判定方式产生后继微地址的原理图
开机置微地址初值
14、图7-46为某模型机的微程序流程图,图中每一个框表示一条微指令。
在点(1)处为指令译码后转入指令的微程序入口的多路分支点,由指令寄存器IR 的I 5I 4两位来决定转入哪一个入口。
在点(2)处根据状态条件F 实现条件转移,微指令中判断测试位为直接控制法。
控存容量能容纳图7-46所列出的微指令即可。
1)微指令的判断测试位需要几位二进制?微指令的下址字段需要几位? 2)在图中标出每条微指令的微地址。
3)写出每条微指令的下址字段内容及判断测试字段码。
4)画出微地址转移逻辑电路图。
解:所列出的微指令共25条,控存容量能容纳这25条微指令即可,则下址字段长5位; (1)因为微指令中判断测试
位为直接控制法,只有2种转
移测试和顺序执行,所以判断测试位需要3位二进制。
(2)假如微指令B 的下址字段为10000B ,设微程序入口地址根据I 5I 4两位修改微指令B
的下址字段的末两位,则微程序入口地址=100 I 5I 4 B 。
假如微指令G 的下址字段为11000B ,设条件转移地址根据
F 位修改微指令
G 的下址字段的第1位,则条件转移地址=1100F B 。
则每条微指令的微地址如图所示。
(3) 设3位判断测试字段码:
(4)
图7-20 判定方式产生后继微地址的原理图
开机置微地址初值。