Runtime Software Element Mapping for Partial Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current systems that execute software from non-volatile memory face challenges in efficient software updates, as they often require replacing entire software, which is costly in terms of memory usage and power consumption, especially when non-volatile memory is not rewritable.
Innovation Solution
A method that utilizes a runtime component to map software element identifiers to corresponding software elements, allowing for partial updates by storing updated software elements in non-volatile or further memory and updating mapping information, enabling patching of new or old code without replacing the entire software, while maintaining existing mappings and reducing the need for rebooting the device.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If entire software is replaced during updates, then software functionality is updated, but memory usage increases and power consumption increases
Solution Approach 1:
The patent segments software into discrete software elements (functions, methods, classes, objects) that can be independently updated. The runtime component maintains a mapping between software element identifiers and their physical locations in non-volatile memory, enabling selective replacement of only the necessary software elements rather than the entire software, thereby reducing power consumption during updates.
Solution Approach 2:
The patent implements partial software updates by allowing replacement of only specific software elements that need updating. The runtime component identifies and replaces only the necessary software elements while leaving others intact, avoiding the excessive action of replacing entire software and thus reducing memory usage and power consumption.
2Reliability
If entire software is replaced during updates, then software functionality is updated, but memory capacity requirements increase
Solution Approach 1:
The patent segments software into discrete software elements that can be independently managed and updated. This segmentation allows the system to store and update only the necessary software elements in non-volatile memory, reducing the overall memory capacity requirements compared to storing and replacing entire software.
Solution Approach 2:
The patent enables discarding of old software elements after successful updates. The runtime component maintains mappings to current software element locations, allowing the system to recover memory space by removing references to replaced software elements, thus optimizing memory capacity utilization.
3Use of energy by moving object
If non-volatile memory is used for software execution, then power consumption is reduced, but software update complexity increases
Solution Approach 1:
The patent introduces a runtime component as an intermediary between the software elements stored in non-volatile memory and the processor. This runtime component maintains and manages the mapping between software element identifiers and their physical locations, handling the complexity of partial updates while allowing the rest of the system to remain simple and power-efficient.
Solution Approach 2:
The runtime component provides self-service capabilities by automatically managing the mapping information and facilitating partial software updates without requiring complex external update mechanisms. The system can perform updates in-place by updating only the necessary mapping entries, reducing overall system complexity.
4Quantity of substance
If software elements are partially updated, then memory usage is reduced, but mapping management complexity increases
Solution Approach 1:
The runtime component serves as an intermediary that manages the mapping between software element identifiers and their physical locations in non-volatile memory. This centralized mapping management simplifies partial updates by providing a single point of control, reducing the overall complexity despite the granular nature of partial updates.
Solution Approach 2:
The runtime component maintains a copy of the mapping information in volatile memory, allowing fast access and updates without modifying the actual software elements in non-volatile memory. This copying approach enables efficient mapping management while keeping the primary software storage simple and power-efficient.
Data Source
AI summary
A data processing device has a processor which executes software directly from non-volatile memory. The processor has a runtime component which dynamically maps software element identifiers specified by the software to corresponding software elements in memory. Mapping information is used to determine which software elements identifiers correspond to which software elements. This provides a level of indirection which can be used to make software updates more efficient, by updating only parts of the software while leaving old parts of the software as they are. Updated software elements can be stored to memory and the mapping information updated to point to the new elements, while existing mappings may be retained.


