ソフトコアCPUの将来像

マルチ・プロセッサの一括合成

前述のCPUの自動生成は1個のCPUをターゲットとしていましたが、更に次のステップとして図 2に示す様なマルチ・プロセッサの一括合成を思い描いています。ここでプロセッサとはCPUに限定せず、単純なシーケンサやDSP等も含んだシーケンス処理を行うハードウェアを示しています。

 

図 2 1つのシステム記述から機能分散したマルチ・プロセッサの一括合成

 

図 1のCPU自動生成に、より大きなシステムに対応するための処理分割(機能分散)や各種制約条件を与え、それぞれの機能毎に最適なコストパフォーマンスのプロセッサを生成します。与えられた要求仕様に対していくつのプロセッサで実現するのが最適なのかを総合的に判断して機能分散を行い、分割した機能を実行するために最適なプロセッサを構築するというものです。ここまで実現すれば、システム設計が非常に楽になると思います。

 

一括合成が一般的になった時のシステム構成

 

図 3にマルチプロセッサ・システムの構成案を示します。ソフトウェアの階層数(ここでは3階層)と同じだけプロセッサを構成し各階層の処理を分担します。必要な処理毎にプロセッサを構築するので、同じ階層でもプロセッサは全く異なるものにできますし、逆に並列化による性能向上を必要としない場合は1個のプロセッサに複数の機能を持たせる事も可能です。またメインバスおよびI/Oバスはクロスバー構成で、各バス上でマスタ権を持つプロセッサのアクセス先が競合しない限り同時アクセスが可能な構成をイメージしています。FPGAのリソースが許せばという条件はつきますが、ユーザの思う通りのシステム設計が可能であるということはご理解頂けると思います。だたこれを全て人手で行っていたのでは膨大な工数が必要となりますので、ツールによるサポートが必須となる訳です。

ここまで来ると「夢物語」の感がありますが、技術進歩はいくつもの壁を乗り越えてきていますので、「絵に描いた餅」ではなくなる時代が来るだろうと期待しています。

 

図 3 機能分散により階層化されたマルチプロセッサ・システム構成案

 

おわりに

FPGAの持つ柔軟性を有効活用すれば、ユーザの思うとおりのシステム設計が可能です。市販のデバイスを組合せ、足りない機能をFPGAで実現するという設計手法から、最近では設計もせずに完成品を購入してシステム構築していこうという傾向が強くなっていますが、このままでは技術が空洞化し、いずれ何も作れなくなってしまうのではないかと危惧しているという声を良く聞くようになりました。

安い製品を早く市場投入することだけを追い求めるモデルを止め、部品(機能)を1から組み立てていたマイコンが出始めた当初を思いだし、設計者の想いが見えるような設計の原点に立ち返ることはできないのでしょうか。

 

「ユーザオリエントなSoC(System On Chip)がミニマムオーダ1個から実現できる」CPU搭載FPGAがその1つの解になることを信じつつ、今後も取り組んでいきたいと考えております。

 

もしお時間がありましたら連載を読み返して頂き、ご意見を賜れれば幸いでございます。ご拝読誠にありがとうございました。