Concurrent Write Erase Solid State Storage Channels
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In storage devices like solid state drives (SSDs), the need to erase blocks prior to writing new data leads to performance bottlenecks, especially in high-access-load environments like data centers, as it reduces throughput due to the extra delay in freeing up space.
Innovation Solution
Implementing concurrent write and erase commands on separate media access channels allows the storage device to write data while simultaneously erasing blocks marked for deletion, eliminating the need for immediate erasure before writing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If the storage device erases blocks prior to writing new data, then the data can be written to the correct location, but the throughput performance decreases due to extra delay
Solution Approach 1:
The system performs preliminary actions by marking blocks for deletion immediately when data is moved or deleted, rather than waiting until a write operation is needed. This allows the erase operation to be prepared in advance, reducing the delay when actual write operations occur. The deletion marker is set in the block metadata as soon as the block becomes available for reuse.
Solution Approach 2:
The write operation is segmented into multiple independent channels: a first media access channel handles write operations while a second media access channel handles erase operations simultaneously. This segmentation allows both operations to proceed in parallel without interfering with each other, improving overall throughput while maintaining data integrity.
2Reliability
If the storage device waits for adequate free pages before writing, then data integrity is maintained, but significant performance bottleneck occurs under heavy access load
Solution Approach 1:
The system maintains continuous useful action by keeping multiple media access channels active simultaneously - one channel continuously accepting write requests while another channel continuously performing erase operations on marked blocks. This eliminates idle waiting time and maintains continuous data flow through the storage system, improving I/O rate without compromising data integrity.
Solution Approach 2:
Blocks are marked for deletion in advance when they become available, creating a pool of pre-identified blocks ready for erasure. This preliminary marking action allows the system to quickly allocate clean blocks for new writes without searching or waiting, maintaining both reliability and high performance under heavy load.
3Ease of manufacture
If the local controller performs sequential erase then write operations, then proper block management is ensured, but the access delay increases
Solution Approach 1:
The block management process is segmented into independent operations executed on separate channels: block marking for deletion, erase operations, and write operations all occur simultaneously on different media access channels. This segmentation maintains proper block management through independent channel control while eliminating the sequential delay between erase and write operations.
Solution Approach 2:
The system merges the erase operation and write operation into a concurrent process by allocating different media access channels for each operation. This combining of operations in parallel time slots achieves the same block management goals as sequential operations but without the time penalty of waiting for one operation to complete before starting the other.
Data Source
AI summary
The storage device receives a write request from a disk controller to write data to a storage array. The storage device determines that one or more blocks are marked for deletion. In response to receiving the write request and determining that blocks are marked for deletion, the storage device issues a write command on a first media access channel for a first location of the storage array, and issues an erase command on a second media access channel for a different storage location of the storage array. Thus, the commands are issued concurrently on different channels.


