CPU缓存结构与CPU缓存寻址

110 阅读1分钟

CPU缓存结构与CPU缓存寻址: 物理内存地址按照 Tag、Set、Offset 来划分,这里举的例子是 2路组相联缓存,即Way=2,所谓Way,即使Set相同的情况下,缓存最多支持的Tag的数量。

假设要读的物理内存地址:0x2fbbc030,长度为44位,转成二进制为 10 1111 1011 1011 1100 0000 0011 0000。

假设划分分别是: Tag 占 30 位,为 1011111011101111,即 0xbeef Set 占 8 位,为 00000000,即 0x0 Offset 占最后 6 位,为 11 0000,即 0x30

然后先根据Set=0(即Index),找到两个缓存行,对比Tag并且比较Valid(是否为1,表示该缓存行有效),然后根据Offset的位置 48 进行访问。

参考: 《现代操作系统——原理与实现》P19