微控制器如何实现 > 1 MIPS/MHz 的性能?

电器工程 微控制器 表现
2022-01-04 17:20:56

就像这个,它的频率为 1.49 DMIPS/MHz。即使使用流水线,每个周期仍然只有 1 个执行阶段,不是吗?

2个回答

DMIPS 和 MIPS 不一样。DMIPS 代表“Dhrystone MIPS”,它是用于比较不同微控制器/微处理器在不同指令集上的性能的标准。该标准不再那么新(*),因此参考处理器可以在 1 秒内以 1 DMIPS/MHz 执行的操作可能需要更高级的控制器在相同时钟速度下 670 毫秒,因为它会在 1 条指令中执行一些操作而另一个控制器可能需要 2 条指令,或者需要更多机器周期的指令。

例如,16 位架构通常比 8 位架构具有更好的 Dhrystone 性能,而 32 位架构(如您所指的架构)甚至更高。


(*) m.Alin 指的是更新的CoreMark基准。请注意,这是用 C 编写的,因此实际上您还将编译器的性能包括在结果中(就像 Dhrystone,BTW 一样)。

DMIPS是相对测量而非绝对测量。与 MIPS 不同的是,它实际上衡量的是 uC 可以多快完成一些有用的事情,而不是它执行指令的速度。

与任何基准测试一样,它也有其局限性,但查看它的一种简单方法是与 VAX 11/780(1 MIPS 机器)相比,它可以多快完成基准测试代码
例如,如果您的 uC 以 100 倍的速度完成基准测试与 VAX 11/780 相比,您拥有一台 100DMIPS 的机器。如果它以 100MHz 运行,那么它的额定值为 1 DMIPS/MHz。

请注意,宣传的 DMIPS 在正常使用中通常是无法实现的,尤其是在具有闪存速度、预取、等待时间/未命中等的大型 uC 上。这里是对 PIC32 DMIPS 性能的一个很好的讨论。这个链接有一些微控制器的 Dhrystone 代码。