Storage Controller Driver I/O Path Selection Map
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current RAID storage systems require extensive processing by firmware for every I/O transaction, which can lead to performance bottlenecks and inefficiencies, especially in high-performance scenarios where direct access to storage devices is necessary without additional processing.
Innovation Solution
A storage system that maintains a map of storage locations associated with I/O transactions, allowing the storage controller driver to send I/O requests directly to storage devices without further processing by the firmware, thereby optimizing performance by bypassing unnecessary firmware processing for certain transactions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If firmware processes every I/O transaction, then storage control and management is comprehensive, but processing time increases and performance decreases
Solution Approach 1:
The patent segments I/O transactions into two categories: those requiring firmware processing and those that can be handled directly by the driver. A data structure (map) is used to classify storage locations, allowing the driver to directly access storage devices for certain transactions without firmware intervention, while other transactions continue to go through firmware processing. This segmentation resolves the contradiction by enabling both comprehensive control and high-speed access.
Solution Approach 2:
The patent introduces a map data structure as an intermediary between the driver and firmware. This map stores information about storage locations that can be directly accessed, allowing the driver to make informed decisions about which I/O transactions to handle directly and which to route to firmware. The map acts as a mediator that enables selective bypassing of firmware processing while maintaining overall system control.
2Productivity
If direct storage device access is enabled, then I/O performance improves, but storage management complexity increases
Solution Approach 1:
The driver is enhanced with self-service capability to directly access storage devices for specific I/O transactions without requiring firmware processing. The driver uses the map data structure to determine when direct access is appropriate, effectively serving itself for performance-critical operations while still relying on firmware for transactions that require comprehensive control. This self-service approach improves performance without proportionally increasing overall system complexity.
3Loss of time
If firmware processing is bypassed for certain transactions, then processing time decreases, but control precision may be reduced
Solution Approach 1:
The patent changes the parameter of processing depth based on the type of I/O transaction and storage location. For transactions marked in the map as eligible for direct access, the processing depth is reduced by bypassing firmware. For other transactions, the full firmware processing chain is maintained. This parameter change allows the system to optimize processing time for specific transactions while maintaining control precision for others that require comprehensive firmware management.
Data Source
AI summary
A map of storage locations that indicates storage locations associated whose associated I/O transactions are to be processed by firmware running on a storage controller is maintained. The map is communicated to a storage controller driver. The storage controller driver receives a first I/O transaction request. Based on the map, and the storage location to be accessed by the first I/O transaction request, the first I/O transaction request is sent to a storage device without further processing by the firmware running on the storage controller. The storage controller driver receives a second I/O transaction request. Based on the map and the location to be accessed by the second I/O transaction request, the second I/O transaction request is sent for further processing by the firmware running on the storage controller.


