High speed processing of financial information using FPGA devices
DCFirst Claim
Patent Images
1. A method for processing a plurality of financial market data messages, each message corresponding to a financial instrument and comprising financial market data for its corresponding financial instrument, the method comprising:
- storing a plurality of first memory financial instrument records in a first memory at a plurality of first memory addresses, each first memory financial instrument record corresponding to a financial instrument and comprising a plurality of fields for storing financial market data for their corresponding financial instruments;
storing a plurality of second memory financial instrument records in a second memory at a plurality of second memory addresses, each second memory financial instrument record corresponding to a financial instrument and comprising pointer information for locating a first memory financial instrument record in the first memory that corresponds to the same financial instrument; and
processing streaming data corresponding to a plurality of the messages through a reconfigurable logic device, the processed data comprising (1) a plurality of symbol identifiers for the messages'"'"' corresponding financial instruments, and (2) a plurality of message fields having financial market data for the messages'"'"' corresponding financial instruments, the reconfigurable logic device comprising a plurality of pipelined data processing blocks deployed in firmware logic on the reconfigurable logic device, the pipelined data processing blocks comprising (1) an address resolution block, (2) a record retrieval block downstream from the address resolution block, and (3) a field updating block downstream from the record retrieval block, and wherein the processing step comprises;
the address resolution block (1) retrieving a plurality of second memory financial instrument records from the second memory based on the symbol identifiers, the retrieved second memory financial instrument records corresponding to the financial instruments which correspond to the symbol identifiers, and (2) processing the retrieved second memory financial instrument records to resolve the first memory addresses corresponding to the pointer information in the retrieved second memory financial instrument records;
the record retrieval block retrieving a plurality of first memory financial instrument records from the first memory based on the resolved first memory addresses; and
the field updating block generating a plurality of updates for a plurality of the fields of the retrieved first memory financial instrument records based on the financial market data in a plurality of the message fields for the messages corresponding to the financial instruments which correspond to the retrieved first memory financial instrument records; and
wherein the address resolution block, the record retrieval block, and the field updating block perform their respective steps simultaneously with respect to each other in a pipelined fashion.
4 Assignments
Litigations
0 Petitions
Accused Products
Abstract
Methods and systems for processing financial market data using reconfigurable logic are disclosed. Various functional operations to be performed on the financial market data can be implemented in firmware pipelines to accelerate the speed of processing. Also, a combination of software logic and firmware logic can be used to efficiently control and manage the high speed flow of financial market data to and from the reconfigurable logic.
567 Citations
42 Claims
-
1. A method for processing a plurality of financial market data messages, each message corresponding to a financial instrument and comprising financial market data for its corresponding financial instrument, the method comprising:
-
storing a plurality of first memory financial instrument records in a first memory at a plurality of first memory addresses, each first memory financial instrument record corresponding to a financial instrument and comprising a plurality of fields for storing financial market data for their corresponding financial instruments; storing a plurality of second memory financial instrument records in a second memory at a plurality of second memory addresses, each second memory financial instrument record corresponding to a financial instrument and comprising pointer information for locating a first memory financial instrument record in the first memory that corresponds to the same financial instrument; and processing streaming data corresponding to a plurality of the messages through a reconfigurable logic device, the processed data comprising (1) a plurality of symbol identifiers for the messages'"'"' corresponding financial instruments, and (2) a plurality of message fields having financial market data for the messages'"'"' corresponding financial instruments, the reconfigurable logic device comprising a plurality of pipelined data processing blocks deployed in firmware logic on the reconfigurable logic device, the pipelined data processing blocks comprising (1) an address resolution block, (2) a record retrieval block downstream from the address resolution block, and (3) a field updating block downstream from the record retrieval block, and wherein the processing step comprises; the address resolution block (1) retrieving a plurality of second memory financial instrument records from the second memory based on the symbol identifiers, the retrieved second memory financial instrument records corresponding to the financial instruments which correspond to the symbol identifiers, and (2) processing the retrieved second memory financial instrument records to resolve the first memory addresses corresponding to the pointer information in the retrieved second memory financial instrument records; the record retrieval block retrieving a plurality of first memory financial instrument records from the first memory based on the resolved first memory addresses; and the field updating block generating a plurality of updates for a plurality of the fields of the retrieved first memory financial instrument records based on the financial market data in a plurality of the message fields for the messages corresponding to the financial instruments which correspond to the retrieved first memory financial instrument records; and wherein the address resolution block, the record retrieval block, and the field updating block perform their respective steps simultaneously with respect to each other in a pipelined fashion. - View Dependent Claims (2, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
3. A device for processing a plurality of streaming financial market data messages, each message corresponding to a financial instrument and comprising financial market data for its corresponding financial instrument, the device comprising:
-
a first memory configured to store a plurality of first memory financial instrument records at a plurality of first memory addresses, each first memory financial instrument record corresponding to a financial instrument and comprising a plurality of fields for storing financial market data for their corresponding financial instruments; a second memory configured to store a plurality of second memory financial instrument records at a plurality of second memory addresses, each second memory financial instrument record corresponding to a financial instrument and comprising pointer information for locating a first memory financial instrument record in the first memory that corresponds to the same financial instrument; and a reconfigurable logic device configured to process data corresponding to a plurality of the streaming messages, the processed data comprising (1) a plurality of symbol identifiers for the messages'"'"' corresponding financial instruments, and (2) a plurality of message fields having financial market data for the messages'"'"' corresponding financial instruments, the reconfigurable logic device comprising a plurality of pipelined data processing blocks deployed in firmware logic on the reconfigurable logic device, the pipelined data processing blocks comprising; an address resolution block; a record retrieval block downstream from the address resolution block; and a field updating block downstream from the record retrieval block; wherein the address resolution block is configured to (1) retrieve a plurality of second memory financial instrument records from the second memory based on the symbol identifiers, the retrieved second memory financial instrument records corresponding to the financial instruments which correspond to the symbol identifiers, and (2) process the retrieved second memory financial instrument records to resolve the first memory addresses corresponding to the pointer information in the retrieved second memory financial instrument records; wherein the record retrieval block is configured to retrieve a plurality of first memory financial instrument records from the first memory based on the resolved first memory addresses; and wherein the field updating block is configured to generate a plurality of updates for a plurality of the fields of the retrieved first memory financial instrument records based on the financial market data in a plurality of the message fields for the messages corresponding to the financial instruments which correspond to the retrieved first memory financial instrument records; and wherein the address resolution block, the record retrieval block, and the field updating block are configured to operate simultaneously with respect to each other in a pipelined fashion. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification