Network Interface Card Memory Pointer Posting for Direct Data Placement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional networking operations require data to be copied from random memory locations to appropriate locations in the host memory, consuming valuable processor cycles that could be used for more productive functions.

Innovation Solution

A method where a host memory location pointer is posted to a network interface card (NIC) before data receipt, allowing the NIC to place data directly into the appropriate host memory location, and the NIC automatically surrenders ownership upon identifying an end-of-data marker, eliminating the need for the host device to actively reclaim memory and reducing processor cycles.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If data is placed at random memory locations and then copied to appropriate locations, then memory allocation is simplified at the low level, but processor cycles are consumed for copying operations

Engineering Contradiction:
Improvememory allocation simplicityVSAvoidprocessor cycle efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The appropriate memory location is prepared and assigned in advance before data reception. The host device posts the correct memory location pointer to the NIC beforehand, so when data arrives, it can be placed directly into the pre-designated location without requiring subsequent copy operations.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the host device actively reclaims memory ownership from the NIC, then memory management control is maintained, but processor cycles are consumed for reclamation operations

Engineering Contradiction:
Improvememory management controlVSAvoidprocessor cycle efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The NIC automatically returns memory location pointers to the host device without requiring active reclamation operations. The host device simply needs to post new memory locations for incoming data, and the NIC handles the automatic return of previously used memory locations when data transfer is complete.

Inventive Principle:
Principle #25Self-service

3Productivity

If the NIC places data directly into posted memory locations, then copy operations are eliminated, but memory location management complexity increases

Engineering Contradiction:
Improvecopy operation eliminationVSAvoidmemory location management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A ring buffer structure is introduced as an intermediary mechanism to manage the circular list of memory location pointers. The ring buffer simplifies the host-NIC communication protocol by providing a structured way to post and retrieve memory locations, reducing the complexity of direct pointer management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7502870B1Method for receiving network communication and apparatus for performing the same
Publication Date: 2009.03.10 ORACLE AMERICAN INC
  • US7502870B1 patent drawing
  • US7502870B1 patent drawing
  • US7502870B1 patent drawing

AI summary

A host memory location pointer is posted from a host device to a network interface card (NIC) attached to the host device prior to receipt at the NIC of data to be placed in the host memory location corresponding to the pointer. Posting the host memory location pointer serves to surrender ownership of the host memory location from the host device to the NIC. Data received at the NIC is placed in the host memory location corresponding to the pointer. Furthermore, the NIC operates to prevent placement of the data in a portion of the host memory where data has been previously placed by the NIC. Also, the host device operates to re-assume ownership of the portion of the host memory having data placed therein by the NIC without actively reclaiming ownership of the portion of the host memory location from the NIC.