SSD Wear Leveling Using Linked Lists for Constant Time Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Wear leveling in Solid State Drives (SSDs) slows down performance due to the need for scanning or searching for less-used blocks, which requires O(n) or O(log n) time, resulting in substantial overhead.

Innovation Solution

Implementing a system that uses linked lists to track wear levels, allowing wear leveling operations to be performed in O(1) time by maintaining data structures that enable direct access and eliminate the need for searching or traversing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If scanning or searching methods are used to find less-used blocks for wear leveling, then wear leveling can be performed across the storage subsystem, but operation time increases to O(n) or O(log n) causing substantial overhead

Engineering Contradiction:
Improvewear leveling uniformityVSAvoidwear leveling operation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent maintains pre-sorted linked lists that categorize memory blocks by their wear levels before wear leveling operations are needed. This preliminary organization allows the system to immediately access blocks with appropriate wear levels without performing scans or searches during actual wear leveling operations, thus resolving the contradiction between maintaining wear leveling uniformity and minimizing operation time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces linked lists as an intermediary data structure between the raw memory blocks and the wear leveling algorithm. These linked lists act as mediators that pre-organize blocks by wear level, enabling constant-time O(1) access to suitable blocks. This intermediary structure eliminates the need for direct scanning or searching of memory blocks, thereby resolving the time overhead issue while maintaining wear leveling effectiveness.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If O(n) or O(log n) search operations are performed for wear leveling, then blocks can be selected for uniform wear distribution, but system performance deteriorates due to substantial overhead

Engineering Contradiction:
Improvewear distribution uniformityVSAvoidSSD operation throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary organization of memory blocks into wear-level-based linked lists during idle periods or background operations. This advance preparation ensures that when wear leveling operations are required, blocks can be selected in constant time without impacting the throughput of primary I/O operations, thus resolving the contradiction between wear distribution uniformity and system productivity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Linked lists serve as intermediary structures that decouple the wear leveling selection process from the main I/O throughput path. By pre-organizing blocks in these intermediary structures, the system can perform wear leveling selections in O(1) time without creating overhead for normal read/write operations, thereby maintaining both wear uniformity and high productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8713066B1Managing wear leveling and garbage collection operations in a solid-state memory using linked lists
Publication Date: 2014.04.29 WESTERN DIGITAL TECHNOLOGIES INC
  • US8713066B1 patent drawing
  • US8713066B1 patent drawing
  • US8713066B1 patent drawing

AI summary

Embodiments of the invention provide a storage subsystem comprising a non-volatile solid-state memory array and a system operation module for managing memory operations. The system operation module is configured to store system operation data in a data structure that includes linked lists for storing system operation data, with at least some lists including entries referencing blocks in the solid-state memory array belonging to a category. The system operation module is further configured to (1) move a particular entry from a first linked list to a second linked list when a block referenced by the particular entry in the first linked list has met a condition for being classified in a new category that is different from that of the blocks referenced by entries in the first linked list, and (2) update entries within the first and second linked lists so that the dependencies in the linked lists are maintained.