hpmicro / hpm_sdk

No PR will be accepted for now, but feel free to submit issue, very appreciated.
https://hpm-sdk.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
137 stars 37 forks source link

SDRAM的throughput性能明显低于其他产品 #33

Open MoeMoeMeow opened 6 months ago

MoeMoeMeow commented 6 months ago
基于SDK1.5.0,自制的HPM6360开发板,使用SDK提供的/drivers/femc/sdram样例进行测试,使用SEGGER IDE 8.10d。

程序在ILM上执行,CPU频率480MHz,AXI总线频率160MHz,FEMC频率166MHz(我理解在这里SDRAM Clk和FEMC同频率),用宏定义展开读写操作。结果大约是:DCache ON,读取131292.67 KB/s,写入117288.14 KB/s;DCache OFF,读取23566.82 KB/s,写入33216.41 KB/s。

把相同的测试函数移植到STM32H723的开发板上。程序在ITCM上执行,CPU频率480MHz,AXI总线频率240MHz,SDRAM控制器频率166MHz,SDRAM Clk频率100MHz。结果大约是:DCache ON,读取127069.32 KB/s,写入187245.71 KB/s;DCache OFF,读取54175.98 KB/s,写入187078.68 KB/s。接近理论的吞吐上限。

我尝试过把CPU频率提升到648MHz(无影响),AXI总线频率提升到240MHz(无影响),把FEMC频率提升到200MHz(提升约10%)。我还简单调试了一下FEMC配置的参数和编译器优化等级(O0->O3 fast),调整后的测试结果和SDK原有代码的结果相比基本没有变化。想了解一下这是硬件设计上的限制还是有其他优化的方向?谢谢。
MoeMoeMeow commented 6 months ago

补充一下,两个开发板都是16bit位宽的SDRAM,使用相同的参数。