Virtual Machine Emulating Multi-Core Processor for Application Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-core applications face inefficiencies and potential errors when operating on processors with a different number of cores, either underutilizing available capacity when more cores are present or overloading fewer cores, leading to suboptimal performance and wasted resources.

Innovation Solution

A virtual machine is introduced to emulate an N-core processor, allowing an N-core application to operate efficiently on an M-core processor by dynamically reassigning work portions based on core availability, interaction, and workload, thereby hiding differences between the expected and available core counts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If an N-core application is executed directly on an M-core processor without a virtual machine, then the application can run with simple architecture, but resource utilization becomes inefficient when M ≠ N (either cores are idle or work is overloaded)

Engineering Contradiction:
Improveresource utilizationVSAvoidsystem architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A virtual machine is introduced as an intermediary layer between the N-core application and the M-core processor. The virtual machine manager dynamically assigns application work portions to processor cores, translating the application's expected N cores to the actual M cores available. This mediator resolves the core count mismatch without requiring modifications to the application itself, thereby improving resource utilization while maintaining reasonable system architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the operating system performs ad hoc re-assignment of work portions when N ≠ M, then the system maintains simplicity, but efficiency deteriorates due to lack of optimized assignment strategies

Engineering Contradiction:
Improveapplication execution efficiencyVSAvoidassignment management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The virtual machine implements dynamic work portion assignment where the virtual machine manager continuously monitors and adjusts the mapping between application work portions and processor cores based on current system state. This dynamic approach optimizes execution efficiency by adapting to varying workloads and core availability, rather than using static ad hoc assignment methods.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of work portion assignment from fixed ad hoc mapping to dynamic optimized mapping. The virtual machine manager modifies assignment parameters based on core count differences, workload characteristics, and performance requirements, thereby improving execution efficiency without fundamentally changing the underlying processor architecture.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If idle cores are left unused when M > N, then the application runs safely within its designed core count, but capacity is wasted and performance opportunities are lost

Engineering Contradiction:
Improveprocessing throughputVSAvoidapplication stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

When the processor has more cores than the application expects (M > N), the virtual machine enables partial utilization of the additional cores by dividing application work portions further across the available M cores. This excessive action approach allows the system to use more cores than the application was originally designed for, thereby improving processing throughput while maintaining application stability through controlled work portion distribution.

Inventive Principle:
Principle #16Partial or excessive action

4Adaptability or versatility

If work portions are re-assigned to fewer cores when M < N, then the application can run on the available hardware, but inefficiencies and potential errors occur due to non-optimal assignment

Engineering Contradiction:
Improvehardware compatibilityVSAvoidexecution correctness
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The virtual machine acts as an intermediary that handles the core count mismatch between N-core applications and M-core processors where M < N. It performs intelligent consolidation of work portions and assigns them to the available M cores using optimized strategies, thereby ensuring hardware compatibility while maintaining execution correctness through controlled work portion merging and assignment.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7406407B2Virtual machine for operating N-core application on M-core processor
Publication Date: 2008.07.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7406407B2 patent drawing
  • US7406407B2 patent drawing
  • US7406407B2 patent drawing

AI summary

A virtual machine is instantiated on an M-core processor, and an N-core application is instantiated on the virtual machine such that the virtual machine emulates an N-core processor to the N-core application. Thus, the virtual machine hides difference between the N cores expected by the application and the M cores available from the processor.