IP Library Granted Patent US 12,475,006
Granted Patent B2
US 12,475,006 · App. 18/399,469 · Granted Nov 18, 2025

Cost reduced high reliability fault tolerant computer architecture

Inventors: Michael Egan (Groton, MA); Beverly Brown (Westford, MA); Lei Cao (Westford, MA); Steven Haid (Bolton, MA); Charles Horvath (Jamaica Plain, MA); John MacLeod (Cambridge, MA)
Assignee: STRATUS TECHNOLOGIES IRELAND LTD.
G06F11/203G06F11/2023G06F11/2038G06F11/2048
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,475,006
App. No.
18/399,469
Granted
Nov 18, 2025
Kind
B2
Abstract

In part, in one aspect, the disclosure relates to a first computer system including a first processor and first memory, a first IO storage subsystem including a first switch configured for one or more first storage devices, a first IO non-storage subsystem including a first which configured for one or more first non-storage devices, a second compute system including a second processor and second memory, a second storage IO subsystem including a second switch configured for one or more second storage devices, a second IO non-storage subsystem including a second switch configured for one or more second non-storage devices and a midplane including a power connector, a processor side and an IO side, wherein the processing side includes connectors in electrical communication with the computer systems, the IO side includes connectors in electrical communication with the storage and non-storage subsystems.

Claims (46)

1 . A fault tolerant system comprising:

a first computer system comprising a first processor, a first memory, and a first operating system configured to run on the first processor, the first operating system comprising a first platform driver;

a first IO storage subsystem comprising a first N-lane switch configured for one or more first storage devices;

a first IO non-storage subsystem comprising a first M-lane switch configured for one or more first non-storage devices, wherein M and N are whole numbers greater than or equal to 2;

a second computer system comprising a second processor, a second memory, and a second operating system configured to run on the second processor, the second operating system comprising a second platform driver;

a second storage IO subsystem comprising a second N-lane switch configured for one or more second storage devices;

a second IO non-storage subsystem comprising a second M-lane switch configured for one or more second non-storage devices;

wherein the first platform driver and the second platform driver are each configured to establish a communication channel between the first computer system and the second computer system,

wherein the first computer system and the second computer system are both in electrical communication with the first IO storage subsystem, the first IO non-storage subsystem, the second storage IO subsystem, and the second IO non-storage subsystem,

wherein one or more of the N-lane or M-lane switches of each computer system comprises a set of registers, wherein each computer system is configured to modify at least one register of the set of registers to communicate information to the other computer system; and

a midplane comprising a power connector, a processor side and an IO side, wherein the processor side comprises one or more connectors in electrical communication with the first computer system and the second computer system,

wherein the IO side comprises a plurality of connectors in electrical communication with the first IO storage subsystem, the first IO non-storage subsystem, the second storage IO subsystem, and the second IO non-storage subsystem.

2 . The system of claim 1 , wherein each N-lane switch and M-lane switch are unmanaged such that no processor in electrical communication with the midplane is managing any of the N-lane switches and the M-lane switches.

3 . The system of claim 1 , wherein each platform driver is a kernel mode driver.

4 . The system of claim 1 , wherein the information communicated by modifying registers includes messages for migrate operations, apply operations, and commit operations transmitted from the first computer system and acknowledgements of migrate operations, apply operations, and commit operations by the second computer system.

5 . The system of claim 1 , wherein each computer system switch comprises modified switch firmware.

6 . The system of claim 5 , wherein the modified switch firmware is configured to, in response to an indication that the first computer system is failing or about to fail, reprovision a group of devices in communication with the first computer system such that the group of devices becomes attached to and in communication with the second computer system.

7 . The system of claim 3 , where the first computer system comprises a switch, wherein the switch is connected to the midplane, wherein the switch comprises modified switch firmware, the modified switch firmware to generate a first synthetic device comprising a first set of registers.

8 . The system of claim 7 , wherein each platform driver is configured to write information to or read information from the first set of registers or a second set of registers of a second synthetic device, wherein the second synthetic device is connected to the second computer system.

9 . The system of claim 1 , wherein a first set of registers are written by the first computer system and read using a second set of registers that are paired with first set of registers to provide a communication channel between the first computer system and the second computer system.

10 . The system of claim 1 , wherein each M-lane switch and N-lane switch is a PCIe switch, wherein the first computer system comprises a first DMA engine and the second computer system comprises a second DMA engine.

11 . A method of exchanging information between an active compute node and a standby compute node of a fault tolerant system, the method comprising:

modifying a first bios of a first compute node and a second bios of a second compute node such that one or more parameters of the first compute node and the second compute node are synchronized;

establishing a DMA datapath between the first compute node and the second compute node;

