Storage Controller Partitioning for Sequential Write Random Read

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash non-volatile storage devices require complex and resource-intensive flash translation layers for managing random write/random read operations, which limit error correction and data protection without reducing performance, and increase wear and power consumption.

Innovation Solution

A storage controller that supports sequential write/random read traffic flow, allowing for efficient memory usage and performance improvements by creating partitions with customizable data block sizes and implementing multi-level error correction codes, while eliminating the need for a small block Flash Translation Layer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a flash translation layer is used to manage random write/random read operations, then data protection and error correction are improved, but device complexity and power consumption increase

Engineering Contradiction:
Improvedata protectionVSAvoidflash translation layer complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts and eliminates the complex flash translation layer (FTL) from the storage controller while maintaining data protection capabilities through alternative means. The FTL, which maps host blocks to flash pages and manages garbage collection and wear leveling, is removed from the design, simplifying the controller architecture while preserving reliability through direct sequential write operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The storage system is segmented into distinct partitions, each with customizable parameters for data block sizes, error correction codes, and access patterns. This segmentation allows optimized error correction and data protection for different workloads without requiring a complex universal FTL layer, resolving the contradiction between reliability and device complexity.

Inventive Principle:
Principle #1Segmentation

2Reliability

If a flash translation layer is implemented, then data protection is improved, but performance is reduced and wear increases

Engineering Contradiction:
Improvedata protectionVSAvoidstorage performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements sequential write operations that continuously write data in order without interruption, eliminating the random write operations that trigger FTL overhead. This continuous writing approach maintains performance while data protection is achieved through partition-level error correction and redundancy mechanisms rather than FTL-based protection.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The patent changes the fundamental parameters of data access from random read/write to sequential write with random read. This parameter change eliminates the need for FTL translation and garbage collection operations, improving performance and reducing wear while maintaining data protection through alternative error correction mechanisms.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If small block random write operations are used, then compatibility with flash devices is improved, but error correction and data protection are limited

Engineering Contradiction:
Improveflash device compatibilityVSAvoiderror correction capability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent changes the data access parameters from small block random write to large block sequential write. This parameter change allows for larger data block sizes (e.g., 4KB, 8KB, 16KB) that can accommodate more robust error correction codes while maintaining flash device compatibility through the sequential write interface.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent employs composite error correction mechanisms that combine multiple levels of protection (e.g., bit-level ECC, word-level redundancy, and partition-level parity) to achieve enhanced data protection for sequential writes, overcoming the limitations of traditional FTL-based protection for random writes.

Inventive Principle:
Principle #40Composite materials

4Reliability

If complex flash translation layer processes are used, then data protection is improved, but power consumption increases

Engineering Contradiction:
Improvedata protectionVSAvoidcontroller power consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent removes the power-intensive flash translation layer processes including garbage collection, wear leveling, and translation table management from the controller. This extraction significantly reduces power consumption while data protection is maintained through simpler partition-level error correction mechanisms that require minimal processing.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The sequential write operations inherently organize data in a way that reduces the need for complex controller management. The partitioned structure with fixed sequential write patterns allows the storage system to self-optimize without requiring active FTL management, reducing controller power consumption while maintaining data protection.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10754587B2Memory partitioning storage controller
Publication Date: 2020.08.25 BIP BY DDN INC
  • US10754587B2 patent drawing
  • US10754587B2 patent drawing
  • US10754587B2 patent drawing

AI summary

A method of operating a storage controller is provided. The method includes receiving a request from a partition creator, for a first partition within a storage system, the first partition comprising one or more sequentially numbered data blocks, and receiving first partition parameters from the partition creator, the first partition parameters comprising a size of the one or more sequentially numbered data blocks. The method also includes creating the first partition within the storage system, through a storage interface, based on the first partition parameters, receiving first host data from a host, configuring the first host data as first storage data for storage within the first partition within the storage system, and sequentially storing the first storage data in the one or more sequentially numbered data blocks in the first partition, through the storage interface.