Nios II C2H コンパイラに関するQ&A

Nios II C2H コンパイラに
コンパイラに関するQ&A
する
全般
Q:
:Nios® II C-to-Hardware アクセラレーション・
アクセラレーション・コンパイラとは
コンパイラとは何
とは何ですか?
ですか?
®
A:Altera Nios II C-to- Hardware アクセラレーション・コンパイラ(以下、Nios II C2H コンパイラ)とは、
Nios II ユーザ向けの生産性を高めるツールです。性能のボトルネックとなるC言語プログラムのサブル
ーチンを自動的にハードウェア・アクセラレータに変換し、FPGAベースのNios II サブシステムに統合す
ることで、エンベデッド・ソフトウェアの性能を著しく向上させます。詳細は、アルテラのWebサイト、
www.altera.com/c2h(日本語:www.altera.co.jp/c2h)に掲載されています。
Q:
:Nios II C2H コンパイラを
コンパイラを活用することで、
することで、開発者にはどのような
開発者にはどのような利点
にはどのような利点があります
利点があります
か?
A:これまで組込みシステム開発者が性能を向上させようとした場合、特にデザイン・サイクルの終盤で
は、より高速なプロセッサを購入するか、サブルーチンをアセンブリ言語レベルで手作業により調整する
しか方法がありませんでした。これらの手段は性能面で効果的だとしても、それに伴うコストと消費電力
の増大、開発の長期化、設計柔軟性の低下などとのトレードオフは往々にして受け入れ難いものです。
Nios II C2H コンパイラは、FPGAのリソースを活用して既存ソフトウェアの性能を向上させるという新た
な選択肢を開発者に提供します。Nios II C2H コンパイラは、順次実行されるソフトウェア・コードよりもク
ロック・サイクルあたりの演算数が多いハードウェア・アクセラレータを生成し、プロセッサのクロック周波
数を上げることなくシステムの性能を向上させることができます。また、アクセラレータの自動生成により、
アクセラレーション・ロジックを手作業で作成する必要がなくなり、開発期間を数週間から数分間に短縮し
ます。
Q:
:Nios II C2H コンパイラの
コンパイラの動作の
動作の仕組みを
仕組みを教
えてください。
みを教えてください。
A:Nios II C2H コンパイラはANSI C の言語構造・要素を直接RTLにマッピングします。例えばCコード
の加算演算子(+)はRTLの加算回路に変換され、ポインタの逆参照(間接参照)はメモリ・マスタに、
Whileループはステート・マシンに変換されます。この結果ハードウェア・アクセラレータが、クリアテキスト
のVHDLまたはVerilog によるSOPC Builderコンポーネントとして生成されます。Nios II C2H コンパイラ
®
はSOPC Builderが生成するAvalon インタコネクト・ファブリックを最大限に利用し、プロセッサのメモリ・
サブシステムへの広帯域なアクセスを提供します。ソフトウェアの観点から同一の機能を維持するため
に、Nios II IDEにより必要なシステムとの接続やライブラリとのリンクをすべて行えます。
Q:
:このツール
このツールを
ツールを提供する
提供する理由
する理由は
理由は何ですか?
ですか?
A:アルテラがNios II C2H コンパイラを提供する目的は以下の通りです。
• アルテラのシステム・レベル・インフラストラクチャを活用して、Nios II Cコードによる性能向上を
幅広いアプリケーションに提供する
• 近年増加している、プロセッシング・プラットフォームにFPGAを採用する組込みシステム開発者
からの、性能向上に対するニーズに応える
• ハードウェア・アクセラレーションのロジック作成を簡素化するためのツールを求める、多くの
Nios II プロセッサ・ユーザの声に応える
• FPGA特有の柔軟性という利点を活用し、それを開発サイクル後期において発生した変更に応
用する手段を開発者に提供する
Q:
:Nios IIプロセッサ
プロセッサとは
プロセッサとは何
とは何ですか?
ですか?
A:Nios II エンベデッド・プロセッサは、プログラマブル・ロジックとsystem-on-a-programmable-chip
(SOPC)の統合に最適化された、汎用32ビットRISC CPUです。これまでに1万5,000個を超える開発キ
ットが出荷されており、世界の上位20社に入るOEM企業にも採用されています。Niosアーキテクチャは
現在最も支持されているコンフィギュレーション可能なソフト・プロセッサです。
Nios II C2H コンパイラ Press FAQ
Q:
:SOPC Builderシステム
システム開発
ですか?
システム開発ツール
開発ツールとは
ツールとは何
とは何ですか?
A:SOPC Builderは、プロセッサ、周辺回路、メモリを基盤としたシステムを構築する強力なシステム開
発ツールです。SOPC Builderを活用することで、従来の手動による統合作業より、はるかに短い期間で
完 全 な System On a Programmable Chip (SOPC ) を 定 義 、 生 成 で き ま す 。 SOPC Builder は
®
Quartus II 専用のソフトウェア・ツールで、すべてのアルテラ・ユーザに提供されています。SOPC
Builderは、設計者がグラフィカル・ユーザ・インタフェース(GUI)を使用してシステム・コンポーネントを指
定すると、自動的にインタコネクト・ロジックを生成します。SOPC Builderはすべてのシステム・コンポー
ネントを定義するHDLファイルと、すべてのコンポーネントを結びつける最上位HDLデザイン・ファイルを
出力します。
SOPC Builderの機能は以下の通りです。
•
•
•
•
SM
アルテラまたはアルテラ・メガファンクション・パートナ・プログラム(AMPP )参加パートナ企業
が提供する既存のIPを統合
ユーザが作成した、再利用可能な独自のカスタム・コンポーネントをシステムに統合可能
システムごとの要件に合わせて最適化されたインタコネクト・ファブリックを構築する、HDL(ハー
ドウェア記述言語)を生成
システム・テストベンチ一式を出力
Q:
:Avalon インタコネクト・
インタコネクト・ファブリックとは
ファブリックとは何
とは何ですか?
ですか?
A:Avalon インタコネクト・ファブリックは、SOPC Builderによって自動的に生成されるノンブロッキング接
続です。同時に発生する複数のマスタ/スレーブ・トランザクションをサポートするため、従来の共有バス
構造と比較してシステム全体の性能を大幅に向上させます。Avalon インタコネクト・ファブリックは最小
限のFPGAリソースで、以下の機能をサポートします。
•
•
•
•
•
•
•
•
•
同時マルチ・マスタ動作
最大4ギガバイトのアドレス空間
同期インタフェース
アドレス・デコード回路の内蔵
レイテンシを考慮したリードおよびライト転送
ストリーミング・トランザクション
ダイナミックにサイズ設定可能なペリフェラル・インタフェース
複数のクロック・ドメイン
パイプライン動作
Q:
:Nios II C2H コンパイラは
設計ツール
コンパイラは汎用C-to-gates設計
汎用
設計ツールですか
ツールですか?
ですか?
A:いいえ。Nios II C2H コンパイラは、ユーザが指定したNios II Cコード・ファンクションのみをアクセラレ
ートするために設計されています。Cコード・アプリケーション全体をハードウェア設計に変換することを目
的にしていません。
Q:
:Nios II C2H コンパイラは
コンパイラはアルテラの
アルテラのNios II プロセッサ以外
プロセッサ以外にも
以外にも使用
にも使用できますか
使用できますか?
できますか
A:いいえ。本ツールは現在、Nios II プロセッサのみをサポートしています。
Q:
: Nios II C2H コンパイラと
におけるアルテラ
パートナとの
コンパイラと、ESLにおける
におけるアルテラEDAパートナ
アルテラ
パートナとの間
との間には、
には、どのよ
うな関係
うな関係がありますか
関係がありますか?
がありますか?
A:Nios II C2H コンパイラは、設計にハードウェア・アクセラレータを追加によりソフトウェアの性能の向
上を望むNios II 開発者を支援します。アルテラのESL(エレクトロニック・システム・レベル)パートナは、
一般的なCベースの設計フローと、ハードウェア・アクセラレーションによるNios II コードのアクセラレー
2
Nios II C2H コンパイラ Press FAQ
ションのどちらにも役立つツールを提供しています。これらのESLツールはFPGA設計者に、コード記述
法、ハードウェア・スケジューリング、効率性、システム設計フローにおける選択肢を提供します。C2H コ
ンパイラはNios II ベースのシステム開発者に、アルテラESLパートナによる既存ソリューションを補完す
る新たな選択肢を提供します。
Q:
:アルテラの
パートナのうち
に対応した
アルテラのEDAパートナ
パートナのうち、
のうち、SOPC Builderに
対応したコンポーネ
したコンポーネント
コンポーネントを
ントを提供し
提供し
ている企業
ている企業はどこですか
企業はどこですか?
はどこですか?
A:現在、 Celoxica社とImpulse Accelerated Technologies社のツールで、C言語コードからSOPC
Builder 対応のIPコアを生成することができます。アルテラが自社のアプリケーション・プログラミング・イ
ンタフェース(API)をパートナに公開したことで、今後他のESLパートナによるサポートが促進されるもの
と大いに期待しています。
Q:
:Nios II C2H コンパイラは
ファミリで
コンパイラは、どのFPGAファミリ
どの
ファミリでサポートされ
サポートされますか
されますか?
ますか?
®
A:Nios II C2H コンパイラはNios II プロセッサと同様に、Cyclone™ FPGAシリーズ 、Stratix FPGA
®
シリーズ、およびHardCopy ストラクチャードASICをサポートします。
Nios II C2H コンパイラによる
コンパイラによる開発
による開発
Q:「
:「ハードウェア
:「ハードウェア・
ハードウェア・アクセラレータ」
アクセラレータ」とはどういう
とはどういう意味
どういう意味で
意味ですか?
すか?
A:ハードウェア・アクセラレータとは、エンベデッド・ソフトウェア・アプリケーションから特定のタスクをオフ
ロードするために設計された、専用ロジック・ブロックです。このアクセラレータはVerilogまたはVHDLに
よって記述されます。汎用CPUによる処理と異なり、機能が固定されたハードウェア回路として実装する
ことで、多岐にわたる複雑な演算操作をより高速かつ効率的に実行することができます。
Q:
:Nios II C2H コンパイラは
コンパイラは、ANSI C 言語構造・
言語構造・要素の
要素の何をサポートしていますか
サポートしていますか?
していますか?
A:Nios II C2H コンパイラはANSI C規格をサポートしており、すべてのデータ・タイプ、演算子、制御フロ
ーおよびループ構造、マクロ、ファンクション・コール、ポインタ配列アクセスなどを含みます。
Q:
:Nios II C2H コンパイラが
C 言語構造・
コンパイラがサポートしていない
サポートしていないANSI
していない
言語構造・要素は
要素は存在しま
存在しま
すか?
すか?
A:最初に出荷されるNios II C2H コンパイラは、浮動小数点演算、再帰ルーチン、GOTO/LABEL文
はサポートしていません。
Q:
:Nios II C2H コンパイラにより
コンパイラにより、
により、どのような性能
どのような性能向上
性能向上を
向上を期待できますか
期待できますか?
できますか?
A:得られる結果は、アルゴリズムの実装、コーディング・スタイルを含む複数の要因に大きく依存します
が、Nios II C2H コンパイラはアクセラレーションなしのソフトウェアに比べ、10~45倍の性能向上を実現
します。
Q:
:Nios II C2H コンパイラはどの
コンパイラはどの程度
はどの程度の
程度の規模の
規模のロジックを
ロジックを生成しますか
生成しますか?
しますか?設計全体の
設計全体の
サイズにはどの
サイズにはどの程度
にはどの程度の
程度の影響がありますか
影響がありますか?
がありますか?
A:性能の向上とロジック使用量の増加はトレードオフの関係にあります。演算アルゴリズムの多くは
FPGA上のハードウェアにうまく変換されますが、Nios II C2H コンパイラが生成するロジックは、入力
されるCファンクションのコーディング・スタイルに大きく依存します。最良の結果を得るためには、 コー
ディング・スタイルと使用ガイドラインの詳細が記載されたNios II リタラチャのページをご覧ください。
Q:
:一つの設計
つの設計に
設計に複数の
複数のアクセラレータを
アクセラレータを組み込むことはできますか?
むことはできますか?
3
Nios II C2H コンパイラ Press FAQ
A:できます。設計に組み込めるアクセラレータ数は、利用するFPGAデバイスの容量によって上限が決
まります。現実的には、性能上のボトルネックとなっていて、かつアクセラレーションの候補として理想的
なソフトウェア・サブルーチンの数は、さほど多くありません。
Q:
:Nios II C2H コンパイラを
コンパイラを利用するために
利用するためにコード
するためにコードを
コードを書き換える必要
える必要がありますか
必要がありますか?
がありますか?
A:Nios II C2H コンパイラを利用するためにコードを書き換える必要はありませんが、標準的な従来のC
ソフトウェアの記述は、ハードウェアへの変換に最適でない場合もあります。Nios II C2H コンパイラは、
どのANSI Cソフトウェア・コードでもハードウェアに変換できますが、使用ガイドラインで推奨されている
コーディング・スタイルに従うことで、結果は大幅に向上します。
Q:
: 開発者は
開発者は アルゴリズムの
アルゴリズム の実装先を
実装先 をハードウェアと
ハードウェアと ソフトウェアの
ソフトウェアの 間で変更できます
変更できます
か?
A:できます。Nios II IDEでは、アクセラレイテッド・ファンクション・ビューから機能の追加や削除を容易に
行うことができます。アクセラレーションの対象とするソフトウェア・ルーチンを選択した後も、開発者はア
プリケーションをソフトウェア実装とハードウェア実装のどちらで実行するか選択できます。この機能は、
Nios II C2H コンパイラが生成したハードウェア・アクセラレータと、オリジナルのソフトウェア・アルゴリズ
ムの機能が同一であることを検証する際によく使用されます。
Q:
:Nios II C2H コンパイラを
コンパイラを使用するには
使用するには、
デザイン・ソフトウェアが
ソフトウェアがイン
するには、Quartus® II デザイン・
ストールされている
ストールされている必要
されている必要がありますか
必要がありますか?
がありますか?
A:はい、必要です。Nios II C2H コンパイラは、アプリケーション内の特定ソフトウェア・ルーチンを置き
換えるRTLコードを生成します。このRTLコードはSOPC BuilderによってNios II システムに組み込まれ、
Quartus II ソフトウェアによってFPGAへの合成と適合を行います。そのため、これらはいずれも必須の
コ ン ポ ー ネ ン ト で す 。 Quartus II ソ フ ト ウ ェ ア は 、 www.altera.com/download ( 日 本 語 :
www.altera.co.jp/download)からダウンロードできます。
出荷時期と
出荷時期とライセンス販売
ライセンス販売
Q:
:Nios II C2H コンパイラの
コンパイラの出荷開始はいつですか
出荷開始はいつですか?
はいつですか?
A:Nios II C2H コンパイラは2005年10月からベータ・カスタマに出荷されており、製品の正式リリースは
2006年5月を予定しています。
Q:
:開発者は
開発者はNios II C2H コンパイラをどのように
ンパイラをどのように入手
をどのように入手できますか
入手できますか?
できますか?
A:Nios II C2H コンパイラは、Nios II IDEに統合されたプラグインとして提供されます。Nios II IDEは
Nios II エンベデット・デザイン・スイート (Nios II EDS) に含まれています。Nios II エンベデット・デザイ
ン・スイートにはすべてのNios II 開発キットとQuartus II デザイン・ソフトウェアも含まれ、
www.altera.com/Niosdownload(日本語:www.altera.co.jp/Niosdownload)からダウンロードできます。
Q:
:Nios II C2H コンパイラの
コンパイラの価格はいくらですか
価格はいくらですか?
はいくらですか?
A:Nios II C2H コンパイラは、単体でのライセンスは米国販売価格2,995ドルです。前提として、Nios II
サブスクリプションが有効であることが必要で、こちらは単体でのライセンスは米国販売価格495ドルで
す。Nios II C2H コンパイラのライセンスには12ヶ月のアップデートが含まれており、年間メンテナンスの
サブスクリプションは1 ライセンスあたり米国販売価格1,495ドルです。
Q:
:Nios II C2H コンパイラはどのような
コンパイラはどのようなライセンス
はどのようなライセンス体系
ライセンス体系を
体系を採用していますか
採用していますか?
していますか?
A:Nios II C2H コンパイラを購入した開発者には、永久ライセンスが供与され、Nios II C2H コンパイラ
で生成されたハードウェア・アクセラレータを含むシステムを開発、出荷することができます。このロイヤ
4
Nios II C2H コンパイラ Press FAQ
リティ・フリー・ライセンスは、アルテラのFPGAまたはストラクチャードASICデバイスの設計で利用できま
す。
Q:
:Nios II C2H コンパイラを
コンパイラを購入する
購入する前
する前に試すことはできますか?
すことはできますか?
A:はい、できます。Nios II C2H コンパイラの無償評価版については、アルテラの販売代理店までお問
い合わせください。
Q:
:Nios II C2H コンパイラを
コンパイラを使用するには
使用するには、
するには、Nios II のライセンス・
ライセンス・シートを
シートを購入しなけ
購入しなけ
ればいけませんか
ればいけませんか?
A:Nios II C2H コンパイラのライセンスを得るには、Nios II のサブスクリプションが有効期限内である必
要があります。
Q:
:Nios II C2H コンパイラのような
ベンダからも
コンパイラのようなツール
のようなツールは
ツールは他のFPGAベンダ
ベンダからも提供
からも提供されていま
提供されていま
すか?
?
すか
A:いいえ。現時点では、アルテラが唯一、FPGAに搭載されたエンベデッド・プロセッサ上でCコード・アク
セラレーションを実行する統合ツールを提供しています。
Q:
:アルテラは
アルテラは、Nios II C2H コンパイラを
コンパイラを社内で
社内で開発し
開発したのですか?
たのですか?
A:はい。アルテラは、Nios II C2H コンパイラを社内で開発しました。開発には数年かけており、この独
自技術に含まれるいくつかの技術は特許を申請中です。
以上
5