フィールドプログラマブルゲートアレイ(FPGA)は、内部回路(ハードウェア)をプログラムして、ユーザのアプリケーションに合わせて処理ブロックや処理フローを回路上に構築できる集積回路であり、CPUと同様に高い柔軟性を備えています。非ノイマン型のハードワイヤードロジック(布線論理)で情報処理を行うため、ノイマン型のプロセッサに比べて電力効率が高く、これまで以上に端末でのコンピューティングにおいて重要な役割を担っていくと考えられます。
課題: FPGAは汎用品であるため、ユーザが独自に集積回路を開発する必要がはありませんが、回路構成を変更するための半導体スイッチと回路構成を記憶する多量の半導体メモリ(SRAM)が搭載されているため、回路面積と待機電力が大きくなるという課題があります。さらにSRAMにおいては、情報の維持に電力が必要となるため、待機電力を消費しますし、揮発性メモリであるため頻繁に電源のオンオフをすることができません。
NBFPGA: NBFPGAは、アレイ状に配置された論理ブロック、外部と論理信号をやりとりする入出力回路、NanoBridgeをプログラムするためのプログラムドライバ、更にクロック信号を生成する位相同期回路から構成されています。論理ブロックは、4つの基本論理エレメント(BLE)、論理信号の接続先を決めるクロスバースイッチから構成されています。BLEは、組み合わせ論理演算が行われるルックアップテーブル(LUT)、順序論理演算が行われるDタイプフリップフロップ(DFF)から構成されており、NanoBridgeをクロスバースイッチとLUTのメモリに使用します。クロスバースイッチは、NanoBridgeから構成され、各行のいずれかのNanoBridgeをオンとすることによって、論理ブロックの入力信号の出力先が決まります。出力先は、BLEあるいは隣接する論理ブロックのいずれかが選ばれます。1つのLUTは16個のメモリを備えており、LUTの入力信号に従って選ばれた16個のメモリのうち1つの値が出力されます。LUTのメモリもNanoBridgeから構成されています。クロスバースイッチ及びLUTを構成するNanoBridgeをオンまたはオフにプログラムすることによって回路構成が決まり、ユーザーのアプリケーションが実行できます。このようにLUTのメモリや配線を切り替えるスイッチにNanoBridgeを用いることで、論理ブロックの面積を小さくでき、結果的に、配線長を短くすることによる高速化、及び低消費電力化を実現できます。
NBFPGAの回路ブロック図 NBFPGAの論理ブロックのブロック図
NBFPGA chip