Portable Memory Map Generation for Multicore Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


