Shared Memory Address Translation for Multi-Core Microcontrollers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In microcontrollers with multiple processing cores, duplicated code and data across applications lead to inefficient use of limited memory, as each core stores identical shared resources multiple times.

Innovation Solution

A method is implemented to analyze applications and identify common shared code and data segments, creating new binaries that separate unique and shared content, allowing shared resources to be stored once and accessed by multiple cores through address translation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If each processing core stores its own copy of shared code and data, then each core can access its required resources independently, but memory usage increases due to duplication

Engineering Contradiction:
Improveindependent access to shared resourcesVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges shared code and data segments into a common memory region that is accessible by multiple processing cores. Instead of duplicating shared resources in each core's private memory space, the system consolidates them into a single shared region, reducing overall memory consumption while maintaining accessibility for all cores that need these resources.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared memory region serves multiple functions and multiple processing cores simultaneously. A single copy of shared code or data in the shared region can be accessed by any number of cores, making the memory resource universal rather than dedicated to a single core. This multi-functionality resolves the contradiction by allowing independent access while eliminating duplication.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Quantity of substance

If shared code and data are stored in a common memory region, then memory usage decreases by eliminating duplication, but address management becomes more complex

Engineering Contradiction:
Improvememory usageVSAvoidaddress management
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the memory space into distinct regions: private memory regions for each processing core and a shared memory region for common resources. This segmentation provides clear boundaries and organization, making address management more systematic. Each core has well-defined access rules for different regions, which simplifies the overall address management despite the presence of shared resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces address translation units as intermediary components that manage the mapping between virtual addresses used by processing cores and physical addresses in memory. These translation units handle the complexity of shared memory access transparently, allowing cores to use simple address generation while the intermediary manages the actual memory location resolution, thus reducing the perceived complexity for each core.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20250181503A1Software sharing across multiple cores
Publication Date: 2025.06.05 TEXAS INSTRUMENTS INC
  • US20250181503A1 patent drawing
  • US20250181503A1 patent drawing
  • US20250181503A1 patent drawing

AI summary

In an example, a method includes storing code for a first central processing unit (CPU) executing a first application in a first region of a memory, and storing code for a second CPU executing a second application in a second region of the memory. The method includes storing shared code for the first CPU and the second CPU in a third region of the memory. The method includes storing read-write data for the first CPU in a fourth region of the memory and storing read-write data for the second CPU in a fifth region of the memory. The method includes translating a first address from a first unique address space for the first CPU to a shared address space in the third region, and translating a second address from a second unique address space for the second CPU to the shared address space in the third region.