establishing a host-to-host messaging datapath;

generating a migration request in response to the first compute node identifying a failure mode, wherein the first compute node is an active compute node;

querying a second compute node to assess standby compatibility, wherein the second compute node is a standby compute node;

establishing a PCI inventory on the first compute node;

establishing a plurality of operations that will be performed on the second compute node to bring the PCI inventory establish on the first compute node into service on the second compute node; and

transferring processor state information and memory data from a first computer system to a second computer system through the DMA datapath.

12 . The method of claim 11 further comprising:

confirming that a migration of data from the first compute node to the second compute node is acknowledged through the host-to-host messaging datapath; and

quiescing local devices connected to the first compute node and quiescing processor threads in the first compute node that are unrelated to the migration of data from the first compute node to the second compute node.

13 . The method of claim 12 further comprising:

applying processor state information and memory data to the second compute node; and

re-provisioning devices from the first compute node to the second compute node.

14 . The method of claim 13 further comprising:

verifying presence of re-provisioned devices in IO domain of second computer system; and

changing role of the second compute node to active.

15 . The method of claim 13 , wherein the re-provisioning step is performed at least in part using modified switch firmware of a second switch, wherein the second compute node comprises the second switch.

16 . A fault tolerant system comprising:

a first computer system comprising a first processor, a first bios, and a first memory;

a first IO subsystem comprising a first N-lane switch configured for one or more first devices, wherein the first N-lane switch comprises a set of registers;

a second computer system comprising a second processor, a second bios, and a second memory;

a second IO subsystem comprising a second N-lane switch configured for one or more second devices, wherein the second N-lane switch comprises a set of registers, wherein each computer system is configured to modify at least one register of the set of registers to communicate information to the other computer system; and

