【问题标题】:Benchmarking microcontrollers基准微控制器
【发布时间】:2016-08-25 12:15:51
【问题描述】:

目前我正致力于在微控制器之间设置基准(基于 Powerpc)。所以我想知道,如果有人可以向我提供一些详细显示的文档,那么在进行基准测试时哪些因素最重要? 换句话说,我正在寻找提供有关提高 核 外围设备, 内存库
另外,如果有人可以提供非常有用的算法。

【问题讨论】:

    标签: benchmarking microcontroller powerpc


    【解决方案1】:

    只有一种有用的方法,那就是为两者编写应用程序并为应用程序计时。基准在很大程度上是虚假的,因为有太多因素,而制定一个利用差异的基准是非常微不足道的,甚至利用共同特征使两件事看起来不同。

    我定期执行这个特技,最近是这个代码

    .globl ASMDELAY
    ASMDELAY:
        subs r0,r0,#1
        bne ASMDELAY
        bx lr
    

    在 raspberry pi(裸机)上运行相同的 raspberry pi,而不是比较两个,只是将其与自身进行比较,显然是汇编,因此甚至没有考虑您可以有意或无意地在基准测试中编码的编译器功能/技巧。这三个指令中有两个对于基准测试很重要,让循环运行数万次,我想我使用了 0x100000。该性能的关键是循环中的这两条指令在 0x10000 循环中的运行速度与 93662 个计时器滴答声一样快,而与 4063837 个计时器滴答声一样慢。当然,我的缓存和分支预测已针对各种测试打开和关闭。但是即使打开了分支预测和 i 缓存,这两条指令的速度也会根据它们在 fetch line 和 cache line 中的位置而有所不同。

    微控制器会使情况变得更糟,具体取决于您所比较的内容,有些闪存可以在各种时钟速度下使用相同的等待状态,有些是速度受限的,对于每 N Mhz,您必须添加另一个等待状态,因此根据您设置时钟的位置,它会影响该范围内的性能,并且肯定会在您添加等待状态的边界的正下方和正上方(24Mhz 减去一点点,如果是 2-3 等待,则 24Mhz 带有额外的等待状态然后获取的状态只是慢了 50% 36Mhz 减去一点点它可能仍然处于 3 个等待状态,但是 36 个等待状态的 3 个等待状态比 24mhz 的 3 个等待状态快)。如果您在 sram 与 flash 中为这些平台运行相同的代码,通常不会出现等待状态问题,sram 通常可以匹配 cpu 时钟,因此任何速度的代码都可能比从 flash 中运行的相同代码更快。

    如果您要比较来自同一供应商和系列的两个微控制器,那么这通常是没有意义的,内部结构是相同的,它们通常只是有多少个、多少个闪存组、多少个 SRAM 组、多少个 uart、多少个定时器,针数等。

    我的观点之一是,如果您不了解整体架构的细微差别,您可以通过简单地了解事物的工作原理,将您现在在同一块板上运行的相同代码的速度提高百分之几到几十倍。启用您不知道在哪里的功能,正确对齐经常使用的代码(只需在 C 文件中重新排列您的函数可以/将影响性能)在引导程序中添加一个或多个 nop 以更改整个程序的对齐方式可以而且将会改变性能。

    然后您将了解编译器差异和编译器选项,您可以使用它们并获得一些到几到几十倍的改进(或损失)。

    所以归根结底,唯一重要的是我有一个应用程序,它是最终的二进制文件,它在 A 上运行的速度有多快,然后我移植了该应用程序,B 的最终二进制文件完成了,速度有多快它在那里运行。其他一切都可以操纵,结果不可信。

    【讨论】:

    • ''如果您要比较来自同一供应商和系列的两个微控制器,那么这通常是没有意义的,内部结构是相同的,它们通常只是有多少不同,有多少闪存银行有多少 SRAM 银行如何多个uart,多少个定时器,多少个引脚等。'' 目前我有这个案例来比较两个微控制器,这些微控制器的核心规格之间存在细微差异。就像一个有数据缓存和本地数据内存一样。那么如何为这些差异设置基准呢?
    • 具有数据缓存和本地 ram 的那个将具有更快的内存访问,因此如果您的程序使用内存,那么一个将更快一些百分比。外部存储器可能会变慢。你需要一个基准吗?如果您需要对某个地址执行内存测试,请进行随机访问,在拥有缓存的地址上使用和不使用缓存进行线性访问。我想我们已经知道答案是什么了。
    • 正是我需要基准来证明哪个微控制器具有更好的效率。此外,不仅是内存,我还必须比较和测试两个微控制器的各个方面,并且基于这些知识,我必须对应用软件进行分析。基本上我必须对应用软件进行性能增强。因此,根据之前的讨论,我正在寻找提高应用软件性能所需的重要因素。你能推荐我一些参考文献或任何其他材料吗?谢谢
    • 每个部分的数据表。
    • 感谢您的宝贵时间。但是我想问一下核心性能测量方面,您能告诉我一些与汽车控制相关的基准或算法吗?
    猜你喜欢
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多