Controller Memory Buffer Namespace Segmentation for SSD Firmware

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of solid state drive (SSD) firmware is increased due to the use of separate protocols for managing internal system data and host data, leading to reduced storage capacity and inefficient memory management operations.

Innovation Solution

Implementing a unified management approach by reserving specific areas in the controller memory buffer for both host and local system data, using local processors to execute commands and store data in a manner similar to host devices, thereby eliminating the need for separate protocols and management operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate protocols are used for managing internal system data and host data, then data management can be performed independently for each data type, but firmware complexity increases

Engineering Contradiction:
Improvedata management reliabilityVSAvoidfirmware complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the management of internal system data and host data into a single unified namespace, allowing both data types to coexist in the same address space. This eliminates the need for separate protocols and management operations, directly reducing firmware complexity while maintaining data integrity through proper memory region reservation

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified namespace enables a single protocol to serve multiple purposes - managing both host data and internal system data. The memory controller can handle different data types through the same interface and command set, reducing the need for protocol-specific code paths and simplifying firmware architecture

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If separate areas are reserved for local system data and host data in persistent memory, then data integrity is maintained, but storage capacity is reduced

Engineering Contradiction:
Improvedata integrityVSAvoidstorage capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the memory controller buffer into distinct regions - a first region for internal system data and a second region for host data. This segmentation ensures data integrity by preventing corruption between different data types while allowing the unified namespace to logically combine them, maximizing usable storage capacity

Inventive Principle:
Principle #1Segmentation

3Ease of operation

If separate namespaces are maintained for host data and local system data, then data access control is simplified, but memory management operation complexity increases

Engineering Contradiction:
Improvedata access controlVSAvoidmemory management operation complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent combines host data and internal system data into a single unified namespace, eliminating the need for separate namespace management. Memory management operations such as garbage collection, wear leveling, and bad block management are performed uniformly across the entire namespace, reducing operational complexity while maintaining proper data separation through memory region reservations

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10331584B2Internal system namespace exposed through use of two local processors and controller memory buffer with two reserved areas
Publication Date: 2019.06.25 KIOXIA CORP
  • US10331584B2 patent drawing
  • US10331584B2 patent drawing
  • US10331584B2 patent drawing

AI summary

A solid state drive (SSD) and a method for managing data stored in the SSD is disclosed. In one embodiment, the SSD includes a memory controller and a controller memory buffer within the memory controller. The SSD further includes a host interface communicatively coupled to the memory controller and configured to receive a set of host commands from a host device. A first local processor of the SSD is configured to generate a set of local commands, and a second local processor of the SSD is configured to execute the set of local commands and the set of host commands. The memory controller is configured to store the set of local commands in a first area of the controller memory buffer reserved for the first local processor and to store the set of host commands in a second area of the controller memory buffer reserved for the host device.