Dual Pointer Shared Memory Ring for Multi-Process Data Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for communication between a host device and an external peripheral device are inefficient when multiple processes are involved, leading to resource wastage and increased latency due to the need for multiple interface memory rings or additional data copying.

Innovation Solution

A method where a processor device uses a shared memory region for data communication, with multiple processes accessing it through separate pointers, and indicating the lower pointer to the peripheral device upon completion or increment, allowing simultaneous processing and efficient data management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple interface memory rings are configured for each process, then data communication to multiple processes is enabled, but resource utilization becomes inefficient

Engineering Contradiction:
Improvedata communication to multiple processesVSAvoidresource utilization efficiency
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges multiple interface memory rings into a single shared memory ring that serves multiple processes. Instead of allocating separate memory rings for each process, the system uses one common memory ring with a shared buffer, reducing the total memory resources required while maintaining the ability to communicate data to multiple processes simultaneously.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared memory ring is designed to be universal, serving multiple processes through a common interface. The memory ring can be accessed by different processes using their respective process identifiers, allowing a single memory structure to perform the function of multiple dedicated memory rings would otherwise be needed.

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

2Device complexity

If one interface memory ring is used with master process copying data, then resource utilization improves, but additional latency is introduced for the slave process

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoiddata processing latency
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The peripheral device performs preliminary action by directly writing data into the shared memory ring for both processes simultaneously, rather than requiring the master process to copy data after the slave process has indicated its readiness. This eliminates the sequential copying step and reduces latency for the slave process while maintaining efficient resource utilization.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The shared memory ring acts as an intermediary that directly receives data from the peripheral device and makes it available to multiple processes without requiring intermediate copying operations. The memory ring serves as a common intermediary buffer that eliminates the need for master-process-mediated data copying, thereby reducing latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If the peripheral device writes data directly into shared memory, then communication efficiency improves, but data management complexity increases

Engineering Contradiction:
Improvecommunication efficiencyVSAvoiddata management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements feedback mechanisms where processes indicate their processing status and pointer positions back to the peripheral device. This feedback allows the peripheral device to manage data writing efficiently by knowing which processes have processed which data entries, enabling direct writes to the shared memory without causing data overwrites or losses, thus maintaining high communication efficiency while managing complexity through coordinated feedback loops.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10664407B2Dual first and second pointer for memory mapped interface communication with lower indicating process
Publication Date: 2020.05.26 MAXLINEAR INC
  • US10664407B2 patent drawing
  • US10664407B2 patent drawing
  • US10664407B2 patent drawing

AI summary

A set of data entries is transferred via a memory mapped interface from an external peripheral device to a processor device and is stored in a shared memory region. Based on a first pointer to the shared memory region, a first process executed by the processor device processes a first group of the data entries. Based on a second pointer to the shared memory region, a second process executed by the processor device processes a second group of the data entries. The second process indicates the second pointer to the first process. The first process indicates a lower one of the first pointer and the second pointer to the peripheral device.