FPGA: 役割と活用するべき理由

FPGA に関するさまざまな話題をふまえ、FPGA とは何かについて、2019年とその先の未来、金融サービス業界のビジネスにどのように影響していくか考察します。

FPGA は、時間が最優先されるネットワーク機能の高速化に活用できます。

著者: Steve Bradley (テクノロジー・ライター)

金融分野で唯一確実に言えるのは、変化が起こるということです。そして規制改定となれば、まさしく大きな変化を意味します。ただし、この変革の機会を活かすには、企業は対応できる態勢を整えておかなければなりません。しかも迅速にです。

そこで問われるのが、「これまでになく迅速かつ効果的に対処するために、現時点で自在自由に使えるツールはあるのか?」という問題です。もちろん、必要だからです。

可能性を秘めた画期的なツールへ、FPGA という形で一歩踏み出すときです。ところで、この得体の知れない FPGA とは何でしょうか?

FPGA は、そのフルスペリング「Field Programmable Gate Array」が示すとおり、ユーザー環境のワークロードに完全に適合するハードウェア設計とデータパスで動的な再プログラミングが可能なシリコンデバイスです。

ここでは、知っておくべきことをすべて紹介します。

名前に込められた意味

後半の「Gate Array (ゲートアレイ)」は論理ゲートを表します。これはあらゆるデジタル回路の基本ビルディング・ブロックです。このビルディング・ブロックを束ねて縦方向と横方向に配列するとアレイになります。極めて複雑なプロセッサーでも、分解していくと論理ゲートのブロックになります。これは基本の AND と OR を組み合わせたもので、シフター、加算器、乗算器、フリップフロップ、レジスター、アキュムレーターなどを構成します。現在の大規模集積では、このような詳細はほとんど分からなくなっています。

「Programmable (プログラマブル)」の部分は、論理ゲート間の相互接続方法があらかじめ定義されていないという意味です。つまり、FPGA にはあらかじめ定義されたコンフィグレーションがなく、電源を入れた状態では基本的に、大量の未定義ロジックの集合というだけです。コンフィグレーションを処理するデザインファイルは、通常チップの外部に格納され、電源投入時にロードされます。このファイルがロジックを相互接続して、さらに大きい単位となる「ファンクション」の構成方法を FPGA に指定します。

「Field (フィールド)」の部分は、電源サイクルごとの電源投入時にコンフィグレーションが行われることを示しています。FPGA は何通りものコンフィグレーションで起動することが可能で、実際、電源を入れ直す必要さえなくなっています。FPGA の多くは、そのデバイスの一部が動作中でもリアルタイムのリコンフィグレーションが可能になっています。この、ほぼどのようなタスクでも、そのタスク専用に設計されたハードウェアを使用して実行できるという能力が、データセンターのようなハイパフォーマンス・アプリケーションで FPGA の価値を実感できるポイントです。

FPGA の活用

基本的に、完全にソフトウェアで定義されたシステムにおいては、ハードウェアによる制約は避けられません。メモリー・プロテクション・ユニット (MPU) はまさにそのケースです。ソフトウェアで実行することが何であっても、基盤となる同一のハードウェア上で常に実行され、この 2 つの間の抽象化はコンパイラーによって処理されます。

タスクは、通常ソフトウェアで定義されるものですが、FPGA を使用する場合はハードウェア・アーキテクチャーに合わせる必要がありません。実際はその逆で、ハードウェアをタスクに適合させるため、タスクはもはや (少なくとも従来の意味では) ソフトウェアで定義する必要がなくなります。

同時実行のアドバンテージ

簡単にいうと、FPGA ソフトウェアで乗算器を記述すると、ハードウェアの乗算器として実装されます。さらに簡単にいうと、FPGA ソフトウェアのコードの各行は同時に実行されます。これ以上に並列なアーキテクチャーはありません。

言語の流れ

FPGA のハードウェア構造を定義する言語は、一般にハードウェア記述言語 (HDL) と呼ばれます。HDL をコンパイルするプロセスは合成と呼ばれ、FPGA のデザインフローは Application-Specific Integrated Circuit (ASIC: 特定用途向け集積回路) のデザインフローと同様です。

そのため、デザインの主な段階の 1 つに、ハードウェアが仕様どおりに動作するかをチェックする「検証」があります。物理的なハードウェアでの同時処理を実現するために、確認すべき最も重要なパラメーターの 1 つはタイミングです。タイミング・クロージャーは、デザインの中でも最難関で、極めて重要なフェーズとされています。最新の高度な EDA ツールを利用すると、デザインサイクル全体をスムーズに進めることができます。

FPGA の実装例

データセンターなど、実環境のアプリケーションに FPGA を実装する最も簡単な方法の 1 つは、インテル® FPGA プログラマブル・アクセラレーション・カード (インテル® FPGA PAC) を利用することです。インテルは、インテル® Arria® 10 GX FPGA およびインテル® Stratix® 10 SX FPGA を搭載した PAC を提供しています。その中の 1 つインテル® FPGA PAC D5005 は、金融、分析など、さまざまな市場セグメントでの実装が可能です。

最後に、活用するべき理由

数十年にわたって進化してきた FPGA は、常にパフォーマンスの最前線にいます。開発者が利用できる標準 IC の最強形態として、時間が最優先されるネットワーク機能の高速化に活用できます。

金融サービス業界にとって、数多くのメリットが考えられ、そのリストのトップに位置するのがリスク分析と高頻度取引です。どちらにおいてもスピードが欠かせない要素で、FPGA の実装を検討しているのがリスク管理でも取引の最適な判断でもそれは変わりません。数十ナノ秒のデータ・デコーディングが、現実のビジネスを一歩先に進めます。その他にも、超低レイテンシー取引、アルゴリズム取引、データ分析といったさまざまなユースケースが主要なメリットとして考えられ、FPGA が担う役割は絶大です。

インテルは、あらゆる形でパフォーマンスの向上に取り組んでおり、FPGA はその戦略の重要な一部です。最適なハードウェア・プラットフォームを供給し、高度な FPGA 開発用 EDA ツールで補完することで、優れたパフォーマンスを実現する可能性をさまざまな企業に提供しています。

このような汎用性によって提供できるのが、高速処理の電力効率に優れた、低レイテンシーのサービスです。総保有コストを抑えながら、電力、スペース、冷却の制約内でデータセンターの処理能力を最大化することが可能になります。

インテルの電子書籍「FPGAs for Dummies」をダウンロードするには、こちらをクリックしてください。

詳細情報: