新品互換用パソコン バッテリー、ACアダプタ、ご安心購入!
ノートpcバッテリーの専門店



人気の検索: ADP-18TB | TPC-BA50| FR463

容量 電圧 製品一覧

スペシャル

MicrosoftやAmazonも採用している回路構造を変更可能な「FPGA」の中身はどうなっているのか?

MicrosoftやAmazonも自社のサービスを支えるハードウェアとして採用している「FPGA」は、購入者が自分で回路構成を変更できる点が特徴です。エンジニアのKen Shirriff氏は、最初に生まれたFPGA「XC2064」をリバースエンジニアリングし、FPGAの基本的な構造を説明しています。

1985年にザイリンクスによって開発された最初のFPGA「XC2064」は、現代のFPGAよりもずっとシンプルな構造だったとのこと。現代ではVerilogなどの標準化された言語によってFPGAをプログラミングできますが、当時はザイリンクス製の「XACT」という価格が1万2000ドル(約127万円)もする高価なソフトウェアが必要でした。

FPGAの基本的な構造は以下の図で表されます。青色の「CLB(Configurable Logic Block)」と呼ばれる論理ブロックは、他のCLBや信号の入出力を行うI/Oに相互接続されています。

CLBは4つの入力に対し2つの出力を行う回路で、回路構造の変更を可能にしている部分です。任意の回路をプログラミングすることができる組み合わせ回路や、1bitの情報を保持できるフリップフロップ回路などを備えており、この構造は「LUT(Lookup Table)」と呼ばれています。

XC2064における組み合わせ回路の構造はこんな感じで、マルチプレクサがメモリ上のデータを入力にあわせて選択することで、組み合わせ回路のプログラミングを可能にしているとのこと。「A」「B」「C」で表されている制御用の入力にあわせてデータが選択されるというわけです。

XC2064には64個のCLBが実装されており、CLB間の複雑な相互接続を可能にしているのが緑色の「スイッチマトリクス」です。CLB間の通信はこのスイッチマトリクスを経由して行われます。

以上がFPGAの構造ですが、XC2064による実装は少し異なるとのこと。XC2064はCLBと経路制御機能をまとめた「タイル」を64個持っており、タイル同士が相互に接続されています。すべてのタイルが密接しているわけではなく、信号増幅のための「バッファ(Buffer)」が水平方向と垂直方向に2つ設けられており、以下の画像では緑色の線で表されています。オレンジ色の線は電源(Power)で、赤色の「シフトレジスタ(Shift register」と青色の「コラムセレクト(Column select)」は、XC2064がプログラミング設定を保存する際に重要となる構造です。

タイルを拡大した画像がこれ。緑の枠で囲まれた部分はプログラミングした設定を保存するための領域で、タイル全体の40%を占めています。その他の部分にはフリップフロップ回路やLUTなどのCLB部分と、スイッチマトリクスなどの経路制御部分が実装されています。

XC2064がプログラミング設定を読み込む方法は以下。XC2064のメモリは水平方向に160bit、垂直方向に71bitを保持することが可能で、プログラミング用のソフトウェアで設定した回路構造は「ビットストリーム」としてシフトレジスタへと入力されます。シフトレジスタが71bitのビット列で埋まった後、カラムセレクタによって「現在のシフトレジスタの値をどの列のメモリにロードするか」が選択されます。こうして次のビットストリームがシフトレジスタに読み込まれ、カラムシフトが1列ずつ移動することによって、すべてのメモリにビットストリームがロードされるという仕組みになっています。

1bitの設定を保存するメモリの回路を拡大するとこんな感じ。回路図にするとカラムセレクトによって活性化されたデータラインからデータを読み込む構造がよくわかります。

XC2064は高度に最適化されたさまざまな回路が使用されていますが、当初は製造が難しく、コストが高かったとのこと。現代のFPGAと比較するとXC2064の販売数量は少なかったものの、革命的な新製品の火付け役であったとShirriff氏は語っています。