Shared Memory Buffer for SSD Write Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current solid state drive (SSD) systems using Host Memory Buffer (HMB) incur overhead due to 'two transfers' over PCIe during write and read operations, which affects performance, endurance, and power consumption.

Innovation Solution

Implementing a shared memory buffer (SMB) with a cache structure to select and manage free write buffers, allowing direct access and internal data transfer within the SMB for write and read operations, reducing the need for PCIe transfers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by stationary object

If HMB is used for storing write buffers in SSD, then cost and power requirement are reduced, but PCIe transfer overhead increases due to two transfers

Engineering Contradiction:
Improvepower requirementVSAvoidPCIe transfer overhead
Core Design Contradiction:
Use of energy by stationary objectVSLoss of time

Solution Approach 1:

The shared memory buffer is segmented into multiple write buffers (first write buffer, second write buffer, etc.), each capable of independently storing write data. This segmentation allows the host to distribute write operations across multiple buffers, enabling parallel processing and reducing the frequency of PCIe transfers between host and SSD.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent combines the host memory buffer functionality with the SSD's internal memory structure by creating a shared memory buffer that resides in the host's HMB but is managed jointly by both host and SSD. This merging eliminates the need for separate buffer allocations and reduces PCIe transfer overhead through direct access mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

2Ease of manufacture

If HMB is used for storing write buffers, then DRAM cost is reduced, but write performance deteriorates due to repeated PCIe transfers

Engineering Contradiction:
ImproveDRAM costVSAvoidwrite performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The host and SSD establish a shared memory buffer structure in advance during initialization, where the SSD is provided with information about the HMB's location and capacity. Write buffers are pre-allocated within this shared memory space, eliminating the need for repeated buffer allocation and data transfer operations during normal write operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The shared memory buffer acts as an intermediary structure between the host's HMB and the SSD's NAND memory. It provides a buffer zone where data can be staged for writing to NAND, reducing the frequency and impact of PCIe transfers while maintaining write performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If traditional HMB buffer management is used, then system complexity is reduced, but data transfer efficiency decreases due to two PCIe transfers

Engineering Contradiction:
Improvebuffer management complexityVSAvoiddata transfer efficiency
Core Design Contradiction:
Device complexityVSLoss of energy

Solution Approach 1:

The buffer management system dynamically tracks the status of each write buffer (available, locked, in-use, free) and adapts to varying write workloads. The SSD controller can lock buffers when writing data, manage buffer allocation based on current operations, and efficiently coordinate with the host's HMB, optimizing data transfer efficiency while maintaining manageable complexity through structured status tracking.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11789858B2Method and system for performing read/write operation within a computing system hosting non-volatile memory
Publication Date: 2023.10.17 SAMSUNG ELECTRONICS CO LTD
  • US11789858B2 patent drawing
  • US11789858B2 patent drawing
  • US11789858B2 patent drawing

AI summary

A method for performing a write operation includes selecting, by a host, at least a free write buffer from a plurality of write buffers of a shared memory buffer (SMB) by accessing a cache structure within the SMB for tracking the free write buffer; sending, by the host, at least a logical address accessed from the cache structure with respect to the selected write buffer to issue a write-command to a non-volatile memory; receiving a locking instruction of the selected write buffer from the non-volatile memory; updating a status of the selected write buffer within the cache structure based on the received locking instruction; and allowing the non-volatile memory to extract contents of one or more locked write buffers including the selected write buffer.