Application-Specific I/O Queues for SSD Access Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In shared semiconductor storage environments, existing technologies face challenges in efficiently managing access to solid state drives (SSDs) by multiple applications, leading to potential collisions and incorrect transmission of requests or responses between the host and SSD, particularly when direct access to queues is permitted for individual applications.

Innovation Solution

The implementation of dedicated I/O submission and completion queues for each application in the user space, allowing direct access without system calls, thereby avoiding collisions and ensuring correct data transfer between the host and SSD.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple applications share a single SSD with common I/O queues, then device utilization is improved, but request collision and data transmission errors occur

Engineering Contradiction:
ImproveSSD utilizationVSAvoidrequest transmission accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent divides the shared I/O queue into multiple application-specific queues, with each application having its dedicated submission queue and completion queue. This segmentation prevents request collisions between applications while maintaining efficient SSD utilization through parallel queue processing.

Inventive Principle:
Principle #1Segmentation

2Productivity

If direct queue access is permitted for applications, then system call overhead is reduced, but queue collision and access conflicts occur

Engineering Contradiction:
ImproveI/O operation efficiencyVSAvoidqueue access safety
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements separate I/O queues for each application, allowing direct access without system calls. Each application's dedicated queue eliminates access conflicts while maintaining high I/O efficiency through user-space queue operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent assigns specific queue regions to each application with defined access permissions. Applications can directly access their own queues with full permissions while being restricted from accessing other applications' queues, ensuring both efficiency and safety through localized access rights.

Inventive Principle:
Principle #3Local quality

3Device complexity

If a single I/O queue is shared among applications, then device complexity is reduced, but request mixing and processing errors occur

Engineering Contradiction:
Improvequeue management structureVSAvoidrequest processing accuracy
Core Design Contradiction:
Device complexityVSManufacturing precision

Solution Approach 1:

The patent creates multiple segmented queues within the SSD, with each queue dedicated to a specific application. This segmentation maintains a relatively simple overall structure while ensuring precise request processing by preventing mixing of different applications' I/O requests.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11151064B2Information processing apparatus and storage device access control method
Publication Date: 2021.10.19 KIOXIA CORP
  • US11151064B2 patent drawing
  • US11151064B2 patent drawing
  • US11151064B2 patent drawing

AI summary

A computing device includes a memory and a processor connected to the memory and configured to: create, in a first memory space of the memory, a first I/O submission queue associated with a first application running in user space; create, in a second memory space of the memory, a second I/O submission queue associated with a second application running in user space; in response to a first I/O request from the first application, store the first I/O request in the first I/O submission queue for access by the semiconductor storage device; and in response to a second I/O request from the second application, store the second I/O request in the second I/O submission queue for access by the semiconductor storage device.