メモリアクセスのパイプライン
メモリアクセスのパイプラインは、ロードアドレスの計算パイプラインが2本になった。ストアアドレスの計算は1本のパイプラインであるが、ロード命令の方がストア命令より実行頻度が高いので、バランスが良くなっている。
また、CPUコアに内蔵されているデータキャッシュの容量がM2では32KBであったが、M3では64KBに倍増し、プリフェッチなども改良されている。さらに、TLBも中間レベルの512エントリのTLBの追加、L2 TLBは1Kエントリから4Kエントリに拡張するなどで、TLBミスによるロスサイクルを減らしている。
パイプラインダイヤグラム
次の図は、M3プロセサのパイプラインダイヤグラムである。より深く、より広いアーキテクチャは性能を上げるが、その代償として、パイプラインが長くなっている。従来は命令のディスパッチはDisp 1段で実行できていたが、M3ではDP2というパイプラインステージが必要になっている。また、レジスタファイルからオペランドを読んでくるステージがM1では1段のRR1で済んでいたが、M3ではRR2が追加されている。
EXステージで条件のチェックが行われ分岐予測ミスが検出された場合は、B0あるいはF2に戻ることになるが、2つのパイプラインステージが追加されているので、そのタイミングが2サイクル遅くなることになる。M3では分岐予測の精度を上げて予測ミスを減らす、演算器のレーテンシを短縮するなどの対策を行っているので、この2サイクルの増加が直接効く訳ではないが、パイプラインの段数が増えることは性能の点ではマイナスである。
10nmプロセスで製造
L2キャッシュは、M1/M2では4コアで共用になっており、容量は2MBでアクセスには22サイクル掛かっていた。これがM3では各コアに512KBのL2キャッシュが付き、共用の4MBのL3キャッシュが付くという構造になった。M3プロセサのL2キャッシュのアクセスは12サイクル、L3キャッシュのアクセスは~37サイクルとなっている。荒っぽい言い方であるが、大部分のメモリアクセスはL2キャッシュにヒットするので、コア内部のD1キャッシュをミスした場合のメモリアクセスレーテンシは22サイクルから12サイクル程度に短縮されたことになる。
次の図はM2とM3プロセサの平均IPC(Instruction Per Cycle)を比較したグラフで、M2では平均1.26命令/サイクルの実行であったものが、M3では2.01命令/サイクルの実行になっている。これは約60%という大きな性能改善である。なお、これはサイクル数での性能改善であり、M2からM3でクロックが上がった効果は含まれていない。
次の図はM3 CPUのチップのダイプロットの写真である。Samsungの10nmのプロセスで作られており、512KBのL2キャッシュは0.98mm2、M3 CPUは2.52mm2のチップ面積である。
次の図は4コアのM3プロセサクラスタの図である。前の図に示したコアが(上下が逆であるが)4個並んでおり、その下に1MBのL3キャッシュスライスが4個並んでいる。4コアクラスタの面積は20.9mm2である。
Cortex-A75との性能比較
次の図は横軸にGeekBench4の各種のベンチマーク項目をとり、2.3GHzクロックのM2プロセサの実行性能を1.0として、ArmのCortex-A75コアとSamsungのM3コアの性能をプロットしている。
このグラフを見ると、A75はM2と比べて若干性能が高い項目が多いが、まあ、似たような性能であるが、M3の方は右端のメモリバンド幅が1.4倍であるのを除くと、その他の項目ではすべて1.5倍を上回り、2倍を超える項目も多く存在する。A75のクロックは2.8GHzであり2.7GHzクロックのM3よりクロックは速いが、M3の方が性能が高いのは、その分、アーキテクチャで頑張っているからである。
次の図はGeekBench4での性能/Wをプロットしたものである。これで見ると、A75はM2よりは性能/Wが高いが、M3はさらに性能/Wが高く、M2の2倍程度の性能になっているものが多い。
SamsungのM3プロセサは豪華ハードウェアで実行性能を高めており、消費電力が気になるところであるが、このグラフに見られるようにA75よりも性能/Wが高く、Samsungの設計方針は当たりである。
性能と電力の両立を実現
まとめであるが、M3はSamsungの第3世代のArmv8アーキテクチャのプロセサである。そして、スケジュールに遅れることなく量産を開始した。
前世代のM2プロセサと比較すると、マイクロアーキテクチャはより幅が広く、深く、高速になっている。そして、Androidのスマートフォン向けのCPUとしてはベストのCPUである。
Samsungの設計チームは、毎年、新しいCPUを世に出す計画であり、次々と新しい設計のCPUが出てくる予定である。
SamsungのM3プロセサの造りを見ると、コアの設計はデータセンタ向けのサーバCPUとほとんど変わらない。10nmプロセスになり、サーバ用CPUクラスの高性能なプロセサを作るのに必要なトランジスタをスマートフォン向けのSoCでも使えるという時代になってきている。
消費電力が最大の障壁であるが、SamsungのM3では高性能と高い電力効率の両立に成功しており、スマートフォン用のSoCの高機能、高性能化はまだまだ続くと予想される。