Fault Tolerant Virtual Machine Interrupt Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current fault-tolerant systems face high processing loads due to complex timing adjustments and excessive hardware usage, especially when implementing redundancy functions using general-purpose programming languages on general-purpose computers.
Innovation Solution
A fault-tolerant system comprising a primary virtual machine with a synchronizing information generator and a first interrupt blocker, and a secondary virtual machine with a synchronous execution unit and a second interrupt blocker, which execute bytecode and manage interrupts to reduce processing redundancy and program size, allowing the system to operate with a low load without complicated timing adjustments.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If complex timing adjustments are implemented to synchronize primary and secondary virtual machines, then fault tolerance reliability is improved, but processing load and device complexity increase
Solution Approach 1:
The patent introduces an interrupt blocker as an intermediary component that manages interrupt timing between primary and secondary virtual machines. Instead of implementing complex timing adjustment mechanisms, the interrupt blocker simply delays interrupt transmission to the secondary VM until the primary VM has completed its current instruction execution. This mediator approach simplifies the synchronization mechanism while maintaining fault tolerance reliability.
Solution Approach 2:
The patent changes the timing parameter of interrupt transmission by introducing a delay mechanism. The interrupt is not transmitted immediately to the secondary VM but is held until the primary VM completes its current instruction. This parameter change (timing delay) ensures that the secondary VM receives interrupts at appropriate times without requiring complex timing adjustment logic.
2Adaptability or versatility
If redundancy functions are implemented using general-purpose programming languages on general-purpose computers, then system adaptability is improved, but processing load increases
Solution Approach 1:
The patent extracts and blocks unnecessary interrupts from being transmitted to the secondary virtual machine. The interrupt blocker identifies and blocks interrupts that would occur during instruction execution in the primary VM, preventing redundant processing in the secondary VM. This extraction of harmful elements (unnecessary interrupts) reduces processing load while maintaining system adaptability.
3Speed
If interrupts are transmitted immediately to the secondary virtual machine, then interrupt response speed is improved, but execution synchronization accuracy deteriorates
Solution Approach 1:
The patent applies preliminary action by blocking interrupts before they are transmitted to the secondary virtual machine. The interrupt blocker预先 (in advance) determines whether an interrupt should be blocked based on the primary VM's current execution state. This preliminary blocking action ensures that interrupts are only transmitted at appropriate times, maintaining execution synchronization accuracy while still providing timely interrupt response when needed.
Data Source
AI summary
A fault tolerant system includes a primary virtual machine and a secondary virtual machine. The primary virtual machine includes a synchronizing information generator and a first interrupt blocker. The synchronizing information generator executes bytecode and outputs synchronizing information based on information related to the executed bytecode. The first interrupt blocker blocks an interrupt inputted from an external location. The secondary virtual machine includes a synchronous execution unit that executes the bytecode based on the synchronizing information and a second interrupt blocker that blocks the interrupt. When the interrupt is acquired, the synchronizing information generator executes the bytecode based on the interrupt. The first interrupt blocker outputs the interrupt to the synchronizing information generator when the interrupt is inputted during execution of an instruction, included in the bytecode, to accept the interrupt.


