Transactional Memory CAMR Lookup for Network Processor Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network processor integrated circuits face challenges in efficiently handling increased throughput requirements due to limitations in processing power and memory access, particularly in identifying data structures using hash functions and logging packet and byte count information.

Innovation Solution

The Island-Based Network Flow Processor (IB-NFP) employs a novel transactional memory with a configurable Command/Push/Pull (CPP) data bus and dedicated hardware circuits, including an atomic engine, memory unit, and data bus interface, to perform Atomic Look-up Add and Lock (ALAL) and Stats Add-and-Update (AU) commands, as well as a hardware trie structure for efficient lookup operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple microengines are employed to increase processing power, then throughput is improved, but memory contention and processing complexity increase

Engineering Contradiction:
ImprovethroughputVSAvoidprocessing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments processing functions into dedicated hardware circuits (lookup engine, atomic engine, stats engine) separate from microengines. Each engine handles specific operations (CAMR lookups, atomic memory operations, statistics updates) independently, allowing multiple microengines to operate in parallel without contending for the same processing resources, thus increasing throughput while managing complexity through functional separation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a transactional memory system with dedicated hardware engines as intermediaries between microengines and memory. The atomic engine provides lock-free atomic operations, the lookup engine handles hash table and trie operations, and the stats engine manages statistics updates. These intermediaries absorb the complexity of memory management and data structure operations, allowing microengines to focus on packet processing while maintaining high throughput.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If hash functions and hash tables are used to identify data structures, then packet classification speed is improved, but memory access contention increases

Engineering Contradiction:
Improvepacket classification speedVSAvoidmemory access throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The system pre-organizes data into hash tables and tries with predetermined structures and bucket allocations. The lookup engine pre-calculates hash values and determines the appropriate data structure (hash table vs. trie) based on the operation type. This preliminary organization allows O(1) or O(log n) lookup time without requiring complex runtime memory allocation or restructuring, maintaining high classification speed while reducing memory access contention through predictable access patterns.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements multi-dimensional data structures including hash tables with multiple buckets, tries with multiple levels, and nested data structures. The lookup engine can switch between different data structure dimensions (e.g., from hash table to trie) based on the specific lookup requirements. This dimensional approach allows parallel access paths and reduces contention by distributing memory accesses across multiple dimensions rather than a single linear structure.

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

3Reliability

If atomic operations are performed on packets and packet data, then data integrity is improved, but processing time increases

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent replaces software-based atomic operations with hardware-implemented atomic engines that provide lock-free atomic memory operations. The atomic engine uses specialized hardware circuits to perform atomic read-modify-write operations, compare-and-swap operations, and other atomic primitives directly in hardware. This substitution eliminates the overhead of software locking mechanisms, context switching, and memory barriers, maintaining data integrity through hardware-enforced atomicity while significantly reducing processing time compared to software-based approaches.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9152452B2Transactional memory that performs a CAMR 32-bit lookup operation
Publication Date: 2015.10.06 NETRONOME SYSTEMS INC
  • US9152452B2 patent drawing
  • US9152452B2 patent drawing
  • US9152452B2 patent drawing

AI summary

A transactional memory (TM) receives a lookup command across a bus from a processor. The command includes a base address, a starting bit position, and a mask size. In response to the command, the TM pulls an input value (IV). A selecting circuit within the TM uses the starting bit position and the mask size to select a first portion of the IV. The first portion of the IV and the base address value are summed to generate a memory address. The memory address is used to read a word containing multiple result values and multiple reference values from memory. A second portion of the IV is compared with each reference value using a comparator circuit. A result value associated with the matching reference value is selected using a multiplexing circuit and a select value generated by the comparator circuit. The TM sends the selected result value to the processor.