セミコンポータル
半導体・FPD・液晶・製造装置・材料・設計のポータルサイト

コストを上げずに性能を上げたマイコン、Cortex-M7の実力

|

ARMは、マイコン用のCPUコアとして2014年9月にCortex-M7を発表したが、Embedded Technology 2014において早くもそのコアを実装したマイコンSTM32 F7シリーズをSTMicroelectronicsが出展した。さすがにM7を組み込んだアプリケーションはまだ出展していないが、従来のCortex-M4をふんだんに搭載したロボット(図1)を見せた。

図1 Cortex-M4を10個搭載したヒューマノイドロボットiCub イタリアの研究所であるIstituto Italiano Di Tecnologiaが製作した

図1 Cortex-M4を10個搭載したヒューマノイドロボットiCub イタリアの研究所であるIstituto Italiano Di Tecnologiaが製作した


ARM Cortex-M7は、これまでのマイコン用CPUコアとして最も性能の高い製品だ。マイコンの性能をなぜ上げたいのか。一般にマイクロプロセッサには大きく分けて、制御命令と演算命令がある。制御命令を多数含みコントローラとして高速性を重視しないCPUシステムをマイコン(マイクロコントローラ)、一方演算命令を豊富にして計算することを目的とするコアがいわゆるプロセッサである。ARMシリーズで言えば、制御命令重視のマイコン用がCortex-Mシリーズ、演算命令重視のプロセッサがCortex-Aシリーズに相当する。

制御命令主体のマイコンを使いながら、モータ制御やシステムの性能をもっと上げたいという場合にはCortex-Aシリーズも使うとなるとコストがかかる。同じマイコンで演算する場合の性能を上げる方が少ないコスト増ですむ。今回のCortex-M7はこういった用途を狙ったもの。

従来のマイコン用で最高性能はM3/M4のクロック周波数200MHzだったが、M7では400MHzと2倍に上げた。基本的な命令セットはM4を踏襲しているが、性能効率(クロック周波数当たりのベンチマーク指数)はIARシステム社の評価では、M4が3.40 Coremark/MHzであったのに対して、M7は5.04 Coremark/MHzと1.7倍高い。

性能効率を上げるため、将来的に400MHzのクロックに対応できるようにするため、命令フェッチ、デコード、実行に必要な3段のパイプラインを、2命令同時に実行できるように6段のパイプラインにした。いわゆる2命令のスーパースケーラアーキテクチャを採る。さらに、高速の周波数でCPUとメモリとの速度差が広がっていく懸念に対して、メモリを増やすことで対応した。1次キャッシュは命令・データとも4Kバイトだが、2次キャッシュともなるべき分岐命令用のキャッシュ16Kバイト、データキャッシュ64Kバイトを設けた。これらの2次、3次のキャッシュは、TCM(Tightly Coupled Memory)と呼び、CPUと直接アクセスできるように配置する。

また、演算命令を強化するということは、M4に引き続き、DSPなどの演算も可能ということである。それもDSPでよく使う浮動小数点演算は、M4が単精度だったのに対して、M7は倍精度にも対応できる。


図2 STM32 F7ポートフォリオ

図2 STM32 F7ポートフォリオ


ARMコアはAHBバスを基本としているが、64ビットデータ転送もできるようにするためAXIバスも提案、M7にはAXIバスも導入している。ただし、AXIバスはアプリケーションによって時期尚早というユーザーに対しては、AXIからAHBに変換するコンバータをSTは提供する。ハードウエアによる暗号化/ハッシュコプロセッサをオプションで搭載可能である。このシリーズのポートフォリオは、フラッシュメモリのサイズ(最大1Mバイト)とピン数、暗号化のコプロセッサの有無などで図2のように揃えている。

なお、STに続き、Spansion(旧富士通マイコングループ)も11月12日にARMからCortex-M7をライセンス供与されている。SpansionはCortex-M0/3/4をIoTセンサに、Cortex-M7をそのゲートウェイに利用したいと述べている。

(2014/11/26)

月別アーカイブ