万年老竹

V1

2023/04/03阅读:18主题:默认主题

简谈缓存

简谈缓存

缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。缓存的设置是所有现代计算机系统发挥高性能的重要因素之一。(来自百度百科)

一、Cache的基本原理

Cache的工作策略是基于“局部性原理”而建立的,局部性原理分为时间局部性与空间局部性。

1) 时间局部性

时间局部性是指同一段指令或数据在一段时间内被多次调用。

2) 空间局部性

空间局部性是指在近未来调用的数据或指令的存储位置很大概率在当前调用的指令或数据附近

二、内存与缓存的地址映射

缓存的读写速度远高于内存的读写速度,但因此缓存的成本过高,缓存的容量远小于内存。 内存中的数据写入缓存中时,为了保证可以重新找到数据在内存中的位置,内存与缓存直接应该有地址映射的规则。

1)直接相联映射

缓存中的块数=内存块数%缓存块数

缓存地址:主存块号(标记位数 + 行号位数) + 块内地址

优点: 结构简单,溯源容易,不需要额外的映射表。

缺点: 替换死板,无法利用空余的缓存空间

2)全相联映射

内存中的数据和指令可以写入缓存中的任何位置

缓存地址:主存块号(主存块号位数) + 块内地址

优点: 命中率比较高,cache存储空间利用率高

缺点: 存储映射信息的相联存储器庞大,比较电路复杂,查询相联存储器时每次都要与全部内容比较,速度低成本高。

3)组相联映射

将缓存空间分成m组,组间使用直接相联映射,组内使用全相联映射。

缓存地址:主存块号(标记位数 + 组号位数) + 块内地址

三、替换算法

当缓存被写满且读未命中时,必须将缓存内部分内容移除。缓存中应存放哪些数据、应该移除那些数据是影响读写命中率进而影响机器性能的重要影响因素。

1) 读操作

算法: 随机算法(RAND)、先进先出算法(FIFO)、近期最少使用算法(LRU)、最不经常使用算法(LFU)

2) 写操作

目的: 确保cache与主存中数据的一致性

写命中时: (1) 回写法 CPU→chche→主存 (2) 全写法 CPU→chche、CPU→主存

写不命中时: (1)写分配法 (2)非写分配法

分类:

后端

标签:

操作系统

作者介绍

万年老竹
V1