
業界で高い評価を得ている Nios® II エンベデッド・プロセッサの Nios II C2H(C-to-Hardware) アクセラレーション・コンパイラは、負荷の大きい ANSI C プログラム・ファンクションを FPGA 内のハードウェア・アクセラレータに変換することによって、システム性能を向上させるツールです。
特長
- ANSI/ISO C コードをプッシュ・ボタンだけでアクセラレーション
- GHz の性能を mW の消費電力で達成
- ソフトウェア設計フローと緊密に統合
- ハードウェア・アクセラレーションを CPU のメモリ・マップ上に直接接続
- ポインタとアレイをシームレスにサポート
- メモリ・トランザクションのレイテンシを考慮した効率的なスケジューリングとパイプライン化
ハードウェアの追加による消費電力の低減
システム・デザインの経験則によると、ハードウェアを追加すると電力需要が増加します。ところが、ハードウェア・アクセラレータを効率的に使用すれば、この法則とは逆に、ハードウェアを追加することで消費電力を低減できます。開発者はアルゴリズムを解析し、プログラマブル・ロジックに適切なアクセラレータを実装することにより、デザインの性能を高めると同時に、エンベデッド・プロセッサ・システムの消費電力を低減することができます。
例として、次のようなケースを考えます。組込み設計者は、80MHzで動作するプロセッサでプログラムコードを 実行させるとき、大きな負荷のかかる計算アルゴリズムを、より低いクロック周波数で実行するハードウェアに分担させたいと考えています。このテスト・ケースでは表 1 に示すように、アプリケーション・コードを 80 MHz で実行するエンベデッド・プロセッサと、1 MHz で動作する 5つのハードウェア・アクセラレータによって構成することで、システムの性能は 6 倍になり、消費電力は 55% 減少します。
| 表 1. テスト・ケースの結果 | ||||
| ケース | CPU 周波数(MHz) | アクセラレータ周波数 (フレーム数/秒) | システム性能 (フレーム数/秒) | システム消費電力 (ミリワット) |
|---|---|---|---|---|
| CPU のみ | 80 MHz | - |
基準 | 基準 |
| CPU と 5つのハードウェア・アクセラレータ | 1 MHz | 1 MHz | 5 倍 | 1/5 倍 |
| CPU と 5つのハードウェア・アクセラレータ | 80 MHz | 1 MHz | 6 倍 | 1/2 倍 |
Embedded.com に Reducing Power in Embedded Systems by Adding Hardware Accelerators 記事が掲載されました。
エンベデッド・ソフトウェア性能が劇的に向上
ハードウェア・アクセラレータは、エンベデッド・ソフトウェア・アプリケーションの性能向上を必要とするソフトウェア・エンジニアにとって重要なツールです。ハードウェア・アクセラレータは、FPGA の並列処理構造をフルに活用して、汎用 CPU と比較して クロック・サイクルあたりの演算計算をさらに行うことで、性能が数桁向上します。表2 に共通のエンベデッド・コンピューティング・アルゴリズム別の性能とリソースに関する結果を示しています。
| 表 1. ユーザ・アプリケーション結果の例 | |||
| アルゴリズム | 速度の向上 (対 Nios II CPU) |
システムの fMAX (Mhz) |
システム・リソースの増加率 (1) |
|---|---|---|---|
| 自己相関 | 41.0x | 115 | 124% |
| ビット・アロケーション | 42.3x | 110 | 152% |
| 畳み込みエンコーダ | 13.3x | 95 | 133% |
| 高速フーリエ変換 (FFT) | 15.0x | 85 | 208% |
| ハイ・パス・フィルタ | 42.9x | 110 | 181% |
| マトリックス回転 | 73.6x | 95 | 106% |
| RGB to CMYK | 41.5x | 120 | 84% |
| RGB to YIQ | 39.9x | 110 | 158% |
注 :
- システム・リソースの増加率は、乗算器やメモリなどのオンチップ・リソースと同等なコストのロジック・エレメントが考慮されており、アクセラレータとバッファの追加による増加分を示しています。
このデータは、Nios II C2H コンパイラの使用により、コスト増とリソース消費を最小限に抑えながら、性能の大幅向上が可能であることを示しています。これらの例の結果について詳しくは、Automated Generation of Hardware Accelerators White Paper (PDF) を参照してください。
通常のソフトウェア・デザイン・フロー
今日までソフトウェアプログラムをハードウェア・アクセラレータにオフロードさせる作業は手動で行われてきましたが、この作業は、プロセッサ・システムに対してレジスタトランスファレベル(RTL)ブロックを作成、テスト、および統合するために必要なツール、経験および時間的余裕を持った開発者のみが実施出来る事でした。Nios II C2H コンパイラはハードウェア・アクセラレータの作成と統合を自動化し、開発時間を週単位から分単位にまで短縮します。
Eclipse ベースの Nios II 統合開発環境(IDE)を使用している場合、Nios II C2H コンパイラによる設計は簡単です。以下に必要な手順を示します。
- ソフトウェア・コードを検討して、性能のボトルネックを特定します。
- Nios II IDE で目的のファンクションをハイライトし、右クリックして高速化します。
- 詳細な C2H コンパイラのレポート・ファイルをレビューし、シンプルな C コードの最適化を図ります。
- 必要な性能に達するまで最適化を繰り返します。
- 必要な性能向上にすばやく対応し、製品を納期どおり出荷します。
Nios II C2H コンパイラは、アプリケーション・アルゴリズムを最適化するためのデザイン・スペースを迅速かつ効率的に調査し、ソフトウェア単独での実装の場合よりも性能を向上させることができます。右クリックするだけで高速化を実現できます。
注文情報
Nios II C2H コンパイラの詳細については、アルテラの 販売代理店にお問い合わせください。また、無償版である Nios II エンベデッド・デザイン・スイート (EDS) のダウンロードも可能です。

