第七章 存储系统.ppt
《第七章 存储系统.ppt》由会员分享,可在线阅读,更多相关《第七章 存储系统.ppt(110页珍藏版)》请在麦多课文档分享上搜索。
1、第七章 存储系统,7.1 存储系统的层次结构 7.2 高速缓冲存储器(cache) 7.3虚拟存储器 7.4相联存储器 7.5存储保护,学习目的 1. 掌握存储系统的层次结构,分析层次结构的目的和实现方式。 2. 掌握高速缓冲存储器的原理、基本结构和cache的存储器组织。 3. 掌握虚拟存储器信息传送单位和存储管理和虚拟存储器工作的全过程。 4. 了解相联存储器和存储保护。,重点 1.层次结构的目的和实现方式。 2.高速缓冲存储器的原理、基本结构和cache的存储器组织。 3.虚拟存储器信息传送单位和存储管理以及虚拟存储器工作的全过程。难点 1.cache的存储器组织。 2.虚拟存储器工作的
2、全过程。,7.1 存储系统的层次结构,CPU,CACHE,主存(内 存),辅存(外 存),存储体系:把各种不同存储容量、不同存取速度、不同价格的存储器,组成层次结构,并通过管理软件和辅助硬件将不同性能的存储器组合成有机的整体,称为计算机的存储层次或存储体系。,cache,1 主存与辅存之间的关系,主存(半导体) 优:速度快 缺:容量受限,单位成本高,断电丢失信息 辅存(光盘,磁盘) 优:容量大,信息长久保存,单位成本低. 缺:存取速度慢 虚拟存储系统速度接近于主存的速度,容量接近于辅存的容量,每位平均价格接近于辅存平均价格(大容量低成本)。 虚地址经辅助软、硬件变换成实地址。,2 主存和高速缓
3、存之间的关系,Cache引入 为解决CPU和主存之间的速度差距,提高整机的运算速度,在CPU和主存之间插入的由高速电子器件组成的容量不大,但速度很高的存储器作为缓冲区。 解决了速度与成本之间的矛盾(速度接近cache,容量与每位价格接近于主存)。 Cache特点 存取速度快,容量小,存储控制和管理由硬件实现,较低级:与处理器较远的存储级-容量较大、速度较慢、使用较廉价的技术工艺,存储器系统的层次结构的特点:,在任何指定时间,数据只能在相邻的两级之间拷贝:,较高级:与处理器较近的存储级- 容量较小、速度较快、使用较昂贵的技术工艺,层次化存储系统,访存局部性 时间局部性 空间局部性 层次化结构 c
4、ache 主存 辅存,容量和存取时间增加,每位价格增加,1.包含性,2. 相邻层之间的数据传送单位 CPU高速缓存:字 高速缓存主存储器:块(每块32个字节(4个字) 主存磁盘:页面(比如每页4K字节,包含128块) 磁盘磁带:段,M0 M1 M2 Mn 所有信息项最初存放在最外层Mn,在处理过程中,它的子集复制到Mn-1,同样, Mn-1的子集复制到Mn-2,如果在Mi中找到一个信息字,那么同一个字的复制品在所有的高层Mi+1,Mi+2,Mn中都一定可以找到。,M1:高速缓存,a,b为高速缓存 块,32个字节,M2:主存储器,M3:磁盘存储器,M4:磁带机 后援存储器,7.2 高速缓冲存储器
5、Cache,一、cache存储器工作原理程序访问的局部性在较短时间内由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。(指令分布的连续性和循环程序及子程序的多次执行)这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象就称为程序访问的局部性。 时间局部性:如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。(程序循环、堆栈) 空间局部性:在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。(指令顺序执行、数组存放),根据局部性原理,可以在主存和CPU之间设置一个高速的容量相对较小的存储器,如果当前正在执行的程序和数据存放在这个存储器中,在
6、程序运行时,不必从主存储器取指令和取数据,只需访问这个高速存储器,以提高程序运行速度。这个存储器称作高速缓冲存储器Cache。Cache由高速的SRAM组成,它的工作速度数倍于主存,全部功能由硬件实现,并且对程序员是透明的。,cache的基本结构,它由cache存储体、地址映象变换机构、cache替换机构几大模块组成。,Cache概念:(1)CPU与主存储器之间的一种高速缓冲装置;(2)Cache-主存层次结构:由硬件变换地址和控制调度。 Cache具有如下特点: 位于CPU与主存之间,是存储器层次结构中级别最高的一级; 容量比主存小,目前一般有数到数; 速度一般比主存快倍,通常由存储速度高的
7、双极型三极管或SRAM组成; 其内容是主存的部分副本; 其用途可用来存放指令,也可用来存放数据; 快存的功能全部由硬件实现,并对程序员透明。,cache的命中,任何时候都有一些主存块处在Cache中。 当CPU发出读请求时,将主存地址m位(或m位中的一部分)与Cache某块的标记相比较,根据其比较结果是否相等而区分出两种情况: (1)当比较结果相等时,说明需要的数据已在Cache中,那么直接访问Cache就行了,在CPU与Cache之间,通常一次传送一个字;访问Cache命中 (2)当比较结果不相等时,说明需要的数据尚未调入Cache,那么就要把该数据所在的整个字块从主存一次调进来。访 问Ca
8、che不命中,cache的命中率,命中率指CPU所要访问的信息在Cache中的比率; 失效率指所要访问的信息不在Cache中的比率。 在一个程序执行期间:设Nc表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有:,若 tc表示命中时的cache访问时间,tm表示未命中时的主存访问时间,1-h表示不命中率, 则cache主存系统的平均访问时间ta为:ta=htc+(1-h)(tm +tc),例:CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache-主存系统
9、的效率和平均访问时间。,解: h=Nc/(Nc+Nm)=1900/(1900+100)=0.95ta=htc+(1-h)tm0.95*50+0.05*(250+50)=62.5ns,例:已知Cache存储周期为40ns,主存存储周期为200ns, Cache -主存系统平均访问时间为50ns,求Cache的命中率是多少?,解: 因为 ta=h*tc+(1-h)(tm+tc)所以 h=(tm+tc-ta)/tm=(200+40-50)/200=19/20,课后作业,1 设某流水线计算机有一个指令和数据合一的cache,已知cache的读写时间为10ns,主存的读写时间为100ns,取指的命中率为
10、98%,数据的命中率为95%,在执行程序时,约有1/5指令需要存取一个操作数,为简化起见,假设指令流水线在任何时候都不阻塞。问设置cache后,与无cache比较,计算机的运算速度可提高多少倍? 2 接上题,如果采用哈佛结构(分开的指令cache和数据cache),运算速度可提高多少倍?,(1)数据块在Cache中存放在哪个位置?即定位问题(地址映象)。如果一个块存放在某一Cache中,怎样确定并找到该块,即寻址问题(地址变换)。 (2)不命中时将从主存储器中访问,并将该块调入Cache中,但是如果Cache中已无空闲空间,则势必将Cache中的某一块调出,但应调出那一块,即替换问题。 (3)
11、在写访问时,写入Cache必须在适当的时候写回主存储器,何时写?写操作时采用什么策略保证两级存储器间的数据一致性。,二、Cache结构设计必须解决的问题:如何存放,如何访问,如何替换,如何改写?, 地址映象 把主存块按照某种规则(函数或方法)装入或定位到Cache中的过程称地址映象。 地址变换信息按这种映象关系装入Cache后,执行程序时,将主存地址变换成 Cache地址的变换过程叫做地址变换。地址映象和变换密切相关。 使用Cache的动力在于它的高速,因此也要求这个地址变换过程尽可能地快,故此过程是以硬件完成的。这带来的另一好处是Cache的透明性,除了程序运行速度提高之外,用户包括系统软件
12、编制人员,丝毫未感觉到Cache的存在。,1.地址映象(映射)与地址变换,基本的地址映象方式:直接映象; 全相连映象;组相连映象,在高速缓冲存储器中,把Cache和主存机械等分为相同大小的块,每一块是由若干个字(或字节)组成.,由于Cache的块数远小于主存的块数,因此一个Cache不能唯一地、永久地只对应一个贮存块,在Cache中,每一块外加有一个标记,指明它是主存的哪一块的副本(拷贝)。,例:某机主存容量为1MB,划分为2048块,每块512B;Cache容量为8KB,划分为16块,每块512B。,图7.2 cache的基本结构,指明是主存的哪一块副本,相当于主存中块的编号,块长一般取一个
13、主存周期所能调出的信息长度,因刚加电时所有标记位都为“0”,开始执行程序时,命中率较低。另外Cache的命中率还与程序本身有关,即不同的程序,其命中率可能不同。,标记的有效位,每个标记设置有一个有效位。机器加电启动时,Reset信号将所有标记的有效位置“0”,即无效。程序执行过程中,Cache不命中时,逐步将指令块或数据块从主存调入Cache中的某一块,并将这一块标记的有效位置“1”,当再次用到这一块中的指令或数据时,可直接从Cache中取指令或数据。,(1)直接映像,这是一种多对一的映射关系,但一个主存块只能映象到Cache的一个特定块位置上去。 直接映像函数可定义为:j=i mod 2c其
14、中,j是cache的字块号,i是主存的字块号。在这种映像方式中,主存的第0块,第2c块,第2c+1块,只能映像到cache的第0块,而主存的第1块,第2c+1块,第2c+1+1块,只能映像到cache的第1块。,7位,直接映象的地址变换方法,图7.3 直接映像cache组织,块内地址,组地址,区地址,优点: 实现简单,只需利用主存地址按某些字段直接判断,即可确定所需字块是否已在cache存储器中。 缺点: 不够灵活。主存中2t个字块只能对应唯一的cache存储器字块,因此,即使cache存储器别的许多地址空着也不能占用。这使得cache存储空间得不到充分利用,并降低了命中率。,例:设有一个ca
15、che的容量为2K字,每个块为16字。 (1) 该cache可容纳多少个块? (2) 如果主存的容量是256K字,则有多少个块? (3) 主存的地址有多少位?cache地址有多少位? (4) 在直接映象方式下,主存中的第i块映象到cache中哪一个块中? (5) 进行地址映象时,存储器的地址分成哪几段?各段分别有多少位?,解:(1) cache中有2048/16=128个块。 (2) 主存有256K/16=21416384个块。 (3)主存容量为256K218字,所以主存的地址有18位。cache容量为2K=211字,所以cache字地址为11位。 (4) 主存中的第i块映象到cache中第
16、i mod 128个块中。 (5) 存储器的字地址分成三段:区地址、组地址、块内字地址。区地址的长度为18-11=7位,组地址为7位,块内字地址为4位。,(2)全相联映像,全相联映像方式是最灵活但成本最高的一种方式,如图7.4所示 :,图7.4 全相联映像cache组织,实际上由于它的成本太高而不能采用。(1)标记位数增加;(2)比较的地址数目增多。,11位,允许主存中的每一个字块映象到Cache的任何一个字块位置上。,全相联映象的地址变换方法,这只是一个理想的方案。两个原因使其实际上很少采用: (1) 标记位数从7位增加到11位,使Cache标记容量加大, (2) 访问Cache时,需要和C
17、ache的全部标记进行“比较”才能判断出所访主存地址的内容是否已在Cache中。由于Cache速度要求高,通常由“按内容寻址”的相联存储器完成,所需硬件逻辑电路很多,以至于无法用于cache中。实际的Cache组织则是采取各种措施来减少所需比较的地址数目。优点:灵活,块冲突概率小。只有当Cache中全部装满后,才有可能出现块冲突; 缺点:要作相联搜索,速度慢,代价高。,(3) 组相联映像,组相联映像方式是直接映像和全相联映像方式的一种折衷方案。组内全相联,组间直接映像Cache字块分为2c组,每组包含2r个字块,于是有c c+r。那么,主存字块Mm(i)(0=i=2m-1)可以用下列映像函数映
18、像到cache字块Mc(j)(0=j=2c-1)上:j=(i mod 2c)*2r+k 0=k=2r-1 k为位于上列范围内的可选参数(整数)。,图7.5 组相联映像cache组织,组相联映像方式的性能与复杂性介于直接映像与全相联映像两种方式之间。当r=0时,是直接映像方式;当r=c时,是全相联映像方式。主存中的一块能对应到Cache中一个特定组的任意一行。若组中有n个块,则称其为 n路组相联。 直接映象和全相联映象是组相联的特例:直接映像:1路组相联全相联映像:2c路组相联cache的命中率除了与地址映像的方式有关外,还与cache的容量有关。cache容量大,命中率高,但达到一定容量后,命
19、中率的提高就不明显了。,课后作业,1.设某计算机的cache采用4路组相联映像,已知cache容量为16KB,主存容量为2MB,每个字块有8个字,每个字有32位。请回答: (1) 主存地址多少位(按字节编址),各字段如何划分(各需多少位)? (2) 设cache起始为空,CPU从主存单元0,1,100。依次读出101个字(主存一次读出一个字),并重复按此次序数读11次,问命中率为多少?若cache速度是主存的5倍,问采用cache与无cache比较速度提高多少倍?2.设某计算机采用直接映像cache,已知容量为4096B。 (1) 若CPU依次从主存单元0,1,99和4096,4097,419
20、5交替取指令,循环执行10次,问命中率为多少? (2) 如cache存取时间为10ns,主存存取时间为100ns,cache命中率为95%,求平均存取时间。,2.替换算法,当一个新的主存块要调入到cache,而允许存放此块的行位置都被其它主存块占满时,就要产生替换,因为cache工作原理要求它应尽量保存最新的数据。,(1)对于采用直接映射方式的cache来说:因一个主存块只有一个特定的行位置可存放,所以问题解决很简单,把此特定行位置上的原主存块妥善处理后,换出Cache即可。 (2)对全相联的cache来说,它的全部行都是可被替换的特定行; (3)组相联的cache中同组各路的行都是可被替换的
21、特定行: 这样就要从允许存放新主存块的若干特定行中选取一行换出。, 替换问题与cache的组织方式紧密相关,如何选取就涉及到替换策略或称替换算法的采用。以硬件 实现的常用算法主要有以下三种。,1).先进先出(FIFO)算法FIFO(First In First Out)算法是把一组中最先调入 Cache的字块替换出去,不需要随时记录各个字块的使用情 况,所以实现容易,开销小。,2).近期最少使用(LRU)算法 LRU (Least Recent1y Used)算法是将近期内长久未被访问过的行换出。方法:每行设置一个计数器,cache每命中一次,命中行计数器清零,其它各行计数器增1,因此它是未访
22、问次数计数器。当需要替换时,比较各特定行的计数值,将计数值最大的行换出。这种算法显然保护了刚拷贝进新数据的行,符合cache工作原理,因而使cache有较高的命中率。LRU算法硬件实现也不难。如果是两路组相联的cache,就更简单了。,例如:两路组相联的cache。因为一个主存块只能在一个特定组的两行中来做替换选择, 二选一完全不需要计数器,一组两行只需要一个二进制位即可。如规定一组中的A行拷贝进新数据将此位置“1”,B行拷贝进新数 据将此位置“0”。那么当需要替换时只需检查此二进制位的状态即可,为“0”换出A行,为“1”换出B行,实现了保护新行的原则。 Pentium片内的数据cache是一
23、个两路组相联结构,采用的就 是这种简捷的LRU替换策略。,3).随机替换法 随机替换(Random Rep1acement)策略实际上是不要什么算 法,从特定的行位置中随机地选取一行换出即可。优点:这种策略以硬件实现最容易,而且速度也比前两种策略快。缺点:是随意换出的数据很可能马上又要用,从而增加了映射次数,降低了命中率和cache 的工作效率。但这个缺点可以用增大cache的容量来克服,实验统计表明,随机替换策略的功效只是稍逊于前两种策略。,例:一访Cache的地址流为:2 3 2 1 5 2 4 5 3 2 5 2,假设Cache只有3块(?),时间: 1 2 3 4 5 6 7 8 9
24、10 11 12 块地址流: 2 3 2 1 5 2 4 5 3 2 5 2,FIFO,3,LRU,5,课后作业,某程序对页面要求的序列为P3P4P2P6P4P3P7P4P3P6P3P4P8P4P6。 (1) 设主存容量为3个页面,求FIFO和LRU替换算法时各自的命中率(假设开始时主存为空)。 (2) 当主存容量增加到4个页面时,两替换算法各自的命中率又是多少?,3.写操作策略,因为cache的内容是部分主存内容的副本,应该与主存内容保持一致。而CPU对cache的写入更改了cache内容,如何与主存内容保持一致就有几种写操作工作方式可供选择,统称为写策略。,1).写回法(write-bac
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 存储系统 PPT
