- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Cache的容量很小,保存的只是主存内容的一个子集,且Cache与主存的数据交换是以块为单位的 为了把信息放到Cache中,必须应用某种函数把主存地址定位到Cache中,这称为地址映射 CPU执行程序时,会将程序中的主存地址变换成Cache地址,这个变换过程叫做地址变换 Cache的地址映射方式有全相联映射、直接映射和组相联映射 假设某台计算机主存容量为l MB,被分为2048块,每块512B; Cache容量为8KB,被分为16块,每块也是512B 以此为例介绍三种基本的地址映射方法 1. 全相联映射 全相联映射的Cache组织 主存中任何一块都可以映射到Cache中的任何一块位置上 全相联映射方式 比较灵活,主存的各块可以映射到Cache的任一块中,Cache的利用率高 块冲突概率低 只要淘汰Cache中的某一块,即可调入主存的任一块 由于Cache比较电路的设计和实现比较困难,这种方式只适合于小容量Cache采用 全相联算法 2. 直接映射 直接映射的Cache组织 主存中的一个块只能映射到Cache的某一特定块中去 例如,主存的第0块、第16块、……、第2032块,只能映射到Cache的第0块; 而主存的第1块、第17块、……、第2033块,只能映射到Cache的第1块 …… 直接映射是最简单的地址映射方式 硬件简单,成本低,地址变换速度快 不够灵活,Cache的存储空间得不到充分利用 每个主存块只有一个固定位置可存放,容易产生冲突,使Cache效率下降,因此只适合大容量Cache采用 例如,如果一个程序需要重复引用主存中第0块与第16块,最好将主存第0块与第16块同时复制到Cache中 但由于它们都只能复制到Cache的第0块中去,即使Cache中别的存储空间空着也不能占用 因此这两个块会不断地交替装入Cache中,导致命中率降低 直接相联算法 3. 组相联映射 组相联映射实际上是直接映射和全相联映射的折中方案 主存和Cache都分组 主存中一个组内的块数与Cache中的分组数相同 组间采用直接映射 组内采用全相联映射 将Cache分成u组,每组v块 主存块存放到哪个组是固定的 至于存到该组哪一块则是灵活的 例如, 主存分为256组,每组8块 Cache分为8组,每组2块 组相联映射方式 主存中的各块与Cache的组号之间有固定的映射关系 但可自由映射到对应Cache组中的任何一块 例如 主存中的第0块、第8块……均映射于Cache的第0组,但可映射到Cache第0组中的第0块或第1块; 主存的第1块、第9块……均映射于Cache的第1组,但可映射到Cache第1组中的第2块或第3块 常采用的组相联结构Cache 每组内有2、4、8、16块,称为2路、4路、8路、16路组相联Cache 组相联结构Cache是前两种方法的折中方案 适度兼顾二者的优点 尽量避免二者的缺点 得到普遍采用 组相联算法 * * 4.3高速缓存 4.3 高速缓冲存储器 Cache主存与CPU的速度差距 ● 瓶颈 严重限制了计算机系统速度的提高:CPU 访zz存速度与 CPU 处理速度较之主存访问速度相差一zz个数量级( 10倍以上)!解决办法之一是使用高速zz的缓冲存储器Cache置于Memory与CPU之间。 ● Cache,这是目前用得最多的最有效的提高存储zz速度的主要方法。 ● Cache 通常由质量优良的半导体存储器组成, 它zz与主存数据交换以“块”为单位进行, 块定长含若干zz个字(字节)。如 IBM370 机块大为32字节。 CPU MEMORY Cache L1-Cache 地址 变换 将现行程序的一个逻辑块 Map 到Cache 中,CPU在访问主存同时,访问Cache,若Cache中有所需地址,称之命中,访问之。如果Cache无欲访地址, 谓之不命中,则对主存读写,同时把读写单元所在的整个块 Map 到Cache. 为下步程序执行使用。 4.3.1 Cache工作原理 Cache在读时 ● Cache 利用 程序访问局部性规律:在程序执行的过zz程中,近期被访问过的信息项可能马上被再次访问, zz被访问过的地址的邻近地址可能紧接着被访问。 ● 策略: 将现程序运行所需的主存的 “一块”内容 Copy zz(Map)到 Cache, CPU 访存时同时访问Cache, 访问速zz度高。通常, 可以在 Cache 中找到 CPU所需内容。除zz非运行到转移指令, 或者这块内容运行完毕, 下一步zz需要的内容不在块内, 才从主存读入新的一块, 继续zz满足CPU执行下一段程序之需。 工作在“读”状况下Cache工作原理概说: ★ ★ C
文档评论(0)