A 5G NR RLC uplink status report optimization coding method and device
By using multiple two-dimensional arrays and intermediate variable loopSN in 5G NR mobile communication technology, the encoding process of RLC uplink status report is optimized, the problem of UE completing reports in a limited time is solved, and more efficient uplink status report construction is achieved.
Patent Information
- Application Number
- CN202211126411.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-16
- Publication Date
- 2025-06-06
- Estimated Expiration
- 2042-09-16
AI Technical Summary
In 5G NR mobile communication technology, when UE forms RLC uplink status reports, it needs to scan a large number of RLC PDUs, resulting in excessive time consumption and cannot be completed within a limited uplink authorization time.
Multiple two-dimensional arrays are adopted, each array is used to indicate the number of RLC PDUs received in a different number of RLC PDU sequence numbers. The encoding process of RLC uplink status reports is optimized through the intermediate variable loopSN and the span update mechanism.
This greatly reduces the time for UE to form RLC uplink status reports, allowing UE to complete reports within a limited uplink time, thereby solving the problem of tight 5G NR uplink authorization scheduling time.
Smart Images

Figure CN115551004B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a 5G NR (New Radio) mobile communication technology. Background Art
[0002] In 5G NR mobile communication technology, an important function of the RLC (Radio Link control) layer is to provide reliable transmission for user and control data, including retransmission and confirmation functions. The transmission modes of the RLC layer are divided into: transparent mode (TM), unconfirmed mode (UM), and confirmed mode (AM). Reliable transmission refers to the AM mode. The data sent from the network side to the UE (user equipment) is collectively referred to as downlink data. Due to air interface quality issues, packet loss may occur during downlink data transmission. At this time, the UE will send an RLC uplink status report (status report) to the network side. The RLC uplink status report records the reception status of the downlink data packet so that the network side can retransmit the lost downlink data packet. The data packets mentioned in this document refer to RLC PDU (Protocol Data Unit).
[0003] In the RLC PDU transmitted by the RLC entity in AM mode under 5G NR, the sequence number (SN) is divided into 12 bits (bits) and 18 bits. If the 12-bit sequence number is used, the RLC PDU sequence number has a total of 2 12 That is 4096. If an 18-bit sequence number is used, the RLC PDU sequence number has 2 18That is, 262,144 types. The single-cell downlink peak rate of 5G NR is about 1.7 Gbps, which means that the downlink window changes very quickly. For example, if a downlink transmission packet is lost in a time slot, the UE will soon receive many other downlink data packets. When the UE starts to form an RLC uplink status report to record the packet loss, the UE needs to scan all RLC PDUs in the window (interval) from RX_NEXT to RX_HIGH_STATUS to determine which RLC PDUs have been received and which RLC PDUs have not been received, which takes a lot of time. RX_NEXT indicates the first incomplete RLC PDU that the UE expects to receive, that is, the first RLC PDU that the UE is waiting to receive or waiting to receive in segments. RX_HIGH_STATUS indicates the possible setting value of the maximum confirmed sequence number of the UE group RLC uplink status report, that is, the upper limit of the window that triggers the RLC uplink status report. The confirmed sequence number (ACK SN) means that in the previous RLC PDU, except for the RLC PDU indicated as the non-confirmed sequence number (NACK SN), all other RLC PDUs have been received, and the RLC PDU corresponding to the confirmed sequence number itself has not been received. In actual tests, it is often encountered that when the UE starts to form an RLC uplink status report, the number of RLC PDUs that need to be scanned reaches tens of thousands. If the ordinary loop traversal method is adopted, the uplink reserved time is far from enough. Under 5G NR, the uplink time scheduled to the UE for each authorization (grant) is very tight, and the most demanding time is about 200μs. And this 200μs is not even enough for the UE to form an RLC uplink status report, not to mention that the UE also needs to form retransmission packets and first transmission packets. Summary of the invention
[0004] The technical problem to be solved by the present invention is to optimize the coding of the RLC uplink status report sent by the UE to the network side.
[0005] To solve the above technical problems, the present invention proposes a 5G NR RLC uplink status report optimization coding method, comprising the following steps. Step S1: UE sets multiple two-dimensional arrays; all arrays have the same number of rows and different numbers of columns; all elements of each array correspond to all values of the sequence number of the RLC PDU; each row of all arrays is used to indicate the number of RLC PDUs received in the same number of P RLC PDUs with different sequence numbers, P is a positive integer; wherein each element in the first array is used to indicate the number of RLC PDUs received in q1 RLC PDUs with different sequence numbers, and each element in the second array is used to indicate the number of RLC PDUs received in q2 RLC PDUs with different sequence numbers; if the number of two-dimensional arrays is ≥3, each element in the third array is used to indicate the number of RLC PDUs received in q3 RLC PDUs with different sequence numbers; if there are more two-dimensional arrays, and so on; q1, q2, q3, ... are all positive integers, and q1 < q2 < q3 < .... Step S2: Every time the AM mode RLC entity of the UE receives a new RLC PDU, it updates the status variables RX_NEXT and RX_HIGHEST_STATUS according to the sequence number of the RLC PDU. Step S3: The UE adds 1 to the value of the array element containing the sequence number of the newly received RLC PDU in all arrays. Step S4: When the AM mode RLC entity of the UE needs to send an RLC uplink status report to the network side and the UE receives an uplink authorization, the AM mode RLC entity of the UE starts to build an RLC uplink status report; the AM mode RLC entity of the UE sets an intermediate variable loopSN, and processes the value of the intermediate variable loopSN as the reception information of the downlink RLC PDU of the sequence number; the initial value of the intermediate variable loopSN is the value of RX_NEXT; when the value of the intermediate variable loopSN becomes the value of RX_HIGHEST_STATUS, the AM mode RLC entity of the UE completes the construction of the RLC uplink status report, and the whole method ends. Step S5: When the AM mode RLC entity of the UE completes processing of the received information of a downlink RLC PDU, it first determines whether the array element containing the sequence number of the downlink RLC PDU whose received information has just been processed in the array of different sequence numbers of each element indicating the maximum number is equal to the maximum number. If the first determination is yes, the value of the intermediate variable loopSN is updated to (loopSN+(the maximum number×(LM / the maximum number+1)-LM))%TT, and the process returns to step S4; wherein, LW=loopSN / P, LM=loopSN%P, / indicates the quotient obtained by remainder division, % indicates the remainder obtained by remainder division, and TT indicates the maximum possible value of the sequence number of the downlink RLC PDU plus 1.If the first judgment is no, the AM mode RLC entity of the UE determines for the second time whether the array element in which each element is used to indicate the second largest number of arrays with different sequence numbers containing the sequence number of the downlink RLC PDU that has just processed the received information is equal to the second largest number. If the second judgment is yes, the value of the intermediate variable loopSN is updated to (loopSN+(the second largest number×(LM / the second largest number+1)-LM))%TT, and the process returns to step S4. If the second judgment is no, if the number of two-dimensional arrays is 2, the process proceeds to step S6; if the number of two-dimensional arrays is ≥3, the AM mode RLC entity of the UE determines for the third time whether the array element in which each element is used to indicate the third largest number of arrays with different sequence numbers containing the sequence number of the downlink RLC PDU that has just processed the received information is equal to the third largest number; and so on, until the AM mode RLC entity of the UE determines for the last time whether the array element in which each element is used to indicate the minimum number of arrays with different sequence numbers containing the sequence number of the downlink RLC PDU that has just processed the received information is equal to the minimum number. If the last judgment is yes, update the value of the intermediate variable loopSN to (loopSN+(the minimum number×(LM / the minimum number+1)-LM))%TT, and return to step S4. If the last judgment is no, go to step S6. Step S6: Update the value of the intermediate variable loopSN to (loopSN+1)%TT, and return to step S4.
[0006] Furthermore, all elements of each array correspond to all values of the sequence number of the RLC PDU from small to large in order from left to right and then from top to bottom.
[0007] Preferably, q1=q2÷2=q3÷4=….
[0008] Preferably, in step S1, the UE sets four two-dimensional arrays. The first array SZ64
[64]
[64] is a two-dimensional array of 64 rows and 64 columns, each array element corresponds to 64 integers, and the value range of each element is an integer between 0 and 64, indicating the number of RLC PDUs received in the RLC PDUs with 64 different sequence numbers corresponding to the element. The second array SZ128
[64]
[32] is a two-dimensional array of 64 rows and 32 columns, each array element corresponds to 128 integers, and the value range of each element is an integer between 0 and 128, indicating the number of RLC PDUs received in the RLC PDUs with 128 different sequence numbers corresponding to the element. The third array SZ256
[64]
[16] is a two-dimensional array of 64 rows and 16 columns, each array element corresponds to 256 integers, and the value range of each element is an integer between 0 and 256, indicating the number of RLC PDUs received in the RLC PDUs with 256 different sequence numbers corresponding to the element. The fourth array SZ512
[64] [8] is a two-dimensional array of 64 rows and 8 columns, each array element corresponds to 512 integers, and the value range of each element is an integer between 0 and 512, indicating the number of RLC PDUs received in the 512 RLC PDUs with different sequence numbers corresponding to the element.
[0009] Furthermore, when the method starts, the UE determines the initial value of each element in all arrays according to the actual reception situation of the RLC PDU.
[0010] Furthermore, in step S2, each time the AM mode RLC entity of the UE receives a new RLC PDU, if the sequence number of the newly received RLC PDU is within the RLC receiving window and does not overlap with the sequence number of the earlier received RLC PDU, the status variables RX_NEXT and RX_HIGHEST_STATUS are updated according to the sequence number of the RLC PDU; otherwise, the newly received RLC PDU is discarded.
[0011] Preferably, in step S3, the value of the element SZ64[W][M / 64] in the W+1th row and the M / 64+1th column of the first array is increased by 1, the value of the element SZ128[W][M / 128] in the W+1th row and the M / 128+1th column of the second array is increased by 1, the value of the element SZ256[W][M / 256] in the W+1th row and the M / 256+1th column of the third array is increased by 1, and the value of the element SZ512[W][M / 512] in the W+1th row and the M / 512+1th column of the fourth array is increased by 1; wherein W=SN / P, / represents the quotient obtained by remainder division, and M=SN%P, % represents the remainder obtained by remainder division.
[0012] The present invention also proposes a 5G NR RLC uplink status report optimization coding device, including an array setting unit, a state variable updating unit, an array value updating unit, a status report forming unit, a spanning update unit, and a regular updating unit. The array setting unit is used to set multiple two-dimensional arrays; all arrays have the same number of rows and different numbers of columns; all elements of each array correspond to all values of the sequence number of the RLC PDU; each row of all arrays is used to indicate the number of RLC PDUs received in the same number of P RLC PDUs with different sequence numbers, P is a positive integer; wherein each element in the first array is used to indicate the number of RLC PDUs received in q1 RLC PDUs with different sequence numbers, and each element in the second array is used to indicate the number of RLC PDUs received in q2 RLC PDUs with different sequence numbers; if the number of two-dimensional arrays is ≥3, each element in the third array is used to indicate the number of RLC PDUs received in q3 RLC PDUs with different sequence numbers; if there are more two-dimensional arrays, and so on; q1, q2, q3, ... are all positive integers, and q1<q2<q3<... The state variable updating unit is used to update the state variables RX_NEXT and RX_HIGHEST_STATUS according to the sequence number of the RLC PDU each time the AM mode RLC entity of the UE receives a new RLC PDU. The array value updating unit is used to add 1 to the value of the array element containing the sequence number of the newly received RLC PDU in all arrays. The status report building unit is used to start building the RLC uplink status report when the AM mode RLC entity of the UE needs to send an RLC uplink status report to the network side and the UE receives an uplink authorization; the status report building unit sets an intermediate variable loopSN, and processes the value of the intermediate variable loopSN as the reception information of the downlink RLC PDU of the sequence number; the initial value of the intermediate variable loopSN is the value of RX_NEXT; when the value of the intermediate variable loopSN becomes the value of RX_HIGHEST_STATUS, the AM mode RLC entity of the UE completes the building of the RLC uplink status report, and the whole process ends. The spanning update unit is used to determine for the first time whether the array element containing the sequence number of the downlink RLC PDU whose received information has just been processed, in an array where each element is used to indicate a maximum number of different sequence numbers, is equal to the maximum number when the UE's AM mode RLC entity completes processing the received information of a downlink RLC PDU.If the first judgment is yes, the value of the intermediate variable loopSN is updated to (loopSN+(the maximum number×(LM / the maximum number+1)-LM))%TT, and the process returns to the status report forming unit; wherein, LW=loopSN / P, LM=loopSN%P, / represents the quotient obtained by remainder division, % represents the remainder obtained by remainder division, and TT represents the maximum possible value of the sequence number of the downlink RLC PDU plus 1. If the first judgment is no, the span update unit determines for the second time whether the array element in which each element is used to indicate the second largest number of different sequence numbers and which contains the sequence number of the downlink RLC PDU whose received information has just been processed is equal to the second largest number. If the second judgment is yes, the value of the intermediate variable loopSN is updated to (loopSN+(the second largest number×(LM / the second largest number+1)-LM))%TT, and the process returns to the status report forming unit. If the second judgment is no, if the number of two-dimensional arrays is 2, enter the regular update unit; if the number of two-dimensional arrays is ≥3, the span update unit determines for the third time whether the array element in which each element is used to indicate the third largest number of different sequence numbers and contains the sequence number of the downlink RLC PDU that has just processed the received information is equal to the third largest number; and so on, until the span update unit determines for the last time whether the array element in which each element is used to indicate the minimum number of different sequence numbers and contains the sequence number of the downlink RLC PDU that has just processed the received information is equal to the minimum number. If the last judgment is yes, update the value of the intermediate variable loopSN to (loopSN+(the minimum number×(LM / the minimum number+1)-LM))%TT, and return to the status report formation unit. If the last judgment is no, enter the regular update unit. The regular update unit is used to update the value of the intermediate variable loopSN to (loopSN+1)%TT, and return to the status report formation unit.
[0013] The technical effect achieved by the present invention is that when the UE forms an RLC uplink status report, an intermediate variable is set, and the intermediate variable is updated in a leapfrog manner in order from large to small with the help of each array. If the leapfrog update condition is not met, the intermediate variable is updated conventionally. The entire scheme greatly reduces the time for the UE to form an RLC uplink status report, enabling the UE to complete the formation of the RLC uplink status report within a limited uplink time, thereby solving the problem of tight uplink authorization scheduling time for 5G NR. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1 It is a flow chart of an embodiment of the 5G NR RLC uplink status report optimization coding method proposed in the present invention.
[0015] Figure 2It is a structural diagram of an embodiment of a 5G NR RLC uplink status report optimization coding device proposed in the present invention.
[0016] Explanation of the reference numerals in the figure: 1 is an array setting unit, 2 is a state variable updating unit, 3 is an array value updating unit, 4 is a state report building unit, 51 is a spanning update unit 1, 52 is a spanning update unit 2, 53 is a spanning update unit 3, 54 is a spanning update unit 4, and 6 is a regular update unit. DETAILED DESCRIPTION
[0017] See also Figure 1 An embodiment of the 5G NR RLC uplink status report optimization coding method proposed in the present invention includes the following steps.
[0018] Step S1: The UE sets four two-dimensional arrays. All arrays have the same number of rows and different numbers of columns. All elements of each array correspond to all values of the sequence number of the RLC PDU. Each row of all arrays is used to indicate the number of RLC PDUs received in the same number of 4096 RLC PDUs with different sequence numbers. Each element in the first array is used to indicate the number of RLC PDUs received in RLC PDUs with 64 different sequence numbers, each element in the second array is used to indicate the number of RLC PDUs received in RLC PDUs with 128 different sequence numbers, each element in the third array is used to indicate the number of RLC PDUs received in RLC PDUs with 256 different sequence numbers, and each element in the fourth array is used to indicate the number of RLC PDUs received in RLC PDUs with 512 different sequence numbers.
[0019] The first array SZ64
[64]
[64] is a two-dimensional array of 64 rows and 64 columns. The 64×64 elements in the first array correspond to all 262144 sequence number values (i.e., 0 to 262143) from small to large when the RLC PDU uses an 18-bit sequence number in the order from left to right and then from top to bottom. Each array element corresponds to 64 integers between 0 and 262143, and the integer ranges corresponding to different array elements do not overlap. The value range of each element is an integer between 0 and 64, indicating the number of RLC PDUs received in the 64 RLC PDUs with different sequence numbers corresponding to the element. If the value of an element is 0, it means that the 64 RLC PDUs with different sequence numbers corresponding to the element have not been received. If the value of an element is 64, it means that the 64 RLC PDUs with different sequence numbers corresponding to the element have been received. If the value of an element is k1, 0<k1<64, it means that among the 64 RLC PDUs with different sequence numbers corresponding to the element, k1 RLC PDUs have been received, and 64-k1 RLC PDUs have not been received. When the whole method starts, the UE determines the initial value of each element in the first array according to the actual reception status of the RLC PDU.
[0020] Here, SZ64[m][n1] is used to represent the array element in the m+1th row and n1+1th column of the first array, where the value range of m is an integer from 1 to 63, and the value range of n1 is an integer from 1 to 63. The array element SZ64[0][0] in the 1st row and 1st column of the first array corresponds to 0, 1, 2, ... 63, and its value represents the number of RLC PDUs received in the RLC PDUs with sequence numbers from 0 to 63. The array element SZ64[0][1] in the 1st row and 2nd column of the first array corresponds to 64, 65, 66, ... 127, and its value represents the number of RLC PDUs received in the RLC PDUs with sequence numbers from 64 to 127. The corresponding relationship and meaning of the remaining elements in the first array are similar.
[0021] The second array SZ128
[64]
[32] is a two-dimensional array of 64 rows and 32 columns. The 64×32 elements in the second array correspond to all 262144 sequence number values (i.e., 0 to 262143) from small to large when the RLC PDU uses an 18-bit sequence number in the order from left to right and then from top to bottom. Each array element corresponds to 128 integers between 0 and 262143, and the integer ranges corresponding to different array elements do not overlap. The value range of each element is an integer between 0 and 128, indicating the number of RLC PDUs received in the 128 RLC PDUs with different sequence numbers corresponding to the element. If the value of an element is 0, it means that the 128 RLC PDUs with different sequence numbers corresponding to the element have not been received. If the value of an element is 128, it means that the 128 RLC PDUs with different sequence numbers corresponding to the element have been received. If the value of an element is k2, 0<k2<128, it means that among the 128 RLC PDUs with different sequence numbers corresponding to the element, k2 RLC PDUs have been received, and 128-k2 RLC PDUs have not been received. When the whole method starts, the UE determines the initial value of each element in the second array according to the actual reception status of the RLC PDU.
[0022] Here, SZ128[m][n2] is used to represent the array element in the m+1th row and n2+1th column of the second array, where the value range of m is an integer from 1 to 63, and the value range of n2 is an integer from 1 to 31. The array element SZ128[0][0] in the 1st row and 1st column of the second array corresponds to 0, 1, 2, ... 127, and its value represents the number of RLC PDUs received in the RLC PDUs with sequence numbers from 0 to 127. The array element SZ128[0][1] in the 1st row and 2nd column of the second array corresponds to 128, 129, 130, ... 255, and its value represents the number of RLC PDUs received in the RLC PDUs with sequence numbers from 128 to 255. The corresponding relationship and meaning of the remaining elements in the second array are similar.
[0023] The third array SZ256
[64]
[16] is a two-dimensional array of 64 rows and 16 columns. The 64×16 elements in the third array correspond to all 262144 sequence number values (i.e., 0 to 262143) from small to large when the RLC PDU uses an 18-bit sequence number in the order from left to right and then from top to bottom. Each array element corresponds to 256 integers between 0 and 262143, and the integer ranges corresponding to different array elements do not overlap. The value range of each element is an integer between 0 and 256, indicating the number of RLC PDUs received in the 256 RLC PDUs with different sequence numbers corresponding to the element. If the value of an element is 0, it means that the 256 RLC PDUs with different sequence numbers corresponding to the element have not been received. If the value of an element is 256, it means that the 256 RLC PDUs with different sequence numbers corresponding to the element have been received. If the value of an element is k3, 0<k3<256, it means that among the 256 RLC PDUs with different sequence numbers corresponding to the element, k3 RLC PDUs have been received, and 256-k3 RLC PDUs have not been received. When the whole method starts, the UE determines the initial value of each element in the third array according to the actual reception status of the RLC PDU.
[0024] Here, SZ256[m][n3] is used to represent the array element in the m+1th row and n3+1th column of the third array, where the value range of m is an integer from 1 to 63, and the value range of n3 is an integer from 1 to 15. The array element SZ256[0][0] in the 1st row and 1st column of the third array corresponds to 0, 1, 2, ... 255, and its value represents the number of RLC PDUs received in the RLC PDUs with sequence numbers from 0 to 255. The array element SZ256[0][1] in the 1st row and 2nd column of the third array corresponds to 256, 257, 258, ... 511, and its value represents the number of RLC PDUs received in the RLC PDUs with sequence numbers from 256 to 511. The corresponding relationship and meaning of the remaining elements in the third array are similar.
[0025] The fourth array SZ512
[64] [8] is a two-dimensional array of 64 rows and 8 columns. The 64×8 elements in the fourth array correspond to all 262144 sequence number values (i.e., 0 to 262143) from small to large when the RLC PDU uses an 18-bit sequence number in the order from left to right and then from top to bottom. Each array element corresponds to 512 integers between 0 and 262143, and the integer ranges corresponding to different array elements do not overlap. The value range of each element is an integer between 0 and 512, indicating the number of RLC PDUs received in the 512 RLC PDUs with different sequence numbers corresponding to the element. If the value of an element is 0, it means that the 512 RLC PDUs with different sequence numbers corresponding to the element have not been received. If the value of an element is 512, it means that the 512 RLC PDUs with different sequence numbers corresponding to the element have been received. If the value of an element is k4, 0<k4<512, it means that among the 512 RLC PDUs with different sequence numbers corresponding to the element, k4 RLC PDUs have been received, and 512-k4 RLC PDUs have not been received. When the whole method starts, the UE determines the initial value of each element in the fourth array according to the actual reception status of the RLC PDU.
[0026] Here, SZ512[m][n4] is used to represent the array element in the m+1th row and n4+1th column of the fourth array, where the value range of m is an integer from 1 to 63, and the value range of n4 is an integer from 1 to 7. The array element SZ512[0][0] in the 1st row and 1st column of the fourth array corresponds to 0, 1, 2, ... 511, and its value represents the number of RLC PDUs received in the RLC PDUs with sequence numbers from 0 to 511. The array element SZ512[0][1] in the 1st row and 2nd column of the fourth array corresponds to 512, 513, 514, ... 1023, and its value represents the number of RLC PDUs received in the RLC PDUs with sequence numbers from 512 to 1023. The corresponding relationship and meaning of the remaining elements in the fourth array are similar.
[0027] Step S2: Every time the AM mode RLC entity of the UE receives a new RLC PDU, if the sequence number of the newly received RLC PDU is within the RLC receiving window (i.e., not out of the window) and does not overlap with the sequence number of the earlier received RLC PDU, the state variables RX_NEXT and RX_HIGHEST_STATUS are updated according to the sequence number of the RLC PDU. This update is performed according to the existing communication protocol. If the sequence number of the newly received RLC PDU is not within the RLC receiving window (i.e., out of the window), the newly received RLC PDU is directly discarded according to the protocol. If the sequence number of the newly received RLC PDU overlaps with the sequence number of the received RLC PDU, the newly received RLC PDU is directly discarded according to the protocol. The RLC receiving window refers to the range between RX_NEXT and (RX_NEXT+262144 / 2)%262144 (the window size is half of the maximum number of sequence numbers), that is, the sequence number of the newly received RLC PDU needs to fall within this window, otherwise it is discarded.
[0028] Step S3: The UE adds 1 to the value of the array element containing the sequence number of the newly received RLC PDU in all arrays. Specifically, it includes: adding 1 to the value of the element SZ64[W][M / 64] in the W+1th row and the M / 64+1th column in the first array, adding 1 to the value of the element SZ128[W][M / 128] in the W+1th row and the M / 128+1th column in the second array, adding 1 to the value of the element SZ256[W][M / 256] in the W+1th row and the M / 256+1th column in the third array, and adding 1 to the value of the element SZ512[W][M / 512] in the W+1th row and the M / 512+1th column in the fourth array. Wherein W=SN / 4096, / indicates that the quotient is obtained by Euclidean division; M=SN%4096, % indicates that the remainder is obtained by Euclidean division. Since the remainder division method is adopted, the quotient W and the remainder M are both integers. The meaning of 4096 here is the number of RLC PDU sequence numbers corresponding to each row of all arrays.
[0029] Step S4: When the UE's AM mode RLC entity needs to send an RLC uplink status report to the network side and the UE receives an uplink authorization, the UE's AM mode RLC entity starts to build an RLC uplink status report. The UE's AM mode RLC entity sets an intermediate variable loopSN, and processes the value of the intermediate variable loopSN as the reception information of the downlink RLC PDU of the sequence number. The initial value of the intermediate variable loopSN is the value of RX_NEXT. When the value of the intermediate variable loopSN becomes the value of RX_HIGHEST_STATUS, the UE's AM mode RLC entity completes the construction of the RLC uplink status report, and the entire method ends. Subsequently, the UE's AM mode RLC entity can send the built RLC uplink status report to the base station's AM mode RLC entity in the uplink transmission opportunity.
[0030] Step S51: when the AM mode RLC entity of the UE finishes processing the reception information of a downlink RLC PDU, it is determined whether the array element in the fourth array containing the sequence number of the downlink RLC PDU for which the reception information has just been processed is equal to 512.
[0031] If yes, it indicates that all the RLC PDUs of the 512 sequence numbers corresponding to the array element SZ512[LW][LM / 512] in the fourth array have been received, and the intermediate variable loopSN can skip these 512 sequence numbers, and does not need to traverse 512 times in the 512 sequence numbers corresponding to the array element in the fourth array, so the value of the intermediate variable loopSN is updated to (loopSN+(512×(LM / 512+1)―LM))%TT, and return to step S4. Among them, LW=loopSN / 4096, LM=loopSN%4096, / means obtaining the quotient by remainder division; % means obtaining the remainder by remainder division, and TT means the maximum possible value of the sequence number of the downlink RLC PDU plus 1. The meaning of 4096 here is the number of RLC PDU sequence numbers corresponding to each row of all arrays.
[0032] If not, go to step S52.
[0033] Step S52: The AM mode RLC entity of the UE determines whether the array element in the third array containing the sequence number of the downlink RLC PDU whose received information has just been processed is equal to 256.
[0034] If yes, it indicates that all the RLC PDUs of the 256 sequence numbers corresponding to the array element SZ256[LW][LM / 256] in the third array have been received, and the intermediate variable loopSN can skip these 256 sequence numbers, and does not need to traverse 256 times in the 256 sequence numbers corresponding to the array element in the third array, so the value of the intermediate variable loopSN is updated to (loopSN+(256×(LM / 256+1)―LM))%TT, and return to step S4. Among them, LW=loopSN / 4096, LM=loopSN%4096, / means obtaining the quotient by remainder division; % means obtaining the remainder by remainder division, and TT means the maximum possible value of the sequence number of the downlink RLC PDU plus 1. The meaning of 4096 here is the number of RLC PDU sequence numbers corresponding to each row of all arrays.
[0035] If not, go to step S53.
[0036] Step S53: The AM mode RLC entity of the UE determines whether the array element in the second array containing the sequence number of the downlink RLC PDU whose received information has just been processed is equal to 128.
[0037] If yes, it indicates that all the RLC PDUs of the 128 sequence numbers corresponding to the array element SZ128[LW][LM / 128] in the second array have been received. The intermediate variable loopSN can skip these 128 sequence numbers, and it is not necessary to traverse 128 times among the 128 sequence numbers corresponding to the array element in the second array. Therefore, the value of the intermediate variable loopSN is updated to (loopSN+(128×(LM / 128+1)―LM))%TT, and the process returns to step S4. Among them, LW=loopSN / 4096, LM=loopSN%4096, / indicates the quotient obtained by remainder division; % indicates the remainder obtained by remainder division, and TT indicates the maximum possible value of the sequence number of the downlink RLC PDU plus 1. The meaning of 4096 here is the number of RLC PDU sequence numbers corresponding to each row of all arrays.
[0038] If not, go to step S54.
[0039] Step S54: the AM mode RLC entity of the UE determines whether the array element in the first array containing the sequence number of the downlink RLC PDU whose received information has just been processed is equal to 64.
[0040] If yes, it indicates that all the RLC PDUs of the 64 sequence numbers corresponding to the array element SZ64[LW][LM / 64] in the first array have been received, and the intermediate variable loopSN can skip these 64 sequence numbers, and does not need to traverse 64 times among the 64 sequence numbers corresponding to the array element in the first array, so the value of the intermediate variable loopSN is updated to (loopSN+(64×(LM / 64+1)―LM))%TT, and return to step S4. Among them, LW=loopSN / 4096, LM=loopSN%4096, / means obtaining the quotient by remainder division; % means obtaining the remainder by remainder division, and TT means the maximum possible value of the sequence number of the downlink RLC PDU plus 1. The meaning of 4096 here is the number of RLC PDU sequence numbers corresponding to each row of all arrays.
[0041] If not, go to step S6.
[0042] Step S6: Update the value of the intermediate variable loopSN to (loopSN+1)%TT, and return to step S4, where % indicates the remainder obtained by the remainder division, and TT indicates the maximum possible value of the sequence number of the downlink RLC PDU plus 1.
[0043] Based on the same principle, in step S1, the number of two-dimensional arrays set by the UE can be any positive integer ≥2. Each row of all arrays is used to indicate the number of RLC PDUs received in the same number of P RLC PDUs with different sequence numbers, where P is a positive integer. Each element in the first array is used to indicate the number of RLC PDUs received in q1 RLC PDUs with different sequence numbers, and each element in the second array is used to indicate the number of RLC PDUs received in q2 RLC PDUs with different sequence numbers; if the number of two-dimensional arrays is ≥3, each element in the third array is used to indicate the number of RLC PDUs received in q3 RLC PDUs with different sequence numbers; if there are more two-dimensional arrays, and so on; q1, q2, q3, ... are all positive integers, and q1 < q2 < q3 < .... Preferably, q1 = q2 ÷ 2 = q3 ÷ 4 = ...
[0044] Based on the same principle, the steps S51 to S54 can be combined into step S5: when the AM mode RLC entity of the UE processes the received information of a downlink RLC PDU, it first determines whether the array element of the array of the maximum number of different sequence numbers, each element of which is used to indicate the sequence number of the downlink RLC PDU that has just processed the received information, is equal to the maximum number. If the first determination is yes, the value of the intermediate variable loopSN is updated to (loopSN+(the maximum number×(LM / the maximum number+1)-LM))%TT, and the process returns to step S4; wherein, LW=loopSN / P, LM=loopSN%P, / indicates the quotient obtained by remainder division, % indicates the remainder obtained by remainder division, and TT indicates the maximum possible value of the sequence number of the downlink RLC PDU plus 1. If the first determination is no, the AM mode RLC entity of the UE secondly determines whether the array element of the array of the second maximum number of different sequence numbers, each element of which is used to indicate the sequence number of the downlink RLC PDU that has just processed the received information, is equal to the second maximum number. If the second judgment is yes, the value of the intermediate variable loopSN is updated to (loopSN+(the second largest number×(LM / the second largest number+1)-LM))%TT, and the process returns to step S4. If the second judgment is no, if the number of two-dimensional arrays is 2, the process goes to step S6; if the number of two-dimensional arrays is ≥3, the AM mode RLC entity of the UE determines for the third time whether the array element in which each element indicates the third largest number of different sequence numbers and contains the sequence number of the downlink RLC PDU whose received information has just been processed is equal to the third largest number; and so on, until the AM mode RLC entity of the UE determines for the last time whether the array element in which each element indicates the minimum number of different sequence numbers and contains the sequence number of the downlink RLC PDU whose received information has just been processed is equal to the minimum number. If the last judgment is yes, the value of the intermediate variable loopSN is updated to (loopSN+(the minimum number×(LM / the minimum number+1)-LM))%TT, and the process returns to step S4. If the last judgment is no, the process goes to step S6.
[0045] See also Figure 2 An embodiment of the 5G NR RLC uplink status report optimization coding device proposed in the present invention includes an array setting unit 1, a state variable updating unit 2, an array value updating unit 3, a status report forming unit 4, a spanning update unit 1 51, a spanning update unit 2 52, a spanning update unit 3 53, a spanning update unit 4 54, and a regular update unit 6. Figure 2 The device shown corresponds to Figure 1 The method shown.
[0046] The array setting unit 1 is used to set four two-dimensional arrays. All arrays have the same number of rows and different numbers of columns. All elements of each array correspond to all values of the sequence number of the RLC PDU. Each row of all arrays is used to indicate the number of RLC PDUs received in the same number of 4096 RLC PDUs with different sequence numbers. Each element in the first array is used to indicate the number of RLC PDUs received in RLC PDUs with 64 different sequence numbers, each element in the second array is used to indicate the number of RLC PDUs received in RLC PDUs with 128 different sequence numbers, each element in the third array is used to indicate the number of RLC PDUs received in RLC PDUs with 256 different sequence numbers, and each element in the fourth array is used to indicate the number of RLC PDUs received in RLC PDUs with 512 different sequence numbers.
[0047] The state variable updating unit 2 is used for updating the state variables RX_NEXT and RX_HIGHEST_STATUS according to the sequence number of the RLC PDU each time a new RLC PDU is received.
[0048] The array value updating unit 3 is used to add 1 to the value of the array element containing the sequence number of the newly received RLC PDU in all arrays.
[0049] The status report forming unit 4 is used to start forming the RLC uplink status report when the RLC entity in the AM mode of the UE needs to send an RLC uplink status report to the network side and the UE receives an uplink authorization. The status report forming unit 4 sets an intermediate variable loopSN and processes the value of the intermediate variable loopSN as the reception information of the downlink RLC PDU of the sequence number. The initial value of the intermediate variable loopSN is the value of RX_NEXT. When the value of the intermediate variable loopSN becomes the value of RX_HIGHEST_STATUS, the status report forming unit 4 completes the formation of the RLC uplink status report, and the whole method ends.
[0050] The span update unit 1 51 is used to determine whether the array element in the fourth array containing the sequence number of the downlink RLC PDU that has just processed the received information is equal to 512 when the RLC entity in the AM mode of the UE completes processing of the received information of a downlink RLC PDU. If yes, update the value of the intermediate variable loopSN to (loopSN+(512×(LM / 512+1)―LM))%TT, and return to the status report forming unit 4. If no, enter the span update unit 2 52.
[0051] The second span update unit 52 is used to determine whether the array element in the third array containing the sequence number of the downlink RLC PDU of the received information just processed is equal to 256. If yes, the value of the intermediate variable loopSN is updated to (loopSN+(256×(LM / 256+1)―LM))%TT, and the process returns to the status report forming unit 4. If no, the process enters the third span update unit 53.
[0052] The span update unit 3 53 is used to determine whether the array element in the second array containing the sequence number of the downlink RLC PDU of the just processed received information is equal to 128. If yes, the value of the intermediate variable loopSN is updated to (loopSN+(128×(LM / 128+1)―LM))%TT, and the process returns to the status report forming unit 4. If no, the process enters the span update unit 4 54.
[0053] The span update unit 4 54 is used to determine whether the array element in the first array containing the sequence number of the downlink RLC PDU of the just processed received information is equal to 64. If yes, the value of the intermediate variable loopSN is updated to (loopSN+(64×(LM / 64+1)―LM))%TT, and the process returns to the status report forming unit 4. If no, the process enters the regular update unit 6.
[0054] The conventional updating unit 6 is used to update the value of the intermediate variable loopSN to (loopSN+1)%TT, and return to the status report forming unit 4.
[0055] Based on the same principle, the number of two-dimensional arrays set by the array setting unit 1 can be any positive integer ≥ 2, which corresponds to the situation of the aforementioned step S1 and will not be described in detail.
[0056] Based on the same principle, the spanning update unit 1 51 to the spanning update unit 4 54 can be combined into the spanning update unit 5, which corresponds to the situation of the aforementioned step S5 and will not be repeated.
[0057] Under the premise of complying with the 3GPP protocol, the present invention proposes a new coding optimization method for RLC uplink status report, which is applicable to the case where RLC PDU adopts 12-bit or 18-bit sequence number. The present invention solves the problem of tight 5G NR uplink authorization scheduling time and has achieved very good results in practical applications.
[0058] The above are only preferred embodiments of the present invention and are not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention shall be included in the protection scope of the present invention.
Claims
1. A 5G NR RLC uplink status report optimization coding method, Its characteristics are: The method comprises the following steps: Step S1: UE sets multiple two-dimensional arrays; all arrays have the same number of rows and different numbers of columns; all elements of each array correspond to all values of the sequence number of the RLC PDU; each row of all arrays is used to indicate the number of RLC PDUs received in the same number of P RLC PDUs with different sequence numbers, where P is a positive integer; wherein each element in the first array is used to indicate the number of RLC PDUs received in q1 RLC PDUs with different sequence numbers, and each element in the second array is used to indicate the number of RLC PDUs received in q2 RLC PDUs with different sequence numbers; if the number of two-dimensional arrays is ≥3, each element in the third array is used to indicate the number of RLC PDUs received in q3 RLC PDUs with different sequence numbers; if there are more two-dimensional arrays, the same applies; q1, q2, q3, ... are all positive integers, and q1<q2<q3<...; Step S2: When the AM mode RLC entity of the UE receives a new RLC PDU, it updates the state variables RX_NEXT and RX_HIGHEST_STATUS according to the sequence number of the RLC PDU; Step S3: The UE adds 1 to the values of the array elements containing the sequence numbers of the newly received RLC PDUs in all arrays; Step S4: When the RLC entity in the AM mode of the UE needs to send an RLC uplink status report to the network side and the UE receives an uplink grant, the RLC entity in the AM mode of the UE starts to construct an RLC uplink status report; the RLC entity in the AM mode of the UE sets an intermediate variable loopSN, and processes the value of the intermediate variable loopSN as the reception information of the downlink RLC PDU of the sequence number; The initial value of the intermediate variable loopSN is the value of RX_NEXT; when the value of the intermediate variable loopSN becomes the value of RX_HIGHEST_STATUS, the RLC entity in the AM mode of the UE completes the formation of the RLC uplink status report, and the whole method ends; Step S5: when the AM mode RLC entity of the UE completes processing of the received information of a downlink RLC PDU, it is first determined whether the array element containing the sequence number of the downlink RLC PDU whose received information has just been processed in the array in which each element is used to indicate the maximum number of different sequence numbers is equal to the maximum number; If the first judgment is yes, the value of the intermediate variable loopSN is updated to (loopSN + (the maximum number × (LM / the maximum number + 1) - LM)) % TT, and the process returns to step S4; Wherein, LW=loopSN / P, LM=loopSN%P, / indicates the quotient obtained by remainder division, % indicates the remainder obtained by remainder division, and TT indicates the maximum possible value of the sequence number of the downlink RLC PDU plus 1; If the first determination is no, the RLC entity in the AM mode of the UE determines for the second time whether the array element, in which each element is used to indicate the second largest number of different sequence numbers, containing the sequence number of the downlink RLC PDU for which the received information has just been processed is equal to the second largest number; If the second judgment is yes, the value of the intermediate variable loopSN is updated to (loopSN+(the second largest number×(LM / the second largest number+1)-LM))%TT, and the process returns to step S4; If the second judgment is no, if the number of the two-dimensional arrays is 2, go to step S6; if the number of the two-dimensional arrays is ≥3, the RLC entity in the AM mode of the UE determines for the third time whether the array element in which each element is used to indicate the sequence number of the downlink RLC PDU whose received information has just been processed in the array of the third largest number of different sequence numbers is equal to the third largest number; and so on, until the RLC entity in the AM mode of the UE determines for the last time whether the array element in which each element is used to indicate the sequence number of the downlink RLC PDU whose received information has just been processed in the array of the minimum number of different sequence numbers is equal to the minimum number; If the last judgment is yes, the value of the intermediate variable loopSN is updated to (loopSN+(the minimum number×(LM / the minimum number+1)-LM))%TT, and the process returns to step S4; If the last judgment is no, go to step S6; Step S6: Update the value of the intermediate variable loopSN to (loopSN+1)%TT, and return to step S4.
2. The 5G NR RLC uplink status report optimization coding method according to claim 1, Its characteristics are: All elements of each array correspond to all values of the RLC PDU sequence number from small to large in order from left to right and then from top to bottom.
3. The 5G NR RLC uplink status report optimization coding method according to claim 1, Its characteristics are: q1=q2÷2=q3÷4=…….
4. The 5G NR RLC uplink status report optimization coding method according to claim 2, Its characteristics are: In the step S1, the UE sets four two-dimensional arrays; The first array SZ64[64][64] is a two-dimensional array of 64 rows and 64 columns, each array element corresponds to 64 integers, and the value range of each element is an integer between 0 and 64, indicating the number of received RLC PDUs of 64 different sequence numbers corresponding to the element; The second array SZ128[64][32] is a two-dimensional array of 64 rows and 32 columns, each array element corresponds to 128 integers, and the value range of each element is an integer between 0 and 128, indicating the number of received RLC PDUs of 128 different sequence numbers corresponding to the element; The third array SZ256[64][16] is a two-dimensional array of 64 rows and 16 columns, each array element corresponds to 256 integers, and the value range of each element is an integer between 0 and 256, indicating the number of received RLC PDUs of 256 different sequence numbers corresponding to the element; The fourth array SZ512[64][8] is a two-dimensional array of 64 rows and 8 columns, each array element corresponds to 512 integers, and the value range of each element is an integer between 0 and 512, indicating the number of RLC PDUs received in the 512 RLC PDUs with different sequence numbers corresponding to the element.
5. The 5G NR RLC uplink status report optimization coding method according to claim 1, Its characteristics are: At the beginning of the method, the UE determines the initial value of each element in all arrays according to the actual reception situation of the RLC PDU.
6. The 5G NR RLC uplink status report optimization coding method according to claim 1, Its characteristics are: In step S2, each time the AM mode RLC entity of the UE receives a new RLC PDU, if the sequence number of the newly received RLC PDU is within the RLC receiving window and does not overlap with the sequence number of the earlier received RLC PDU, the status variables RX_NEXT and RX_HIGHEST_STATUS are updated according to the sequence number of the RLC PDU; otherwise, the newly received RLC PDU is discarded.
7. The 5G NR RLC uplink status report optimization coding method according to claim 4, Its characteristics are: In step S3, the value of the element SZ64[W][M / 64] in the W+1th row and the M / 64+1th column of the first array is increased by 1, the value of the element SZ128[W][M / 128] in the W+1th row and the M / 128+1th column of the second array is increased by 1, the value of the element SZ256[W][M / 256] in the W+1th row and the M / 256+1th column of the third array is increased by 1, and the value of the element SZ512[W][M / 512] in the W+1th row and the M / 512+1th column of the fourth array is increased by 1; wherein W=SN / P, / represents the quotient obtained by remainder division, and M=SN%P, % represents the remainder obtained by remainder division.
8. A 5G NR RLC uplink status report optimization coding device, Its characteristics are: It includes an array setting unit, a state variable updating unit, an array value updating unit, a state report forming unit, a spanning updating unit, and a regular updating unit; The array setting unit is used to set multiple two-dimensional arrays; all arrays have the same number of rows and different numbers of columns; all elements of each array correspond to all values of the sequence number of the RLC PDU; each row of all arrays is used to indicate the number of RLC PDUs received in the same number of P RLC PDUs with different sequence numbers, where P is a positive integer; wherein each element in the first array is used to indicate the number of RLC PDUs received in q1 RLC PDUs with different sequence numbers, and each element in the second array is used to indicate the number of RLC PDUs received in q2 RLC PDUs with different sequence numbers; if the number of two-dimensional arrays is ≥3, each element in the third array is used to indicate the number of RLC PDUs received in q3 RLC PDUs with different sequence numbers; if there are more two-dimensional arrays, the same applies; q1, q2, q3, ... are all positive integers, and q1<q2<q3<...; The state variable updating unit is used to update the state variables RX_NEXT and RX_HIGHEST_STATUS according to the sequence number of the RLC PDU each time the RLC entity in the AM mode of the UE receives a new RLC PDU; The array value updating unit is used to add 1 to the values of the array elements containing the sequence numbers of the newly received RLC PDUs in all arrays; The status report forming unit is used to start forming an RLC uplink status report when the RLC entity in the AM mode of the UE needs to send an RLC uplink status report to the network side and the UE receives an uplink authorization; the status report forming unit sets an intermediate variable loopSN, and processes the value of the intermediate variable loopSN as the reception information of the downlink RLC PDU of the sequence number; The initial value of the intermediate variable loopSN is the value of RX_NEXT; when the value of the intermediate variable loopSN becomes the value of RX_HIGHEST_STATUS, the RLC entity in the AM mode of the UE completes the formation of the RLC uplink status report, and the whole process ends; The spanning update unit is used for first determining, when the RLC entity in the AM mode of the UE completes processing of received information of a downlink RLC PDU, whether the array element containing the sequence number of the downlink RLC PDU whose received information has just been processed, in an array where each element is used to indicate a maximum number of different sequence numbers, is equal to the maximum number; If the first judgment is yes, the value of the intermediate variable loopSN is updated to (loopSN+(the maximum number×(LM / the maximum number+1)-LM))%TT, and the status report forming unit is returned; wherein LW=loopSN / P, LM=loopSN%P, / represents the quotient obtained by the remainder division, % represents the remainder obtained by the remainder division, and TT represents the maximum possible value of the sequence number of the downlink RLC PDU plus 1; If the first determination is no, the spanning update unit determines for the second time whether the array element containing the sequence number of the downlink RLC PDU whose received information has just been processed in the array of each element indicating the second largest number of different sequence numbers is equal to the second largest number; If the second judgment is yes, the value of the intermediate variable loopSN is updated to (loopSN+(the second largest number×(LM / the second largest number+1)-LM))%TT, and the process returns to the status report forming unit; If the second judgment is no, if the number of the two-dimensional arrays is 2, enter the conventional update unit; if the number of the two-dimensional arrays is ≥3, the spanning update unit determines for the third time whether the array element in which each element is used to indicate the third largest number of different sequence numbers and contains the sequence number of the downlink RLC PDU whose received information has just been processed is equal to the third largest number; and so on, until the spanning update unit determines for the last time whether the array element in which each element is used to indicate the least largest number of different sequence numbers and contains the sequence number of the downlink RLC PDU whose received information has just been processed is equal to the least number; If the last judgment is yes, the value of the intermediate variable loopSN is updated to (loopSN+(the minimum number×(LM / the minimum number+1)-LM))%TT, and the process returns to the status report forming unit; If the last judgment is no, enter the conventional update unit; The conventional updating unit is used to update the value of the intermediate variable loopSN to (loopSN+1)%TT, and return to the status report forming unit.
Citation Information
Patent Citations
Method for triggering status report by radio link control layer and receiving side device
CN101989899A
Uplink status report reporting method, radio link control data transmitting method and device
CN102740353A