Shared Slice Memory Control for Storage Device Engine Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage device engines face challenges in efficiently managing communications and memory access requests across multiple slices, leading to potential bottlenecks and inefficiencies in shared memory utilization.

Innovation Solution

The implementation of shared slice memory with controlled access, local slice memory provisioning, shared queues, and a shared memory index system, where memory access requests are directed and buffered based on operation types and state monitoring, ensures efficient memory access and management across slices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If shared memory is provisioned for use by each slice, then memory utilization is improved, but access control complexity increases

Engineering Contradiction:
Improvememory utilizationVSAvoidaccess control complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The shared memory is divided into multiple queues (command queue, data in queue, data out queue) that are separately managed and controlled. Each queue handles specific types of memory access requests, allowing fine-grained control over memory operations while maintaining high utilization through shared access.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A shared memory index is introduced as an intermediary structure that tracks the state of each queue and manages access requests. The index contains state information for each queue and provides a mechanism for controlling access without requiring complex inter-slice coordination logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If memory access requests are buffered in shared queues, then access efficiency is improved, but queue management complexity increases

Engineering Contradiction:
Improveaccess efficiencyVSAvoidqueue management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system uses state parameters in the shared memory index to track queue conditions (empty, full, processing states). By changing and monitoring these state parameters, the system efficiently manages queue operations without requiring complex management logic, as the state information drives automated access decisions.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If shared memory index state is monitored and requests are directed based on state, then memory access optimization is improved, but monitoring and state update overhead increases

Engineering Contradiction:
Improvememory access optimizationVSAvoidstate monitoring overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The shared memory index automatically updates its own state information based on queue operations. When queues are modified (commands added, data transferred), the index state is self-updated without requiring separate monitoring operations, eliminating the time overhead of explicit state monitoring while maintaining optimization capabilities.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11829625B2Slice memory control
Publication Date: 2023.11.28 EMC IP HLDG CO LLC
  • US11829625B2 patent drawing
  • US11829625B2 patent drawing
  • US11829625B2 patent drawing

AI summary

Embodiments of the present disclosure relate to managing communications between slices on a storage device engine. Shared slice memory of a storage device engine is provisioned for use by each slice of the storage device engine. The shared slice memory is a portion of total storage device engine memory. Each slice's access to the shared memory portion is controlled.