USB Mass Storage Driver IRP Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current USB Mass Storage data access methods result in unnecessary inefficiencies when transferring large data amounts, leading to wasted user time due to the generation of excessive input/output request packages (IRPs), which are not optimized for data amounts greater than 64 kilobytes.
Innovation Solution
A method that monitors commands from the operating system file system and omits unnecessary IRPs, automatically generates replies for omitted IRPs, and alters remaining IRPs to reduce the overall IRP count, thereby enhancing data access performance by optimizing data transfer for amounts greater than a predetermined threshold.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data access commands are processed with standard USB storage transmission specifications, then data transfer compliance is maintained, but the number of IRPs increases unnecessarily for large data amounts, leading to wasted user time
Solution Approach 1:
The patent segments the data transfer process by identifying when to apply standard segmentation (for small data amounts ≤64KB) and when to use optimized single-IRP transfer (for large data amounts >64KB). The driver monitors command sizes and selectively applies different processing strategies, maintaining specification compliance for small transfers while eliminating unnecessary segmentation overhead for large transfers.
Solution Approach 2:
The patent changes the parameter of IRP count based on data amount threshold. When data amount exceeds 64KB, the system transitions from generating multiple IRPs (16-48 IRPs) to generating a single optimized IRP. This parameter change resolves the contradiction by adapting the transfer strategy to the data size, maintaining compliance for small transfers while optimizing time for large transfers.
2Reliability
If multiple IRPs are generated for data amounts greater than 64 kilobytes, then USB storage transmission specifications are followed, but data access performance deteriorates due to excessive IRP processing
Solution Approach 1:
The patent introduces dynamic behavior to the driver by making it adaptive to data command sizes. The driver dynamically selects between two operational modes: standard multi-IRP mode for small data amounts and optimized single-IRP mode for large data amounts. This dynamic adaptation allows the system to maintain specification compliance when required while maximizing productivity when possible.
Solution Approach 2:
The system changes the IRP generation parameter based on the data amount threshold. For commands exceeding 64KB, the driver modifies its behavior to generate fewer IRPs (single optimized IRP instead of 16-48 IRPs), directly improving data access performance while maintaining specification compliance through proper data segmentation within the optimized IRP structure.
3Reliability
If the driver generates 16-48 IRPs for large data transfers, then data is divided into manageable portions, but the complexity of IRP processing increases unnecessarily
Solution Approach 1:
The patent extracts the unnecessary complexity of generating 16-48 IRPs for large data transfers by implementing a threshold-based optimization. When data amount exceeds 64KB, the system extracts only the essential data transfer function into a single optimized IRP, removing the redundant intermediate processing layers while maintaining complete and reliable data transfer through proper data segmentation within the optimized structure.
Data Source
AI summary
A method for enhancing performance of data access between a personal computer and a USB Mass Storage is provided. The personal computer is equipped with a plurality of layers of drivers regarding USB data access, and a lower layer of the layers of the drivers includes a USB Bus Driver. The method includes: monitoring commands sent from an operating system (OS) file system to an upper layer; and when a command sent from the OS file system to the upper layer is utilized for accessing data of a data amount that is greater than a predetermined threshold value, omitting a portion of a plurality of IRPs, automatically generating a plurality of replies for replying to the omitted IRPs, and altering at least one IRP of remaining IRPs in order to correctly access the data with a lower IRP count, wherein the plurality of IRPs is associated with the command.


