ここからは性能比較である。まずは主要なアプリケーション性能をCortex-M4と比較したのがこちら(Photo15)である。
Photo15:CMSIS Q15 FIRとQ15 IIRはどちらもCMSIS-DPS Software Libraryを実施した結果と思われる。ここでは整数演算性能比較ということでQ15フォーマットでの結果である |
上4つは基本的にMHzあたりの性能なので数字が大きいほど高速、下2つは一定の処理を行う際に必要なサイクル数なので数字が小さいほど高速である。結果は? というとムラはあるが、1.2~2.1倍の高速化が実現されており、確かにIPCの大幅な改善が施されている事が判る。もっともCortex-M4の場合、高速性はDSPユニットによるところが多く、プロセッサコアそのものはCortex-M3と大きくは変わらないから、この位の性能改善は当然とも思える。このうちCoreMarkに関しては、実はEEMBCはProcessor Benchmarkとして
- CoreMark
- CoreMark-Pro
- Floating-Point
- Multicore
- Automotive/Industrial
- Digital Entertainment
- Networking
- Text and Image Processing
- Telecomm(DSP)
といった複数種類のものをリリースしている。CoreMarkがオリジナルであるが、昨今の64bitプロセッサの性能などを測るにはやや物足りない部分があり、これを改良したのがCoreMark-Proである。それ以外のものは見ての通りだ。で、Networking/Telecom/Digital Entertainment/Automotive/Industrialについてもテストを行ってまとめた結果がこちら(Photo16)である。同一周波数でも1.3~1.6倍の性能で、さらに動作周波数を引き上げることで平均2倍の処理性能になる、としている。またDSPについては、そんな訳でMACユニットもさることながらLoad/Storeユニットがほぼ帯域を倍増した関係で当然スループットが上がっている。こちらをまとめたのがPhoto17である。注意書きを読むと判るとおり、単にアーキテクチャの改善のみならず動作周波数向上と相まってこの性能、ということだそうだが、ラフに言ってCortex-M4の2倍の性能を実現できている。
最後が割り込みまわりの話である。Cortex-M7はCortex-RシリーズほどのDeterministic Interrupt Latencyは保障されていない(そこまで厳密に必要とする用途はCortex-Rシリーズを使えという話だろう)が、ただそれでもInterrupt Latencyをどう削減するかに色々気を配っている(Photo18)。ただ、なにしろPipelineが長いだけに、色々細工をしないとLatencyが増えてしまう。なので、Typicalの11~12cycleというLatencyを実現するために、随分細かな工夫がなされている事が判る(Photo19)。