Application Data Placement Across Memory Tiers at Startup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computing systems face inefficiencies in managing initial data distribution for application processes, particularly in mobile devices, leading to suboptimal performance and resource utilization.
Innovation Solution
Implementing a system where an operating system or hypervisor scores and strategically places application components in different memory types based on criticality, using machine learning and expectation-maximization algorithms to optimize memory usage and user experience.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If all application components are loaded into high-performance memory, then application performance is improved, but memory resource consumption increases
Solution Approach 1:
The patent applies local quality by differentiating memory allocation based on component criticality. Critical components (those on the critical path) are placed in high-performance memory (e.g., DRAM), while non-critical components are placed in lower-performance memory (e.g., flash memory). This selective placement optimizes performance for essential operations while conserving expensive high-performance memory resources.
Solution Approach 2:
The system performs preliminary analysis during application initialization to identify which components are on the critical path and require high-performance memory. By scoring and categorizing components before full loading, the system pre-determines optimal memory placement, avoiding the need to load all components into high-performance memory while ensuring critical ones are readily accessible.
2Device complexity
If memory allocation is static, then system complexity is reduced, but adaptability to different usage patterns decreases
Solution Approach 1:
The patent implements dynamic memory allocation where the system continuously monitors application usage patterns and adjusts memory placement decisions accordingly. The expectation-maximization algorithm learns from observed usage patterns and dynamically updates which components should be placed in high-performance memory, allowing the system to adapt to changing usage patterns without manual reconfiguration.
Solution Approach 2:
The system incorporates feedback mechanisms where usage patterns are monitored and fed back into the memory allocation decision-making process. The expectation-maximization algorithm uses observed feedback about component access patterns to refine its predictions and improve future memory placement decisions, creating a closed-loop adaptive system.
Data Source
AI summary
In a mobile device, processes of an application can be monitored and scored for initial data distribution. Specifically, a method can include monitoring processes of an application, and scoring objects or components used by the processes to determine placement of the objects or components in memory during initiation of the application. The method can also include, during initiation of the application, loading, into a first portion of the memory, at least partially, the objects or components scored at a first level. The method can also include, during initiation of the application, loading, into a second portion of the memory, at least partially, the objects or components scored at a second level. The objects or components scored at the second level can be less critical to the application than the objects or components scored at the first level.


