eric2013 发表于 2016-1-2 12:56:22

32位SDRAM写速度狂飙300MB/S,读速度90MB/S,需要专业的SDRAM测试方案来进一步测试

测试平台STM32-V6开发板。测试主频为168MHz。
感觉写速度有些虚高,但是写进去的,读出来又没有错,每次测试都是重新开关机测试。
时钟周期测试不太准确,因为没有做跨行测试,不能反映实际情况。
====================================================
MDK 3级优化效果:

===================================================
MDK 0级优化效果:


===================================================
读写测试都是展开进行测试,比如写测试,为了防止MDK优化,每次都写入不同数据

      iTime1 = bsp_GetRunTime();    /* 记下开始时间 */
    pBuf = (uint32_t *)EXT_SDRAM_ADDR;
    for (i = 1024*1024/8; i >0 ; i--)
    {
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;   

      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;   

      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;   

      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;
      *pBuf++ = j++;   
    }
    iTime2 = bsp_GetRunTime();    /* 记下结束时间 */
========================================================
大家会觉得怎么读速度比写速度慢呢,实际测试的确是这样的,估计CL参数对读速度影响较大。
现在需要一些专业的SDRAM测试方案,好的测试方案才能正确反映测试结果。



eric2013 发表于 2016-1-2 12:59:14

300MB/S的写速度是什么概念,因为SDRAM的时钟使84MHz,这个就相当于一个时钟周期就写入一个32位数据,太快了。有点不可思议。
200MB/S还准确些。

heitu103 发表于 2016-1-4 14:15:20

关机至少要等上一分钟,不然,写进去的数据还是在那儿。

eric2013 发表于 2016-1-5 10:59:39

回 heitu103 的帖子

heitu103:关机至少要等上一分钟,不然,写进去的数据还是在那儿。 (2016-01-04 14:15) images/back.gif

谢谢回复,应该不需要这么长时间,SDRAM每行都要在64ms内刷新一次,对电容充电。从这个来看,很快就没电了。

碧云天书 发表于 2016-1-19 01:09:57

这时候耗电量是多少?能测一个吗?

eric2013 发表于 2016-1-20 09:00:33

回 碧云天书 的帖子

碧云天书:这时候耗电量是多少?能测一个吗? (2016-01-19 01:09) images/back.gif

好的,回头我专门的测试下。

heitu103 发表于 2016-11-15 11:51:17

回 eric2013 的帖子

eric2013:谢谢回复,应该不需要这么长时间,SDRAM每行都要在64ms内刷新一次,对电容充电。从这个来看,很快就没电了。

(2016-01-05 10:59) images/back.gif

shuaigew88 发表于 2016-11-27 18:21:03

为什么我测试外部16位SRAM写才35MB/s,读就更慢了,才22MB/s左右,这个速度正常吗?看你的SDRAM都比SRAM快多了。

sblpp51 发表于 2016-12-19 17:54:49

使用16位和8位写写看:)

eric2013 发表于 2016-12-20 08:09:00

回 sblpp51 的帖子

sblpp51:使用16位和8位写写看:) (2016-12-19 17:54) images/back.gif

后面有时间了,测试下。

toutou205 发表于 2017-1-8 23:55:22

有没有源代码,我也想来看看~

eric2013 发表于 2017-1-9 08:35:58

回 toutou205 的帖子

toutou205:有没有源代码,我也想来看看~ (2017-01-08 23:55) images/back.gif

这个程序不知道搞到哪里去了,也有可能测试完毕后,被我给删掉了,你使用我楼主位的测试代码就行,这个就是主要部分代码。

toutou205 发表于 2017-1-9 20:20:39

Re:回 toutou205 的帖子

eric2013:

这个程序不知道搞到哪里去了,也有可能测试完毕后,被我给删掉了,你使用我楼主位的测试代码就行,这个就是主要部分代码。
images/back.gif

使用哪个地方的代码???? 楼主位???什么意思?

guoke 发表于 2017-6-6 16:05:14

请问有SDRAM相关的例程吗?

eric2013 发表于 2017-6-6 16:09:25

回 guoke 的帖子

guoke:请问有SDRAM相关的例程吗? (2017-06-06 16:05) images/back.gif

如果购买了V6板子,里面有SDRAM的例程。

如果没有购买,任意从这里下载一个emWin例子,里面有个SDRAM的驱动代码,里面也有测试函数,使用即可:http://www.armbbs.cn/forum.php?mod=viewthread&tid=19834

单枪舞九州 发表于 2017-6-14 08:40:45

大神啊

weiyuliang 发表于 2020-2-26 16:54:36

本帖最后由 weiyuliang 于 2020-2-26 19:27 编辑

感谢硬汉的辛苦的指导,终于出来正确结果;


编译器优化设置;

运行正常的工程文件




years 发表于 2023-5-24 13:49:39

我把写入改成这样速度就100多了这个是因为写入方式不一样吗

eric2013 发表于 2023-5-24 16:05:07

years 发表于 2023-5-24 13:49
我把写入改成这样速度就100多了这个是因为写入方式不一样吗

for循环非常占用时间开销。
页: [1]
查看完整版本: 32位SDRAM写速度狂飙300MB/S,读速度90MB/S,需要专业的SDRAM测试方案来进一步测试