ARM+MIPS 详细比较 非常好的资料!!!
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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的方波,就什么事情也做不了。
”你会得到这样的结论吗?。