周末花了一个下午看了一下《计算机体系结构量化方法》的附录B,是有关Cache原理的介绍。这本书写的还真是好啊,看似一块大砖头,本以为废话很多,其实多数描述很简练,微言大义。例如前些日子写了一个带宽和时延的关系,这本书一句话就写明白了:“时延决定数据第一个接收Bit的时间,带宽决定接收剩余数据的时间”,真实很牛X啊。
画了一张小图总结Cache的基本结构。
CPU的处理器地址(我理解就是经过转换后的最终的硬件地址了)被划分为三个部分,Tag,Index,Offset。寻址的时候,首先用Index寻址Cache Set(这个是Cache相关性的产物)。Tag用作Key在Cache Line Set之中匹配Cache Line。Offset用于得到最终对象地址。其他很多概念和Cache Policy就是基于这个简单的数据结构图演化出来的。