Shared Memory Gate Bit for Multi-Core I/O Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core computer systems, conventional locking mechanisms for managing I/O operations lead to severe memory contention and inefficiency, particularly as the number of cores increases, due to the need to lock entire memory blocks during atomic operations, which hinders the potential performance benefits of multi-core processing.

Innovation Solution

A technique using a shared memory variable that tracks I/O operations with a counter and a gate bit, allowing for atomic increment, decrement, OR, and AND instructions to synchronize across multiple cores, enabling efficient queuing and processing of I/O operations without locking entire memory blocks, thereby reducing contention and improving system performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional locking mechanisms are used to manage I/O operations in multi-core systems, then data consistency is maintained, but memory contention increases and system performance deteriorates

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the locking mechanism from the data structure by using a separate gate variable (single bit) from the data block itself. Instead of locking the entire memory block, the gate variable acts as a separate control mechanism that coordinates access without requiring other cores to lock the data structure, thereby reducing memory contention while maintaining consistency

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The gate variable serves as an intermediary between multiple processor cores accessing shared data. Rather than having cores directly contend for locks on the data block, the gate variable mediates access by providing a centralized coordination point that all cores can atomically check and update, reducing direct contention on the actual data

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If entire memory blocks are locked during atomic operations, then atomicity is ensured, but the number of pending operations increases and efficiency decreases

Engineering Contradiction:
ImproveatomicityVSAvoidpending operation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts the synchronization control function from the data block itself and places it in a separate gate variable. This allows the atomic operation to control access to the gate variable without requiring the entire data block to be locked, thereby reducing the scope of the lock and allowing other operations to proceed concurrently

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent separates the control mechanism (gate variable) from the data structure, allowing independent management of access coordination. This segmentation enables atomic operations to be performed on the gate variable without blocking access to the entire data block, reducing pending operation time

Inventive Principle:
Principle #1Segmentation

3Reliability

If memory is locked for the duration of atomic operations, then data consistency is maintained, but I/O operation throughput decreases

Engineering Contradiction:
Improvedata consistencyVSAvoidI/O operation throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the locking scope from the entire memory block to just the gate variable. This allows I/O operations to check and update the gate variable atomically without locking the underlying data structures, maintaining consistency while allowing parallel I/O throughput to increase

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The gate variable provides dynamic control over I/O operation acceptance. When the gate is closed, new I/O operations are rejected at the gate level without blocking existing operations, allowing dynamic adjustment of throughput while maintaining data consistency

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9286004B1Managing I/O operations in multi-core systems
Publication Date: 2016.03.15 EMC IP HLDG CO LLC
  • US9286004B1 patent drawing
  • US9286004B1 patent drawing
  • US9286004B1 patent drawing

AI summary

A technique for managing I/O operations in data storage systems having one or more multi-core processors is provided. A first variable stored in shared memory is configured to simultaneously store a counter associated with a number of I/O operations outstanding and a gate bit value associated with a gate condition. I/O operations are tracked by incrementing the counter value when an I/O operation is received and decrementing the counter value when an I/O operation is processed. If a storage object is identified as requiring a state change, the gate bit is set to queue any subsequent I/O operations. Outstanding I/O operations are drained by processing I/Os until the counter reaches zero. Any necessary operations are performed during the state change condition. The gate bit is cleared and I/O processing resumes. Atomic increment, decrement, OR and AND instructions provide synchronization across the multiple cores.