an IO side device, wherein the IO side device comprises a plurality of connectors in electrical communication with the first IO subsystem and the second IO subsystem, wherein the first bios and the second bios are modified such that one or more parameters of the first computer system and the second computer system are synchronized.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: EGAN, MICHAEL; BROWN, BEVERLY; CAO, LEI; HAID, STEVEN; HORVATH, CHARLES; MACLEOD, JOHN
To: STRATUS TECHNOLOGIES IRELAND LTD.
Reel/Frame 071788/0924 →
Continuity (2)
Provisional Application 63545153 · Oct 20, 2023
Related Publication 20250130721A1 · Apr 24, 2025
References Cited (86)
US 6355991B1 · Goff et al. · 2002 [cited by applicant]
US 6633996B1 · Suffin et al. · 2003 [cited by applicant]
US 6687851B1 · Somers et al. · 2004 [cited by applicant]
US 6691225B1 · Suffin · 2004 [cited by applicant]
US 6691257B1 · Suffin · 2004 [cited by applicant]
US 6708283B1 · Nevin et al. · 2004 [cited by applicant]
US 6718474B1 · Somers et al. · 2004 [cited by applicant]
US 6766413B2 · Newman · 2004 [cited by applicant]
US 6766479B2 · Edwards · 2004 [cited by applicant]
US 6802022B1 · Olson · 2004 [cited by applicant]
US 6813721B1 · Tetreault et al. · 2004 [cited by applicant]
US 6842823B1 · Olson · 2005 [cited by applicant]
US 6862689B2 · Bergsten et al. · 2005 [cited by applicant]
US 6874102B2 · Doody et al. · 2005 [cited by applicant]
US 6886171B2 · MacLeod · 2005 [cited by applicant]
US 6928583B2 · Griffin et al. · 2005 [cited by applicant]
US 6948010B2 · Somers et al. · 2005 [cited by applicant]
US 6970892B2 · Green et al. · 2005 [cited by applicant]
US 6971043B2 · McLoughlin et al. · 2005 [cited by applicant]
US 6996750B2 · Tetreault · 2006 [cited by applicant]
US 7065672B2 · Long et al. · 2006 [cited by applicant]
US 7496786B2 · Graham et al. · 2009 [cited by applicant]
US 7496787B2 · Edwards et al. · 2009 [cited by applicant]
US 7669073B2 · Graham et al. · 2010 [cited by applicant]
US 7904906B2 · Puthukattukaran et al. · 2011 [cited by applicant]
US 7958076B2 · Bergsten et al. · 2011 [cited by applicant]
US 8117495B2 · Graham · 2012 [cited by applicant]
US 8161311B2 · Wiebe · 2012 [cited by applicant]
US 8234521B2 · Graham et al. · 2012 [cited by applicant]
US 8271416B2 · Al-Biek et al. · 2012 [cited by applicant]
US 8312318B2 · Graham et al. · 2012 [cited by applicant]
US 8381012B2 · Wiebe · 2013 [cited by applicant]
US 8812907B1 · Bissett et al. · 2014 [cited by applicant]
US 9251002B2 · Manchek et al. · 2016 [cited by applicant]
US 9588844B2 · Bissett et al. · 2017 [cited by applicant]
US 9652338B2 · Bissett et al. · 2017 [cited by applicant]
US 9760442B2 · Bissett et al. · 2017 [cited by applicant]
US 10216598B2 · Haid et al. · 2019 [cited by applicant]
US 10360117B2 · Haid et al. · 2019 [cited by applicant]
US 11288143B2 · Horvath et al. · 2022 [cited by applicant]
US 11586514B2 · Pawlowski et al. · 2023 [cited by applicant]
US 20010042202A1 · Horrath et al. · 2001 [cited by applicant]
US 20020016935A1 · Bergsten et al. · 2002 [cited by applicant]
US 20020070717A1 · Pellegrino · 2002 [cited by applicant]
US 20030046670A1 · Marlow · 2003 [cited by applicant]
US 20030095366A1 · Pellegrino · 2003 [cited by applicant]
US 20060222125A1 · Edwards et al. · 2006 [cited by applicant]
US 20060222126A1 · Edwards et al. · 2006 [cited by applicant]
US 20060259815A1 · Graham et al. · 2006 [cited by applicant]
US 20060274508A1 · LaRiviere et al. · 2006 [cited by applicant]
US 20070011499A1 · Begsten et al. · 2007 [cited by applicant]
US 20070028144A1 · Graham et al. · 2007 [cited by applicant]
US 20070038891A1 · Graham · 2007 [cited by applicant]
US 20070106873A1 · Lally et al. · 2007 [cited by applicant]
US 20070174484A1 · Lussier et al. · 2007 [cited by applicant]
US 20090249129A1 · Femia · 2009 [cited by applicant]
US 20100088440A1 · Banks et al. · 2010 [cited by applicant]
US 20130058351A1 · Casado et al. · 2013 [cited by applicant]
US 20140250320A1 · Nyuunoya · 2014 [cited by examiner]
US 20150205688A1 · Haid et al. · 2015 [cited by applicant]
US 20150254082A1 · Vishwanathan · 2015 [cited by examiner]
US 20150263983A1 · Brennan et al. · 2015 [cited by applicant]
US 20150370666A1 · Breakstone et al. · 2015 [cited by applicant]
US 20170324609A1 · Hong et al. · 2017 [cited by applicant]
US 20180046480A1 · Dong et al. · 2018 [cited by applicant]
US 20180143885A1 · Dong et al. · 2018 [cited by applicant]
US 20180322082A1 · Breakstone · 2018 [cited by examiner]
US 20200050523A1 · Pawlowski · 2020 [cited by examiner]
US 20210034250A1 · Mizuno · 2021 [cited by examiner]
US 20210034447A1 · Horvath et al. · 2021 [cited by applicant]
US 20210034464A1 · Dailey et al. · 2021 [cited by applicant]
US 20210034465A1 · Haid et al. · 2021 [cited by applicant]
US 20210034483A1 · Haid · 2021 [cited by applicant]
US 20210034523A1 · Dailey · 2021 [cited by applicant]
US 20210037092A1 · Cao · 2021 [cited by applicant]
US 20220147428A1 · Gupta · 2022 [cited by examiner]
US 20230185681A1 · Pawlowski et al. · 2023 [cited by applicant]
US 20230291721A1 · Robinson · 2023 [cited by applicant]
US 20230393956A1 · Guim Bernat · 2023 [cited by examiner]
US 20240104251A1 · Paulraj · 2024 [cited by examiner]
US 20240176739A1 · Alden et al. · 2024 [cited by applicant]
WO 2022007644A1 · 2022 [cited by applicant]
Dong et al., “COLO: COarse-grain LOck-stepping Virtual Machine for Non-stop Service”, SoCC'13, Oct. 1-3, 2013, Santa Clara, California, USA, ACM 978-1-4503-2428-1; 16 pages. [cited by applicant]
Dong et al., “COLO: COarse-grain LOck-stepping Virtual Machine for Non-stop Service”, https://www.linux-kvm.org/images/1/1d/Kvm-forum-2013-COLO.pdf; 24 pages. [cited by applicant]
PCT International Search Report and PCT Written Opinion for PCT International Patent Application No. PCT/US2024/051799; mailing date Apr. 22, 2025; (20 pages). [cited by applicant]
PCT Invitation to Pay Additional Fees for PCT International Patent Application No. PCT/US2024/051799; mailing date Jan. 28, 2025; (12 pages). [cited by applicant]