编辑: 飞翔的荷兰人 2019-04-14
希赛? 远程教育平台――疑难解答 希赛? 软考学院(http://edu.

csai.cn/hzzx/kspx.htm) (第1页,共6页)

电话:+86

0731 4433018,4430578,4445278,4445728 转8001,8002 邮件:tr @csai.cn CACHE 原理 希赛? 软考学院 刘智成 1. CACHE 的工作原理 CACHE 依据程序局部性原理, 其内容是主存的副本, 全部由硬件实现, 对程序员是透明的, 其工作原理如下: 在用来自 CPU 的主存地址获得需要的内容时,若该地址的内容在 CACHE 中有副本,就从 CACHE 中访问,若没 有才到主存中访问,这导致在计算 CAHCE--主存系统平均存取时间时涉及到:如果 CACHE、主存的访问周期为 M、 NCACHE 命中(该地址的内容在 CACHE 中有副本)的概率为 R,那么主存的访问概率就是 1-R,那么平均访问周期 就为:M*R+N*(1-R) . 当CPU 要访问 Cache 时,送来主存地址放入主存地址寄存器.通过主存-Cache 地址变换部件把主存地址中的块 号B变换成 Cache 的块号 b 放入 Cache 地址寄存器中, 并且把主存地址中的块内地址 W 直接作为 Cache 的块内地址 w 装入到 Cache 地址寄存器中.如果变换成功(称为 Cache 命中) ,就用所得到的 Cache 地址去访问 Cache,从Cache 中 取出数据送往 CPU.如果变换不成功,则产生 Cache 失效信息,并且用主存地址访问主存储器.从主存储器中读出一 个字送往 CPU.同时,把包括被访问字在内的一整块都从主存储器中读出来,装入到 Cache 中去.这时,如果 Cache 已经满,则要采用某种 Cache 替换算法把不常用一块先调入主存储器中原来存放它的地方.以便腾出空间来存放新调 入的块. 希赛? 远程教育平台――疑难解答 希赛? 软考学院(http://edu.csai.cn/hzzx/kspx.htm) (第2页,共6页)

电话:+86

0731 4433018,4430578,4445278,4445728 转8001,8002 邮件:tr @csai.cn 2. 映射机制 在CACHE 地址映射方式中,不管具体采用那种方式,内存中的块必须跟 CACHE 中块的大小一样,这是个基本前 提,必须注意.不管采用那种方式,主存的块内地址都是直接映像到 CACHE 的块内地址,也就是说主存块内地址跟 CAHCE 地址中的块内地址一样. 2.1 直接相联映像 在直接相联映像方式中,假设主存的块数目为 Mb,其编号从

0 开始一直到 Mb-1,CACHE 的块数目为 Cb,其编 号从

0 开始一直到 Cb-1,假如主存块号为主存的块号为 B,那么该块映射到 CACHE 中的第 b=B mod Cb 块. 在该图中,主存每一个分区内的块数与 Cache 的总块数正好相等,每个区中的区内第 X 块(区内相对块号)都映 射到 CACHE 中的第 X 块,例如,区0中的第

0 块、区1中的区内第

0 块(总的块编号为 Cb)...都映射到 CACHE 中 的第

0 块.这种映射机制是通过取模来实现的. 在这种方式下,主存地址中比 CACHE 地址多出的部分称为区号,主存地址到 CACHE 地址的转换机制为: 希赛? 远程教育平台――疑难解答 希赛? 软考学院(http://edu.csai.cn/hzzx/kspx.htm) (第3页,共6页)

电话:+86

0731 4433018,4430578,4445278,4445728 转8001,8002 邮件:tr @csai.cn 首先用主存地址中的块号 B 按地址访问区表存储器,把读出的区号与主存主存中的地址 E 进行比较,根据比较结 果和与区号在同一存储字中的有效位情况作如下处理: 如果区号比较结果相等,有效位为"1",则Cache 命中.表示要访问的那一块已经装入到 Cache 中了, 这时的 Cache 地址(与主存地址的低位部分完全相同)是正确的.用这个 Cache 地址去访问 Cache,把读出来的数据送往 CPU. 其它情况均为 Cache 没有命中,或称为 Cache 失效.表示要访问的那个块还没有装入到 Cache 中,这时,要用主 存地址去访问主存储器,把读出来的一个字送往 CPU.同时,把包括被访问字在内的一块都从主存储器中读出来. 如果区号比较结果相等,有效位为"0",表示 Cache 中的这一块已经被作废.这时,只要把从主存中读出来的新块 按照 Cache 的块地址装入到 Cache 中,并且把有效位置"1"即可. 如果区号比较结果不相等, 有效位为"0", 表示 Cache 的这一块是空的. 这时, 把从主存中读出来的新块装入到 Cache 中,并把有效为置"1".另外还要把主存区号写到区号存储器的相应单元中. 如果区号比较结果不相等,有效位为"1",表示原来在 Cache 中存放的那一块是有用的.这时,必须先把 Cache 中 的这一块写回到主存储器中原来存放它的存储单元中,腾出地方来,才能把从主存中读出的新块装入到 Cache 中.另 外也要把主存区号写到区号存储器的相应单元中. 2.2 全相联映射 全相联方式中,主存储器的一块可映射到 CAHCE 中任意一块. 希赛? 远程教育平台――疑难解答 希赛? 软考学院(http://edu.csai.cn/hzzx/kspx.htm) (第4页,共6页)

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题