Queue-Based Switching Memory Remapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing switching elements face inefficiencies in memory allocation and fragmentation due to the inability to effectively remap memory blocks across port pairs, leading to sparse allocation and reduced memory availability, especially during channel activation and deactivation.

Innovation Solution

A method for remapping allocated memory blocks in switching elements by identifying unallocated and allocated blocks, copying block information, and reallocating memory elements without interrupting data flow, allowing for the migration of blocks to optimize memory usage and free up memory elements for reallocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If dedicated storage is provided for each queue element, then data storage capability is improved, but memory fragmentation and allocation inefficiency worsen

Engineering Contradiction:
Improvedata storage capabilityVSAvoidmemory allocation efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent merges the storage resources of multiple queue elements by introducing shared memory regions. Instead of each queue element having dedicated storage, multiple queue elements can share the same physical memory blocks, thereby improving memory allocation efficiency while maintaining sufficient data storage capability through proper memory management mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If shared storage is allocated dynamically, then memory availability is improved, but data integrity and retrieval accuracy worsen

Engineering Contradiction:
Improvememory availabilityVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements feedback mechanisms through memory management tables that track which queue elements are currently using which memory blocks. This allows the system to dynamically allocate and deallocate memory while maintaining accurate records of data locations, ensuring data integrity is preserved even when multiple queue elements share storage resources.

Inventive Principle:
Principle #23Feedback

3Ease of operation

If memory is allocated when channels are activated, then channel provisioning is improved, but memory fragmentation increases during channel deactivation

Engineering Contradiction:
Improvechannel provisioningVSAvoidmemory fragmentation
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent prepares memory blocks in advance for potential reallocation by maintaining a pool of available memory regions. When channels are deactivated, the system can quickly reallocate these pre-prepared memory blocks to other active channels, preventing memory fragmentation and simplifying the memory management process during dynamic channel operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9397961B1Method for remapping of allocated memory in queue based switching elements
Publication Date: 2016.07.19 MICROSEMI SOLUTIONS US INC
  • US9397961B1 patent drawing
  • US9397961B1 patent drawing
  • US9397961B1 patent drawing

AI summary

A method of remapping allocated memory in a queue based switching element having first and second memory elements each allocated to a first port pair. An unallocated block of memory is identified in the first memory element as a candidate block, and an allocated block of memory is identified in the second memory element as a target block. Block information is copied from the target block to the candidate block, and the candidate block is maintained as unallocated. In response to a determination that read and write pointers are in a suitable position for a remapping operation, the candidate block is allocated and the target block is deallocated so that the second memory element becomes unallocated and available for reallocation to a second port pair.