我们的定制电路板采用Altera / Intel Cyclone V SoC(ARM Cortex A9单核)。 我们运行U-Boot附带的POST DDR3 RAM测试。
我们的RAM配置为1GB,32Bit总线宽度@ 400MHz(2x Micron MT41J256M16)
我用U-Boots get_timer()函数做了时间测量。 我从memory_post_test()的入口到退出时间保证了时间。
在我们的初始配置中,DCACHE已开启。
5308 ms
接下来我在构建期间关闭了DCACHE(#define CONFIG_SYS_DCACHE_OFF)
3503 ms
最后我在构建期间将其重新打开,但在运行时在memory_post_test()中将其关闭 通过dcache_disable(),v7_outer_cache_disable()和invalidate_dcache_all()
1289 ms
我真的无法理解这些暗示。
我的期望:
delta_t_cache_on< delta_t_cache_off_buildtime< = delta_t_cache_off_runtime
测量结果:
delta_t_cache_off_runtime< delta_t_cache_off_buildtime< delta_t_cache_on
为什么在Cyclone V SoC上禁用缓存时,U-Boot POST DDR3 RAM测试会更快?
为什么在运行时和构建时禁用DCACHE之间存在很大的时间差异?
致以最诚挚的问候,
基督教