Memory Partitioning for Shared Memory Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-threaded systems, existing methods for protecting data integrity during parallel updates in shared memory, such as locks and atomic operations, incur significant latency, slowing down programs.

Innovation Solution

Partitioning the shared memory among processing entities, allowing each to have exclusive ownership of a memory partition, enabling single-writer access and eliminating the need for atomic operations or locks by using hash-based partitioning and message passing to manage data operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If locks or atomic operations are used to protect data integrity during parallel updates, then data integrity is maintained, but system latency increases significantly

Engineering Contradiction:
Improvedata integrityVSAvoidsystem latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The shared memory is divided into multiple partitions, with each partition assigned to a specific processing entity. This segmentation eliminates contention for the same memory region, allowing parallel updates without locks or atomic operations, thus maintaining data integrity while reducing latency

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A hash function serves as an intermediary mechanism to determine which processing entity owns a particular memory partition based on the data key. This intermediary resolves conflicts before they occur by directing updates to the appropriate owner, avoiding the need for contention-based synchronization

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If exclusive ownership of memory partitions is assigned to processing entities, then contention is eliminated and access speed improves, but memory management complexity increases

Engineering Contradiction:
Improvememory access speedVSAvoidmemory management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

Each processing entity independently manages its own memory partition without needing to coordinate with others. The owner determination engine within each entity autonomously decides whether to process an update locally or forward it to another entity, eliminating the need for complex centralized memory management

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The message passing interface serves multiple functions: it transfers data between entities, conveys ownership information, and handles both local and remote updates through a unified mechanism. This multi-functionality reduces the need for separate management pathways

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

Data Source

PatentUS11874767B2Memory partitions for processing entities
Publication Date: 2024.01.16 HEWLETT PACKARD ENTERPRISE DEV LP
  • US11874767B2 patent drawing
  • US11874767B2 patent drawing
  • US11874767B2 patent drawing

AI summary

In some examples, a system partitions a shared memory address space of a shared memory among a plurality of processing entities into a plurality of memory partitions, where a respective memory partition is associated with a respective processing entity. A first processing entity forwards, to a second processing entity, a first data operation, based on a determination by the first processing entity that the first data operation is to be applied to data for a memory partition associated with the second processing entity. The second processing entity applies the first data operation that includes writing data of the first data operation to the memory partition associated with the second processing entity using a non-atomic operation.