High speed processing of financial information using FPGA devices
DCFirst Claim
Patent Images
1. An apparatus for processing streaming financial market data, the apparatus comprising:
- a computer system, the computer system comprising a reconfigurable logic device, a symbol index memory, and a processor;
wherein the processor, the reconfigurable logic device, and the symbol index memory are configured to cooperate with each other to process the streaming financial market data;
wherein the symbol index memory is configured to store a plurality of record keys, each record key corresponding to a financial instrument and identifying a memory address for data about the corresponding financial instrument; and
wherein the processor is configured to (1) execute an operating system that includes a user space for a user mode and a kernel space for a kernel mode, (2) receive a feed of streaming financial market data through a network protocol stack, wherein the streaming financial market data comprises a plurality of financial market data messages, (3) use shared memory that is mapped into the kernel space and the user space to store financial market data within the financial market data messages while the financial market data messages are being processed by the processor, the stored financial market data including ticker symbol character strings and associated financial instrument price information, and (4) facilitate DMA transfers of the stored financial market data to the reconfigurable logic device from the shared memory;
wherein the reconfigurable logic device is configured with a plurality of firmware application modules (FAMs) arranged in a pipeline, the FAMs including a symbol mapping FAM, the symbol mapping FAM configured to (1) process a plurality of the ticker symbol character strings within the streaming financial market data, the ticker symbol character strings configured to identify a plurality of financial instruments corresponding to the messages, (2) map the processed ticker symbol character strings to the record keys in the symbol index memory that correspond to the financial instruments identified by the processed ticker symbol character strings, and (3) output the mapped record keys; and
wherein the reconfigurable logic device is further configured to (1) receive financial market data from the shared memory via the DMA transfers and (2) stream the received financial market data through the pipeline including the symbol mapping FAM.
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
44 Claims
-
1. An apparatus for processing streaming financial market data, the apparatus comprising:
-
a computer system, the computer system comprising a reconfigurable logic device, a symbol index memory, and a processor; wherein the processor, the reconfigurable logic device, and the symbol index memory are configured to cooperate with each other to process the streaming financial market data; wherein the symbol index memory is configured to store a plurality of record keys, each record key corresponding to a financial instrument and identifying a memory address for data about the corresponding financial instrument; and wherein the processor is configured to (1) execute an operating system that includes a user space for a user mode and a kernel space for a kernel mode, (2) receive a feed of streaming financial market data through a network protocol stack, wherein the streaming financial market data comprises a plurality of financial market data messages, (3) use shared memory that is mapped into the kernel space and the user space to store financial market data within the financial market data messages while the financial market data messages are being processed by the processor, the stored financial market data including ticker symbol character strings and associated financial instrument price information, and (4) facilitate DMA transfers of the stored financial market data to the reconfigurable logic device from the shared memory; wherein the reconfigurable logic device is configured with a plurality of firmware application modules (FAMs) arranged in a pipeline, the FAMs including a symbol mapping FAM, the symbol mapping FAM configured to (1) process a plurality of the ticker symbol character strings within the streaming financial market data, the ticker symbol character strings configured to identify a plurality of financial instruments corresponding to the messages, (2) map the processed ticker symbol character strings to the record keys in the symbol index memory that correspond to the financial instruments identified by the processed ticker symbol character strings, and (3) output the mapped record keys; and wherein the reconfigurable logic device is further configured to (1) receive financial market data from the shared memory via the DMA transfers and (2) stream the received financial market data through the pipeline including the symbol mapping FAM. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 37, 38, 39, 40, 41, 42, 43, 44)
-
-
13. An apparatus for processing streaming financial market data, the apparatus comprising:
-
a computer system, the computer system comprising a reconfigurable logic device and a processor; wherein the processor and the reconfigurable logic device are configured to cooperate with each other to process the streaming financial market data; wherein the processor is configured to (1) execute an operating system that includes a user space for a user mode and a kernel space for a kernel mode, (2) receive a feed of streaming financial market data messages through a network protocol stack, (3) use shared memory that is mapped into the kernel space and the user space to store financial market data within the financial market data messages while the financial market data messages are being processed by the processor, the stored financial market data including ticker symbol character strings and associated financial instrument price information, and (4) facilitate DMA transfers of the stored financial market data to the reconfigurable logic device from the shared memory; wherein the reconfigurable logic device is configured to (1) process a ticker symbol character string within streaming financial market data, wherein the ticker symbol character string representative of ticker symbol for a subject financial instrument, wherein the ticker symbol character string is member of a set of a plurality N of different ticker symbol character strings corresponding to N different financial instruments, (2) map the processed ticker symbol character string to a binary value within a set of a plurality N of different binary values, wherein each binary value in the set of N different binary values has a size of M bits and is representative of a different financial instrument, wherein M=log2(N), (3) use the mapped binary value as a unique identifier for the subject financial instrument with regard to the streaming financial market data, and (4) repeat the process, map, and use operations for a plurality of ticker symbol character strings within streaming financial market data for a plurality of financial instruments as the streaming financial market data streams through the reconfigurable logic device; and wherein the reconfigurable logic device is further configured to (1) receive financial market data from the shared memory via the DMA transfers and (2) stream the received financial market data through firmware logic on the reconfigurable logic device that is configured to repeatedly perform the process, map, and use operations for a plurality of ticker symbol character strings within the streaming received financial market data. - View Dependent Claims (14, 15, 16)
-
-
17. A method for processing streaming financial market data using a computer system, the computer system comprising a reconfigurable logic device, a symbol index memory, and a processor, the method comprising:
-
storing a plurality of record keys in the symbol index memory, each record key corresponding to a financial instrument and identifying a memory address for data about the corresponding financial instrument; the processor executing an operating system that includes a user space for a user mode and a kernel space for a kernel mode, wherein the executing step comprises; the processor receiving a feed of streaming financial market data through a network protocol stack, wherein the streaming financial market data comprises a plurality of financial market data messages; the processor using shared memory that is mapped into the kernel space and the user space to store financial market data within the financial market data messages while the financial market data messages are being processed by the processor, the stored financial market data including ticker symbol character strings and associated financial instrument price information; and the processor facilitating DMA transfers of the stored financial market data to the reconfigurable logic device from the shared memory; the reconfigurable logic device (1) receiving financial market data from the shared memory via the DMA transfers and (2) streaming the received financial market data through a pipeline deployed on the reconfigurable logic device, wherein the pipeline includes a symbol mapping firmware application module (FAM);
the symbol mapping FAM processing a plurality of the ticker symbol character strings within the streaming financial market data, the ticker symbol character strings configured to identify a plurality of financial instruments corresponding to the messages; the symbol mapping FAM mapping the processed ticker symbol character strings to the record keys in the symbol index memory that correspond to the financial instruments identified by the processed ticker symbol character strings; and the symbol mapping FAM outputting the mapped record keys. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification