Storage Controller Collision Detection Circuit
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Storage controllers face performance limitations in managing a high number of read/write access requests to SSDs, particularly when these requests overlap, leading to potential data corruption and increased processing complexity.
Innovation Solution
Implementing a system where a processor circuit uses registers to store and compare LBA ranges for read and write access requests, determining overlaps and delaying read requests if necessary to prevent data corruption, allowing for concurrent access management without severe performance impact.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If firmware checks each read access request against all outstanding write access requests to prevent read/write collisions, then data integrity is maintained, but processing time and complexity increase significantly
Solution Approach 1:
The patent replaces firmware-based software checking with hardware-based circuitry that automatically detects read/write access collisions. The collision detection circuitry compares read LBA ranges against stored write LBA ranges using hardware comparators, eliminating the need for firmware to manually check each request. This hardware substitution dramatically reduces processing time while maintaining collision detection accuracy, resolving the contradiction between reliability and processing time.
Solution Approach 2:
The patent introduces an intermediary collision detection circuit that sits between the access request interface and the storage medium. This circuit includes register files for storing LBA ranges, comparator logic for detecting overlaps, and control logic for managing read/write access ordering. The intermediary hardware layer automatically handles collision detection and prevention without burdening the firmware, thus maintaining data integrity while minimizing processing time overhead.
2Productivity
If the storage controller manages a large number of outstanding read and write access requests concurrently, then productivity increases, but the complexity of tracking and managing these requests increases
Solution Approach 1:
The patent segments the LBA address space into manageable ranges that can be stored in register files. Each register file stores LBA ranges for specific access requests, breaking down the complex tracking of numerous concurrent requests into smaller, organized segments. This segmentation allows the collision detection circuitry to efficiently compare read requests against relevant write ranges without having to process all possible request combinations, thus enabling high productivity while managing tracking complexity through structured organization.
3Reliability
If read access requests are delayed to prevent collisions with write requests, then data corruption is prevented, but access speed decreases
Solution Approach 1:
The patent performs preliminary collision detection by comparing incoming read LBA ranges against already-stored write LBA ranges in the register files before the read request is executed. The collision detection circuitry identifies potential conflicts in advance, allowing the system to proactively manage read request timing. By detecting collisions preliminarily rather than reactively, the system can delay only specific conflicting read requests while allowing non-conflicting reads to proceed at full speed, thus preventing data corruption while minimizing overall access speed impact.
Data Source
AI summary
Examples are disclosed for identifying read/write access collisions for a storage medium. In some examples, a plurality of write access requests for access to a storage medium may be received at a controller for a storage medium. The plurality of write access requests may be associated with separate logical block address (LBA) ranges. The separate write LBA ranges may be stored to sets of first registers. A read access request to the storage medium may also be received and a read LBA range associated with the read access request may be stored to a set of second registers. The separate stored write LBA ranges may then be compared to the read LBA range to identify overlapping ranges that may indicate read/write access collisions to the storage medium. Other examples are described and claimed.


