Recursive Hardware Lookup in Transactional Memory for Network Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network processor integrated circuits face challenges in efficiently managing packet traffic and data structures, particularly in handling increased throughput requirements, where existing architectures struggle to optimize processing power and memory access efficiently.
Innovation Solution
The Island-Based Network Flow Processor (IB-NFP) employs a novel transactional memory with a configurable Command/Push/Pull data bus and dedicated hardware circuits, including state machines and pipelines, to perform atomic operations, hash table lookups, and data structure management, enabling efficient processing and memory operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple microengines are employed to increase processing power, then throughput capability is improved, but device complexity increases
Solution Approach 1:
The network processor is divided into multiple independent microengines that can be dynamically configured. Each microengine is a self-contained processing unit that can independently execute packet processing tasks, allowing the system to scale throughput by activating more microengines without proportionally increasing overall system complexity.
Solution Approach 2:
The system employs dynamic configuration where the number of active microengines can be adjusted based on throughput requirements. When higher throughput is needed, additional microengines are activated; when lower throughput is sufficient, fewer microengines are active, optimizing the balance between performance and complexity.
2Productivity
If more microengines are activated to handle increased throughput, then processing power is improved, but memory access efficiency deteriorates
Solution Approach 1:
The memory access functionality is segmented and distributed across multiple microengines, each with its own local memory access resources. This segmentation reduces contention for shared memory bandwidth and allows parallel memory operations, improving overall memory access efficiency as more microengines are activated.
Solution Approach 2:
The system introduces a hierarchical memory architecture that adds an additional dimension to memory access. This includes local caches and buffers at the microengine level before accessing main memory, reducing the impact of increased microengine numbers on shared memory access efficiency.
3Reliability
If atomic operations are performed using conventional methods, then data structure management is achieved, but processing speed is limited
Solution Approach 1:
Conventional software-based atomic operations are replaced with dedicated hardware circuits that perform atomic operations at the hardware level. These hardware circuits include atomic engines and memory management units that execute atomic read-modify-write operations without software intervention, dramatically increasing processing speed while maintaining data structure management reliability.
Solution Approach 2:
Hardware intermediaries such as atomic engines and memory management circuits are introduced between the microengines and main memory. These intermediaries handle atomic operations and memory access control, freeing the main processing units to focus on packet processing tasks at higher speeds.
Data Source
AI summary
A lookup engine of a transactional memory (TM) has multiple hardware lookup structures, each usable to perform a different type of lookup. In response to a lookup command, the lookup engine reads a first block of first information from a memory unit. The first information configures the lookup engine to perform a first type of lookup, thereby identifying a first result value. If the first result value is not a final result value, then the lookup engine uses address information in the first result value to read a second block of second information. The second information configures the lookup engine to perform a second type of lookup, thereby identifying a second result value. This process repeats until a final result value is obtained. The type of lookup performed is determined by the result value of the preceding lookup and/or type information of the block of information for the next lookup.


