baron · 3月19日 · 四川

软件维护cache的三类指令

快速连接

👉👉👉【精选】ARMv8/ARMv9架构入门到精通-目录 👈👈👈


 title=

引流关键词: Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…
说明:
在默认情况下,本文讲述的都是ARMV8-aarch64架构,linux kernel 5.14

ARM提供三类软件维护cache的指令
在这里插入图片描述
总结如下:

  • Invalidation:其实就是修改valid bit,让cache无效。如果再次发起对该地址数据的读,新数据将会重新缓存到cache
  • Cleaning: 将cache line标记为dirty标,cache中的数据将回写到下一级cache或内存中
  • Zero:将一个block的cache数据清0.

Clean 和 Invalidate又可以结合在一起使用。所以对于cache的操作,又变成了四类指令:I、C、CI、Z
在这里插入图片描述

Linux Kernel提供三类API函数:

  • __flush_dcache_area() : Clean & Invalidate
  • __inval_dcache_area() : Invalidate
  • __clean_dcache_area_poc() : Clean

关注"Arm精选"公众号,备注进ARM交流讨论区。
图片1.png

推荐阅读
关注数
9442
内容数
191
以易懂、渐进、有序的方式,深入探讨ARMv8/ARMv9架构的核心概念。我们将从基础知识开始,逐步深入,覆盖最新的架构,不再纠缠于过时技术。本系列内容包含但不限于ARM基础、SOC芯片基础、Trustzone、gic、异常和中断、AMBA、Cache、MMU等内容,并将持续更新。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息