计算机组成与设计-软件/硬件接口 存储器部分笔记
5. 存储器层次结构
5.1 介绍
principle of locality
TImporal locality
spatial localit
cache中的最小单元:块clock/line。通常两个层次存储器间的数据传递也是以块为单元
hit time:获取和判断一级的存储器是否命中的时间
miss penalty:未命中时操作所需时间,包括从下一级去除数据,将数据传出等等
5.2 直接映射
下一级数据地址 tag-index-offset
缓存到本级cache index: valid-tag-data
本级数据地址 index-offset
增大块的容量时,主存竞争cache中的位置,引起不命中率提高
从下一级取回block的时间由两部分组成:取第一个字的时间和余下部分的时间。这个时间也会增加,miss penalty也会增加。这个是主要原因
early start:当取回的block一取回就开始执行而不是等到全部取回再开始执行。一些处理器用这个方法来取指令,对于数据效果不好
缓存不命中会引起流水线暂停(in-order CPU)
处理指令不命中的过程:
指令寄存器中的内容无效,向下一级给出读操作信息
1. 当前PC-4为地址,用这个地址向主存给出读操作信息
2. 等待主存回应,将数据写入cache中,填充tag,有效位置位
3. 重新执行取值操作,这次缓存命中
写数据时:
write-through:向cache中写数据时同时也向下一级写数据,保证数据在这两级是一致的
不命中时,先从主存取回数据,在从cache和主存中更新数据
缺点:耗时太长
一种解决方案:使用write buffer:将数据写入cache和write buffer中后,处理器继续运行。当buffer满了后又执行写操作,处理器必须等待buffer里面有空位。当主存处理数据的比例低于处理器写数据的比例时,buffer没有作用。当高于时也会发生等待的情况,即写数据突然密集的发生。
write-back:cpu更新cache时,只是把更新的cache区标记一下,并不同步更新主存。只是在cache区要被新进入的数据取代时,才更新主存。这样做的原因是考虑到很多时候cache存入的是中间结果,没有必要同步更新主存。优点是CPU执行的效率提高,缺点是实现起来技术比较复杂。写数据不命中时要注意已经修改而没有写回的数据不应该被覆盖。
write-allocate:将块从主存中取出放在cache里面更新再写回,这样做可以简化设计
no-write-allocate:直接在主存里更新,一般用于大块数据的更新
5.3 测量和提升cache性能
提升性能的两种方式:
通过减少外部的两个内存对同一块cache竞争来减少不命中率
通过添加额外结构来减少惩罚时间miss penalty - multilevel cache
CPU等待内存的时间主要来自于不命中
write-through:
合理情况下write buffer stalls较小,可以忽略
Average momery access time AMAT
使用多级cache减小miss penalty:
当上级缓存所需的数据可以在下级找到时,miss penalty就变成从下级读取数据的时间
当上级缓存所需的数据在下级也找不到时,miss penalty变的更大
二级cache设计与单级cache设计不同
上级cache目标在于减少hit time,较小的cache size,block size 较小
下级cache目标在于减少penalty time,cache,block较大,因为access time在本级不是很重要,与上级相比使用 higher associativity来减小命中率
5.5 Dependable Memory Hierarchy
可靠性测量:
mean time to failure MTTF
annual failure rate AFR
服务终止的测量:
mean time to repair MTTR
mean time between failure MTBF = MTTF+MTTR
availability = MTTF / (MTTF+MTTR)
提高MTTF:
1. Fault avoidance: Preventing
fault occurrence by construction.
2. Fault tolerance: Using redundancy to allow the service to comply with
the service specification despite faults occurring.
3. Fault forecasting: Predicting the presence and creation of
faults, allowing the component to be replaced before it fails.
浙公网安备 33010602011771号