Data Handling Optimization for Multi-Memory Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computing systems with multiple memory locations face challenges in optimizing data storage and communication due to error-prone manual processes and generic, poorly tuned automatic systems, especially when dealing with complex, recursive, or fine-grained data access patterns.

Innovation Solution

A method and system that determine data handling properties and policies for data regions in applications, optimizing memory location selection and communication channel usage based on these properties, using programmer hints and automated optimization techniques to reduce data setup costs and improve performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual memory location determination and communication methods are used, then data handling can be customized, but the process becomes error-prone and difficult to optimize

Engineering Contradiction:
Improveerror-proneVSAvoiddifficult to optimize
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs self-optimization by automatically analyzing application code, determining data handling properties, and selecting optimal memory locations and communication channels without requiring manual intervention, thereby reducing errors while maintaining customization

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system dynamically changes parameters such as memory location selection, communication channel selection, and data placement strategies based on analyzed data handling properties and access patterns, enabling automatic optimization without manual configuration

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If automatic systems are used for data placement, then programmer input is minimized, but the solutions are generic and poorly tuned to specific applications

Engineering Contradiction:
Improveprogrammer input neededVSAvoidperformance optimization
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system segments the optimization process into distinct phases: analyzing data handling properties, determining data placement strategies, selecting communication channels, and optimizing code generation. This allows automatic operation while achieving application-specific optimization through targeted analysis of each segment

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system incorporates feedback mechanisms by analyzing actual data access patterns, read/write operations, and communication requirements from the application code to dynamically adjust data placement and communication strategies, ensuring optimal performance rather than generic solutions

Inventive Principle:
Principle #23Feedback

3Productivity

If semi-automatic systems with high-level programmer directives are used, then some optimization is achieved, but they fail to handle fine-grained irregular accesses and devolve to low-level approaches

Engineering Contradiction:
Improveoptimization capabilityVSAvoidhandling fine-grained accesses
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system dynamically adapts its optimization strategies based on the specific characteristics of each data region, analyzing actual access patterns and adjusting data placement and communication methods accordingly. This enables effective handling of fine-grained irregular accesses by making the optimization process flexible and responsive to actual usage patterns

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20230244530A1Flexible optimized data handling in systems with multiple memories
Publication Date: 2023.08.03 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20230244530A1 patent drawing
  • US20230244530A1 patent drawing
  • US20230244530A1 patent drawing

AI summary

Methods and systems for optimizing an application for a computing system having multiple distinct memory locations that are interconnected by one or more communication channels include determining one or more data handling properties for a data region in an application. One or more data handling policies for the data region are determined based on the one or more data handling properties. Data setup costs are determined for a scope in the application that uses the data region in different memory locations based on the one or more data handling properties. The application is optimized in accordance with the one or more data handling policies and the data setup costs for the different memory locations.