最近需要对比ARM9E和cortex a8 NEON的优化效率,虽然NEON的指令在完全适合的情况下,可以做到是ARM9E的1/4的运行周期,但是实际情况下很少有程序完全适合NEON的并行思想,只能是部分适合,所以在网上搜了下,发现visual on 公司做过arm11和cortex a8的对比。
实际上,arm11和arm9e的效率基本相当,这点可以从多家公司公布的datasheet看出来。
那么我们可以吧arm11的效率作为arm9e的效率来参考,可以得到下面的对比表格
对于视频
RES |
ARM11(MHz@30fps) |
Cortex A8(MHz@30fps) |
A8/ARM11 |
|
Mpeg4_Akiyo_VGA |
640x480 |
297 |
104 |
0.35 |
Mpeg4_Akiyo_CIF |
352x288 |
100 |
30 |
0.3 |
Mpeg4_Ruby_CIF |
352x288 |
103 |
34 |
0.33 |
DivX_E05_M10 320 |
320x240 |
85 |
32 |
0.37 |
对于音频
Decoder |
Sample rate (kbps) |
ARM11(MHz) |
Cortex A8(MHz) |
A8/ARM11 |
AAC_128kbps_1 |
44.1k |
19.8 |
9.9 |
0.5 |
AAC_128kbps_3 |
44.1k |
18.7 |
9.1 |
0.48 |
AAC_86kbps |
44.1k |
18.6 |
8.7 |
0.47 |
MP3_128kbps_2 |
44.1k |
14.8 |
9.7 |
0.66 |
MP3_128kbps_3 |
44.1k |
14.4 |
9.6 |
0.66 |
MP3_192kbps |
44.1k |
15.8 |
9.9 |
0.63 |
从上表可以看出cortex a8 要做到只有arm9e的1/4运行周期还是很困难的,对视频好些,可以做到1/3左右。对于语音和音频,能做到1/2就相当不错了。