美文网首页
主存与Cache的3种映射方式

主存与Cache的3种映射方式

作者: 星空无痕 | 来源:发表于2023-04-20 20:59 被阅读0次

    计算机组成原理Cache的3种映射方式(直接映射,全相联映射,组相联映射)

    一、为什么引入Cache?

    答: Cache是一种高速缓冲存储器,他位于cpu和主存之间,是为了提高cpu对主存的访问速度。

    为什么主存与Cache之间要进行映射?

    答:前面我们知道,Cache是为了提高cpu对主存的访问速度。故cache可看做是一种介质,而这种介质是主存的替代品,而cpu只认主存的单元地址,所以我们需要把主存的地址映射到cache,这样cpu直接访问cache即相当于间接的访问主存,从而提高了cpu对主存的访问速度。

    二、三种映射方式

    1.直接映射

    直接映射:说白了就是一对一的映射方式。前者 ‘一’ 指的是主存中的任意一块,主存中的不同分区下的块号,后者 ‘一’ 指的是cache中特定的某一个块。

    直接来看下面主存与cache之间的直接映射,如下图:

    从上面图形分析着手:左边的cache被分成了n行,其次右边主存部分被分成了m个区,其中每个区被分成了n块,n块和n行不是巧合,这恰好说明了cache是主存的替代品,其次我们还发现每个区中的每一块都是有规律的映射到cache中的一个特定行中。

    所以在主存,区中的某一块映射到cache中的某一个特定行有如下规律

    其中上面的i指的是cache中的特定行,j指的是主存区中的块号,n指的是cache中的总行数或每个主存区中的总块数。

    相对应的地址格式

    直接映射总结:

    优点:地址映射方式简单,数据访问时只需要检查块号是否相等即可,因而能得到比较快的访问速度,硬件设备简单;

    缺点;替换操作频繁,命中率比较低。

    2.全相联映射

    全相联映射即主存块可以映射到cache中的任意一块,即说白了就是一对多,‘一’指的是主存中的任意一块,‘多’指的是cache的每一行,即主存块可以映射到cache中的任意一块。

    全相联映射总结:

    优点:命中率比较高,cache存储空间利用率高;

    缺点:访问相关存储器时,每次都要与全部内容比较,速度低,成本高,因而利用少。

    3.组相联映射

    组相联映射:说白了就是基于直接映射和全相联映射的一个比较折中的方式,即组内是全相联映射,组间是直接映射。就是一对N,‘一’指的是主存中的任意一块,‘N’ 指的是cache的每组内的块数,即主存块可以映射到cache中的任意一组的若干块。

    组相联映射是直接映射和全相联映射的一个折中形式,那么必然也就存在下面俩种特殊的形式:

    1、当cache中每组内的块数变为1时,这就变成了直接映射;

    2、当cache中只有一组时,这就变成了全相联映射。

    组相联映射相对应的主存地址格式(和直接映射方式很像,只是块号变成了组号):

    组相联映射总结:

    优点:块的冲突概率比较低,块的利用率大幅度提高;

    缺点:实现难度和造价要比直接映射高。

    相关文章

      网友评论

          本文标题:主存与Cache的3种映射方式

          本文链接:https://www.haomeiwen.com/subject/pqkdjdtx.html