• 1. 第七章 存储系统7.6 存储保护7.1 存储系统的层次结构7.2 高速缓冲存储器Cache 7.3 虚拟存储器 7.5 双端口存储器 7.4 相联存储器1
  • 2. 7.1 存储系统的层次结构CPUCACHE主存(内存)辅存(外存)根据各种存储器的存储容量、存取速度和价格比的不同,将它们按照一定的体系结构组织起来,使所放的程序和数据按照一定的层次分布在各种存储器中。2
  • 3. 采用多种存贮器技术,构成存贮层次:3
  • 4. 一般来说: “Cache-主存”层次:由Cache和主存贮器构成。 主要目的:提高存贮器速度。 “主存-辅存” 层次:由主存和磁盘存贮器构成 主要目的:扩大存贮器容量。 4
  • 5. “Cache - 主存”层次的实现:主要借助于辅助硬件从CPU看,速度是CACHE的,容量是主存的。5
  • 6. “主-辅存”层次的实现:主要借助于辅助软硬件从整体上看,速度是主存的,容量是辅存的。6
  • 7. 主要由软件实现,硬件为辅“Cache-主存”与“主存-辅存”层次的区别几百到几千个字节存储层次CPU对第二级的 访问方式比较项目目  的存储管理实现 访问速度的比值 (第一级和第二级)典型的块(页)大小失效时CPU是否切换“Cache -主存”层次“主存-辅存”层次为了弥补主存速度的不足为了弥补主存容量的不足主要由专用硬件实现几比一几百比一几十个字节可直接访问均通过第一级不切换切换到其他进程主要由专用软件实现几百到几千个字节7
  • 8. 程序局部性原理程序的局部性: 时间上的局部性和空间上的局部性。时间局部性指的是:在最近的未来要用到的信息很可能是现在正在使用的信息。空间局部性指的是:在最近的未来要用到的信息很可能是与现在正在使用的信息在程序空间上是相邻或相近的。8
  • 9. 9
  • 10. 存储体系的性能参数①存贮系统的单位容量平均价格。 计算公式:M1 (S1, C1 , T1)M2 (S2, C2 , T2) 总希望每位平均价格能接近于C2(辅存), 为此应使: S2>>S1其中:Ci为Mi的每位价格; Si为Mi的以位计算的存贮容量。每位价格C,命中率H,等效访问时间TA10
  • 11. ②命中率定义:在M1存贮器中访问到的概率。设cache存取时间为tc,命中率为h,主存存取时间为tM,则 平均存取时间=h·tc+(1-h)(tc+tM)。N1: M1的访问次数 ; N2: M2的访问次数③cache存储器,其平均存取时间计算如下:11
  • 12. 7.2 高速缓冲存储器Cache 组成: 由高速小容量的SRAM和高速缓存控制器组成。 功能: 将CPU当前快要用到的部分数据块由主存复制到容量小、速度快的Cache 中,再由Cache 向CPU直接提供它所需要的数据。它内部存放的是部分主存内容的副本。 在Cache中,每一块外加有一个标记,指明它是主存的哪一块的副本。12
  • 13. 7.2.1 Cache的组成和工作原理标志 块号 块内地址主存地址主 存块号 块内地址Cache 标记Cache地址 比较器替 换 算 法Cache 数据去CPU来自CPU不命中命中Cache满 访数据修改标记访标记NO13
  • 14. 数据总线Cache替换机构可装进? 命中?主存Cache 地址映象 变换机构 主 存访问主 存替换 Cache Cache 存储体块号块内地址直接通路访问主存装入CacheNNYY块号块内地址CPU主存地址地址总线Cache地址Cache 的基本结构Cache替换机构由 CPU 完成 Cache 存储体主存Cache 地址映象 变换机构 14
  • 15. 7.2.2 Cache的组织和管理 1.地址映像 地址映像:为了把信息放到Cache存储器中,必须应用某种方法把主存地址定位到Cache中。 地址变换:在信息按照这种映像关系装入Cache后,执行程序时应将主存地址变换成Cache地址,的变换过程。 主存地址 Cache地址 地址映像方式:全相联映像、直接映像和组相联映像。 主存块号 块内地址 cache块号 块内地址 15
  • 16. (1)全相联映像 全相联映像方式是最灵活,但成本最高的一种方式。实际中较少使用。 在具体操作时需要设立一个块号对照表,凡已装入Cache 中的主存块号其标识位都要置1,以便快速使用。16
  • 17. 全相联映像主存 中的 任一块 可以映象到 缓存 中的 任一块字块2m-1字块2c-1字块1 字块0……字块2c-1字块1字块0…标记标记标记主存字块标记 字块内地址主存地址m = t + c 位b位m = t+cCache 存储器主存储器 字块017
  • 18. 全相联映像全相联:主存中的任一块可以被映像到Cache中的任意一个位置。 Cache常包含几百个块,主存常包含几百万个块。 优点:命中率较高,Cache的存储空间利用率高; 缺点:线路复杂,成本高,速度低。18
  • 19. (2)直接映像1. 主存与缓存分成同样大小的块; 2. 主存容量应是缓存容量的整数倍,将主存空间按缓存的容量分成区,主存中每一区的块数与缓存的总块数相等; 主存中某区的一块存入缓存时只能存入缓存中块号相同的位置。 直接相联的地址映象规则 直接映象公式:j=i mod mj: Cache的块号 i:主存的块号 m:Cache的块数19
  • 20. 图7.3 直接映像cache组织20
  • 21. 直接映象:主存中的每一块只能被放置到Cache中唯一的一个位置。 优点:线路简单; 缺点:命中率低。21
  • 22. (3)组相联映像组相联的映象规则: 1. 主存与缓存分成相同大小的块; 2. 组间直接相联;组内全相联。 22
  • 23. 组相联:主存中的每一块可以被放置到Cache中唯一的一个组中的任何一个位置。23
  • 24. 图7.5 组相联映像cache组织24
  • 25. 组相联是直接映象和全相联的一种折衷组间直接相联;组内全相联。 25
  • 26. 2.页面替换算法①随机法(Random,RAND法) ②先进先出法(First-In First-Out,FIFO法) ③近期最少使用法(Least Recently Used,LRU法) ④最优替换算法 (OPT OPTimal replacemant algorithm) 页面替换发生时间: 当新的主存字块需要调入Cache存储器,而它的可用位置又已被占满时,就产生替换算法问题。26
  • 27. ①随机算法(RAND Random algorithm): 用随机数确定要替换的块。特点:算法简单,容易实现; 未利用历史信息,未反映程序的局部性,命中率低。②先进先出算法 (FIFO First-In First-Out): 替换最早装入主存的页。特点: 比较容易实现,利用了历史信息,没有反映程序的局部性。 最先调入主存的页面,很可能也是经常要使用的页面。27
  • 28. ③近期最少使用算法 (LFU Least Recently Used) 依据各块使用的情况,选择最近最少使用的块替换。 特点:既充分利用了历史信息,又反映了程序的局部性,实现起来非常困难。④最优替换算法 (OPT Optimal replacemant): 是一种理想化的算法。用来作为评价其它页面替换算法好坏的标准。在虚拟存储器中,一般采用FIFO和LRU两种算法28
  • 29. cache与主存一致性问题cache有两种写入方式: 写回法:暂时只向cache存储器写入,并用标志加以注明,直到经过修改的字块被从cache中替换出来时才一次写入主存; 写通:每次写入cache存储器时也同时写入主存,使cache和主存保持一致。29
  • 30. 7.3 虚拟存储器7.3.1虚拟存储器概述 1、主存/辅存层次与cache/主存层次的比较 访问“时间比”;每次传送的基本信息单元; 从原理角度看。 地址变换及映像方法和替换策略,从原理上看是相同的。这些替换算法和地址映像方式最早应用于虚拟存储系统中,后来才发展到cache系统中。30
  • 31. 2. 主存/辅存层次信息传送单位和存储管理主/辅存层次的信息传送单位: 段、页或段页。 段式管理: 优点:段的分界与程序的自然分界相对应;逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序共享。 缺点:容易在段间留下许多空余的零碎存储空间不好利用,造成浪费。 页式管理系统的缺点正好和段式管理系统相反,由于页不是逻辑上独立的实体,所以处理、保护和共享都不及段式来得方便。31
  • 32. 图7.12 段式管理32
  • 33. 图7.13 页式管理33
  • 34. 图7.14 页式虚拟存储器结构34
  • 35. 图7.15 使用快表和慢表实现虚实地址变换35
  • 36. 7.3.3 段页式虚拟存储器 把程序按逻辑结构分段以后,再把每段分成固定大小的页。程序对主存的调入调出是按页面进行的,但它又可以按段实现共享和保护。 缺点是在地址映像过程中需要多次查表,在这种系统中,虚拟地址转换成物理地址是通过一个段表和一组页表来进行定位的。36
  • 37. 图7.16 段页式存储举例 37
  • 38. 图7.17 段页式虚拟存储器地址变换38
  • 39. 7.3.4 虚拟存储器工作的全过程 虚地址:对虚拟存储器来说,程序员按虚存储空间编制程序,在直接寻址方式下由机器指令的地址码给出地址。 虚地址 虚页号Nv 页内地址Nr 虚地址是辅存的逻辑地址。 外页表:由Nv变换成Nvd的表 内页表:由Nv变换到主存页号的表39
  • 40. 图7.18 多用户虚拟存储器工作过程 40
  • 41. 7.4 相联存储器 在cache和虚拟存储器中,已经用到按内容寻址的相联存储器,在这里将讨论相联存储器的基本概念。 相联存储器不按地址访问存储器,而按所存数据字的全部内容或部分内容进行查找(或检索)。41
  • 42. 7.5 存储保护 为使系统能正常工作,要防止由于一个用户程序出错而破坏其他用户的程序和系统软件,还要防止一个用户程序不合法地访问不是分配给它的主存区域。存储保护主要包括两个方面: 非虚拟存储区域保护 存贮区域保护 虚拟存储区域保护 访问方式保护42
  • 43. 习题 7.5 设某计算机的cache采用4路组相联映像,已知cache容量为16KB,主存容量为2MB,每个字块有8个字,每个字有32位。请回答: (1) 主存地址多少位(按字节编址),各字段如何划分(各需多少位)? (2) 设cache起始为空,CPU从主存单元0,1,…,100。依次读出101个字(主存一次读出一个字),并重复按此次序数读11次,问命中率为多少?若cache速度是主存的5倍,问采用cache与无cache比较速度提高多少倍?43
  • 44. 7.10 主存储器容量为4MB,虚存容量为1GB(1×109B),虚拟地址和物理地址各为多少位?根据寻址方式计算出来的有效地址是虚拟地址还是物理地址?如果页面大小为4kB,页表长度是多少? 7.12 某程序对页面要求的序列为P3P4P2P6P4P3P7P4P3P6P3P4P8P4P6。 (1) 设主存容量为3个页面,求FIFO和LRU替换算法时各自的命中率(假设开始时主存为空)。 (2) 当主存容量增加到4个页面时,两替换算法各自的命中率又是多少?44
  • 45. The End45