计算机组成原理-第二版-唐朔飞著-课后习题详解(完整资料).doc 下载本文

内容发布更新时间 : 2024/12/23 19:23:17星期一 下面是文章的全部内容请认真阅读。

启动存储体0启动存储体1启动存储体2启动存储体3启动存储体4启动存储体5启动存储体6启动存储体7单体访存周期

23. 设CPU共有16根地址线,8根数据线,并用M/IO作为访问存储器或I/O的控制信号(高电平为访存,低电平为访I/O),WR(低电平有效)为写命令,RD(低电平有效)为读命令。设计一个容量为64KB的采用低位交叉编址的8体并行结构存储器。现

Ai A0 ...RAMOECEWE有下图所示的存储器芯片和138译码器。 画出CPU和存储器芯片(芯片容量自定)的连接图,并写出图中每个存储芯片的地址范围(用十六进制数表示)。 解:8体低位交叉并行存储器的每个存储体容量为64KB/8=8KB,因此应选择8KBRAM芯片,芯片地址线12根(A0-A12),数据线8根(D0-D7),用138译码器进行存储体的选择。设计如下:

Dn D0...+5V。G1G2A。Y7MREQA0A1A2A15.G2BABC74138。。。。Y3Y2Y1Y0..........RAM1......RAM2......RAM3...A3.....RAM0......A0 A12CEOEWED0 D7A0 A12CEA0 A12CEOEWED0 D7A0 A12CEOEWED0 D7A0 A12CEOEWED0 D7CPUD0OEWED0 D7RAM7..................D7..WRRD..........

24. 一个4体低位交叉的存储器,假设存储周期为T,CPU每隔1/4存取周期启动一个存储体,试问依次访问64个字需多少个存取周期?

解:4体低位交叉的存储器的总线传输周期为τ,τ=T/4,依次访问64个字所需时间为:

t=T+(64-1) τ=T+63T/4=16.75T

25. 什么是“程序访问的局部性”?存储系统中哪一级采用了程序访问的局部性原理?

答:程序运行的局部性原理指:在一小段时间内,最近被访问过的程序和数据很可能再次被访问;在空间上,这些被访问的程序和数据往往集中在一小片存储区;在访问顺序上,指令顺序执行比转移执行的可能性大 (大约 5:1 )。存储系统中Cache-主存层次和主存-辅存层次均采用了程序访问的局部性原理。

26. 计算机中设置Cache的作用是什么?能否将Cache的容量扩大,最后取代主存,为什么?

答:计算机中设置Cache的作用是解决CPU和主存速度不匹配问题。

不能将Cache的容量扩大取代主存,原因是:(1)Cache容量越大成本越高,难以满足人们追求低价格的要求;(2)如果取消主存,当CPU访问Cache失败时,需要将辅存的内容调入Cache再由CPU访问,造成CPU等待时间太长,损失更大。

27. Cache做在CPU芯片内有什么好处?将指令Cache和数据Cache分开又有什么好处?

答:Cache做在CPU芯片内主要有下面几个好处:

(1)可提高外部总线的利用率。因为Cache在CPU芯片内,CPU访问Cache时不必占用外部总线。

(2)Cache不占用外部总线就意味着外部总线可更多地支持

I/O设备与主存的信息传输,增强了系统的整体效率。

(3)可提高存取速度。因为Cache与CPU之间的数据通路大大缩短,故存取速度得以提高。

将指令Cache和数据Cache分开有如下好处:

1)可支持超前控制和流水线控制,有利于这类控制方式下指令预取操作的完成。

2)指令Cache可用ROM实现,以提高指令存取的可靠性。 3)数据Cache对不同数据类型的支持更为灵活,既可支持整数(例32位),也可支持浮点数据(如64位)。 补充:

Cache结构改进的第三个措施是分级实现,如二级缓存结构,即在片内Cache(L1)和主存之间再设一个片外Cache(L2),片外缓存既可以弥补片内缓存容量不够大的缺点,又可在主存与片内缓存间起到平滑速度差的作用,加速片内缓存的调入调出速度。

28. 设主存容量为256K字,Cache容量为2K字,块长为4。 (1)设计Cache地址格式,Cache中可装入多少块数据? (2)在直接映射方式下,设计主存地址格式。

(3)在四路组相联映射方式下,设计主存地址格式。 (4)在全相联映射方式下,设计主存地址格式。

(5)若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。 解:(1)Cache容量为2K字,块长为4,Cache共有2K/4=211/22=29=512块,

Cache字地址9位,字块内地址为2位

因此,Cache地址格式设计如下:

Cache字块地址(9位) 字块内地址(2位) (2)主存容量为256K字=218字,主存地址共18位,共分256K/4=216块,

主存字块标记为18-9-2=7位。

直接映射方式下主存地址格式如下:

主存字块标记(7Cache字块地址(9字块内地址位) 位) (2位) (3)根据四路组相联的条件,一组内共有4块,得Cache共

分为512/4=128=27组,

主存字块标记为18-7-2=9位,主存地址格式设计如下: 主存字块标记(9组地址(7位) 字块内地址(2位) 位) (4)在全相联映射方式下,主存字块标记为18-2=16位,其

地址格式如下:

主存字块标记(16位) 字块内地址(2位) (5)若存储字长为32位,存储器按字节寻址,则主存容量为256K*32/4=221B,

Cache容量为2K*32/4=214B,块长为4*32/4=32B=25B,

字块内地址为5位,

在直接映射方式下,主存字块标记为21-9-5=7位,主存

地址格式为:

主存字块标记(7Cache字块地址(9字块内地址位) 位) (5位) 在四路组相联映射方式下,主存字块标记为21-7-5=9

位,主存地址格式为:

主存字块标记(9位) 组地址(7位) 字块内地址(5位) 在全相联映射方式下,主存字块标记为21-5=16位,主

存地址格式为:

主存字块标记(16位) 字块内地址(5位)

29. 假设CPU执行某段程序时共访问Cache命中4800次,访问主存200次,已知Cache的存取周期为30ns,主存的存取周期为150ns,求Cache的命中率以及Cache-主存系统的平均访问时间和效率,试问该系统的性能提高了多少倍?

解:Cache被访问命中率为:4800/(4800+200)=24/25=96%

则Cache-主存系统的平均访问时间为: ta=0.96*30ns+(1-0.96)*150ns=34.8ns

Cache-主存系统的访问效率为:e=tc/ta*100%=30/34.8*100%=86.2%

性能为原来的150ns/34.8ns=4.31倍,即提高了3.31倍。

30. 一个组相连映射的CACHE由64块组成,每组内包含4块。主存包含4096块,每块由128字组成,访存地址为字地址。试问主存和高速存储器的地址各为几位?画出主存地址格式。 解:cache组数:64/4=16 ,Cache容量为:64*128=213字,cache地址13位

主存共分4096/16=256区,每区16块

主存容量为:4096*128=219字,主存地址19位,地址格式如下:

主存字块标记组地址(4位) 字块内地址(7(8位) 位)

31. 设主存容量为1MB,采用直接映射方式的Cache容量为16KB,块长为4,每字32位。试问主存地址为ABCDEH的存储单元在Cache中的什么位置? 解:主存和Cache按字节编址,

Cache容量16KB=214B,地址共格式为14位,分为16KB/(4*32/8B)=210块,每块4*32/8=16B=24B,Cache地址格式为: