我如何以编程方式测量(而非查询操作系统)L1和L2缓存(数据缓存)的大小和关联顺序?
对系统的假设:
- 它具有L1和L2高速缓存(也可能有L3,可能共享高速缓存), - 它可能具有类似于P4 +的硬件预取单元, - 它具有稳定的时钟源(tickcounter或良好的HPET以进行gettimeofday)。
不对操作系统做任何假设(它可以是Linux、Windows或其他操作系统),并且我们不能使用POSIX查询。
使用C语言编写,并且编译器优化可能已被禁用。
对系统的假设:
- 它具有L1和L2高速缓存(也可能有L3,可能共享高速缓存), - 它可能具有类似于P4 +的硬件预取单元, - 它具有稳定的时钟源(tickcounter或良好的HPET以进行gettimeofday)。
不对操作系统做任何假设(它可以是Linux、Windows或其他操作系统),并且我们不能使用POSIX查询。
使用C语言编写,并且编译器优化可能已被禁用。