Packet Search Acceleration via Primary-Secondary Array Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing communication networks face inefficiencies in matching incoming packets with memory locations due to large buffer entry sizes and high latency costs associated with serial search methods in linked lists, making it impractical to store and access all buffer entries in memory on a network interface card (NIC).

Innovation Solution

Implementing search acceleration logic on the NIC to match incoming packets using a primary array with tags and digests, where the primary array stores a subset of matching criteria, allowing for parallel processing and reducing latency by filtering out non-matching entries, and using a secondary array for full entries, enabling faster search times and higher hit rates compared to direct-mapped caches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If serial search methods in linked lists are used to match incoming packets with memory locations, then the system can handle large buffer entry sizes, but the latency increases significantly

Engineering Contradiction:
Improvebuffer entry sizeVSAvoidsearch latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent segments the buffer entry matching process into two distinct phases: (1) a fast filter phase that compares only critical fields (packet length, source/destination addresses) to quickly eliminate non-matching entries, and (2) a slower full comparison phase that only processes entries passing the filter. This segmentation reduces average search time while maintaining the ability to handle large buffer entries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by performing only a subset of the full buffer entry comparison initially. Instead of comparing all fields of every buffer entry with every incoming packet, the system performs a partial comparison on key fields first, and only proceeds to full comparison when necessary. This dramatically reduces the average number of comparisons required.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If all buffer entries are stored in memory on the NIC, then complete packet matching capability is achieved, but the device complexity and memory requirements become impractical

Engineering Contradiction:
Improvepacket matching capabilityVSAvoidmemory storage requirements
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts only the essential matching fields from full buffer entries and stores them in a compact filter structure on the NIC. The extracted fields include packet length, source address, and destination address - the minimum information needed to perform initial filtering. Full buffer entries are kept in host memory, and only matching entries are retrieved when needed.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary data structure (the filter entry) that sits between the full buffer entries in host memory and the incoming packet matching process. This filter entry contains only the critical fields needed for quick comparison, acting as a mediator that enables fast preliminary filtering without requiring full buffer entries to be present on the NIC.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If direct-mapped caches are used for packet matching, then access speed is improved, but the hit rate decreases compared to other cache structures

Engineering Contradiction:
Improvecache access speedVSAvoidcache hit rate
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent implements a dynamic caching strategy where the system adapts to workload patterns by allowing multiple buffer entries to share cache lines when they have identical filter keys. The cache structure dynamically adjusts its behavior based on the specific matching requirements, switching between direct-mapped and set-associative access patterns depending on the distribution of packet attributes in the current workload.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11456972B2Methods and arrangements to accelerate array searches
Publication Date: 2022.09.27 INTEL CORP
  • US11456972B2 patent drawing
  • US11456972B2 patent drawing
  • US11456972B2 patent drawing

AI summary

Logic may store at least a portion of an incoming packet at a memory location in a host device in response to a communication from the host device. Logic may compare the incoming packet to a digest in an entry of a primary array. When the incoming packet matches the digest, logic may retrieve a full entry from the secondary array and compare the full entry with the first incoming packet. When the full entry matches the first incoming packet, logic may store at least a portion of the first incoming packet at the memory location. And, in the absence of a match between the first incoming packet and the digest or full entry, logic may compare the first incoming packet to subsequent entries in the primary array to identify a full entry in the secondary array that matches the first incoming packet.