直接映射cache是计算机系统中使用的最简单的cache内存组织形式。
在直接映射的cache中,每个主存数据块都映射到特定的cacheline。直接映射cache的特点是其直接映射的结构和快速访问时间,但当多个内存数据块映射到同一cacheline时,可能会出现冲突。
上图显示了4 kB(2^12)cache,其中包含64(2^6)cacheline ,每个cacheline有16(2^4)个字,每个字4个字节。 因此,cache大小为2^6 × 2^4 × 2^2B = 2^12B = 4kB。
为了访问cache中的数据,CPU提供了一个32位内存地址。 cache控制器查找此地址,以确定请求的数据是否存在于任何cacheline中。
CPU提供的内存地址分为三个主要部分:标签tag、索引index和偏移offset。 分解一下这些概念在我们的4 KB cache中的工作原理,有64行cacheline,每行有16个32bit(4字节)的字。
偏移量offset指定正在访问的cacheline中的字。 我们需要四个位来表示偏移量,因为我们在cacheline中有16个字。 由于每个内存字是32位(4字节),因此地址中的两个最小地址位被忽略(始终为零)。
索引index确定正在访问cache中的哪条cacheline。 由于我们的cache包含