Incoherent Memory Emulation for Software Coherency Testing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current implementations of memory devices in virtualized environments fail to accurately test software coherency primitives due to the masking effect of hardware coherency, leading to potential failures in physical multi-server shared memory environments where hardware-based coherency is absent.
Innovation Solution
A methodology is developed to emulate incoherent memory behavior by storing data to a first memory copy location, copying it to a shared memory location, and duplicating it to a second memory copy location, allowing for the detection of errors in software coherency primitives and ensuring their correct execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If hardware coherency is used in virtualized environments, then memory access simplicity is improved, but testing accuracy of software coherency primitives deteriorates
Solution Approach 1:
The patent introduces a coherency emulation layer that acts as an intermediary between the virtualized environment and the software coherency primitives. This emulation layer selectively enables or disables hardware coherency based on testing requirements, allowing accurate testing of software coherency primitives while maintaining ease of operation in production environments.
Solution Approach 2:
The system dynamically adjusts the coherency behavior of the emulation layer based on the testing context. When testing software coherency primitives, the emulation layer disables hardware coherency to create incoherent conditions. When not testing, it enables hardware coherency for simple memory access, thus adapting to different operational requirements.
2Measurement precision
If hardware coherency is disabled to test software coherency primitives, then testing accuracy is improved, but system complexity increases
Solution Approach 1:
The coherency emulation layer serves as an intermediary that manages the complexity of disabling and enabling hardware coherency. It provides a unified interface for testing software coherency primitives without requiring changes to the underlying hardware or virtualization infrastructure, thus containing system complexity within a manageable layer.
Solution Approach 2:
The emulation layer creates a virtual copy of the memory coherency behavior that can be independently controlled. This copy allows testing of software coherency primitives in isolation from the actual hardware coherency mechanisms, reducing system complexity by separating testing concerns from production concerns.
3Productivity
If software coherency primitives are tested in hardware-coherent environments, then resource utilization is improved, but testing reliability deteriorates
Solution Approach 1:
The emulation layer dynamically switches between hardware-coherent and hardware-incoherent modes based on testing requirements. This allows resource utilization to be optimized in production environments while ensuring testing reliability when needed, resolving the contradiction between productivity and testing reliability.
Solution Approach 2:
The system performs preliminary configuration of the emulation layer to establish the appropriate coherency mode before testing begins. This preliminary action ensures that the testing environment is properly prepared with the correct coherency settings, thereby ensuring testing reliability without compromising resource utilization in production.
Data Source
AI summary
In some implementations, an emulation system may store a set of data to a first memory copy location of an emulated environment that is associated with a first virtual host system. The emulation system may copy the set of data from the first memory copy location to a shared memory location of the emulated environment. The emulation system may copy the set of data from the shared memory location to a second memory copy location of the emulated environment that is associated with a second virtual host system. The emulation system may load the set of data from the second memory copy location.


