Application Data Placement Across Memory Tiers at Startup

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Productivity

If all application components are loaded into high-performance memory, then application performance is improved, but memory resource consumption increases

Engineering Contradiction:
Improveapplication performanceVSAvoidmemory resource consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

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.

Inventive Principle:
Principle #3Local quality

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.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If memory allocation is static, then system complexity is reduced, but adaptability to different usage patterns decreases

Engineering Contradiction:
Improvememory management complexityVSAvoidadaptability to usage patterns
Core Design Contradiction:
Device complexityVSAdaptability or versatility

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12468545B2Initial data distribution for different application processes
Publication Date: 2025.11.11 MICRON TECHNOLOGY INC
  • US12468545B2 patent drawing
  • US12468545B2 patent drawing
  • US12468545B2 patent drawing

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.