Compiler-Driven Memory Address Mapping Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The unalterable mapping relationship between logical and device addresses in memory systems leads to increased miss ratios in memory accesses, resulting in inefficient memory operations.

Innovation Solution

A memory system where a compiler generates instructions and device addresses for memory allocation, allowing for optimization of memory access by adjusting the mapping between logical and device addresses, and a tuner evaluates performance metrics to determine optimal parameters for memory allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the mapping relationship between logical addresses and device addresses is constructed within the memory controller, then the mapping relationship is fixed and cannot be altered, but this leads to increased miss ratio and reduced memory access efficiency

Engineering Contradiction:
Improvemapping relationship stabilityVSAvoidmemory access efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies dynamics by making the address mapping relationship changeable rather than fixed. The compiler generates device addresses based on logical addresses at compile time, allowing the mapping to be optimized for specific access patterns. This dynamic approach enables the system to adapt the mapping relationship to minimize miss ratios while maintaining reliability through the structured compilation process.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies preliminary action by performing address mapping optimization during the compilation phase before the program executes. The compiler analyzes access patterns and generates optimized device address mappings in advance, so that when the program runs, the memory access efficiency is already optimized without requiring runtime adjustments.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If a large search space is used within the memory device, then more memory space is available, but the miss ratio of missed accesses increases

Engineering Contradiction:
Improvememory space capacityVSAvoidmemory access hit ratio
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent applies parameter changes by transforming the address space parameters through the compiler. The compiler maps logical addresses to device addresses using optimized transformations that consider access patterns, effectively changing the address space parameters to minimize the search space while maintaining the required memory capacity. This reduces miss ratios without sacrificing memory space availability.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If random memory accesses are made to the memory device, then flexibility in access patterns is achieved, but the miss ratio increases due to large search space

Engineering Contradiction:
Improveaccess pattern flexibilityVSAvoidmemory access efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by analyzing and optimizing access patterns during compilation. The compiler examines the program's memory access patterns in advance and generates optimized device address mappings that anticipate future accesses, reducing miss ratios while preserving the flexibility of random access patterns during execution.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11263131B2System and method for allocating memory space
Publication Date: 2022.03.01 ALIBABA GROUP HOLDING LTD
  • US11263131B2 patent drawing
  • US11263131B2 patent drawing
  • US11263131B2 patent drawing

AI summary

Embodiments of the disclosure provide systems and methods for allocating memory space in a memory device. The system can include: a memory device for providing the memory space; and a compiler component configured for: receiving a request for allocating a data array having a plurality of data elements in the memory device, wherein each of the plurality of data elements has a logical address; generating an instruction for allocating memory space for the data array in the memory device based on the request; generating device addresses for the plurality of data elements in the memory device based on logical addresses of the plurality of data elements; and allocating the memory space for the data array in the memory device based on the device addresses and the instruction.