米Analog Devices(ADI)は11月3日、同社のMCU向け開発環境である「CodeFusion Studio」を「2.0」へとVersion upした事をアナウンスした。これに関して事前説明会の内容を基にご紹介したい。

ADIのMCU向け統合開発環境

CodeFusion Studioは2024年10月にADIが発表したMCU向けの統合開発環境(IDE)である。

これはMicrosoftのVS Codeの上で動作するIDEとADIが提供するSDKから構成される。IDEの方はEditor/Compiler/Linker/Debuggerに加えてProfilerも搭載されており、またGUIベースのConfiguratorなども用意されていた。

といってもこの時点での対応する製品は旧Maxim Integratedの開発していたCortex-MベースのMCU+一部RISC-VコアのMCUに限られており、3rd PartyのIDEとの違いとして挙げられるのはADIの一部のMCUに搭載される「CTB(Cryptographic Tool Box)」と連携してIntelligent Edgeを実現するための「ADI Assure Trusted Edge Security Architecture」への対応、というあたりであろうか。あとはCodeFusion Studioと同時に発表された「ADI Developer Portal」との連携というあたりである。

Version 2.0になって何が進化したのか

このCodeFusion Studio、今年3月にVersion 1.1がリリースされる。ここでの目玉はSystem Plannerと呼ばれるGUIベースのSystem Configuration Toolの追加であり、複数コアに跨ってのリソースの割り当てやプロジェクト作成システム、RTOSで利用時のパーティション作成などを可能にしている(Photo01)。

  • 1.0→2.0までの推移

    Photo01:1.0→2.0までの推移。ほぼ半年ごとにUpdateというのは悪いペースではない。このまま続くといいのだが

この最新版がVersion 2.0となる訳であるが、今回の特徴は、以下の通りとなる(Photo02)。

  • CPUコアだけでなく、NPU及びDSPもサポート対象となり、任意のコアでAI処理を実行可能
  • ユーザーの独自のAIモデルのインポート
  • デバッグ機能の強化
  • Heterogeneous構成のコアのサポート
  • System Plannerの強化
  • Multicore Profiling Toolの搭載
  • Digital Supportを見るとSHARC DSPおよびRISC-Vコア、それと“Tahoe Neo210 NPU”という文字が見える

    Photo02:ちょっと見にくいのだが、左下のDigital Supportを見るとSHARC DSPおよびRISC-Vコア、それと“Tahoe Neo210 NPU”という文字が見えるのだが、これがMAX78002に搭載されたCNNアクセラレータの事なのか、他のNPUなのかは不明

開発にまつわるオーバーヘッドを減らす工夫

もう少し細かく見てゆく。まずHeterogeneous Platform Support(Photo03)であるが、複数種類のマルチコアを纏めて扱えるようになっている。ここで同社が強調したのは、複数コアに跨る環境での開発の効率性を高める事を最重要視しているという事だった。どうやって開発にまつわるオーバーヘッドを減らせるか、を追求したのだという。

  • eFPGA上のロジックもまるでCodeFusion Studioから開発/デバッグが出来るように見えるのだが、そこまで対応しているかは不明

    Photo03:ただこの図だとeFPGA上のロジックもまるでCodeFusion Studioから開発/デバッグが出来るように見えるのだが、そこまで対応しているのだろうか? ちなみに同社はFlexLogicを買収したが、まだFlexLogicのeFPGAを統合した製品は存在していない様に記憶している。将来はeFPGAまで統合したい、という事なのかもしれない

AIに関しては、自身で作ったモデルを簡単にデプロイする事が可能で、その際にどのコアを使って実施するか、もワンタッチで行えるとしている(Photo04)。

  • 流石にモデルの新規生成まではサポートしていない模様ら

    Photo04:流石にモデルの新規生成まではサポートしていない模様。あくまでも変換/最適化/割当までを行えるというもの。TFLite Microなどのフレームワークに対応しているらしい

デバッグについては複数のコアのデバッグが同一画面から可能な他、Zephyr環境におけるCore Dumpの分析機能が新たに追加された。またGDB Toolboxのサポートも行えるとする(Photo05)。

  • JTAG Probeに関しては、GDBで動作するものはすべて利用できる

    Photo05:JTAG Probeに関しては、GDBで動作するものはすべて利用できる、との事だった

System PlannerはGUIベースで複数のコアやデバイスなどの割り当て、さらにはコア間の通信方法などの割り当てを簡単に実行できる様になったとする(Photo06)。

  • ラインナップの中でも増えて来たマルチコア製品への対応

    Photo06:これは同社のラインナップの中でも増えて来たマルチコア製品への対応、という事と考えて良いかと思う。ただ“automated validation”になんとなく不安を覚えるのは筆者だけだろうか?

そしてAI処理の実行中の動作状態を簡単にProfilerで確認できる様になった(Photo07)。

  • デバッグにはEvent Viewerが色々と役に立ちそうである

    Photo07:デバッグにはEvent Viewerが色々と役に立ちそうである。ただこのSystem Viewerでどこまでコアの動作状況が見られるのかは良く判らない

これにより負荷分散や最適化が容易になるとしている(Photo07)。

この手のIDEに関しては、自社で全部賄う方向で進めている会社もある一方、IARとかSeggar、GreenHillsといった開発環境を提供している3rd Partyメーカーと契約して自社の製品を使う場合はこれらの3rd Party製品が無料で利用できる、という形のアプローチをとっているところも増えて来た。ADIは前者を選んだ訳で、今後も継続してサポートを行ってくれることを期待するのみである。