PCIe Controller with NVMe Interface and DRAM Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current PCIe storage solutions face limitations in optimizing Input/Output (I/O) performance for flash memory devices like SSDs, as they lack efficient mechanisms for processing and caching data across persistent storage interfaces.

Innovation Solution

A PCIe controller configured with NVMe interfaces, incorporating a DRAM device partitioned into logical blocks, virtual function logic, and data buffers, which processes I/O requests, caches data, and transfers it efficiently between the host system and SSDs, utilizing firmware to streamline I/O operations and provide a virtual I/O interface.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional PCIe storage interfaces are used, then device compatibility is maintained, but I/O performance is limited

Engineering Contradiction:
ImproveI/O performanceVSAvoidinterface complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the storage interface into two distinct layers: the transport layer (PCIe) and the logical interface layer (NVMe). This segmentation allows the PCIe bus to handle high-speed data transmission while the NVMe interface optimizes I/O operations specifically for flash memory devices, thereby improving I/O performance without compromising PCIe compatibility

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The NVMe interface acts as an intermediary between the host system and flash memory devices, translating high-performance I/O operations into PCIe bus transactions. This intermediary layer enables optimized I/O paths while maintaining compatibility with the existing PCIe infrastructure

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If data is stored directly in flash memory, then persistent storage is achieved, but access speed is reduced

Engineering Contradiction:
Improvedata access speedVSAvoiddata persistence
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent introduces DRAM as an intermediary caching layer between the host system and flash memory devices. Frequently accessed data is cached in DRAM for rapid access, while the flash memory maintains persistent storage. This intermediary caching mechanism resolves the contradiction by providing both fast access speeds and data persistence

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary actions by pre-loading frequently accessed data into DRAM cache before it is actually needed. This anticipatory caching strategy ensures that when data is requested, it is already available in fast memory, thereby improving access speed while maintaining data persistence in the flash memory

Inventive Principle:
Principle #10Preliminary action

3Productivity

If protocol overhead is reduced, then I/O efficiency is improved, but system compatibility is compromised

Engineering Contradiction:
ImproveI/O efficiencyVSAvoidsystem compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the protocol stack to separate compatibility-handling functions from performance-optimization functions. The PCIe protocol layer maintains compatibility with existing systems, while the NVMe logical interface layer implements simplified, efficient protocols optimized for flash memory operations, thereby achieving both compatibility and efficiency

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9841902B2Peripheral component interconnect express controllers configured with non-volatile memory express interfaces
Publication Date: 2017.12.12 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US9841902B2 patent drawing
  • US9841902B2 patent drawing
  • US9841902B2 patent drawing

AI summary

Systems and methods presented herein provide for SSD data storage via PCIe controllers configured with NVMe interfaces. In one embodiment, a PCIe controller includes a plurality of buffers, a Dynamic Random Access Memory (DRAM) device, and an I/O processor operable to partition the DRAM device into a plurality of logical blocks. The controller also includes virtual function logic communicatively coupled to the logical blocks of the DRAM device and to the buffers. The virtual function logic is coupled to a host system through the I/O processor to process an I/O request from the host system to a logical block of the DRAM device, to retrieve data from the logical block to at least one of the buffers, and to transfer the data from the buffer to the host system.