IP Library › Granted Patent US 12,223,546
Granted Patent B2
US 12,223,546 · App. 18/532,122 · Granted Feb 11, 2025

Systems and methods for coordinating processing of scheduled instructions across multiple components

Inventors: Zachary Bonig (Skokie, IL); Eric Thill (Naperville, IL); Pearce Peck-Walden (Chicago, IL); José Antonio Acuña-Rohter (Chicago, IL); Barry Galster (Chicago, IL); Neil Steuber (Evanston, IL); James Bailey (Hanover Park, IL); Jake Siddall (Chicago, IL)
Assignee: Chicago Mercantile Exchange Inc.
G06Q40/04G06Q10/1093
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,223,546
App. No.
18/532,122
Granted
Feb 11, 2025
Kind
B2
Abstract

The disclosed embodiments relate to implementation of a trading system or trading system architecture having multiple transaction processors that execute financial transactions as well as scheduled tasks. The multiple transaction processors perform all actions independently of each other, but can be configured to execute the financial transactions or scheduled tasks in a controlled, coordinated, and/or synchronized manner based on time signal data augmented to the financial transactions or scheduled tasks by a transaction receiver/orderer.

Claims (34)

1. A computer implemented method comprising:

receiving, by each of a plurality of independently operating processors from one or more receivers coupled therewith, a data message comprising signal data, wherein each processor is coupled with a memory in which at least one instruction has been previously stored in association with one of a plurality of different signal data; and

determining, by each of the plurality of processors, that the signal data of the received data message corresponds with the signal data associated with one of the stored at least one instruction stored in the memory coupled therewith, and based thereon processing the corresponding one of the stored at least one instruction.

2. The computer implemented method of claim 1 , wherein the signal data comprises data indicative of a relationship between a received data message and any of the plurality of data messages previously received by any of the one or more receivers, the received data message further comprising a transaction to be processed by each processor, the method further comprising processing, by each of the plurality of processors, the transaction of the received data messages in accordance with the corresponding signal data.

3. The computer implemented method of claim 1 , wherein the at least one instruction comprises an action to be taken by the processor and the corresponding particular signal data comprises a scheduled time for the processor to take the action.

4. The computer implemented method of claim 3 , wherein the determining comprises comparing, by each of the plurality of processors, the signal data of each received data message with the scheduled time corresponding to each of the stored at least one instruction and determining, based on the comparison, if the signal data of a received data message corresponds to the scheduled time corresponding to any of the stored at least one instruction.

5. The computer implemented method of claim 1 , wherein each of the plurality of processors, subsequent to having processed the same data messages in accordance with the corresponding signal data, regardless of when those data messages were processed, has an identical state based thereon.

6. The computer implemented method of claim 3 , wherein the action of the stored at least one instruction to be processed includes at least one of: performing garbage collection; updating software for the processor; enabling the processing by the processor of subsequent transactions; or disabling the processing by the processor of subsequent transactions.

7. The computer implemented method of claim 1 , wherein the data message was generated by one of the one or more receivers, the signal data comprising a time stamp generated by the one of the one or more receivers subsequent to a determination that a predetermined amount of time has elapsed since a prior receipt by at least the one of the one or more receivers of another data message.

8. The computer implemented method of claim 1 , further comprising receiving and storing in the memory, by each of the plurality of processors, the at least one instruction before receiving at least the data messages having signal data corresponding thereto.

9. The computer implemented method of claim 1 , wherein the plurality of receivers are coupled together to coordinate the signal data of the data message.

10. The computer implemented method of claim 1 , wherein the plurality of processors includes first and second processors, and wherein the method further comprises:

processing, by the first processor, a first stored at least one instruction at a first time; and

processing, by the second processor, the first stored at least one instruction at a second time different from the first time in a same relation to the processing of the same received data message by the first processor.

11. The computer implemented method of claim 10 , wherein processing of the first stored at least one instruction by the first and second processors causes a same modification in a physical and/or functional configuration thereof.

12. A system comprising:

a plurality of independently operating processors coupled with one or more receivers, each processor being coupled with a memory in which at least one instruction has been previously stored in association with one of a plurality of different signal data and configured to:

receive a data message from one of the one or more receivers comprising signal data; and

determine that the signal data of the received data message corresponds with the signal data associated with one of the stored at least one instruction, and based thereon processing the corresponding one of the stored at least one instruction.

