SSD Fail Block Detection Using On-the-fly Data Generation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional SSD testing methods require large expected data buffers to detect fail blocks, leading to increased memory requirements and prolonged testing times, as they store and compare data generated by pattern generators, which is impractical for systems with limited memory capacity.
Innovation Solution
A detection system using logic block addresses and data buffer addresses in a storage tester, comprising a device driver for controlling HBA, a request processor for data transmission, and a data engine for generating and comparing data, eliminating the need for an expected data buffer by using direct memory access operations and seed values to generate random or sequential data for comparison.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the capacity of expected data buffer is increased to improve testing performance, then data read/write can be performed with larger data blocks, but it requires a capacity of memory which cannot be accepted in perspective of system
Solution Approach 1:
The patent extracts the expected data buffer from the system by generating expected data on-the-fly during the read operation rather than pre-storing it. The pattern data generator creates expected data using the same LBA sequence and pattern generation logic that the SSD would use, eliminating the need for large buffer memory while maintaining comparison capability
Solution Approach 2:
The system uses the SSD's own LBA management and pattern generation capabilities to generate expected data during the read operation. By leveraging the SSD's inherent functionality and the tester's pattern generation unit, the system serves its own data generation needs without external buffer support
2Quantity of substance
If the capacity of expected data buffer is decreased to reduce memory requirements, then system memory capacity is reduced, but data read/write is performed with small data blocks and overall testing time will be increased
Solution Approach 1:
The patent implements continuous data generation and comparison by producing expected data on-the-fly during the read operation. The pattern data generator continuously generates expected data blocks using the current LBA and pattern generation logic, enabling uninterrupted comparison without buffer transfer delays
Solution Approach 2:
The system performs preliminary setup by configuring the pattern data generator with the same parameters (LBA sequence, pattern type, block size) that the SSD will use. This preliminary configuration ensures that expected data generation is synchronized with the read operation from the start, eliminating setup delays
3Reliability
If conventional method stores data generated by pattern generator in buffer to compare with read back data, then fail LBA can be detected, but it has a problem with capacity of usable buffer
Solution Approach 1:
The pattern data generator acts as an intermediary that produces expected data on-demand during the read operation. Instead of using a buffer as an intermediary storage, the pattern data generator directly generates comparison data using the same LBA and pattern parameters, eliminating the buffer intermediary while maintaining detection capability
Solution Approach 2:
The system changes the operational parameters from buffer-based storage to on-the-fly generation by modifying how expected data is produced. The pattern data generator uses dynamic parameter input (current LBA, pattern type, block size) to generate expected data in real-time, transforming the static buffer approach into a dynamic generation approach
Data Source
AI summary
Disclosed is a detection system for detecting fail block using logic block address and data buffer address in a storage tester, which is capable of comparing data read from SSD test without expected data buffer. The system comprises a device driver for controlling HBA; a request processor for reading the request to Root Complex and transmitting the result to a data engine; and the data engine for generating data to be transmitted to SSD and comparing the read data.


