Vector Matching Using Mask-and-Count Logic for IPv6 LPM

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current vector matching techniques in data communication networks, such as those used for Internet Protocol (IP) routing, face challenges with increased address lengths and traffic volumes, leading to higher memory requirements and latency due to the need for longer prefix matches, especially with the transition from IPv4 to IPv6, which uses 128-bit addresses.

Innovation Solution

A method and apparatus for calculating a composite index into a compressed address space based on a longest prefix match (LPM) using a combination of mask-and-count logic and variable shift registers, allowing for efficient storage and retrieval of data by compressing population counts and eliminating null and duplicate entries, thereby reducing memory usage and latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If address length is increased from IPv4 (32-bit) to IPv6 (128-bit), then addressing capacity is improved, but memory size and lookup latency increase

Engineering Contradiction:
Improveaddressing capacityVSAvoidmemory size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent divides the 128-bit IPv6 address into multiple smaller segments or strides (e.g., multiple 32-bit or 16-bit segments). Each segment is processed separately through hierarchical indexing, allowing the large address space to be broken down into manageable chunks that fit within available memory structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces hierarchical indexing with multiple dimensions (e.g., first-level index, second-level index, third-level index) to organize the address space. Instead of a single linear memory structure, the address lookup transitions through multiple indexing levels, effectively adding dimensional organization to reduce memory requirements.

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

2Adaptability or versatility

If address length is increased from IPv4 (32-bit) to IPv6 (128-bit), then addressing capacity is improved, but lookup latency increases

Engineering Contradiction:
Improveaddressing capacityVSAvoidlookup latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent divides the 128-bit IPv6 address into multiple smaller segments or strides (e.g., multiple 32-bit or 16-bit segments). Each segment is processed separately through hierarchical indexing, allowing the large address space to be broken down into manageable chunks that fit within available memory structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent pre-computes and stores hierarchical index structures during memory initialization or updates. The multi-level indexing tables are prepared in advance, allowing runtime lookups to simply traverse the pre-built index hierarchy rather than performing complex searches on the full 128-bit address space.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If memory size is increased to store larger address spaces, then addressing capacity is improved, but memory bandwidth consumption increases

Engineering Contradiction:
Improveaddressing capacityVSAvoidmemory bandwidth consumption
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The patent divides the 128-bit IPv6 address into multiple smaller segments or strides (e.g., multiple 32-bit or 16-bit segments). Each segment is processed separately through hierarchical indexing, allowing the large address space to be broken down into manageable chunks that fit within available memory structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates sparse index structures that only allocate memory for actually used address prefixes rather than allocating memory for all possible address combinations. This localized allocation means memory bandwidth is only consumed for relevant index entries that contain actual routing information.

Inventive Principle:
Principle #3Local quality

4Quantity of substance

If sequential strides are used to parse addresses, then memory usage is reduced, but latency increases due to sequential processing

Engineering Contradiction:
Improvememory usageVSAvoidprocessing latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent divides the 128-bit IPv6 address into multiple smaller segments or strides (e.g., multiple 32-bit or 16-bit segments). Each segment is processed separately through hierarchical indexing, allowing the large address space to be broken down into manageable chunks that fit within available memory structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent combines multiple indexing operations into a single hierarchical lookup process. Rather than performing separate sequential searches for each address segment, the hierarchical index structure allows all segments to be processed together through a unified multi-level indexing mechanism, reducing the number of sequential memory accesses required.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10339043B1System and method to match vectors using mask and count
Publication Date: 2019.07.02 MOSYS INC
  • US10339043B1 patent drawing
  • US10339043B1 patent drawing
  • US10339043B1 patent drawing

AI summary

An apparatus, system, and method is described for calculating a composite index into a customizable hybrid address space that is at least partially compressed to locate a longest prefix match (“LPM”) of a prefix string comprised of a plurality of multi-bit strides (“MBSs”). The device comprises: a mask-and-count logic for generating a base index into memory for a first MBS whose addresses are not compressed; a logical-shift apparatus that selectively uses a variable portion of the second MBS to generate an offset index from the given base index per an amount the second MBS addresses were actually compressed; and an add logic that adds the base index to the offset index to form the composite index that locates the LPM using a single access into memory. A compressed vector contains compression information of the second MBS in an information density format greater than a single bit to a single address.