13. The system of claim 12 , wherein the signal data comprises data indicative of a relationship between a received data message and any of the plurality of data messages previously received by any of the one or more receivers, the received data message further comprising a transaction to be processed by each processor, the method further comprising processing, by each of the plurality of processors, the transaction of the received data messages in accordance with the corresponding signal data.

14. The system of claim 12 , wherein the at least one instruction comprises an action to be taken by the processor and the corresponding particular signal data comprises a scheduled time for the processor to take the action.

15. The system of claim 14 , wherein each of the plurality of processors is further configured to compare the signal data of each received data message with the scheduled time corresponding to each of the stored at least one instruction and determine, based on the comparison, if the signal data of a received data message corresponds to the scheduled time corresponding to any of the stored at least one instruction.

16. The system of claim 12 , wherein each of the plurality of processors, subsequent to having processed the same data messages in accordance with the corresponding signal data, regardless of when those data messages were processed, has an identical state based thereon.

17. The system of claim 14 , wherein the action of the stored at least one instruction to be processed includes at least one of: performance of garbage collection; performance of an update to software for the processor; enablement of the processing by the processor of subsequent transactions; or disablement the processing by the processor of subsequent transactions.

18. The system of claim 12 , wherein the data message was generated by one of the one or more receivers, the signal data comprising a time stamp generated by the one of the one or more receivers subsequent to a determination that a predetermined amount of time has elapsed since a prior receipt by at least the one of the one or more receivers of another data message.

19. The system of claim 12 , wherein each of the plurality of processors is further configured to receive and store the at least one instruction prior to receipt of at least the data messages having signal data corresponding thereto.

20. The system of claim 12 , wherein the plurality of receivers are coupled together to coordinate the signal data of the data message.

21. The system of claim 12 , wherein the plurality of processors includes first and second processors, and wherein the first and second processors are configured to:

process, by the first processor, a first stored at least one instruction at a first time; and

process, by the second processor, the first stored at least one instruction at a second time different from the first time in a same relation to the processing of the same received data message by the first processor.

22. The system of claim 21 , wherein processing of the first stored at least one instruction by the first and second processors causes a same modification in a physical and/or functional configuration thereof.

23. A system comprising:

means for receiving, by each of a plurality of independently operating processing means from one or more receivers coupled therewith, a data message comprising signal data, wherein each processing means is coupled with a memory in which at least one instruction has been previously stored in association with one of a plurality of different signal data; and

