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

Linux arm cache 入门

  1. ARM 架构下 Cache 的基本概念

  • Cache 层级:L1 I-Cache、L1 D-Cache、L2(统一 Cache),部分 SoC 还有 L3

  • Cache 特性:写分配 / 非写分配,写回(write-back)/ 写直达(write-through)

  • 一致性问题:SMP 多核下的 Cache 一致性协议(MESI/MOESI 思路)

  • ARM 内存域划分:Normal memory vs Device memory


  1. ARM Cache 维护指令族

ARMv8/v7 都提供了一组专门的 cache maintenance instructions,在内核驱动和系统软件里很常见。

指令分类

  • I-Cache(指令 Cache)相关

    • IC IVAU:Invalidate I-Cache by VA to PoU

    • IC IALLUIS:Invalidate all I-Cache inner shareable

    • IC IALLU:Invalidate all I-Cache (non-shareable)

  • D-Cache(数据 Cache)相关

    • DC CIVAC:Clean & Invalidate D-Cache line by VA to PoC

    • DC CVAC:Clean D-Cache line by VA to PoC

    • DC IVAC:Invalidate D-Cache line by VA to PoC

    • DC ZVA:Zero a cache line by VA

    • DC CVAU:Clean D-Cache line by VA to PoU

关键参数

  • PoU (Point of Unification)

    • 指指令流和数据流统一的位置,通常是 I-Cache 之前的层级。

    • 比如写代码到内存后,需要清到 PoU,确保 I-Cache 能看到。

  • PoC (Point of Coherency)

    • 体系保证所有 master 观察到一致性的点。

    • 通常是 L2 Cache 出口到内存的接口。

  • PoP (Point of Persistence)

    • 数据被写入“持久存储”的点(比如 NVM、持久内存系统)。

    • 在 ARMv8.2+ 中提出,和持久化内存相关。

使用场景举例

  • 代码自修改 / 动态加载代码:先写 D-Cache,再清到 PoU,最后无效 I-Cache。

  • DMA 缓冲区:CPU 和外设共享内存时,需要 Clean / Invalidate 到 PoC。


  1. Linux 内核中的 Cache 操作接口

内核提供的 API

在 Linux 内核(arch/arm64/include/asm/cacheflush.h)中常见的接口有:

高层 API

  • dma_map_single() / dma_unmap_single()

    • 用于驱动中确保 DMA 缓冲区 Cache 与内存一致

  • dma_sync_single_for_device() / dma_sync_single_for_cpu()

    • 针对 CPU/设备交替访问的场景

dma摸之前clean,cpu摸之前inv

http://www.dtcms.com/a/361038.html

相关文章:

  • 【K8s】整体认识K8s之监控与升级/ETCD的备份和恢复/kustomization/CRD
  • MySQL DBA请注意 不要被Sleep会话蒙蔽了双眼
  • Python云原生与Serverless架构:2025年的开发新范式
  • 005 从会议全貌到模型本质:会议介绍与语言模型概述的深度融合
  • DevOps篇之通过GitLab CI 流水线实现k8s集群中helm应用发布
  • 深入解析 PyTorch 核心类:从张量到深度学习模型
  • 秋招笔记-8.29
  • 20.29 QLoRA适配器实战:24GB显卡轻松微调650亿参数大模型
  • 从理论到实践,深入剖析数据库水平拆分的安全平滑落地
  • 6 种可行的方法:小米手机备份到电脑并恢复
  • QT中的HTTP
  • 贝叶斯向量自回归模型 (BVAR)
  • 佐糖PicWish-AI驱动的在线图片编辑神器
  • 齿轮里的 “双胞胎”:分度圆与节圆
  • 3-6〔OSCP ◈ 研记〕❘ WEB应用攻击▸WEB应用枚举B
  • Coolutils Total PDF Converter中文版:多功能PDF文件转换器
  • DL00212-基于YOLOv11的脑卒中目标检测含完整数据集
  • 专题:2025全球新能源汽车供应链核心领域研究报告|附300+份报告PDF、数据仪表盘汇总下载
  • Ubuntu 服务器实战:Docker 部署 Nextcloud+ZeroTier,打造可远程访问的个人云
  • 开源模型应用落地-模型上下文协议(MCP)-为AI智能体打造的“万能转接头”-“mcp-use”(十二)
  • 2025年AI智能体开源技术栈全面解析:从基础框架到垂直应用
  • CSS 选择器完全指南:从基础到高级的全面解析
  • lesson51:CSS全攻略:从基础样式到前沿特性的实战指南
  • 面试常考css:三列布局实现方式
  • 前端必看:为什么同一段 CSS 在不同浏览器显示不一样?附解决方案和实战代码
  • LangChain开源LLM集成:从本地部署到自定义生成的低成本落地方案
  • 开源 React 脚手架推荐
  • LeetCode每日一题,2025-09-01
  • 视频提取文字用什么软件好?分享6款免费的视频转文字软件!
  • vizard-将长视频变成适合社交的短视频AI工具