Transactional Memory Split 32-bit Lookup for Network Processors

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 performing lookup operations across large datasets.

Innovation Solution

The Island-Based Network Flow Processor (IB-NFP) employs a novel transactional memory with a configurable Command/Push/Pull (CPP) data bus, allowing for efficient lookup operations through a state machine-based lookup engine that performs SPLIT 32-bit and ALUT 32-bit lookup commands, reducing bus transactions and enhancing processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional memory access methods are used in network processors, then memory operations can be performed, but processing throughput is limited due to multiple bus transactions required for lookup operations

Engineering Contradiction:
Improveprocessing throughputVSAvoidbus transaction time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent combines the comparison logic and memory access functions into a single integrated circuit within the transactional memory. The comparison unit compares the lookup key with stored keys, and the memory unit retrieves corresponding data, all within one bus transaction. This merging eliminates the need for separate comparison and memory access operations, thereby reducing bus transaction time and improving processing throughput.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent pre-stores comparison keys and their associated data in the transactional memory's memory unit. By having the comparison keys already available in the memory unit, the system can perform lookups by simply comparing the input key against pre-stored keys and retrieving the corresponding data in a single operation, eliminating the need for preliminary comparison operations before memory access.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple bus transactions are used for lookup operations, then comprehensive data can be accessed, but processing efficiency decreases due to increased transaction overhead

Engineering Contradiction:
Improvelookup operation efficiencyVSAvoidbus transaction complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the comparison unit and memory unit into a single integrated circuit, allowing both comparison and data retrieval to occur within one bus transaction. This integration simplifies the bus transaction process by eliminating multiple separate transactions, thereby improving lookup operation efficiency without significantly increasing device complexity.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The integrated circuit performs multiple functions including comparison, data retrieval, and result output within a single unit. The comparison unit compares lookup keys, the memory unit stores and retrieves data, and the result unit outputs findings, all within one transactional memory structure. This multi-functionality reduces the need for separate dedicated circuits for each operation, simplifying the overall system while improving efficiency.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9098353B2Transactional memory that performs a split 32-bit lookup operation
Publication Date: 2015.08.04 NETRONOME SYSTEMS INC
  • US9098353B2 patent drawing
  • US9098353B2 patent drawing
  • US9098353B2 patent drawing

AI summary

A transactional memory (TM) receives a lookup command across a bus from a processor. The command includes a memory address, a starting bit position, and a mask size. In response to the command, the TM pulls an input value (IV). The memory address is used to read a word containing multiple result values (RVs) and multiple threshold values (TVs) from memory. 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 is a lookup key value (LKV). The multiple TVs define multiple lookup key ranges. The TM determines which lookup key range includes the LKV. A RV is selected based upon the lookup key range determined to include the LKV. The lookup key range is determined by a lookup key range identifier circuit. The selected RV is selected by a result value selection circuit.