Memory Partition Management via Shared Extent Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing embedded systems face challenges in managing memory storage for software applications due to increased memory requirements with each updated version, especially when maintaining multiple sets of partitions for redundancy.
Innovation Solution
The system employs a method of generating multiple partition tables that map to a single set of memory partitions, allowing software applications to access partitions via a particular table without being aware of which partitions are duplicated, thereby reducing memory requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple independent sets of partitions are maintained for redundancy and software updates, then system reliability is improved, but memory requirements increase to double or more
Solution Approach 1:
The patent merges multiple partition tables (first partition table and second partition table) to reference a single shared memory space. Instead of maintaining completely separate partition sets, the system combines the partition management structures while sharing the underlying memory resources, thereby reducing total memory requirements while preserving redundancy capabilities through the multiple partition table architecture.
Solution Approach 2:
The single memory space serves multiple functions by being referenced by both the first partition table and second partition table. This memory space can be used for executing the first version of software, storing the second version of software, and providing fault tolerance through the partition switching mechanism, thereby achieving multi-functionality with reduced memory allocation.
2Reliability
If memory is allocated for multiple partition sets, then fault tolerance is achieved, but embedded system constraints on power, size, and weight are violated
Solution Approach 1:
The patent merges the storage requirements for multiple partition sets into a single shared memory space that is referenced by multiple partition tables. This consolidation reduces the physical memory capacity needed in the embedded system, thereby reducing system size while maintaining the fault tolerance capabilities provided by having multiple partition tables available for switching.
3Adaptability or versatility
If memory is allocated for multiple partition sets, then software update capability is achieved, but embedded system constraints on power, size, and weight are violated
Solution Approach 1:
The single memory space referenced by both partition tables serves multiple purposes: it stores the first version of software for execution, stores the second version of software for updates, and provides the target space for seamless software transitions. This multi-functional use of shared memory enables software update capability while minimizing the physical memory requirements in the embedded system.
4Adaptability or versatility
If memory requirements increase with each software update version, then new features are added, but maintaining multiple partition sets becomes infeasible
Solution Approach 1:
The patent merges the partition management approach by using multiple partition tables that reference a shared memory space. As software updates increase functionality and memory requirements, this merged approach allows the system to accommodate larger software versions in the shared memory while still maintaining the partition switching capability for updates and fault tolerance, making it feasible to maintain updated partition sets even as memory requirements grow.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Embodiments of the present disclosure set forth techniques for managing memory partitions in a computing system. The techniques include generating a first entry for a first partition table associated with a first instance of a software application, wherein the first entry is associated with a first memory partition that includes a first memory extent; determining that a first data block referenced by the first memory partition is shared with a second instance of the software application; and generating a second entry for a second partition table associated with a second instance of the software application, wherein the second entry is associated with the first memory partition that includes the first memory extent. As a result, the two partition tables have identical mapping allowing switching between partition tables.