1. 一些基本的定义:
cache是存储层次中第一层的名字,距离处理器最近的存储层次.
cache是根据局部性原理,将缓存的机制使用在重复利用经常发生的事件.
cache 命中:当处理器在cache中找到要访问的数据时
cache缺失:当处理器在cache中找不到要访问的数据
根据时间局部性原理:
我们将包含所需字的固定大小的数据集作为一个块,来源于存储器并放置于cache中,时间局部性表明该字在不久的将来再次被用到.
根据空间局部性,快内的其他数据也可能在不久的将来被访问到.
若发生cache缺失时,数据访问的时间取决于存储器的带宽与时延.时延决定了读取第一个字的时间,而带宽决定读取该块其他部分所需要的时间.
所有的数据并不是都驻留在内存中,若有虚拟存储器,那么一些数据将存放在磁盘中,地址空间通常被划分为一些固定大小的块,称之为页。
在任意时刻,每一页保存在内存或者磁盘中,当处理器要访问的数据项既不在cache中,也不在磁盘中,将发生页缺失的现象。此时处理器并不停止工作,而是切换到其他任务继续执行.
存储器结构,距离处理器越远,存储速度越慢,容量越大.
2.cache 性能
采用处理器执行时间公式来评估cache的性能.
存储器停顿周期:将处理器暂停工作,等待一次存储器周期访问的周期数
CPU执行时间=(CPU时钟周期数+存储器停顿周期数)*时钟周期时间
(大多数计算机都基于一个恒定速率的时钟,这些离散时间的事件称为跳数,时钟跳数,时钟周期)
存储器停顿周期数由缺失次数和每一次缺失代价决定:
存储器停顿周期数=缺失次数*缺失代价
=执行指令数*(缺失次数/执行指令数)*缺失代价
=执行指令数*(访问存储器数*缺失率)/指令数*缺失代价
缺失率:cache访问中产生缺失所占访问总数的百分比