Asynchronous Memory Access Queuing via Buffer Pinning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processing systems operating in managed memory environments fail to provide static memory buffers, leading to inefficiencies or failures in applications requiring asynchronous data streaming, as they do not allow memory buffers to remain static throughout memory access operations.

Innovation Solution

Implementing a memory management system where applications can pin specific memory buffers, preventing the memory manager from relocating them, and using a circular queue mechanism to dynamically manage pinned buffers, ensuring stable memory addresses for data streaming applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a managed memory environment is used to automatically manage memory buffers, then memory leakage is reduced or eliminated, but memory buffers cannot remain static which causes inefficiency or failure in asynchronous data streaming applications

Engineering Contradiction:
Improvememory management reliabilityVSAvoiddata streaming performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically switches between two memory management modes: pinned mode for static buffer requirements and unpinned mode for automatic memory management. This dynamic adaptability allows the system to optimize for either reliability or productivity based on application needs

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the state parameter of memory buffers from dynamically managed to statically pinned by introducing a pinning mechanism that fixes buffer addresses in memory, preventing relocation and ensuring stability for data streaming operations

Inventive Principle:
Principle #35Parameter changes

2Productivity

If memory buffers are allowed to be relocated by the memory manager, then memory utilization is optimized, but applications requiring static memory buffers cannot function properly

Engineering Contradiction:
Improvememory utilization efficiencyVSAvoidbuffer address stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments memory management into two distinct categories: pinned buffers that remain static and unpinned buffers that can be relocated. This segmentation allows different parts of the memory system to serve different functional requirements simultaneously

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The pinning mechanism acts as an intermediary between the application's need for static buffers and the memory manager's desire to optimize memory utilization. By introducing this intermediate layer, the system reconciles the conflicting requirements

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If explicit memory allocation is used to provide address pointers to applications, then applications have direct control over memory, but applications fail to de-allocate memory resulting in memory leakage

Engineering Contradiction:
Improveapplication memory controlVSAvoidmemory de-allocation reliability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The memory manager provides self-service memory management by automatically tracking and managing pinned buffers. The system serves itself by maintaining its own memory state information without requiring explicit application intervention for de-allocation

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8037249B1Asynchronous memory access queuing
Publication Date: 2011.10.11 MONTEREY RESEARCH LLC
  • US8037249B1 patent drawing
  • US8037249B1 patent drawing
  • US8037249B1 patent drawing

AI summary

A method for queuing asynchronous memory accesses includes pinning memory buffers in a managed memory environment, issuing data transfer requests to a peripheral device, each request corresponding to at least one of the pinned memory buffers, and asynchronously accessing at least one of the pinned buffers responsive to the requests.