按以下流程测L2cache,发现一个现象,请教一下大家。
芯片是xilinx的zynq,L2 size = 512K。
程序本身加载到0x100000。
关闭所有中断。
使能L1和L2。
把0xfc000000开始的512K数据lock到L2中。
反复读写0x140000开始的64K内存。这样,L2虽使能,但却恒定miss,程序能跑890遍/秒。
跑一段时间后,执行DisableL2Cache。程序能跑865遍/秒。
为什么,L2 enable时,即使恒定miss,也比L2 disable 快一些?
请问在os的情况下如何把数据lock在L2 cache的特定区域呢?相关的指令是什么呢?可以去哪查找资料呢?望您指教!