Mutual-Exclusion Algorithms Resilient to Transient Memory Faults
First Claim
1. A system comprising:
- one or more processors;
one or more memories;
a first thread, stored in the one or more memories and executable on the one or more processors, the first thread including a critical section;
a second thread, stored in the one or more memories and executable on the one or more processors, the second thread also including a critical section; and
an execution engine, stored in the one or more memories and configured to cause execution of the first and second threads on the one or more processors using a fault-resistant, mutual-exclusion algorithm that at least prevents simultaneous execution of the critical section of the first thread and the critical section of the second thread after the system experiences a soft error and when (i) one of the first and second threads is in its critical section, (ii) the other of the first and second threads is waiting in a loop to enter its critical section, and (iii) there is no contention between the first and second threads.
3 Assignments
0 Petitions
Accused Products
Abstract
Techniques for implementing mutual-exclusion algorithms that are also fault-resistant are described herein. For instance, this document describes systems that implement fault-resistant, mutual-exclusion algorithms that at least prevent simultaneous access of a shared resource by multiple threads when (i) one of the multiple threads is in its critical section, and (ii) the other thread(s) are waiting in a loop to enter their respective critical sections. In some instances, these algorithms are fault-tolerant to prevent simultaneous access of the shared resource regardless of a state of the multiple threads executing on the system. In some instances, these algorithms may resist (e.g., tolerate entirely) transient memory faults (or “soft errors”).
-
Citations
20 Claims
-
1. A system comprising:
-
one or more processors; one or more memories; a first thread, stored in the one or more memories and executable on the one or more processors, the first thread including a critical section; a second thread, stored in the one or more memories and executable on the one or more processors, the second thread also including a critical section; and an execution engine, stored in the one or more memories and configured to cause execution of the first and second threads on the one or more processors using a fault-resistant, mutual-exclusion algorithm that at least prevents simultaneous execution of the critical section of the first thread and the critical section of the second thread after the system experiences a soft error and when (i) one of the first and second threads is in its critical section, (ii) the other of the first and second threads is waiting in a loop to enter its critical section, and (iii) there is no contention between the first and second threads. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system comprising:
-
one or more processors; one or more memories; an execution engine, stored in the one or more memories and configured to cause execution of first and second threads on the one or more processors using a fault-resistant, mutual-exclusion algorithm that substantially prevents simultaneous access to a common resource by the first and second threads after the system experiences m soft errors, the fault-resistant, mutual-exclusion algorithm substantially preventing the simultaneous access of the resource at least partly by satisfying the hamming-distance-(m+1) property. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A system comprising:
-
one or more processors; one or more memories; a resource, stored in the one or more memories and accessible to first and second threads stored in the one or more memories and executing on the one or more processors, the first and second threads each including a respective critical section of code that accesses the resource; and an execution engine, stored in the one or more memories and configured to cause execution of the first and second threads on the one or more processors using a fault-resistant, mutual-exclusion algorithm, wherein the fault-resistant, mutual-exclusion algorithm; prevents simultaneous access of the resource by the first and second threads after the system experiences m soft errors when (i) one of the first and second threads is in its critical section, (ii) the other of the first and second threads is waiting in a loop to enter its critical section, and (iii) there is no contention between the first and second threads; satisfies the hamming-distance-(m+1) property; and instructs the first and the second threads to engage in a handshake that, when completed, enables the first thread or the second thread to enter its respective critical section. - View Dependent Claims (18, 19, 20)
-
Specification