STM32F7

続いてSTMicroelectronicsのDaniel Colonna氏(Photo11)により、STM32F7の説明が行われた。「7に引っ掛けたわけではないが」とか言いながら、STM32F7シリーズの7つの特徴を示したのがこちら(Photo12)である。以下もう少し細かく。

Photo11:Marketing Director, MicrocontrollersのDaniel Colonna氏

Photo12:Cortex-M7の発表には最初のパートナーとしてAtmel、Freescale、STMicroelectronicsの3社がラインアップされたが、動作シリコンの展示が行われたのはSTMicroelectronicsのみ

まず、同社は全機能が動作するシリコンを、90nm eFlashプロセスを使って製造した(Photo13,14)。αカスタマには、ほぼこのシリコンと同じものを今四半期中にサンプル出荷。そこから若干の仕様変更などを行った、最終製品に近いES品は来年第1四半期中にリリースする予定だとする。

Photo13:中央のピンクの部分がCortex-M7コアで、あとはCacheやFlash、SRAM/TCM、それとアナログブロックである

Photo14:パッケージは既存のSTM32と完全にピン互換で、コアのみCortex-M7に置き換わったと言って差し支えない形のものがまずはリリースされる

そのSTM32F7だが、内部構造はかなり複雑である。こちら(Photo15)でInterconnectの重要性を強調しているが、内部構造を見るとそれも判る(Photo16)。内部のメモリ関係を並べると

  • ARTアクセラレータ:Flashのアクセスの高速化を行うもの
  • L1キャッシュ:命令/データともに4KBを搭載
  • TCM:16KBの命令TCMと64KBのデータTCMを搭載
  • SRAM:240KB+16KBを搭載
  • Flash:1MB内蔵。ほかにDual Quad SPIを搭載し、ここにNOR/NAND FlashやSDRAMを接続可能

Photo15:ちなみにCortex-M4とCortex-M7は完全にバイナリ互換であり、これを受けて最初に登場するSTM32F7は既存のSTMF4との後方互換性が維持されている模様

Photo16:Multi-AHBは8レイヤの構造であるが、CPUとの接続はAXI to Multi-AHB Bridge経由となる。それもあってかTCMはこのMulti-AHBを経由せずに直接接続されている

というかなりのヘビー構造である。これらのうちL1キャッシュとTCM以外はMulti-AHBの下にぶら下がっており、それぞれが独立してアクセスできる。具体的に言えば、通常のプログラムはARTアクセラレータ経由で0waitでアクセスできる一方、割り込みルーチンとかHard Realtimeの処理が必要なコードやデータはTCMを利用してアクセスする。この間に外部のFlash/SDRAMからのコード/データはL1キャッシュに独立アクセスすると言うわけだ。SRAM類はDMAコントローラ経由で周辺機器などとのデータ交換が可能であり、これらを並行して動作させることで、メモリアクセス待ちをなるべく減らして実効性能を引き上げよう、という工夫がなされている。

この結果として、STM32F7は200MHz動作で1000 CoreMark、2.14 DMIPS/MHzを実現できたとしている(Photo17,18)。

Photo17:左がARMによるデータ、右が実際のシリコンを使っての測定値で、内蔵のFlashを利用した場合とQuad SPI経由で外部のNOR Flashを使った場合のどちらもこれが実現できたとしている。もっともこれだけSRAMやTCMがあれば、これらをうまく組み合わせることでFlashアクセスの影響は最小化できそうだが

Photo18:横軸が動作周波数で、従来はCortex-M3製品は120MHzどまり、Cortex-M4製品も180MHzどまりだった

この200MHz動作は、従来のCortex-M4と同じ同社の90nm eFlashプロセスを使ってのものであり、パイプラインの変更などで従来プロセスのまま200MHzまで動作周波数を引き上げられた計算になる。ところが通常動作周波数が増えると消費電力も増えそうなものだが、STM32F7では駆動時の性能/消費電力比、それとLow Power Modeにおける絶対消費電流をほぼ同等に出来たとしている(Photo19)。

Photo19:Colonna氏によれば、STM32F7はF4よりもずっと多いラッチや回路が搭載されており、普通に作れば性能/消費電力比は悪化しそうなものだが、これを全く悪化させずに実装できた、との事

次のスライド(Photo20)はややPhoto16に被るが、L1キャッシュやTCM、大容量のSRAMといった「性能を落とさない」工夫に加え、バスマスタを増やしたりQuad SPIをDual搭載したり、ということでスループットそのものが大幅に上がったとしている。

Photo20:そろそろこのクラスになってくると、命令処理速度というよりはデータ処理速度が問題になってくるレベルで、このためにはデータをどれだけスムーズに入出力できるかがポイントとなる。大容量のSRAMはこうした目的にも適う形だ

ここで実際に動作デモも行われた。利用しているのはSTM32F439NIを搭載したSTM32439I-EVALであるが、この上でレイトレーシング、およびジュリア集合の拡大/縮小を行うベンチマークを用意(Photo21)。これをSTM32F4そのままと、MCUのみSTM32F7に差し替えたもののの両方で実施して、その性能が示された(Photo22~23)。

Photo21:こちらはジュリア集合のベンチマークの仕組み。ここではF4で1フレームあたり787ms掛かるのが、F7だと459msまで短縮されるとしている

Photo22:レイトレーシングのデモ。180MHzのSTM32F4でこのレンダリングを行った所要時間は47083ms

Photo23:同じものを200MHz駆動のSTM32F7でレンダリングするのは27470ms。絶対時間で比較すると1.71倍高速、同一周波数換算だと1.54倍高速となる

また製品展開であるが、とりあえず最初のCortex-M7製品はハイエンド製品に位置づけられる形となる(Photo24)。ただ今後は、より微細化したプロセスノードで400MHzを狙う、という説明も行われた(Photo25)。

Photo24:先の製品ページでは合計20品目が並んでいるが、これはFlash Memoryのサイズが2種類、パッケージが5種類、それと暗号化アクセラレータの有無で2×5×2=20という話で、ほかは完全に一緒である

Photo25:実は同社はすでに自動車向けに、55nmのeFlashプロセスを実用化している。そこで「次は55nm?」と確認したところ「まだ発表できないが、とりあえず65nmでは無いということだけは言える」(Colonna氏)という返事だった

最後に開発ツール系についてちょっとだけ補足を。STM32F7を搭載する最初のボードはFull FunctionのEvaluation Boardであるが、その次はSTM32 Nucleoになるとの事で、これは2015年第1四半期末までにリリースしたいとの話であった。逆にDiscoveryに関しては、現在明確な計画は決まっていない、との事だった。