このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第349回

スーパーコンピューターの系譜 プロセッサーより高速化が可能なFPGA

2016年03月28日 11時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

ムーアの法則の恩恵を一番享受したデバイス

 図3上側はPALの基本的な概念図(実際には4入力・4出力のデバイスは存在しなかったはず)であるが、縦の配線は入力信号、横の配線がANDの配線となる。入力信号はそのままとNOTを介したものの両方が用意される形だ。

図3 PALの基本的な概念図(上)とPAL16R8の内部回路(下)

 水色の部分が回路を入力するところである。その回路の詳細が図3の下側である。縦配線と横配線をつなぐ形でヒューズが入っているのがわかるかと思う。このヒューズをOn/Offすることで、どの信号をどのANDに入力するかを選択できるというわけだ。

 このANDユニットの後にはORユニットが用意されており、ANDとORを組み合わせる(さらに信号はそのままと、NOT付きが用意される)ので、これを組み合わせて図1や図2の表にあたるものを実装しようというわけだ。

 ちなみに図3の構造は、PAL風に言うならば8R4(8入力、4出力)に相当するが、実際には16R8や22R10など、もっと入出力が多い構成が一般的である。

 下の画像はPAL16R8の内部回路である。フリップフロップが付いて後段でラッチできるなどの違いはあるが、基本的には図3の回路そのままなのがおわかりいただけよう。

PAL16R8の内部回路。パッケージは20ピンのDIPのほか、20/28ピンのPLCC(正方形のプラスチックパッケージ)も用意された。

 このPALのアイディアはあっというまに広がり、PLA(ANDだけでなくOR側もプログラム可能)、GAL(AND/ORのプログラムが可能なほか、OR出力をAND入力にできる)など機能が増えた。

 また当初はロジックのプログラミングは文字通りのヒューズ式で、一度書き込むと二度と上書きができないものだったが、EPROMと同じ方法で紫外線によるプログラム消去と電気的な再プログラミングを可能にしたものや、EEPROM同様に電気式消去/再プログラミングが可能なもの(GALがこれに相当する)など、さまざまな製品が出てきた。

紫外線によるプログラム消去と電気的な再プログラミングを可能にしたもの。AlteraのEP300というPALの一種で、紫外線でプログラムを消去するための窓があいているのがわかる

 やがて、このPALやGALを複数搭載して大規模な回路を作れるCPLD(Complex Programmable Logic Device)も登場している。

 ではFPGAとはなにか? というと、また表に話が戻る。配線の組み合わせを駆使して表を実現しようとするから話が難しいのであって、表を表のまま保持してそれを見て出力を決めれば話は簡単になる。

 例えば図1/2の表であれば、入力が4bit、出力が3bitだから1行あたり7bitになる。なのでこれを16行分、容量にして112bitのテーブル(これをLUT:Look Up Tableと称する)をSRAMの形で保持しておく。

 入力はそのままテーブルのアドレスとみなせるので、入力値にあわせたアドレスのテーブルに格納された出力の3bit分をそのままアウトプットとして出力すれば処理が終わる。

 このFPGAは、基本SRAMだけで構成できるため、プロセスの微細化の恩恵を受けやすい。つまりプロセスを微細化すればそれだけ多くのSRAMを利用可能で、より大規模な回路が構成できることになる。

 また90nmあたりからは多少スピードダウンしてきたが、それまでは微細化すればそのまま動作周波数があがり、消費電力が減るというムーアの法則の恩恵を一番享受したデバイスかもしれない。

 もちろん単純なLUTだけですべてを構成させるのは無駄が多いため、専用回路もどんどん増えてきた。例えばバッファ用メモリー(※)や、DSPユニット、高速なI/Fなどで、やや前からはARMのプロセッサーを搭載しているモデルも出てきた。

※:これもSRAMだが、LUTベースでSRAMセルを再構築するのはバカバカしいので、メモリー専用のSRAMも用意されるようになった。

 Xilinxが昨年末に出荷を開始したZynq UltraScale+MPSoCというシリーズ(製造プロセスはTSMCの16FF+)の場合、ハイエンドだとCortex-A53(1.5GHz)×4にCortex-R5(600MHz)×2という6つのCPUコアと、ARM Mali-400MP2(667MHz)のGPUコア、さらに周辺回路(DDR3/DDR4/LPDDR4 I/F、PCIe、USB、SATA、DP、GbEなど)を搭載し、それとは別に最大50万4000個のLC(Logic Cell:LUTに相当するもの)と38MbitのオンチップSRAM、1728個のDSPなどを搭載するに至っている。

 またアナログ回路を搭載したFPGAもあり(旧Actel、現MicrosemiのSmartFusion 2シリーズがこの代表例)、さまざまな用途に利用できるようになっている。

※お詫びと訂正:図3とそれに伴う本文の一部に誤りがありました。正しい表記に訂正し、お詫びいたします。(2016年6月6日)

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン