计算机组成与设计-软件/硬件接口 存储器部分笔记

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.

posted @ 2017-11-15 08:46  Nival  阅读(149)  评论(0)    收藏  举报