FPGAの話
なんか最近MicrosoftがデータセンターのハードウェアアクセラレーションにFPGAを採用したりと、ソフトウェア界隈でアツい存在みたいなので。
FPGAってなんじゃろなって、雑に説明。
FPGAとはどんなものか
論理回路はANDとかNORとかEX-ORとかFFとかで組む回路。
半加算回路とかクソめんどくさいの。
なんかの授業でやったんじゃないだろうか。
真理値表とか。
コレです。
所望のLSIのエミュレーターとなる素子、というのが実際の用途のイメージにマッチしていると個人的に思う。
市販のプロセッサではなかなかこうはできない。
好きにして。
LSIを1から設計するのに近いので、なんでも好きな様にできる包容力のあるやつだ。
FPGAの設計言語
基本的に通常のLSI設計と同じ。
現状はRTL(Register Transfer Level)と呼ばれるレベルのHDL(Hardware Description Language)を用いる。
論理回路設計なので、根性出せばCADでもできる。
RTLというのはレジスタ転送レベル。FlipFlop=Registerと、Register間に挟まれる論理回路(ANDやORなどの組み合わせ回路)について記述するもので、あまり高度な抽象化はされていない。
実際の回路構造にかなり近い記述。
CADで線引くより楽だが、Cなどのプログラミング言語に比べて、欲しい機能を実装するのが面倒な言語だ。
最近はCのコード等からRTLやその先に落とす高位合成が注目されているが、イマイチ。
でも以前より良い線いってるので今後に期待。
FPGAの性能・コスト
汎用性のため、LSIより低性能。1GHz以下で動作。
設計難易度から200MHz〜400MHzくらいが実用的速度。
テキトーに組むなら100MHzくらい。
高精度なディジタル信号制御や画像処理など。
許す限り好きなだけ演算を並列化可能。
超高性能なハイエンドFPGAは1個300万を超す値段で、入手も難しい。
新車買える...。
一般的な高性能品で1個100万〜数十万くらい。
一番安いので1個1000〜500円周辺。
DE0に搭載されているCycloneIIIとかは3000円周辺。
市販のプロセッサは高価なもので10万そこら。
それこそ3GHz超え6コアのCore i7とかそんなもん。
おわり
FPGAについて雑に説明。
どこまで詳しくしていいのかわからんのもある。
こんなレベルでも飲み屋でなら知ったかできるんじゃないだろうか。
とりあえず非ノイマン型とか言っておけばいい。
こんなクソ高い部品がもてはやされる理由などについては、次回があれば説明。