プログラマブルロジックデバイス
表示
プログラマブルロジックデバイス (programmable logic device: PLD) は、製造後にユーザの手元で内部論理回路を定義・変更できる集積回路である。
概要[編集]
通常の集積回路︵IC、LSI︶は設計時に仕様や機能が定まり、製造時に全ての回路が固定されるために、後から回路を変更する事は出来ない。これに対してプログラマブルロジックデバイスは、出荷時には特定の処理を行う回路が定義されておらず、ユーザが手許で必要な回路の構成情報をデバイスに設定して初めて機能を発揮する。 初期のプログラマブルロジックデバイスは事前に設定を行って実際の用途に供し、動作中には回路を変更しないものが大半であった。しかし近年は、システム起動時あるいは、動作中にも回路を変更する事が出来るものもあり、そのようなものはリコンフィギュラブル・デバイス、特に動作中に回路を変更可能なものはダイナミック・リコンフィギュラブル・デバイスと呼ばれる。これに対比して従来のように起動時や動作中の構成変更ができないデバイスをコンフィギュラブル・デバイスと呼ぶこともある。 多数の集積回路からなる回路を多数製造する場合は特定用途向け集積回路︵ASIC︶のように1個のLSIにまとめて実現することが多い。しかしLSIの開発には、技術資産︵ツール購入、技術者教育︶や設備の整備、IPの購入費用といったことによる高い初期コストが発生する。 さらに一般のLSIでは製造後の修正・改良が不可能なことから、設計時に多くの条件を加味した徹底的な最適化が必要となり、設計には長期間を要する上、網羅的な検証が必要となり、開発コストを押し上げている。 加えてLSIの設計から実際の製造に至るまでには数多くの工程があり、それらは他プロジェクトへの再利用が不可能な投資に関するコスト、つまりNREコスト︵Non-Recurring Engineering cost、非反復エンジニアリング・コスト︶が非常に高い。以上のような理由でLSIの設計・開発はそれ自身高いものにつき、設計資産を再利用する際の経済効率が低いものとなるため設計資産蓄積によるコスト低減もソフトウェアの場合のようには期待できない。 しかし、プログラマブルロジックデバイスの場合、汎用品のプログラマブルロジックデバイス上に回路を何度でも再設定することで再利用や修正が可能であるため、設計・検証コストが低減化され、チップ製造を行わないためNREコストも極めて低く抑えられる。 以上のような特徴から、現在ではASICの動作確認のための試作、次世代携帯電話基地局など将来的に仕様の変更が見込まれる製品、規格の策定途中でハードウェア完成後に仕様を変更する必要がある製品、論理設計技術の習得用の実験回路など、試作品、少量生産品から量産品まで幅広く利用されるようになってきている。沿革[編集]
最初期のプログラマブルデバイスは、回路情報の保持手段として微細なヒューズを用いるPALと呼ばれるものである。その後、EEPROMの要素を用いたGAL、それを複数搭載したCPLDとなり、集積度を増した。これらのデバイスは、主に、既存のLSIを相互に接続するグルー・ロジックとして用いる所からはじまった。 一方で、ゲートアレイ構成を基本としたEEPROM型FPGA、LUTを基本としたSRAM型FPGAも登場した。これらは、回路容量の増大に伴い、単なるグルー・ロジックにとどまらず、既存のLSIの機能も取り込むようになり、現在では、CPUコアやDSP、アナログデバイスをも取り込み︵アナログPLDの節を参照︶、システムを丸ごと搭載することも可能になった︵大規模化・低コスト化の節を参照︶。なお、このようにシステムを丸ごと搭載したLSIを一般にSoC (System-on-a-chip) と呼ぶ。用途[編集]
デバイスが高価だった時代は、ASICのプロトタイピング、超高性能コンピュータ用アクセラレータなどに用いられた︵再構成可能コンピューティング参照︶。リコンフィギュラブルI/O[編集]
メーカーが増え競争が起こり、また量産効果によって価格が低廉化してくると、一般的なPCにも使用されるようになった。ASICを使わず、バスにFPGAを直接接続しておき、コンフィギュレーションROMにはホストバスインターフェース機能とFPGAへのロジック書き込み機能だけを用意しておき、デバイスドライバによって本来のロジックをアップロードする方式が広まった。デバイスドライバソフトウエアのバージョンアップだけで機能の向上、バグの修正が行える為、量産数量次第では、ASICを使用した場合より全体コストが安くなる。放送・通信分野の規格変化への追従と処理性能の両立[編集]
インターネットにおける急激な通信路容量の増加に伴い、従来のソフトウエアによるルーティングが限界に達した。高性能CPUの投入は装置の部品増と消費電力の問題、冷却など様々な問題があり非現実的であった。ASICで構成する時代も一時期あったが、処理すべきプロトコルが増えたり規格が変更になった等によって装置が陳腐化してしまう問題が生じた。そこで自由に回路構成が変更できるFPGAによってルーティングエンジンを形成する事によって、スループットを維持しつつ新しい規格にも対応できる設計が一般化した。 デジタル放送は新しいプラットフォームが形成される都度、伝送方式をはじめとしアプリケーションレイヤーにいたるまで、根こそぎ規格が変化した。2000年に放送を開始したBSデジタル放送にいたっては、予めCSデジタル放送や地上波デジタル放送という新規格への備えが必要であり、また受信機の仕様に応じて放送機器側の仕様を策定しなおすという泥縄状態であった。このため、放送用機器はFPGAをベースに作りこまれ変更のあった規格への対応が行われた。受信機の一部もロジック回路の一部をFPGAで作っておくことで、ソフトウエアアップデートだけで新規格に対応できる製品もあった。 Webサーバやアクセラレータにおいて、プログラマブルロジックデバイスを応用した製品がある。サーバにとって負荷の大きいCGI実行結果などをキャッシュしたり、フィルタリング処理を可変ハードウエアで実装したものである。これらの機器は従来機器と比べけた違いの単位時間あたりトランザクション数 (TPS) を誇る。またアクセラレータは特に負荷が高いSecure Sockets Layer (SSL) を高速化するのに用いられた。SSLは暗号化方式が増える可能性があるため、既存規格だけを実装した装置は陳腐化を免れないがロジック回路を変更可能にしておく事により、暗号化方式の追加に対応する事ができる。教育、ホビー[編集]
FPGAを筆頭とするプログラマブルロジックデバイスの低廉化は、ホビーストがCPUの実装から、ついにはフルスクラッチでSoCそのものを実現することを可能とするまでに至った。例えば1chip MSX プロジェクト では、一つのシステムを全てFPGAで実装し、生産終了して入手不可能になったMSXパソコンを再現した。 その価格は、かつて製品が存在していた時代と遜色の無い物であり、プログラマブルロジックデバイスそのものが、特殊な業務用途の高価なデバイスから、ディスクリート部品同様にホビーストの手によって要求を具現するデバイスへ発展した一つの証と言える。 この様な例として、コンピュータがディスクリート部品の塊であった時代からの変遷を学生がなぞる学習への利用や、既存の命令セットアーキテクチャではなく、1から設計した全くオリジナルのプロセッサを作る研究に活用されていることなどがあげられる。PLD[編集]
狭義のPLD (Programmable Logic Device) とは、小規模なプログラマブルロジックデバイスであるPAL (Programmable Array Logic) とGAL (Generic Array Logic) の総称である。 ●PAL: ANDアレイが書き換え可能で、ORアレイが固定のもの。 ●PLA: ANDアレイ、ORアレイとも書き換え可能のもの。 ●GAL, PLD: ANDアレイが書き換え可能、ORアレイが固定で、ORアレイの出力をANDアレイに入力できるもの。 また広義のPLDとして、後述のCPLDおよびFPGAまでを含めてPLDと表現する場合もある。CPLD[編集]
CPLD (Complex Programmable Logic Device) は、PALやGALよりも規模の大きなPLDで数百のロジックエレメントから成り、殆どがEEPROMのアーキテクチャで構成される。 内部構造として後述のPLD︵1マクロセル︶を複数集積し、それらを内部バスで接続した構成になっている。 書き込み方法- フラッシュROM
- EEPROM, EPROM
- Antifuse
FPGA[編集]
詳細は「FPGA」を参照
FPGA (Field Programmable Gate Array) とは、利用者が独自の論理回路を書き込むことの出来るゲートアレイの一種である。プログラマブルロジックデバイスの中で特に再書き換え可能であるものをこう呼ぶ。
内部構造の一例としては、任意の論理を構成可能な4入力程度の組合わせ回路と順序回路からなる論理ブロックが、格子状に数十×数十程度配置され、その間の配線を簡易なクロスバースイッチで接続した構造をもつものが挙げられる。
FPGAの厳密な定義は明確でなく、利用者やメーカーなどが独自の解釈でそう呼んでいるようだが、書き込み可能な回路規模はおおよそ1,000ロジックエレメント︵約20,000ゲート︶以上のものをFPGAと呼ぶことが多い。