SSD Array Write Granularity for Power-Failure Data Retention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing solid-state storage systems face inefficiencies in write granularity, leading to compromised read performance and data loss during power failures due to the requirement for writes to be in multiples of logical pages, which cannot accommodate data of sizes less than a single NAND programming cycle.
Innovation Solution
The solution involves reducing the write granularity to less than the logical block size by caching remaining data in a buffer, such as DRAM, and upon power loss, relocating this data to non-volatile memory for storage, ensuring data retention and improving performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If writes are performed in multiples of logical pages, then write operations can be executed with standard NAND programming cycles, but data loss occurs during power failures and write granularity cannot accommodate smaller data sizes
Solution Approach 1:
The write operation is segmented into two parts: data that fits complete logical pages is written to non-volatile storage, while remaining data that doesn't fit complete pages is cached in volatile memory. This segmentation allows the system to handle both complete and partial write scenarios efficiently, improving reliability without sacrificing productivity.
Solution Approach 2:
Volatile memory serves as an intermediary between the write operation and non-volatile storage. It temporarily holds remaining data that cannot be written in complete logical page multiples, acting as a buffer that prevents data loss during power failures while maintaining write efficiency.
2Adaptability or versatility
If write granularity is reduced below logical page size, then smaller data sizes can be accommodated, but read performance deteriorates due to inability to read less than a logical page
Solution Approach 1:
The system applies different quality characteristics to different parts of the storage hierarchy: volatile memory provides fine-grained access for small writes, while non-volatile storage maintains its native page-based structure for optimal read performance. Each storage medium operates in its optimal performance zone.
Solution Approach 2:
The solution adds a temporal dimension to the storage system by using volatile memory for immediate, fine-grained write operations and non-volatile storage for persistent, page-aligned data. This two-layer approach resolves the contradiction between write flexibility and read performance.
3Reliability
If volatile memory is used to cache remaining data, then data retention during power failure is improved, but device complexity increases due to additional memory management requirements
Solution Approach 1:
The system performs preliminary actions by allocating and preparing volatile memory buffers in advance of actual write operations. This pre-configuration simplifies the write path and reduces the complexity of real-time memory management decisions.
Solution Approach 2:
The volatile memory cache is discarded (cleared) after successful write completion or power failure, and recovered (reallocated) for the next write operation. This simple lifecycle management reduces complexity compared to persistent cache management schemes.
Data Source
AI summary
A storage array controller may receive a write request comprising data to be stored at one or more solid-state storage devices. A write granularity associated with the write request may be generated that is less than a logical block size associated with the storage array controller. The data associated with the write request may be segmented based on the generated write granularity. The write request may be executed to store the segmented data at the one or more solid-state storage devices.


