Sequential Block Allocation in SSD Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional storage management systems face challenges in reducing write latency in solid state drives (SSDs) due to the erasure penalty associated with random writes, as SSDs require erasing entire blocks rather than small regions, leading to delayed write operations and increased latency.

Innovation Solution

Implementing a memory management system where blocks are allocated sequentially, using a circular buffer approach, and employing the TRIM command to proactively free blocks when the tail pointer approaches the head pointer, allowing for advanced block freeing and reducing write latency. Additionally, using a generation count to validate data integrity and facilitate efficient data migration between storage tiers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional free block lists or bitmaps are used to allocate blocks, then block allocation is straightforward, but write latency increases due to the erasure penalty required before overwriting SSD blocks

Engineering Contradiction:
Improvewrite performanceVSAvoidwrite latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by proactively issuing TRIM commands to free blocks before they are needed for new writes. The system monitors the allocation state and preemptively erases blocks that will soon be overwritten, eliminating the erasure penalty delay that would otherwise occur when a write operation needs to overwrite a non-empty block.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic block allocation management by maintaining a linked list of allocated blocks and dynamically tracking allocation state. The system dynamically decides when to issue TRIM commands based on the allocation list state, transitioning from static block management to adaptive, real-time block management that responds to write operations and allocation patterns.

Inventive Principle:
Principle #15Dynamics

2Productivity

If blocks are freed using TRIM command, then block availability is improved, but write operations are delayed while TRIM is executed

Engineering Contradiction:
Improveblock availabilityVSAvoidwrite delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary block freeing by issuing TRIM commands before blocks are actually needed for new writes. By proactively managing block availability through the linked list and triggering TRIM commands in advance, the system ensures blocks are ready when needed without causing delays during critical write operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms by continuously monitoring the allocation state through the linked list of allocated blocks. The system uses this feedback to intelligently decide when to issue TRIM commands, ensuring optimal block availability while avoiding write delays. The feedback loop tracks which blocks are allocated and when they should be freed.

Inventive Principle:
Principle #23Feedback

3Loss of time

If sequential block allocation is implemented, then write latency is reduced, but block management complexity increases

Engineering Contradiction:
Improvewrite latencyVSAvoidblock management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent manages complexity through dynamic data structures, specifically a linked list that tracks allocated blocks. This dynamic structure allows the system to efficiently manage sequential allocation while providing the flexibility needed to handle various allocation scenarios. The linked list dynamically adapts to allocation patterns without requiring complex fixed structures.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements self-service block management where the linked list automatically tracks allocation state and enables the system to make its own decisions about when to issue TRIM commands. This self-service approach reduces the need for external intervention or complex management mechanisms, simplifying the overall system while maintaining low write latency.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9183127B2Sequential block allocation in a memory
Publication Date: 2015.11.10 VERITAS TECHNOLOGIES LLC
  • US9183127B2 patent drawing
  • US9183127B2 patent drawing
  • US9183127B2 patent drawing

AI summary

A region of memory is logically divided into a number of segments, each of which is logically divided into a number of blocks. Blocks are allocated sequentially. A head pointer and a tail pointer demarcate the section of allocated blocks. As allocated blocks are added, the tail pointer is moved so that it remains at the end of the section of allocated blocks. If the tail pointer is within a threshold distance of the head pointer, then the head pointer is moved from its current position to a new position, and the allocated blocks between the current and new positions are freed (deallocated and/or erased). Thus, writes to the memory can be performed sequentially, and blocks can be freed in advance of when they are actually needed.