如何在Android(ARM)中读取L2缓存命中/未命中率?

时间:2011-04-01 05:49:54

标签: android arm cpu-cache

我找到了一种使用http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4237.html读取L1(数据和指令)缓存的方法。 我也想读L2性能计数器。是否有人知道如何使用ARM程序集或更高级别的Java来测量L2缓存命中率?

1 个答案:

答案 0 :(得分:3)

访问L2的性能数据取决于L2控制器。我不知道有多少不同的,但对于目前的A9平台,PL310非常常见,并且具有可以捕获请求和命中的事件计数器(http://infocenter.arm.com/help/index.jsp?topic = / com.arm.doc.ddi0246a / index.html)。虽然访问这些计数器可能很困难。 如果你很幸运,内核可能会提供这些寄存器的接口,但可能不是这样,并且它们无法从用户空间访问。在这种情况下,您必须找到适用于您的平台的内存映射并编写内核模块或类似内容。