Memory Allocator LLC Slice Mapping for CPU Cores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory management systems do not efficiently allocate memory to applications based on the hierarchical memory system of CPUs, leading to suboptimal performance and increased power consumption due to inefficient data access times across different memory levels.

Innovation Solution

A method and memory allocator that dynamically allocate memory by determining if requested memory is available in a faster memory unit and mapping it to the appropriate Last Level Cache (LLC) slice associated with the CPU core, thereby optimizing data access times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If memory is allocated without considering LLC slice mapping, then memory allocation is simple and fast, but data access latency increases and performance decreases

Engineering Contradiction:
Improveapplication performanceVSAvoidmemory allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory allocator performs preliminary actions by determining LLC slice mappings for candidate memory regions before final allocation. This advance planning ensures that allocated memory is optimally mapped to LLC slices, reducing subsequent data access latency without requiring complex runtime decisions.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the traditional hash function-based memory-to-LLC mapping mechanism with a system that uses predetermined mappings between memory regions and LLC slices. This substitution allows the allocator to make informed decisions about memory allocation based on known mapping relationships, improving performance while managing complexity.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Speed

If data is fetched from slower memory levels, then memory capacity is sufficient, but data access time increases significantly

Engineering Contradiction:
Improvedata access timeVSAvoidmemory capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent applies local quality by creating specific mappings between certain memory regions and corresponding LLC slices. Instead of uniform memory allocation, the system ensures that frequently accessed data resides in memory regions that are locally optimized for fast access to specific CPU cores, thereby improving data access speed while maintaining overall memory capacity.

Inventive Principle:
Principle #3Local quality

3Use of energy by moving object

If memory allocation ignores CPU core-LLC slice association, then allocation is simpler, but power consumption increases due to inefficient access patterns

Engineering Contradiction:
Improvepower consumptionVSAvoidmemory allocation ease
Core Design Contradiction:
Use of energy by moving objectVSEase of operation

Solution Approach 1:

The patent replaces the conventional memory allocation mechanism that ignores CPU-LLC relationships with a new system that incorporates predetermined mappings between memory regions and LLC slices. This substitution enables the allocator to make energy-efficient decisions by directing memory allocations to regions optimally associated with the executing CPU core, reducing power consumption while managing allocation complexity.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS12293227B2Memory allocation in a hierarchical memory system
Publication Date: 2025.05.06 TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
  • US12293227B2 patent drawing
  • US12293227B2 patent drawing
  • US12293227B2 patent drawing

AI summary

A memory allocator in a computer system comprising a plurality of CPU cores (5101-5104) and a first (530) and a second (5120) memory unit having different data access times and wherein each one of the first and the second memory units is divided into memory portions wherein each memory portion (SLICE 0-3) in the second memory unit is associated with at least one memory portion (A-G) in the first memory unit, and wherein each memory portion in the second memory unit is associated with a CPU core. If at least a predetermined number of memory portions in the first memory unit being part of the available requested memory is associated with the memory portion in the second memory unit that is associated with the CPU core on which the requesting application is running, the requested available memory is allocated to the requesting application.