快速连接
👉👉👉【精选】ARMv8/ARMv9架构入门到精通-目录 👈👈👈
引流关键词: 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交流讨论区。