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)。
この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)。
また製品展開であるが、とりあえず最初のCortex-M7製品はハイエンド製品に位置づけられる形となる(Photo24)。ただ今後は、より微細化したプロセスノードで400MHzを狙う、という説明も行われた(Photo25)。
最後に開発ツール系についてちょっとだけ補足を。STM32F7を搭載する最初のボードはFull FunctionのEvaluation Boardであるが、その次はSTM32 Nucleoになるとの事で、これは2015年第1四半期末までにリリースしたいとの話であった。逆にDiscoveryに関しては、現在明確な計画は決まっていない、との事だった。