CH9.1 cache的组织结构

cache的组织结构

Cache的容量很小,它保存的内容只是主存内容的一个子集,且Cache与主存的数据交换是以块为单位的。为了把信息放到Cache中,必须应用某种函数把主存地址定位到Cache中,这称为地址映射。在信息按这种映射关系装入Cache后,CPU执行程序时,会将程序中的主存地址变换成Cache地址,这个变换过程叫做地址变换。
Cache的地址映射方式有直接映射、全相联映射和组相联映射。假设某台计算机主存容量为l MB,被分为2048块,每块512B;Cache容量为8KB,被分为16块,每块也是512B。

基本的计算机都会是组相连映射,所以我只是总结下组相连的样子:

组相联映射

组相联映射实际上是直接映射和全相联映射的折中方案,其组织结构如图3-16所示。主存和Cache都分组,主存中一个组内的块数与Cache中的分组数相同,组间采用直接映射,组内采用全相联映射。也就是说,将Cache分成u组,每组v块,主存块存放到哪个组是固定的,至于存到该组哪一块则是灵活的。例如,主存分为256组,每组8块,Cache分为8组,每组2块。

image.gif

主存中的各块与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是前两种方法的折中方案,适度兼顾二者的优点,尽量避免二者的缺点,因而得到普遍采用。

下图更清晰一点:

image.png

根据上图我们知道:每隔 2^(c-r) - 1个字块都映射向同一个cache set。我们称这个距离为critical stride,critical stride 可有下列公式计算得:
(critical stride) = (number of sets) * (line size) = (total cache size) / (number of ways);

一次内存访问示意图

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章 计算机组成与体系结构 1.1 计算机系统组成 1.1.1 计算机硬件的组成 控制器。控制器是分析和执行指令...
    步积阅读 6,179评论 0 15
  • CPU在一段较短的时间内,是对连续地址的一段很小的主存空间频繁地进行访问,而对此范围以外地址的访问甚少,这种现象称...
    lintong阅读 4,529评论 0 2
  • Cache entries 数据在主存和缓存之间以固定大小的”块(block)”为单位传递,也就是每次从main ...
    yuwh_507阅读 38,443评论 3 23
  • 预读:CPU发起预读操作(现在基本分工给cache了),cache根据局部性原理将主存的子集调入,同时保存cach...
    SetsunaChiya阅读 5,095评论 0 0
  • 前言:继续补硬件知识 存储器的层次结构 列出的时间和容量会随时间变化,但数量级相对关系不变。 层次化存储器结构(M...
    madao756阅读 12,329评论 0 6