缓存读写数据路径及不同缓存结构解析
1. 缓存读写操作原理
1.1 缓存写操作
缓存写操作始于将 CPU 地址的标签字段与标签内存中被寻址集合的所有标签字段进行比较。若比较成功,会产生命中信号,促使 CPU 将数据写入缓存内存中指定的集合(和块偏移)地址。
以一个 32 位、四路组相联缓存为例,该缓存包含 22 位标签字段、因 8 位索引字段而有 256 个集合,以及因 2 位块偏移字段而每个块中有四个字。写过程步骤如下:
1. 使用 8 位索引字段确定集合地址。
2. 如图 6.188 所示,在标签内存的输出阶段,使用异或非门(XNOR - gates)将该集合地址处的所有四个标签字段分别与 CPU 标签进行比较。
3. 若集合地址处的某个标签与 CPU 标签比较成功,产生命中信号,CPU 可将一块数据写入相应的集合地址。
4. CPU 数据通过置于缓存内存输入阶段的三态缓冲器路由,并通过索引字段和块偏移字段写入指定地址。
1.2 缓存读操作
缓存读操作与写操作类似,但为缩短缓存读取访问周期,缓存和标签内存会同时被访问。
同样以四路组相联缓存为例,读操作步骤如下:
1. 8 位索引字段定义集合地址,同时从标签内存读取四个标签块,从缓存内存读取四个数据块。
2. 每个标签分别与 CPU 地址中的 22 位标签字段进行比较,由 22 组两位异或非门(XNOR - gates)后跟一个 22 位与门生成命中信号。
3. 这些命中信号随后用作缓存内存输出处的 4 - 1 多路复用器(MUX)的选择输入,以选择一个缓存块。
4. 通过 2 位