64KB cache容量,块大小为64字节. 采用2路组相联,LRU替换策略,写回法,写分配策略.
进入cache的物理地址被分为两个部分:
34位块地址,块地址只包括标志地址与索引地址
6位块内地址偏移(与64相关)
索引字段:确定哪一个标志将被检验,将该标志与处理器发出的访问地址中的标志进行比较.
索引字段的宽度决定于cache的大小,块大小,组相联度相关.
2^(index)=cache大小/(块大小*组相联度)=65536/(64*2)=512=2^9
索引字段宽度为9,则标志字段为34-9=25.
用索引的9位选择正确的块,再用偏移地址字段的3位确定需要的8个字节.(第二步)
从cache中读出2个标志之后,将从处理器发出的块地址中的标志字段部分进行比较,(第三步)
假定有一个标志字段匹配,则最后一步是通知处理器根据2选1多路选择器有效输出从cache中加载的正确数据.
上述采用写回法,一个替换掉的块可能已经被修改,因此不能简单的被丢弃,上述结构中使用1位重写位记录该块是否被修改:
若被修改,将该块数据和地址送至牺牲缓冲区,该牺牲缓冲区由8个牺牲块组成,将替换出来的牺牲块写回低一级存储器,如果牺牲缓存已满,cache必须停下等待.
上述给出了数据cache的工作流程,但是并不能支持处理器所有的存储器访问请求,处理器还需要处理指令.
一体cache同时进行指令与数据的处理,这样会造成一体cache的性能瓶颈.
处理器知道它发射的是指令地址还是数据地址,从而使得处理器和存储器层次结构间的带宽得以加倍.