《计算机组成原理》教程第5章存储器-cache2.ppt
24页5.3 高速缓冲存储器(Cache)•Cache-存储器映象 •替换算法问题的提出• CPU和I/O争抢访问主存 • 主存速度始终跟不上CPU的发展 – 100MHz的Pentium处理器平均10ns就执行一条指令 ,而DRAM的典型访问时间是60~120nsCache的出现主要使CPU不直接访问主存,只 与高速Cache交换信息• 程序访问的局部性原理 • 时间局部性:最近的访问项(指令/数据)很可能在 不久的将来再次被访问(往往会引起对最近使用区域 的集中访问) • 空间局部性:一个进程访问的各项其地址彼此很近( 往往会访问在存储器空间的同一区域)命中、不命中、命中率• Cache命中(hit) – CPU欲访问的数据已在缓存中,即可直接访 问Cache • Cache不命中(miss) – CPU欲访问的数据不在Cache内,此时需将 该数所在的主存整个子块一次调入Cache中 • 命中率是指CPU要访问的信息已在Cache 内的比率通常用命中率来衡量Cache的 效率Cache效率• Cache的容量和块长是影响Cache效率的 重要因素 • Cache容量越大,命中率越高 – 当Cahce容量达到一定值时,命中率不会因容 量的增大而明显提高。
– Cache容量大,成本增加Cache的命中率与cache容量的关系1Cache容量命中率Cache的读数操作流程开始CPU发出访存地址访问Cache取 出信息送CPU命 中?结束访问主存取出 信息送CPU将新的主存块 调入Cache中执行替换算 法腾出空位Cache满?YNNYCache的写操作• 命中 – 写直达法(Write-through、Store-though) • 每次写入Cache的同时,也写入主存 – 写回法(Write-back): • 执行写操作时,信息只写入Cache; • 当Cache块被替换时,先将该块内容写回主存,然后再调入新页 – 信息只写入主存,同时将相应的Cache块有效位置“0” • 不命中:被修改的单元根本不在Cache内,此时写操作 只能对主存进行• 比较 – 写回法的开销是在块替换时的回写时间,而写直达法则在每次 写入时,都要附加一个比写Cache长得多的写主存时间 – 一般来说,写直达法的开销大一些,但其一致性保持的要好一 些 •关键在于如何使Cache与主存内容保持一致Cache的基本结构Cahce存储体、地址映象变换机构、替换机构• Cahce存储体 – 以块为单位和主存交换信息 – Cache访存的优先级最高 • 地址映象变换机构 – 主要是 主存块号和Cache块号之间的转换。
• 四种映象:直接映象、全相联映象、组相联映象 和段相联映象 • 替换机构 – Cache内容已满时,无法接受来自主存块的 信息,需由Cache内的替换机构按一定的替 换算法来确定从Cache内移出某个块写回主 存Cache-主存地址映象• 由主存地址映象到Cache地址称为地址映 象 –直接映象–全相联映象–组相联影响–段相连映象1. 直接映象Cache字块数为:C=2c主存字块数为:M=2m映射关系式:i=j mod C或 i=j mod 2c字块块0 字块块1 … 字块块2c-1 字块块2c 字块块2c+1 … 字块块2c+1-1 字块块2c+1 … 字块块2m-1主存储器 字块块0 字块块1 … 字块块2c-1Cache缓缓存块块号 i主存块块号j00,C,……,2m-C 11, C+1,……,2m-C+1 ………… C-1C-1,2C-1, ……,2m-1• 优点:实现简单,只需利用主存地址的某些位 直接判断,就可确定所需字块是否在缓存中• 缺点:效率低因为每个主存块固定地对应某 个缓存块(有2t个主存字块对应同一个Cache字 块),如果这2t个字块中有两个或两个以上的主 存字块要调入Cache,必然会发生冲突。
这时 ,即使Cache中还有很多空闲块也无法占用, 使缓存的空间得不到充分的利用2. 全相联映像标记标记标记主存字块标记块标记字块块内地址主存地址 m=t+c位b位m=t+c位•Cache“标记位”增多,比较位数增加;而且访问Cache时需要和Cache的全部 “标记”进行比较,才能判断出所访问的主存地址的内容是否已在Cache内2. 全相联映像(续)字块号012345673. 组相联映象字块0 字块1 ……字块2c-r-1 字块2c-r 字块2c-r+1 ……字块2c-r+1 ……字块2m-1主存储器标 记字块0标 记字块1标 记字块2标 记字块3…………标 记字块2c-2标 记字块2c-1Cache(r=1)第0组第1组第2c-r-1组主存地址主存子块标记组地址子块内地址s=t+r位q=c-r位b位m位3. 组相联映象(续)• 原理:把Cache分为Q(=2q)组,每组有 R(=2r)块,且i=j mod Q • 其中,i为缓存的组号,j为主存的块号 – r=0,直接相联;r=c,全相联• 在主存块和Cache的各组之间,属于直接映 象关系;而主存块可以映射到对应组内的任 何一块,这又体现出了全相联映象的关系。
4.段相联映象• 它将主存和Cache都分成若干段,且使得 它们每段包含的块数都相等 • 段之间采用全相联映象,段内块之间采用 直接映象• 当段数与Cache块数相等时(即每段只包 含一块),便为全相联映象;当段数为1 时,便为直接映象四种映象方式比较• 直接映象:优点是实现简单,缺点是不够灵活 • 全相联映象:实现电路较多,成本较高,实际 的Cache还要采用各种措施来减少地址的比较 次数• 组相联映象和段相联映象:是直接映象和全相 联映象相结合的两种形式替换算法 • 替换算法 – 先进先出算法(FIFO):选择最早装入的 Cache字块替换出来这种算法实现起来比 较方便,但不能正确反映程序的局部性因 为最先进入的字块也可能是目前经常要用的 字块,因此,采用这种算法,有可能产生较 大的失效率 – 近期最少使用算法(LRU):选择“近期最少 使用”块作为调出块,这种算法能比较正确反 映程序的局部性,因为当前最少使用的块一 般来说也是未来最少被访问的块但是它的 具体实现比FIFO要复杂一些 – 随机替换FIFO替换算法近期最少使用算法例:选最近4次访问期间最少使用Cache块作为被替换的块。
将内存与外存结合使用,好像有一个容量极大的内存储器,工 作速度接近于主存,每位成本又与辅存相近.虚拟存储器• 工作过程包括6个步骤: • ①中央处理器访问主存的逻辑地址分解成组号a 和组组内地址b,并对组对组 号a进进行地址变换变换 ,即将 逻辑组逻辑组 号a作为为索引,查查地址变换变换 表,以确定 该组该组 信息是否存放在主存内②如该组该组 号已在 主存内,则转则转 而执执行④;如果该组该组 号不在主存 内,则检查则检查 主存中是否有空闲闲区,如果没有便 将某个暂时暂时 不用的组调组调 出送往辅辅存,以便将这这 组组信息调调入主存 • ③从辅辅存读读出所要的组组,并送到主存空闲闲区, 然后将那个空闲闲的物理组组号a和逻辑组逻辑组 号a登录录 在地址变换变换 表中④从地址变换变换 表读读出与逻辑逻辑 组组号a对应对应 的物理组组号a⑤从物理组组号a和组组 内字节节地址b得到物理地址⑥根据物理地址从 主存中存取必要的信息。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


