复习笔记|《计算机组成原理》第五章作业分析
1、高速缓冲存储器层次主要解决了CPU和主存速度不匹配的问题。
2、虚拟存储器层次主要解决了主存容量不够的问题。
3、动态RAM常用的三种刷新方式包括异步刷新、集中刷新、分散刷新
4、CPU能直接访问的是主存(包括RAM和ROM)、寄存器、Cache
5、一般的虚拟存储器系统是由主存-辅存两级存储器构成。
6、某计算机字长为32位,按字节编址,采用小端方式存放数据。假定有一个double型变量,其机器数表示为1122334455667788H。存放在从00008040H开始的连续存储单元中,则存储单元00008046H中存放的是22H。
解析:
字长32位:地址是32位,00008040H中每个数字占四位。
按字节编址:每个字节对应一个地址,所以十六进制中两个数字占一个字节。
小端方案是将高字节存放在高地址,低字节存放在低地址。
存放在00008040H单元中的数据是88H。依此类推,在00008046H中存放的数据为22H。
7、某80X86计算机32位,按字节编址,采用小端方案存放数据。若语句int i=0;对应指令的机器代码为C745FC00000000。语句int i=-64;对应指令的机器代码是C745FC C0 FF FF FF
解析:
语句int i=0:对应指令的机器代码为C745FC 00 00 00 00,最后32位数据为0。现语句int i=-64:对应指令的机器代码是C745FC C0 FF FF FF,最后32位表示数据-64(1111 1111 1111 1111 1111 1111 1100 0000B)采用小端方式存放。
8、某计算机主存容量为64KB,其中ROM区为4KB,其余为RAM区,按字节编址。现要用2K×8位的ROM芯片和4K×4位的RAM芯片来设计该存储器,则需要上述规格的ROM芯片数和RAM芯片数分别是2、30
解析:
不同类型的芯片分开计算,ROM为4KB/(2K×8)=2片。RAM区为64KB-4KB=60KB;60K×8/(4K×4)=30
9、某机器字长16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。假定取指令时,每取一个字节PC自动加1。若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转以后的目标地址是2008H
解析:
字长16位:地址是16位,2000H每个数字各占四位
相对寻址的有效地址计算为(PC)+A。每条指令长2字节,主存按字节编制,因此取出指令后当前PC=2002H,故目标地址为2002H+06H=2008H。
10、下列有关RAM和ROM的叙述中,正确的是I和II
l:RAM是易失性存储器,ROM是非易失性存储器
II:RAM和ROM都是采用随机存取的方式进行信息访问
III:RAM和ROM都可用作Cache
IV:RAM和ROM都需要进行刷新
解析:
一般Cache采用高速的SRAM制作,比ROM速度快很多,因此Ⅲ是错误的
RAM需要刷新,ROM不需要刷新
11、所谓存储容量一般是指主存存放二进制代码的总位数
12、DRAM属于随机存取存储器,EPROM是可擦除可编程的只读存储器.可以反复改写,但每次改写之前都需要擦除干净后,再在特殊环境下进行改写,而随机存储器要求可以随时读写,而且速度要求很快,所以不能当做随机存储器用
13、以下存储器构成的体系结构中,存储器存取速度由慢到快的排列顺序是辅存-主存-Cache-寄存器
14、某SRAM芯片,其容量为16K×8位,则其数据线和地址线的条数分别为地址线14根,数据线8根
解析:
存储容量为:\(2^{地址线}×数据线\)位
15、DRAM的刷新方式,是以行为单位进行的。
16、关于主存存取速度说法正确的是
- 存取时间分读出时间和写入时间两种。
- 通常存取周期大于存取时间。
- 存取时间又称为存储器的访问时间,是指启动一次存储器操作到完成该操作所需的全部时间。
- 存取周期(Memory Cycle Time)是指存储器进行连续两次独立的存储器操作所需的最短时间。
17、主存的基本构成:存储体、地址译码驱动电路、I/O和读写电路
18、某一静态RAM芯片,其容量为1K×4位,除电源和接地端外,该芯片引出线的最少数目为16
解析:
地址线10根+数据线4根+读写控制线WR+片选线1=16根。
19、下列说法正确
- 动态RAM的集成度高于静态RAM的集成度。
- 静态RAM的价格比动态RAM的价格高。
- 动态RAM的速度比静态RAM的速度低。
- 动态RAM行、列地址按先后顺序输送,减少了芯片引脚,封装尺寸也减少。
20、计算机的存储系统采用分级方式主要是为了解决容量、速度、价格三者之间的矛盾。
21、关于堆栈寻址,可以用寄存器或内存来实现堆栈,但不能用硬盘来实现堆栈。
22、程序的执行过程中,Cache与主存的地址映射由硬件自动完成。
23、为了提高存储器的带宽,可以采用的方式有增加存储字长、缩短存储周期、增加存储体。
24、ROM的存储信息在掉电后不易失,其中包括Flash Memory、EPROM。
25、静态RAM不需要刷新、动态RAM需要刷新。
26、某机存储字长64位,主存储器按字节编址。现有四种不同长度的数据:字节、半字(16位)、单字(32位)、双字(64位),请采用一种既节省存储空间,又能保证任一个数据都在单个存取周期中完成读写的方法将不同长度的数
据存入主存(采用大端方案)写出不同长度数据存放在主存中地址的限定要求(即第一个字节的地址)。
①字节数据的地址为任意。
②半字数据的起始地址为2的整倍数。
③单字数据的起始地址为4的整倍数。
④双字数据的起始地址为8的整倍数。
(2)画出将字节、双字、半字、单字、字节这5个数据依次存放在主存中的示意图(不能改变顺序)
27、1K×8的存储芯片共需地址线10根,数据输入/输出线8根。
28、现有1024×1的存储芯片,若用它组成容量为16K×8的存储器。试求:
(1)实现该存储器所需的芯片数量为128。
解析:
16K×8/(1K×1)=128
(2)若将这些芯片分装在若干块板上,若每块板的容量为4K×8。该存储器所需的地址码总位数是14;其中2
位用于选板;2位用于选片;10位用作片内地址。
解析:
16K×8=214×8,地址线为14根
16K×8/(4K×8)=4总共需要4块板子,则14根地址线的最高两位用于板选
16K×8/(1024×1)=32,也就是在每块板子内需要4×8块芯片,而每8个芯片组成8位,也就是位扩展, 当CPU访问该存储器时,其发出的地址和控制信号同时传给8个芯片,选中每个芯片的同一单元,相应单元的内容被同时读至数据总线的各位,或将数据总线上的内容分别同时写入相应单元。
也就是说需要4组,则用两位用于片选
14根地址线中,2位用于板选,2位用于片选,剩余的10位用于片内地址选择
29.设某机主存容量为4MB,按字节编址,Cache容量为16KB,每字块有8个字,每字32位,设计一个四路组相联映射(即Cache每组内共有4个字块)的Cache组织。
(1)主存地址为22位,Cache地址为14位。主存地址为:区号8位组号7位块号2位块内地址5位。
解析:
主存容量为4MB,按字节编址,所以主存地址为log(4M)=22位。
Cache容量为16KB,按字节编址,所以Cache地址为log(16K)=14位。
Cache容量为16KB,每字块有8个字,每字32位,Cache每组内共有4个字块,每组占4832/8=27,所以有16K/27=27组,所以组号7位。
每组有4块,所以块号两位。
块内地址为log(32)=5位
区号为22-7-2-5=8位
地址格式如图所示
(2)设Cache的初态为空,CPU依次从主存第0,1,2,..,99号单元读出100个字(主存一次读出一个字),并重复按此次序读8次,问命中率是98.4%。(请写百分数如99%)
解析:
读某块时若其不在Cache则将主存中所在的组里的块都装入到Cache中
由于每个字块有8个字,所以主存第0,1,2,..,99号字单元分别在字块0~12中,采用四路组相联映射分别映像到第0组到第12组中,但Cache起始为空,所以第一次读时每一块中的第一个单元没命中,但后面7次每个单元均可以命中
命中率=\(\frac{N_c}{N_c+N_m}=\frac{100-13+7×100}{8×100}=98.4\%\)
(3)若Cache的速度是主存的6倍,试问有Cache和无Cache相比,速度约提高5.47倍。
解析:
设Cache的存取周期为T,则主存的存取周期为6T。
有Cache的访存时间=T+(1-98.4%)×6T=1.096T
无Cache的访存时间=6T
所以速度提高倍数=6/1.096=5.47 倍
30、已知某机字长8位,现采用半导体存储器作主存,其地址码为16位,若使用1K×4的SRAM芯片组成该机所允许的最大主存空间,并采用存储模板结构形式。
(1)若每块模板容量为4K×8,共需16块存储模板。
解析:
地址线为16根,为216,为64K。字长为8位。
\(模板数量=\frac{64K×8}{4K×8}=16(个)\)
(2)画出一个模板内各芯片的连接逻辑图。
解析:
A9~A0是十根地址线,D0到D7是八根数据线
31.用容量为16K×1的DRAM芯片构成64KB的存储器。要求:
(1)画出该存储器的结构框图。
(2)设存储器的读、写周期均为0.5微秒,CPU在1微秒内至少要访存一次。则采用异步刷新方式比较合理;相邻两行之间的刷新间隔是15.625微秒;对全部存储单元刷新一遍所需的实际刷新时间是64微秒。
解析:
比较三种不同的刷新方式,可以发现不可采用集中刷新方式,因为集中刷新方式有死区,不能保证CPU在1ms内至少要访存一次。采用分散和异步刷新方式都可以,但异步刷新方式更合理
16K×1的DRAM芯片的内部结构为128×128的矩阵,所以:
假设允许刷新的最大间隔为2ms(一般是2ms,但是不知道这道题为什么所有单位都扩大为103倍)
两毫秒是个常数,题目没给就按两毫秒
相邻两行之间的刷新间隔=\(\frac{2s}{128}\)=15.625ms
全部存储单元刷新一遍所需的实际刷新时间=0.5ms×128=64ms
32、假定一个存储器系统支持4体交叉存取,某程序执行过程中访问地址序列为3,9,17,2,51,37,13,4,8,41,67,10,则哪些地址访问会发生体冲突?
17和9发生冲突
37和17发生冲突
13和37发生冲突
8和4发生冲突
解析:
对于4体交叉访问的存储系统,每个存储模块的地址分布为:
Bank0:0、4、8、12、16...
Bank1:1、5、9、13、17..37..41.
Bank2:2、6、10、14、18...
Bank3:3、7、11、15、19..51..67
如果给定的访存地址在相邻的4次访问中出现在同一个Bank内,就会发生访存冲突。所以,17和9、37和17、13和37、8和4发生冲突。
33.假定某机主存空间大小1GB,按字节编址地址映射为组相联方式。cache容量为64KB,块大小为128字节,共分64组,则主存地址为30位。Cache地址共有16位,组号为6位,块号为3位,块内地址为7位。因此主存地址格式中区号为14位,组号为6位,块号为3位,块内地址为7位。