Methods and systems with transaction-level lockstep
First Claim
1. A method for redundant operation of a plurality of processors, the plurality of processors including at least a first processor and a second processor, the method comprising:
- executing a same set of instructions in parallel on the first and second processors, each of the first and second processors coupled to a respective first and second status registers;
polling only the first status register for indication of a first transaction for a peripheral device being issued from execution of an instruction by the first processor; and
in response to the first status register indicating the first access transaction, performing steps including;
suspending operation of the first processor;
polling the second status register for indication of a second access transaction being issued from execution of the instruction by the second processor;
in response to the second status register indicating the second transaction and in response to the first access transaction being a write transaction, waiting to issue the write transaction to the peripheral device until the second processor executes the instruction and issues a second access transaction that is equal to the write transaction; and
in response to the second status register indicating the second transaction and in response to the first access transaction being a read transaction, waiting to issue the read transaction to the peripheral device until the second processor executes the instruction.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems for redundant operation of a first and second processor are provided. A set of instructions is executed in parallel on the first and second processors. In response to a first access transaction for a peripheral device being issued from execution of an instruction by the first processor, the first processor suspends operation. In response to the first access transaction being a write transaction, the write transaction is not issued to the peripheral device until the second processor executes the instruction and issues a second access transaction that is equal to the write transaction. In response to the first access transaction being a read transaction, the read transaction is not issued to the peripheral device until the second processor executes the instruction.
43 Citations
20 Claims
-
1. A method for redundant operation of a plurality of processors, the plurality of processors including at least a first processor and a second processor, the method comprising:
-
executing a same set of instructions in parallel on the first and second processors, each of the first and second processors coupled to a respective first and second status registers; polling only the first status register for indication of a first transaction for a peripheral device being issued from execution of an instruction by the first processor; and in response to the first status register indicating the first access transaction, performing steps including; suspending operation of the first processor; polling the second status register for indication of a second access transaction being issued from execution of the instruction by the second processor; in response to the second status register indicating the second transaction and in response to the first access transaction being a write transaction, waiting to issue the write transaction to the peripheral device until the second processor executes the instruction and issues a second access transaction that is equal to the write transaction; and in response to the second status register indicating the second transaction and in response to the first access transaction being a read transaction, waiting to issue the read transaction to the peripheral device until the second processor executes the instruction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computing system, comprising:
-
a first processor and a second processor, the computing system configured to execute a same set of instructions in parallel on the first and second processors; first and second buffer memories coupled to the first and second processors, respectively, and configured to buffer access transactions issued by the first processor and second processor for a plurality of peripheral device addresses, the first and second buffer memories including first and second status registers; wherein the first processor is configured to suspend operation in response to execution of an instruction that issues a first access transaction to one of the peripheral device addresses; a controller circuit coupled to the first and second buffer memories and configured to; poll only the first status register for indication of a first transaction for a peripheral device being issued from execution of an instruction by the first processor; in response to the first status register indicating the first access transaction, performing steps including; polling the second status register for indication of a second access transaction being issued from execution of the instruction by the second processor; in response to the second status register indicating the second transaction and in response to the first access transaction being a write transaction, wait to issue the write transaction to the one of the peripheral device addresses until the second processor executes the instruction and issues a second access transaction that is equal to the write transaction; and in response to the second status register indicating the second transaction and in response to the first access transaction being a read transaction, wait to issue the read transaction to the one of the peripheral device addresses until the second processor executes the instruction. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A programmable integrated circuit (IC), comprising:
-
programmable logic resources; routing resources coupled to the programmable logic resources; a plurality of processors including at least a first processor and a second processor, the first and second processors configured to execute a same set of instructions in parallel; first and second buffer memories coupled to the first and second processors, respectively, and configured to buffer access transactions issued by the first and second processors for a plurality of peripheral device addresses, the first and second buffer memories including first and second status registers; wherein the first processor is configured to suspend operation in response to execution of an instruction that issues a first access transaction to one of the peripheral device addresses; and a controller circuit coupled to the first and second buffer memories and configured to; poll only the first status register for indication of a first transaction for a peripheral device being issued from execution of an instruction by the first processor; in response to the first status register indicating the first access transaction, performing steps including; polling the second status register for indication of a second access transaction being issued from execution of the instruction by the second processor; in response to the second status register indicating the second transaction and in response to the first access transaction being a write transaction, wait to issue the write transaction until the second processor executes the instruction and issues a second access transaction that is equal to the write transaction; and in response to the second status register indicating the second transaction and in response to the first access transaction being a read transaction, wait to issue the read transaction until the second processor executes the instruction. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification