Network Router Memory Organization for Packet Forwarding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network routers require significant memory space and computational resources to store and compare destination addresses, leading to inefficiencies in data packet forwarding due to the variable length of compressed keys from Huffman coding.

Innovation Solution

A circuit and method that organize destination addresses by key bit length in subsidiary data stores, allowing for efficient comparison and forwarding by dividing data stores into blocks of identical data element length, utilizing a control device to generate key association identifiers and distribute coded keys for optimized comparison.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Volume of stationary object

If destination addresses are compressed using Huffman coding to reduce memory space, then memory space requirements are reduced, but the variable key bit length reduces throughput during address comparison

Engineering Contradiction:
Improvememory spaceVSAvoidthroughput
Core Design Contradiction:
Volume of stationary objectVSProductivity

Solution Approach 1:

The data store is segmented into T subsidiary data stores, each dedicated to storing coded keys of a specific bit length. This segmentation allows the system to maintain the memory space savings from Huffman compression while eliminating the throughput problem by ensuring that coded keys are compared only within their corresponding subsidiary data store, thus fully utilizing the comparator resources.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If all destination addresses are stored in a single data store, then device complexity is reduced, but comparison efficiency decreases due to unnecessary comparisons with keys of different bit lengths

Engineering Contradiction:
Improvedata store structureVSAvoidcomparison efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The single data store is divided into T subsidiary data stores, where T represents the number of different possible key bit lengths. Each subsidiary data store contains only coded keys of a specific bit length, which eliminates unnecessary comparisons and improves comparison efficiency while maintaining manageable device complexity through systematic organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The data store organization adds a new dimension of classification based on key bit length. Instead of a single flat storage structure, the system uses multiple subsidiary data stores indexed by bit length, allowing the control device to quickly identify and access the appropriate subsidiary data store for comparison, thus improving efficiency without significantly increasing overall complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS7457294B2Circuit and a method for forwarding data packets in a network
Publication Date: 2008.11.25 MAXLINEAR INC
  • US7457294B2 patent drawing
  • US7457294B2 patent drawing
  • US7457294B2 patent drawing

AI summary

In a method for forwarding data packets in a network a circuit comprises a data storage and a control device. Each data packet has a destination address and the data storage comprises T data sub-storages for storing all network addresses which are coded by a particular coding method on the basis of their respective key bit length in precisely one of the data sub-storages. The t-th data sub-storage is divided into blocks having D data elements of identical data element bit length, where tε[1, . . . , T] and D is the smallest common multiple of tε[1, . . . , T]. The control device receives data packets, each having a destination address, codes a destination address of a received data packet using the particular coding method to produce a coded key, and compares the coded key on the basis of its key bit length with the coded addresses stored in the corresponding data sub-store block by block in order to forward the respective data packet via an output to the destination address whose associated coded address matches the coded key from the respective received data packet.