SANMAN

思いつきの考えを垂れ流すブログ

まだマイコンで消耗してるの?

いや、SlideShareで見かけたAlteraのちょい古いスライド見てたらそんな感じの煽り具合だったので。 スライド自体もコンセプトメインなのでメモです。

2010年だが、基本は変わっていない。
FPGAを組み込みシステムに導入するメリットについて書いている。
解決したい問題によるので鵜呑みにしてはいけないが、選択肢のひとつとして検討に値するとは思う。
FPGAが活かせるのは並列性、柔軟性だ。
特に浮動小数点演算の必要性が低いアプリケーションには最強に近いパフォーマンスを見せる。

現在のFPGAは組み込みシステムの要求にマッチする

  • 豊富なユーザーロジック
    →大体のアプリで困ることはそうない。

  • 充分な内部RAM
    →大体のアプリで困ることはそうない。

  • ワイドレンジで高速なIO
    →大体のアプリで困ることはそうない。

  • ハイパフォーマンス化
    →100〜200MHzが妥当

  • ローパワー、ローコスト
    →選定と工夫次第

  • ソフトCPUコアとペリフェラルIP、ソフト開発環境サポート
    →一応ある。

このへんは本当だ。

カギとなる組み込みシステムの要求

  • 制御マイコン
    NiosII
    →最近のはデュアルコア ARM Cortex-A9 MPが搭載されたCoreSoC FPGAなどと呼ばれるものが登場している。

  • インターフェースIPの用意
    充分に用意している。

  • HW開発の容易さ
    QuartusII(Qsys)
    →どうだろ?上手くいかない場合もある。

  • SW開発の容易さ
    NiosII eclipse
    Eclipse使ったことあればまあ大したこと無い。

  • SWツール・IP・OS広いサポート
    uC/OS-II
    ECOS
    NUCLEUS
    embOS
    などなど

FPGAで使えるソフトコアCPUのパフォーマンス

性能指標のDMIPsで言うと、2009年には350程度にまで達している。
→NiosIIはどうしても低速なので、ホストCPUとして充分な性能のハードマクロ(実物と同じ)ARMプロセッサを搭載したものをラインナップに加えている。

ソフトコアCPUの利点はシステム構成&CPU自体がカスタム可能な所だと思う。

FPGAベースなら柔軟なアプローチを提供

適材適所に好きなようにできる。 これはFPGA最大の利点。 例)
外部CPU(ホスト)を用意する。
FPGAソフトコアCPUでメニーコア化。
FPGAロジックで特殊処理させる。

ソフトウェアのFPGAアクセラレーション

NiosIIへのカスタム命令の追加
→複雑なオペレーションの効率化にマッチする。

HWアクセラレータの実装
→大規模並列実行
→クロック単位での処理動作
→電力コストパフォーマンスが良い

統合によるシステムコストの低減→つまり外部デバイスプログラマブルロジックに変えよう!と言いたい。

組み込みアプリケーションでのFPGA活用例

  • 古いASICの置き換え
    古いプロセス/陳腐化した多くのASICの置き換え事例にコストパフォーマンスよいため利用されている。

  • 機能の統合や柔軟なデバイスとして
    マイコンを含めた複数のデジタルデバイスを1FPGAに。 特殊機能を高性能ロジックへインプリメント

  • カスタムインターフェースの要求への対応
    HDLでコーディングすれば要求にマッチする。 わりと研究開発用途でのカスタムインターフェース対応でのFPGA利用は多い。 標準的なインターフェースはIPで対応できる(USB,Ethernet,RS232,PCI,PICe,CAN,SPI,I2Cなど)

  • ソフトコアCPUは追加が容易
    ソフトコアCPUを追加して処理をオフロード。 既存SW資産の維持と、拡張オプションの追加。

まだ既存CPU使って消耗してるの?

スタンダードなマイコン、CPUのままでは以下の要求に応えきれない。

  • 機能性

  • システムの統合

  • 電力コストパフォーマンス
    →これはFPGA強い

  • 製品の柔軟性

  • 陳腐化への対処
    →これはFPGA強い

そんな人のためにFPGAはありまぁす。

おわり

最近寒くてたまらん。