OK6410A 开发板 (八) 95 linux-5.11 OK6410A linux高速缓存

高速缓存是什么

存储器在访问(读写)速度上有 金字塔等级架构

高速缓存 其实就是缓存, 高速只是缓存的一个特性(高等级的内存相对于低等级的内存)

缓存 其实 就是 将 低等级存储中的数据 放置到 高等级存储中

可以这么说,高等级存储 就是 低层级存储的缓存

在这里,我们有时候将 缓存 看成一个动词(将 低等级存储中的数据 放置到 高等级存储中 这个动作),有时候也被看成一个名词(高等级存储中的数据)

缓存的理论分析
源数据在哪个等级都有
	在cache等级有 二进制指令
	在物理内存等级有 二进制指令
	在物理内存等级有 页表数据
	在本地磁盘等级有 文件
	在本地磁盘等级有 二进制指令
	在网络磁盘等级有 文件

而我们总是想把 源数据 放置到内存金字塔中更高一层(甚至两层的)位置
	在cache等级有 二进制指令				, 想要将其缓存到 寄存器
	在物理内存等级有 二进制指令			, 想要将其缓存到 cache
	在物理内存等级有 页表数据				, 想要将其缓存到 TLB
	在本地磁盘等级有 文件 				, 想要将其缓存到 物理内存
	在本地磁盘等级有 二进制指令 			, 想要将其缓存到 物理内存
	在网络磁盘等级有 文件 				, 想要将其缓存到 本地磁盘
源数据在哪个等级都有
	在cache等级有 二进制指令
	在物理内存等级有 二进制指令
	在物理内存等级有 页表数据
	在本地磁盘等级有 文件
	在本地磁盘等级有 二进制指令
	在网络磁盘等级有 文件

当高等级资源紧张的时候我们总是 把源数据 放置到内存金字塔中更低一层的位置
	在物理内存等级有 二进制指令			, 想要将其swap到 本地磁盘
	在物理内存等级有 数据					, 想要将其swap到 本地磁盘

这样子,我们就可以使用 原先被 (数据/二进制指令) 占用的 物理内存 中 放置其他的二进制

当我们还要用这些 (数据/二进制指令) 的时候 ,我们再把他们 从 硬盘 回来

当内存再次紧张的时候, 我们会第二次 将其 swap 到本地磁盘
	在 将其 swap 到本地磁盘前,此时 同一个(数据/二进制指令) 存在于 内存和磁盘, 我们考虑
		如果第一次 load 到内存之后,页面没被修改,就不用swap到本地磁盘,(因为内存中的数据和磁盘是一摸一样的)
		如果第一次 load 到内存之后,页面有被修改,就需要swap到本地磁盘,(因为内存中的数据和磁盘是不一样的)


为了达到这种目的 : "对应同一个页表,本地磁盘页表数据和内存页表数据一样的情景下不再swap"
我们需要维护 脏的swap内存页 组成的 数据结构, 只 写回 此数据结构中的 成员

缓存需要解决的问题
	1. 什么时候缓存
	2. 缓存什么
	3. 从哪一级别缓存到哪一级别
	4. 保持缓存与源数据的同步
	5. 缓存什么时候被删除

高速缓存实例
  • 硬件 soc (与linux无关,与代码无关)
L1 cache
L2 cache
Lx cache
TLB
  • 文件系统-文件缓存
在文件系统这一块实现了 "高速缓存" 中的 文件系统相关部分
	1. dentry 高速缓存 dentry cache
	2. inode 高速缓存 inode cache
	3. super_block 高速缓存
	4. 页高速缓存 page cache
	5. 缓冲区高速缓存 buffer cache
	6. 块高速缓存 block cache
  • 文件系统-可执行二进制缓存
	1. load 二进制文件到 内存
	2. load share 文件到 内存

// 按道理 二进制文件也是 文件 , 可不可以按 文件缓存 分类呢?
  • 内存
交换高速缓存
	为了达到这种目的 : "对应同一个页表,本地磁盘页表数据和内存页表数据一样的情景下不再swap"
	我们需要维护 脏的swap内存页 组成的 数据结构, 只 写回 此数据结构中的 成员
其他高速缓存
  • slab 是相对于 buddy的 缓存
slab 机制 提供 kmem_cache_alloc
kmem_cache_alloc 得到的内存空间被称为 内存高速缓存 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值