1、主存与cache地址映射概述
主存数据如何迁至Cache才能实现快速查找?
常见的三种映射方式:
全相联
直接相联
组相联
2、全相联映射的工作原理
主存分块,Cache分行,两者大小相同。
设每块4个字,主存大小为1024个字,则第61个字的主存地址为:
00001111 01 (块号 块内地址)
主存分块后地址就从一维变成二维
映射算法:主存的数据块可映射到Cache任意行,同时将该数据块地址对应行的标记存储体中保存
全相联映射的特点:
1、cache利用率高
2、块冲突率低
3、淘汰算法复杂
应用场合:
小容量Cache
3、直接映射的工作原理
主存分块,Cache分行,两者大小相同
主存分块后还将以cache行数为标准进行分区
设每块4个字,主存大小为1024个字,Cache分为4行,第61个字的主存地址为:
000011 11 01(区号,区内块号,块内地址)
主存地址从一维变成三维
映射算法:
Cache共n行,主存第j块号映射到Cache的行号为:
i=j mod n
即主存的数据块映射到Cache特定行。
直接映射的特点
Cache利用率低
块冲突率高
淘汰算法简单
应用场合:
大容量Cache
4、组相联映射的工作原理
主存分块,cache分行,两者大小相同
Cache分组(分组中包含K行),本例假定K=4
主存分块后还将以Cache组数为标准进行分组(本例中,Cache共8行,两组,所以Cache每两个块就分一个组)
设每块4个字,主存大小为1024个字,Cache分为4行,第61个字的主存地址为
09000111 1 01 (组号,组内块号,块内地址)
主存地址从一维变成三维
映射算法:
Cache共n组,主存第j块号映射到Cache的组号为:
i=j mod n
即主存的数据块映射到Cache特定组的任意行。
组相联映射各方面特点都位于全相联映射和直接映射之间。