FPGAを対象としたGALS-NoCに関する研究

背景

半導体製造プロセスの微細化が進むことによって、LSIの高集積化・大規模化が進んできている。昔はCPUを1チップ上に実装していたが、やがて1チップ上にコンピュータシステムに必要な複数のコンポーネント(プロセッサや周辺回路、I/Oコントローラ等)を実装できる(System-on-a-Chip:SoC)ようになり、さらには1チップ上に複数のシステムを実装可能になるといった具合である。

コンピュータシステムの性能を向上させるために、これまではクロック周波数を向上させるといった手段が取られてきた。しかし、消費電力や信頼性に関する問題が懸念されている。そこで、プロセッサコアを複数実装し、処理を並列化することでスループット(単位時間当たりの処理量)を増加させようという動きにシフトしている。

チップ上に実装されたコンポーネント及びシステムは相互に情報をやりとりしながら計算処理を行っている。現在のSoCでは共有バスという接続手法が主流である。代表的な例として、ARM社が策定したオンチップバス規格であるAMBAが挙げられる。その他、IBM社のCoreConnectやAltera社のAvalonがある。

しかし、共有バスは拡張性が低く、並列処理に向かないという問題がある。あるコンポーネント間でデータの転送が行われているとき、共有バスは占有された状態であり、バスを共有している他のコンポーネントはデータの通信を行うことができない。さらに、バスに接続されるコンポーネントの数が増えれば増えるほどバスの配線も長くなり、配線遅延の増大を招く。また、配線容量の増加により、消費電力の増加も懸念される。この問題はコンピュータシステムの大規模化でますます顕著になる。

そこで、共有バスに代わる大規模なシステムに適したコンポーネントの接続手法としてNetwork-on-a-Chip(NoC)が提案されている。NoCではコンポーネント間をネットワークやオンチップルータの役割を果たす回路を介して接続される。転送するデータ(メッセージ)はパケット化され、転送するデータそのもの(ペイロード)に制御情報(アドレスやメッセージのサイズ、メッセージの識別子)が付加される。パケットは制御情報に従ってネットワーク内を進み、指定されたアドレスのコンポーネントへと送られる。NoCは各コンポーネントが独自の供給電圧と独自の速度で動作することができ、また、複数のデータを並列に転送することができる。さらに、配線がルータによって区切られるため、共有バスよりも配線遅延や配線容量を抑えることができる。

NoCの構成要素

ノード (Node):プロセッサ等の演算処理を行う回路

ルータ (Router):パケットの経路を決定する

ネットワークインターフェース (NI):プロトコルの変換を行う
チャネル (Channel):データの転送路

NoCの欠点として、ルータやネットワークインターフェースにおける消費電力の問題がある。この問題に対する有効な解決策として、各ノードを局所的に同期させ、全体を非同期にシステムを構成するGlobally-Asynchronous Locally-Synchronous(GALS)が注目されている。

研究の目的

・FPGAを対象としたNoCのアーキテクチャと設計手法の提案

FPGAは回路の構成を自由に変更することができる集積回路であり、ASICと比較してTime-to-Marketが短く、設計コストが低いというメリットがある。そのため、組込み機器などで需要が高まっている。特に、顧客の要望によって仕様が変わる少量多品種のカスタム品にて使用されることが多い。大量に生産される標準品ではASICが使用されることが多い。

本研究の目的はFPGA実装を対象としたGALS NoCのアーキテクチャと設計手法の研究である。GALSスキームをNoCに適用することで低消費電力なFPGA向けNoCアーキテクチャを提案する。また、提案したNoCアーキテクチャを如何に性能・消費電力の面で効率がよくなるようにFPGAに実装するかの設計手法も検討する。ネットワークのGALS設計だけでなく、プロセッサノードに対しても低消費電力化を図る。具体的にはプロセッサノードへのクロック信号に対して、ネットワークと組み合わせたクロックゲーティングを適用する。

提案されたNoCアーキテクチャの優位性をしめすために、シングルクロック設計やマルチクロック設計を行ったものと比較する。性能評価では、実際にアプリケーションを動作させた上で評価する。

提案するNoCアーキテクチャ

設計フロー

実験

4×4メッシュトポロジーのNoCを設計し、3種類のNoCを提案する設計フローに従って合成する。
・クロック信号の生成を停止する機能を付けたマルチクロックNoC
・通常のマルチクロックNoC
・シングルクロックNoC
プロセッサはNiosII economy coreを利用し、行列積のアプリケーションを実行させて性能評価を行う。評価項目は面積、性能(アプリケーションの実行時間)、消費電力、消費エネルギーである。

今後の予定

ノード数を増やして合成・評価
マルチクロックNoCにおけるシンクロナイザの検討
Globally Asynchronous Locally Synchronous NoCの実装
ルータ・ネットワークインターフェースの非同期化
プロトコルコンバータの設計
アプリケーション層に関する研究
OSの実装