Portable Memory Map Generation for Multicore Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for managing memory in multicore computer systems are not portable and lead to suboptimal memory utilization, as they are often architecture-specific and require manual modifications for different platforms, resulting in increased development time and costs.

Innovation Solution

A method for generating a memory map that uses symbolic definitions independent of compiler and linker tools, allowing for the creation of a portable memory map that can be applied across multiple multicore platforms with minimal modifications, enabling efficient memory allocation and optimization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If current methods using linker commands and platform-specific tools are used to manage memory, then memory layout can be controlled for specific platforms, but application portability is lost and development time increases

Engineering Contradiction:
Improveapplication portabilityVSAvoiddevelopment time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent introduces memory descriptors as an intermediary layer between the application and the platform-specific memory layout. These descriptors provide a portable, platform-independent interface that abstracts away the hardware details, allowing the same application to run on different platforms without modification while maintaining optimal memory utilization for each target architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system enables dynamic configuration of memory layout parameters through descriptor files that can be modified for different platforms. By changing parameters such as memory base addresses, cache sizes, and memory hierarchy configurations in these descriptor files, the same application can be adapted to different platforms without code modification, thus improving portability while reducing development time.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If platform-specific memory layout methods are used, then memory utilization can be optimized for each platform, but the complexity of managing different layouts increases

Engineering Contradiction:
Improvememory utilization optimizationVSAvoidmemory layout management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the memory management function into separate, reusable components: platform-specific memory descriptors and application-level memory access code. This segmentation allows each component to be independently optimized and maintained, reducing the overall complexity of managing multi-platform memory layouts while preserving platform-specific optimization benefits.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The memory descriptor framework provides universal functionality that works across multiple platforms. A single set of descriptor files and management code can serve multiple target platforms, eliminating the need for separate memory management systems for each platform while still enabling optimized memory utilization through platform-specific descriptor configurations.

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

3Ease of operation

If hard-coded memory references are used in applications, then memory access can be directly controlled, but portability to different platforms becomes difficult

Engineering Contradiction:
Improvememory access controlVSAvoidplatform portability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent replaces hard-coded memory references with intermediary memory descriptors that act as placeholders. These descriptors are resolved at runtime or link time to the actual platform-specific memory addresses, providing direct memory access control for performance-critical code while maintaining portability through the abstraction layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary resolution of memory descriptors to actual addresses during the build process or at runtime initialization. This preliminary action allows the application code to use portable descriptor names throughout, while the actual platform-specific addresses are prepared in advance, eliminating the need for hard-coding while maintaining direct memory access capability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9116628B2Apparatus and method for providing a multicore programming platform
Publication Date: 2015.08.25 POLYCORE SOFTWARE
  • US9116628B2 patent drawing
  • US9116628B2 patent drawing
  • US9116628B2 patent drawing

AI summary

A computer-implemented method for generating a memory map of a target computer includes specifying, from a plurality of identifiers stored in a memory of a host computer, at least one identifier associated with a memory layout of the target computer. The method further includes specifying a value associated with the specified at least one identifier. The method further includes generating a memory map definition of the memory map using the at least one identifier and the associated at least one value. The method also includes deploying software on the target computer, the software incorporating the memory map definition and including an executable instruction that references the at least one identifier which is replaced with the associated value.