存储系统层次结构
1. Cache-主存层次
Cache基本原理与概念
● 局部性原理
在一段时间内,对局部范围内的存储器频繁访问,而对其它区域很少访问的现象称为程序访问的局部性。
大量典型程序运行情况分析结果表明,程序访问具有局部性。
● 基本构成
存储体:基本单位为字,若干个字构成一个数据块;
地址映射变换机构:用于将主存地址变换为Cache地址,以利用CPU发送的主存地址访问Cache;
替换机构:更新Cache中数据时使用的机制;
相联存储器:Cache的块表,快速指示所要访问的信息是否在Cache中;
读写控制
● 读/写操作
读操作:
CPU发出有效的主存地址
经地址变换机构,变换为可能的Cache地址
查找块表,判断所要访问的信息是否在Cache中
若在,则CPU直接读取Cache获取数据
若不在,则CPU访问主存,并判断Cache是否已满
若Cache未满,将该数据所在块从主存中调入Cache
若Cache已满,使用某种替换机制,使用当前数据块替换掉Cache中的某些块
写操作:
CPU发出有效的主存地址
经地址变换机构,变换为可能的Cache地址
查找块表,判断所要访问的信息是否在Cache中
若不在,则使CPU直接写主存数据
若在,则使用某种写策略将数据写入Cache
● 性能指标
命中率:CPU访问cache的次数占总访问次数的比例。设NC表示cache完成存取的总次数,NM表示主存完成存取的总次数,h为命中率,则有: h=NC/(NC+NM)。
影响命中率的主要因素:Cache 容量、Cache中块的大小。
平均访问时间:若tC表示命中时的cache访问时间,tm表示未命中时的主存访问时间,则cache/主存系统的平均访问时间ta为: ta=htc+(1-h)tm。
用e表示访问效率。 设 r = tm/tc 则有: e= tc/ ta=1/(r+(1-r)h)。
命中率h越接近于1越好,r值以5~10为宜,不宜太大。
Cache地址映射
Cache的容量小于主存,需要采用某种算法确定主存和Cache中块的对应关系。