means for determining, by each of the plurality of processing means, that the signal data of the received data message corresponds with the signal data associated with one of the stored at least one instruction stored in the memory coupled therewith, and based thereon processing the corresponding one of the stored at least one instruction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2023
From: BONIG, ZACHARY; THILL, ERIC; PECK-WALDEN, PEARCE; ACUÑA-ROHTER, JOSÉ ANTONIO; GALSTER, BARRY; STEUBER, NEIL; BAILEY, JAMES; SIDDALL, JAKE
To: CHICAGO MERCANTILE EXCHANGE INC.
Reel/Frame 065829/0393 →
Continuity (4)
Continuation 17672207 · Feb 15, 2022
Continuation 16925751 · Jul 10, 2020
Continuation 15232208 · Aug 9, 2016
Related Publication 20240104657A1 · Mar 28, 2024
References Cited (98)
US 6065108A · Tremblay · 2000 [cited by examiner]
US 6978396B2 · Ruuth · 2005 [cited by examiner]
US 7401333B2 · Vandeweerd · 2008 [cited by examiner]
US 7434096B2 · Callaway et al. · 2008 [cited by applicant]
US 7480827B2 · Callaway et al. · 2009 [cited by applicant]
US 7636703B2 · Taylor · 2009 [cited by applicant]
US 7840482B2 · Singla et al. · 2010 [cited by applicant]
US 7921046B2 · Parsons · 2011 [cited by examiner]
US 7954114B2 · Chamberlain et al. · 2011 [cited by applicant]
US 8027904B2 · O'Callahan · 2011 [cited by applicant]
US 8041985B2 · Callaway et al. · 2011 [cited by applicant]
US 8069102B2 · Indeck et al. · 2011 [cited by applicant]
US 8296217B1 · Howorka · 2012 [cited by applicant]
US 8407122B2 · Parsons et al. · 2013 [cited by applicant]
US 8458081B2 · Parsons et al. · 2013 [cited by applicant]
US 8489747B2 · Aisen et al. · 2013 [cited by applicant]
US 8548900B1 · Glackin et al. · 2013 [cited by applicant]
US 8660936B1 · Banke · 2014 [cited by examiner]
US 8984137B2 · Aisen et al. · 2015 [cited by applicant]
US 9881338B2 · Schmitt · 2018 [cited by examiner]
US 10706469B2 · Aisen · 2020 [cited by examiner]
US 20030225760A1 · Ruuth · 2003 [cited by applicant]
US 20050149428A1 · Gooch et al. · 2005 [cited by applicant]
US 20060036531A1 · Jackson et al. · 2006 [cited by applicant]
US 20060106707A1 · Shetty et al. · 2006 [cited by applicant]
US 20070118460A1 · Bauerschmidt et al. · 2007 [cited by applicant]
US 20070220614A1 · Ellis · 2007 [cited by examiner]
US 20080010183A1 · Holmes et al. · 2008 [cited by applicant]
US 20080126853A1 · Callaway et al. · 2008 [cited by applicant]
US 20090012892A1 · Biase · 2009 [cited by applicant]
US 20090182683A1 · Taylor et al. · 2009 [cited by applicant]
US 20090287628A1 · Indeck et al. · 2009 [cited by applicant]
US 20100023458A1 · Kociuba · 2010 [cited by applicant]
US 20100153254A1 · Shalen · 2010 [cited by applicant]
US 20100241758A1 · Oddie et al. · 2010 [cited by applicant]
US 20100332650A1 · Aisen et al. · 2010 [cited by applicant]
US 20110145447A1 · Dimond · 2011 [cited by applicant]
US 20110178911A1 · Parsons et al. · 2011 [cited by applicant]
US 20110178912A1 · Parsons et al. · 2011 [cited by applicant]
US 20110178917A1 · Parsons et al. · 2011 [cited by applicant]
US 20110178918A1 · Parsons et al. · 2011 [cited by applicant]
US 20110178919A1 · Parsons et al. · 2011 [cited by applicant]
US 20110178957A1 · Parsons et al. · 2011 [cited by applicant]
US 20110179050A1 · Parsons et al. · 2011 [cited by applicant]
US 20110184844A1 · Parsons et al. · 2011 [cited by applicant]
US 20110246351A1 · Sulavka · 2011 [cited by applicant]
US 20110264578A1 · Chapman et al. · 2011 [cited by applicant]
US 20110268097A1 · Agrawala · 2011 [cited by examiner]
US 20110320335A1 · Gorelik et al. · 2011 [cited by applicant]
US 20120047062A1 · Robinson · 2012 [cited by applicant]
US 20120089496A1 · Taylor et al. · 2012 [cited by applicant]
US 20120089497A1 · Taylor et al. · 2012 [cited by applicant]
US 20120095893A1 · Taylor et al. · 2012 [cited by applicant]
US 20120246052A1 · Taylor et al. · 2012 [cited by applicant]
US 20120259757A1 · Nager · 2012 [cited by applicant]
US 20120290460A1 · Curry, Jr. et al. · 2012 [cited by applicant]
US 20130030963A1 · Cramer et al. · 2013 [cited by applicant]
US 20130226764A1 · Battyani · 2013 [cited by applicant]
US 20140143121A1 · Stevens · 2014 [cited by applicant]
US 20140279342A1 · Maynard · 2014 [cited by applicant]
US 20140289094A1 · Gaber et al. · 2014 [cited by applicant]
US 20150073970A1 · Merold · 2015 [cited by examiner]
US 20150127510A1 · Studnitzer · 2015 [cited by examiner]
US 20150127511A1 · Studnitzer et al. · 2015 [cited by applicant]
US 20150199680A1 · Framularo · 2015 [cited by applicant]
US 20160035027A1 · Mercer et al. · 2016 [cited by applicant]
US 20170124649A1 · Schonberg · 2017 [cited by applicant]
US 20220166827A1 · Pitio et al. · 2022 [cited by applicant]
WO 2008154306 · 2008 [cited by applicant]
WO 2011134975 · 2011 [cited by applicant]
WO 2012079041 · 2012 [cited by applicant]
“High Performance Trading—Deployment of Leading Edge Technology Thinking”, Argon Design, 2013, 2 pages. [cited by applicant]
“Real-time Operating System”, Wikipedia, Retrieved May 19, 2013, http://en.wikipedia.org/wiki/Real-time_operating_System, 6 pages. [cited by applicant]
“Solace Message Routers and Cisco Ethernet Switches: Unified Infrastructure for Financial Services Middleware”, White Paper, 2010, 15 pages, Cisco Systems, Inc. [cited by applicant]
“What is a Real-Time Operating System (RTOS)?”, National Instruments, Oct. 2, 2012, 2 pages. [cited by applicant]
Benjamin Geib, “Investigating Low Latency Trading with an HT Enabled FPGA”, Universitat Heidelberg, Aug. 2, 2011, 17 pages. [cited by applicant]
C. Leber et al., “High Frequency Trading Acceleration Using FPGAs”, International Conference on Field Programmable Logic and Applications, 2011, 317-322. [cited by applicant]
Cisco Systems, Inc., “Design Best Practices for Latency Optimization”, 1992-2007, 8 pages. [cited by applicant]
Control Engineering (“Advantage of FPGAs” Control Engineering http://www.controleng.com/single-article/advantages-of-fpgas/c5a8c5a1dffd102e83ae9d9d7c518746.html Feb. 1, 2010). [cited by applicant]
Corvil, “Nanosecond Latency Management”, Whitepaper, 2011, 10 pages. [cited by applicant]
International Preliminary Report on Patentability, from PCT/US2014/064001, May 10, 2016, WO. [cited by applicant]
International Search Report and Written Opinion from PCT/US2017/046082, Nov. 10, 2017, WO. [cited by applicant]
International Search Report and Written Opinion, from PCT/US2014/064001, Feb. 13, 2015, WO. [cited by applicant]
International Search Report and Written Opinion, from PCT/US2017/046085, Oct. 27, 2017, WO. [cited by applicant]
International Search Report in International Patent Application No. PCT/AU2009/000849, dated Aug. 6, 2009, 4 pages. [cited by applicant]
International Search Report in International Patent Application No. PCT/EP2011/056611, Jan. 20, 2012, 3 pages. [cited by applicant]
Kwai, Ding-Min and Parhami, Behrooz (“Fault-Tolerant Processor Arrays Using Space and Time Redundancy” http://www.ece.ucsb.edu/˜RMARTIN/PROJECTS/MARKET/INDEX.html Jun. 9, 2007). [cited by applicant]
Leber et al., “How to Get World's Best Possible Ultra Low Latency in High Frequency Trading (Tick to Trade Method)”, 2012. [cited by applicant]
Lockwood, et al., “A Low-Latency Library in FPGA Hardware for High-Frequency Trading (HFT)”, 2012 IEEE 20th Annual Symposium on High-Performance Interconnects, 2012, pp. 9-16. [cited by applicant]
low-latency.com, “Groundbreaking Results for High Performance Trading with FPGA and x86 Technologies”, Newswire, Sep. 25, 2013, 2 pages. [cited by applicant]
NSE (“Impact Cost” NSE http://nseindia.com/products/content/equities/indices/impact_cost.htm Sep. 25, 2011). [cited by applicant]
Risca et al., “Trading Floor Architecture”, Cisco Systems, 2008, 36 pages. [cited by applicant]
Rutgers University (“A Scalable Fault-Tolerant Limit Order Book” Rutgers University http://www.cs. rutgers.edu/˜rmartin/projects/market/index.html Jun. 9, 2007). [cited by applicant]
Scott Caudell, “Co-location, Performance Management and Technology Innovation for Ultra-low Latency Trading”, High Performance Technologies for Trading, Apr. 2010, 5 pages, Issue 5. [cited by applicant]
Tse et al., “High Frequency Trading—Measurement, Detection and Response”, Trading Strategy, Dec. 6, 2012, 12 pages. [cited by applicant]
Tse et al., “High Frequency Trading—The Good, The Bad, and The Regulation”, Trading Strategy, Dec. 5, 2012, 7 pages. [cited by applicant]
Wikipedia (“Asynchronous array of simple processors” Wikipediahttp://web.archive.org/web/20090205100510/http://en.wikipedia.org/wiki/Asynchronous_array_of_simple_processors Feb. 5, 2009). [cited by applicant]
Wikipedia, “Real-time Business Intelligence”, Retrieved May 19, 2013, 4 pages, http://en.wikipedia.org/wiki/Real-time_business_intelligence. [cited by applicant]