【计算机组成原理】存储系统(五) | 您所在的位置:网站首页 › cache三种映射方式的特点 › 【计算机组成原理】存储系统(五) |
【计算机组成原理】存储系统(五)—— Cache 的映射方式与写策略
一、Cache - 主存的映射方式(一)、全相联映射(随意放)(二)、直接映射(只能放固定位置)(三)、组相联映射(可放到特定分组)(四)Cache - 主存的映射方式总结
二、Cache 替换算法(一)、随机算法(RAND)(二)、先进先出算法(FIFO)(三)、近期最少使用算法(LRU)(四)、最不经常使用算法(LFU)(五)、Cache 替换算法的总结
三、Cache 写策略(一)、写命中1. 写回法2. 全写法
(二)、写不命中1. 写分配法2. 非写分配法
(三)、多级Cache(四)、Cache 写策略的总结
一、Cache - 主存的映射方式
全相联映射:主存块可以放在 Cache 的任意位置。 直接映射:每个主存块只能放到一个特定的位置: Cache块号 = 主存块号 % Cache总块数 组相联映射:Cache块分为若干组,每个主存块可放到特定分组中的任意一个位置: 组号 = 主存块号 % 分组数 (一)、全相联映射(随意放)
直接映射,主存块在Cache中的位置 = 主存块号 % Cache总块数。 若 Cache总块数 = 2 n 2^n 2n 则主存块号末尾n位直接反映它在Cache 中的位置。将主存块号的其余位作为标记即可。 此时主存地址为: n 路组相联映射 —— n块为一组 eg:2路组相联映射——2块为一组 组相联映射,所属分组 = 主存块号 %分组数 CPU 访问主存地址1…1101001110 : ①根据主存块号的后 2位确定所属分组号。 ②若主存块号的前20位与分组内的某个标记匹配且有位=1, 则Cache命中,访问块内地址为 001110的单元。 ③若未命中或有效位=0,则正常访问主存。 (四)Cache - 主存的映射方式总结前面介绍了 Cache 与主存的映射,说明了 Cache块映射到主存块的位置。但是未说明当 Cache 内存满了时应该选择哪个 Cache 进行替换,这当中涉及到 Cache 替换算法。 (一)、随机算法(RAND)随机算法(RAND, Random)——若Cache已满,则随机选择一块替换。 随机算法——实现简单,但完全没考虑局部性原理,命中率低,实际效果很不稳定。 (二)、先进先出算法(FIFO)先进先出算法(FIFO, First In First Out)—— 若Cache已满,则替换最先被调入Cache 的块。 先进先出算法 —— 实现简单,最开始按#0#1#2#3放入Cache,之后轮流替换 #0#1#2#3 。FIFO依然没考虑局部性原理,最先被调入Cache的块也有可能是被频繁访问的。 近期最少使用算法(LRU, Least Recently Used )—— 为每一个Cache块设置一个“计数器”,用于记录每个 Cache 块已经有多久没被访问了。当 Cache 满后替换“计数器”最大的。 ①命中时,所命中的行的计数器清零,比其低的计数器加1,其余不变; ②未命中且还有空闲行时,新装入的行的计数器置0,其余非空闲行全加1; ③未命中且无空闲行时,计数值最大的行的信息块被淘汰,新装行的块的计数器置0,其余全加1。 最不经常使用算法(LFU, Least Frequently Used )—— 为每一个Cache块设置一个“计数器”,用于记录每个Cache块被访问过几次。当Cache满后替换“计数器”最小的。 新调入的块计数器=0,之后每被访问一次计数器+1。需要替换时,选择计数器最小的一行。 写回法(write-back) —— 当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存。 减少了访存次数,但存在数据不一致的隐患。 2. 全写法全写法(写直通法,write-through) —— 当CPU对Cache写命中时,必须把数据同时写入 Cache 和主存,一般使用写缓冲(write buffer)。使用写缓冲,CPU写的速度很快,若写操作不频繁,则效果很好。若写操作很频繁,可能会因为写缓冲饱和而发生阻塞。 访存次数增加,速度变慢,但更能保证数据一致性。Cache块被替换时无需写回。 (二)、写不命中 1. 写分配法写不命中时,把主存中的块调入Cache,在Cache中修改。 搭配写回法使用。 写回法(write-back) —— 当CPU对Cache写命中时,只修改Cache 的内容,而不立即写入主存,只有当此块被换出时才写回主存。 2. 非写分配法非写分配法(not-write-allocate)——当 CPU 对 Cache 写不命中时只写入主存,不调入Cache。搭配全写法使用。 全写法(写直通法,write-through) —— 当 CPU 对 Cache 写命中时,必须把数据同时写入Cache 和主存,一般使用写缓冲(write buffer)。 (三)、多级Cache现代计算机常采用多级Cache,离CPU越近的速度越快,容量越小,离CPU越远的速度越慢,容量越大。 |
CopyRight 2018-2019 实验室设备网 版权所有 |