当前位置: 首页 > news >正文

缓存与内存;缺页中断;缓存映射:组相联

文章目录

  • 内存(RAM)与缓存(Cache)
  • Memory Management Unit
      • 缺页中断
  • 多级缓存
      • 缓存替换策略
      • 缓存的映射方式

内存(RAM)与缓存(Cache)

  • 缓存: CPU 内部或非常靠近的高速存储,超快
  • 内存 (Random Access Memory): 是磁盘的缓存 【纳秒】
  • 磁盘:
    • 固态硬盘 SSD:Solid State Drive 【微秒】
    • 机械硬盘 HDD:Hard Disk Drive 【毫秒】
CPU Register(寄存器)   ← 几十个字节,最快
↓
L1 Cache(一级缓存)     ← KB 级,纳秒级访问
↓
L2/L3 Cache
↓
RAM(内存)              ← GB 级,百纳秒级访问
↓
SSD / HDD(磁盘)        ← 秒级或毫秒级访问

Memory Management Unit

MMU(Memory Management Unit,内存管理单元)

缺页中断

Page Fault

当CPU 通过虚拟地址访问内存时,会通过 MMU 将虚拟地址转换为物理地址。
如果某个虚拟页当前没有映射到物理内存中,MMU 就会触发一个 缺页中断(Page Fault),交由操作系统处理。

原因:

  • 未分配:程序第一次访问一个尚未分配物理内存的虚拟页。
  • 该页被置换到磁盘了:操作系统为了节省内存,把部分不活跃页换出到磁盘,访问时需重新加载。
  • 访问权限错误:如 对只读页进行写操作
  • 非法访问:不属于该进程的

处理流程:

  1. CPU 检测到缺页,触发中断。
  2. 中断处理器进入内核态,调用页错误处理函数。
  3. 操作系统根据页表和进程内存映射信息判断缺页原因。
    如果是合法访问(页在磁盘 swap 中),则从磁盘读入物理页。
    如果是不合法访问(野指针、非法地址等),则发送 SIGSEGV 信号给进程,通常导致程序崩溃。
  4. 更新页表
  5. 恢复用户态
  • 软缺页(Minor Page Fault)
    虚拟页尚未映射,但实际数据已在内存中(如共享页)
  • 硬缺页(Major Page Fault)
    页不在内存中,必须从磁盘读取。

多级缓存

Multi-level Cache

缓存(Cache)是介于 CPU 和主存(RAM)之间的高速存储器

CPU 在访问数据时,依次查询:

L1 → L2 → L3 → RAM → 磁盘

一旦某级缓存命中,就不再往后找(称为 Cache Hit),否则就是 Miss,继续向后查询。

缓存替换策略

Cache Replacement Policy

  1. LRU(Least Recently Used)最少使用
  2. FIFO(First-In First-Out)先进先出
  3. LFU(Least Frequently Used)最不常用
  4. Random 随机替换
  5. CLOCK 算法(近似 LRU)

缓存的映射方式

缓存到哪个位置呢?

  • 直接映射(Direct-Mapped Cache)【一路组相联】
    每个内存块 只能映射到缓存中的一个固定位置。冲突失效高
  • 全相联(Fully Associative Cache)
    每个内存块 可以放到缓存中的任意位置。但查找需要遍历所有缓存块
  • 组相联缓存(Set-Associative Cache)
    把缓存划分为多个 集合(Set),每个集合中有多个 块(line)。
    一个内存块可以映射到某个集合中任意一个块。

二路组相联

假设缓存有 8 个块,划分为 4 个集合,每个集合有 2 个块:

Cache:
Set 0: [块0, 块1]
Set 1: [块2, 块3]
Set 2: [块4, 块5]
Set 3: [块6, 块7]

某个地址会通过 hash 函数(如 地址 % 4)映射到某个 Set
在Set内自由放置,如果已满,则使用替换策略。

相关文章:

  • GTS-400 系列运动控制器板(六)----修改编码器计数方向
  • 数据结构图论基础知识(一)
  • 【在阿里云或其他 CentOS/RHEL 系统上安装和配置 Dante SOCKS5 代理服务】
  • k8s-1.28.10 安装metrics-server
  • 【k8s】PV,PVC的回收策略——return、recycle、delete
  • ESP32音频识别(FFT)实测调整(ESP-IDF 5.4)
  • 蓝桥杯常考的找规律题
  • 小白工具视频转MPG, 功能丰富齐全,无需下载软件,在线使用,超实用
  • hi3516cv610构建音频sample工程代码步骤
  • 【Nova UI】六、SASS 赋能组件库:通用方法与混入的变革力量
  • 【FreeRTOS】简介
  • 使用resend通过调用api接口的方式发送邮件,可以自定义域
  • 模型 螃蟹效应
  • 前台调用接口的方式及速率对比
  • 品牌如何通过朝日新闻出海日本?——某企业日本媒体发稿实战
  • XSS的应用
  • 工厂模式:工厂方法模式 和 抽象工厂模式
  • 闲聊人工智能对媒体的影响
  • 20.4 显示数据库数据
  • rpm命令详解
  • 刘庆峰:关税对当前业务影响较小,有信心和底气在底座大模型上做到第一阵营
  • 泡泡玛特一季度整体收入同比增超1.6倍,海外收入增近5倍
  • 龚正会见巴西里约热内卢州州长克劳迪奥·卡斯特罗
  • 全国人大常委会调研组在宁波调研,张庆伟带队钟山易炼红参加
  • 41岁知名学者陈昊因病骤然离世,北大再发讣告缅怀
  • “五一”假期前多地规范旅游市场:要求明码标价,禁止强迫购物