cache索引格式与页着色
cache索引结构和页着色问题
cache 结构
Cache的特征 :
Cache的内容是主存储器内容的一个子集 ,Cache没有程序上的意义,只是为了降低访存延迟 ,处理器访问Cache和访问存储器使用相同的地址。由于cache是子集而且cache和内存不一样不能天然的寻址,所以cache索引里面需要保留地址。
Cache的结构特点 :
- 同时存储数据和地址
- 通过地址的比较判断相应数据是否在Cache中
- 需要考虑所需要的数据不在Cache中的情况
- 替换机制,写策略等

全相联
全相连中内存单元可以映射到任意块中,offset是块内偏移。这种连接方法命中率高,但是需要遍历所有的tag来搜索复杂度较高

直接相连

组相联
组相联介于直接相连和全相联之间

以二路组相联为例,每个内存块可以放到任意一路cache中。
cache索引
物理地址,实tag

此时访问的流程是这一的:虚地址先通过TLB转换为物理地址,再访问cache找到对应的内存

此时offset是块内偏移。例如cache的块大小如果为32B那么offset就是5位
index指的是cache块在cache里面的索引。如果cache的大小是64KB.cache的块大小如果为32B。对应全相联的cache,index是0位。
对于直接相连的cache index是11位。对于二路组相联的index是10位,对于四路组相联的index是9位。
tag的位数是物理地址位数-index位数-offset位数。这里的tag是用于索时物理地址与存在cache块里面的tag进行比对,判断是否命中。
所以cache里面存的tag就是物理地址的高几位(和tag位数一致)
虚地址,虚tag
offset和index的计量和上面物理地址的一致,不同的是tag是虚地址位数+进程号位数-index-offset。
虚tag的物理意义: