Bank-Aware Multi-Bit Trie Memory Distribution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multi-bit trie data structures in network processing units face bank collisions due to uneven distribution of memory accesses across memory banks, which can lead to reduced performance, especially in scenarios where randomness and statistical distribution assumptions are invalid or not applicable, particularly in hardware with strict performance guarantees and limited on-chip memory.

Innovation Solution

Implementing a bank-aware multi-bit trie that distributes mtrie levels across multiple memory banks, ensuring all mtrie nodes in a given block are stored in the same bank and subsequent mtrie blocks are stored in different banks, thereby evenly distributing memory accesses across banks and minimizing bank collisions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If mtrie nodes are stored in contiguous memory blocks, then space efficiency is improved, but bank collisions increase due to uneven distribution of memory accesses across banks

Engineering Contradiction:
Improvespace efficiencyVSAvoidthroughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent divides the mtrie structure into multiple blocks distributed across different memory banks. Specifically, it segments the mtrie such that different levels or subsets of nodes are placed in different banks, allowing parallel access to multiple banks during lookup operations and reducing bank collision conflicts

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by storing mtrie nodes with similar access patterns together in the same memory bank while distributing different access patterns across different banks. This ensures that frequently accessed nodes are localized in specific banks, improving cache utilization and reducing bank collision for those access patterns

Inventive Principle:
Principle #3Local quality

2Productivity

If mtrie blocks are distributed across different memory banks, then bank collisions are reduced, but memory access complexity increases

Engineering Contradiction:
ImprovethroughputVSAvoidmemory access complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs preliminary action by pre-computing and storing the mapping between mtrie node addresses and their corresponding memory bank locations during the construction phase. This pre-computed mapping information is embedded in the data structure, allowing the lookup operation to directly determine which bank to access without complex runtime calculations

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mapping layer between the mtrie logical structure and the physical memory banks. This intermediary structure translates logical node addresses to physical bank locations, simplifying the access pattern by providing a direct translation mechanism rather than requiring complex address calculation and bank selection logic

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8472350B2Bank aware multi-bit trie
Publication Date: 2013.06.25 TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
  • US8472350B2 patent drawing
  • US8472350B2 patent drawing
  • US8472350B2 patent drawing

AI summary

Embodiments of the invention include a method performed by a bank aware mtrie control module for distributing a plurality of mtrie levels across a plurality of memory banks. The bank aware mtrie control module identifies the plurality of memory banks present and identifies one or more mtrie blocks in one or more mtrie levels, each mtrie block is an array of mtrie nodes associated with an mtrie level. The bank aware mtrie control module stores each mtrie block in one of the plurality of memory banks, all mtrie nodes in a given mtrie block are stored in the same memory bank. For each subsequent mtrie level, the bank aware mtrie control module ensures that each of the mtrie blocks in that mtrie level is stored in one of the plurality of memory banks other than the memory bank storing mtrie blocks of an immediately previous mtrie level.