第四章(2) 存储器(缓存).ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.1 概述 4.2 主存储器 4.3 高速缓冲存储器(Cache) 4.4 辅助存储器 附录4A 相联存储器 4.3 高速缓冲存储器(Cache) 4.3.1 概述 4.3.2 Cache-主存地址映象 4.3.3 替换算法 4.3.1 概述 1.问题的提出 1)I/O访存时,CPU要空等待。 2)主存速度的提高跟不上CPU的发展 CPU速度平均每年改进60% DRAM的速度平均每年改进7% 解决方案 在CPU与主存之间加一级高速缓存。 将信息提前送至缓存; CPU直接从缓存读取所需信息。 可行吗? 程序访问的局部性原理 CPU在执行程序时,在一定时间内,只是对局部范围的主存地址频繁访问,而对此范围外的地址甚少访问。 原因:指令和数据地址分布的相对簇聚。 指令连续存放 数据,特别是数组连续存放 有些指令和数据往往会被多次调用,如:子程序、循环。 根据此原理,只要将CPU近期要访问的数据,提前送到Cache,就可使CPU在一定时间内只访问Cache。 2. Cache的工作原理 Cache/主存存储空间的基本结构如下图所示。 主存与缓存都分成若干个字块,且它们的块的大小相同。 主存地址=块号(m位)+块内地址(b位) 缓存地址=块号(c位)+块内地址(b位) 主存块数M=2m,缓存块数C=2c,且C远小于M 块长B=2b 读数据时,可能有两种情况: 1)所需的数据已在Cache中——命中 则从中取出此信息,通常一次传送一个字; 2)所需的数据不在Cache中——不命中 则从主存读取该数据,并将该数所在主存的整个字块调入Cache中。 ——该主存块与缓存块建立了对应关系 命中率 指CPU要访问的信息已在Cache内的比率。 用来衡量Cache的效率。 例:CPU执行一段程序时,Cache完成存取的次数为1900次,主存完成存取的次数为100次。已知Cache存取周期为50ns,主存存取周期为250ns,求Cache的命中率与Cache/主存系统的平均访问时间。 命中率 h=1900/(1900+100)=95% 平均访问时间 ta= htc+(1-h)tm = 0.95×50+0.05×250 = 60ns Cache的容量与块长是影响命中率的重要因素。 容量与命中率 一般,Cache容量越大,命中率越高 但Cache容量太大,会增加成本,且当Cache容量到达一定值时,命中率不一定明显增高。 Cache容量是总成本与命中率的折衷值。 块长与命中率 增大块长,可将更多有用的字存入缓存,提高命中率 块长太大,块数减少,字块频繁调入调出,命中率下降。 一般取4~8个可编址单位,或取一个主存周期能调出主存的信息长度。 3.Cache的基本结构 组成 Cache存储体 地址映象机构 Cache替换机构 (1)Cache存储体 CPU与Cache交换信息以字为单位,Cache与主存交换信息以块为单位。 (2)地址映象变换机构 用来将CPU送来的主存地址转换为Cache地址 主要是主存的块号与Cache块号间的转换。 (3)替换机构 当Cache内容已满,无法接受来自主存的信息时,就由Cache内的替换机构按一定的替换算法来决定从Cache中移出哪块内容返回主存。 Cache对用户是透明的,用户编程用到的地址是主存地址。 Cache的所有功能完全由硬件实现。 (4)Cache的读/写操作 读操作 写操作——要保证Cache与主存内容的一致性,目前常用方法如下: 写直达法(write-through):同时写Cache与主存 写回法( write-back):只写入Cache中,并设标志,在某规定时候将修改过的内容写入主存 只写入主存中,若Cache中有此地址内容,则将相应的有效位清“0”,表示此Cache块的内容失效。 4.Cache的改进 近年来普遍采用多个Cache 1)增加Cache的级数 2)将统一的Cache变成分开的Cache (1)单一缓存和两级缓存 单一缓存 在CPU和主存之间只设一个缓存。 由于集成度的提高,将该缓存直接作在CPU芯片内,又称片内缓存。 如:Intel 80486内含8KB的片内缓存 两级缓存 第一级(L1):片内缓存 第二级(L2):片外缓存 (2)统一缓存和分开缓存 统一缓存:指令和数据存放在同一缓存内 分开缓存:指令和数据分别存放在两个缓存内 指令Cache 数据Cache ——对指令流水线的实现尤为重要 4.3.2 Cache-主存地址映象 地址映象:由主存地址映象到Cache地址。 基本的地址映像方式 直接映象 全相联映象 组相联映象 段相联映象 1.直接映像 主存和Cac

文档评论(0)

wxc6688 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档