Hierarchical Bitmap Tree for Network Memory Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional network devices face performance issues due to increased time and resource consumption when searching for free memory blocks or allocating/deallocating resources using bitmaps, leading to slowed performance as the number of memory blocks and resources grows.

Innovation Solution

Implementing a hierarchical bitmap tree with a root node, lookup indexes, leaf nodes, and objects that facilitate accelerated memory location searches by traversing through indices to identify unallocated memory locations efficiently, thereby improving memory management and allocation processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a traditional fixed-size block allocator uses a bitmap to manage memory blocks, then memory management can be implemented, but the time needed to search the bitmap for free memory blocks increases as the number of memory blocks increases

Engineering Contradiction:
Improvenumber of memory blocksVSAvoidtime to search bitmap
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent divides the traditional flat bitmap into a hierarchical structure with multiple levels: root level, intermediate levels with lookup tables, and leaf levels with actual bitmap data. This segmentation allows the system to search only relevant portions of the bitmap rather than scanning the entire structure, reducing search time as the number of memory blocks increases.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a one-dimensional flat bitmap to a multi-dimensional hierarchical structure. By adding spatial dimensions through levels and lookup tables, the system can navigate to specific regions of the bitmap more efficiently, converting a linear search problem into a multi-step indexed access problem that scales better.

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

2Quantity of substance

If the number of memory blocks increases, then memory capacity increases, but the amount of computing resources consumed during searches increases

Engineering Contradiction:
Improvememory capacityVSAvoidcomputing resources during searches
Core Design Contradiction:
Quantity of substanceVSUse of energy by moving object

Solution Approach 1:

The patent pre-computes and stores lookup tables at intermediate levels that map index values to specific regions of the bitmap. This preliminary action allows the search process to jump directly to relevant sections without scanning unrelated memory blocks, significantly reducing the computing resources required as memory capacity grows.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If a traditional bitmap is used for memory allocation, then simplicity is maintained, but performance slows down as the system grows

Engineering Contradiction:
Improvebitmap structureVSAvoidallocation performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements a nested hierarchical structure where root nodes contain references to intermediate nodes, which in turn contain references to leaf nodes with actual bitmap data. This nested organization maintains a manageable structure at each level while enabling efficient searches across the entire memory space, resolving the trade-off between structural simplicity and performance.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS10303671B1Apparatus, system, and method for accelerating bitmap lookups in network devices
Publication Date: 2019.05.28 JUNIPER NETWORKS INC
  • US10303671B1 patent drawing
  • US10303671B1 patent drawing
  • US10303671B1 patent drawing

AI summary

The disclosed apparatus may include a processing unit may manage memory in connection with a computing device by (1) searching a root index of a root node for a bit indicating that a specific lookup index within the root node corresponds to a leaf node that references an unallocated memory location, (2) identifying, within the specific lookup index, a bit indicating that a specific leaf node references the unallocated memory location, (3) searching a leaf index of the specific leaf node for a bit indicating that a specific object within the leaf node corresponds to the unallocated memory location, (4) identifying, within the specific object, a bit that corresponds to a specific memory location and indicates that the specific memory location is currently unallocated, and then (5) allocating the specific memory location for use by the computing device. Various other apparatuses, systems, and methods are also disclosed.