Task Migration in Multi-Core Platforms via Code Streaming
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current multi-core platforms face inefficiencies in task migration due to high resource migration costs and inability to handle dynamic load changes and application variations, particularly in real-time tasks like multimedia, where traditional methods like total copy, pre-copy, and demand page methods are not suitable for real-time performance and increase overhead.
Innovation Solution
A method for migrating tasks between cores in a multi-core platform by transmitting task codes and status information while the task is still being performed, allowing for dynamic core reassignment without stopping the task, using a combination of local memory and direct memory access to minimize memory content migration and reduce downtime.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If task migration is implemented to dynamically assign tasks to cores, then core utilization and adaptability to load changes are improved, but resource migration costs and overhead increase
Solution Approach 1:
The patent applies preliminary action by pre-copying task codes and data to the destination core before the actual task migration is completed. This allows the task to be resumed on the new core without interruption, reducing migration overhead and avoiding the need to wait for complete data transfer, thus improving adaptability while minimizing resource migration costs
Solution Approach 2:
The patent implements dynamics by enabling tasks to migrate between cores during execution rather than requiring task completion before migration. The system dynamically adjusts task assignment based on real-time load conditions, allowing flexible core utilization while reducing the need for complete data replication, thereby lowering migration costs
2Reliability
If task migration stops the task execution to ensure data consistency, then data integrity is maintained, but task completion time and system response time increase
Solution Approach 1:
The patent uses preliminary action by pre-copying essential task data and codes to the destination core before stopping execution. This allows the task to be quickly resumed on the new core with minimal data transfer required during the transition, maintaining data integrity while minimizing the time loss associated with migration
Solution Approach 2:
The patent achieves continuity of useful action by overlapping the task execution on the source core with the data copying process to the destination core. This allows data transfer to occur during task execution rather than requiring a complete stop, thus maintaining data integrity while avoiding additional time loss from execution pauses
3Productivity
If traditional migration methods (total copy, pre-copy, demand page) are used, then data transfer is managed, but real-time performance is compromised and overhead increases
Solution Approach 1:
The patent applies partial action by transferring only the essential task codes and critical data needed for immediate resumption, rather than copying all task data. This selective migration approach maintains real-time performance by minimizing transfer time while ensuring the task can continue without interruption, avoiding the overhead of complete data copying
Solution Approach 2:
The patent implements continuity of useful action by performing data copying operations during task execution rather than requiring task suspension. This allows overlapping of data transfer and execution, maintaining real-time performance while improving data transfer efficiency, thus avoiding the time loss associated with traditional migration methods
Data Source
AI summary
Provided are a method and apparatus for migrating a task in a multi-core platform including a plurality of cores. The method includes transmitting codes of the task that is being performed in a first core among the plurality of cores to a second core among the plurality of cores, the transmitting of the codes being performed while performing the task at the first core, and resuming performing of the task in the second core based on the transmitted codes.


