Transactional Memory 24-BIT 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 and a stats engine, to perform Atomic Look-up, Add, and Lock (ALAL) commands, Stats Add-and-Update (AU) commands, and lookup operations using a hardware trie structure, optimizing hash table operations and packet counting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

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

Engineering Contradiction:
ImprovethroughputVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system is divided into multiple independent microengines (processing units) that can operate simultaneously on different packet data. Each microengine has its own program counter and registers but shares common resources through the CPP bus, allowing parallel processing while maintaining individual control streams.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple microengines are merged into a single integrated circuit chip with shared memory resources and a common CPP bus interconnect. This consolidation allows multiple processing units to work together efficiently while reducing the need for separate physical devices, thereby increasing throughput without linearly increasing overall system complexity.

Inventive Principle:
Principle #5Merging (Combining)

2Speed

If hash table operations are performed using conventional memory access, then data structure identification is achieved, but processing speed is limited by memory access bottlenecks

Engineering Contradiction:
Improveprocessing speedVSAvoidthroughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The CPP bus enables continuous data transfer between microengines and memory resources without idle cycles. The pull and push operations allow data to be fetched and stored in continuous streams, eliminating wait states and keeping processing units constantly utilized, thereby maintaining high processing speed and throughput simultaneously.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The CPP bus acts as an intermediary between microengines and memory resources, providing a high-speed communication channel that mediates data access. This intermediary bus with separate command and data paths reduces contention by allowing multiple operations to be pipelined and executed concurrently, overcoming traditional memory access bottlenecks.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If packet count and byte count information are logged to memory, then statistics are maintained, but memory access time and processing delay increase

Engineering Contradiction:
Improvestatistics accuracyVSAvoidprocessing delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Counters for packet and byte counts are pre-configured in the microengine registers and are updated atomically during packet processing. The statistics are accumulated in registers first, then written to memory in batch operations rather than accessing memory for every single count update, thereby maintaining accurate statistics while minimizing memory access time and processing delay.

Inventive Principle:
Principle #10Preliminary action

4Device complexity

If a common command/push/pull bus is used for resource sharing, then device complexity is reduced, but memory contention and access conflicts increase

Engineering Contradiction:
Improvedevice complexityVSAvoidmemory access reliability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The CPP bus implements dynamic arbitration and timing control where microengines can issue commands and data transfers are scheduled based on current system state. The bus controller dynamically manages access rights, prioritizing critical operations and handling conflicts through intelligent scheduling, thereby maintaining system reliability while using a shared bus structure.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9098264B2Transactional memory that performs a direct 24-BIT lookup operation
Publication Date: 2015.08.04 NETRONOME SYSTEMS INC
  • US9098264B2 patent drawing
  • US9098264B2 patent drawing
  • US9098264B2 patent drawing

AI summary

A transactional memory (TM) receives a lookup command across a bus from a processor. Only final result values are stored in memory. The command includes a base address, a starting bit position, and mask size. In response to the lookup command, the TM pulls an input value (IV). A selecting circuit within the TM uses the starting bit position and mask size to select a portion of the IV. The portion of the IV and the base address are used to generate a memory address. The memory address is used to read a word containing multiple result values (RVs) from memory. One RV from the word is selected using a multiplexing circuit and a result location value (RLV) generated from the portion of the IV. A word selector circuit and arithmetic circuits are used to generate the memory address and RLV. The TM sends the selected RV to the processor.