最近在实际的项目中碰到这样的问题:
嵌入式系统DDR (RBC row, bank, columne), 每块1Gbit816, 两块由片选决定读写其中的一块.
Memory controller通过AXI连接在SOC中.
1.
在I-CACHE没有使能的情况下, 通过MC访问DDR有三路TRAFFIC, 分别是取指令, CPU刷/写FRAME BUFFER, DMA取/读FRAME BUFFER的数据
在低分辨率的情况下, 没有发现图像闪烁, 到了高分辨率的情况(1680*1050 60p, 720p, 或者1080p, RGB8888)下,就有图像闪烁
I-CACHE使能的情况下, 本以为MC访问DDR的原本三路TRAFFIC降到了二路, 情况能够改善,结果,问题更加严重
2.
同时, 将指令与FRAME BUFFER放在相同的DDR颗粒与不同的颗粒,也会产生不同的效果(闪烁与否)
关于这两个问题, 明显就在于对DDR/MC的了解与特定情况的分析上
不同的读写方式(RBC, BRC, B RH CH RL CL), 不同的刷新模式, DMA BURST的方式(长度), DMA OUTSTANDING的数目, CPU往FRAME BUFFER中写的方式(DWORD or LOAD ASSEMBLY).
原文地址:http://blog.csdn.net/u013140088/article/details/28855451