High speed processing of financial information using FPGA devices
DCFirst Claim
Patent Images
1. An apparatus for processing a stream of financial market data messages, the apparatus comprising:
- a first memory configured to store a plurality of financial instrument records, each financial instrument record corresponding to a financial instrument, wherein each financial instrument record is indexed in the first memory by a record key;
a second memory configured to store the record keys for the financial instrument records; and
a reconfigurable logic device configured with a plurality of firmware application modules (FAMs) arranged in a pipeline, at least one of the FAMs comprising a symbol mapping FAM, wherein the symbol mapping FAM is configured to (1) receive at least a plurality of financial market data messages corresponding to financial instruments for which there is a record in the first memory, each received financial market data message comprising a symbol identifier for identifying that message'"'"'s corresponding financial instrument, (2) generate a hash key for each received financial market data message based on the symbol identifier within each financial market data message, and (3) map each generated hash key to a record key in the second memory using a hash function in combination with open addressing.
4 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A high speed apparatus and method for processing a plurality of financial market data messages are disclosed. With respect to an exemplary embodiment, a reconfigurable logic device is employed to map the symbols present in the financial market data messages to another symbology.
-
Citations
41 Claims
-
1. An apparatus for processing a stream of financial market data messages, the apparatus comprising:
-
a first memory configured to store a plurality of financial instrument records, each financial instrument record corresponding to a financial instrument, wherein each financial instrument record is indexed in the first memory by a record key; a second memory configured to store the record keys for the financial instrument records; and a reconfigurable logic device configured with a plurality of firmware application modules (FAMs) arranged in a pipeline, at least one of the FAMs comprising a symbol mapping FAM, wherein the symbol mapping FAM is configured to (1) receive at least a plurality of financial market data messages corresponding to financial instruments for which there is a record in the first memory, each received financial market data message comprising a symbol identifier for identifying that message'"'"'s corresponding financial instrument, (2) generate a hash key for each received financial market data message based on the symbol identifier within each financial market data message, and (3) map each generated hash key to a record key in the second memory using a hash function in combination with open addressing. - View Dependent Claims (3, 4, 12, 13, 14, 15, 29, 31, 32, 33, 34, 35, 36)
-
-
2. A method for processing a stream of financial market data messages, the method comprising:
-
storing a plurality of financial instrument records in a first memory, each financial instrument record corresponding to a financial instrument, wherein each financial instrument record is indexed in the first memory by a record key; storing the record keys for the financial instrument records in a second memory; receiving, in firmware logic deployed on a reconfigurable logic device, a plurality of financial market data messages corresponding to financial instruments for which there is a record in the first memory, each received financial market data message comprising a symbol identifier for identifying that message'"'"'s corresponding financial instrument, the firmware logic comprising a plurality of firmware application modules (FAMs) arranged in a pipeline, at least one of the FAMs comprising a symbol mapping FAM; and the symbol mapping FAM mapping each symbol identifier to the record key in the second memory for the financial instrument corresponding to the financial market data message having that symbol identifier by (1) generating a hash key for each received financial market data message based on the symbol identifier within each financial market data message, and (2) mapping each generated hash key to a record key in the second memory by performing a near-perfect hashing operation in combination with open addressing on each generated hash key. - View Dependent Claims (16, 17, 25, 26, 27, 28, 30, 37, 38, 39, 40, 41)
-
-
5. An apparatus for processing a stream of financial market data messages, the apparatus comprising:
-
a first memory configured to store a plurality of financial instrument records, each financial instrument record corresponding to a financial instrument, wherein each financial instrument record is indexed in the first memory by a direct record key; a second memory configured to store the direct record keys for the financial instrument records; and a reconfigurable logic device configured with a plurality of firmware application modules (FAMs) arranged in a pipeline, at least one of the FAMs comprising a symbol mapping FAM, wherein the symbol mapping FAM is configured to (1) receive at least a plurality of financial market data messages corresponding to financial instruments for which there is a record in the first memory, each received financial market data message comprising a symbol identifier for identifying that message'"'"'s corresponding financial instrument, (2) generate a hash key for each received financial market data message, (3) perform hashing on the generated hash keys to map the hash keys to addresses in the second memory where the direct record keys corresponding to the financial market data messages are stored, and (4) retrieve the direct record keys from the second memory using the addresses. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
-
18. A method for processing a stream of financial market data messages, the method comprising:
-
storing a plurality of financial instrument records in a first memory, each financial instrument record corresponding to a financial instrument, wherein each financial instrument record is indexed in the first memory by a record key; storing the record keys for the financial instrument records in a second memory; receiving, in firmware logic deployed on a reconfigurable logic device, a plurality of financial market data messages corresponding to financial instruments for which there is a record in the first memory, each received financial market data message comprising a symbol identifier for identifying that message'"'"'s corresponding financial instrument, the firmware logic comprising a plurality of firmware application modules (FAMs) arranged in a pipeline, at least one of the FAMs comprising a symbol mapping FAM; and the symbol mapping FAM mapping each symbol identifier to the record key in the second memory for the financial instrument corresponding to the financial market data message having that symbol identifier by (1) generating a hash key for each received financial market data message, and (2) hashing the generated hash keys to map the hash keys to addresses in the second memory where the direct record keys corresponding to the financial market data messages are stored, and (3) retrieving the direct record keys from the second memory using the addresses. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification