Virtual I/O Queueing for FPGA Memory Constraints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Field programmable gate arrays (FPGAs) have limited memory space to accommodate the large and deep I/O queues required for high-speed serial buses like PCI Express, which are essential for high-performance storage systems using non-volatile memory (NVM) media.

Innovation Solution

The implementation of virtual I/O queueing using a state machine to manage a shared pool of buffers and queues, allowing for the exposure of logical block addresses and submission queues larger than what is physically implemented on the FPGA, enabling the use of protocols like NVMe for NVM technology by dynamically managing Virtual Logical Block Addresses (VLBAs) and Virtual Submission Queues (VSQs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If FPGAs use traditional physical I/O queue implementation, then memory space requirements are met, but the ability to support large and deep I/O queues required for high-speed serial buses like PCI Express is limited

Engineering Contradiction:
ImproveI/O queue capacityVSAvoidFPGA memory space
Core Design Contradiction:
Quantity of substanceVSVolume of stationary object

Solution Approach 1:

The patent creates virtual copies of I/O queues through software abstraction layers. Instead of physically implementing every queue in hardware, the system creates virtual representations that can be managed dynamically. This allows the FPGA to support more queues than physical memory would normally allow by using software-based queue management and mapping techniques.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent transitions from a single-dimension physical memory implementation to a multi-dimensional virtual address space. By introducing virtual addressing, the system can map a large logical address space to a smaller physical memory space, enabling support for large and deep I/O queues without proportionally increasing physical memory requirements.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If FPGAs implement large numbers of deep I/O queues in hardware, then PCI Express requirements are met, but FPGA memory resources are exhausted

Engineering Contradiction:
ImproveI/O processing throughputVSAvoidFPGA memory resources
Core Design Contradiction:
ProductivityVSVolume of stationary object

Solution Approach 1:

The patent implements dynamic queue management where the number and depth of I/O queues can be adjusted at runtime based on actual workload requirements. Instead of statically allocating fixed memory resources for queues, the system dynamically allocates and deallocates queue resources, allowing high throughput when needed while conserving memory resources during lower-demand periods.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent creates a universal queue management system that can handle multiple types of I/O operations across different protocols and applications using a shared pool of memory resources. The virtualized queue infrastructure provides multi-functional capability, allowing the same physical memory to serve multiple logical queues with different requirements.

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

3Ease of operation

If FPGAs allocate dedicated memory for each I/O queue, then queue isolation and management are simplified, but memory efficiency decreases

Engineering Contradiction:
ImproveQueue management simplicityVSAvoidMemory utilization efficiency
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent merges multiple individual queue memories into a single shared memory pool that serves all I/O queues. Instead of having separate dedicated memory regions for each queue, the system combines them into one unified resource that is dynamically allocated to different queues as needed. This maintains management simplicity through unified control while dramatically improving memory utilization efficiency.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a virtualization layer as an intermediary between the physical memory and the I/O queues. This intermediary manages the mapping between virtual queue addresses and physical memory locations, providing simplified queue management interfaces to applications while efficiently utilizing underlying physical memory resources through sophisticated allocation algorithms.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10007443B1Host to device I/O flow
Publication Date: 2018.06.26 EMC IP HLDG CO LLC
  • US10007443B1 patent drawing
  • US10007443B1 patent drawing
  • US10007443B1 patent drawing

AI summary

One or more virtual functions is exposed via a shared communication interface. A plurality of I/O buffers shared across said virtual functions are provided. For each of said one or more virtual functions, a corresponding submission queue comprising one or more virtual submission queue entries (SQEs) is used, wherein a memory access device is configured to: receive data pushed to the memory access device by a client host system, store the data in an allocated one of the I/O buffers, receive a submission queue entry (SQE) that invokes one of said virtual functions with respect to the data, and use a corresponding one of the plurality of logic circuits that is associated with the invoked virtual function to perform the virtual function with respect to the data as stored in the allocated I/O buffer.