公開日:2023/01/20
組込み用のマイコンとして一世を風靡したZ80が登場してから約40年以上経過し(未だに使われている業界もあります!)、この間にマイコンの性能は飛躍的に上昇し、数百倍の性能に達しています。
現在では、代表的なマイコンとして、Arm® Cortex®シリーズ、ルネサス エレクトロニクス社のRXファミリ、最近話題になっているオープンアーキテクチャのRISC-Vなど、様々な製品がリリースされています。
マイコンを選定する場合、一般的には機能と性能と価格の3つの条件から選定しますが、機能と価格が明確なのに対し、性能には明確な判断基準がなく、困るケースがあると思います。
そこで今回は、CoreMark®ベンチマークを使ったマイコンの性能比較をご紹介します。
1.マイコンのベンチマークの概要
コンピュータシステムにおけるベンチマークとはハードウェアやソフトウェアの動作速度や処理効率を含む性能を評価することです。ベンチマークとは一口に言っても測定対象によって使用するベンチマークソフトウェアは異なります。
例えば、PC用としては、CPUの性能測定では「PassMark®」、ゲームなどの3DCGの性能測定では「3DMark」などのベンチマークソフトウェアが有名です。
マイコンのベンチマークソフトウェアとしては、今回メインに取り上げる「CoreMark」や、その他に「Dhrystone」「Whetstone」などがあります。
ベンチマーク名 | 特徴 | 測定内容 |
---|---|---|
CoreMark | 整数演算・制御演算処理性能の評価 | 産業機器・民生機器など 組込み用途としてのCPU性能評価 |
Dhrystone | 整数演算処理性能の評価 | CPU単体の性能評価 |
Whetstone | 浮動小数点演算処理性能の評価 | CPU単体の性能評価 |
(1)「CoreMark」の概要
CoreMarkは2009年にEEMBC(EDN Embedded Microprocessor Benchmark Consortium)で開発された、システムに依存しないシンプルなベンチマークソフトウェアです。
システムに依存しないということは、ビッグエンディアン・リトルエンディアンの違いやメモリ容量などといったCPUアーキテクチャに依存せずに様々なCPUを統一した規格でテストできるという特徴があります。
CoreMarkは小メモリでCPU性能に直結するアルゴリズムの処理性能の測定が可能で、テスト結果は第三者機関による検証・承認を経て公開するため、公開スコアは信ぴょう性が高いものとなっています。
これらによって、ベンチマークソフトウェアの中でもCoreMarkは信頼を得ており、マイコンのベンチマークの標準として地位を確立しています。
CoreMarkの性能指標は「CoreMarkスコア」と「CoreMark/MHzスコア」の2つのスコアで評価されます。
スコア | 説明 |
---|---|
CoreMark | CoreMarkによる実測値です。実時間での処理性能を示します。 |
CoreMark/MHz | 「CoreMarkスコア」を計測時の周波数で割って算出した値です。1サイクル当たりの命令処理性能を示します。 |
基本的には「CoreMarkスコア」が大きいほど性能が良いことになりますが、低消費電力を要求される場合は、命令処理効率の指標である「CoreMark/MHzスコア」も判断基準となりますので、システムに応じて使い分けることが大切です。
(2)「Dhrystone」の概要
Dhrystoneは1984年に Reinhold P. Weicker氏が開発した合成ベンチマークです。浮動小数点演算を含まない、整数演算のみを対象に測定します。CoreMarkが登場するまでは、主にDhrystoneが使用されていました。
測定結果は「DMIPS(Dhrystone million instructions per second)」という単位で表され、Dhrystoneの測定結果を1757で割った値となります。例えば、とあるCPUをDhrystoneで測定した結果が"3514"だった場合、そのCPUの性能は 3514÷1757=2DMIPSとなります。
(3)「Whetstone」の概要
Whetstoneは1972年にイギリス国立物理学研究所で開発された合成ベンチマークです。浮動小数点演算の性能を計測できます。最初はALGOL 60言語で開発され、その後FORTRANなどに移植されて当時普及していきました。 測定結果は「WIPS(Whetstone Instructions per seconds)」という単位で表されます。
2.各マイコンのCoreMark
それでは、ルネサス エレクトロニクス社のマイコンのCoreMarkのスコアを見てみましょう。
(1)EEMBCの公開スコア
まずはEEMBCのWebページで公開されているスコアから、弊社の製品にも搭載しているRX、RA、RZの各シリーズのマイコンのスコアを調べてみます。
CPU(周波数) | Core | コンパイラ | CoreMark | CoreMark/MHz |
---|---|---|---|---|
RX62N(96MHz) | RXv1 | CC-RX v2.03 | 266.12 | 2.77 |
RX64M(120MHz) | RXv2 | CC-RX v3.03 | 606.61 | 5.05 |
RX65N(120MHz) | RXv2 | CC-RX v2.05 | 520.25 | 4.33 |
RX71M(240MHz) | RXv2 | CC-RX v3.03 | 1160.36 | 4.83 |
RX72N(240MHz) | RXv3 | CC-RX v3.04 | 1441.34 | 6.01 |
RX72T(200MHz) | RXv3 | CC-RX v3.04 | 1201.49 | 6.01 |
RA6M5(200MHz) | Arm Cortex-M33 | Arm Compiler 6.15 | 790.76 | 3.95 |
RZ/A1(400MHz) | Arm Cortex-A9 | IAR v6.60 | 1660 | 4.15 |
RZ/T1(600MHz) | Arm Cortex-R4 | IAR v7.30 | 1904.17 | 3.17 |
RXファミリは、初代のRXv1から最新のRXv3までありますが、CoreMark/MHzスコアの比較では、RXv1からRXv2が約1.8倍、RXv2からRXv3は1.2倍程度性能が向上していることがわかります。RXv1とRXv3では実に2倍以上の性能差があります。
また、コンパイラのバージョンによっても性能差がある点も興味深いです。RXv2のRX65N(CC-RX V2.05)が「4.33」に対し、同じくRXv2のRX64M(CC-RX v3.03)では「5.05」と約15%性能が向上しています。アプリケーションの用途によってばらつきがあると思いますが、RXについては、最新のコンパイラを使用した方が演算性能の向上は期待できそうです。
RAファミリでは、Armコアが採用されています。RA6M5(Arm Cortex-M33)のCoreMark/MHzスコアは「3.95」となっており、RXv2と同等か、少し低いくらいであることがわかります。ただし、周波数が200MHzと速いため、全体の性能を示すCoreMarkスコアは高くなっています。
RZファミリでは、CoreMark/MHzスコアはRZ/A1が最も高くなっています。これは、同じArmv7-Aアーキテクチャの場合、Arm Cortex-Aの方がCortex-Rより性能が高いため、RZ/T1(Arm Cortex-R4)と比較しても順当な結果です。
また、RZ/T1(Arm Cortex-R4)のCoreMark/MHzスコアは、Cortex-M33より若干低い結果となっています。これは、Armの公式発表で、より新しいCortex-M33の方が20%程度性能が高いとのことなので妥当な結果です。しかし、周波数は3倍の600MHzなので、CoreMarkスコアは最も高くなっています。
(2)実際にCPUボードで測定
実際に弊社のCPUボードを使って、CoreMarkベンチマークのスコアを測定してみました。使用したCPUボードの詳細は、後述の弊社の製品ページを参照してください。CoreMarkベンチマークにはApacheライセンス2.0が適用されており、EEMBCのGitHubからソースコードが無料で入手が可能です。測定した結果を以下にまとめます。
CPU(周波数) | Core | コンパイラ | CoreMark | CoreMark/MHz |
---|---|---|---|---|
RX63N(96MHz) | RXv1 | CC-RX v3.04 | 308.92 | 3.21 |
RX651(120MHz) | RXv2 | CC-RX v3.04 | 440.64 | 3.67 |
RX72M(240MHz) | RXv3 | CC-RX v3.04 | 1271.54 | 5.29 |
RA6M3(120MHz) | Arm Cortex-M4 | GCC 9.2.1 | 288.79 | 2.4 |
RZ/A2M(528MHz) | Arm Cortex-A9 | GCC 6.3.1 | 2039.02 | 3.86 |
EEMBCで公開されているスコアと比較すると、全体的に低くなっています。これは、測定環境の違いや、最適化などチューニングを行っていないことによる影響が大きいと考えられます。相対的にはほぼ同じ結果で、CoreMark/MHzスコアではRXv3が最も高い性能となっています。
参考までに、CoreMarkベンチマークを動作させた時のログ表示を掲載します。
3. まとめ
今回は、マイコンの性能比較として、CoreMarkベンチマークをご紹介しました。
実際に比較して、RXv3の命令処理効率の高さには驚きました。マイコンの性能はCoreMarkベンチマークだけで単純に比較することはできませんが、選定する際の一つの目安にはなると思います。
CoreMarkベンチマークについては無料で入手でき、手軽に試すことができますので、皆さんのお手元にあるCPUボードでも試してみてはいかがでしょうか。
製品のご案内
本コラム以外にも開発にお役立ていただける技術情報をアプリケーションノートとして公開しております。
ご興味のある方は、ぜひ製品をご利用ください。
- ※ArmおよびCortexは、米国および/またはその他の地域におけるArm Limited(またはその子会社)の登録商標です。
- ※CoreMarkはEEMBCの登録商標です。
- ※記載されている会社名、製品名は、各社の登録商標または商標です。
- ※記載の内容は改良のため、予告なく変更する場合がございます。