(1/2)FPGAの動向をお届けする本連載。Watch」の前回までの内容では、主にFPGAデバイスの機能・性能の発展やASICとの比較、またFPGAデバイス開発ソフトウェアの特徴的な設計ツールを紹介しました。今回は、CPU、プロセッサにからめたFPGA業界の動向をお話ししたいと思います。FPGAにCPUを内蔵する動きFPGAにCPUを内蔵するアプローチは、古くから試されてきました。プロセッサ、または言語記述によるロジック設計の教育分野でオリジナルのCPUを作成するというものから、8ビットの「8080」「8051」「Z80」「6809」など市販のCPUやマイクロコントローラとの互換性を持つIPコアの提供(IPベンダから販売)などです。IPコアが提供されています。IPコア”を提案する動機になると考えられます。後者の場合は、前者と同様の理由か、あるいはソフトウェア資産の継続利用という目的が動機になると思われます。FPGAベンダ側からの直接的なアプローチも2000年ごろから現れはじめました。FPGA」のアーキテクチャでした)。405」アーキテクチャのコアをハードで搭載した製品をリリースしています。現在では、FPGA部分のアーキテクチャや半導体プロセスが古いことから、性能とコストの両面で選択肢としては考えにくい面がありますが、OSを含むソフトウェア資産の再利用(エコシステム)という観点では重要なアプローチだったと考えられます。同じ時期にFPGAベンダから“正反対のアプローチ”も現れました。それは、オリジナルアーキテクチャを使い、自社のFPGAへの実装に最適化した“ソフトコア”のプロセッサです。II)」、またザイリンクス社の「MicroBlaze」がその代表的な例です。オリジナルアーキテクチャの利点はコアそのものを低コストに利用できる点であり、ソフトコアの利点は多くのFPGAファミリに適用できること、必要なペリフェラルやI/Oを必要な数だけ搭載できること、また必要な個数を自由に内蔵できる点(つまりマルチコア)にあります。逆に、ソフトコアがハードに比べて不利な点は、性能(動作速度)です。ターゲットとなるFPGAのアーキテクチャに合わせてコアを最適化することにより、多くのアプリケーションにおいて十分な性能を得ることも可能です(逆にいえば、FPGAに合わせて最適化していないCPUコアは面積・性能で満足を得られない場合もあります)。エレクトロニクス社の「SH2」から「SH3」の性能であれば十分な動作速度を発揮できます(図1)。MIPS)などの数字を指標にすることが一般的でしょう。ところが、FPGAに搭載するソフトコアプロセッサの場合は、その指標を“超えて”考えることができます。1.マルチコアによる機能分散ソフトコアプロセッサは、FPGAのロジックリソースを限度として、何個でも搭載することができます。独立した機能ごとにソフトコアプロセッサを配置し、個別にソフトウェア処理をさせることで、個々のプロセッサの負担を小さくすることができ、結果として低い動作周波数で全体のソフトウェア処理性能を高める効果を得ることができます。IIの場合、ユーザーのカスタム命令を実装することができます。これを利用すれば、標準のままでは膨大なサイクル数を必要とする複雑な演算を高速化(サイクル数を低減)できます。CRCの計算を行う処理における、カスタム命令によるサイクル数の低減例を図3に示します。実行するソフトウェアの中でボトルネックになる処理がある場合、プロセッサの動作周波数に依存せずに、その部分の処理性能を向上させる有効な手法があります。それは、その処理ルーチンをハードウェア化する方法です。ハードウェアにより高速化するということで“ハードウェアアクセラレーション”と呼ばれ、そのハードウェア部分を“アクセラレータ”と呼びます。図3に示したCRC計算において、ハードウェアアクセラレータによりサイクル数を低減した例を図4に示します。ソフトウェア処理の高速化:ハードウェアアクセラレータこのような方法を活用できるのがFPGA+ソフトコアプロセッサの利点です。Second)値だけでは比較できなくなります。Second)値だけで判定できなくなります。カスタムなプロセッササブシステムを自由に柔軟に、そして容易に作成できるのです。SNSfacebooktwitterITmediaはアイティメディア株式会社の登録商標です。