Smart NIC Logical Memory Address Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network interface controllers (NICs) in datacenter contexts lack the ability to transparently translate logical memory addresses into memory addresses for accessing network devices, leading to inefficiencies in data access and management.

Innovation Solution

A smart NIC with a configurable processor that translates logical memory addresses into memory addresses for accessing network devices, including NVMe devices via NVMe-over-fabric protocols, ensuring transparent memory access to client processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a smart NIC with configurable processor is used to translate logical memory addresses into memory addresses for network devices, then data access transparency and efficiency are improved, but device complexity increases

Engineering Contradiction:
Improvedata access efficiencyVSAvoidNIC complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The smart NIC acts as an intermediary device between client processes and network storage devices. It includes a configurable processor that translates logical memory addresses into physical memory addresses or network addresses, enabling transparent data access without requiring client processes to know the actual storage locations. This intermediary function resolves the contradiction by automating the complex address translation process within the NIC itself, improving data access efficiency while containing the complexity within the NIC device.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If logical memory address translation is implemented in the NIC, then client processes can access data transparently without knowledge of underlying storage locations, but the NIC requires additional processing capabilities

Engineering Contradiction:
Improvedata access transparencyVSAvoidNIC processing capability
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The smart NIC performs self-service by including an integrated configurable processor that autonomously handles logical memory address translation. Instead of requiring external processing support from the host system or client processes, the NIC independently executes the complex address translation logic, maintaining data access transparency while managing its own processing requirements internally.

Inventive Principle:
Principle #25Self-service

3Speed

If the NIC translates logical memory addresses directly into NVMe-over-fabric messages with TCP and IP headers, then data retrieval efficiency is improved, but message processing complexity increases

Engineering Contradiction:
Improvedata retrieval speedVSAvoidmessage processing complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The smart NIC merges multiple functions into a single integrated processing unit. The configurable processor combines logical memory address translation, network protocol encapsulation (TCP and IP headers), and NVMe-over-fabric message generation into one unified process. This merging approach improves data retrieval speed by eliminating multiple separate processing steps while managing the inherent complexity within a single integrated component.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS12314611B2Logical memory addressing for network devices
Publication Date: 2025.05.27 VMWARE INC
  • US12314611B2 patent drawing
  • US12314611B2 patent drawing
  • US12314611B2 patent drawing

AI summary

Some embodiments provide a method for, at a network interface controller (NIC) of a computer, accessing data in a network. From the computer, the method receives a request to access data stored at a logical memory address. The method translates the logical memory address into a memory address of a particular network device storing the requested data. The method sends a data message to the particular network device to retrieve the requested data.