(57)【特許請求の範囲】
【請求項１】
複数の金融市場データメッセージを処理するための機器であって、各金融市場データメッセージが金融市場データを含み、金融商品に関連している、機器において、
複数の金融商品に関連する複数のデータレコードを記憶するメモリと、
ファームウェアパイプラインをその上に導入した再構成可能な論理装置であって、ファームウェアパイプラインがレコード更新ファームウェアアプリケーションモジュールを含み、レコード更新ファームウェアアプリケーションモジュールが複数の更新エンジンを備える、再構成可能な論理装置とを備え、
再構成可能な論理装置は、金融市場データメッセージを受け取り、受け取られた複数の金融市場データメッセージをファームウェアパイプラインを通して処理するように構成され、
レコード更新ファームウェアアプリケーションモジュールは、（ｉ）処理されるメッセージに関連する金融商品に関する複数のレコードをメモリから取り出し、（ｉｉ）取り出されたレコードおよび金融市場データを処理のために更新エンジンに送るように構成され、
更新エンジンは、処理されるメッセージに基づいて金融商品に関する取り出された複数のレコードを更新するように構成される、機器。
【請求項２】
メモリは、複数の金融商品に関する複数のレコードを記憶するように構成されるレコードメモリを備え、レコード更新ファームウェアアプリケーションモジュールが、（１）受け取られた各メッセージに関連して金融商品シンボル識別子を受け取り、（２）各メッセージの関連する金融商品シンボル識別子に少なくとも部分的に基づいて、各メッセージについてのレコードをレコードメモリから取り出すようにさらに構成され、更新エンジンが、各金融市場データメッセージの処理に応答して、取り出された各レコードを更新するように構成される、請求項１に記載の機器。
【請求項３】
メモリは、レコード管理メモリをさらに備え、レコード管理メモリが複数のレコード管理メモリアドレスを含み、レコード管理メモリがレコードメモリ中の複数のレコードへの複数のポインタを記憶するように構成され、各ポインタがレコード管理メモリアドレスに記憶され、レコード更新ファームウェアアプリケーションモジュールが、そのメッセージの関連する金融商品に関するレコードが記憶されるレコードメモリ中の位置へのポインタを取り出すために、各メッセージの関連する金融商品シンボル識別子に少なくとも部分的に基づいてレコード管理メモリ中の検索を行うようにさらに構成される、請求項２に記載の機器。
【請求項４】
レコードメモリが、複数の金融商品のそれぞれについて、その金融商品が取引される各取引所についての合成レコードと局所レコードとを記憶するようにさらに構成され、レコード更新ファームウェアアプリケーションモジュールが、（１）受け取られた各メッセージに関連して取引所識別子を受け取り、（２）各メッセージの関連する金融商品シンボル識別子および取引所識別子に少なくとも部分的に基づいて、各メッセージに関連する金融商品に関する合成レコードおよび各局所レコードの両方をレコードメモリから取り出すようにさらに構成される、請求項２または３に記載の機器。
【請求項５】
メモリは、複数のレコード管理メモリアドレスを含むレコード管理メモリをさらに備え、各レコード管理メモリアドレスが金融商品シンボル識別子に関連しており、そのレコード管理メモリアドレスの関連する金融商品シンボル識別子に対応する金融商品に関する、レコードメモリ中の合成レコードへの合成ポインタと、そのレコード管理メモリアドレスの関連する金融商品シンボル識別子に対応する金融商品に関する各局所レコードに関連するレコードメモリ中の位置への局所ポインタとを記憶し、レコード更新ファームウェアアプリケーションモジュールが、各メッセージについて（１）そのメッセージの関連する金融商品シンボル識別子に関連するレコード管理アドレスに記憶されるポインタを取り出し、（２）取り出された合成ポインタに少なくとも部分的に基づいて、レコードメモリから合成レコードを取り出し、（３）取り出された局所ポインタおよびそのメッセージの関連する取引所識別子に少なくとも部分的に基づいて、レコードメモリから各局所レコードを取り出すようにさらに構成される、請求項４に記載の機器。
【請求項６】
更新エンジンが、複数の合成レコード更新エンジンと複数の局所レコード更新エンジンとを備え、レコード更新ファームウェアアプリケーションモジュールが、（１）取り出された合成レコードおよび金融市場データを、処理のために合成レコード更新エンジンに提供し、（２）取り出された局所レコードおよび金融市場データを、処理のために局所レコード更新エンジンに提供するようにさらに構成される、請求項４または５に記載の機器。
【請求項７】
更新エンジンによって使用されるためのビジネスロジックを記憶するように構成されるテンプレートメモリをさらに備える、請求項１から６のいずれか一項に記載の機器。
【請求項８】
複数の更新エンジンが、ビジネスロジックにしたがって、処理されるメッセージに基づいて受け取られた複数のレコードを更新するように構成され、再構成可能な論理装置が、各メッセージを処理するために更新エンジンによって使用されるべきビジネスロジックを、そのメッセージ内のフィールド、およびそのメッセージに関する取り出されたレコード内のフィールドからなる群のうちの少なくとも１つに応じて選択するようにさらに構成される、請求項７に記載の機器。
【請求項９】
レコード更新ファームウェアアプリケーションモジュールが、パイプライン型の回路が複数のメッセージに対して同時に動作できるように取り出しおよび配信操作を行うように構成されるパイプライン型の回路をさらに備える、請求項１から８のいずれか一項に記載の機器。
【請求項１０】
パイプライン型の回路が第２のメッセージと同じ金融商品に関連する第１のメッセージをすでに処理していることを検出することに応答して、パイプライン型の回路が、金融商品に関連する第２のメッセージの処理を停止するように構成され、パイプライン型の回路が、第１のメッセージの処理が完了するまで停止を維持するように構成される、請求項９に記載の機器。
【請求項１１】
再構成可能な論理装置が、最近更新されたレコードを記憶するためのキャッシュメモリを維持するように構成され、レコード更新ファームウェアアプリケーションモジュールが、最近更新されたレコードがキャッシュメモリ中に記憶されている金融商品に関連する各メッセージについて、レコードメモリから取り出されるレコードではなく、キャッシュされたレコードを更新エンジンに送るようにさらに構成される、請求項１から１０のいずれか一項に記載の機器。
【請求項１２】
レコード更新ファームウェアアプリケーションモジュールが、（１）受け取られたメッセージが、レコードメモリ中にレコードが記憶されていない金融商品に関するかどうかを検出し、（２）受け取られたメッセージがレコードメモリ中にレコードが記憶されていない金融商品に関することを検出することに応答して、その金融商品に関する新たなレコードを、その受け取られたメッセージに少なくとも部分的に基づいてレコードメモリ中に書き込むようにさらに構成される、請求項２から１１のいずれか一項に記載の機器。
【請求項１３】
レコード更新ファームウェアアプリケーションモジュールが、その処理に応答して、少なくとも複数のレコードに新たなフィールドを追加するようにさらに構成される、請求項１から１２のいずれか一項に記載の機器。
【請求項１４】
処理される金融市場データメッセージが、メッセージの関連する金融商品に対応する金融市場データを記憶するための複数のメッセージフィールドを含み、複数のメッセージフィールドが、メッセージフィールドがシンボル識別子フィールドを含み、メモリ内に記憶されたデータレコードが複数のレコードデータフィールドを含み、レコード更新ファームウェアアプリケーションモジュールが、（１）シンボル識別子フィールドを含む、処理される金融市場データメッセージに対応する複数のメッセージフィールドを受け取り、（２）受け取られたシンボル識別子フィールドに基づいて、処理される金融市場データメッセージに関するレコードデータフィールドを取り出すためにメモリと対話するようにさらに構成される、請求項１に記載の機器。
【請求項１５】
レコード更新ファームウェアアプリケーションモジュールによって受け取られる処理される金融市場データメッセージに対応する複数のメッセージフィールドが、グローバル取引所識別子フィールドをさらに含み、
メモリが、レコード記憶メモリおよびレコード管理メモリを含み、
レコード記憶メモリが複数の金融商品レコードを記憶するためのものであり、レコード記憶メモリ内での記憶のための複数の金融商品レコードが（１）複数の合成レコード、（２）複数の局所リストブロックレコード、および（３）複数の局所レコードを含み、各合成レコードが金融商品に関連し、その金融商品に関する合成データを記憶するための複数の合成レコードフィールドを含み、各局所レコードが金融商品に関連し、その金融商品に関する局所データを記憶するための複数の局所レコードフィールドを含み、各局所リストブロックレコードが金融商品に関連し、その金融商品の各局所レコードへのポインタを記憶し、
レコード管理メモリが複数のポインタレコードを記憶し、レコード管理メモリ内での記憶のための各ポインタレコードが金融商品に関連しており、（１）その金融商品に関する合成レコードを識別する合成レコードポインタおよび（２）その金融商品に関する局所リストブロックレコードを識別する局所リストブロックレコードポインタを含み、
レコード更新ファームウェアアプリケーションモジュールが、関連するデータレコードをメモリに記憶した処理される各金融市場データメッセージについて、（１）その処理される金融市場データメッセージに関する受け取られたシンボル識別子フィールドによって識別される金融商品に対応する合成レコードポインタおよび局所リストブロックレコードポインタを取り出し、（２）取り出された局所リストブロックレコードポインタによって識別される局所リストブロックレコードを取り出し、（３）その処理される金融市場データメッセージに関する受け取られたグローバル取引所識別子フィールドに基づいて、取り出された局所リストブロックレコード内の局所レコードポインタを特定するようにさらに構成される
請求項１４に記載の機器。
【請求項１６】
レコード更新ファームウェアアプリケーションモジュールが、複数のパイプライン型のデータ処理ブロックおよび少なくとも１つの処理バッファを含み、パイプライン型のデータ処理ブロックが、アドレス解決ブロック、キャッシュ特定ブロック、およびレコード取り出しブロックを含み、
アドレス解決ブロックが、（１）レコード記憶メモリ内の記憶されたデータレコードを有する金融商品に対応する処理される各金融市場データについて、これらの処理される金融市場データメッセージに関するシンボル識別子フィールドおよびグローバル取引所フィールドに基づいて、合成レコードポインタおよび局所レコードポインタを取り出し、特定するためにレコード管理メモリと対話し、（２）取り出され特定された合成レコードポインタおよび局所レコードポインタを含むデータストリームをキャッシュ特定ブロックに提供するように構成され、
キャッシュ特定ブロックが、キャッシュメモリを含み、（１）キャッシュメモリ内で、レコード記憶メモリから前に取り出された、合成レコードおよび局所レコードからの局所データおよび合成データを維持し、（２）キャッシュメモリが提供されたデータストリーム内の合成レコードポインタおよび局所レコードポインタのうちのいずれかに関する局所データまたは合成データを含むかどうかを特定するために、提供されたデータストリームをキャッシュメモリと比較し、（３）提供されたデータストリーム内の各局所レコードポインタについて、キャッシュメモリがその局所レコードポインタに関する局所データを含まないことの特定に応答して、その局所レコードポインタをレコード取り出しブロックに提供し、（４）提供されたデータストリーム内の各合成レコードポインタについて、キャッシュメモリがその合成レコードポインタに関する合成データを含まないことの特定に応答して、その合成レコードポインタをレコード取り出しブロックに提供するように構成され、
レコード取り出しブロックが、（１）キャッシュ特定ブロックから複数の局所レコードポインタおよび合成レコードポインタを受け取り、（２）受け取られた局所レコードポインタおよび合成レコードポインタに対応する複数の局所レコードフィールドおよび合成レコードフィールドを取り出すためにレコード記憶メモリと対話し、（３）取り出された局所レコードフィールドおよび合成レコードフィールドを少なくとも１つの処理バッファ内に記憶するように構成される
請求項１５に記載の機器。
【請求項１７】
キャッシュメモリが、再構成可能な論理装置上に常駐する、請求項１６に記載の機器。
【請求項１８】
キャッシュメモリが、少なくとも１つの処理バッファの一部分を含む、請求項１７に記載の機器。
【請求項１９】
再構成可能な論理装置が、（１）各取引日の終りの後におよび（２）先入れ先出し（ＦＩＦＯ）ベースのうちの少なくとも１つに従ってキャッシュメモリをフラッシュするようにさらに構成される、請求項１６に記載の機器。
【請求項２０】
アドレス解決ブロックが、複数のパイプライン型のサブブロックを含み、複数のパイプライン型のサブブロックが、
（１）受け取られたシンボル識別子フィールドを処理して、処理されたシンボル識別子フィールドに基づいてレコード管理メモリに対する読み出し命令のストリームを生成し、（２）レコード管理メモリに対する読み出し命令に応答して、レコード管理メモリから合成レコードポインタおよび局所リストブロックレコードポインタを取り出すように構成された第１サブブロックと、
（１）取り出された局所リストブロックレコードポインタを処理して、処理された局所リストブロックレコードポインタに基づいてレコード記憶メモリに対する読み出し命令の第２ストリームを生成し、（２）レコード記憶メモリに対する読み出し命令に応答して、レコード管理メモリから局所リストブロックレコードを取り出すように構成された第２サブブロックと、
取り出された局所リストブロックレコードに対して受け取られたグローバル取引所識別子フィールドを処理して、受け取られたグローバル取引所識別子フィールドに対応する局所レコードポインタを特定するように構成された第３サブブロックと、
取り出され特定された合成レコードポインタおよび局所レコードポインタを含むデータストリームをキャッシュ特定ブロックに提供するように構成された第４サブブロックと
を含む、請求項１６に記載の機器。
【請求項２１】
レコード更新ファームウェアアプリケーションモジュールが、受け取られた複数のメッセージフィールドを少なくとも１つの処理バッファ内に記憶するようにさらに構成され、更新エンジンが、少なくとも１つの処理バッファとの通信のために複数の並列更新エンジンを含み、並列更新エンジンが、少なくとも１つの処理バッファからメッセージフィールド、局所レコードフィールド、および合成レコードフィールドを読み出して複数の異なる処理操作を実行し、複数の局所レコード更新、合成レコード更新、およびメッセージ更新を生成するように構成される、請求項１６から２０のいずれか一項に記載の機器。
【請求項２２】
少なくとも１つの処理バッファが、合成レコードフィールドを記憶する第１バッファ、局所レコードフィールドを記憶する第２バッファ、およびメッセージフィールドを記憶する第３バッファを含み、複数の並列更新エンジンが、複数の並列合成レコード更新エンジンおよび複数の並列局所レコード更新エンジンを含み、複数の並列合成レコード更新エンジンが第１バッファおよび第３バッファから合成レコードフィールドおよびメッセージフィールドを読み出すためのものであり、複数の並列局所レコード更新エンジンが第２バッファおよび第３バッファから局所レコードフィールドおよびメッセージフィールドを読み出すためのものであり、請求項２１に記載の機器。
【請求項２３】
レコード更新ファームウェアアプリケーションモジュールが、レコード更新ブロックをさらに含み、複数の並列更新エンジンが、（１）パイプライン内のダウンストリームのファームウェアアプリケーションモジュールにメッセージ更新を提供し、（２）レコード更新ブロックに局所レコード更新および合成レコード更新を提供するようにさらに構成され、レコード更新ブロックが、レコード記憶メモリと対話して、局所レコード更新および合成レコード更新をそれらが関係する合成レコードおよび局所レコードに関連してレコード記憶メモリ内に記憶するように構成される、請求項２１または２２に記載の機器。
【請求項２４】
レコード更新ファームウェアアプリケーションモジュールが、局所レコード更新および合成レコード更新をキャッシュメモリ内に記憶するようにさらに構成される、請求項２３から２５のいずれか一項に記載の機器。
【請求項２５】
レコード更新ファームウェアアプリケーションモジュールが、レコード記憶メモリ内の使用可能メモリ空間を識別する空き領域ポインタを含み、レコード更新ファームウェアアプリケーションモジュールが、関連するデータレコードをメモリ内に記憶していない処理される金融市場データレコードについて、（１）その処理される金融市場データメッセージに関連する金融商品に関する新たな合成レコード、新たな局所レコード、および新たな局所リストブロックレコードを作成し、（２）空き領域ポインタに基づいて、新たな合成レコード、新たな局所レコード、および新たな局所リストブロックレコードをレコード記憶メモリ内に記憶し、（３）記憶された新たな合成レコード、記憶された新たな局所レコード、および記憶された新たな局所リストブロックレコードに対応して新たなポインタレコードをレコード管理メモリに書き込むようにさらに構成される、請求項１５から２４のいずれか一項に記載の機器。
【請求項２６】
複数の金融商品に関連する複数の合成レコードおよび複数の局所レコードを記憶するメモリをさらに含み、レコード更新ファームウェアアプリケーションモジュールが、最終値キャッシュ（ＬＶＣ）更新モジュールを含み、ＬＶＣ更新モジュールが以前にメモリから取り出された複数の合成レコードおよび局所レコードからのデータを記憶するキャッシュメモリを含み、ＬＶＣ更新モジュールが、キャッシュメモリが受け取られた金融市場データメッセージに関係するいずれかの合成レコードデータまたはいずれかの局所レコードデータを記憶するかどうかを特定してそれによってメモリにアクセスするのを回避するためにキャッシュメモリを調べて、その受け取られた金融市場データメッセージに関する更新操作を実行するのに必要な合成レコードまたは局所レコードを取り出すようにさらに構成される、請求項１に記載の機器。
【請求項２７】
レコード管理メモリおよびレコード記憶メモリをさらに含み、レコード記憶メモリが複数の金融商品に関連する複数の合成レコードおよび複数の局所レコードを記憶するためのものであり、レコード管理メモリがレコード記憶メモリ内の合成レコードおよび局所レコードを識別する複数のポインタを記憶するためのものであり、レコード更新ファームウェアアプリケーションモジュールが、最終値キャッシュ（ＬＶＣ）更新モジュールを含み、ＬＶＣ更新モジュールが、（１）処理される金融市場データメッセージに関連して複数のシンボル識別子および複数のグローバル取引所識別子を受け取り、（２）レコード管理メモリおよびレコード記憶メモリに別々にアクセスして、取り出されたポインタに基づいてレコード記憶メモリから合成レコードおよび局所レコードを取り出す前に、まずシンボル識別子およびグローバル取引所識別子に基づいてレコード管理メモリからポインタを取り出すパイプライン型の回路を含む、請求項１に記載の機器。
【請求項２８】
レコードを記憶するメモリが、再構成可能な論理装置の外部にある、請求項１から２７のいずれか一項に記載の機器。
【請求項２９】
再構成可能な論理装置が、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含む、請求項１から２８のいずれか一項に記載の機器。
【請求項３０】
複数の金融市場データメッセージを処理するための方法であって、各金融市場データメッセージが金融市場データを含み、金融商品に関連している、方法において、
再構成可能な論理においてファームウェアとして導入されたデータプロセッシングパイプラインを通して複数の金融市場データメッセージをストリーミングするステップであって、パイプラインが複数のパイプライン型のファームウェアアプリケーションモジュールを含む、ステップと、
ストリーミング金融市場データメッセージに関連する複数の金融商品に関する複数の合成レコードおよび複数の局所レコードを取り出すステップと、
ファームウェアアプリケーションモジュールの少なくとも１つが金融市場データメッセージの少なくとも一部分に対して複数の金融データ処理操作を行うステップと、
ファームウェアアプリケーションモジュールの少なくとも１つが、行うステップに応答して、取り出された合成レコードおよび局所レコードを更新するステップと
を含み、取り出すステップ、金融データ処理操作を行うステップおよび更新するステップが、ストリーミング金融市場データメッセージがパイプラインを通してストリームするときに、ハードウェア速度で再構成可能な論理によって行われる、方法。
【請求項３１】
複数の合成レコードおよび複数の局所レコードを記憶するメモリをさらに含み、少なくとも１つのファームウェアアプリケーションモジュールが、最終値キャッシュ（ＬＶＣ）更新モジュールを含み、ＬＶＣ更新モジュールが以前にメモリから取り出された複数の合成レコードおよび更新レコードからのデータを記憶するキャッシュメモリを含み、方法が、
ＬＶＣ更新モジュールが、キャッシュメモリが受け取られた金融市場データメッセージに関係するいずれかの合成レコードデータまたはいずれかの局所レコードデータを記憶するかどうかを特定してそれによってメモリにアクセスすることを回避するためにキャッシュメモリを調べて、その受け取られた金融市場データメッセージの更新動作を実行するのに必要な合成レコードまたは局所レコードを取り出すステップ
をさらに含む、請求項３０に記載の方法。
【請求項３２】
少なくとも１つのファームウェアアプリケーションモジュールが、最終値キャッシュ（ＬＶＣ）更新モジュールを含み、ＬＶＣ更新モジュールがパイプライン型の回路を含み、方法が、
レコード記憶メモリ内に、複数の合成レコードおよび複数の局所レコードを記憶するステップと、
レコード管理メモリ内に、レコード記憶メモリ内の合成レコードおよび局所レコードを識別する複数のポインタを記憶するステップと、
パイプライン型の回路が、（１）処理される金融市場データメッセージに関連して複数のシンボル識別子および複数のグローバル取引所識別子を受け取り、（２）レコード管理メモリおよびレコード記憶メモリに別々にアクセスして、取り出されたポインタに基づいてレコード記憶メモリから合成レコードおよび局所レコードを取り出す前に、まずシンボル識別子およびグルーバル取引所識別子に基づいてレコード管理メモリからポインタを取り出すステップと
をさらに含む、請求項３０に記載の方法。
【請求項３３】
再構成可能な論理が、フィールドプラグラマブルゲートアレイ（ＦＰＧＡ）を含む、請求項３０から３２のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、参照によりその開示全体が本明細書に組み込まれる、２００６年６月１９日に出願され、「Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐｒｏｃｅｓｓｉｎｇ  ｏｆ  Ｆｉｎａｎｃｉａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｕｓｉｎｇ  ＦＰＧＡ  Ｄｅｖｉｃｅｓ」と題された仮特許出願第６０／８１４，７９６号の優先権を主張する。
【０００２】
本特許出願は、参照によりそのそれぞれの開示全体が本明細書に組み込まれる以下の特許出願に関する：それは、（２０００年４月７日に出願され、「Ａｓｓｏｃｉａｔｉｖｅ  Ｄａｔａｂａｓｅ  Ｓｃａｎｎｉｎｇ  ａｎｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒｅｔｒｉｅｖａｌ」と題され、現在はＵＳ６，７１１，５５８である）米国特許出願第０９／５４５，４７２号、（２００２年５月２１日に出願され、「Ａｓｓｏｃｉａｔｉｖｅ  Ｄａｔａｂａｓｅ  Ｓｃａｎｎｉｎｇ  ａｎｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒｅｔｒｉｅｖａｌ  ｕｓｉｎｇ  ＦＰＧＡ  Ｄｅｖｉｃｅｓ」と題され、現在はＵＳ７，１３９，７４３である）米国特許出願第１０／１５３，１５１号、（どちらも２００４年５月２１日に出願され、「Ｉｎｔｅｌｌｉｇｅｎｔ  Ｄａｔａ  Ｓｔｏｒａｇｅ  ａｎｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｓｉｎｇ  ＦＰＧＡ  Ｄｅｖｉｃｅｓ」と題された）ＷＯ０５／０４８１３４およびＷＯ０５／０２６９２５、（２００６年２月２２日に出願され、「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｐｅｒｆｏｒｍｉｎｇ  Ｂｉｏｓｅｑｕｅｎｃｅ  Ｓｉｍｉｌａｒｉｔｙ  Ｓｅａｒｃｈｉｎｇ」と題され、２００７／００６７１０８として公開されている）ＷＯ０６／０９６３２４、（２００５年１２月２日に出願され、「Ｍｅｔｈｏｄ  ａｎｄ  Ｄｅｖｉｃｅ  ｆｏｒ  Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｒｅｇｕｌａｒ  Ｅｘｐｒｅｓｓｉｏｎ  Ｐａｔｔｅｒｎ  Ｍａｔｃｈｉｎｇ」と題され、２００７／０１３０１４０として公開されている）米国特許出願第１１／２９３，６１９号、（２００６年１月２６日に出願され、「Ｆｉｒｍｗａｒｅ  Ｓｏｃｋｅｔ  Ｍｏｄｕｌｅ  ｆｏｒ  ＦＰＧＡ−Ｂａｓｅｄ  Ｐｉｐｅｌｉｎｅ  Ｐｒｏｃｅｓｓｉｎｇ」と題され、２００７／０１７４８４１として公開されている）米国特許出願第１１／３３９，８９２号、（２００６年５月２日に出願され、「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ａｐｐｒｏｘｉｍａｔｅ  Ｐａｔｔｅｒｎ  Ｍａｔｃｈｉｎｇ」と題され、２００７／０２６０６０２として公開されている）米国特許出願第１１／３８１，２１４号、（２００６年１１月２０日に出願され、「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｆｉｎａｎｃｉａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  ａｔ  Ｈａｒｄｗａｒｅ  Ｓｐｅｅｄｓ  Ｕｓｉｎｇ  ＦＰＧＡ  Ｄｅｖｉｃｅｓ」と題され、２００７／００７８８３７として公開されている）米国特許出願第１１／５６１，６１５号、および（２００７年６月８日に出願され、「Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｈｉｇｈ  Ｓｐｅｅｄ  Ｏｐｔｉｏｎｓ  Ｐｒｉｃｉｎｇ」と題され、２００７／０２９４１５７として公開されている）米国特許出願第１１／７６０，２１１号である。
【０００３】
本発明は、金融市場データのためのデータ処理プラットフォームの分野に関する。
【背景技術】
【０００４】
情報配信の速度は、金融商品取引および仲介業にとって重要な要素である。株式、債券、特にオプションなどの金融商品についての価格情報をトレーダが可能な限り早く得る能力は軽視できず、およそ１秒の何分の１といった程度の情報配信遅延の改善は、トレーダに重要な価値を提供することができる。
【０００５】
例えば、株式Ｘ１００株を１株当たり２１ドル５０セントで購入する確約価格である、株式Ｘについての売りに出された「ビッド」があると仮定する。さらに、株式Ｘ１００株をそれぞれが売ろうとしているが、２１ドル５０セントの値で売ることは望まない、２人のトレーダＡおよびＢがいると仮定する。次いで、別の当事者が、２１ドル６０セントの値で株式Ｘ１００株を購入する意思を突如示すと仮定する。次いでその量に対する新しいクォートが提示され、株式Ｘについての「最高ビッド」を、株式Ｘの前の値の２１ドル５０セントを１０セント上回る２１ドル６０セントに設定する。株式Ｘについての新しい最高ビッド価格を見て、株式Ｘを売るための相手方オーダを出す最初のトレーダＡまたはＢが「落札」し、自身の株式Ｘを１株当たり２１ドル６０セントで売る。もう一方のトレーダは、自身の株式Ｘをより安い２１ドル５０セントの値で売ることを甘受しなければならないか、またはそのより安い値では一切売らないと決める必要がある。したがって、情報配信の速度がトレーダにとってしばしば実際のドルやセントに変わることがあり、規模が大きい状況では多大な金額に変わり得ることが分かる。
【０００６】
金融情報をトレーダなどの利害関係者に迅速に送る試みでは、様々な市場データプラットフォームが、金融商品に関するストリーミングビッド情報、オファー情報、および取引情報をトレーダに見た目「リアルタイム」で送ることを目的として開発されてきた。図１は、当技術分野で現在知られている例示的プラットフォームを示す。図１に示すように、市場データプラットフォーム１００は、ワークステーション１０４におけるトレーダが関心のある金融データにアクセスでき、取引情報が出力経路１１０を介して様々な取引所または他の外部システムに送信され得る、ユニット１０２で図示する操作などのデータ処理操作を行うように構成される複数の機能ユニット１０２を備える。機能ユニット１０２によって行われる機能の目的および詳細は当技術分野でよく知られている。金融データのストリーム１０６が、プライベートデータ通信回線を介して取引所自体（例えばＮＹＳＥ、ＮＡＳＤＡＱ等）などの外部ソースから、またはＳａｖｖｉｓやＢＴ  Ｒａｄｉａｎｓなどのエクストラネットプロバイダからシステム１００に届く。この金融データソースストリーム１０６は、金融商品を売買するための新たなオファーを個々に表す一連のメッセージ、完了した金融商品の売却についての指示、前に報告された金融商品の売却の訂正通知、そのような取引に関係する管理メッセージ等を含む。本明細書で使用するとき、「金融商品」は、典型的には企業または政府事業体に関するエクィティ所有権、債務、または債権を表す契約を指し、その契約は売ることができる。「金融商品」の例には、株式、債券、商品、通貨市場で取引される通貨等が含まれるが、現金または小切手は、それらのものが金融取引市場外で使用されている方法の観点から、含まれない（すなわち、現金または小切手を使用して食料品店で食料品を購入することは本明細書で使用するものとしての用語「金融商品」によってカバーされず、同様に、デビットカードを使用して現金自動預払機から現金１００ドルを引き出すことも本明細書で使用するものとしての用語「金融商品」によってカバーされない）。次いで、このシステムの機能ユニット１０２は、様々な金融処理タスクを行うために、ストリーム１０６またはストリーム１０６から得られるデータに対して機能する。本明細書で使用するとき、用語「金融市場データ」は、金融商品を売買するための新たなオファーを個々に表す一連のメッセージ、完了した金融商品の売却についての指示、前に報告された金融商品の売却の訂正通知、そのような取引に関係する管理メッセージ等に含まれるまたはそれらから得られるデータを指す。用語「金融市場ソースのデータ」は、取引所自体やサードパーティプロバイダ（例えばＳａｖｖｉｓやＢＴ  Ｒａｄｉａｎｚプロバイダ）などのデータソースから直接供給される金融市場データを指す。用語「金融市場２次データ」は、供給圧縮操作（ｆｅｅｄ  ｃｏｍｐｒｅｓｓｉｏｎ  ｏｐｅｒａｔｉｏｎ）、供給ハンドリング操作、オプション価格付け操作等によって作り出されるデータなど、金融市場ソースのデータから得られている金融市場データを指す。
【０００７】
そのようなプラットフォームをサポートするために要求される大量の計算のために、本明細書の発明者らに知られている現在の実装形態は、許容できる程度のレイテンシでトレーダに情報を送るための適当な処理規模を達成するために、典型的にはこれらの機能を互いにネットワーク化されたいくつかの個別のコンピュータシステムにわたって導入する。この分散プロセスは、所与の機能を複数の論理ユニットに分割し、各論理ユニットをそれぞれのコンピュータシステム／サーバ上のソフトウェアにて実施するものである。使用される特定の分割方式は、特定の機能およびその機能が動作するデータの性質によって決まる。本発明者らは、市場データプラットフォームのためのいくつもの様々な分割方式がこの数年間で開発されてきたと考える。大規模な市場データプラットフォームに関しては、複数のコンピュータシステムおよびサーバにわたる導入の規模は物理的に多大であり、しばしば部屋全体をコンピュータシステムおよびサーバで埋め尽くし、それにより高価かつ複雑な購入、保守、およびサービス問題の一因となることがある。
【０００８】
この分割手法は、各機能ユニット１０２をそれぞれのコンピュータシステムまたはサーバとして考えることができる、図１によって示される。バス１０８および１１０は、様々な機能ユニット１０２を互いにネットワーク化するために使用することができる。多くの機能に関して、冗長性および規模は、オプション価格付けおよびその他に関連して示されるものなど、並列コンピュータシステム／サーバによって提供することができる。本発明者らの知識では、これらの機能はコンピュータシステム／サーバ１０２上にある従来型の汎用プロセッサ（ＧＰＰ）によって実行されるソフトウェアに導入される。本明細書の本発明者らに知られている現在の最新技術の汎用プロセッサおよびソフトウェアシステムの性質は、これらの機能の性能を制限する制約を課す。性能は、典型的にはシステム上でユニット時間当たりに実行可能な何らかの数の計算動作のユニット（一般に「スループット」と呼ばれる）、および計算動作のそれぞれの個々のユニットを開始から終了まで実施するのに必要な時間（一般に「レイテンシ」または遅延と呼ばれる）として測られる。さらに、システム１００によって要求される多くの物理的機械のために、様々な機械間でメッセージを伝送することに伴う処理オーバーヘッドが理由でデータ処理操作に通信レイテンシが生じる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許第６，７１１，５５８号明細書
【特許文献２】米国特許第７，１３９，７４３号明細書
【特許文献３】国際公開第０５／０４８１３４号パンフレット
【特許文献４】国際公開第０５／０２６９２５号パンフレット
【特許文献５】米国特許出願公開第２００７／００６７１０８号明細書
【特許文献６】国際公開第０６／０９６３２４号パンフレット
【特許文献７】米国特許出願公開第２００７／０１３０１４０号明細書
【特許文献８】米国特許出願公開第２００７／０１７４８４１号明細書
【特許文献９】米国特許出願公開第２００７／０２６０６０２号明細書
【特許文献１０】米国特許出願公開第２００７／００７８８３７号明細書
【特許文献１１】米国特許出願公開第２００７／０２９４１５７号明細書
【非特許文献】
【００１０】
【非特許文献１】Ｋｒｉｓｈｎａｍｕｒｔｈｙら、「Ｂｉｏｓｅｑｕｅｎｃｅ  Ｓｉｍｉｌａｒｉｔｙ  Ｓｅａｒｃｈ  ｏｎ  ｔｈｅ  Ｍｅｒｃｕｒｙ  Ｓｙｓｔｅｍ」、Ｐｒｏｃ．ｏｆ  ｔｈｅ  ＩＥＥＥ  １５ｔｈ  Ｉｎｔ’ｌ  Ｃｏｎｆ．ｏｎ  Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｓｙｓｔｅｍｓ、Ａｒｃｈｉｔｅｃｔｕｒｅｓ  ａｎｄ  Ｐｒｏｃｅｓｓｏｒｓ、２００４年９月、３６５−３７５項
【発明の概要】
【発明が解決しようとする課題】
【００１１】
これらのシステムが提供してきた業界の改善にもかかわらず、本明細書の本発明者らは、さらなる著しい改善が可能であると考える。要するに、本発明者らは、どのようにその金融市場データの処理を迅速化したら、レイテンシの程度が非常に低い状態で、金融市場データをダウンストリームのアプリケーションおよび／または当事者に最終的に送ることを可能にすることができるのかに関して当技術分野に技術的問題が存在すると考える。そのような技術的問題に対する解決策の一部として、本明細書の本発明者らは、上記に列挙し、本明細書に組み込まれる関連する特許および特許出願に開示される基礎技術を使用して、市場データプラットフォームが導入されるシステムアーキテクチャを根本的に変えることを開示する。
【課題を解決するための手段】
【００１２】
上記に参照した関連特許出願第１０／１５３，１５１号では、ハードウェア速度でストリーミング金融情報を処理するために、ＦＰＧＡ（書替え可能ゲートアレイ）などの再構成可能な論理を利用できると最初に開示された。例として、この第１０／１５３，１５１号出願は、ストリーミング金融情報に対するデータ減縮操作を行うためにＦＰＧＡを使用することを開示し、そのようなデータ減縮操作の具体例は、最低価格機能、最高価格機能、および最新価格機能である。（上記に参照され、組み込まれる第１１／５６１，６１５号特許出願も参照されたい）。
【００１３】
そのときから、本明細書の本発明者らは、再構成可能な論理を用いて金融情報のストリームを処理するための機能性の範囲を大幅に拡張した、いくつかの合理化されたアプリケーションを考案してきた。本発明者らは、これらのアプリケーション自体が、金融市場データの処理を迅速化する方法で設計されていると考える。本明細書に記載の実施形態を用いて、図１に示す分散されたＧＰＰアーキテクチャを大幅に統合するハードウェアアプライアンスに導入される再構成可能な論理により、ハードウェア速度で複雑性の程度が様々な状態で、膨大なストリーミング金融情報を処理することができ、そのため、本発明の原理に従って構築される市場データプラットフォームは、図１に示すような従来型の市場データプラットフォームと比べ、より速いデータ処理機能を提供しながら、より少なく、はるかに小さいアプライアンスに実装できる。例えば本発明者らは、本発明を実施することで、図１のシステムアーキテクチャと比べて５：１以上のアプライアンスの削減を実現できると想定する。
【００１４】
本明細書で使用するとき、用語「汎用プロセッサ」（またはＧＰＰ）は、命令を取り出し、それらの命令を実行するハードウェア装置（例えばＩｎｔｅｌ  ＸｅｏｎプロセッサやＡＭＤ  Ｏｐｔｅｒｏｎプロセッサ）を指す。用語「再構成可能な論理」は、製造後にフィールド内でその形式および機能を著しく変える（すなわち再構成する）ことができる任意の論理技術を指す。再構成可能な論理は、その機能を製造後に変えることはできるが、その形式は製造時に固定されるＧＰＰと対比される。用語「ソフトウェア」は、ＧＰＰ上に導入されるデータ処理機能を指す。用語「ファームウェア」は、再構成可能な論理上に導入されるデータ処理機能を指す。
【００１５】
したがって、本明細書の本発明者らは、本発明の実施形態として、再構成可能な論理上に導入されるファームウェア内に実装される様々なデータ処理パイプラインを開示し、これらのパイプラインを介して金融データのストリームはハードウェア速度で処理され得る。このパイプラインは、それ自体が迅速化をもたらすように設計されている様々なファームウェアアプリケーションモジュールを含む。本明細書に開示する例示的なファームウェアアプリケーションモジュールは、受信した金融市場データメッセージに関する迅速化されたシンボルマッピングを行うファームウェアアプリケーションモジュールである。本明細書に開示する別の例示的なファームウェアアプリケーションモジュールは、受信した金融市場データメッセージに関する迅速化されたグローバル取引所識別子マッピングを行うファームウェアアプリケーションモジュールである。本明細書に開示する別の例示的なファームウェアアプリケーションモジュールは、受信した金融市場データメッセージに基づいて、迅速化された金融商品レコードの更新を行うファームウェアアプリケーションモジュールである。そのようなモジュールは、高速最終値キャッシュ（ＬＶＣ：Ｌａｓｔ  Ｖａｌｕｅ  Ｃａｃｈｅ）などの機能を実現するために使用することができる。本明細書に開示するさらに別の例示的なファームウェアアプリケーションモジュールは、金融市場データに関する迅速化された関心（ｉｎｔｅｒｅｓｔ）リストおよび／または権利付与フィルタリングを行うファームウェアアプリケーションモジュールである。本明細書に開示するさらに別の例示的なファームウェアアプリケーションモジュールは、受信した金融市場データメッセージに関する迅速化されたメッセージ解析を行うファームウェアアプリケーションモジュールである。本明細書に開示するさらに別の例示的なファームウェアアプリケーションモジュールは、発信金融市場データメッセージに関する迅速化されたメッセージ生成を行うファームウェアアプリケーションモジュールである。
【００１６】
本発明の実施形態としてさらに開示されているのは、ソフトウェア論理とファームウェア論理との組合せを用いて金融市場データを処理するように構成される相場速報装置である。この相場速報装置上に導入されるファームウェアパイプライン、およびそのファームウェアパイプラインへの／そのファームウェアパイプラインからのデータフローに対する効率的なソフトウェア制御および管理により、本明細書の本発明者らは、好ましい実施形態の相場速報装置は、金融市場データが処理される速度を大幅に迅速化できると考える。好ましい実施形態では、金融市場データは、ソフトウェア論理によって相場速報装置内でまず処理される。このソフトウェア論理は、１つまたは複数の再構成可能な論理装置上に導入されるファームウェア論理中への／ファームウェア論理から外への、受信した金融市場データのフローを、好ましくは各金融市場データメッセージが、ソフトウェア論理からファームウェア論理へ１回だけ移動し、ファームウェア論理からソフトウェア論理へ１回だけ戻されるような方法で制御し、管理する。本明細書で使用するとき、用語「相場速報装置」は、金融市場データストリーム１０６またはそこから得られるデータに対して機能するように合わせて編成される、図１に示す機能ユニット１０２などの複数の機能ユニットを指す。
【００１７】
本発明のこれらのおよび他の特徴ならびに利点は、本明細書の以下の説明および図面を吟味することで当業者によって理解されるであろう。
【図面の簡単な説明】
【００１８】
【図１】従来型の市場データプラットフォームに関する例示的システムアーキテクチャを示す図である。
【図２】本発明の一実施形態による例示的システムアーキテクチャのブロック図である。
【図３】本発明の一実施形態に関するソフトウェアおよびファームウェアを導入するための例示的フレームワークを示す図である。
【図４ａ】本発明によるデータ処理タスクを行うために、市場データプラットフォームに設置するための好ましいプリント基板のブロック図である。
【図４ｂ】本発明によるデータ処理タスクを行うために、市場データプラットフォームに設置するための代替プリント基板のブロック図である。
【図５】パイプラインのファームウェアアプリケーションモジュールをどのように複数のＦＰＧＡにわたって導入できるのかについての一例を示す図である。
【図６】本発明の一実施形態による市場データプラットフォームに関する例示的アーキテクチャを示す図である。
【図７】ＦＩＸ（Ｆｉｎａｎｃｉａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｅｘｃｈａｎｇｅ）形式からＦＡＳＴ（ＦＩＸ  Ａｄａｐｔｅｄ  ｆｏｒ  Ｓｔｒｅａｍｉｎｇ）形式にメッセージを変換するための例示的ファームウェアアプリケーションモジュールパイプラインを示す図である。
【図８】ＦＡＳＴ形式からＦＩＸ形式にメッセージを変換するための例示的ファームウェアアプリケーションモジュールパイプラインを示す図である。
【図９】メッセージ形式変換、メッセージデータ処理、およびメッセージ暗号化のための例示的ファームウェアアプリケーションモジュールパイプラインを示す図である。
【図１０】メッセージ形式変換、メッセージデータ処理、およびメッセージ暗号化のための別の例示的ファームウェアアプリケーションモジュールパイプラインを示す図である。
【図１１】シンボルマッピング、最終値キャッシュ（ＬＶＣ）更新、関心および権利付与フィルタリングを含む機能を実行するための別の例示的ファームウェアアプリケーションモジュールパイプラインを示す図である。
【図１２】シンボルマッピングを行うように構成されるファームウェアアプリケーションモジュール内でハッシュキーを生成するために使用される圧縮機能の例示的実施形態を示す図である。
【図１３】シンボルマッピングを行うように構成されるファームウェアアプリケーションモジュール内で導入するためのハッシュ関数の例示的実施形態を示す図である。
【図１４】シンボルマッピングを行うように構成されるファームウェアアプリケーションモジュール内でＧＥＩＤ（グローバル取引所識別子：ｇｌｏｂａｌ  ｅｘｃｈａｎｇｅ  ｉｄｅｎｔｉｆｉｅｒ）を生成するための好ましい実施形態を示す図である。
【図１５ａ】最終値キャッシュ（ＬＶＣ）の更新を行うように構成されるファームウェアアプリケーションモジュールに関する例示的実施形態を示す図である。
【図１５ｂ】最終値キャッシュ（ＬＶＣ）の更新を行うように構成されるファームウェアアプリケーションモジュールに関する例示的実施形態を示す図である。
【図１６】関心および権利付与フィルタリングを行うように構成されるファームウェアアプリケーションモジュールに関する例示的実施形態を示す図である。
【図１７】主データ処理機能ユニットが再構成可能なハードウェアに導入され、制御および管理機能ユニットが汎用プロセッサ上のソフトウェアに導入される相場速報装置の例示的実施形態を示す図である。
【図１８】図１７に記載の相場速報装置内のインバウンド取引所トラフィックに関する例示的データフローを示す図である。
【図１９】図１７に記載の相場速報装置内の複数のスレッド群の例示的処理を示す図である。
【図２０】図１７に記載の相場速報装置内のハードウェアインターフェースドライバと再構成可能な論理との間のデータフローの一例を示す図である。
【図２１】再構成可能な論理を出て行くデータに関する、図１７に記載の相場速報装置内のデータフローの一例を示す図である。
【図２２】図１７に記載の相場速報装置とのクライアント接続を管理するための例示的モデルを示す図である。
【発明を実施するための形態】
【００１９】
図２は、本発明による例示的システム２００を示す。このシステムでは、（直接的にまたはＲＡＭ２１０などのシステムメモリを介して間接的に）ディスクコントローラ２０６およびデータ記憶２０４によって定義されるディスクサブシステムと、（ネットワークインターフェース２４０を介した）ネットワークデータソース／宛先２４２とのいずれかまたは両方から流れるデータを受け取るために、再構成可能な論理装置２０２が配置される。好ましくは、データはシステムバス２１２を介してこの再構成可能な論理装置中へと流れるが、他の設計アーキテクチャも可能である（図４ｂを参照されたい）。好ましくは、再構成可能な論理装置２０２はＦＰＧＡであるが、そうでなくてもよい。システムバス２１２は、再構成可能な論理装置２０２を、このコンピュータシステムのメインプロセッサ２０８ならびにこのコンピュータシステムのＲＡＭ２１０と相互接続することもできる。本明細書で使用するとき、用語「バス」は、装置および位置がアドレスによってアクセスされる任意の物理的相互接続を含む論理バスを指す。本発明を実施する際に使用できるバスの例には、ＰＣＩファミリのバス（例えばＰＣＩ−ＸやＰＣＩ−Ｅｘｐｒｅｓｓ）やＨｙｐｅｒＴｒａｎｓｐｏｒｔバスが含まれるが、それだけに限定されない。好ましい実施形態では、システムバス２１２はＰＣＩ−Ｘバスとすることができるが、そうでなくてもよい。
【００２０】
このデータ記憶は任意のデータ記憶装置／システムとすることができるが、好ましくは何らかの形の大容量記憶媒体である。例えば、データ記憶２０４は、Ｓｅａｇａｔｅディスクの配列などの磁気記憶装置とすることができる。ただし、本発明を実施する際に使用するために、他のタイプの記憶媒体も適当であることに留意すべきである。例えば、このデータ記憶は、インターネットや何らかのＬＡＮ（ローカルエリアネットワーク）などのネットワークを介してアクセスされる、１つまたは複数のリモートデータ記憶装置であってもよい。再構成可能な論理装置２０２へのまたは再構成可能な論理装置２０２からのデータストリーミングに関する別のソース／宛先が、上述のようにネットワークインターフェース２４０を介したネットワーク２４２である。金融業界では、ネットワークデータソース（例えば取引所自体、第三者プロバイダ等）は、図１に関連して上記に説明した金融データストリーム１０６を提供することができる。
【００２１】
メインプロセッサ２０８およびＲＡＭ２１０によって定義されるこのコンピュータシステムは、好ましくは当業者によって理解されるであろうものとしての任意の汎用コンピュータシステムである。例えばこのコンピュータシステムは、Ｉｎｔｅｌ  ＸｅｏｎシステムやＡＭＤ  Ｏｐｔｅｒｏｎシステムとすることができる。
【００２２】
再構成可能な論理装置２０２には、再構成可能な論理装置２０２の機能性を定義するファームウェアモジュールがその装置上に導入されている。ファームウェアソケットモジュール２２０は、再構成可能な論理装置中への、および再構成可能な論理装置からのデータ移動要求（命令データおよび目標データの両方）を扱い、それにより、同じく再構成可能な論理装置上に導入されているファームウェアアプリケーションモジュール（ＦＡＭ）チェーン２３０への一貫したアプリケーションインターフェースを提供する。このＦＡＭチェーン２３０のＦＡＭ２３０ｉは、ファームウェアソケットモジュール２２０からチェーン２３０を通って流れる任意のデータに対して指定のデータ処理操作を行うように構成される。本発明の好ましい実施形態により、再構成可能な論理上に導入できるＦＡＭの好ましい例を以下に説明する。
【００２３】
ＦＡＭによって行われる具体的なデータ処理操作は、ＦＡＭがファームウェアソケットモジュール２２０から受け取る命令データによって制御／パラメータ化される。この命令データはＦＡＭ固有とすることができ、この命令を受け取ると、ＦＡＭは自らを編成して、受け取った命令によって制御されるデータ処理操作を行う。例えば、指数値（ダウ工業株平均など）を計算するように構成されるＦＡＭ内では、どの株式が計算に使用されるかを定義し、指数値を計算するために各株式の値に適用される適当な重み付けを定義するように、そのＦＡＭの指数計算操作をパラメータ化することができる。このようにして、指数値を計算するように構成されるＦＡＭは、単純に別の指数値用の新たなパラメータをそのＦＡＭ中にロードすることにより、別の指数値を計算するように容易に再編成することができる。
【００２４】
受け取った命令によって指定されるデータ処理操作を行うようにＦＡＭが編成されると、そのＦＡＭは、ファームウェアソケットモジュールから受け取るデータストリームに対してその指定されたデータ処理操作を行える状態にある。したがって、ＦＡＭは、指定されたデータストリームを指定された方法で処理するための適当な命令によって編成することができる。ＦＡＭがそのデータ処理操作を完了すると、そのＦＡＭによって行われるデータ処理操作の性質を変えるようにそのＦＡＭに自らを再編成させる、別の命令をそのＦＡＭに送ることができる。このＦＡＭは、ハードウェア速度で動作する（それによりこのＦＡＭを介した目標データの高スループットを提供する）だけでなく、自らのデータ処理操作のパラメータを変更するように柔軟に再プログラムすることもできる。
【００２５】
このＦＡＭチェーン２３０は、パイプラインシーケンスに編成される複数のファームウェアアプリケーションモジュール（ＦＡＭ）２３０ａ、２３０ｂ、．．．を好ましくは備える。本明細書で使用するとき、用語「パイプライン」、「パイプラインシーケンス」、または「チェーン」はＦＡＭの編成を指し、１つのＦＡＭの出力はそのシーケンスの次のＦＡＭの入力に接続される。このパイプライン編成は、各ＦＡＭが、所与のクロックサイクル中に受け取る任意のデータに対して独立して動作し、次いでその出力を別のクロックサイクル中にそのシーケンスの次のダウンストリームＦＡＭに渡すことを可能にする。
【００２６】
通信経路２３２は、ファームウェアソケットモジュール２２０をパイプラインＦＡＭのうちの最初のＦＡＭ２３０ａの入力に接続する。最初のＦＡＭ２３０ａの入力は、ＦＡＭチェーン２３０への入口点の役割を果たす。通信経路２３４は、パイプラインＦＡＭのうちの最後のＦＡＭ２３０ｍの出力をファームウェアソケットモジュール２２０に接続する。最後のＦＡＭ２３０ｍの出力は、ＦＡＭチェーン２３０からの出口点の役割を果たす。通信経路２３２および通信経路２３４はどちらも、好ましくはマルチビット経路である。
【００２７】
図３は、図２のシステム２００上にアプリケーションを導入するための例示的フレームワークを示す。図３の上から３つまでの層は、このコンピュータシステムの汎用プロセッサ２０８上のソフトウェアで実行される機能を表す。下の２つの層は、再構成可能な論理装置２０２上のファームウェアで実行される機能を表す。
【００２８】
アプリケーションソフトウェア層３００は、どのデータ処理操作がＦＡＭによって行われるべきかを定義し、何のデータに対してそれらのデータ処理操作を行うべきかを定義するために、１人または複数人のユーザがアプリケーションと対話するタイプの機能などの高レベル機能に相当する。
【００２９】
次の層が、高レベルモジュールＡＰＩ３０２ａおよび低レベルモジュールＡＰＩ３０２ｂを含む、モジュールＡＰＩ（アプリケーションプログラミングインターフェース）層３０２である。高レベルモジュールＡＰＩ３０２ａは、アプリケーションレベルソフトウェアに汎用サービス（例えばコールバックの管理）を提供することができる。低レベルモジュールＡＰＩ３０２ｂは、ＯＳ（オペレーティングシステム）レベル／装置ドライバソフトウェア３０４の動作を管理する。ソフトウェアライブラリインターフェース３１０は、高レベルモジュールＡＰＩ３０２ａと低レベルモジュールＡＰＩ３０２ｂとをインターフェースする。このソフトウェアライブラリインターフェースに関するさらなる詳細は、上記に参照した特許出願第１１／３３９，８９２号で知ることができる。
【００３０】
装置ドライバソフトウェア３０４とファームウェアソケットモジュール２２０との間のインターフェースは、システム２００に関するハードウェア／ソフトウェアインターフェース３１２としての役割を果たす。このインターフェース３１２の詳細については、上記に参照した特許出願第１１／３３９，８９２号でさらに詳しく説明されている。
【００３１】
ファームウェアソケットモジュール２２０とＦＡＭチェーン２３０との間のインターフェースは、ファームウェアモジュールインターフェース３１４である。このインターフェースの詳細については、上記に参照した特許出願第１１／３３９，８９２号でさらに詳しく説明されている。
【００３２】
図４ａは、市場データプラットフォームで使用するための汎用コンピュータシステムのＰＣＩ−Ｘバス２１２に接続することができるプリント基板またはカード４００を示す。図４ａの例では、このプリント基板は、メモリ装置４０４およびＰＣＩ−Ｘバスコネクタ４０６と通信するＦＰＧＡ４０２（Ｘｉｌｉｎｘ  Ｖｉｒｔｅｘ  ＩＩ  ＦＰＧＡなど）を含む。好ましいメモリ装置４０４にはＳＲＡＭメモリおよびＳＤＲＡＭメモリが含まれる。好ましいＰＣＩ−Ｘバスコネクタ４０６は、標準カード端コネクタである。
【００３３】
図４ｂは、プリント基板／カード４００に関する代替構成を示す。図４ｂの例では、プライベートバス４０８（ＰＣＩ−Ｘバスなど）、ネットワークインターフェースコントローラ４１０、およびネットワークコネクタ４１２もプリント基板４００上に設置されている。当技術分野で理解されているように、どんな商品ネットワークインターフェース技術もサポートされ得る。この構成では、プライベートＰＣＩ−Ｘバス４０８を介して接続される１つまたは複数のネットワークへの通常アクセスをプロセッサ２０８に提供するために、ファームウェアソケット２２０が、ＰＣＩ−ＸからＰＣＩ−Ｘへのブリッジとしての役割も果たす。
【００３４】
図４ａまたは図４ｂの構成のいずれにおいても、ファームウェアソケット２２０は、メモリ４０４をＰＣＩ−Ｘバスにとってアクセス可能にすることができ、それによりＯＳカーネル３０４が、ディスクコントローラおよび／またはネットワークインターフェースコントローラからＦＡＭへの転送用バッファとしてメモリ４０４を使用できるようにすることは留意するに値する。図４ａおよび図４ｂのプリント基板上には１つのＦＰＧＡ４０２が示されているが、２つ以上のＦＰＧＡをプリント基板４００上に含めることにより、または２つ以上のプリント基板４００をコンピュータシステム内に設置することにより、複数のＦＰＧＡをサポートできることを理解すべきであることも留意するに値する。図５は、単一パイプライン内の多数のＦＡＭが複数のＦＰＧＡにわたって導入されている一例を示す。
【００３５】
図２から図４ｂに示したように、（カーネル３０４からカード４００への）インバウンドデータは、コンピュータシステム内のバス２１２からファームウェアソケットモジュール２２０へと横切って移され、次いでファームウェアソケットモジュール２２０によってＦＡＭチェーン２３０に送られる。（カード４００からカーネル３０４への）アウトバンドデータは、ＦＡＭチェーン２３０からファームウェアソケットモジュール２２０に送られ、次いでファームウェアソケットモジュール２２０により、コンピュータシステム上で実行されているソフトウェアアプリケーションにＰＣＩ−Ｘバスを横切って送られる。図３に示すように、使用される３つの対話インターフェースは、ファームウェアモジュールインターフェース３１４、ハードウェア／ソフトウェアインターフェース３１２、およびソフトウェアライブラリインターフェース３１０である。
【００３６】
従来型の市場データプラットフォームを改良する目的で、本明細書の本発明者らは、その実施形態を図６に示す新しい市場データプラットフォームアーキテクチャを開示する。図６に示すこの市場データプラットフォーム６００は、図１に示す機能ユニット１０２をはるかに少ない物理装置へと統合し、さらに機能ユニット１０２のＧＰＰによって行われるデータ処理の多くを再構成可能な論理にオフロードする。
【００３７】
例えば、図６のアーキテクチャを用いて、供給コンプレッサ（ｆｅｅｄ  ｃｏｍｐｒｅｓｓｏｒ）６０２を図２に示すシステム２００などのアプライアンスに導入することができる。図４ａまたは図４ｂに関連して説明したように、再構成可能な論理２０２は基板４００上に実装することができる。供給コンプレッサ６０２は、様々な個別のソースから届く金融データストリーム１０６のコンテンツを圧縮するために使用される。使用できる圧縮技法の例には、オープンスタンダード「ｇｌｉｂ」ならびに本発明の実施者によって使用され得る任意の専有圧縮技法が含まれる。そのような供給圧縮操作を実施するための適当なＦＡＭモジュールおよび対応するＦＡＭパイプラインは、上記に参照した特許および特許出願に関連して記載される設計技法ならびに供給圧縮に関する当技術分野の基礎知識を使用する当業者によって実行され得る。その結果、再構成可能な論理上にロードするために使用可能な様々なハードウェアテンプレートが、所望の供給圧縮操作を実施するために市場データプラットフォーム６００によって使用されるために、設計され、記憶され得る。
【００３８】
好ましくは、この供給コンプレッサ装置６０２は、通信費用およびレイテンシを減らすために、可能な限り供給ソース１０６に近い物理的位置に導入される。例えば、この供給コンプレッサ装置６０２をエクストラネットプロバイダ（例えばＳａｖｖｉｓ、ＢＴ  Ｒａｄｉａｎｚ等）のデータセンタ内に導入することは、金融市場データ１０６のソースに対するデータセンタの地理的な近接性のために有利である。圧縮は供給ストリーム１０６内のメッセージサイズを減らすので、ストリームがＷＡＮ（広域ネットワーク）６２０ａに到達する前に圧縮を行い、それにより、メッセージサイズがより小さいことを理由に、ネットワークによる通信レイテンシを改善することが有利になる。
【００３９】
ＷＡＮ６２０は、装置６０４内に導入される供給ハンドラへのインバウンド側の接続用に、好ましくはエクストラネット基盤またはプライベート通信回線を備える。アウトバウンド側では、ＷＡＮ６２０は、以下に説明するように好ましくは装置６０６と接続する。ＷＡＮ６２０は、単一ネットワーク、またはプラットフォーム６００に関する自らのインバウンド／アウトバウンドの役割によって区分化される複数のネットワーク６２０ａおよび６２０ｂを含むことができることに留意すべきである。リアルタイムニュース配信報告を伴うニュース供給も、装置６０４に送るためにＷＡＮ６２０ａに供給できることも留意するに値する。
【００４０】
装置６０４は、図２に示すシステム２００などのアプライアンスに導入することができる。再構成可能な論理２０２は、図４ａまたは図４ｂに関連して説明したように、基板４００上に実装することができる。図１に示す従来型のＧＰＰベースのシステムアーキテクチャが、供給ハンドリング／相場速報装置、ルールベース計算エンジン、アラート生成エンジン、オプション価格付け、スナップショットおよび／またはストリーミングインターフェースを供給する最終値キャッシュ（ＬＶＣ）サーバ、アナリティクスを用いた時系列指向の履歴データベース、および別個のＧＰＰ上のソフトウェア内に検索機能を有するニュースデータベースの機能ユニットを導入するのに対し、図６のアーキテクチャは、これらの機能を、装置６０４の再構成可能な論理（１つまたは複数のＦＰＧＡなど）上に常駐するファームウェア内に部分的にまたは全体として統合することができる。
【００４１】
供給生産部と呼ぶこともできる供給ハンドラは、図６に示すような供給コンプレッサ６０２からの圧縮された、または供給ソースからの圧縮されていないリアルタイムのデータストリームを受信し、その圧縮されたまたは圧縮されていないストリームを、ソース固有の形式（例えばＮＹＳＥ形式）から、市場データプラットフォーム６００全体にわたって共通の形式へと変換する。この変換プロセスは、「正規化」と呼ぶことができる。この「正規化」は、メッセージ構造を変換し、各メッセージ内の特定のフィールド値のベースユニットを変換し、キーフィールド情報をこのプラットフォームの共通形式にマッピングし、キャッシュされたレコードまたはデータベースレコードからの欠けているフィールド情報を埋める、ＦＡＭチェーン内で実施することができる。受信した供給ストリームが圧縮された供給ストリームである状況では、この供給ハンドラは好ましくは供給復元操作も実施する。
【００４２】
ＬＶＣは、金融商品レコードのデータベースを維持し、その機能はＦＡＭパイプライン内で実施することができる。各レコードは、市場におけるその金融商品の現在の状態を表す。これらのレコードは、供給ハンドラから受信される更新メッセージのストリームによってリアルタイムで更新される。このＬＶＣは、１組の金融商品に関する極めて最新のレコードイメージに対する他の装置からの要求に応答し、それらの要求されたレコードに関する更新メッセージの選択的ストリームを再配信し、それにより金融商品の状態のリアルタイムスナップショットを提供するように構成される。上記に参照した第１０／１５３，１５１号出願に記載されるように、これらのスナップショットから、金融商品に関する「最新価格」などの情報を特定することができる。
【００４３】
ルールベース計算エンジンは、ユーザが自身の複合レコードを作成できるようにするエンジンであり、その複合レコードのフィールド値は、ＬＶＣから取得される情報、ＬＶＣまたは代替ソースから生成される更新メッセージのストリームから抽出される情報に対して行われる計算から得られる。これらのルールベース計算エンジンは、ＦＡＭパイプラインでの実装になじみやすい。このルールベース計算エンジンは、ＬＶＣによって保持される既存のレコードに含まれる新たな複合フィールドを作成するように構成できることにも留意すべきである。このエンジンによって計算される新たな値は、各複合フィールドについて指定されている１組のルールまたは公式に従うことによって計算される。例えば、ルールベース計算エンジンは、金融商品のＶＷＡＰ（出来高加重平均価格）を、基準Ｘを満たすすべての取引についてのＰｘＳの和として計算するＦＡＭパイプラインを介して、金融商品のＶＷＡＰを計算するように構成することができ、ただしＰは取引価格に等しく、Ｓは取引規模に等しい。基準Ｘは、取引を規模、種類、市況等に基づいてフィルタするＦＡＭフィルタ内にパラメータ化することができる。このルールベース計算エンジンによって行われ得るルールベース計算のさらなる例には、金融商品に関する最低価格計算、金融商品に関する最高価格計算、金融商品または一連の金融商品に関する上位１０リスト等が含まれるがそれだけに限定されない。
【００４４】
アラート生成エンジンも、ＦＡＭパイプライン内に導入することができる。アラート生成エンジンは、金融商品のレコード（または一連の金融商品のレコード）の現在の状態を監視するという点でルールベース計算エンジンと似ており、このアラート生成エンジンは１組の指定された条件のうちのいずれかが満たされる場合にアラートをトリガする。次いで、指示が、アラートの発生について知らされることを望む消費アプリケーションまたはエンドユーザに様々な手段を介して送られる。
【００４５】
オプション価格付けは、ＦＡＭパイプラインによる実装に極めてなじみやすいさらなる機能である。「オプション」とは、原金融商品に関係する金融派生商品であり、このオプションは、個人がその原金融商品を将来のある特定の時点で特定の価格で売り買いすることを可能にする。オプション価格付けエンジンは、これらのオプションおよびこれらのオプションの原商品に関係するいくつかの計算（例えばあるオプションの理論上の公正市場価格、またはそのオプションの市場価格に基づく、その原商品の予想変動率）を行うように構成される。当技術分野で知られているように、オプションの価格付けのために多様な計算ルールを使用することができる。全部ではないが大抵の、業界で認められたオプションの価格付けのための技法は極めて多量の計算を必要とし、その計算がソフトウェアで行われる場合、著しいレイテンシを生ぜしめる。しかし、ＦＡＭパイプライン内でオプションの価格付けを実施することにより、この市場データプラットフォーム６００は、オプションの価格付けの計算を著しく迅速化し、それにより本発明を使用するトレーダに重要な強みを提供することができる。ファームウェア内に導入できるオプション価格付け機能の一例が、参照によりその開示全体が本明細書に組み込まれる、２００７年６月８日に出願された係属中の米国特許出願第１１／７６０，２１１号に記載されている。
【００４６】
時系列データベースは、１組の金融商品について発生する各取引またはクォートイベントに関するレコードを保持するデータベースである。この情報は要求に応じて取り出し、イベントごとのビューで返すことができる。イベントが時間間隔によって「ロールアップ」され、各間隔について要約される代替ビューも利用可能である。一般的な間隔には、月間単位、週単位、日ごと、およびこの間隔が何分かに指定される「分バー」が含まれる。この時系列データベースはさらに、ＶＷＡＰ（出来高加重平均価格）、資金循環、異種の金融商品間の相関などの統計的測定を含む、これらの履歴的なデータのビューに対する多様な関数を好ましくは計算する。
【００４７】
ニュースデータベースは、供給ハンドラによりニュース配信供給から受信されたニュース記事の履歴記録を保持する。このニュースデータベースは、エンドユーザまたは他のアプリケーションが、様々なクエリパラメータに基づいてニュース記事または主要項目を取り出せるように好ましくは構成される。これらのクエリパラメータは、しばしばニュースカテゴリ指定、ソース識別子、またはキーワードやキーワードフレーズさえも含む。本明細書の本発明者らは、上記に参照した特許および特許出願に記載の検索技法およびデータマッチング技法を使用しても、この検索機能を向上させることができることに気づいている。
【００４８】
本明細書に記載の技法を使用して、再構成可能な論理上にロードするために使用可能な多様なハードウェアテンプレートが、所望のデータ処理機能を実施するために市場データプラットフォーム６００によって使用されるために設計され、メモリ中（図２に関連して、データ記憶２０４によって実施されるディスク上など）に記憶され得る。永続データ記憶ユニット６３０は、装置６０４が上述の機能に従って供給ストリームを処理するときに、装置６０４にとってアクセス可能であり得る。記憶６３０は、データ記憶２０４または本発明の実施者による所望の他のメモリ装置によって実施することができる。
【００４９】
次いで、ワークステーション１０４におけるトレーダ（またはエンティティの自らの取引プラットフォーム上で実行されるアプリケーションプログラム１５０）は、ＬＡＮ（ローカルエリアネットワーク）６２２への接続を介して、装置６０４によって処理されるストリーミング金融データにアクセスすることができる。このＬＡＮ接続を介して、ワークステーション１０４（およびアプリケーションプログラム１５）は、装置６０６、６０８、６１０、６１２、６１４、および６１６によって作り出されるデータにもアクセスすることができる。装置６０２および６０４と同様に、装置６０６、６０８、６１０、６１２、６１４、および６１６も図２に示すシステム２００などのアプライアンスに導入することができ、システム２００の再構成可能な論理２０２は、図４ａまたは図４ｂに関連して説明したように基板４００上に実装することができる。
【００５０】
装置６０６は、好ましくは以下の機能を、再構成可能な論理上に常駐するファームウェア内に少なくとも部分的に統合する：その機能とは、オーダブックサーバ、オーダルータ、取引所、ＥＣＮ（電子証券取引ネットワーク）、および他の流動性プールへの直接市場アクセスゲートウェイ、取引エンジン、自動クォートサーバ、ならびにコンプライアンスジャーナルである。
【００５１】
「オーダブックサーバ」は、メモリ中（例えば基板４００上のメモリ装置４０４中）に金融商品レコードのデータベースを保持し、供給ハンドラから受信される更新メッセージにより、そのデータベースをリアルタイムで最新の情報にしておくという点でＬＶＣと似ている。各レコードについて、このオーダブックサーバは、その商品についてのすべての売りに出されたオーダに関連するビッドおよびオファーについてのソートされたリストを好ましくは保持する。このリストは、その商品に関する「ブック」として知られる。各商品についてのこのオーダ情報は、ストリーム１０６内で各種の様々な取引現場から受信され、その特定の商品に関する市場の１つの全体的ビューを形成するために一緒にして集約される。このオーダブックサーバは、ワークステーション１０４のユーザまたはアプリケーションプログラム１５０からの要求に応答して、このブックをいくつもの異なる方法で提示するように構成される。次のものを含むがそれだけに限定されない各種の様々な「ビュー」がある：それは、価格が市場で入手可能な最良価格の（この最良価格はブックの「トップ」であるとみなされている）指定された数の価格点（ｐｒｉｃｅ  ｐｏｉｎｔｓ）の範囲内にあるとみなされるオーダを返す、ブックの「トップスライス」、各価格点で有効なオーダの合計数を示すエントリを作成するために、同じ価格点にあるオーダが一緒にして集約される価格集約ビュー、および（オーダのソースである）特定の取引現場が除外される通常ビューである。
【００５２】
オーダルータは、指定された金融商品に関する売り買いのオーダを取り、そのオーダ自体またはそのオーダを出すエンドユーザもしくはアプリケーションに関連する様々な基準に基づいて、そのオーダを取引所、ＡＴＳ（代替取引システム）、ＥＣＮなどの最適な取引現場に（丸ごとまたは部分的に）ルーティングすることができる機能である。
【００５３】
直接市場アクセスゲートウェイ機能は、ＷＡＮ６２０ｂを介して、取引現場（取引所、ＥＣＮ、ＡＴＳ等など）にオーダを中継するように機能する。ただし、オーダを送り出す前に、このゲートウェイは、好ましくはそのオーダメッセージをその取引現場に適した形式に変換する。
【００５４】
取引エンジン機能も、再構成可能な論理上に導入することができる。アルゴリズム的取引エンジンは、規定された量の取引オーダに対して数量モデルを適用し、それにより、現在の市場価格に対して元の取引オーダが有し得る影響を減らすように、その取引オーダを、そのタイミングおよびサイズがその数量モデルの目標によって導かれるさらに小さなオーダへと自動的に細分するように機能する。さらに、ブラックボックス取引エンジンは、ある商品または一連の商品に関する関係または条件付きパラメータを指定する数学的モデルに従うことにより、自動的に取引を生成するように機能する。この処理を支援するために、このブラックボックス取引エンジンにはリアルタイムの市場データが供給される。
【００５５】
自動クォートサーバは、ブラックボックス取引エンジンと似ている。自動クォートサーバは、「マーケットメーカ」の命令通りに特定の金融商品を売り買いするための確約価格を自動的に生成するように機能し、「マーケットメーカ」とは、「利ざや」またはビッド／オファーの差額で利益を上げることを期待して金融商品における買値および／または売値をクォートする個人またはエンティティである。
【００５６】
供給／コンプライアンスジャーナルも、ＦＡＭパイプライン内に実装することができる。この供給／コンプライアンスジャーナルは、確約価格または取引オーダが１つの特定の市場に出される時点において、特定の金融商品に関する全市場の現在の状態に関係する情報を（永続記憶６３２中に）記憶するように機能する。この供給／コンプライアンスジャーナルは、特定の確約価格または取引オーダが出されたときに、市況についての詳細な精査（ａｕｄｉｔ）情報を提供するために、記憶６３２を検索するための手段を提供することもできる。本明細書の本発明者らは、上記に参照した特許および特許出願に記載の検索技法およびデータマッチング技法を使用しても、この検索機能を向上させることができることに気づいている。
【００５７】
装置６０４に関連して上記に述べたように、装置６０６に関するこれらの様々な機能を実施するための適当なＦＡＭモジュールおよび対応するＦＡＭパイプラインは、上記に参照した特許および特許出願に関連して記載される設計技法ならびに各機能に関する当技術分野の基礎知識を使用する当業者によって実行され得る。その結果、再構成可能な論理上にロードするために使用可能な様々なハードウェアテンプレートが、所望のデータ処理機能を実施するために市場データプラットフォーム６００によって使用されるために、設計され、記憶され得る。データ記憶２０４によって実施することができる永続データ記憶ユニット６３２は、装置６０６が上述の機能に従って供給ストリームを処理するときに、装置６０６にとってアクセス可能であり得る。
【００５８】
装置６０８は、再構成可能な論理上に常駐するファームウェア内に内部マッチングシステム／エンジンを好ましくは実装する。内部マッチングシステム／エンジンは、特定の金融商品に関する買い手のビッドと売り手の売りオファーとを合致させるように機能して、それにより売買または取引を実施する。次いで、完了した取引についての指示が適当な報告および決済システムに送られる。この内部マッチングシステム／エンジンは、秩序ある市場および最低限の流動性を提供するために、プログラムで定義された１組のルールに従うことにより、マーケットメーカがするようにビッドまたはオファーを作り出すことができる。
【００５９】
装置６１０は、再構成可能な論理上に常駐するファームウェア内にオーダ管理システム（ＯＭＳ）を好ましくは実装する。ＯＭＳは、典型的には仲介業者の代わりに取引口座（ｔｒａｄｉｎｇ  ａｃｃｏｕｎｔ）の集まりの管理を手助けするように機能する。このＯＭＳは、売り買いのオーダを監視して、口座所有者の口座の状態、信用、およびリスクプロファイルに基づいて、それらのオーダが当該口座所有者にとって適切であることを確実にする。このＯＭＳは、口座情報ならびに各口座についてのオーダおよび他の活動の記録を保持するために使用される（データ記憶２０４によって実施することができる）永続記憶６３８により、データベースを典型的には組み込む。
【００６０】
装置６１２は、好ましくは権利付与機能および報告機能を実装する。システム６００などの市場データプラットフォームは、データコンテンツを様々なエンドユーザに配信するための機構である。多くのコンテンツプロバイダは、自らのデータコンテンツにアクセスするために、ユーザごとに課金する。したがって、そのようなコンテンツプロバイダは、市場データプラットフォームが、特定のコンテンツに個人ユーザベースでアクセスすることを禁ずる（または権利を与える）ための機構を有することを好む。権利付与システムは、様々なコンテンツセットの使用を詳述する各種の報告を供給することもできる。この機能を実現するために、装置６１２がデータベース６３４と連動して、権利付与フィルタリング操作によって行われるデータ処理操作とともに、権利付与フィルタリング操作のために装置６０４、６０６、６０８、６１０、および６１６によって使用され得る認証信任状および権利付与情報を含む、ユーザのデータベースを維持するように好ましくは動作する。
【００６１】
装置６１４は、市場データプラットフォーム６００に関する管理および監視を好ましくは実施する。管理および監視機能は、ユーザが、プラットフォーム６００内で実行されるアプリケーションを操作し、プラットフォーム６００上の個々の構成要素の動作状態およびヘルスを監視するための手段を提供する。好ましくは、この管理および監視機能は、それらの構成要素を再構成するための機能、ならびにこのプラットフォームを実行することに関連する他の任意の適当な手動の雑仕事を行うための手段も提供する。
【００６２】
装置６１６は、好ましくはパブリッシングサーバおよび寄与サーバ（ｃｏｎｔｒｉｂｕｔｉｏｎ  ｓｅｒｖｅｒ）機能を実装する。（パブリッシングサーバとしても知られる）寄与サーバは、ユーザがエンドユーザアプリケーション（または自身の企業内の他の何らかのソース）から得た情報を適した形式に変換し、それを市場データプラットフォーム６００によって配信してもらうことを可能にする。
【００６３】
装置６０４および６０６に関連して上記に述べたように、装置６０８、６１０、６１２、６１４、および６１６に関するこれらの様々な機能を実施するための適当なＦＡＭモジュールおよび対応するＦＡＭパイプラインは、上記に参照した特許および特許出願に関連して記載される設計技法ならびに各機能に関する当技術分野の基礎知識を使用する当業者によって実行され得る。その結果、再構成可能な論理上にロードするために使用可能な様々なハードウェアテンプレートが、所望のデータ処理機能を実施するために市場データプラットフォーム６００によって使用されるために、設計され、記憶され得る。永続データ記憶ユニット６３４および６３６は、装置６１２および６１４が上述の機能に従ってデータを処理するときに、装置６１２および６１４にとってそれぞれアクセス可能であり得る。
【００６４】
この機能を導入する際、再構成可能な論理上に、少なくとも部分的に、上述の機能の以下のモジュール／サブモジュールがＦＰＧＡ上での実装に特になじみやすい：それは、固定長レコード形式メッセージの解析、固定長レコード形式メッセージの生成、ＦＩＸメッセージの解析、ＦＩＸメッセージの生成、ＦＩＸ／ＦＡＳＴメッセージの解析、ＦＩＸ／ＦＡＳＴメッセージの生成、メッセージの圧縮、メッセージの復元、関心および権利付与フィルタリング、金融商品シンボルマッピング、レコードＩＤマッピング、価格要約ＬＶＣの更新／取得／正規化（ＬＶＣ）、オーダブックキャッシュの更新／取得／正規化（ＯＢＣ）、汎用ＬＶＣ（ＧＶＣ）、分バー生成、（ＬＶＣ、ＯＢＣ等に関する）プログラムフィールドの生成、履歴レコードの検索およびフィルタ、ブックベースのアルゴリズム的オーダルーティング、取引オーダの生成、（ＥＴＦ、指数、およびポートフォリオの評価を含む）バスケット計算、および自動クォートの生成である。この羅列は網羅的ではなく専ら例示的であり、本発明を実施する際に、金融データを処理するための追加のモジュールをＦＡＭまたはＦＡＭパイプライン内に導入できることも当業者によって理解されるべきである。
【００６５】
固定長レコード形式メッセージの解析に関しては、固定形式メッセージが、プログラム可能な「データ辞書」によって定義されるようにその構成フィールドへと分解される。このデータ辞書内のエントリは、タイプ別のメッセージ内のフィールド、それらのメッセージ内でのそれらのフィールドの位置およびサイズ、ならびにそのフィールドに関する他のメタデータ（データのタイプ、フィールド識別子等など）を表す。好ましくは、このデータ辞書はシステム２００のデータ記憶２０４などの永続記憶中に記憶される。基板４００上のＦＡＭパイプラインの初期化に続いて、このデータ辞書が、データ処理操作中にＦＡＭパイプラインによって使用されるために、好ましくはメモリ４０４中にロードされる。
【００６６】
固定長レコード形式メッセージの生成に関しては、フィールドに相当する適当なデータをメッセージレコードに連結することにより、固定形式メッセージが生成される。上述のように、このメッセージの構造および形式は、プログラム可能なデータ辞書によって表される。
【００６７】
ＦＩＸメッセージの解析に関しては、上述のように、ＦＩＸに形式設定されたメッセージが、プログラム可能なデータ辞書によって定義されるようにその構成フィールドへと分解される。ＦＩＸは、金融メッセージトランザクションを暗号化するためのよく知られている業界標準である。
【００６８】
ＦＩＸメッセージの生成に関しては、フィールドに相当する適当なデータをＦＩＸメッセージレコードに連結することにより、ＦＩＸに形式設定されたメッセージが生成される。この場合も、上述のように、このメッセージの構造および形式は、プログラム可能なデータ辞書によって表される。
【００６９】
ＦＩＸ／ＦＡＳＴメッセージの解析に関しては、上述のように、ＦＩＸおよび／またはＦＡＳＴメッセージ（ＦＡＳＴは、ＦＩＸのよく知られている改変形態である）が、プログラム可能なデータ辞書によって定義されるようにその構成フィールドへと分解される。
【００７０】
ＦＩＸ／ＦＡＳＴメッセージの生成に関しては、フィールドに相当する適当なデータをＦＩＸ／ＦＡＳＴメッセージレコードに連結することにより、ＦＩＸに形式設定されたおよび／またはＦＡＳＴに形式設定されたメッセージが生成される。上述のように、このメッセージの構造および形式は、プログラム可能なデータ辞書によって表される。
【００７１】
メッセージの圧縮に関しては、メモリ装置中に含まれる際により少ない空間を必要とし、他のシステムに送られる際により少ない通信帯域幅を必要とするように、メッセージレコードが圧縮される。使用する圧縮技法は、好ましくは、圧縮されたメッセージが対応するメッセージ復元モジュールによって処理されるときに、元のメッセージの復元を可能にするのに十分である。
【００７２】
関心および権利付与フィルタリングに関しては、以下に記載するキャッシングモジュール（例えば価格要約ＬＶＣ、オーダブックＯＢＣ、汎用ＧＶＣ）のうちの１つなどのモジュールから届くメッセージのストリームが、そのキャッシュ内のレコードごとに記憶されている１組の権利付与データおよび関心データに基づいてフィルタされる。この権利付与データおよび関心データは、そのレコードに関連するメッセージを受信する権利が与えられるだけでなく、それらのメッセージを受信することに関心を示した１組のユーザ（またはアプリケーション）を定義する。このデータは、基板４００の初期化中に記憶６３４から、または基板４００の通常動作中にアプリケーションソフトウェア３００からメモリ中にロードすることができる。関心および権利付与フィルタリングを行うように構成されるＦＡＭの例示的実施形態を、図１６に関連して本明細書の以下に記載する。
【００７３】
金融商品シンボルマッピングに関しては、金融商品に関する共通の識別ストリング（典型的には「シンボル」と呼ばれる）が、その金融商品に関連するキャッシュレコードを直接アドレス指定するためにキャッシングモジュール（ＬＶＣ、ＯＢＣ、ＧＶＣ）などのモジュールによって使用され得る、直接レコードキー番号へとマッピングされる。このレコードキー番号は、好ましくは基板４００とは別個の記憶中に保持される、その商品に相当する別個のレコードを直接アドレス指定するためにソフトウェアによって使用されてもよい。シンボルマッピングを行うように構成されるＦＡＭの例示的実施形態を、図１２から図１４に関連して本明細書の以下に記載する。
【００７４】
レコードＩＤマッピングに関しては、レコードに関する汎用識別ストリングが、記憶媒体中のそのレコードを直接アドレス指定するためにキャッシングモジュール（例えばＬＶＣ、ＯＢＣ、ＧＶＣ）またはソフトウェアによって使用され得る、直接レコードキー番号へとマッピングされる。
【００７５】
価格要約最終値キャッシュの更新／取得／正規化（ＬＶＣ）操作は、メッセージ解析モジュールから受信されるストリーミングメッセージに含まれる情報を用いてそのフィールドがリアルタイムで更新される金融商品レコードのキャッシュを維持し、メッセージ解析モジュールから受信したメッセージを後続の処理モジュールに渡す前に向上させ、またはフィルタするように機能する。レコード内の個々のフィールドに対して行われる更新のタイプは、上述のようにプログラム可能なデータ辞書によって定義され、データフィールドをメッセージからレコードに移すこと、時間境界ウィンドウ（ｔｉｍｅ  ｂｏｕｎｄｅｄ  ｗｉｎｄｏｗ）内で定義される一連のメッセージを通じてデータフィールドを蓄積することによりレコードフィールドを更新すること、１組のプログラム可能なルールによって定義されるものとしての特定の条件が真の場合にのみレコードフィールドを更新すること、またはプログラム可能な公式によって導かれるものとして、メッセージおよび／またはレコードフィールド値に基づいて新たな値を計算することからなることができる。個々のメッセージに適用される向上またはフィルタリングのタイプは、あるメッセージフィールドを、時間境界ウィンドウ内で定義される一連のメッセージを通じてデータを蓄積することによって作成されるメッセージフィールドで置換すること、その値が、プログラムで定義される値域から外れるフィールドにフラグを立てること、またはフィールドもしくは一連のフィールドの値が、キャッシュレコードに含まれる対応する値に関して変わらない場合にメッセージを全体として抑制することからなることができる。ＬＶＣの更新を行うように構成されるＦＡＭの例示的実施形態を、図１５ａおよび図１５ｂに関連して本明細書の以下に記載する。
【００７６】
オーダブックキャッシュの更新、取得、および正規化（ＯＢＣ）操作は、金融商品レコードのキャッシュを維持するように機能し、各レコードは、その金融商品に関する個々の価格またはオーダエントリを定義する副レコードの配列からなる。ソート順序が、各副レコードに関連する価格により、副レコードに関して維持される。この副レコードのフィールドは、メッセージ解析モジュールから受信されるストリーミングメッセージに含まれる情報を用いてリアルタイムで更新される。あるレコードに関連する副レコードは、このメッセージストリームから抽出される情報に従ってリアルタイムで作成、除去され、所与のレコードに関連する副レコードのソート順序が継続的にリアルタイムで維持される。副レコード内の個々のフィールドに対して行われる更新のタイプは、プログラム可能なデータ辞書によって定義され、データフィールドをメッセージから副レコードに移すこと、時間境界ウィンドウ内で定義される一連のメッセージを通じてデータフィールドを蓄積することにより副レコードフィールドを更新すること、１組のプログラム可能なルールによって定義されるものとしての特定の条件が真の場合にのみ副レコードフィールドを更新すること、またはプログラム可能な公式によって導かれるものとして、メッセージおよび／またはレコードもしくは副レコードフィールドに基づいて新たな値を計算することからなることができる。このＯＢＣは、価格集約されたビューおよび合成ビューを含むがそれだけに限定されない、金融商品に関するブックの様々なビューを生成する機能を含む。合成ビューは、複数の取引所にわたる金融商品に関する価格またはオーダエントリのソート順序である。このＯＢＣは、ブックの最高クォート（ｔｏｐ−ｏｆ−ｂｏｏｋ  ｑｕｏｔｅ）ストリームを合成する機能も含む。ある更新操作が所与のレコードについての最高ビッドまたはオファーエントリが変わることをもたらす場合、このＯＢＣは、その金融商品に関する現在の最高ビッドおよびオファー情報を報告するブックの最高クォートを生成するように構成することができる。合成された、ブックの最高クォートストリームは、取引所によって生成されるクォートストリームよりも少ないレイテンシで最高のビッドおよびオファー情報を報告する機能を有する。これは、レイテンシに影響されやすい様々なアプリケーションを迅速化するために使用することができる。
【００７７】
汎用最終値キャッシュ（ＧＶＣ）操作は、そのフィールドがメッセージ解析モジュールから受信されるストリーミングメッセージに含まれる情報を用いてリアルタイムで更新されるレコードのキャッシュを維持するように機能する。そのキャッシュ内に含まれるレコードおよびフィールドの構造は、上述のようにプログラム可能なデータ辞書によって定義される。レコード内の個々のフィールドに対して行われる更新のタイプは、プログラム可能なデータ辞書によって定義され、データフィールドをメッセージからレコードに移すこと、時間境界ウィンドウ内で定義される一連のメッセージを通じてデータフィールドを蓄積することによりレコードフィールドを更新すること、１組のプログラム可能なルールによって定義されるものとしての特定の条件が真の場合にのみレコードフィールドを更新すること、またはプログラム可能な公式によって導かれるものとして、メッセージおよび／またはレコードフィールド値に基づいて新たな値を計算することからなることができる。
【００７８】
分バーの生成操作は、メッセージ解析モジュールまたは最終値キャッシュモジュールからの、取引価格情報を含む取引イベントまたはクォート価格情報を含むクォートイベントに関するリアルタイムメッセージを監視し、前の時間間隔にわたって生じた取引価格および／またはクォート価格の範囲を要約する「分バー」イベントを作成するように機能する。分バーが生成されるべきレコードのリストや生成されるイベントに含めるフィールドのように、この時間間隔はプログラム可能なパラメータである。
【００７９】
上位１０リストの生成操作は、メッセージ解析モジュールまたは最終値キャッシュモジュールからの、価格情報を含む取引イベントに関するリアルタイムメッセージを監視し、市場での全体的な活動を示す商品のリストを生成するように機能する。そのようなリストは、：その日に最も取引量が多い上位Ｎ株、その日に最もプラスに価格が変化した上位Ｎ株、その日に最も大きい割合で価格が変化した上位Ｎ株、その日に最もマイナスに価格が変化した上位Ｎ株、その日に最も多い数の取引イベントが記録された上位Ｎ株、その日に最も多い数の「大口」取引があった上位Ｎ株（ただし「Ｎ」はプログラムで定義される）を含むことができ、ただし取引が大口取引であるかどうかを示す閾値はプログラムで定義される。
【００８０】
（ＬＶＣ、ＯＢＶ、ＧＶＣ等による）プログラムフィールドの生成操作は、メッセージ解析モジュールから受信したメッセージを、プログラムで供給される数式によってその値が定義される追加のフィールドで増大するように機能する。この公式は、メッセージ解析モジュールから受信されるメッセージのストリーム内の任意のフィールド、このモジュールに関連する補助メモリ中に含まれる任意のフィールド、または本明細書に記載のレコードキャッシュのいずれかの中に保持される任意のレコード内に含まれる任意のフィールドを参照することができる。
【００８１】
（ＬＶＣ、ＯＢＣ、ＧＶＣ等を用いた）プログラムレコード生成操作は、複合金融商品または他の任意エンティティを表すレコード、およびレコードが更新されたときに各レコードの状態の変化を信号で伝える一連のイベントメッセージを生成するように機能する。このレコードおよびイベントメッセージの構造は、データ辞書によってプログラムで定義される。このレコードおよびイベントメッセージとともに含まれるフィールド値は、プログラムで供給される数式によって定義される。この公式は、メッセージ解析モジュールから受信されるメッセージのストリーム内の任意のフィールド、このモジュールに関連する補助メモリ中に含まれる任意のフィールド、または本明細書に記載のレコードキャッシュのいずれかの中に保持される任意のレコード内に含まれる任意のフィールドを参照することができる。フィールド値に対する更新は、別のモジュールから受信されるメッセージの受信時に、またはプログラムで定義される時間間隔ベースで発生させることができる。バスケット計算エンジンは、プログラムレコード生成の一例である。複合商品は、金融商品の所与のポートフォリオ、ＥＴＦ（上場投信）の構成商品、または市場指数を表すように定義することができる。その複合商品に関するレコードは、ＮＡＶ（純資産価値）や総変化などのフィールドを含むことができる。
【００８２】
履歴レコードの検索およびフィルタ操作は、メッセージ解析モジュールから受信される時系列のイベントを表すメッセージをフィルタしてそのイベントを様々なセットに分割するように機能し、ただし、各セットはイベント属性に適用される基準の集合によって定義される。このイベントメッセージの構造、基準、および属性は、すべてプログラムで定義される。イベント属性には、：金融商品シンボル、シンボルのクラス、イベントの日時、イベントのタイプ、またはそのイベントに含まれる様々な指示子フィールドが含まれるがそれだけに限定されない。プログラムで定義され、個々のイベントの属性に適用される集約ルールの集合に従って、あるセット内の複数のイベントを単一のイベントレコードへと集約することができる。集約ルールには、時間単位のイベントを日ごとの単一イベントに集約すること、日ごとのイベントを週単位の単一イベントに集約すること、または複数の金融商品を単一の合成商品に集約することが含まれ得るが、それだけに限定されない。
【００８３】
次いで、ＦＡＭ内に実施されるものとしてのこれらの機能（ならびに他の適した金融データ処理操作）が組み合わせられて、市場データプラットフォーム向けに有用なデータを作り出すように構成されるＦＡＭパイプラインを形成することができる。例えば、供給コンプレッサのＦＡＭパイプラインは、次の機能で構成されるＦＡＭを使用することができる：それは、固定長レコード形式メッセージの解析、固定長レコード形式メッセージの生成、ＦＩＸメッセージの解析、ＦＩＸメッセージの生成、ＦＩＸ／ＦＡＳＴメッセージの解析、ＦＩＸ／ＦＡＳＴメッセージの生成、メッセージの圧縮、およびメッセージの復元である。
【００８４】
図７は、ＦＩＸからＦＡＳＴへのメッセージ変換を行うための例示的ＦＡＭパイプラインを示す。ＦＡＭ７０２は、入ってくるＦＩＸメッセージのストリームを受信し、そのストリームに対して上述のようなＦＩＸメッセージの解析を行うように構成される。次いで、この解析されたメッセージが、フィールド複号し、解析されたメッセージを検証するように構成されるＦＡＭ７０４に渡される。このプロセスを支援するために、ＦＡＭ７０４は、好ましくは（基板４００上のメモリ４０４によって実施される）メモリ７１０中の、記憶されたテンプレートおよびフィールドマップにアクセスすることができる。このテンプレートは、所与のメッセージタイプ内にどんなフィールドが存在するのかを識別する一方、フィールドマップは、それらのメッセージ内の特定のフィールドを（位置または他の方法により）一意に識別する。次いで、ＦＡＭ７０４がその出力を、受け取ったメッセージ構成要素に対してＦＡＳＴフィールド暗号化を行うように構成されるＦＡＭ７０６に提供する。メモリ７１０、およびメモリ７１２中に記憶される任意のオペレータ値がこのプロセスを支援する（メモリ７１２も基板４００上のメモリ４０４によって実施される）。メモリ７１２中のこのオペレータ値は、ＦＡＳＴ暗号化標準によって定義されるものとしての、メッセージごとに保存される様々な状態値を含む。次いで、この暗号化されたＦＡＳＴメッセージがＦＡＭ７０８によって直列化されてＦＡＳＴメッセージストリームを形成し、それによりＦＩＸからＦＡＳＴへの変換を完了する。
【００８５】
図８は、ＦＡＳＴからＦＩＸへのメッセージ変換を行うための例示的ＦＡＭパイプラインを示す。入ってくるＦＡＳＴストリームが、ＦＡＳＴメッセージのストリームを非直列化するＦＡＭ８０２によって受信される。次いで、この非直列化されたＦＡＳＴメッセージがＦＡＭ８０４に提供され、ＦＡＭ８０４はこのＦＡＳＴメッセージの様々なフィールドを、メモリ８１２中のテンプレートおよびフィールドマップ、ならびにメモリ８１０中のオペレータ値によって支援される通りに復号するように機能する。その後、ＦＡＭ８０６は、好ましくはメッセージクエリフィルタリングを行うように構成される。メッセージクエリフィルタは、特定のメッセージがメッセージフローから除外されることを可能にする。そのようなフィルタは、好ましくは、各メッセージに含まれるフィールド値に基づくフィルタリング基準を柔軟に定義し、ＦＰＧＡ上にロードできるようにＦＡＭ８０６内でパラメータ化される。メッセージをフィルタするために使用することができるフィルタリング基準の例には、特定のタイプの商品（例えば普通株、株式買取請求権、債券、オプション、商品、先物取引等）、１組の規定された金融商品内のメンバシップ（例えば指数、または「上場投信」（ＥＴＦ））、メッセージタイプ等が含まれる。次いで、ＦＡＭ８０８が、メモリ８１２中のテンプレートおよびフィールドマップによって支援される通りにこの様々なメッセージフィールドを適当に暗号化することにより、ＦＩＸメッセージの生成を行うように機能する。したがって、図８に示すこのＦＡＭパイプラインは、ＦＡＳＴメッセージをＦＩＸメッセージに変換するように機能する。メモリユニット８１０および８１２は、好ましくは、基板４００のメモリ４０４によって実施される。
【００８６】
図９は、様々なデータ処理タスクを行うための例示的ＦＡＭパイプラインを示す。図９のＦＡＭパイプラインは、ＦＡＳＴメッセージストリームを取り込む。ＦＡＭ９０２および９０４は、図８のＦＡＭ８０２および８０４と同様に機能する。したがって、ＦＡＭ９０４の出力は、ＦＡＳＴメッセージのデータコンテンツがその構成フィールドへと分解されたコンテンツを含む。次いで、このコンテンツが、様々な並列ＦＡＭ９０６、９０８、および９１０に渡される。ＦＡＭ９０６は、受け取ったデータに対して管理レコードフィルタを行う。管理レコードフィルタは、このパイプラインの他のＦＡＭモジュールのいずれによっても処理されないメッセージタイプを通過させるように好ましくは機能する。ＦＡＭ９０８は、上述のような上位１０リストエンジンとしての機能を果たす。ＦＡＭ９１０は、上述のようなメッセージクエリフィルタとしての機能を果たす。
【００８７】
次いで、ＦＡＭ９１０の出力が、上述のようなルールベース計算エンジンとして構成されるＦＡＭ９１２に渡される。ＦＡＭ９１２は、上位１０リストＦＡＭ９０８が行うように、ＬＶＣデータを得るためにリアルタイムフィールド値キャッシュ９２６からもデータを受け取る。キャッシュ９２６は、好ましくは基板４００のメモリ４０４によって実施される。次いで、このルールベース計算エンジンＦＡＭ９１２からの出力が、並列ＦＡＭ９１４、９１６、および９１８に渡される。ＦＡＭ９１４は、メッセージ多重化装置としての機能を果たし、ＦＡＭ９０６、９０８、および９１２の出力からメッセージを受け取る。ＦＡＭ９２０は、ＦＡＭ９１４によって多重化されるメッセージを受け取り、それらのメッセージを所望の形式に暗号化する機能を果たす。ＦＡＭ９１６は、その機能を上記に説明し、その出力がこのパイプラインを出て行くアラートエンジンとしての機能を果たす。ＦＡＭ９１８は、キャッシュ９２６が最新のままであることを確実にするための値キャッシュ更新エンジンとしての機能を果たす。
【００８８】
図１０は、複数のデータ処理タスクを行うための別の例示的ＦＡＭパイプラインを示す。ＦＡＭ１００２は、固定形式メッセージのストリームを取り込み、それらのメッセージをそれらの構成データフィールドへと解析する。ＦＡＭ１００２の出力は、ＦＡＭ１００４およびＦＡＭ１０１８に提供することができる。ＦＡＭ１０１８は、メッセージ同期バッファとしての機能を果たす。したがって、元の解析されたメッセージのフィールドがＦＡＭ１００２からＦＡＭ１０１８に直接渡されるので、ＦＡＭ１０１８は、（ＦＡＭ１００４、１００６、１００８、１０１０、１０１２、および１０１４によって定義される）図１０の上部の経路が、その解析されたメッセージの選択フィールドを処理する間に、それらのデータフィールドをバッファする。したがって、この上部の経路のＦＡＭによって行われる処理が完了すると、メッセージ形式設定ＦＡＭ１０１６が、その解析されたメッセージに関する上部の経路によって処理されるものとしてのフィールド、ならびにＦＡＭ１０１８内にバッファされるフィールドを使用して、このパイプラインから出力するための新しいメッセージを生成することができる。次いで、このメッセージ形式設定部１０１６は、上部の経路のＦＡＭによって処理されるフィールドを、そのメッセージに関してＦＡＭ１０１８内にバッファされるフィールドに追加し、そのメッセージに関してＦＡＭ１０１８内にバッファされる選択フィールドを上部の経路のＦＡＭによって処理されるフィールドで置換し、またはこの追加および置換の何らかの組合せを行うことができる。
【００８９】
ＦＡＭ１００４は、解析されたメッセージ内に定義されるものとしての金融商品（または一連の金融商品）に関する知られているシンボルを、このプラットフォームにとって内部的なシンボル体系にマッピングする（例えば、ＩＢＭの株のシンボルを内部シンボル「１２３４５」にマッピングする）ように機能する。ＦＡＭ１００６は、ＦＡＭ１００４からの出力を受け取り、ＬＶＣキャッシュをメモリ１０２４を介して更新するように機能する。次いで、ＦＡＭ１００６の出力がＦＡＭ１００８、１０１０、１０１２、および１０１４に並列に提供される。
【００９０】
ＦＡＭ１００８は、上述のような上位１０リスト生成部として機能する。ＦＡＭ１０１０は、上述のような分バー生成部として機能する。ＦＡＭ１０１２は、上述のような関心／権利付与フィルタとして機能し、ＦＡＭ１０１４は、上述のようなプログラム的計算エンジンとして機能する。次いで、ＦＡＭ１００８、１０１０、１０１２、および１０１４からの出力が、上述のようにＦＡＭ１００８、１０１０、１０１２、１０１４、および１０１８の出力から、所望の形式の固定形式メッセージを構成するように機能するメッセージ形式設定部ＦＡＭ１０１６に提供される。
【００９１】
これらのタスクを実行する際、ＦＡＭ１００４は、テンプレートおよびフィールドマップを記憶するメモリ１０２０、ならびにシンボルインデックス（ｓｙｍｂｏｌ  ｉｎｄｅｘ）を記憶するメモリ１０２２によって支援される。ＦＡＭ１００６もメモリ１０２０、ならびにＬＶＣキャッシュとしての機能を果たすメモリ１０２４によって支援される。メモリ１０２０は、ＦＡＭ１００８によってもアクセスされる一方、メモリ１０２４はＦＡＭ１０１４によってもアクセスされる。ＦＡＭ１０１２は、基板４００の初期化中に記憶６３４からロードされ、またはアプリケーションソフトウェア３００によって提供されるものとして、関心権利付与メモリ１０２６にアクセスする。
【００９２】
図１１は、メッセージ解析、シンボルマッピング、最終値キャッシュ（ＬＶＣ）更新、ならびに関心および権利付与フィルタリングを含む、例示的な相場速報装置の実施形態の機能を実行するための例示的ＦＡＭパイプラインを示す。
【００９３】
メッセージ解析部ＦＡＭ１１０２は、メッセージのストリームを取り入れ、各メッセージをその構成フィールドへと解析し、そのフィールドをダウンストリームのＦＡＭに伝搬する。ＦＡＭ１１０４、１１０６、および１１０８で処理するために必要なメッセージフィールドが、ＦＡＭ１１０４に渡される。他のメッセージフィールドは、メッセージ同期バッファＦＡＭ１１１２に渡される。メッセージ解析部ＦＡＭ１１０２は、様々なタイプの固定形式および自己記述形式を含む、多様なメッセージ形式をサポートするように実装することができる。好ましいメッセージ形式は、金融取引所からの可能な入力イベントの範囲をサポートするための十分な柔軟性を提供する。好ましい実装形態では、このメッセージ解析部ＦＡＭ１１０２は、ファームウェアを変えることなく様々なメッセージ形式をサポートするように構成することができる。これは、メッセージ形式テンプレートを、テンプレートおよびフィールドマップバッファ１１２０中にロードすることによって実現され得る。メッセージ解析部ＦＡＭ１１０２は、所与のメッセージがどのように解析されるべきかを知るために、入力メッセージを処理する前に、バッファ１１２０からメッセージ形式記述を読み取る。
【００９４】
図１０のＦＡＭ１００４と同様に、シンボルＩＤマッピングＦＡＭ１１０４は、解析されたメッセージ内に定義されるものとしての金融商品（または一連の金融商品）に関する知られているシンボルを、このプラットフォームにとって内部的なシンボル体系にマッピングする（例えば、ＩＢＭの株のシンボルを内部シンボル「１２３４５」にマッピングする）ように機能する。好ましくは、この内部プラットフォームのシンボル識別子（ＩＤ）は、０からＮ−１の範囲内の整数であり、ただしＮは、シンボルインデックスメモリ１１２２中のエントリの数である。好ましくは、このシンボルＩＤは、サイズＭ＝ｌｏｇ２（Ｎ）ビットの２進値として形式設定される。入力される取引所メッセージ内の金融商品シンボルの形式は、様々なメッセージ供給および金融商品のタイプごとに異なる。典型的には、このシンボルは可変長ＡＳＣＩＩ文字ストリングである。シンボル体系ＩＤは、メッセージ内のシンボルストリングの形式を一意に識別する内部制御フィールドである。図１２に示すように、シンボルストリングの形式は典型的には所与の入力供給上のすべてのメッセージによって共有されるので、シンボル体系ＩＤは、好ましくは供給ハンドラによって割り当てられる。
【００９５】
このシンボルＩＤマッピングＦＡＭの好ましい実施形態は、それぞれの一意のシンボル文字ストリングを、サイズＭビットの一意の２進数にマッピングする。好ましい実施形態では、このシンボルマッピングＦＡＭは、サイズＫビットのハッシュキーを生成するために、シンボルの形式固有の圧縮を行い、ただしＫは、シンボルインデックスメモリ１１２２中のエントリのサイズである。このシンボル体系ＩＤは、入力シンボルに対して使用すべきシンボル圧縮技法を特定するキーコードを検索するために使用することができる。好ましくは、このシンボルマッピングＦＡＭは形式固有の圧縮エンジンを使用してシンボルを圧縮し、このキーコードを使用して妥当な圧縮済みシンボル出力を選択する。好ましくは、このキーコードは、ハッシュキーを形成するために圧縮済みシンボルと連結される。連結する際、各圧縮技法には、可能なハッシュキーの範囲のサブセットが割り当てられる。これは、シンボルを圧縮するために使用される圧縮技法に関係なく、ハッシュキーが一意であることを確実にする。一例を図１２に示し、ここでは、ある金融商品に関するＡＳＣＩＩシンボルが、複数の異なる圧縮操作（例えば、英数字相場速報器圧縮、ＩＳＩＮ圧縮、および商品圧縮）によって並列に圧縮される。様々なシンボル体系に関する圧縮技法は、本発明の実施者の要望通りの特別な目的のために基づいて選択されかつ／または考案され得る。本発明の実施者は、所与のシンボル体系に適している可能性があるものとして、様々な圧縮操作を自由に選択できる。キーコードの値に基づいて、このシンボルマッピングＦＡＭは、キーコードと圧縮結果との連結のうちの１つを、ハッシュキーとして使用するために多重化装置からの出力として渡す。
【００９６】
あるいは、この形式固有の圧縮エンジンは、プログラム可能なプロセッサ内に実装することができる。その場合、このキーコードは、シンボルがどのように圧縮されるべきかを指定する一連の命令を取り出すために使用することができる。
【００９７】
ハッシュキーが生成されると、このシンボルマッピングＦＡＭが、そのハッシュキーを、０からＮ−１の範囲のシンボルインデックスメモリ中の一意のアドレスにマッピングする。このシンボルインデックスメモリは、（再構成可能な論理装置内の）メモリ「オンチップ」、または再構成可能な論理装置にとってアクセス可能なＳＲＡＭやＳＤＲＡＭなどの「オフチップ」の高速メモリ装置中で実装することができる。好ましくは、このマッピングはハッシュ関数によって実施される。ハッシュ関数は、入力ハッシュキーを見つけるためのプローブの数またはテーブル検索を最小限にすることを試みる。多くの応用例では、このハッシュキーに追加のメタデータが関連付けられる。好ましい実施形態では、シンボルインデックスメモリ中のハッシュキーの位置が、その金融商品に関する一意の内部シンボルＩＤとして使用される。
【００９８】
図１３は、知られているハッシュ方法の新しい組合せを表す、このマッピングを行うためのハッシュ関数の好ましい実施形態を示す。図１３のハッシュ関数は、１次ハッシュ関数を計算するために完璧に近いハッシングを使用し、次いで衝突を解決するためにオープンアドレス法を使用する。ハッシュ関数Ｈ（ｘ）は次式で表される：
【数１】
0005444536.tif 000002
演算数ｘは、前述の圧縮段階によって生成されたハッシュキーである。関数ｈ１（ｘ）は、１次ハッシュ関数である。値ｉは反復回数である。この反復回数ｉはゼロに初期化され、衝突をもたらすハッシュプローブごとにインクリメントされる。第１のハッシュプローブに関しては、ハッシュ関数Ｈ（ｘ）＝ｈ１（ｘ）であり、したがって１次ハッシュ関数が第１のハッシュプローブを決定する。本明細書に開示する好ましいハッシュ関数は、このハッシュキーが第１のハッシュプローブにある可能性を最大化することを試みる。ハッシュプローブが衝突をもたらす場合、ハッシュスロットに記憶されるハッシュキーはハッシュキーｘに一致せず、反復回数がインクリメントされ、第１のハッシュプローブの位置からのオフセットを生むために２次ハッシュ関数ｈ２（ｘ）と組み合わせられる。モジュロＮ演算は、最終結果が０からＮ−１の範囲内にあることを確実にし、ただし、Ｎはシンボルインデックスメモリのサイズである。２次ハッシュ関数ｈ２（ｘ）は、その出力がＮに対してプライムであるように策定される。ｉをインクリメントし、Ｈ（ｘ）を再計算するこのプロセスは、入力ハッシュキーがテーブル内に位置し、または空きテーブルスロットに遭遇するまで継続する。衝突を解決するこの技法は、オープンアドレス法として知られている。
【００９９】
この１次ハッシュ関数ｈ１（ｘ）は、次のように計算される。ハッシュ関数Ｂ（ｘ）を計算し、ただしその結果は０からＱ−１の範囲内にある。Ｂ（ｘ）関数の結果を使用して、Ｑの変位ベクトルを含むテーブルＴ内の変位ベクトルｄ（ｘ）を検索する。好ましくは、変位ベクトルｄ（ｘ）のビットでのサイズは、Ｍに等しい。ハッシュ関数Ａ（ｘ）を計算し、ただしその結果のサイズはＭビットである。Ａ（ｘ）とｄ（ｘ）とのビット単位の排他的論理和
【数２】
0005444536.tif 000003
を計算する。これは、クエリストリームの開始前に知られている一連のハッシュキー間の衝突を解決するために変位ベクトルが使用される、完璧に近いハッシングの一例である。典型的には、このハッシングは、所与の日に取引される商品に関するシンボルの大部分が知られているストリーミング金融データにぴったり合う。変位テーブルエントリを計算するための方法は、当技術分野で知られている。
【０１００】
２次ハッシュ関数ｈ２（ｘ）は、単一ハッシュ関数Ｃ（ｘ）を計算することにより計算され、ただし、その結果はＮに対して常にプライムである。ハッシュ関数Ａ（ｘ）、Ｂ（ｘ）、およびＣ（ｘ）は、都合の良いランダム化特性をもつ、知られているハッシュ関数の本体から選択され得る。好ましくは、ハッシュ関数Ａ（ｘ）、Ｂ（ｘ）、およびＣ（ｘ）は、ハードウェアに効率的に実装される。一連のＨ３ハッシュ関数が良い候補である。（参照によりその開示全体が本明細書に組み込まれる、Ｋｒｉｓｈｎａｍｕｒｔｈｙら、「Ｂｉｏｓｅｑｕｅｎｃｅ  Ｓｉｍｉｌａｒｉｔｙ  Ｓｅａｒｃｈ  ｏｎ  ｔｈｅ  Ｍｅｒｃｕｒｙ  Ｓｙｓｔｅｍ」、Ｐｒｏｃ．ｏｆ  ｔｈｅ  ＩＥＥＥ  １５ｔｈ  Ｉｎｔ’ｌ  Ｃｏｎｆ．ｏｎ  Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｓｙｓｔｅｍｓ、Ａｒｃｈｉｔｅｃｔｕｒｅｓ  ａｎｄ  Ｐｒｏｃｅｓｓｏｒｓ、２００４年９月、３６５−３７５項を参照されたい）。
【０１０１】
ハッシュ関数Ｈ（ｘ）が、そのエントリが入力ハッシュキーに等しいアドレスを作り出すと、そのアドレスが、金融商品を参照するために相場速報装置によって内部的に使用される新たなシンボルＩＤとして伝えられる。図１３に示すように、ハッシュキー比較関数の結果を、シンボルＩＤ出力に関する有効信号として使用することができる。
【０１０２】
取引所メッセージがシステムの初期化時に知られていなかったシンボルを含む場合、ハッシュキーがテーブルに挿入される。金融商品がもはや取引されていない場合、ハッシュキーがテーブルから除去される。あるいは、金融商品に関するシンボルを一連の知られているシンボルから除去することができ、ハッシュテーブルをクリア、再計算、および初期化することができる。そうすることにより、１次ハッシュの完璧に近いハッシュ関数のために使用される変位テーブルを最適化することができる。典型的には、金融市場は、営業時間外処理または翌日処理を可能にする取引時間を定めてきた。衝突を解決するためにオープンアドレス法が使用される、ハッシュキーをハッシュテーブルに挿入／除去するための全体的な手順は、当技術分野でよく知られている。
【０１０３】
好ましい実施形態では、このシンボルマッピングＦＡＭは、図１４に示すように、取引所メッセージ内の取引所コードおよび国コードフィールドを０からＧ−１の範囲内の整数にマッピングする、グローバル取引所識別子（ＧＥＩＤ）も計算する。金融商品に関するシンボルフィールドと同様に、この取引所コードおよび国コードフィールドは、取引所メッセージのソースを一意に識別する。Ｇの値は、このシステムの所与のインスタンスに対する入力メッセージを生成するソース（金融取引所）の総数よりも大きいように選択されるべきである。ハッシングは、この国コードおよび取引所コードをＧＥＩＤにマッピングするために使用できる。あるいは、国コードおよび取引所コードをＧＥＩＤにマッピングするために、「直接アドレス指定」手法を使用することもできる。例えば、この取引所コードおよび国コードは２つの文字コードによってそれぞれ表すことができ、ただし、その文字は８ビットの大文字ＡＳＣＩＩアルファベット文字である。次いで、これらのコードのうち２６個の固有値のみがあればよい実施形態では、これらのコードを５ビットの文字に切り捨てることができる。各コードについて、ステージ１テーブル内の圧縮された中間値を検索するために使用される１０ビットのアドレスを生成するために、これらの切り捨てられた値が連結される。次いで、ステージ２の検索のためのアドレスを生成するために、この取引所コードおよび国コードに関する圧縮された中間値を連結することができる。このステージ２の検索の結果が、ＧＥＩＤである。この中間値およびステージ２アドレスのサイズは、固有の国の数、および様々な国で新たな取引所が開設されるときに調整可能な、１つの任意の国内の取引所の最大数によって決まる。
【０１０４】
シンボルマッピングＦＡＭ１１０６は、入力メッセージのフィールド値、シンボルＩＤ、およびグローバル取引所ＩＤを最終値キャッシュ（ＬＶＣ）更新ＦＡＭ１１０６に渡す。ＬＶＣ更新ＦＡＭは、メモリ１１２４を介してＬＶＣキャッシュを、ならびにレコードフィールドの値に依拠し得るメッセージフィールドを更新するように機能する。一例がティック方向であり、これはメッセージ内の価格が、レコード内に取り込まれた前の価格よりも高いか、または低いかどうかを示す。
【０１０５】
図１５ａおよび図１５ｂに示すように、ＬＶＣメモリ管理部が、金融商品に関連する１つまたは複数のレコードを取り出す。このＬＶＣメモリ管理部が、そのレコードおよびメッセージフィールドをＬＶＣメッセージ／レコード更新部に渡す。このＬＶＣメッセージ／レコード更新部は、指定されたビジネスロジックに従ってそのレコードおよびメッセージフィールドを更新する１組の更新エンジンを含む。フィールドを更新するためのビジネスロジックは、イベントのタイプ（取引、クォート、キャンセル等）、金融商品のタイプ（証券、オプション、商品等）、およびレコードのタイプを含むいくつかのパラメータに応じて異なり得る。好ましい実施形態では、この更新エンジンは、テンプレートおよびフィールドマップ１１２０に含まれるビジネスロジックテンプレートによって指図される。テンプレート駆動型の更新エンジンに関する技法は、当技術分野でよく知られている。
【０１０６】
レコードフィールドは、：最後の取引価格、最後の取引の規模、最後の取引の時間、最高ビッド価格、最高ビッドの規模、最高ビッドの時間、最高アスク価格、最高アスクの規模、最高アスクの時間、合計取引量、日々の変化、ティック方向、価格の方向、高取引価格、高値時間、低取引価格、安値時間、および小ざや値を含み得るがそれだけに限定されない。好ましい実施形態では、レコードフィールドは、：ビッドでの合計取引量、アスクでの合計取引量、取引値、ビッドでの取引値、アスクでの取引値、および出来高加重平均価格（ＶＷＡＰ）などの派生フィールドも含む。
【０１０７】
図１５ａおよび図１５ｂに示すように、ＬＶＣ更新ＦＡＭの好ましい実施形態は、入力供給上で観察される金融商品ごとに合成レコードおよび１組の局所レコード（ｒｅｇｉｏｎａｌ  ｒｅｃｏｒｄ）を保持する。合成レコードは、その金融商品が取引されるすべての取引所にわたるその金融商品の現在の状態を示す。局所レコードは、所与の取引所でのその金融商品の現在の状態を示す。例えば、株式ＡＢＣが取引所ＡＡ、ＢＢ、およびＣＣで取引される場合、１つの合成レコードと３つの局所レコードとの４つのレコードがこのＬＶＣ更新ＦＡＭによって保持される。入力メッセージが取引所ＢＢでの株式ＡＢＣの取引を報告する場合、このＬＶＣ更新ＦＡＭは、ＡＢＣに関する合成レコード、取引所ＢＢでのＡＢＣに関する局所レコード、およびメッセージフィールドを、取引所ＢＢでの株式取引イベント用のビジネスロジックに従って更新する。
【０１０８】
図１５ａに示すように、ＬＶＣメモリ管理部は、合成レコードおよび局所レコードを取り出すために、シンボルＩＤおよびグローバル取引所ＩＤを使用する。好ましい実施形態では、シンボルＩＤは、レコード管理メモリ中のエントリを取り出すために使用される。そのエントリは、有効フラグ、合成レコードポインタ、および局所リストポインタを含む。有効フラグは、シンボルＩＤが知られているかどうか、１つまたは複数のレコードが割り当てられているかどうか、およびエントリ内のポインタが有効かどうかを示す。
【０１０９】
有効フラグが立てられている場合、このＬＶＣメモリ管理部は、合成レコードポインタを使用してその合成レコードをレコード記憶メモリから取り出す。この合成レコードは、ＬＶＣメッセージ／レコード更新部に渡され、ここで、更新エンジンによる処理のために合成レコードバッファ中に記憶される。このＬＶＣメモリ管理部は、局所リストポインタを使用して局所リストをレコード記憶メモリから取り出す。局所リストブロックは、レコード管理メモリ中または別の独立メモリ中に記憶されてもよいことに留意されたい。この局所リストブロックは、シンボルＩＤによって特定される金融商品に関する局所レコードへのポインタを含む。各局所レコードはその商品の所与の取引所での状態を示すため、グローバル取引所ＩＤが各局所ポインタとともに記憶される。メッセージ内で指定される取引所に関連する局所レコードへのポインタは、シンボルＩＤマッピングＦＡＭによって計算されるグローバル取引所ＩＤをマッチングすることによって突き止められる。このＬＶＣメモリ管理部は、マッチンググローバル取引所ＩＤに関連する局所ポインタを使用して、局所レコードをレコード記憶メモリから取り出す。この局所レコードは、ＬＶＣメッセージ／レコード更新部に渡され、ここで、更新エンジンによる処理のために局所レコードバッファ中に記憶される。
【０１１０】
レコード管理メモリのエントリ内に有効フラグが立てられていない場合、このＬＶＣメモリ管理部は、その金融商品に関する新たな合成レコード、新たな局所リストブロック、および新たな局所レコードを作成する。レコードフィールドの初期値は、テンプレートおよびフィールドマップ１１２０から取り出すことができる。この局所リストブロックは、新たな局所レコードへのポインタ、およびシンボルＩＤマッピングＦＡＭから受け取られるグローバル取引所ＩＤを含む、少なくとも１つのエントリで初期化される。このＬＶＣメモリ管理部は、空き領域ポインタを使用してレコード記憶メモリ中の使用可能なメモリを割り当てる。そのメモリが割り当てられた後、この空き領域ポインタは更新される。使用されていないメモリ空間を解放し、メモリをデフラグし、空き領域ポインタを調整することは、ＬＶＣメモリ管理部により、または制御ソフトウェアにより、市場の休止時間中に行われ得る。メモリ空間を解放し、デフラグするための技法は、当技術分野でよく知られている。レコードがレコード記憶メモリ中で初期化されると、このＬＶＣメモリ管理部が管理メモリのエントリ中にポインタを書き込み、有効フラグを立てる。
【０１１１】
このＬＶＣメモリ管理部は、メモリ管理エントリ内に有効フラグが立てられているが、局所リスト内に対応するグローバル取引所ＩＤが見つからない事例に遭遇する可能性もある。これは、知られている金融商品が新しい取引所で取引を開始する場合に起こる。この場合、ＬＶＣメモリ管理部は、新たな局所レコードを割り当て、局所リストブロック内に新たなエントリを作成する。
【０１１２】
レコードおよびメッセージフィールドがそれぞれのバッファ中にロードされると、更新エンジンが、ビジネスロジックによって指定される通りにフィールド更新タスクを実行する。それらのエンジンの更新タスクが完了すると、この更新エンジンはＬＶＣメモリ管理部に信号を送る。すべてのプロセッサエンジンが完了するとき、このＬＶＣメモリ管理部は更新されたレコードをレコード記憶メモリに再び書き込む。処理は、いくつかの方法のうちのいずれかの方法で複数の更新エンジンにわたって実施することができる。一実施形態では、所与のレコードおよびそのレコードに関係するメッセージフィールドが、パイプライン状に配置される一連の更新エンジンを通過させられる。別の実施形態では、各レコードおよびそのレコードに関係するメッセージフィールドが、そのレコードおよびメッセージフィールドが必要とするタイプの処理にふさわしい処理を実行するように構成される更新エンジンに直接渡される。好ましくは、このＬＶＣ更新部は、高スループットが維持されるように、レコードおよびメッセージフィールドの複数の異なる更新エンジンにわたる分配を平衡させるように構成される。例示的実施形態では、複数の更新エンジンが互いに並列に動作する状態で、各更新エンジンは、（局所的または合成）レコードフィールドのサブセットを更新する役割を果たすように構成される。
【０１１３】
ＬＶＣメッセージ／レコード更新部は、更新されたメッセージフィールドおよび関心リストを、関心権利付与フィルタＦＡＭ１１０８に渡す。関心リストは、その金融商品に関する更新を受け取ることへの関心を登録したユーザ／アプリケーション用の１組の一意の識別子を含む。好ましい実施形態では、この１組のユーザ識別子は、ベクトル内の各ビットの位置がユーザ識別子に相当するビットベクトルを使用して指定される。例えば、値が１０１０の４ビットベクトルは、１組のユーザ識別子｛３，１｝を表す。この関心リストのビットでのサイズは、相場速報装置によって認められるユーザ加入の合計数に等しい。好ましい実施形態では、各レコードは、ユーザの加入イベントおよび解除イベントに応じて更新される関心リストを含む。合成レコード内に関心リストを保持することにより、相場速報装置は、加入が、所与の金融商品が取引されるすべての取引所でのその金融商品に関するすべての取引を含むことを可能にする。好ましくは、所与のレコードに関する各関心リストは、そのレコードとともにレコード記憶メモリ中に記憶される。制御メモリ中に各レコードについての一連の関心リストを保持する、相場速報装置用の制御ソフトウェアは、レコード記憶メモリが必要に応じて更新され得るように、このＬＶＣ  ＦＡＭに、所与のレコードに関する新たな関心リストベクトルを知らせるように構成することができる。取引所ベースの加入などの他のタイプの加入も、このＦＡＭパイプラインによって有効にすることができる。
【０１１４】
好ましい実施形態では、このレコード記憶メモリおよび／またはレコード管理メモリは、シンクロナスＲＡＭ（ＳＲＡＭ）装置やシンクロナスＤＲＡＭ（ＳＤＲＡＭ）装置など、再構成可能な論理に対する外部メモリである。外部メモリ装置への読み書きトランザクションは処理遅延を招く。処理性能を向上させるための一般的な技法は、パイプライン型の方法で複数のトランザクションを実行することにより、これらの遅延をマスキングすることである。このＬＶＣメモリ管理部は、様々な処理ステップを並列に実行することができ、それによりメモリレイテンシをマスキングし、複数のメッセージを並列に処理することを可能にするパイプライン型の回路として設計される。そうすることは、このＬＶＣメモリ管理部がユニット時間当たりにより多くのメッセージを処理できるようにし、すなわちより高いメッセージスループットを達成する。機能的なパイプラインを使用することにより、このＬＶＣメモリ管理部は、好ましくはパイプライン内での同じシンボルＩＤの発生を認識し、更新エンジンバッファ中のレコードの正当性を確保する。そうするための１つの方法が、そのシンボルＩＤの前の発生に関連する更新済みレコードが再びレコード記憶メモリに書き込まれるまで、パイプラインの機能を停止させることである。好ましい実施形態では、このＬＶＣメモリ管理部は、常に正しいレコードフィールド値を更新エンジンバッファに供給するためにキャッシング機構を利用する。メモリキャッシュに関する技法は、当技術分野でよく知られている。このキャッシング機構は、オンチップ（再構成可能な論理装置内）またはオフチップ（例えば、再構成可能な論理装置にとってアクセス可能なＳＲＡＭ装置やＳＤＲＡＭ装置）に配置されるメモリ、好ましくは高速メモリとして実施することができる。ただし、このキャッシュは、多層キャッシュ、システムメモリ、および磁気記憶を有する全メモリ階層によっても実施できることにも留意すべきである。レコードは、典型的には、取引日の間はこのキャッシュメモリ中にとどまる。その後、そのような最近更新されたレコードを、翌日処理（「ロール」）中にキャッシュから追い出し、記録することができる。ただし、このキャッシュは、新たなレコードを記憶するための空間がキャッシュ中で使用可能である限りレコードを保持するように構成できることに留意すべきであり、その場合はキャッシュを維持するためにＦＩＦＯ方式を使用することができる。
【０１１５】
図１５ｂは、メモリレイテンシおよび処理レイテンシをマスキングするための例示的な機能パイプラインを示す。図１５ａに関連して説明したように、アドレス解決ブロックが、メモリ管理エントリおよび局所リストブロックを突き止めるために、シンボルＩＤおよびグローバル取引所ＩＤを使用して局所レコードおよび合成レコードのアドレスを特定する。図１５ｂ内の各機能ブロックは、パイプライン型の方法で実装することもできることに留意されたい。例えば、アドレス解決ブロック内の１つのサブブロックは、レコード管理エントリを取り出すために、読み出し命令のストリームをレコード管理メモリに出すことができる。別のサブブロックが、返されるエントリのストリームを処理し、局所リストブロックを取り出すために、読み出し命令のストリームをレコード記憶メモリに出すことができる。別のサブブロックが、返されるリストブロックのストリームを処理して、局所レコードのアドレスを解決することができる。このアドレス解決ブロックの最後のサブブロックが、局所レコードおよび合成レコードのアドレスをキャッシュ特定ブロックに渡す。レコードアドレスのシーケンスを追跡することにより、このブロックは「現在の」（最新の）レコードの物理的な位置：レコードキャッシュ中またはレコード記憶メモリ中、を特定する。このキャッシュ特定ブロックは、物理レコードポインタをレコード取り出しブロックに渡す。レコード取り出しブロックはレコードを指定の位置から取り出し、それらのレコードを更新用の処理バッファ中にロードし、処理を開始するようにプロセッサに信号を送る。レコードキャッシュと処理バッファとが同じメモリ空間内にある場合、たとえ同じレコードの組が順次更新されなければならない場合でも、このレコード取り出しブロックは本質的に数組のレコードをプロセッサのために待ち行列に入れ、プロセッサが処理タスクを完了し、すぐに次のレコードの組に取り掛かれるようにし得ることに留意されたい。プロセッサが１組のレコードを完了すると、それらのプロセッサは、更新されたレコードを再びレコード記憶メモリに書き込むようにレコード更新ブロックに信号を送る。レコードキャッシュの実装形態に応じて、更新されたレコードのコピーがキャッシュに書き込まれ、またはある期間にわたって単にその処理バッファ中に存続する。同時に、更新されたメッセージフィールドがダウンストリームのＦＡＭに渡される。
【０１１６】
ＬＶＣ更新ＦＡＭ１１０６は、関心リスト、グローバル取引所ＩＤ、および更新されたメッセージフィールドを、関心権利付与ＦＡＭ１１０８に渡す。この関心権利付与ＦＡＭは、関心を登録し、メッセージを受信する権利を与えられた一連のユーザ／アプリケーションに出力メッセージを配信するために使用される単一の関心リストを計算する。前に説明したように、関心は、局所的関心または合成的関心に関する更新に加入すること、ならびに所与の取引所からのすべての更新に加入することによって登録することができる。リアルタイムの金融データへのアクセスは、典型的には購入されるサービスであり、その価格はデータアクセスの範囲に応じて異なり得る。好ましい実施形態では、相場速報装置は、様々なレベルのデータアクセス特権を有するユーザ／アプリケーションからの加入要求を受け付けることができる。
【０１１７】
図１６に示すように、関心権利付与ＦＡＭの好ましい実施形態が、ビットベクトルとして規定される関心リストに対して機能する。取引所関心テーブル内の取引所関心リストを検索するために、グローバル取引所ＩＤが使用される。取引所関心リストを使用することにより、図１６の実施形態は、トレーダが、所与の取引所で取引されるすべての商品に個々に加入することなく、その所与の取引所で取引されるすべてのものについての通知を要求できるようにする。すべてのイベントに関心があるユーザを規定するグローバル関心リストも、このＦＡＭ内のレジスタ中に記憶できることに留意されたい。図１６に示すように、メッセージに適用できるすべての関心リストベクトルは、ビット単位の論理和演算を使用して組み合わせられる。結果として生じる合成関心リストベクトルは、出力メッセージを受信することに関心がある一連のユーザを含む。権利付与マスク（ｅｎｔｉｔｌｅｍｅｎｔ  ｍａｓｋ）を検索するために、権利付与ＩＤが使用される。権利付与ＩＤは、取引所からメッセージを受信する供給ハンドラ、またはグローバル取引所ＩＤ、イベントタイプ、商品タイプなどのメッセージフィールドに基づく検索などの代替機構によって指定され得る。関心リストと同様に、権利付与マスクは、どのユーザ／アプリケーションが出力メッセージを受信する権利を有するのか規定する。この権利付与マスクは、ビット単位の論理積演算を使用して、組み合わせられた関心リストに適用される。その結果が、一連の権利付与されたおよび関心があるユーザ／アプリケーションを規定する、最終の権利付与関心ベクトルである。この権利付与関心ビットベクトルが空（例えばすべてゼロ）の場合、そのメッセージはパイプラインから取り下げることができる。この権利付与関心リスト、およびＬＶＣ更新ＦＡＭから受け取られるメッセージフィールドが、メッセージ形式設定ＦＡＭ１１１０に渡される。
【０１１８】
前に説明したように、このメッセージ形式設定ＦＡＭ１１１０は、関心権利付与フィルタＦＡＭから受け取られる更新されたフィールド、およびメッセージ同期バッファＦＡＭ１１１２に含まれるフィールドから出力メッセージを構成するように機能する。好ましい実施形態では、この出力メッセージの形式は、テンプレートおよびフィールドマップ１１２０によって指定される。好ましい実施形態では、この出力メッセージは関心権利付与フィルタによって計算された、権利付与関心リストを含む。相場速報装置内の後続の機能ブロックがこの関心リストを処理し、出力メッセージのコピーを、関心があり、権利付与されたユーザ／アプリケーションに伝送する。
【０１１９】
図１７は、本実施形態の相場速報装置が金融データを処理しながら高性能かつ低レイテンシを維持することを可能にする、主要なサブコンポーネント間の対話およびデータフローを強調した、相場速報装置の例示的実施形態を示す。図１８、図１９、図２０、図２１、および図２２は、図１６に示すデータフローおよび構成要素の対話の詳細図を示す。これらの図面は、インバウンド取引所データの処理、データの正規化、再構成可能な論理との対話、データルーティング、およびクライアント対話のそれぞれについて追加情報を提供する。
【０１２０】
取引所によって生成される金融市場データは、指数関数的速度で増加している。個々の市場イベント（取引、クォート等）は概して群に束ねられ、取引所供給によって送られる。これらの取引所供給は、圧倒的にイーサネット（登録商標）ネットワーク上を、インターネットプロトコルを使用して加入者に送られる。ネットワーク環境によって決定されるパケットサイズについての制約のため、取引所によって伝送されるデータ群は、１５００バイトより小さいサイズに限られる傾向がある。
【０１２１】
市場データのレートが増加するにつれ、相場速報装置によって処理されなければならないデータ群の数も増加する。典型的な相場速報装置環境では、相場速報装置によって受信される各ネットワークパケットは、オペレーティングシステムに含まれるネットワークプロトコルスタックによって処理され、ユーザバッファに送られなければならない。この処理は、各取引所データパケットについての、１つまたは複数のデータコピーと、オペレーティングシステムの「カーネル」モードまたは「スーパーバイザ」モードからユーザへの移行とを含む。データレートが増加することは、ひいては個々の取引所データメッセージをユーザレベルプロセスに送ることについての相場速報装置システム上の処理負担を増加させる。
【０１２２】
図１７に示す装置は、取引所データをユーザプロセスに効率的に送るための新たな手法を使用する。図１８は、相場速報装置内のインバウンド取引所トラフィックに関する例示的データフローを示す。１８０１で、取引所のデータが相場速報装置に入り、オペレーティングシステムによって供給されるネットワークプロトコルスタックによって処理される。典型的な相場速報装置は、１８０２で、ネットワークプロトコルスタックへのユーザモードインターフェースを使用する。プロトコルスタックに接続するこの方法は、相場速報装置によって受信されるすべてのネットワークデータパケットに対するバッファコピー、バッファ検証、メモリ記述子テーブルの修正、およびカーネルモードからユーザモードへの移行に関係する処理オーバーヘッドを招く。図１８に示すように、１８０３で、オペレーティングシステムによって供給されるネットワークプロトコルスタックとカーネルレベルでインターフェースする、Ｕｐｊｅｃｔドライバが使用される。個々のデータパケットはカーネルレベルで処理され、１８０４で、環状バッファ中に直接コピーされ、したがって、ユーザモードインターフェースを介してプロトコルスタックにアクセスする場合に、後続のデータコピーおよびカーネルモードからユーザモードへの移行が招かれるのを回避する。
【０１２３】
このＵｐｊｅｃｔドライバによって使用される環状バッファは、１８０５で、オペレーティングシステムによってサポートされるカーネルアドレス空間およびユーザアドレス空間の両方にマッピングされる共用メモリ環状バッファである。カーネルモード動作とユーザモード動作との間の境界を１８０６に示す。これらの環状バッファのうちの１つの、カーネルアドレス空間に書き込まれるデータは、ユーザモードの仮想アドレスおよびカーネルモードの仮想アドレスがどちらも同じ物理メモリを参照するので、ユーザモードコードにとってすぐにアクセス可能である。この共用環状バッファの概念を利用して、相場速報装置の好ましい実施形態は、受信されるネットワークデータパケットごとにユーザモードからカーネルモードへの移行を行う必要がなく、したがって性能強化を達成する。さらに、このＵｐｊｅｃｔドライバは、インバウンドデータを他のカーネルプロセス、装置ドライバ、またはユーザプロセスに直接転送するために、１８０７で、共用環状バッファライブラリを利用することができる。この汎用性のある共用環状バッファの相互接続は、ネットワークトラフィックを、ハードウェアインターフェースドライバを介して再構成可能な論理に直接ファストトラック（ｆａｓｔ−ｔｒａｃｋ）ルーティングできるようにする。
【０１２４】
当技術分野で知られているものとしての汎用コンピュータは、コンピュータシステム内で使用可能な計算資源を増加させるために、「マルチコア」または「マルチプロセッサ」技術を使用する。そのようなマルチコアシステムは、一般に「実行スレッド」と呼ばれる命令ストリームを、２つ以上同時に実行することを可能にする。これらのマルチプロセッサシステムの計算能力を十分に活用するために、ソフトウェアはスレッドの使用、資源競合、および処理スレッド間の相互依存性を知的に管理するように設計されなければならない。相場速報装置の好ましい実施形態のデータ正規化構成要素は、生の取引所データを効率的に正規化するためにスレッド群を使用する。
【０１２５】
スレッド群は、次の技法を使用することにより、相場速報装置の好ましい実施形態の処理効率を向上させる：
１．ワーカスレッドの数を、使用可能な命令プロセッサの数にマッチングすることにより、オペレーティングシステムのスケジューリング機構の実行を制限する。
２．複数の取引所供給が単一のスレッド群によって処理されることを可能にする。
３．様々なスレッド群の間の資源競合をなくす。
４．各スレッド群の計算経路内の同期点を除去し、処理効率をさらに増加させる。
５．単一計算経路内で、ライン調停、ギャップ検出、再伝送処理、イベント解析、および正規化されたイベントの生成を含む、メッセージの正規化を行う。
６．構成ファイルを使用して、取引所供給を個々のスレッド群に関連付ける。
【０１２６】
図１９は、いくつかのスレッド群の処理を示す。各スレッド群は、１９０１で、１つの実行スレッドを含む。あるスレッド群によって行われるすべての操作は、そのスレッド群に関連する１つの処理スレッド上で実行される。１９０２で、別個の入力環状バッファが各スレッド群に関連付けられる。インバウンド取引所データが、適当な環状バッファ中に置かれる。このスレッド群に関する処理スレッドが環状バッファ中に新しいデータがあることを検出し、１９０３で、そのデータに対する正規化処理を１イベントずつ開始する。正規化処理は、インバウンドメッセージを解析し、複数のライン上で受信されるメッセージ間を調停し、シーケンスギャップを検出し、欠落したメッセージに対する再伝送要求を開始し、重複するイベントを削除し、正規化された取引所イベントを生成するものである。この処理は、１９０４で出力環状バッファ中に置かれる、正規化されたイベントが作成されることをもたらす。
【０１２７】
任意の１つのスレッド群に関する処理のすべては、他の任意のスレッド群に関する処理から完全に独立している。この正規化処理中は、データロックまたは資源管理は要求されず、これは共用資源の競合によるスレッドブロックの可能性をなくす。相場速報装置の好ましい実施形態は、１９０５で、可変数のスレッド群をサポートする。スレッド群の数、および各スレッド群によって処理される取引所供給の数は設定可能であり、追加の計算資源が次世代のコンピュータシステムで利用できるようになるときに、この相場速報装置がそれらの資源を効率的に活用することを可能にする。インバウンドデータ供給と個々のスレッド群との関連付けは、初期化処理中に読み取られる構成ファイル内に定義される。
【０１２８】
相場速報装置の好ましい実施形態のハードウェアインターフェースドライバは、システムメモリと再構成可能な論理との間での、大量のデータの効率的移動を助けるために最適化される。図２０は、ハードウェアインターフェースドライバと再構成可能な論理との間でのデータ移動を示す。再構成可能な論理行きのユーザモードアプリケーションデータは、２００１で、共用メモリ環状バッファの１つに書き込まれる。これらは図１９の１９０４に示すのと同じバッファである。これらの環状バッファは、カーネルアドレス空間およびユーザ空間の両方にマッピングされる。これらのバッファに書き込まれるデータは、２００２で、このハードウェアインターフェースドライバによってすぐに使用され得る。ユーザ空間とカーネル空間との間の境界を２００３で示す。
【０１２９】
このハードウェアインターフェースドライバは、記述子テーブルを更新することを担い、この更新することは、再構成可能な論理への直接メモリアクセス（ＤＭＡ）データ転送を助ける。正規化された市場データイベントは、２００４で、この再構成可能な論理に転送される。この再構成可能な論理およびファームウェアアプリケーションモジュールチェーンが上記のような操作機能を実行する。２００５で、処理された市場イベントがこのハードウェアインターフェースドライバに再び転送され、２００６で、環状バッファ中に置かれる。
【０１３０】
相場速報装置の好ましい実施形態の新しい特徴は、時間を消費するデータコピーおよびオペレーティングシステムのモード切替えをバイパスすることにより、「ファストトラック」によって消費者にデータをルーティングできることである。オペレーティングシステムのモード切替えは、ソフトウェアがユーザモード処理とカーネルモード処理との間を移行するたびに生じる。モードの切替えは、次の操作のうちの１つまたは複数を含むことができる高価な操作であり、その操作とは、：ソフトウェア割込み処理、アドレス検証、メモリロック／ロック解除、ページテーブルの修正、データコピー、およびプロセススケジューリングである。図２１は、低レイテンシのデータルーティングモジュールの例示的設計を示す。再構成可能な論理による処理の後、市場データイベントが、２１０１で、ハードウェアインターフェースドライバに送られる。２１０２で示されるような各市場データイベントは、２１０３のルーティングベクトルを含む。好ましくは権利付与関心ビットベクトルによって実施されるこのルーティングベクトルは、再構成可能な論理（好ましくは関心および権利付与ＦＡＭ）によってポピュレートされ、各イベントを適当な消費者に送るために必要な情報を含む。このソフトウェアによって維持されるテーブルは、権利付与関心ビットベクトルのビット位置を、対象データについて権利付与され、そのデータについて知らされることに関心を示した実際のエンティティに好ましくは変換する。
【０１３１】
このハードウェアインターフェースドライバは、２１０４で、再構成可能な論理から受け取った各イベントについてＭＤＣドライバを呼ぶ。このＭＤＣドライバは、個々の拡張市場データイベントのファストトラックデータルーティングを担う。２１０５で、各イベントに関連するルーティング情報が問い合わせられる。この問い合わせは、各イベントについての一連の宛先点（ｄｅｓｔｉｎａｔｉｏｎ  ｐｏｉｎｔ）を特定する。各イベントは、次のうちの１つまたは複数にルーティングすることができ、それは：カーネルモジュール、プロトコルスタック、装置ドライバ、および／またはユーザプロセスである。例外イベント、保守命令の結果、および追加の処理を必要とするイベントは、２１０６で、低速経路を介してユーザモードのバックグラウンドおよび保守処理モジュールにルーティングされる。このバックグラウンドおよび保守処理モジュールは、イベントを、再構成可能な論理に送るために、２１０７でハードウェアインターフェースドライバ中に、または接続された消費者に送るために、２１０８でＭＤＣドライバに直接投入する機能を有する。
【０１３２】
Ｕｐｊｅｃｔドライバと同様に、このＭＤＣドライバも、２１０９で、オペレーティングシステムによって供給されるネットワークプロトコルスタックへのカーネルレベルインターフェースを維持する。ＭＤＣドライバとプロトコルスタックとの間のこのカーネルレベルインターフェースは、２１１０で、ネットワークを介して接続するクライアントにリアルタイムの市場イベントを送るための高速経路を提供する。ＭＤＣドライバに含まれるイベントルーティング論理は、各イベントに含まれるイベントルーティング情報を問い合わせ、適当なイベントをネットワークプロトコルスタックに直接渡す。
【０１３３】
このＭＤＣドライバは、２１１１で、市場イベントを他の消費者にルーティングする機能も有する。リアルタイムの市場イベントのこれらの他の消費者には、様々なネットワーク相互接続方法体系によって接続されるクライアントに関するネットワークドライバ、カーネルモードモジュールまたは装置ドライバ、再構成可能な論理を含むハードウェア装置、および様々なユーザモードプロセスが含まれるがそれだけに限定されない。このＭＤＣドライバは、相場速報装置の好ましい実施形態が可能な限り低いレイテンシでクライアントにデータを送ることを可能にする、柔軟なデータルーティング構成要素である。
【０１３４】
図２２は、クライアント接続を管理するための例示的モデルを示す。リモートクライアントは、２２０１で、オペレーティングシステムによって供給されるネットワークプロトコルスタックによって駆動されるネットワークを介して接続する。２２０２で、要求処理モジュールが、オペレーティングシステムによって供給されるネットワークプロトコルスタックとユーザモードでインターフェースする。この要求処理モジュールは、すべてのクライアント要求を解析し、検証する。次いで２２０３で、クライアント要求がバックグラウンドおよび保守処理モジュールに渡される。クライアントは概して、１つまたは複数の証券商品の名前を含む加入要求を行う。有効な商品に対する加入要求は、２２０５により、クライアントに送り返される成功裏の応答、および２２０４で、開始された要求商品の現在価格を表す更新画像をもたらす。指定された商品についてのすべての後続のイベントをクライアントにルーティングすることを可能にするために、追加の制御情報がファームウェアアプリケーションモジュールチェーンに送られる。瞬間的データスナップショット、履歴データ、およびオプション計算、ユーザ定義合成、バスケット計算を含むがそれだけに限定されない他のデータまたはサービスに対する追加の要求を行うことができる。
【０１３５】
このクライアント要求の性質に応じて、バックグラウンドおよび保守処理モジュールは、２２０４で、ハードウェアインターフェースドライバを介して再構成可能な論理に含まれるＦＡＭに命令を出すか、または２２０５で、適切に形式設定された応答をＭＤＣドライバに送ることにより、クライアント要求に直接応答することができる。このＭＤＣドライバは、２２０６で、クライアント要求への応答をリアルタイムの市場イベントに同期させるためにスピンロックを使用する。クライアント要求への応答およびリアルタイムの市場イベントが、このＭＤＣドライバにより、共通のイベントルーティング論理を使用して同様に処理される。２２０７で、リモートクライアント行きのイベントおよび応答が、そのリモートクライアントに送るために、オペレーティングシステムによって供給されるネットワークプロトコルスタックに、ファストトラックを介して渡される。
【０１３６】
したがって、図６に示すように、本発明の実施によって生み出されるプラットフォーム６００は、（従来型のＧＰＰベースシステムに比べて）プラットフォーム６００に必要なアプライアンスの数ならびにそのプラットフォームによって消費される空間を低減しながら、金融市場情報に対するデータ処理速度を向上させるように設計することができる。プラットフォーム６００を用いて、ワークステーション１０４におけるトレーダなどのユーザ（さらにはＡＰＩ（アプリケーションプログラミングインターフェース）を介してこのプラットフォームにアクセスする顧客支給アプリケーションソフトウェアプログラム１５０）は、従来型のシステムから予想されるであろうよりも少ないレイテンシで、金融市場に関する様々な情報を得ることができる。レイテンシに関するこの改善は、本発明の実施者らにとって多大な価値に変わり得る。
【０１３７】
これらの図面は、リアルタイムの金融データストリームを処理するために実装することができるＦＡＭパイプラインのいくつかの実施形態を示すが、本明細書の教示に従う当業者により他の多数のＦＡＭパイプラインが容易に考案され、導入され得ることに留意すべきである。
【０１３８】
さらに、冗長性目的および／またはスケーリング目的で、冗長アプリケーション６０４、６０６、６０８、６１０、６１２、６１４、および６１６を所与の市場データプラットフォーム６００に導入できることに留意すべきである。
【０１３９】
さらに、本発明の実施者は、再構成可能な論理内に、本明細書に記載の機能のすべてよりも少ない機能を導入することを選べることにも留意すべきである。例えば、装置６０４は、再構成可能な論理内でオプション価格付けのみを、または図６に列挙する他の何らかの機能のサブセットを行うようにアレンジすることができる。後にユーザが装置６０４に追加機能を加えたい場合、任意の所望の新たな機能を追加するようにシステム２００の再構成可能な論理を単に再構成することにより、そうすることが可能である。さらに、図６に示す破線の囲みは、同じカテゴリのデータ処理操作に属するとみなすことができるデータ処理機能を囲む。すなわち、装置６１２および６１４は、管理操作としてカテゴリ化することができる。装置６０４は、データアクセスのための供給ハンドリング／処理、付加価値サービス、および履歴サービスを提供するとしてカテゴリ化することができる。装置６０６、６０８、および６１０は、直接市場アクセス取引システムとしてカテゴリ化することができる。再構成可能な論理に関する改良は時間とともに継続し、それにより再構成可能な論理上でより多くの資源が使用可能になる（例えば、ＦＰＧＡ上でより多くのメモリが使用可能になる）ので、本発明者らは、破線の囲みによって示す同様のカテゴリのデータ処理操作を組み合わせることにより、金融データ処理機能のさらなる統合を実現し、それによりプラットフォーム６００を実装するのに必要なアプライアンス２００の数をさらに減らすことができると予見する。さらに、ＦＰＧＡに関してそのような時間に伴う資源の改良が起きる場合、図６に示すすべての機能を単一のシステム２００上に統合することを含め、なおさらなる統合が起こることを予見することができる。
【０１４０】
本発明をその好ましい実施形態に関連して上記に説明してきたが、本明細書の教示を検討することによって知ることができる本発明の範囲になお含まれる様々な修正をそれらの実施形態に加えることができる。そのようなものとして、本発明の完全な範囲は添付の特許請求の範囲およびその法的均等物によってのみ定義される。
【図１】
0005444536.tif 000004
【図２】
0005444536.tif 000005
【図３】
0005444536.tif 000006
【図４ａ】
0005444536.tif 000007
【図４ｂ】
0005444536.tif 000008
【図５】
0005444536.tif 000009
【図６】
0005444536.tif 000010
【図７】
0005444536.tif 000011
【図８】
0005444536.tif 000012
【図９】
0005444536.tif 000013
【図１０】
0005444536.tif 000014
【図１１】
0005444536.tif 000015
【図１２】
0005444536.tif 000016
【図１３】
0005444536.tif 000017
【図１４】
0005444536.tif 000018
【図１５ａ】
0005444536.tif 000019
【図１５ｂ】
0005444536.tif 000020
【図１６】
0005444536.tif 000021
【図１７】
0005444536.tif 000022
【図１８】
0005444536.tif 000023
【図１９】
0005444536.tif 000024
【図２０】
0005444536.tif 000025
【図２１】
0005444536.tif 000026
【図２２】
0005444536.tif 000027