High speed processing of financial information using FPGA devices
DCFirst Claim
Patent Images
1. An apparatus comprising:
- an order management system (OMS) configured to manage a plurality of streaming buy and sell orders for a plurality of financial instruments, the OMS comprising (1) a processor, and (2) a reconfigurable logic device having firmware logic deployed thereon, the firmware logic comprising a firmware socket module and a firmware application module pipeline;
wherein the processor is configured to (1) execute an operating system, the operating system including a user space for a user mode and a kernel space for a kernel mode, (2) receive the streaming orders as traffic through a protocol stack, and (3) process the streaming orders from the protocol stack within the kernel space while in the kernel mode without requiring a transition to the user mode;
wherein the firmware socket module is configured to (1) stream the streaming orders into the reconfigurable logic device from memory outside the reconfigurable logic device via DMA operations, and (2) provide the streaming orders to the firmware application module pipeline; and
wherein the firmware application module pipeline is configured to (1) receive the streaming orders, (2) compare the steaming orders against a plurality of risk profiles, and (3) based on the comparison, determine whether any of the streaming orders are appropriate.
4 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A high speed system and method for processing financial instrument order data are disclosed. With respect to an exemplary embodiment, a reconfigurable logic device is employed to monitor a financial instrument order based on a risk profile to determine whether the order is appropriate. If determined appropriate, a financial instrument order can be routed to a trading venue. With respect to another exemplary embodiment, a reconfigurable logic device is employed to maintain a financial instrument order book.
523 Citations
46 Claims
-
1. An apparatus comprising:
-
an order management system (OMS) configured to manage a plurality of streaming buy and sell orders for a plurality of financial instruments, the OMS comprising (1) a processor, and (2) a reconfigurable logic device having firmware logic deployed thereon, the firmware logic comprising a firmware socket module and a firmware application module pipeline; wherein the processor is configured to (1) execute an operating system, the operating system including a user space for a user mode and a kernel space for a kernel mode, (2) receive the streaming orders as traffic through a protocol stack, and (3) process the streaming orders from the protocol stack within the kernel space while in the kernel mode without requiring a transition to the user mode; wherein the firmware socket module is configured to (1) stream the streaming orders into the reconfigurable logic device from memory outside the reconfigurable logic device via DMA operations, and (2) provide the streaming orders to the firmware application module pipeline; and wherein the firmware application module pipeline is configured to (1) receive the streaming orders, (2) compare the steaming orders against a plurality of risk profiles, and (3) based on the comparison, determine whether any of the streaming orders are appropriate. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 18, 19, 20, 33)
-
-
12. An order management method, the method comprising:
managing a plurality of streaming buy and sell orders for a plurality of financial instruments using an order management system (OMS), the OMS comprising (1) a processor, and (2) a reconfigurable logic device having firmware logic deployed thereon, the firmware logic comprising a firmware socket module and a firmware application module pipeline, wherein the managing step comprises; the processor (1) executing an operating system, the operating system including a user space for a user mode and a kernel space for a kernel mode, (2) receiving the streaming orders as traffic through a protocol stack, and (3) processing the streaming orders from the protocol stack within the kernel space while in the kernel mode without requiring a transition to the user mode; the firmware socket module (1) streaming the streaming orders into the reconfigurable logic device from memory outside the reconfigurable logic device via DMA operations, and (2) providing the streaming orders to the firmware application module pipeline; and the firmware application module pipeline (1) receiving the streaming orders, (2) comparing the steaming orders against a plurality of risk profiles, and (3) based on the comparing, determining whether any of the streaming orders are appropriate. - View Dependent Claims (13, 21, 22, 23, 34)
-
14. An apparatus comprising:
-
a computer system comprising a processor and a reconfigurable logic device that are configured to cooperate with each other to process streaming financial market data relating to a plurality of financial instruments and manage a delivery of the processed financial market data for consumption by a plurality of clients; wherein the processor is configured to execute an operating system, the operating system including a user space for a user mode and a kernel space for a kernel mode; wherein the reconfigurable logic device is configured to (1) perform a processing operation on the streaming financial market data to thereby generate processed financial market data and (2) stream the processed financial market data out of the reconfigurable logic device into a memory within the kernel space of the operating system via DMA operations; and wherein a driver that executes within the kernel space of the operating system while the operating system is in the kernel mode is configured to (1) read the processed financial market data from the memory, and (2) selectively route the processed financial market data for delivery to the clients via a path that is wholly within the kernel space. - View Dependent Claims (15, 16, 24, 25, 26, 27, 28, 35, 36, 37, 38, 39, 45, 46)
-
-
17. A method for processing financial market data using a system comprising a processor and a reconfigurable logic device, the method comprising:
-
the processor executing an operating system, the operating system including a user space for a user mode and a kernel space for a kernel mode, wherein the executing step comprises; a network protocol stack executed by the operating system receiving a feed of streaming financial market data for a plurality of financial instruments; a first driver executed within the kernel space of the operating system while the operating system is in the kernel mode (1) maintaining a kernel level interface into the network protocol stack, and (2) copying the streaming financial market data from the network protocol stack into a shared memory that is mapped into the kernel space and the user space, wherein the copying is performed by the driver without the operating system transitioning to the user mode; user mode code executed within the user space of the operating system (1) accessing the financial market data from the shared memory, (2) normalizing the accessed financial market data, and (3) writing the normalized financial market data to additional shared memory that is mapped into the kernel space and the user space; and a second driver executed within the kernel space of the operating system while the operating system is in the kernel mode facilitating DMA transfers of the normalized financial market data from the additional shared memory into the reconfigurable logic device; the reconfigurable logic device streaming the normalized financial market data into the reconfigurable logic device from the additional shared memory via DMA operations, the reconfigurable logic device having a resident firmware pipeline; and the firmware pipeline (1) receiving the streaming normalized financial market data, and (2) performing a processing operation on the received streaming normalized financial market data to generate processed financial market data for delivery to a plurality of clients. - View Dependent Claims (29, 30, 31, 32, 40, 41, 42, 43, 44)
-
Specification