Variable-Size Load Unit Cache Controller for Embedded Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In embedded information systems, particularly in vehicles, the memory hierarchy faces challenges with large random access memory (RAM) systems that have limited bandwidth and high latency, necessitating efficient cache management to reduce load operations and minimize cache misses, especially when dealing with variable-sized software applications.

Innovation Solution

A cache management system utilizing a hardware-based cache controller that employs variable-sized load units and decoupled load requests and cache eviction operations, observing software execution to identify and prioritize valuable data elements, thereby optimizing cache content and reducing bandwidth and latency limitations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional fixed-size cache lines are used, then cache management is simpler, but bandwidth efficiency deteriorates due to loading unnecessary data

Engineering Contradiction:
Improvebandwidth efficiencyVSAvoidcache management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the application code into variable-sized load units (LUs) that can be independently loaded into the cache. This segmentation allows the system to load only the necessary portions of code, improving bandwidth efficiency by avoiding the transfer of unnecessary data while maintaining manageable complexity through structured unitization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic load unit sizing where the cache controller can adjust the size of load units based on actual usage patterns and requirements. This dynamic adaptation enables optimal bandwidth utilization by loading larger units when beneficial and smaller units when needed, while the system manages complexity through runtime decision-making mechanisms.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If larger load units are used, then transaction overhead is reduced, but cache miss rate increases due to loading unwanted data

Engineering Contradiction:
Improvetransaction overheadVSAvoidcache hit rate
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent employs preliminary actions by pre-loading code into the cache before it is actually executed. The cache controller proactively loads load units based on predicted usage patterns, ensuring that needed code is already available in the cache when required, thereby reducing cache misses without unnecessarily loading unwanted data through intelligent prediction mechanisms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms where the cache controller monitors actual code execution patterns and usage statistics. This feedback information is used to dynamically adjust load unit selection and sizing decisions, optimizing the balance between reducing transaction overhead and maintaining high cache hit rates by learning from actual runtime behavior.

Inventive Principle:
Principle #23Feedback

3Quantity of substance

If main memory is reduced in size, then cost is reduced, but bandwidth and latency limitations worsen

Engineering Contradiction:
Improvememory sizeVSAvoidaccess bandwidth
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent uses preliminary action by implementing a cache that proactively loads code into fast memory before it is needed. This pre-loading mechanism allows the system to compensate for limited main memory capacity by having frequently accessed code already available in the cache, thereby maintaining high access bandwidth despite the smaller total memory size.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent employs copying by creating a duplicate copy of the code in the cache memory separate from the original in main memory. This copy allows the system to serve multiple requests from the same code without repeatedly accessing the limited main memory, effectively increasing the available bandwidth for code execution while maintaining a smaller overall memory footprint.

Inventive Principle:
Principle #26Copying

4Adaptability or versatility

If decoupled load request and eviction operations are implemented, then cache management flexibility is improved, but controller complexity increases

Engineering Contradiction:
Improvecache management flexibilityVSAvoidcontroller complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the cache management functions into independent load request handling and eviction operations. This segmentation allows each function to be optimized and controlled separately, improving flexibility in cache management by enabling independent adjustment of loading and eviction policies without increasing overall controller complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic cache management where the controller can independently adjust load request parameters and eviction strategies at runtime. This dynamic capability provides flexibility to adapt to changing system requirements and usage patterns, while the complexity is managed through programmable control mechanisms rather than hardwired complex logic.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3848813B1Embedded information system and method for memory management
Publication Date: 2023.03.08 NXP USA INC
  • EP3848813B1 patent drawingFigure 1
  • EP3848813B1 patent drawingFigure 2
  • EP3848813B1 patent drawingFigure 3

AI summary

An embedded information system (200) includes a load control circuit (168, 230) coupleable to an external memory (170, 216) that contains instructions and constant data (organized by variable sized load units, LUs, and where at least one property of a LU is specified within metadata) associated with application code (228) of a software application, at least one processor configured to execute the at least one application code (228); an internal memory (266) configured as main system memory in a first part and as a cache for storing the instructions and constant data for an execution of the at least one application code (228) from the external memory (170, 216) in a second part. The load control circuit (168, 230) is configured to load the LUs associated with the at least one application code (228) from the external memory (170, 216) with a granularity of a single LU into the internal memory (128, 266, 328). A cache control circuit (150, 260, 350) manages the second part, based on metadata corresponding to the LUs, by being configured to: observe the execution of the application code (228) by detecting at least one of: an LU being executed, a change from one LU to another LU within the internal memory (266); load metadata information corresponding to a LU instance from the external memory (170, 216) or the internal memory (266), specify a next LU to be loaded by the load control circuit (168, 230) into the second part; and specify a next LU to be evicted from the second part when there is insufficient space for loading the next LU.