标签:
一、存储器的层次结构
1.1 存储层次的性能参数
(1)存储层次的平均每位价格 C
假设存储器M的容量、访问时间、每位价格为S,T,C,则存储层次的平均每位价格C
(2)命中率 H 和不命中率 F
命中率是指CPU在访问存储系统时,在存储器M中找到所需信息的概率。
不命中率=1-命中率。
(3)平均访存时间 T
二、“Cache-主存”和“主存-辅存”层次
2.1 Cache-主存
2.2 主存-辅存
2.3 比较
三、Cache基本工作原理和结构
3.1 Cache的基本结构
在带Cache的存储器中, CPU的访存地址被分割成两部分:
① 块地址(块框架地址、块号):用于查找该块在Cache中的位置。
② 块内位移(块内偏移量):用于确定所访问的数据在块中的位置。
3.2 Cache的工作过程
(1)当CPU需要进行访存时,首先给出主存实地址。
(2)地址映像变换机构接收到主存实地址后,根据块号判定所访问的信息字是否在Cache中。
若在,通过地址变换机构变换为Cache块地址,在根据块内地址,对Cache进行存取。
若不在,则通知访问Cache块失效。然后通过CPU与主存之间的直接数据通路访问主存,将被访问字直接送给CPU,
并将包含该字的新块装入Cache。若Cache已满,则通过替换策略实现机构,调出某一Cache块,然后装入所需的块。
3.3 映像规则
(1)全相联映像
全相联映像是指主存中的任一块可以被放置到Cache中的任意一个位置。
(2)直接映像
直接映像是指主存中的每一块只能被放置到Cache中唯一的一个位置。
(3)组相联映像
组相联映像是指主存中的每一块可以被放置到Cache中固定的一个组中的任何一个位置。
3.4 替换策略
(1)随机法
随机选择被替换的块。
(2)先进先出(FIFO)
选择最早调入的块作为被替换的块。
(3)最近最少使用法(LRU)
选择近期最少被访问的块作为被替换的块。
3.5 写策略
(1)写直达法(WT)
在执行“写”操作时,不仅把信息写入Cache中相应的块,而且也写入下一级存储器中相应的块。
(2)写回法(WB)
在执行“写”操作时,只把信息写入Cache中相应的块,该块只有在被替换时,才被写回主存。
3.6 数据Cache、指令Cache及混合Cache
数据Cache :存放数据的Cache 。
指令Cache:存放指令的Cache。
混合Cache:既存放数据又存放指令Cache。
对数据的访问有读操作和写操作,对指令的访问仅是读操作。所以数据Cache需要进行写操作,而指令Cache则不需要进行写操作。
读入指令Cache的指令在块替换出去时不需将Cache中的指令写回主存,而读入数据Cache的数据,在进行块替换时,通常需要写回主存。
对相同的容量,指令Cache的命中率比数据Cache的高。
将混合Cache分离成指令Cache和数据Cache有助于提高Cache的命中率。
3.7 Cache性能分析
(1)平均访问时间
平均访问时间=命中时间+失效率×失效开销
平均访存时间=指令所占的百分比×(指令命中时间+指令失效率×失效开销)+数据所占的百分比×(数据命中时间+数据失效率×失效开销)
(2)程序执行时间
在考虑存储器对系统性能影响时,可以将系统性能描述为
CPU时间=(CPU执行周期数+存储器停顿周期数)×时钟周期时间
存储器停顿周期数 = “读”的次数 × 读失效率 × 读失效开销 + “写”的次数 × 写失效率 × 写失效开销
如果读、写失效率以及读、写失效开销相差不大
存储器停顿周期数 = 访存次数 × 失效率 × 失效开销
CPU时间 = IC × [CPIexe + 访存次数 / 指令数 × 失效率 × 失效开销] × 时钟周期时间
3.8 Cache优化
(1)8种降低失效率方法
增加Cache块大小
提高相联度
增加Cache的容量
Victim Cache
伪相联映像Cache
硬件预取
编译器控制的预取
编译器优化
(2)5种减少失效开销方法
读失效优于写
写缓冲合并
请求字处理技术
非阻塞Cache技术
采用两级Cache
(3)4种减少命中时间方法
容量小、结构简单的Cache
虚拟Cache
Cache 访问流水化
Trace Cache
3.9 降低Cache失效率的方法
(1)失效的原因
1)强制性失效:当第一次访问一个块时,该快不在Cache中,需从下一级存储器中调入Cache,这就是强制性失效。
2)容量失效:如果程序执行时所需的块不能全部调入Cache中,则当某些块被替换后,若又重新被访问,就是发生失效,
这种失效称为容量失效。
3)冲突失效:在组相联或直接映像Cache中,若太多的块映像到同一组中,则会出现该组中的某个块被别的块替换、然
后又被重新访问的情况,这样就发生了冲突失效。
(2)增加Cache块大小
(3)提高相联度
(4)增加Cache的容量
(5)Victim Cache
标签:
原文地址:http://blog.csdn.net/codeforcer/article/details/51327407