硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2762|回复: 6
收起左侧

[FlexRAM] 在RAM运行和在外部HypherFlash运行速度对比,差距也太离谱了

[复制链接]

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
发表于 2018-2-19 23:33:24 | 显示全部楼层 |阅读模式

写了个简单程序对比下
源代码:(100万次浮点运算, 1ms的systick中断统计时间)
        {
                int32_t t1, t2;
                uint32_t i;
                static float ff = 1.0;
               
                t1 = bsp_GetRunTime();
               
                for (i = 0; i < 100*10000; i++)
                {
                        ff = ff * 3.14159;
                }
               
                t2 = bsp_GetRunTime();
               
                printf("%f, %dms", ff, t2 - t1);
               
                while (1);
        }



在内部RAM运行的执行结果:
-516841996288.000000, 321ms


在SDRAM运行的执行结果
-516841996288.000000, 325ms

在HyperFlash的运行执行结果:
-516841996288.000000, 6214ms

printf打印浮点结果是错误的,这个先不管。运行速度相差19倍是什么鬼?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2018-2-20 00:11:20 | 显示全部楼层
这个的测试结果的确很离谱,估计是工程配置有问题。
下面是Adesto对他们自己的8线ATXP032做的性能测试数据表(做的CoreMark跑分),基本可以发挥到内部RAM的三分二了,而HyperFlash比它的性能还要强些。
http://www.armbbs.cn/forum.ph ... peid%26typeid%3D120

回复

使用道具 举报

0

主题

18

回帖

18

积分

新手上路

积分
18
发表于 2018-2-20 08:47:55 来自手机 | 显示全部楼层
其实coremark无论放在哪跑分都不会低,因为代码小于32k,都在cache中跑
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2018-2-20 10:04:30 | 显示全部楼层
stmcore 发表于 2018-2-20 08:47
其实coremark无论放在哪跑分都不会低,因为代码小于32k,都在cache中跑

他的这个测试已经反映Cache的影响。5% miss rate就是表示5%的缓冲未命中。
同一flash总线数目下,不同时钟速度的区分度不大。
不同总线数目下,8线和4线的差距极大。
QQ截图20180220100408.png
补充一个CoreMark跑分的意义,官方说的:
尽管它并不反映你如何在实际应用中使用处理器,但有时将CPU的内核与处理器的其他元件隔离开来并将重点放在一个关键元素上很重要。 例如,您可能想要忽略内存和I / O效果,并主要关注流水线操作。 这是CoreMark的领域。 CoreMark能够测试处理器的基本流水线结构,以及测试基本读/写操作,整数操作和控制操作的能力。




回复

使用道具 举报

5

主题

196

回帖

211

积分

高级会员

积分
211
发表于 2018-2-20 20:17:35 | 显示全部楼层
cache并不能直接操作,对程序员是不可见的。cache的存在是为了从统计学角度加速常见指令,对所有的程序都有效。对RT而言,同速的存储器就是TCM,可配置的空间远大于32K。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2018-2-21 00:11:00 | 显示全部楼层
alexyzhov 发表于 2018-2-20 20:17
cache并不能直接操作,对程序员是不可见的。cache的存在是为了从统计学角度加速常见指令,对所有的程序都有 ...

就是这个图:
20171118001020.png
回复

使用道具 举报

19

主题

326

回帖

383

积分

高级会员

积分
383
发表于 2018-2-23 15:34:10 | 显示全部楼层
难道在FLASH跑的时候忘记打开cache了?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-19 22:03 , Processed in 0.171542 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表