读取CPU缓存内容

kum*_*mar 11 hardware cpu caching cpu-cache

有没有办法读取CPU缓存内容?架构适用于ARM.

我使一系列地址无效,然后想确定它是否无效.虽然我可以读取和写入地址范围,无论是否有无效和检查失效,我想知道是否可以读取缓存内容

谢谢!!

Geo*_*ips 8

ARM9提供了缓存操作和测试寄存器,允许您检查缓存的状态.这是一个合理的起点:

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0151c/Chdcfejb.html

使用MCR和MRC指令将ICache和DCache维护到CP15寄存器7和9,​​由ARM v4T程序员的模型定义.使用MCR和MRC到CP15寄存器15可以进行附加操作.这些操作与使用寄存器7和9的操作相结合,以便能够完全用软件测试高速缓存.

这些是特权指令,因此可能无法在目标平台上访问它们.

我将从一个简单的程序开始,该程序转储所有缓存行的状态.这应该只是通过读取缓存标记提供的内存位置,为您提供足够的信息来读取缓存中的数据.