FPGAとは何ですか?

フィールド プログラマブル ゲート アレイは複雑に聞こえますが、開発者にとってまったく新しい世界が開かれます。

レトロ ゲーム エミュレーションについて詳しく調べたことがある人なら、フィールド プログラマブル ゲート アレイ (FPGA) と呼ばれる半導体タイプに出会ったことがあるかもしれません。 これらは、構成可能なロジック ブロック (CLB) のおかげで、製造後に自身を再構成できる特殊な集積回路です。 言い換えれば、基本的にチップセットを他のタイプのデジタル回路として機能するように再プログラムすることができ、AI、チップセット設計、その他の分野で複数の用途があります。

FPGA には多くの使用例があり、Analogue Pocket などのデバイスは、FPGA を利用してさまざまなハンドヘルド デバイスをサポートします。 ただし、Microsoft は Bing の強化にも FPGA を使用しています。これにより、開発時に新しいアルゴリズムをサポートするためにFPGA を迅速に再プログラムできるようになります。

FPGA と従来の CPU: 違いは何ですか?

標準のチップセットとは対照的に、 スナップドラゴン 8 第 2 世代たとえば、FPGA は現場で再プログラムできるように設計されていません。 これは、GPU、NPU、CPU などの複数の部分で構成されるシステム オン チップ (SoC) です。 出荷されると、それが消費者と企業に届きます。

ただし、FPGA は、ユーザーが追加のコストやリスクを導入することなくチップの一部を変更できるように、柔軟であることを目的としています。 自動運転自動車などの急速に変化する業界では、デバイスのあらゆる面でいつでも新しい規制や規格が導入される可能性があります。 FPGA を使用すると、OTA アップデートでチップを再プログラムして新しい規格をサポートできるようになります。

FPGA と従来の CPU の大きな違いの 1 つは、FPGA がはるかに低いクロック速度と引き換えにデータを並列処理するように設計されていることです。 たとえば、データ処理用に 10 個のパイプラインを備えた FPGA は、各パイプラインで 2 つの数値の乗算演算を実行し、サイクルごとに 20 個の数値を乗算できます。 従来の CPU は、サイクルごと、コアごとに、順番に 2 つの数値を乗算できます。

FPGA はエミュレーションのためにどのように機能しますか?

FPGA はハードウェア エミュレーションによく使用されますが、チップセット設計プロセスの興味深い部分は、テスト中に FPGA を使用して SoC のさまざまな部分をエミュレートすることです。 チップセット設計者は、複数の FPGA を使用して特定用途向け集積回路 (ASIC) のプロトタイプを作成できます。 ハードウェア記述言語 (HDL) はハードウェア設計の作成に使用され、この言語は FPGA に自身の配置方法を指示します。 Analogue Pocket の場合、これらの設計は通常 Verilog で記述された「コア」の形式で配布され、ユーザーはコアをダウンロードしてハンドヘルドを特定のコンソール用に準備できます。

たとえば、Analogue Pocket はゲームボーイのゲームをカートリッジ スロットに直接読み取り、オリジナルのコンソールであるかのようにプレイできます。 それだけでなく、カートリッジ アダプターにより、ゲーム ギア、Atari Lynx などの他のデバイスのサポートも追加されます。 これは、ゲームをプレイできるようにするためにソフトウェア エミュレーションではなくハードウェア エミュレーションを利用する FPGA の再プログラム可能な性質によってのみ可能になります。 MiSTer (DE-10 Nano FPGA ボードをベースとして使用し、その上に追加のモジュールが必要です) SNES、Sega Genesis、さらには ゲームキューブ。 一般に、ハードウェア エミュレーションはソフトウェア エミュレーションよりも正確であると同時に、パフォーマンス上の利点も得られます。

ハードウェアは古くなり、時間の経過とともに信頼性が低下する可能性がありますが、FPGA を再プログラムするだけで、同じハードウェア エクスペリエンスをエミュレートできます。

もちろん、これはコアがチップセットの完全な 1 対 1 HDL 解釈であることを意味するものではありません。 それらはかなり近いものですが、通常の使用で特定される可能性のある問題を修正するために、時間をかけてコアに修正と改善が行われます。 これらのコアは、これらのデバイスに組み込まれるチップセットをリバース エンジニアリングすることによって作成され、マザーボード上のすべてのコンポーネントをマッピングする必要があります。 カスタム独自のチップセットでは、開発者は多くの場合、次の点を確認する必要があるため、さらに困難になります。 「キャップのない」チップを顕微鏡で観察し、チップの内部で何が起こっているかを正確に観察し、それを再現します。

そのため、FPGA はハードウェアの保存にとっても重要です。 ハードウェアは古くなり、時間の経過とともに信頼性が低下する可能性がありますが、FPGA を再プログラムするだけで、同じハードウェア エクスペリエンスをエミュレートできます。 チップは、与えられたコアに一致するように、内部の物理ロジックを再配置します。 openFPGA エコシステムは、ハードウェアの保存を支援するように設計されています。

それに加えて、これらのゲームを正当な感覚で、しかも全体的に優れたハードウェアでプレイできるという追加の利点も得られます。 Analogue Pocket を 220 ドルで購入すると、以前と同じようにゲームボーイ ゲームをプレイできますが、より高いビルド品質、より優れた画面、さらにはドックのサポートも備えています。

FPGAの欠点

MiSTer FPGA ビルド用の DE-10 Nano

ただし、いくつかの欠点もあります。 まず、従来の CPU よりもはるかに多くのスペースを必要とし、製造コストも大幅に高くなります。 Analogue Pocket や MiSTer FPGA などのデバイスは高額で、後者はアドオンもいくつか購入すると 500 ドル以上かかります。 ほとんどの人は、スマートフォンまたはコンピュータ上でゲームをエミュレートすることだけを好み、ハードウェア レベルのエミュレーションが提供するピクセル完璧な精度には関心がありません。

もちろん、FPGA も消費者関連ではまだ初期段階にあり、人気が高まっているのは近年のことです。 実際、これらは科学者、チップセットアーキテクト、AI などによる専門的なユースケースで以前から存在していましたが、 消費者向けデバイスが登場し、よりカジュアルな方法や熱心な方法で使用できるようになったのは近年のことです。

エミュレーションを始めたいと考えているほとんどの人にとって、エミュレーションを保証する専用デバイスの利便性は、 オリジナルに忠実な体験は魅力的ですが、それは誰もが必要とするものでも、気にするものでもありません。 個人的には、スーパー マリオ ブラザーズのようなゲームをプレイしたい場合は、外出先で携帯電話でプレイするだけで満足です。 専用のデバイスは必要ありませんが、専用デバイスを持つことの魅力は理解しています。