Memory management method, device and equipment and computer storage medium
By adopting a combination of pre-allocated and dynamically allocated memory pools in the base station, the memory usage problem caused by the increase of 5G users is solved, and efficient memory management and data transmission rate guarantee is achieved.
Patent Information
- Application Number
- CN202310944680.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-28
- Publication Date
- 2025-02-14
AI Technical Summary
With the increase in 5G users, the memory usage of the base station continues to increase, especially in the RLC confirmation mode. The method of pre-allocating all memory leads to memory waste, while dynamic allocation of memory may affect data transmission efficiency.
The method of pre-allocating memory pools as the main method and dynamically allocating memory pools as the auxiliary method. When the RLC entity is initially established, the first memory space is allocated to all users in advance, and when the utilization rate of the first memory space reaches a certain threshold, the second memory space is dynamically allocated to ensure the efficiency of data transmission and the reasonable use of memory.
Through this method, the time overhead of memory allocation during RLC entity transmission is reduced, the transmission rate between the terminal and the network device is ensured, and the memory usage and allocation time are reduced by limiting the size of the pre-allocated memory pool. Solve the problem of insufficient memory in extreme cases.
Smart Images

Figure CN119449749A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication technology, and in particular to a memory management method, device, equipment and computer storage medium. Background Art
[0002] As the number of 5G users continues to increase, the memory occupied by base stations is also increasing. Memory optimization is needed to ensure the expansion of base station multi-user capacity. In multi-user scenarios, a large amount of memory needs to be allocated for the Acknowledged Mode (AM) of the Radio Link Control (RLC) layer.
[0003] In RLC AM mode, if the sent protocol data unit (PDU) does not receive the corresponding ACK character, it will be retransmitted. In order to achieve retransmission, the sender needs to save the original RLC PDU data, which means that the base station must maintain AM_Window_Size (sending window size) buffers to store AM mode PDU data and corresponding control information.
[0004] In this regard, the base station can pre-allocate all memory, that is, allocate AM_Window_Size buffers when the RLC entity is created. However, under normal circumstances, due to the limitation of the maximum transmission capacity of the base station, the user rate will not reach the maximum, and some users may not transmit data for a period of time, resulting in memory waste. At the same time, this allocation method occupies a large amount of memory in the case of multiple users, especially for the case where the PDU sequence number (SN, Serial Number) is 18 bits, and its sending window size is 131072. The memory pool that needs to be pre-allocated based on the sending window size occupies a huge amount of memory, which is difficult to implement hardware support. In addition, the base station can also adopt the method of dynamically allocating memory, but although this method reduces memory usage, it often needs to consider the amount of data to be cached, and the time for allocating memory is long, which will affect normal data transmission. Summary of the invention
[0005] To solve the existing technical problems, the embodiments of the present invention provide a memory management method, apparatus, device and computer storage medium.
[0006] To achieve the above object, the technical solution of the embodiment of the present invention is implemented as follows:
[0007] In a first aspect, an embodiment of the present invention provides a memory management method, comprising:
[0008] The network device allocates a first memory space corresponding to a first window threshold for an RLC entity in confirmation mode; the first window threshold is less than or equal to a sending window size of the RLC entity;
[0009] When the usage status of the first memory space meets the first condition, the second memory space is allocated; the first memory space and the second memory space are both used to cache the relevant data of the RLC entity sent by the network device to the terminal.
[0010] In the above scheme, when the usage status of the first memory space meets the first condition, allocating the second memory space includes: obtaining the memory usage rate of the first memory space; and allocating the second memory space when the memory usage rate is greater than a first threshold.
[0011] In the above scheme, the method further includes: releasing the second memory space when the memory usage rate is less than a second threshold and all RLC entities cached in the second memory space have received corresponding confirmation messages.
[0012] In the above scheme, the network device allocates a first memory space corresponding to a first window threshold for the RLC entity in confirmation mode, including: the network device determines a first memory size based on the first window threshold, the maximum number of cells supported by the network device, the maximum number of terminals supported by each cell, the number of confirmation mode logical channels corresponding to each terminal, and the total memory of the RLC entity; wherein the total memory of the RLC entity includes the sum of the memory size occupied by the data information of the RLC entity and the memory size occupied by the control information; and the first memory space is allocated according to the first memory size.
[0013] In the above scheme, when the SN size corresponding to the RLC entity is 18 bits, the first window threshold is related to the first variable, the maximum data rate supported by the terminal, the timing value of the reorganization timer and the maximum memory value of the RLC entity, wherein the reorganization timer is used to actively trigger the reply of the confirmation message; the first variable is used to adjust the numerical value of the first window threshold.
[0014] In the above solution, the first window threshold satisfies:
[0015] AM_Window_Size_Thres
[0016] =N×maxDLDataRate×ReassemblyTimer / maxRLCSize
[0017] Among them, AM_Window_Size_Thres represents the first window threshold, N represents the first variable, maxDLDataRate represents the maximum data rate supported by the terminal, ReassemblyTimer represents the timing value of the reassembly timer, and maxRLCSize represents the maximum memory value of the RLC entity.
[0018] In the above scheme, allocating the second memory space includes: the network device determines the second memory size based on a second variable and the maximum memory value of the RLC entity, and the second variable is used to adjust the second memory size; allocating the second memory space according to the second memory size.
[0019] In the above solution, when the SN size corresponding to the RLC entity is 12 bits, the first window threshold is equal to the sending window size of the RLC entity.
[0020] In a second aspect, an embodiment of the present invention provides a memory management device, including a first processing unit and a second processing unit; wherein:
[0021] The first processing unit is configured to allocate a first memory space corresponding to a first window threshold for an RLC entity in confirmation mode; the first window threshold is less than or equal to a sending window size of the RLC entity;
[0022] The second processing unit is used to allocate a second memory space when the usage status of the first memory space meets a first condition; the first memory space and the second memory space are both used to cache relevant data of the RLC entity sent by the network device to the terminal.
[0023] In the above solution, the second processing unit is used to obtain the memory usage rate of the first memory space, and allocate the second memory space when the memory usage rate is greater than a first threshold.
[0024] In the above scheme, the second processing unit is further used to release the second memory space when the memory usage rate is less than a second threshold and all RLC entities cached in the second memory space have received corresponding confirmation messages.
[0025] In the above scheme, the first processing unit is used to determine the first memory size based on the first window threshold, the maximum number of cells supported by the network device, the maximum number of terminals supported by each cell, the number of confirmation mode logical channels corresponding to each terminal, and the total memory of the RLC entity; wherein the total memory of the RLC entity includes the sum of the memory size occupied by the data information of the RLC entity and the memory size occupied by the control information; and the first memory space is allocated according to the first memory size.
[0026] In the above scheme, when the SN size corresponding to the RLC entity is 18 bits, the first window threshold is related to the first variable, the maximum data rate supported by the terminal, the timing value of the reorganization timer and the maximum memory value of the RLC entity, wherein the reorganization timer is used to actively trigger the reply of the confirmation message; the first variable is used to adjust the numerical value of the first window threshold.
[0027] In the above solution, the first window threshold satisfies:
[0028] AM_Window_Size_Thres
[0029] =N×maxDLDataRate×ReassemblyTimer / maxRLCSize
[0030] Among them, AM_Window_Size_Thres represents the first window threshold, N represents the first variable, maxDLDataRate represents the maximum data rate supported by the terminal, ReassemblyTimer represents the timing value of the reassembly timer, and maxRLCSize represents the maximum memory value of the RLC entity.
[0031] In the above scheme, the second processing unit is used to determine the second memory size based on a second variable and the maximum memory value of the RLC entity, and the second variable is used to adjust the second memory size; and allocate the second memory space according to the second memory size.
[0032] In the above solution, when the SN size corresponding to the RLC entity is 12 bits, the first window threshold is equal to the sending window size of the RLC entity.
[0033] In a third aspect, an embodiment of the present invention provides a computer-readable storage medium having computer instructions stored thereon, which, when executed by a processor, implement the steps of the memory management method in the aforementioned embodiment.
[0034] In a fourth aspect, an embodiment of the present invention provides a network device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of the memory management method in the aforementioned embodiment when executing the program.
[0035] The embodiment of the present invention provides a memory management method, apparatus, device and computer storage medium, which mainly adopts pre-allocated memory pool and supplemented by dynamically allocated memory pool, and can pre-allocate memory pool when initially establishing RLC entity.
[0036] The first memory space is first allocated to all users, which reduces the time overhead caused by allocating memory during RLC entity transmission, ensures the transmission rate between the terminal and the network device, and limits the size of the pre-allocated memory pool through the first window threshold, which can not only reduce the memory and its allocation time, but also solve the problem of insufficient pre-allocated memory pool in extreme cases. BRIEF DESCRIPTION OF THE DRAWINGS
[0037] Figure 1 The process diagram of the memory management method according to the embodiment of the present invention is as follows: Figure 1 ;
[0038] Figure 2 It is a schematic diagram of a PDU structure in an RLC confirmation mode in the related art;
[0039] Figure 3 It is a schematic diagram of a sending window corresponding to an RLC PDU in the related art when the SN size is 18 bits;
[0040] Figure 4 The process diagram of the memory management method according to the embodiment of the present invention is as follows: Figure 2 ;
[0041] Figure 5 A schematic diagram of the structure of a memory management device according to an embodiment of the present invention;
[0042] Figure 6 The figure is a schematic diagram of the structure of a network device according to an embodiment of the present invention. DETAILED DESCRIPTION
[0043] In the embodiments of the present invention, the term "and / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B may represent three situations: A exists alone, A and B exist at the same time, and B exists alone. The character " / " generally indicates that the associated objects before and after are in an "or" relationship.
[0044] In the embodiments of the present application, the term "plurality" refers to two or more than two, and other quantifiers are similar.
[0045] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0046] The technical solution provided in the embodiment of the present application can be applicable to a variety of systems, especially 5G systems. For example, applicable systems may be global system of mobile communication (GSM, Global System of Mobile Communication) system, code division multiple access (CDMA, Code Division Multiple Access) system, wideband code division multiple access (WCDMA, Wide band Code Division Multiple Access), general packet radio service (GPRS, General Packet Radio Service) system, long term evolution (LTE, Long Term Evolution) system, LTE frequency division duplex (FDD, Frequency Division Duplex) system, LTE time division duplex (TDD, Time Division Duplex) system, advanced long term evolution (LTE-A, Long Term Evolution Advanced) system, universal mobile system (UMTS, Universal Mobile Telecommunication System), global interconnection microwave access (WiMAX, Worldwide interoperability for Microwave Access) system, 5G new air interface (NR, New Radio) system, etc. These various systems include terminal equipment and network equipment. The system may also include a core network part, such as an evolved packet system (EPS), a 5G system (5GS), etc.
[0047] In communication systems such as 5G communication systems and LTE communication systems, the user plane protocol is mainly divided into four layers, namely, Packet Data Convergence Protocol (PDCP), Radio Link Control Layer (RLC), Medium Access Control (MAC) and Physical Layer (PLY).
[0048] The working modes of RLC include transparent mode (TM), unacknowledged mode (UM), and acknowledged mode (AM). The RLC involved in the embodiments of the present application works in acknowledged mode.
[0049] The network device involved in the embodiment of the present application may be a base station, which may include multiple cells providing services for the terminal. Depending on the specific application scenario, the base station may also be called an access point, or may be a device in the access network that communicates with the wireless terminal device through one or more sectors on the air interface, or other names. The network device may be used to interchange received air frames with Internet Protocol (IP) packets, and serve as a router between the wireless terminal device and the rest of the access network, wherein the rest of the access network may include an Internet Protocol (IP) communication network. The network device may also coordinate the attribute management of the air interface. For example, the network device involved in the embodiments of the present application may be a network device (BTS, Base Transceiver Station) in GSM or CDMA, or a network device (NodeB) in WCDMA, or an evolved network device (eNB or e-NodeB, evolutionary Node B) in an LTE system, a 5G base station (gNB) in a 5G network architecture (next generation system), or a home evolved Node B (HeNB, Home evolved Node B), a relay node, a home base station (femto), a pico base station (pico), etc., which is not limited in the embodiments of the present application. In some network structures, the network device may include a centralized unit (CU, Centralized Unit) node and a distributed unit (DU, Distributed Unit) node, and the centralized unit and the distributed unit may also be arranged geographically separately.
[0050] The terminal or terminal device involved in the embodiment of the present application may be a device that provides voice and / or data connectivity to a user, a handheld device with a wireless connection function, or other processing devices connected to a wireless modem. In different systems, the name of the terminal device may also be different. For example, in a 5G system, the terminal device may be called a user equipment (UE). A wireless terminal device can communicate with one or more core networks (CN) via a radio access network (RAN). The wireless terminal device may be a mobile terminal device, such as a mobile phone (or a "cellular" phone) and a computer with a mobile terminal device. For example, it may be a portable, pocket-sized, handheld, computer-built-in or vehicle-mounted mobile device that exchanges language and / or data with a wireless access network. For example, personal communication service (PCS) phones, cordless phones, session initiation protocol (SIP) phones, wireless local loop (WLL) stations, personal digital assistants (PDA) and other devices. The wireless terminal device may also be referred to as a system, a subscriber unit, a subscriber station, a mobile station, a mobile station, a remote station, an access point, a remote terminal device, an access terminal device, a user terminal device, a user agent, a user device, etc., but is not limited in the embodiments of the present application.
[0051] In an embodiment of the present application, each radio bearer between a network device and a terminal device corresponds to an AM mode RLC entity.
[0052] An embodiment of the present invention provides a memory management method. Figure 1 The process diagram of the memory management method according to the embodiment of the present invention is as follows: Figure 1 ,like Figure 1 As shown, the method includes:
[0053] Step 101: A network device allocates a first memory space corresponding to a first window threshold to an RLC entity in confirmation mode; the first window threshold is less than or equal to a sending window size of the RLC entity;
[0054] Step 102: When the usage status of the first memory space meets the first condition, allocate the second memory space; the first memory space and the second memory space are both used to cache the relevant data of the RLC entity sent by the network device to the terminal.
[0055] In this embodiment, the first memory space corresponding to the first window threshold, that is, the memory size of the first memory space is determined based on the first window threshold, for example, the memory size of the first memory space can be determined based on the first window threshold and at least one of the number of cells supported by the network device, the number of users supported by each cell, the number of confirmation mode logical channels of each terminal, and the memory size of the RLC entity. The memory size of the second memory space can be determined based on the channel situation and / or the memory size of the RLC entity.
[0056] In various embodiments of the present invention, the first memory space and the second memory space may also be referred to as a first memory pool, a second memory pool, or a first storage space, a second storage space, etc. The first memory space and the second memory space are both used to cache relevant data of the RLC entity, for example, data information and / or control information of the RLC entity.
[0057] In some embodiments, the network device allocates a first memory space corresponding to a first window threshold to an RLC entity in confirmation mode, which may include: the network device allocates the first memory space corresponding to the first window threshold when initially establishing the RLC entity.
[0058] In some embodiments, the RLC entity may be, for example, an RLC PDU, and the relevant data of the RLC entity may be, for example, PDU data and / or PDU control information of the RLC, wherein the PDU control information may include, for example, segment indications (SI, Segment Indicates), sequence number (SN, Serial Number), segment offset (SO, Segment Offset), automatic repeat request (ARQ, Automatic Repeat-reQuest) feedback result, PDU segmentation status, PDU data memory address, number of retransmissions, etc. Figure 2 Schematic diagram of the PDU structure in the RLC confirmation mode in the related art, such as Figure 2As shown, "D / C" represents the identification bit of data information (D) or control information (C), "P" represents the polling indication bit, which is used to indicate whether the RLC entity transmitter requires the peer entity to send a status report in the confirmation mode, "R" represents a reserved field, and "Oct" represents an octet (Octet); SI is used to indicate whether the RLC PDU contains a complete RLC SDU or the first segment, middle segment or last segment of the RLC SDU, SO is applicable to the middle segment or the last segment, and Data carries PDU data.
[0059] Figure 3 FIG. 1 is a schematic diagram of a sending window corresponding to an RLC PDU in a related art when the SN size is 18 bits. Figure 3 As shown, in the confirmation mode, the sending window corresponding to the RLC entity is maintained by three parameters (or state variables): TxNext, TxNextAck, and AM_Window_Size. Among them, TxNext represents the SN value to be assigned to the next newly generated PDU, and TxNextAck represents the SN value of the next RLC SDU, which will receive positive confirmation (ACK) in sequence and be used as the lower edge of the sending window, that is, the SN value of the next SDU waiting to be confirmed that has been sent by the sending device. AM_Window_Size is the window size value of the sending window, AM_Window_Size = max(TxNext-TxNextAck), max represents the maximum value, Figure 3 AM_Window_Size=131072. The size of the sending window determines the maximum number of SDUs that can be sent without requiring a response from the other end.
[0060] In the related technology, the sequence number of the RLC PDU of the 5G NR system in the confirmation mode is divided into two cases: 12 bits and 18 bits. For the case of 12-bit sequence number, the sending window size is 2048, and for the case of 18-bit sequence number, the sending window size is 131072.
[0061] In this embodiment, the first window threshold is less than or equal to the sending window size of the RLC entity, that is, when the SN of the RLC entity is 12 bits, the first window threshold is less than or equal to 2048; when the SN of the RLC entity is 18 bits, the first window threshold is less than or equal to 131072.
[0062] As an optional implementation, when the SN size of the RLC entity is 12 bits, the first window threshold is equal to the sending window size of the RLC entity, that is, the first window threshold is 2048; when the SN size of the RLC entity is 18 bits, the first window threshold is smaller than the sending window size of the RLC entity, that is, the first window threshold is smaller than 131072.
[0063] In some embodiments, the first condition may be determined according to usage of the first memory space.
[0064] The memory management method of the embodiment of the present invention adopts a pre-allocated memory pool as a main method and a dynamically allocated memory pool as a supplement. When the RLC entity is initially established, a first memory space is pre-allocated for all users, which reduces the time overhead caused by memory allocation during the RLC entity transmission process, ensures the transmission rate between the terminal and the network device, and limits the size of the pre-allocated memory pool through the first window threshold, which can not only reduce the memory and its allocation time, but also solve the problem of insufficient pre-allocated memory pool in extreme cases.
[0065] In an optional embodiment of the present invention, when the usage status of the first memory space satisfies a first condition, allocating the second memory space may include: obtaining the memory usage rate of the first memory space; and when the memory usage rate is greater than a first threshold, allocating the second memory space.
[0066] In this embodiment, the first condition includes that the memory usage rate of the first memory space is greater than a first threshold value, that is, when it is detected that the usage rate of the first memory space is greater than the first threshold value, the second memory space is allocated. Exemplarily, the first threshold value may be, for example, 90%, that is, in this embodiment, when the usage rate of the first memory space is greater than 90%, the second memory space is allocated to ensure normal data transmission.
[0067] In some embodiments, obtaining the memory usage of the first memory space may, for example, include: determining the memory usage of the first memory space based on a first counter, where the first counter is used for memory allocation of the first memory space.
[0068] In some embodiments, the first condition may also include that the SN size of the RLC entity is 18 bits, that is, when the SN size of the RLC entity is 18 bits and the usage rate of the first memory space is greater than a first threshold, the second memory space is allocated.
[0069] The memory management method of an embodiment of the present invention can reduce the memory allocation size based on the pre-allocated first memory space, and allocate the second memory space when it is detected that the memory usage rate of the first memory space is greater than the first threshold, thereby reducing the time consumption of memory allocation. At the same time, when the channel quality is poor and the retransmitted data is large and occupies a large amount of memory, the normal transmission of data is guaranteed through the second memory space.
[0070] Based on the above embodiments, an embodiment of the present invention further provides a memory management method. Figure 4 The process diagram of the memory management method according to the embodiment of the present invention is as follows: Figure 2 ,like Figure 4 As shown, the method includes:
[0071] Step 201: A network device allocates a first memory space corresponding to a first window threshold to an RLC entity in confirmation mode; the first window threshold is less than or equal to a sending window size of the RLC entity;
[0072] Step 202: Acquire a memory usage rate of the first memory space, and when the memory usage rate is greater than a first threshold, allocate the second memory space; the first memory space and the second memory space are both used to cache relevant data of the RLC entity sent by the network device to the terminal;
[0073] Step 203: When the memory usage rate is less than a second threshold and all RLC entities cached in the second memory space have received corresponding confirmation messages, release the second memory space.
[0074] The relevant description of step 201 to step 202 of this embodiment can be specifically referred to the detailed description of the above-mentioned embodiment, and will not be repeated here to save space.
[0075] In step 203 of this embodiment, when it is detected that the memory usage rate of the first memory space is less than the second threshold value and all RLC entities cached in the second memory space have received corresponding confirmation messages, the second memory space is released. The confirmation message may be, for example, an ACK message, ACK information in a downlink status report sent by the terminal to the network device, etc., which is used to indicate which RLC entities (such as PDUs) the terminal has received. It can be understood that when the network device determines through the confirmation message that the corresponding RLC entity has been received by the terminal, the relevant data of the RLC entity cached in the first memory space or the second memory space may be released.
[0076] In one embodiment, the second threshold is less than the first threshold. It can be understood that the first threshold can ensure that the network device has sufficient time to allocate the second memory space, that is, the time for allocating the second memory space will not affect normal data transmission; the second threshold can be used to reflect whether the first memory space can fully guarantee normal data transmission, that is, when the memory usage rate of the first memory space is less than the second threshold, it can be indicated that the first memory space is sufficient to guarantee normal data transmission under the current network state. Exemplarily, the second threshold is less than the first threshold, for example, the first threshold is 90% and the second threshold is 80%, which can ensure normal data transmission as much as possible while reducing memory waste.
[0077] In some embodiments, step 203 may also include: when the memory usage rate of the first memory space is less than a second threshold, the second memory space is no longer used to cache the relevant data of the RLC entity sent by the network device to the terminal; when all RLC entities cached in the second memory space receive corresponding confirmation messages, the second memory space is released. Exemplarily, the RLC entity may be, for example, an RLC PDU. When it is detected that the usage rate of the first memory space is less than the second threshold, the second memory space is no longer used, and after all RLC PDUs using the second memory space receive confirmation messages, the second memory space is released to reduce memory usage. Exemplarily, the second threshold may be, for example, 80%, that is, when it is detected that the memory usage rate of the first memory space is less than 80%, the second memory space is no longer used.
[0078] The memory management method of an embodiment of the present invention dynamically allocates a second memory space to ensure normal data transmission when it detects that the usage rate of the pre-allocated first memory space is greater than a first threshold. When it detects that the usage rate of the pre-allocated first memory space is less than a second threshold, the second memory space may no longer be used, and after all RLC entities using the second memory space receive corresponding ACK messages, the second memory space is released to reduce memory occupancy.
[0079] In an optional embodiment of the present invention, the network device allocates a first memory space corresponding to a first window threshold for an RLC entity in confirmation mode, which may include: the network device determines a first memory size based on the first window threshold, the maximum number of cells supported by the network device, the maximum number of terminals supported by each cell, the number of confirmation mode logical channels corresponding to each terminal, and the total memory of the RLC entity; wherein the total memory of the RLC entity includes the sum of the memory size occupied by the data information of the RLC entity and the memory size occupied by the control information; and the first memory space is allocated according to the first memory size.
[0080] In some embodiments, the first memory size can be, for example, the product of the first window threshold and at least one of the maximum number of cells supported by the network device, the maximum number of terminals supported by each cell, the number of confirmation mode logical channels corresponding to each terminal, and the total memory size of the RLC entity.
[0081] In some embodiments, the RLC entity may be, for example, an RLC PDU, and the first memory size is expressed as follows:
[0082] mem1=AM_Window_Size_Thres×numCell×numUser×numAMLch×(DataInfoSize+CtlInfoSize)
[0083] Among them, mem1 represents the first memory size, AM_Window_Size_Thres represents the first window threshold, numCell represents the maximum number of cells supported by the network device, numUser represents the maximum number of terminals supported by each cell, numAMLch represents the number of confirmation mode logical channels corresponding to each terminal, DataInfoSize represents the maximum memory size occupied by RLC PDU data in confirmation mode, and CtlInfoSize represents the memory size occupied by control information such as new transmission and retransmission of RLC PDU in confirmation mode. In this embodiment, AM_Window_Size_Thres≤AM_Window_Size, wherein AM_Window_Size represents the sending window size, which can reduce memory usage while ensuring no packet loss.
[0084] As an optional implementation, when the SN size corresponding to the RLC entity is 12 bits, the first window threshold is equal to the sending window size of the RLC entity. Exemplarily, numCell=2, numUser=1000, numAMLch=2, DataInfoSize=1500 bytes, CtlInfoSize=100 bytes, then when the SN size of the RLC PDU is 12 bits, AM_Window_Size_Thres=AM_Window_Size=2048, and the size of the first memory space to be allocated by the network device is 2048×2×1000×2×1600, which is approximately equal to 13.1 gigabytes.
[0085] As another optional implementation, when the SN size corresponding to the RLC entity is 18 bits, the first window threshold is less than the sending window size of the RLC entity. Exemplarily, when the SN size of the RLC PDU is 18 bits, AM_Window_Size=131072, AM_Window_Size_Threshold=131072. <AM_Window_Size。
[0086] In an optional embodiment of the present invention, when the SN size corresponding to the RLC entity is 18 bits, the first window threshold is related to the first variable, the maximum data rate supported by the terminal, the timing value of the reorganization timer and the maximum memory value of the RLC entity, wherein the reorganization timer is used to actively trigger the reply of the confirmation message; and the first variable is used to adjust the numerical value of the first window threshold.
[0087] In some embodiments, the first variable may be optimized or selected according to channel conditions.
[0088] In this embodiment, the reassembly timer is designed based on out-of-order reception or packet loss. When the reassembly timer times out, it can be considered that the previous out-of-order packet has not been completely received. The timing value of the reassembly timer is generally greater than or equal to the sum of the time when the packet data arrives at the receiving end and the maximum retransmission hybrid automatic repeat request (HARQ, Hybrid Automatic Repeat reQuest) time.
[0089] As an optional implementation manner, the first window threshold satisfies:
[0090] AM_Window_Size_Thres
[0091] =N×maxDLDataRate×ReassemblyTimer / maxRLCSize
[0092] Among them, AM_Window_Size_Thres represents the first window threshold, N represents the first variable, maxDLDataRate represents the maximum data rate supported by the terminal, ReassemblyTimer represents the timing value of the reassembly timer, and maxRLCSize represents the maximum memory value of the RLC entity.
[0093] Exemplarily, the RLC entity can be, for example, an RLC PDU, where N=1, maxDLDataRate=1Gbps, ReassemblyTimer=40ms, and maxRLCSize=1500 bytes (i.e., 12000 bits). Then, AM_Window_Size_Thres is approximately equal to 3333, which is much smaller than the corresponding sending window size of 131072 when the SN size is 18 bits. If numCell=2, numUser=1000, numAMLch=2, DataInfoSize=1500 bytes, and CtlInfoSize=100 bytes, then the size of the first memory space to be allocated by the network device is 3333×2×1000×2×1600, which is approximately equal to 21.3 gigabytes, which is much smaller than the memory size to be allocated by the network device when the sending window is 131072 (131072×2×1000×2×1600 is approximately 838 gigabytes), and can significantly reduce the memory usage of the network device.
[0094] In an optional embodiment of the present invention, allocating the second memory space may include: the network device determines the second memory size based on a second variable and the maximum memory value of the RLC entity, the second variable being used to adjust the second memory size; and allocating the second memory space according to the second memory size.
[0095] In some embodiments, the second memory size is the product of the second variable and the maximum memory value of the RLC entity. Optionally, the second variable can be optimized or selected according to channel conditions. For example, the second variable can be 50000, and the maximum memory value of the RLC entity is 1500 bytes, then the memory size of the second memory space is 75 megabytes.
[0096] The memory management method of the embodiment of the present invention determines the second memory size of the second memory space based on the second variable and the maximum memory value of the RLC entity, and can ensure normal data transmission when the channel quality is poor and a large amount of retransmitted data occupies a large memory.
[0097] The memory management solution of the embodiment of the present invention is described below in conjunction with a specific application scenario. This example uses a network device as a base station for description, and is aimed at the base station memory management problem in a multi-user scenario.
[0098] In this example, when the RLC entity is initially established, in order to reduce the time overhead caused by the base station allocating memory during the RLC PDU transmission process, a common memory pool memCommon (i.e., the first memory space in the aforementioned embodiment) is allocated to all users in advance. The memory size of the memory pool memCommon (i.e., the first memory size) is:
[0099] mem1 = AM_Window_Size_Thres × numCell × numUser × numAMLch × (DataInfoSize + CtlInfoSize)
[0100] Among them, AM_Window_Size_Thres represents the first window threshold, numCell represents the maximum number of cells supported by the base station (i.e., network device), numUser represents the maximum number of terminals (or maximum number of users) supported by each cell, numAMLch represents the number of AM logical channels corresponding to each terminal (or user), DataInfoSize represents the maximum memory occupied by the RLC entity (such as RLC PDU) AM mode data, CtlInfoSize represents the memory occupied by the RLC entity AM mode new transmission, retransmission and other control information. The specific value can be determined according to the structure design of the RLC entity corresponding. For example, it can be determined according to the Figure 2 PDU structure in. In this example, AM_Window_Size_Thres ≤ AM_Window_Size, and AM_Window_Size represents the transmission window size, which can reduce the memory usage of the base station while ensuring no packet loss. Exemplarily, when the SN size of the RLC entity is 12 bits, AM_Window_Size_Thres = AM_Window_Size = 2048; when the SN size of the RLC entity is 18 bits, AM_Window_Size = 131072, AM_Window_Size_Thres < AM_Window_Size, and the specific implementation is as follows:
[0101] AM_Window_Size_Thres
[0102] = N × maxDLDataRate × ReassemblyTimer / maxRLCSize
[0103] Among them, AM_Window_Size_Thres represents the first window threshold, N represents the first variable, and the default value can be set to 1, which can be optimized or selected according to the channel conditions specifically; maxDLDataRate represents the maximum data rate supported by the terminal, ReassemblyTimer represents the timing value of the reassembly timer, maxRLCSize represents the maximum memory value of the RLC entity. For example, when the RLC entity is PDU, maxRLCSize = maxPDUSize = 1500 bytes (i.e., 12000 bits), and maxPDUSize represents the maximum memory value of the RLC PDU.
[0104] It should be noted that the reassembly timer in this example is used to actively trigger the ACK reply, which is designed based on out-of-order reception or packet loss. If the reassembly timer times out, it is considered that the previous out-of-order packet has not been received completely. In general, the ReassemblyTimer is greater than or equal to the sum of the time when the packet data arrives at the receiving end and the maximum retransmission HARQ time.
[0105] As an example, N=1, maxDLDataRate=1Gbps, ReassemblyTimer=40ms, maxRLCSize=1500 bytes, then AM_Window_Size_Thres is approximately equal to 3333, which is much smaller than AM_Window_Size (131072); further, if numCell=2, numUser=1000, numAMLch=2, DataInfoSize=1500 bytes, CtlInfoSize=100 bytes, then the size of the common memory pool memCommon pre-allocated by the base station is 3333×2×1000×2×1600, which is approximately equal to 21.3 gigabytes, which is much smaller than the memory size required to be allocated by the base station when the sending window is 131072 (131072×2×1000×2×1600 is approximately 838 gigabytes), which greatly reduces the memory allocation of the base station in multi-user scenarios.
[0106] This example can ensure normal data transmission for multiple users based on the pre-allocated common memory pool memCommon, but in special cases such as particularly poor channel quality, there are many retransmitted RLC PDUs, which will occupy a large amount of memory. If it is detected that the usage rate of the pre-allocated common memory pool memCommon is greater than the first threshold memUtilThres1, a memory pool memDynamic (i.e., the second memory space in the aforementioned embodiment) is dynamically allocated to ensure normal data transmission. In addition, when it is detected that the usage rate of the pre-allocated common memory pool memCommon is less than the second threshold memUtilThres2, the memory pool memDynamic is no longer used, and after all RLC PDUs using the memory pool memDynamic receive ACK messages, the memory pool memDynamic is released to reduce the memory usage of the base station.
[0107] Exemplarily, the default value of the first threshold memUtilThres1 may be 90%, which may be optimized or selected according to specific circumstances; the default value of the second threshold memUtilThres2 may be 80%, which may be optimized or selected according to specific circumstances.
[0108] The memory size of the dynamic memory pool memDynamic (i.e., the second memory size) can be M×maxRLCSize, where M represents the second variable, the default value can be 50000, and can be optimized according to the specific situation; maxRLCSize represents the maximum memory value of the RLC entity, for example, when the RLC entity is PDU, maxRLCSize=maxPDUSize=1500 bytes.
[0109] When the number of users supported by multiple cells increases, when the SN of RLC PDU is 18 bits, the network equipment needs to allocate approximately 838 gigabytes of memory for RLC PDU data in confirmation mode and control information such as new transmission and retransmission. Due to system limitations, the base station cannot support such a huge memory. On the other hand, from the perspective of actual memory usage, in normal data transmission, multiple users send and receive data at the same time. Due to the limited maximum transmission capacity of the base station, the data rate of each user will not reach the maximum, and some users may not transmit data for a period of time and do not occupy memory. Therefore, it is very wasteful to allocate memory for each user according to the sending window size.
[0110] In the related art, the base station adopts a method of pre-allocating a common memory pool and allocates the common memory pool by sending the window size. For the case where the SN size is 12 bits, referring to the multi-user scenario in the aforementioned example, the base station needs to allocate 13.1 gigabytes (2048×2×1000×2×1600), and for the case where the SN size is 18 bits, the memory occupied by the RLC PDU data and its control information will reach 838 gigabytes (131072×2×1000×2×1600), which occupies a huge amount of memory and is extremely wasteful; alternatively, the base station adopts a method of dynamically allocating a memory pool, for example, allocating the required memory pool in real time according to the channel conditions. Although this can reduce the waste of base station memory, it takes a long time to allocate memory, which will affect normal data transmission.
[0111] This example proposes a method for reducing memory usage in a base station in a multi-user scenario while ensuring the transmission rate. The method generally adopts the idea of pre-allocating a memory pool as the main method and dynamically allocating a memory pool as the auxiliary method. At the same time, the size of the pre-allocated memory pool is limited based on AM_Window_Size_Thres. When the usage rate of the pre-allocated memory pool reaches the first threshold, a new memory pool is dynamically allocated, which can reduce the memory size and memory allocation time and solve the problem of insufficient memory pool in extreme cases.
[0112] The embodiment of the present invention also provides a memory management device. Figure 5 FIG. 1 is a schematic diagram of the composition structure of a memory management device according to an embodiment of the present invention. Figure 5As shown, the memory management device 300 includes a first processing unit 301 and a second processing unit 302; wherein,
[0113] The first processing unit 301 is configured to allocate a first memory space corresponding to a first window threshold for an RLC entity in confirmation mode; the first window threshold is less than or equal to a sending window size of the RLC entity;
[0114] The second processing unit 302 is used to allocate a second memory space when the usage status of the first memory space meets a first condition; the first memory space and the second memory space are both used to cache relevant data of the RLC entity sent by the network device to the terminal.
[0115] In an optional embodiment of the present invention, the second processing unit 302 is used to obtain a memory usage rate of the first memory space, and allocate the second memory space when the memory usage rate is greater than a first threshold.
[0116] In an optional embodiment of the present invention, the second processing unit 302 is further configured to release the second memory space when the memory usage rate is less than a second threshold and all RLC entities cached in the second memory space have received corresponding confirmation messages.
[0117] In an optional embodiment of the present invention, the first processing unit 301 is used to determine a first memory size based on the first window threshold, the maximum number of cells supported by the network device, the maximum number of terminals supported by each cell, the number of confirmation mode logical channels corresponding to each terminal, and the total memory of the RLC entity; wherein the total memory of the RLC entity includes the sum of the memory size occupied by the data information of the RLC entity and the memory size occupied by the control information; and the first memory space is allocated according to the first memory size.
[0118] In an optional embodiment of the present invention, when the SN size corresponding to the RLC entity is 18 bits, the first window threshold is related to the first variable, the maximum data rate supported by the terminal, the timing value of the reorganization timer and the maximum memory value of the RLC entity, wherein the reorganization timer is used to actively trigger the reply of the confirmation message; and the first variable is used to adjust the numerical value of the first window threshold.
[0119] In an optional embodiment of the present invention, the first window threshold satisfies:
[0120] AM_Window_Size_Thres
[0121] =N×maxDLDataRate×ReassemblyTimer / maxRLCSize
[0122] Among them, AM_Window_Size_Thres represents the first window threshold, N represents the first variable, maxDLDataRate represents the maximum data rate supported by the terminal, ReassemblyTimer represents the timing value of the reassembly timer, and maxRLCSize represents the maximum memory value of the RLC entity.
[0123] In an optional embodiment of the present invention, the second processing unit 302 is used to determine the second memory size based on a second variable and the maximum memory value of the RLC entity, the second variable is used to adjust the second memory size; and allocate the second memory space according to the second memory size.
[0124] In an optional embodiment of the present invention, when the SN size corresponding to the RLC entity is 12 bits, the first window threshold is equal to the sending window size of the RLC entity.
[0125] In the embodiment of the present invention, the first processing unit 301 and the second processing unit 302 in the memory management device 300 can be implemented by a central processing unit (CPU), a digital signal processor (DSP), a microcontroller unit (MCU) or a programmable gate array (FPGA) in a network device in actual applications.
[0126] It should be noted that: the memory management device provided in the above embodiment only uses the division of the above program modules as an example when performing memory management. In actual applications, the above processing can be assigned to different program modules as needed, that is, the internal structure of the device is divided into different program modules to complete all or part of the processing described above. In addition, the memory management device provided in the above embodiment and the memory management method embodiment belong to the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.
[0127] Figure 6 The figure is a schematic diagram of the structure of a network device according to an embodiment of the present invention. Figure 6The network device 400 shown includes: at least one processor 401, a memory 402 and at least one network interface 403. The various components in the network device 400 are coupled together via a bus system 404. It is understood that the bus system 404 is used to achieve connection and communication between these components. In addition to the data bus, the bus system 404 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, the bus system 404 is not described in detail. Figure 6 Various buses are labeled as bus system 404 .
[0128] It can be understood that the memory 402 can be a volatile memory or a non-volatile memory, and can also include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic random access memory (FRAM), a flash memory, a magnetic surface memory, an optical disk, or a compact disc read-only memory (CD-ROM); the magnetic surface memory can be a disk memory or a tape memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), synchronous static random access memory (SSRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM, SyncLink Dynamic Random Access Memory), and direct RAM bus random access memory (DRRAM, Direct Rambus Random Access Memory).The memory 402 described in the embodiments of the present invention is intended to include, but is not limited to, these and any other suitable types of memory.
[0129] The memory 402 in the embodiment of the present invention is used to store various types of data to support the operation of the network device 400. Examples of such data include: any computer program used to operate on the network device 400, such as a program for implementing the method of the embodiment of the present invention.
[0130] The method disclosed in the above embodiment of the present invention can be applied to the processor 401, or implemented by the processor 401. The processor 401 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit in the processor 401 or the instruction in the form of software. The above processor 401 may be a general processor, a digital signal processor (DSP, Digital Signal Processor), or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The processor 401 can implement or execute the methods, steps and logic block diagrams disclosed in the embodiment of the present invention. The general processor may be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiment of the present invention, it can be directly embodied as a hardware decoding processor to execute, or it can be executed by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium, which is located in the memory 402. The processor 401 reads the information in the memory 402 and completes the steps of the above method in combination with its hardware.
[0131] In an exemplary embodiment, the network device 400 may be implemented by at least one application specific integrated circuit (ASIC), DSP, programmable logic device (PLD), complex programmable logic device (CPLD), field programmable gate array (FPGA), general processor, controller, microcontroller (MCU), microprocessor, or other electronic component to execute the aforementioned method.
[0132] In an exemplary embodiment, the embodiment of the present invention further provides a computer-readable storage medium, such as a memory 402 including a computer program, and the computer program can be executed by a processor 401 of the network device 400 to complete the steps of the aforementioned method. The computer-readable storage medium can be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, FlashMemory, magnetic surface memory, optical disk, or CD-ROM; it can also be various devices including one or any combination of the above memories, such as a computer, a tablet device, etc.
[0133] The methods disclosed in several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0134] The features disclosed in several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0135] The features disclosed in several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.
[0136] In the several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as: multiple units or components can be combined, or can be integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the components shown or discussed can be through some interfaces, and the indirect coupling or communication connection of the devices or units can be electrical, mechanical or other forms.
[0137] The units described above as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units; some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.
[0138] In addition, all functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may be separately used as a unit, or two or more units may be integrated into one unit; the above-mentioned integrated units may be implemented in the form of hardware or in the form of hardware plus software functional units.
[0139] A person skilled in the art can understand that: all or part of the steps of implementing the above method embodiment can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above method embodiment; and the aforementioned storage medium includes: mobile storage devices, read-only memories (ROM, Read-Only Memory), random access memories (RAM, Random Access Memory), disks or optical disks, etc. Various media that can store program codes.
[0140] Alternatively, if the above-mentioned integrated unit of the present invention is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present invention can be essentially or partly reflected in the form of a software product that contributes to the prior art. The computer software product is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the methods described in each embodiment of the present invention. The aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROM, RAM, magnetic disks or optical disks.
[0141] The above is only a specific embodiment of the present invention, but the protection scope of the present invention is not limited thereto. Any person skilled in the art can easily think of changes or substitutions within the technical scope disclosed by the present invention, which should be included in the protection scope of the present invention. Therefore, the protection scope of the present invention should be based on the protection scope of the claims.
Claims
1. A memory management method, characterized in that: The method comprises: The network device allocates a first memory space corresponding to a first window threshold for a radio link control layer RLC entity in confirmation mode; the first window threshold is less than or equal to a sending window size of the RLC entity; When the usage status of the first memory space meets the first condition, the second memory space is allocated; the first memory space and the second memory space are both used to cache the relevant data of the RLC entity sent by the network device to the terminal.
2. The method according to claim 1, characterized in that When the usage status of the first memory space satisfies a first condition, allocating the second memory space includes: Obtaining a memory usage rate of the first memory space; When the memory usage rate is greater than a first threshold, the second memory space is allocated.
3. The method according to claim 2, characterized in that The method further comprises: When the memory usage rate is less than a second threshold and all RLC entities cached in the second memory space have received corresponding confirmation messages, the second memory space is released.
4. The method according to claim 1, characterized in that: The network device allocates a first memory space corresponding to a first window threshold to an RLC entity in confirmation mode, including: The network device determines a first memory size based on the first window threshold, a maximum number of cells supported by the network device, a maximum number of terminals supported by each cell, a number of confirmed mode logical channels corresponding to each terminal, and a total memory size of the RLC entity; wherein the total memory size of the RLC entity includes a sum of a memory size occupied by data information of the RLC entity and a memory size occupied by control information; The first memory space is allocated according to the first memory size.
5. The method according to claim 4, characterized in that When the sequence number SN size corresponding to the RLC entity is 18 bits, the first window threshold is related to the first variable, the maximum data rate supported by the terminal, the timing value of the reorganization timer and the maximum memory value of the RLC entity, wherein the reorganization timer is used to actively trigger the reply of the confirmation message; the first variable is used to adjust the numerical value of the first window threshold.
6. The method according to claim 5, characterized in that The first window threshold satisfies: AM_Window_Size_Thres =N×maxDLDataRate×ReassemblyTimer / maxRLCSize Among them, AM_Window_Size_Thres represents the first window threshold, N represents the first variable, maxDLDataRate represents the maximum data rate supported by the terminal, ReassemblyTimer represents the timing value of the reassembly timer, and maxRLCSize represents the maximum memory value of the RLC entity.
7. The method according to claim 1, characterized in that The allocating the second memory space comprises: The network device determines a second memory size based on a second variable and a maximum memory value of the RLC entity, the second variable being used to adjust the second memory size; The second memory space is allocated according to the second memory size.
8. The method according to claim 4, characterized in that When the SN size corresponding to the RLC entity is 12 bits, the first window threshold is equal to the sending window size of the RLC entity.
9. A memory management device, characterized in that: The device comprises a first processing unit and a second processing unit; wherein, The first processing unit is configured to allocate a first memory space corresponding to a first window threshold for an RLC entity in confirmation mode; the first window threshold is less than or equal to a sending window size of the RLC entity; The second processing unit is used to allocate a second memory space when the usage status of the first memory space meets a first condition; the first memory space and the second memory space are both used to cache relevant data of the RLC entity sent by the network device to the terminal.
10. A computer-readable storage medium having computer instructions stored thereon, characterized in that: When the instruction is executed by a processor, the steps of the method according to any one of claims 1 to 8 are implemented.
11. A network device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the program, the steps of the method according to any one of claims 1 to 8 are implemented.
Citation Information
Patent Citations
Method for regulating sending window of wireless link control layer service in affirmation mode
CN101369842A
A method and apparatus for restoring user-plane buffer memory.
CN102293029A
A memory management method and apparatus
CN109522113A
Method and device for optimized management of 5G NR RLC window memory
CN114064273A
Transmission window adjusting method and device, sending equipment, receiving equipment and medium
CN114598660A