Region Lock Module Diverts I/O Requests in Storage Controllers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage controllers face challenges in efficiently determining which I/O processing stack is best suited for processing I/O requests without risking data integrity issues, often leading to the disabling of fast path processing circuits, which degrades performance.

Innovation Solution

Implementing a region lock module within the storage controller to divert I/O requests to the appropriate processing stack based on the status of block addresses, using divert-type locks to manage dirty data and bad blocks, thereby ensuring data integrity and optimizing performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the fast path processing circuit is used to process I/O requests, then processing speed is improved, but data integrity may be compromised due to dirty data in cache memory

Engineering Contradiction:
ImproveI/O request processing speedVSAvoiddata integrity
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

A region lock module is introduced as an intermediary between the fast path processing circuit and the firmware processing stack. This module manages region locks that track dirty data locations in cache memory, allowing the fast path circuit to quickly determine whether it can process an I/O request without directly accessing cache contents, thus maintaining both speed and data integrity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary actions by establishing region locks in advance to mark areas of cache memory containing dirty data. These locks are set up before I/O requests arrive, enabling the fast path circuit to quickly check lock status and make routing decisions without needing to analyze cache contents at request time

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the firmware processing stack is used to process all I/O requests, then data integrity is maintained, but processing performance deteriorates

Engineering Contradiction:
Improvedata integrityVSAvoidI/O request processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The processing responsibility is segmented between two paths: the fast path processing circuit handles I/O requests that do not involve dirty data regions, while the firmware processing stack handles requests involving locked regions. This segmentation allows most requests to be processed quickly by the fast path circuit while maintaining data integrity through firmware oversight when needed

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different processing qualities are applied to different I/O requests based on their characteristics. Requests accessing unlocked regions receive high-speed fast path processing, while requests accessing locked regions are routed to the more cautious firmware stack, optimizing performance for each specific case

Inventive Principle:
Principle #3Local quality

3Reliability

If region lock checking is implemented to determine appropriate processing stack, then data integrity is improved, but processing complexity increases

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing logic complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The complex logic for determining whether to use fast path or firmware processing is extracted from the fast path circuit itself and placed in the region lock module. The fast path circuit only needs to check simple lock status bits, while the region lock module contains the sophisticated logic for managing locks and making routing decisions, simplifying the overall system architecture

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9268695B2Methods and structure for using region locks to divert I/O requests in a storage controller having multiple processing stacks
Publication Date: 2016.02.23 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US9268695B2 patent drawing
  • US9268695B2 patent drawing
  • US9268695B2 patent drawing

AI summary

Methods and structure within a storage controller for using region locks to efficiently divert an I/O request received from an attached host system to one of multiple processing stacks in the controller. A region lock module within the controller allows each processing stack to request a region lock for a range of block addresses of the storage devices. A divert-type lock request may be established to identify a range of block addresses for which I/O requests should be diverted to a particular one of the multiple processing stacks.