计算机组成原理课件
第七章储存系统                          C ---SZU-- HUQB
7.1.在计算机中,为什么要采用多级结构的存储器系统?它们的应用是建立在程序的什么特性之上的?
答:在现代的计算机系统中,通常总是采用由三种运行原理不同,性能差异很大的存储介质分别构建高速缓冲存储器、主存储器和虚拟存储器,再将它们组成三级结构的统一管理、高度的一体化存储器系统。由高速缓冲存储器缓解主存储器读写速度慢,不能满足CPU运行速度需要的矛盾;用虚拟存储器更大的存储空间,解决主存储器容量小,存不下更大程序与更多数据的难题。
这种三级结构的存储器系统的运行原理,是建立在程序运行的局部性原理之上的。即在一小段时间内,运行的程序只使用少量的指令和少量的数据,而这少量的指令和少量的数据往往又集中在存储器的一小片存储区域中,指令顺序执行比转移执行的比例要大,故可以按对所使用的指令和数据的急迫和频繁程度,将其存入容量、速度、价格不同的存储器中,从而取得更高的性能价格比。主要体现在时间、空间、指令执行顺序三个方面。
7.2多级结构的存储器是由哪三级存储器组成的?每一级存储器使用什么类型的存储器介质,这些介质的主要特性是什么?在多级结构的存储器系统中,何谓信息的一致性原则和包含性原则?
答:三级存储器由高速缓冲储存器,主存储器,虚拟存储器组成。
使用的存储器介质:高速缓存SRAM、主存DRAM、虚存DISC。
这些介质的主要特性:高速缓存块传送、主存以页传送、虚存以文件传送;它们的速度依次降低,每位价格依次降低;它们的管理依次由硬件、OS、OS/用户;。
一致性原则:同一个信息会同时存放在几个级别的存储器中,此时,这一信息在几个级别的存储器中必须保持相同的值。
包含性原则:处在内层(更靠近CPU)存储器中的信息一定被包含在各外层的存储器中,即内层(更靠近CPU)存储器中的全部信息一定是各外层存储器中所存信息中一小部分的副本。
7.3比较DRAM和SRAM芯片的主要特性。
答:从所用的半导体生产工艺区分,存储器芯片又可以分为静态存储器和动态存储器两种类型。由于动态存储器集成度高,生产成本低,被广泛地用于实际要求更大容量的主存储器。静态存储器读写速度快,生产成本高,通常多用其实现容量可以较小的高速缓冲存储器。两者不同之处主要再现如下表:
7.6 主存ROM区的主要作用是什么?是不是计算机系统中都应有ROM存储区?
答:主存ROM区的主要用于存放内容固定不变的基本程序和数据。在一般的通用计算机中,ROM区存放的是操作系统的内核部分和系统刚加电时运行的硬件诊断和初始化程序,如所有IBM-PC系列微机的ROM区固化了基本的输入/输出系统程序(BIOS),它是微机的最底层的系统软件(程序)。一般而言计算机系统中都有ROM存储区,但不绝对。
3.8 答:因为DRAM集成密度高,功耗低,价格低,而当前的通用计算机主存容量要求很大 ,从性/价比等方面考虑都采用DRAM。教学计算机系统只是一个模型计算机其设计目标不是用于程序的运行而是帮助学生学习和理解计算机的基本结构和运行原理,其主存有几K~十几K就足够,选用SRAM主存结构简单成本低。
7.10为什么动态存储器会是破坏性读出?静态存储器又为什么读出操作不会破坏已存储的信息呢?什么是动态存储器的回写(预充电延迟)?它对存储器性能的影响是什么?
答:动态存储器的读操作过程时,当字线的高电平到来后,则T管导通,若电容中原存储有电荷(存储1信号),电容就要放电,则会使数据线的电位由高变低,使电容中原存储的电荷(存储1信号)丢失,这就是通常说的破坏性读出。
为了保持电容器原记忆内容,必须在读操作之后立刻跟随一次写回操作,这被称为预充电延迟。在预充电延迟完成之前,是不能开始下一次的读操作的,动态存储器的读写周期显然比它的数据读出时间长得多,也降低了存储器的运行速度。
静态存储器是用触发器线路记忆与读写数据的,它是通过检查哪一条位线上出现一个负脉冲来判断状态,即区分读出来的信号是1或是0,所以不会破坏已存储的信息 .
3.11 答:DRAM是利用MOSFET的栅、源电容来存放二进制信息,由于电容漏电,信息电荷会慢慢漏掉,所以外界按一定的规律,每隔一段时间(约2毫秒),按需要补足电容的信息电荷,此过程就是刷新。因为DRAM的刷新周期很短,以字为单元进行刷新,时间来不及,所以只能按行进行刷新。常用的刷新方式有2种:1 集中刷新;分散式刷新。前者刷新控制简单,但刷新期间CPU不能访问主存,影响工作,死区大;后者刷新控制复杂,需要有专门的控制器来完成刷新,其优点是刷新工作几乎一
点都不影响CPU对主存的访问。
7.12存储器读写操作时,地址信号、片选信号、读写命令、读出的数据或写入的数据,在时间配合上要满足些什么关系?(此题没布置做,但对理解主存工作过程有利)答:存储器读写操作时,地址信号、片选信号、读写命令、读出的数据或写入的数据,
它们之间在时序配合要满足以下这些条件:有了稳定的地址与片选信号才可以读;有了稳定的地址和写入的数据,再有了片选信号才能再给出写命令,以便保证无误的写操作。此外,这些信号应有一定的持续时间,以保证读写操作得以正常完成。
7.31
答: CACHE的的主要映像方式有:全相联映射,直接映射和组相联映射。
1 全相联映射关系:主存的任一块可装入(映射到)Cache  的任意一块的位置中. 主存块与Cache块之间没有任何约束关系.
全相联映射主存的字块可以和Cache的任何字块对应,利用率高,方式灵活但其使用成本太高,地址变换速度慢,只适用于小CACHE的场合。
2 直接映射关系:设Cache共划分成 2 r块, 主存的第 j 块只可装入(映射到)Cache的第 i 块的位置中.  映射关系为: i = j mode 2 r
特点:映射关系简单,硬件容易实现,地址变换快,但Cache的利用率较低,可能出现严重的块冲突,命中率大大下降。
3组相联映射“组间直接映射,组内全映射”
组相联映射关系:设Cache共划分成2c组,每组2r块。主存的第 j 块只可装入(映射到)Cache的第 i 组的位置中.映射关系为: i = j mode 2c。
特点:它是前两种方式的折衷方案。集中了两个方式的优点。成本也不太高,地址变换速度较快,主存利用率高,是最常用的方式。
7.33说明影响高速缓存命中率的因素都有哪一些,并简单解释一下的如何影响的。
答:影响cache命中率的因素有以下几点:
1.cache的容量:更大一点的cache容量,对提高命中率是有好处的,而容量达到一定大小之后,再增加其容量,对命中率的提高并不明显。
2. cache line size(每次与内存交换信息的单位量):由cache在命中的情况下,可以在0等待状态快速向CPU提供指令和数据,而一旦不命中,CPU就必须到主存去取信息,会增加几个等待状态。所以为减少访问内存的次数,可通过每次到内存取信息时,不是以一个字为单位,而是以几个字在主存与cache之间实现信息传送。Cache line size太大,会拖慢本次完成传送的进度,还可能出现cache中这多信息并不被CPU使用,造成费时费资源。
3.多级的cache结构:在已有cache存储器系统之外,再增加一个容量更大的cache。此时第一级cache中保存的信息第二级cache也保存,CPU访问第一级cache出现缺失时,就去访问第二级cache。若两个cache命中率为90%,两个合起来的命中率为99%,所以不可再增加第三级cache。
4.不同映像方式:全相联映象方式很难实用,直接映像方式命中率略低,多路组相联映像方式性能/价格比更好。
7.37 答:硬件上要求CPU中要设有虚拟存储部件,软件上要求有段表、页表等。
页式存储管理:是把虚拟空间和主存空间都分成大小相同的页(为二的整数幂个字),并以页为单位进行虚存与主存间的信息交换。
段式管理:把主存空间按段分配的存储管理方式。段的分界与程序的自然分界对应,段的逻辑独立性
使之易于管理、修改和保护,也便于多道程序共享;但容易在段间留下许多空余的零碎存储空间不好利用。影响主存储器的利用效率;
7.38说明段表的组成与逻辑段地址到内存物理地址的变换。
rom是什么答:段表也是一个特定的段,通常被保存在主存中。段表由多个入口(表项)组成,每个表项由3部分内容构成:段起始地址,段的长度,段的装入位。段起始地址给出的是本段在主存中的起始地址,该起始地址加上段内地址就得到本段的一个字在主存中的真正地址。段的长度用于主存使用的合法性检查,当出现段内地址超过段的长度时,就是主存使用中的一个地址越界错误。段的装入位用于判断本段是否已装入主存。
地址转换过程,从概念上讲可以用如下办法完成:把逻辑地址中的段号取来与段表基地址的内容相加,用相加之和作地址,到段表的一个表项,检查该表项中的装入位,其内容为1,表示该段已调入主存,从表项中取段的起始地址与逻辑地址中的段内地址相加,就得到一个数据在主存中的实际地址。若表项的装入位的值为0,表示该段尚未调入主存,则操作系统负责首先把该段从磁盘装入主存,并相应修改段表中的该表项内容,之后才可以完成地址转换过程。
7.39说明页表的组成与程序逻辑地址到内存物理地址的变换过程。快表是一定要有的吗?说明快表内容的组成与读写原理。
答:页表由若干表项组成,每个虚页号对应页表中的一个表项,表项的内容可以由如下一些部分组成:最重要的是一个虚页被分配在主存中的实际页号,还可能包括页装入(有效)位,修改标记位,替换控制位,其他保护位等组成的控制位字段。
地址变换过程:用虚地址中的虚页号与页表基地址相加,求出对应该虚页的页表表项在主存中的实际地址,从该表项的实页号字段取出实页号再拼上虚地址中的页内地址,就得到读主存数据用的实际地址。
为了解决当要读页内的某个存储单元时,需读两次主存才能取得要读的数据的问题(读两次主存过程:首先要读一次主存,通过查页表求出实存地址,然后再读一次主存),设立一个完全用快速硬件实现的容量很小的快速页表,又叫做转换旁路缓冲器,用于存放在页表中使用最频繁的、为数不多的那些表项的内容。
快表主要有虚页号和实页号两项内容。经快表实现的地址转换过程:用虚地址中的虚页号去与快表中虚页号字段的内容相比较,与哪个表项中的虚页号相同,则可以取出该表项中的实页号,并与页内地址拼接出主存实际地址。这一过程可以很快完成,类似于高速缓冲存储器的运行原理。当在快表中不到该虚页号时,就要到主存中经慢表出该虚页号对应的实页号,在得到一个主存实际地址的同时,并用该虚页号和实页号替换快表的一个表项的内容,以反映这次操作的形势。
补充题
1 有一个512K×16的存储器,由64K×1的2164RAM芯片构成(芯片内是4个128×128结构)。
(1) 总共需要多少个RAM芯片?
(2) 采用分散刷新方式,如单元刷新间隔不超过2ms,则刷新信号的周期是多少?
(3) 如采用集中刷新方式,设读/写周期T=0.1μs,存储器刷新一遍最少用多少时间? 答:(1) N=Mt/C1=(512k*16)/ (64k*1) =8*16=128( 片)
16 片为一组构成 64K*16,    共需512/64=8组(8组,每组16片)
(2)采用分布式刷新,在2ms把芯片中128行都刷新一遍,时间间隔为
2*103 / 128= 15.6(us),即可取刷新周期15us
(3)采用集中式刷新方式,每一个读/写周期T刷新一行,
即T2=128T=128*0.1=12.8(us)
2  设某计算机的cache采用直接映像,已知cache容量为16KB,主存容量为2MB,每个字块有8个字,每个字有32位。请回答:
(1) 主存地址多少位(按字节编址),各字段如何划分(各需多少位)?
(2)画出cache 的地址格式(按字节编址)。
(3) 主存地址为 12348H 的单元在主存的哪一块中?它可映射到Cache的哪一块中?
(4) 设cache起始为空,CPU从主存单元0,1,…,100。依次读出101个字(主存一次读出一个字),并重复按此次序数读11次,问命中率为多少?若cache速度是主存的5倍,问采用cache与无cache比较速度提高多少倍?
(1)(2)采用直接映像
Cach 16KB 每块8*4=32B=25B  (16KB=2 14 B)
Cache的块数 Nc=214/25  =  29块
Cache的地址格式
< -------14位------------ > 9位 5位
块号字号字节号
块号块内字节
9位 3位 2位 或
主存2MB=221B  区数221/214 =27
地址格式
7位 9位 3位 2位
区号块号字号字节号
〈―――――――――― 21位―――――――――――――〉
7位 9位 5位
区号块号块内字节
](3)根据直接映像的地址格式,主存地址12348H为
0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0    1 0 0 0
区号| 块号| 块内|
4    1 1 A
主存地址为12348H的单元在第四区的第11AH块中,该块可映射到Cache的第11AH 块中。[该单元在主存的第91AH块中(因为每区有29=200H块,4×200H+11A=91AH)] (4)(不管采用直接映像,全相联映像或组相联映像,本题的计算都相同)命中率 h=[(101-13)+101*10] / (101*11) =0.9883
t c=1/5 t m  t C m=t c+(1-h) t m=[1/5+13/(101*11)] t m=0.2117 t m
(或t cm=ht c+(1-h) t m=0.2093t m)
t m/ t C m=1/0.2117=4.724(倍)
3  设某计算机的cache采用全相联映像,已知cache容量为16KB,主存容量为1MB,

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。