文档详情

Cache与内存地址映像教学探析.doc

发布:2017-06-06约3.78千字共8页下载文档
文本预览下载声明
Cache与内存地址映像的教学探讨   摘要:CPU当前访问的数据若在高速缓存(Cache)中,就应该将已知的内存地址转换为Cache地址,具体转换的方式与当前内存和Cache的映像方式有关。每一种映像方式中二者地址间的关系的关键是搞清楚Cache和内存的地址结构 关键词:内存;Cache;地址结构;地址映像 中图分类号:G642 文献标识码:A 文章编号:1007-9599 (2012) 19-0000-02 在现代计算机中,存储系统均采用三级层次结构,即外存-内存-Cache。当前进程肯定在内存中,但是否在Cache中主要和命中率有关。当CPU运行时,获取的是虚地址,该虚地址经过地址转换部件可自动转换为内存地址;若该内存地址所在的页已从内存调入Cache,则此时就应将内存地址转换为Cache地址。从内存地址到Cache地址的转换(或称映像)与内存和Cache的映像方式有关,二者映像的关键是在具体映像方式下二者的地址的表示方式,即地址结构。下面就直接映像、全相联映像和组相联映像这三种最常见的映像方式的地址结构及地址转换过程进行分析 1 直接映像 直接映像方式要求能直接把内存地址转换为Cache地址,其实现原理如下: 1.1 Cache组织。从物理角度看,Cache的结构与内存结构完全相同,均是一维结构。在直接映像方式,系统对Cachec是以页为单位进行组织。此时,逻辑上Cache是一个二维结构的存储器 假设:Cache长度为2k个单元,共分2p页,每页的大小为2i个单元,即,k=p+i。从逻辑上看,一个k位的Cache地址可转换为一个二维地址表示: 二维地址 Ap+i…Ai+1 (P位) Ai … A1 (i位) 含义 Cache页号 页内地址 即:一个Cache单元地址的高p位是页号,低i位是页内地址 1.2 内存组织。在直接映像方式下,内存是先作页的划分,然后再把页组织成组(或称区),即将内存转换成一个三维结构的存储器。其中,内存页与Cache页的大小相同,内存一个组内包含的页数就是Cache的页数 假设:内存长度为2n个单元,共分为2m个组,每个组包含2p页,每页的大小为2i个单元,即n=m+p+i。逻辑上一个n位的内存地址可分为三个部分: 三维地址 Am+p+i… Ap+i+1(m位) Ap+i…Ai+1(P位) Ai…A1(i位) 含义 内存组号 内存组内页号 页内地址 即:一个内存单元地址的高m位是组号,中间的p位是页号,低i位是页内地址。其中,内存组号也称为内存标记 1.3 映像规则。内存以页为单位调入Cache,当将内存页调入Cache时,内存的组内页号就是Cache的页号。由于内存页与Cache页的大小相等且以页单位进行管理,因此,二者的页内地址也相等,也即内存的组内页号及页内地址就是Cache的页号及页内地址 由于内存容量远大于Cache容量,因此,组内页号相等的内存页有无数,这样,内存页与Cache页的对应关系就是1:多的映像关系。为了准确反映内存页与Cache页的映像,需要一张映像表来记录,该表主要记录内存组号(内存标记)与Cache页的关系,具体见下例 例:某机现有一Cache容量为1KB,256B/页,内存容量1MB,存储器编址方式为字节。试问: (1)地址为1a2b3H的内存单元按直接映像方式调入Cache,Cache地址? (2)若已将内存的2、3、5、8页调入Cache,映像表的内容是什么?此时,如何判断7页是否在Cache中? 解:由题意可知: 可知内存7(111B)页的内存标记为1,组内页号为11。具体判断过程是:以页号11为索引访问映像表的11行,将获得的内存标记0与自身的内存标记1进行比较,现不相等,因此,说明7页不在Cache中 2 全相联映像方式 2.1 Cache组织。Cache的组织与直接映像方式完全相同。即: 假设:Cache长度为2k个单元,共分2p页,每页的大小为2i个单元,这样,一个k位的Cache地址的高p位是页号,低i位是页内地址 2.2 内存组织。内存的组织与Cache的组织完全相似,即以页的方式对内存进行组织 假设:内存长度为2n个单元,每页的大小为2i个单元,这样,逻辑上一个n位的内存地址可分为二个部分: 二维地址 An…Ai+1(n-i位) Ai…A1(i位) 含义 内存页号 页内地址 即:一个内存单元地址共n位,其中:高n-i位是页号,低i位是页内地址 2.3 映像规则。内存以页为单位调入Cache,内存的一页可调入Cache的任一页,即内存页与Cache无明确的映像关系。但由于二者页的大小相等
显示全部
相似文档