Dynamic USB Endpoint Memory Reuse

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current USB endpoint memory allocation is inefficient as it uses fixed, exclusive memory blocks for each endpoint, leading to underutilization of memory space when endpoints are not actively used, particularly in devices with multiple configurations and interfaces.

Innovation Solution

Implementing a system to reallocate USB endpoint memory dynamically based on active configurations and interfaces, allowing the same memory space to be reused across multiple endpoints, reducing the overall memory array size required.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If fixed, exclusive memory blocks are allocated for each USB endpoint, then memory allocation is simple and reliable, but memory utilization is inefficient and overall memory size increases

Engineering Contradiction:
Improvememory allocation reliabilityVSAvoidmemory array size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements dynamic memory allocation for USB endpoints by introducing a memory management unit that monitors endpoint activity status and reallocates memory blocks accordingly. Active endpoints retain their memory allocations while inactive endpoints have their memory released for reuse by other endpoints, transforming the static memory allocation scheme into a dynamic one that adapts to changing endpoint states.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies the discarding and recovering principle by identifying inactive endpoints and discarding their memory allocations. The freed memory blocks are then recovered and made available for allocation to endpoints in other configurations or interfaces, thereby reducing the total memory array size required while maintaining sufficient memory for active endpoints.

Inventive Principle:
Principle #34Discarding and recovering

2Adaptability or versatility

If maximum packet size memory is allocated for each endpoint, then all endpoints can be supported, but memory space is wasted when endpoints are not actively used

Engineering Contradiction:
Improveendpoint support capabilityVSAvoidmemory space utilization
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The patent implements universality by creating a pool of reusable memory blocks that can be allocated to any endpoint requiring them. Instead of dedicating maximum packet size memory to each endpoint permanently, the system maintains a universal memory pool that serves multiple endpoints across different configurations and interfaces, allowing the same memory space to fulfill multiple functions and support various endpoint requirements.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system dynamically adjusts memory allocation based on endpoint activity status. When endpoints become inactive, their memory allocations are released back to the pool. When endpoints become active, memory is allocated from the pool as needed. This dynamic allocation ensures that memory is always available for active endpoints while preventing waste on inactive ones.

Inventive Principle:
Principle #15Dynamics

3Reliability

If separate memory blocks are allocated for each configuration and interface, then endpoint access is reliable, but memory efficiency decreases due to unused memory portions

Engineering Contradiction:
Improveendpoint access reliabilityVSAvoidtotal memory required
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges the memory allocation schemes for different configurations and interfaces into a unified memory pool. Instead of maintaining separate memory blocks for each configuration and interface, the system combines all endpoint memory requirements into a single pool that is dynamically allocated based on which endpoints are currently active across any configuration or interface, thereby eliminating redundant memory allocations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified memory pool serves as a universal resource that can be allocated to endpoints from any configuration or interface. The memory blocks in the pool are not tied to specific configurations or interfaces but are available to any endpoint that requires them, making the memory system universal and adaptable to any combination of active endpoints regardless of their configuration or interface affiliations.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUSRE45457E1Memory reuse for multiple endpoints in USB device
Publication Date: 2015.04.07 MICRON TECHNOLOGY INC
  • USRE45457E1 patent drawing
  • USRE45457E1 patent drawing
  • USRE45457E1 patent drawing

AI summary

In a system in which individual memory banks may be under individual power control, a subsequent need for a memory bank that is currently in a low power state may be anticipated, so that the memory bank may be powered up in advance of when it is needed, to reduce or eliminate delays caused by waiting for the memory bank to power up and become operational. The anticipation may be based on accessing a predetermined location in another memory bank.