Memory Buffer Management for Variable RLC PDUs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory resource handling methods for radio receivers result in unnecessary memory allocation and potential buffer overflow due to pre-allocating maximum possible RLC PDU sizes, leading to waste of resources and risk of running out of buffer memory, especially under poor radio conditions.
Innovation Solution
A method that converts first data units into second data units with a user data section and a header section, storing them in a memory buffer such that the start address of one second data unit is linked to the end address of the previous one, optimizing memory usage and preventing buffer overflow by using a ring buffer architecture.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the memory buffer pre-allocates maximum possible RLC PDU size for each data unit, then the buffer can handle maximum size PDUs without overflow, but substantial memory resources are wasted when actual PDUs are smaller
Solution Approach 1:
The patent divides the memory buffer into multiple segments or slots, each capable of holding a data unit. Instead of allocating one large continuous block for each PDU, the buffer is segmented into smaller units that can be dynamically assigned. This allows the buffer to efficiently accommodate variable-sized PDUs without wasting memory space while maintaining the ability to handle maximum size PDUs when needed.
Solution Approach 2:
The patent implements dynamic memory allocation where the buffer allocation adapts to the actual size of incoming PDUs rather than using fixed pre-allocation. The buffer management system dynamically adjusts the allocation based on real-time requirements, allowing small PDUs to use minimal memory while reserving capacity for large PDUs when they arrive, thus eliminating both memory waste and buffer overflow risks.
2Ease of manufacture
If the memory buffer uses fixed pre-allocation during stack activation, then allocation is simple and fast, but it cannot adapt to varying RLC PDU sizes and results in memory waste
Solution Approach 1:
The patent performs preliminary setup of the buffer structure during stack activation, creating a pool of memory segments that are pre-configured but not yet assigned to specific PDUs. This preliminary action establishes the buffer framework in advance, ensuring fast allocation, while the actual assignment of segments to PDUs is deferred until the size is known, enabling adaptability to varying PDU sizes without waste.
Solution Approach 2:
The patent changes the allocation parameter from fixed size to variable size based on actual PDU requirements. The buffer management system adjusts the allocated memory size dynamically according to the actual PDU size, transitioning from a static pre-allocation model to a dynamic allocation model that adapts to different PDU sizes while maintaining allocation efficiency.
3Quantity of substance
If the buffer allocates maximum memory for each PDU to ensure sufficient buffering capacity, then enough buffer memory is available, but the buffer may run out under poor radio conditions with many retransmissions
Solution Approach 1:
The patent implements a nested buffer structure where multiple levels of buffering are organized hierarchically. The main buffer contains multiple segments that can be nested or sub-divided to accommodate multiple PDUs and retransmissions. This nested arrangement allows efficient utilization of buffer memory by organizing storage in a hierarchical manner, providing sufficient capacity for retransmissions while preventing buffer exhaustion through structured memory management.
Data Source
Figure 1
Figure 2
Figure 3~4
AI summary
A technique of handling memory resources of a memory buffer of a receiver is described. A method implementation of the technique comprises receiving first data units of varying size at the receiver, the first data units comprising a user data section including user data, converting the first data units into second data units, wherein the second data units respectively comprise a user data section including the user data of the corresponding first data units, and a header section including management data, and storing the second data units in the memory buffer such that a start address of a second data unit is linked, in accordance with the management data, to an end address of a further second data unit stored before the second data unit in the memory buffer.