ARM+MIPS 详细比较 非常好的资料!!!

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MIPS(Million Instructions Per Second)是CPU处理能力的一个指标,它的字面意思是每秒种执行指令的平均条数。

这个指标缺少了一个重要的评估标准,哪就是CPU的时钟是多少?同样的CPU,只要在允许的范围内,使用的系统时钟频率越高,当然MIPS也越高。

所以更能体现指标应该是MIPS/MKHz,也就是系统时钟(CPU的工作时钟)为1M时,平均能够执行的指令数。

国内2本中文介绍STM32的书中,一本是这样介绍的:“STM32的32位Cortex-M3内核,时钟频率可达72MHz,指令速度可接近80MIPS”。

另外一本写到“32位Cortex-M3处理器所具备RISC结构、1.25DMIPS/MHz的处理性能......”。

那么作为嵌入式硬件工程师,如何理解和分析这个指标呢?
首先从最基本的硬件常识和基础分析。

CPU的工作是按时钟节拍工作的,对于非并行处理RICS架构的CPU,一个CLK最多能执行一条实际的指令(不考虑指令的功能),这个是实在的,也是上限!也就是说:1MIPS/MHz到顶了(A VR给出的是接近1MIPS/MHz的指标)。

那么STM32的1.25DMIPS/MHz是什么含义?这里面的D是什么意思?
网上查了一下(/A-D/detaila-d/ComputerTestStandardIntro.htm),基本明白了D的含义。

简单说吧:2个CPU,每个CLK都能执行一条指令,这个是相同的,都是“1MIPS/MHz”。

但我们让它门做某个处理运算,一个需要执行10条指令完成,而另一个因为指令系统中具备专用的处理这个运算的指令,所以只需要5条指令就行了。

故第2个CPU 的性能为“2DMIPS/MHz”。

可见DMIPS/MHz是一个相对的、综合指标。

Cortex-M3好象没有具体给出内核每个时钟周期具体能执行的平均指令数(应该每CLK不到一个指令),而是给出1.25DMIPS/MHz,有点不实在。

因为要达到这个1.25DMIPS/MHz指标,还要看程序员的水平。

比如上面的例子,如果程序员水平低,用了20条指令才完成运算,那么CPU的性能就成为0.5DMIPS/MHz了。

所以,我个人认为,嵌入式硬件工程师应该注意和掌握的是CPU每个CLK具体能够执行指令的条数,最大就是一个CLK一条了。

这样能清楚的进行系统的分析。

举例说明:如果用STM32产生1M的方波,采用定时器0.5us间隔中断,中断中将I/O取反的方法,其CPU的效率如何?
简单评估:假定STM32的时钟为72M,那么0.5us最多为36条指令执行的时间。

扣除中断响应、现场保护、现场恢复、中断返回所必要的时间,中断中你还可以写几条指令?此时CPU的效率如何?还能做其他事情吗?
“32位的处理器也太笨了吧,产生一个1M的方波,就什么事情也做不了。

”你会得到这样的结论吗?。

相关文档
最新文档