Hardware Memory Resource Allocation via Mapped Registers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In data networks, input/output systems spend excessive CPU cycles managing memory resources, such as data buffers and memory descriptors, which limits performance and reduces the capacity for higher-level functions due to the high rate of buffer management operations.
Innovation Solution
A method and system for memory resource allocation using a memory mapped register interface and an array of pool-specific configuration records stored in hardware registers or RAM, where memory resource allocation requests are serviced by interacting with resource lists using pointers in the configuration records, advancing and updating these pointers to efficiently allocate and deallocate memory resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If software manages memory resources for buffer allocation and deallocation, then memory management functionality is achieved, but CPU cycles are excessively consumed
Solution Approach 1:
The patent replaces software-based memory management with a hardware-based system using memory-mapped I/O registers. The hardware buffer manager directly manages buffer pools through register operations, eliminating the need for software intervention in buffer allocation and deallocation, thus drastically reducing CPU cycle consumption while maintaining high management operation rates
Solution Approach 2:
The hardware buffer manager autonomously handles buffer allocation and deallocation without requiring software management. The system uses pointer fields in configuration records to automatically track and manage buffer resources, enabling self-service operation that frees CPU cycles for higher-level functions
2Productivity
If hardware-based memory resource allocation is implemented, then CPU cycles are conserved, but system complexity increases
Solution Approach 1:
The hardware buffer manager is designed as a universal memory management unit that can handle multiple buffer pools through memory-mapped registers. The same hardware structure serves multiple functions (allocation, deallocation, tracking) across different buffer pools, reducing overall system complexity despite the hardware-based approach
Solution Approach 2:
The patent uses configurable parameters stored in memory-mapped registers (such as pointer fields, pool identifiers, and buffer descriptors) to control the hardware buffer manager's behavior. By changing these parameters, the system can adapt to different memory management scenarios without requiring complex control logic, thus managing complexity through parameterization
3Adaptability or versatility
If memory buffers are shared among multiple entities, then resource utilization is improved, but access coordination becomes complex requiring shared memory locks
Solution Approach 1:
The patent replaces software-based access coordination (locks) with hardware-based pointer management. The hardware buffer manager uses pointer fields in configuration records to track buffer allocation states, enabling multiple entities to access shared buffers without requiring complex locking mechanisms, thus simplifying access coordination while maintaining versatile sharing capability
Data Source
AI summary
Methods and systems for memory resource allocation are disclosed. In an embodiment, a method for memory resource allocation involves reading a pool-specific configuration record from an array of memory mapped pool-specific configuration records according to a memory resource allocation request that is held in an address register of a memory mapped register interface, performing a memory resource allocation operation to service the memory resource allocation request, wherein performing the memory resource allocation operation involves interacting with a resource list according to a pointer in the pool-specific configuration record, advancing the pointer after the interaction, and updating the pointer in the pool-specific configuration record with the advanced pointer.


