Indirection Tables for Adaptive Forwarding Table Memory Distribution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing forwarding tables in network devices face inefficiencies due to imperfect hashing techniques, leading to unused memory spaces and increased costs and power consumption, as they struggle to evenly distribute forwarding information across all devices in a network infrastructure.

Innovation Solution

The implementation of indirection tables that dynamically redirect hash values to different memory locations, ensuring more even distribution of forwarding information and reducing unused memory spaces, thereby minimizing costs and power usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If hash functions are used to index forwarding table entries, then data retrieval speed is improved, but memory utilization deteriorates due to unused entries

Engineering Contradiction:
Improvedata retrieval speedVSAvoidmemory utilization
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

An indirection table is introduced as an intermediary layer between the hash function and the forwarding table. The hash function indexes into the indirection table rather than directly into the forwarding table, allowing multiple hash values to map to the same indirection table entry, which then points to the actual forwarding table entry. This mediator resolves hash collisions and improves memory utilization while maintaining fast retrieval through the hash-based indexing mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If forwarding table size is increased to accommodate all possible entries, then memory utilization is improved, but system cost and power consumption worsen

Engineering Contradiction:
Improvememory utilizationVSAvoidpower consumption
Core Design Contradiction:
Quantity of substanceVSUse of energy by stationary object

Solution Approach 1:

The system dynamically adjusts the mapping between hash values and forwarding table entries through the indirection table. Rather than allocating fixed memory for all possible hash entries, the indirection table adaptively maps only the necessary forwarding entries that are actually used, allowing the system to optimize memory allocation based on real traffic patterns and reduce power consumption by activating only the memory regions that are currently needed.

Inventive Principle:
Principle #15Dynamics

3Quantity of substance

If hash function distribution is optimized for even entry usage, then memory utilization is improved, but hashing complexity worsens

Engineering Contradiction:
Improvememory utilizationVSAvoidhashing complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The complexity of achieving even distribution is extracted from the hash function itself and transferred to the indirection table. The hash function can use simple, fast hashing algorithms without worrying about distribution optimization, while the indirection table handles the redistribution logic to ensure even utilization of forwarding table entries. This separation of concerns maintains hashing simplicity while achieving balanced memory usage.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10348603B1Adaptive forwarding tables
Publication Date: 2019.07.09 AMAZON TECH INC
  • US10348603B1 patent drawing
  • US10348603B1 patent drawing
  • US10348603B1 patent drawing

AI summary

Disclosed are techniques for implementing a device with memory comprising a data table, the data table configured to store a plurality of elements in buckets, wherein each of the plurality of buckets contains a plurality of elements. The memory can further comprise an indirection table, the indirection table comprising a plurality of bucket reference storage locations and a plurality of hash reference storage locations. The device can include processing logic configured to generate a plurality of hash values using information to be inserted into the data table and locate a hash reference stored in one of the plurality of hash reference storage locations corresponding to one of the plurality of hash values. The processing logic can further locate a bucket of the plurality of buckets corresponding to the one of the plurality of hash values.