九州・福岡・東京ときどきIoT

21年間のはてなダイアリー&アメブロからの避難所

rp2040がUNOr4より性能が良いと言う根拠は何かまとめてみた。

 
「M4の方がM0+よりも高機能」というのは事実ですが、
「動作周波数」と「コア数」を掛け合わせると、RP2040がUno R4を数値で上回る理由が見えてきます。
演算性能の指標である DMIPS(Dhrystone Million Instructions Per Second)を用いて定量的に比較します。
 
1. コア単体の性能(1MHzあたりの処理能力)
Arm公式の資料に基づく、1MHzあたりの論理的な処理性能です。
  • Cortex-M0+ (RP2040): 0.93 DMIPS/MHz
  • Cortex-M4 (Uno R4): 1.25 DMIPS/MHz
    • 単体コアでは、M4の方が約1.34倍効率的です。また、M4には浮動小数点演算ユニット(FPU)やDSP命令があるため、複雑な計算(行列演算など)ではさらに差が開きます。
 
2. ボード全体の総演算能力(定量的比較)
実際の動作クロックとコア数を掛け合わせた、システム全体の「最大演算力」の理論値です。
 
項目 Arduino Uno R4 (M4) RP2040 (M0+) 性能差(倍率)
動作クロック 48 MHz 133 MHz 約2.8倍
コア数 1コア 2コア 2倍
総 DMIPS 48 × 1.25 = 60 133 × 0.93 × 2 = 247.38 約4.1倍
 
結論:なぜRP2040の方が「性能が良い」と言えるのか
  1. 圧倒的なクロック差: M4のアーキテクチャが1.3倍効率的であっても、RP2040は2.8倍速い時計(クロック)で動いているため、単一コア同士でもRP2040の方が速いです。
  2. デュアルコアの暴力: RP2040はコアが2つあるため、総演算能力(DMIPS)ではUno R4の 約4倍 のポテンシャルを持っています。
  3. 浮動小数点の罠: もしプログラムが「整数演算(ビットボード操作や論理判定)」中心なら、FPUを持つM4の利点は薄れ、純粋なクロックとコア数の差がそのままスピードの差として現れます。
まとめ:
「賢さ(命令の高度さ)」では Uno R4 (M4) が勝りますが、「力押し(計算スピードと物量)」では RP2040 が圧倒しています。15×15の盤面を高速でスキャンするような処理には、クロックが高くデュアルコアで並列処理ができるRP2040の方が、定量的に見て有利です。
 
値段を考えたら圧倒的に@@ですね。