Method for shifting redundancy versions for transmission of a transport block spanning multiple slots - Patents.com

JP2024515542A5Pending Publication Date: 2025-06-02NOKIA TECHNOLOGIES OY
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023561237
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-04-05
Filing Date
2022-04-01
Publication Date
2025-06-02

AI Technical Summary

Technical Problem

Current NR specifications face limitations in decoding performance when transmitting transport blocks across multiple slots (TBoMS) due to fixed starting positions of redundancy versions in circular buffers, leading to incomplete codeword coverage and high code rates that result in undecodable codewords.

Method used

The solution involves dynamically shifting the starting position of redundancy versions within the circular buffer based on the position of previous versions or scaling factors to ensure complete codeword coverage and maintain self-decodability, using methods such as setting the starting position to the ending position of the previous version or applying scaling factors to adjust the position.

Benefits of technology

This approach enhances decoding performance by ensuring that the entire codeword is covered and remains self-decodable, addressing the limitations of fixed starting positions in current specifications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

When a large transport block is rate-matched and transmitted in each PUSCH segment using a different redundancy version (RV), the RV cycle with a few PUSCH segments may not cover the entire codeword, and / or the effective code rate of the self-decodable redundancy version may become too high when a large TBS across many PUSCH segments is rate-matched to the resources of a single PUSCH segment. To avoid these problems, the start position of one or more RVs can be shifted by setting the start position of the current RV to be the same as the end position of the previous one or by scaling the start position by a value. Alternatively, these problems can be avoided by setting a new start position of the RV based on the gap between the end of the previous RV and the beginning of the current RV.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Exemplary and non-limiting embodiments relate generally to NR coverage extension, and more particularly to rate matching and transmission of transport blocks spanning multiple slots (TBoMS).

[0002] A brief explanation of advanced development In transport block transmission, it is known to perform redundancy version rotation over PUSCH segments for TBoMS in which the PUSCH segment is in a slot.

[0003] The above aspects and other features are explained in the following description taken in conjunction with the accompanying drawings. [Brief description of the drawings]

[0004] [Figure 1] FIG. 1 is a block diagram of one possible, non-limiting example system in which example embodiments may be implemented. [Diagram 2] FIG. 1 illustrates features described herein. [Diagram 3] FIG. 1 illustrates features described herein. [Figure 4] FIG. 1 illustrates features described herein. [Diagram 5] FIG. 1 illustrates features described herein. [Figure 6] FIG. 1 illustrates features described herein. [Figure 7] FIG. 1 illustrates features described herein. [Figure 8] 2 is a flow chart illustrating the steps described herein. [Figure 9] 2 is a flow chart illustrating the steps described herein. [Figure 10] 2 is a flow chart illustrating the steps described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0005] The following abbreviations that may be contained in the specification and / or in the figures of the drawings are defined as follows: 3GPP 3rd Generation Partnership Project 5G 5th Generation 5GC 5G Core Network AMF Access and Mobility Management Features CRC Cyclic Redundancy Check CQI Channel Quality Indicator CU Aggregation Unit DCI Downlink Control Information DMRS demodulation reference signal DU Distributed Unit eNB (or eNodeB) Evolved NodeB (e.g. LTE base station) EN-DC E-UTRA-NR dual connectivity A node that provides termination of NR user plane protocols and control plane protocols for en-gNB or En-gNB UE and acts as a secondary node in EN-DC E-UTRA Evolved Universal Terrestrial Radio Access, i.e. LTE radio access technology FDD Frequency Division Duplex gNB (or gNodeB) A 5G / NR base station, i.e., a node that provides termination of NR user plane protocols and control plane protocols for UE, and is connected to 5GC via the NG interface. I / F Interface L1 Layer 1 LDPC Low Density Parity Check LTE Long Term Evolution MAC Media Access Control MCS Modulation and Coding Scheme MIMO Multi-in Multi-out MME Mobility Management Entity ng or NG New Generation ng-eNB or NG-eNB New Generation eNB NR new radio N / W or NW Network PDCP Packet Data Convergence Protocol PHY Physical Layer PRB Physical Resource Block PUCCH Physical Uplink Control Channel PUSCH Physical Uplink Shared Channel QPSK Quadrature Phase Shift Keying RAN Radio Access Network RE Resource Element RF Radio Frequency RLC Radio Link Control RRH Remote Radio Head RRC Radio Resource Control RS reference signal RU Radio Unit RV Redundant Version Rx Receiver SDAP Service Data Adaptation Protocol SGW Serving Gateway SLIV Start and Length Indicator SMF Session Management Facility SUL additional uplink TB Transport Block TBoMS Transport Block Spanning Multiple Slots TBS Transport Block Size TDD Time Division Duplex TDRA Time Domain Resource Allocation Tx transmitter UE User Equipment (e.g., wireless device, typically a mobile device) UL Uplink UPF User Plane Function

[0006] Referring to FIG. 1, this figure shows a block diagram of one possible, non-limiting example in which an embodiment may be implemented. Shown is a user equipment (UE) 110, a radio access network (RAN) node 170, and a network element(s) 190. In the embodiment of FIG. 1, the user equipment (UE) 110 is in wireless communication with a wireless network 100. The UE is a wireless device that can access the wireless network 100. The UE 110 includes one or more processors 120, one or more memories 125, and one or more transceivers 130 interconnected via one or more buses 127. Each of the one or more transceivers 130 includes a receiver Rx, 132 and a transmitter Tx, 133. The one or more buses 127 may be an address bus, a data bus, or a control bus, and may include any interconnect mechanism, such as a series of lines on a motherboard or integrated circuit, optical fibers or other optical communication devices, and the like. The one or more transceivers 130 are connected to one or more antennas 128. The one or more memories 125 include computer program code 123. The UE 110 includes a module 140 including one or both of portions 140-1 and / or 140-2, which may be implemented in various ways. The module 140 may be implemented in hardware as module 140-1, such as implemented as part of one or more processors 120. The module 140-1 may also be implemented as an integrated circuit or via other hardware such as a programmable gate array. In another embodiment, the module 140 may be implemented as module 140-2, which is implemented as computer program code 123 and executed by one or more processors 120. For example, the one or more memories 125 and the computer program code 123, together with the one or more processors 120, may be configured to cause the user equipment 110 to perform one or more of the operations described herein. The UE 110 communicates with the RAN node 170 via a wireless link 111.

[0007] The RAN node 170 in this example is a base station that provides access to the wireless network 100 by wireless devices such as the UE 110. The RAN node 170 may be, for example, a base station for 5G, also called New Radio (NR). In 5G, the RAN node 170 may be an NG-RAN node, defined as either a gNB or an ng-eNB. The gNB is a node that provides termination of NR user and control plane protocols for the UE and is connected to the 5GC (e.g., network element(s) 190, etc.) via an NG interface. The ng-eNB is a node that provides termination of E-UTRA user and control plane protocols for the UE and is connected to the 5GC via an NG interface. The NG-RAN node may include multiple gNBs, which may also include a centralized unit (CU) (gNB-CU) 196 and a distributed unit(s) (DU) (gNB-DU). A DU 195 of the gNB is shown. It should be noted that the DU may include a radio unit (RU) or be coupled to a radio unit (RU) to control the radio unit (RU). The gNB-CU is a logical node that hosts the RRC, SDAP, and PDCP protocols of the gNB or the RRC and PDCP protocols of the en-gNB and controls the operation of one or more gNB-DUs. The gNB-CU terminates the F1 interface connected to the gNB-CU. The F1 interface is illustrated as reference 198, which also illustrates links between remote elements of the RAN node 170 and centralized elements of the RAN node 170, such as between the gNB-CU 196 and the gNB-DU 195. The gNB-DU is a logical node that hosts the RLC, MAC, and PHY layers of the gNB or en-gNB, the operation of which is controlled in part by the gNB-CU. One gNB-CU supports one or more cells. One cell is supported by only one gNB-DU. The gNB-DU terminates the F1 interface 198 connected to the gNB-CU.It should be noted that while the DU 195 is considered to include the transceiver 160, e.g., as part of an RU, in some instances of this may have the transceiver 160 as part of a separate RU, e.g., under the control of and connected to the DU 195. The RAN node 170 may also be an eNB (Evolved Node B) base station for LTE (Long Term Evolution), or any other suitable base station or node.

[0008] The RAN node 170 includes one or more processors 152, one or more memories 155, one or more network interfaces (N / WI / F(s)) 161, and one or more transceivers 160, interconnected via one or more buses 157. Each of the one or more transceivers 160 includes a receiver Rx, 162 and a transmitter Tx, 163. The one or more transceivers 160 are connected to one or more antennas 158. The one or more memories 155 include computer program code 153. The CU 196 may include the processor(s) 152, the memory 155, and the network interface 161. It should be noted that the DU 195 may also include its own memory(s) and processor(s), and / or other hardware, which are not shown.

[0009] The RAN node 170 includes a module 150 including one or both of the portions 150-1 and / or 150-2, which may be implemented in various ways. The module 150 may be implemented in hardware as a module 150-1, such as implemented as part of one or more processors 152. The module 150-1 may also be implemented as an integrated circuit or via other hardware such as a programmable gate array. In another embodiment, the module 150 may be implemented as a module 150-2, implemented as a computer program code 153 and executed by one or more processors 152. For example, the one or more memories 155 and the computer program code 153, together with the one or more processors 152, are configured to cause the RAN node 170 to perform one or more of the operations described herein. It should be noted that the functionality of the module 150 may be distributed, such as distributed between the DU 195 and the CU 196, or may be implemented only in the DU 195.

[0010] One or more network interfaces 161 communicate over a network, such as via links 176 and 131. Two or more gNBs 170 may communicate, for example, using link 176. Link 176 can be wired or wireless or both and may implement, for example, an Xn interface for 5G, an X2 interface for LTE, or other suitable interfaces for other standards.

[0011] The one or more buses 157 may be an address bus, a data bus, or a control bus, and may include any interconnect mechanism, such as a series of lines on a motherboard or integrated circuit, optical fiber or other optical communication equipment, wireless channels, and the like. For example, the one or more transceivers 160 may be implemented as a remote radio head (RRH) 195 for LTE, or a distributed unit (DU) 195 for a gNB implementation for 5G, with other elements of the RAN node 170 possibly in a different physical location than the RRH / DU, and the one or more buses 157 may be implemented in part, for example, as optical fiber cables or other suitable network connections to connect the other elements of the RAN node 170 (e.g., aggregation unit (CU), gNB-CU) to the RRH / DU 195. Reference 198 also indicates those suitable network link(s).

[0012] It should be noted that although the description herein indicates that a "cell" performs a function, it is clear that the equipment forming the cell performs a function. A cell forms part of a base station. That is, there may be multiple cells per base station. For example, there may be three cells for a single carrier frequency and associated bandwidth, with each cell covering one-third of a 360 degree area, so that the coverage area of ​​a single base station covers approximately an oval or circle. Furthermore, each cell may correspond to a single carrier, and a base station may use multiple carriers. Thus, if there are three 120 degree cells per carrier, with two carriers, the base station would have a total of six cells.

[0013] The wireless network 100 may include one or more network elements 190, which may include core network functions, providing connectivity with further networks, such as telephone networks and / or data communication networks (e.g., the Internet), via one or more links 181. Such core network functions for 5G may include access and mobility management function(s) (AMF(s)) and / or user plane functions (UPF(s)) and / or session management function(s) (SMF(s)). Such core network functions for LTE may include MME (Mobility Management Entity) / SGW (Serving Gateway) functions. It should be noted that these are merely exemplary functions that may be supported by the network element(s) 190, and that both 5G and LTE functions may be supported. The RAN node 170 is coupled to the network element 190 via link 131. The link 131 may be implemented, for example, as an NG interface for 5G, or an S1 interface for LTE, or other suitable interface for other standards. Network element 190 includes one or more processors 175, one or more memories 171, and one or more network interfaces (N / WI / F(s)) 180, interconnected via one or more buses 185. The one or more memories 171 include computer program code 173. The one or more memories 171 and the computer program code 173, together with the one or more processors 175, are configured to cause network element 190 to perform one or more operations.

[0014] The wireless network 100 may implement network virtualization, which is the process of combining hardware and software network resources and network functions to create a single software-based management entity, a virtual network. Network virtualization involves platform virtualization, which is often combined with resource virtualization. Network virtualization is classified as either external network virtualization, which combines multiple networks or network parts to create a virtual unit, or internal network virtualization, which provides network-like functionality to software containers on a single system. It should be noted that the virtualized entities resulting from network virtualization are further implemented at some level using hardware, such as the processor 152 or 175 and memory 155 and 171, and that such virtualized entities produce technical effects.

[0015] The computer readable memories 125, 155, and 171 may be of any type suitable for the local technology environment and may be implemented using any suitable data storage technology, such as semiconductor-based memory devices, flash memory, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory. The computer readable memories 125, 155, and 171 may be a means for performing storage functions. The processors 120, 152, and 175 may be of any type suitable for the local technology environment and may include, by way of non-limiting examples, one or more of a general purpose computer, a special purpose computer, a microprocessor, a digital signal processor (DSP), and a processor based on a multi-core processor architecture. The processors 120, 152, and 175 may be a means for performing functions, such as controlling functions of the UE 110, the RAN node 170, etc. described herein.

[0016] In general, various embodiments of user equipment 110 may include, but are not limited to, cellular telephones such as smartphones, tablets, personal digital assistants (PDAs) with wireless communication capabilities, portable computers with wireless communication capabilities, image capture devices such as digital cameras with wireless communication capabilities, gaming devices with wireless communication capabilities, music storage and playback devices with wireless communication capabilities, Internet appliances allowing wireless Internet access and browsing, tablets with wireless communication capabilities, and portable units or terminals incorporating combinations of such functions.

[0017] Features described herein generally relate to Physical Uplink Shared Channel (PUSCH) extensions. These extensions may apply to FR1, FR2, Time Division Duplex (TDD), and / or Frequency Division Duplex (FDD) transmission(s). Features described herein may relate to mechanism(s) supporting Transport Block (TB) Processing (TBoMS) across a multi-slot PUSCH. In example embodiments of the present disclosure, a Transport Block Size (TBS) may be determined based on multiple slots and may be transmitted across multiple slots.

[0018] Features described herein generally relate to rate matching and transmission of a transport block spanning multiple slots (TBoMS). The total number of symbols allocated to the TBoMS PUSCH may be grouped into multiple PUSCH segments. Each PUSCH segment may include consecutive PUSCH symbols and may cross slot boundaries. Exemplary embodiments of the present disclosure may relate to setting / specifying and / or indicating a new starting position(s) of one or more redundancy versions (RVs) in a circular buffer used for rate matching to store different RVs of data to be transmitted. The new starting position may be based on the ending position of the previous RV in the circular buffer, or may be scaled down / up (shifted) from the current position of the RV in the circular buffer, or may be based on a gap (e.g., a scalar) from the end of the previous RV in the circular buffer.

[0019] The transport block size (TBS) is the scheduled modulation order Q m , coding rate R, number of multiple-in-multiple-out (MIMO) layers v, and number of available resource elements (REs) in the scheduled slot. To deliver a packet to a base station (e.g., gNB), the UE may be scheduled with a higher modulation and coding scheme (MCS) and fewer resources when the channel condition is good (e.g., high channel quality indicator (CQI)), or with a lower MCS and more resources when the channel condition is poor (e.g., low CQI). For UEs at the cell edge, a larger resource allocation may not be ideal due to limited power budget. Thus, cell edge UEs are likely to engage in narrowband transmissions with a low MCS (e.g., quadrature phase shift keying (QPSK) and lower coding rate). Such configurations may often require the UE to split higher layer packets into multiple segments and transmit the packets over multiple small TBs in multiple UL grants.

[0020] The number of assigned physical resource blocks (PRBs) may be the same across the PUSCH segments. The large transport block size (TBS) of the TBoMS may be determined based on all or a portion of the resource elements across the assigned PUSCH segments. To this end, contiguous or non-contiguous slots may be used. TBs may or may not be transmitted rate-matched in each PUSCH segment using different redundancy versions (RVs).

[0021] If the TB is rate-matched and transmitted in each segment, the RV is cycled over the assigned PUSCH segments. This may entail at least two important drawbacks. First, currently the starting position of the RV in the circular buffer is fixed, which depends on the size of the circular buffer. Thus, an RV cycle through a small number of PUSCH segments (and therefore a small number of RVs) may not cover the entire codeword (see the description of Figures 3 and 4 below). Second, rate matching a large TBS across many PUSCH segments to the resources of a single PUSCH segment may result in an effective code rate for the self-decodable redundant version being too high (see the description of Figure 5 below).

[0022] The total number of symbols allocated to the TBoMS PUSCH may be grouped into multiple PUSCH segments. Each PUSCH segment may contain consecutive PUSCH symbols and may or may not cross a slot boundary. The number of allocated PRBs may be the same across the PUSCH segments.

[0023] There can be two options for time domain resource allocation (TDRA) for TBoMS. In option 1, the number of symbols allocated to TBoMS is the same in each slot. In option 2, the number of symbols allocated to TBoMS may or may not be the same across slots. Now refer to Figure 2, where two possible options for TDRA for TBoMS are shown.

[0024] 210 shows an example of TDRA option 1, where the number of symbols allocated to TBoMS is the same in each slot. After the slot boundary, at 212, 216, and 220, the PUSCH symbols for TBoMS are transmitted in one PUSCH segment that does not cross a slot boundary. At 214 and 218, downlink or invalid symbols are transmitted.

[0025] 230 shows an example of TDRA option 2, where the number of symbols allocated to TBoMS may vary across slots. PUSCH symbols for TBoMS are transmitted in one PUSCH segment, which is bisected by the slot boundary at 232 and 234. Meanwhile, after the slot boundary, PUSCH symbols for TBoMS are transmitted in one PUSCH segment at 238 and 242. The number of symbols allocated to TBoMS is different and larger in PUSCH segments 232 and 234 than in PUSCH segment 238 or PUSCH segment 242. Downlink or invalid symbols are transmitted at 236 and 240.

[0026] The (large) TBS of the TBoMS may be determined based on all or a portion of the resource elements across the assigned PUSCH segment. A possible problem when mapping a large TB on the assigned resources may be that non-consecutive physical slots may not be used for the TBoMS unless the large TB is transmitted rate-matched in each PUSCH segment using different redundancy versions (i.e., RV cycles).

[0027] In R1-2101478, the idea of ​​rate-matching and transmitting large TBs in different slots with different redundancy versions was proposed. When the Rel-15 / 16 PUSCH repetition type A framework is considered to realize TBoMS, the number of symbols allocated to TBoMS will be the same in each slot (i.e., TDRA option 1 (210) shown in FIG. 2), the large TB is calculated considering the sum of several PUSCH resources over multiple slots (i.e., multiple slots are bundled by scaling the TB size so that the payload can be encoded as a single TB), and the TB is rate-matched and transmitted in each slot using different redundancy versions (i.e., RV cycles). In this solution, only the RV cycles over the PUSCH segments of TBoMS that are in a slot are considered, rather than the PUSCH segments spanning multiple slots. And enabling PUSCH segments spanning multiple slots is not considered. The exemplary embodiments of the present disclosure address or may be associated with problems related to this solution of TBoMS. Example embodiments of the present disclosure may be associated with an RV cycle where a PUSCH segment is transmitted across / spans multiple slots.

[0028] According to the general operation according to the New Radio (NR) specification, the coded bits of a transport block are fed into a circular buffer. The transport block may be divided into several code blocks. A starting point in the circular buffer is defined for a redundancy version (RV). When using a redundancy version to transmit coded bits on a PUSCH resource, the coded bits are read from the starting point associated with the redundancy version in the buffer. When the end of the buffer is reached, the bits wrap around to the beginning of the buffer. RV0 and / or RV3 may be used to transmit at least some systematic bits, while other RVs may be used to transmit parity bits, but this is not required. In the current specification, the starting position of the RV in the circular buffer is fixed, which depends on the size of the circular buffer. The following table is copied from TS38.212, section 5.4.2. [Table 1]

[0029] Table 1

[0030] Table 1 shows the starting positions of the different redundancy versions (k0) for redundancy versions 0 to 3. cb is the circular buffer size, Z c is the "lifting size" of the low-density parity-check (LDPC) matrix.

[0031] According to the solution of R1-2101478, if non-consecutive slots are subject to TBoMS transmission, an RV cycle is used over the PUSCH segments allocated to TBoMS, if appropriate, to ease the UE implementation (note that this solution considers TDRA option 1, 210 in Figure 2, i.e., the PUSCH segments are of the same size and each PUSCH segment is allocated within a slot). This solution has some limitations, as explained below.

[0032] For example, in the first case, the number of coded bits that can be carried per PUSCH segment (denoted G) may be much smaller than the size of the codeword. If there are only a few PUSCH segments, it may happen that the RV cycle with a few PUSCH segments (and therefore a few RVs) cannot cover the entire codeword with the current provision of k0 in Table 1. This drawback never occurs in Rel-15 / Rel-16 PUSCH repetition type A, where TBS is determined by the resources per slot and TB is transmitted per slot.

[0033] Referring now to FIG. 3, an example of a RV cycle for TBoMS is shown, considering the following configuration: 4 Physical Resource Blocks (PRBs) per slot, Modulation and Coding Scheme 6 (MCS6), 2 Demodulation Reference Signal (DMRS) symbols, and TBS for TBoMS determined based on the resources of 3 slots RV0, RV2, and RV3, respectively, and transmitted in the 3 slots. In this example, the value of G is small compared to the codeword size for TBoMS, so the RV cycle with a small number of PUSCH segments cannot cover the entire codeword. In the example of FIG. 3, each of RV0 (310), RV2 (320), and RV3 (325) carries / transmits / contains the same number of bits G (315). In the example of FIG. 3, both RV0 (310) and RV3 (325) contain at least some systematic bits 330. The systematic bits may contain an indication of the TBS and / or a cyclic redundancy check (CRC). In the example of Figure 3, RV0 (310), RV2 (320), and RV3 (325) each include at least some parity bits 335. In the example of Figure 3, the circular buffer size is N (340). In the example of Figure 3, there is a gap between RV0 (310) and RV2 (320) that is not covered by another RV.

[0034] Referring now to FIG. 4, an example of a RV cycle for TBoMS is shown, considering the following configuration: 4 PRBs included per slot, MCS9, 2 DMRS symbols, TBS for TBoMS determined based on the resources of 3 slots RV0, RV2, and RV3, respectively, and TB transmitted in the 3 slots. In this example, since the value of G is small compared to the codeword size for TBoMS, the RV cycle with a small number of PUSCH segments cannot cover the entire codeword to an even greater extent than in the example of FIG. 3 (i.e., due to the high MCS). In the example of FIG. 4, each of RV0 (410), RV2 (420), and RV3 (425) carries / transmits / contains the same number of bits G (415). In the example of FIG. 4, both RV0 (410) and RV3 (425) contain at least some systematic bits 430. In the example of Figure 4, RV0 (410), RV2 (420), and RV3 (425) each include at least some parity bits 435. In the example of Figure 4, the circular buffer size is N (440). In the example of Figure 3, there is a gap between RV0 (410) and RV2 (420), and there is a gap between RV2 (420) and RV3 (425).

[0035] A second example of a possible limitation caused by the solution of R1-2101478 is as follows: For TBoMS spanning many PUSCH segments, rate matching a large TBS determined by resources across many PUSCH segments to the resources of a single PUSCH segment can lead to scenarios where the effective coding rate of the self-decodable redundancy versions (i.e. RV0 and RV3) becomes too high. This means in practice that many systematic and parity bits may have to be punctured to match the resources of one PUSCH segment. In extreme cases, the effective coding rate per PUSCH segment may even be equal to 1, in which case these "self-decodable" RVs become non-self-decodable. This problem can lead to poor performance, and with the current provision of k0 in Table 1, the entire codeword may become undecodable if too many systematic and parity bits are punctured.

[0036] Referring now to FIG. 5, an example is shown in which G is significantly smaller than the TBS. Thus, the effective code rates of the "self-decodable" redundancy versions (i.e., RV0 and RV3) are equal to 1 (e.g., for RV0) or 0 (e.g., for RV3), making them non-self-decodable. In the example of FIG. 5, the entire codeword may not be decodable. FIG. 5 shows an example of the number of bits that can be carried per slot (G) (i.e., the number of bits that can be extracted from the circular buffer per RV) when the TBS is significantly larger than G. In this example, the configuration is the TBS of TBoMS determined based on the resources of 4 PRBs, MCS9, 2 DMRS, and 8 slots (8 repetitions) included per slot. In the example of FIG. 5, each of RV0 (510), RV1 (515), RV2 (520), and RV3 (525) carries / transmits / contains the same number of bits G (530). In the example of FIG. 5, RV0 (510) contains systematic bits 535. In the example of Figure 5, RV1 (515), RV2 (520), and RV3 (525) each include a parity bit 540. In the example of Figure 5, the circular buffer size is N (545). In the example of Figure 5, there are gaps between RV0 (510) and RV1 (525), between RV1 (525) and RV2 (520), between RV2 (520) and RV3 (525), and between RV3 (525) and RV0 (510).

[0037] In summary, both when the TBoMS spans a small number of PUSCH segments and when the TBoMS spans a large number of PUSCH segments, the current definition of k0 shown in Table 1 presents strong limitations in the case of codewords transmitted in multiple PUSCH segments (TBoMS), resulting in poor decoding performance (e.g., Figure 3 or Figure 4) or even undecodable codewords (e.g., Figure 5).

[0038] The features described herein relate generally to TBoMS transmissions and may be aimed at mitigating, if not completely compensating, the aforementioned drawbacks. Exemplary embodiments of the present disclosure may include shifting the starting position(s) of one or more redundancy versions (k0 in Table 1). For example, in FIG. 3, this may be done by shifting RV2 (or both RV2 and RV3) towards RV0. This may allow the entire codeword to be covered with a small number of PUSCH segments, for example by covering the gap between RV0 (310) and RV2 (320) shown in FIG. 3. In the example of FIG. 5, the decodability of the codeword may be restored by shifting RV1 so that it can cover the remaining systematic bits that cannot be conveyed by RV0.

[0039] It should be noted that Figures 3, 4 and 5 are non-limiting examples, and other examples are possible where the PUSCH segment cannot cover the codeword or the codeword is not decodable, as well as other examples where shifting one or more RVs may allow covering the codeword and / or systematic bits.

[0040] Currently, as shown in Table 1, the starting position of the redundancy version (k0) in the circular buffer may be fixed (i.e., hard-coded in the specification) based on the size of the circular buffer. In an exemplary embodiment of the present disclosure, the starting position of the redundancy version may be dynamically shifted in order to cover the entire codeword and / or to allow RV cycles with a small number of PUSCH segments to ensure that the redundancy version remains self-decodable. In an exemplary embodiment of the present disclosure, one or more redundancy versions may be shifted by the same or different offset values ​​in the circular buffer (i.e., the starting position k0 may be shifted). In an exemplary embodiment, k0 may be scaled directly. In additional or alternative exemplary embodiments, a new offset value for scaling k0 may be introduced. In additional or alternative exemplary embodiments, a new starting position of the RV that is not based on the traditional fixed starting position k0 may be introduced.

[0041] In an exemplary embodiment, the k0 of the current RV may be defined to be the same as the end position of the previous RV. This allows all consecutive RVs to occur across the circular buffer. For this solution, the RV i k0(

number

number

number

[0042] In an exemplary embodiment, the position of the RV in the circular buffer may be shifted by directly scaling k0 by a scaling factor α, such that the new starting position of the RV is defined by:

number

number

[0043] As shown in FIG. 6, by setting α<1, the RV can be shifted towards the beginning of the codeword (i.e., the beginning of the circular buffer). In contrast, by setting α>1, the RV can be shifted towards the end of the codeword (i.e., the end of the circular buffer). The gNB can decide whether to shift a given RV forward or backward based on the available time domain resources. For example, if the first PUSCH segment is large, the gNB can decide to set α>1, thereby shifting the second RV towards the end of the codeword and ensuring that the second RV does not overlap with the first RV.

[0044] 6, an example of shifting the redundancy version towards the beginning of the codeword (610) and towards the end of the codeword (620) by setting different values ​​for α is shown. At 610, RV2 is shifted towards the beginning of the codeword with α<1 (e.g., α=0.5). Conventional starting position

number

number

number

number

[0045] In an exemplary embodiment, RV0(

number

number

[0046] In an alternative exemplary embodiment, the RVs to be shifted may be selected based on an indication from a base station (e.g., a gNB). The gNB may indicate that one or more RVs need to be shifted by including a bitmap in the scheduling downlink control information (DCI). The bitmap size may be, for example, 3 bits, which may indicate shifting of RV1, RV2, and RV3. For example, a bitmap of 101 may indicate that RV1 and RV3 should be shifted.

number

[0047] Additionally or alternatively, in an exemplary embodiment, several combinations of RV selections can be configured and indicated using a new field (e.g., with a smaller size) in the Scheduling DCI to select which combination is used. For example, in the case of three RVs, there are eight possible combinations of RVs that can be selected for shifting, but only four of the eight cases may be configured, e.g., the bitmaps for the four cases are configured as {000, 101, 110, 111}. In this case, two bits of the new DCI field can be used to select which of the configured combinations is used.

[0048] Additionally or alternatively, in an exemplary embodiment, the gNB may indicate that one or more RVs do not need to be shifted by setting a corresponding α=1.

[0049] In an exemplary embodiment, a single value of α may be indicated and applied to all RVs that are shifted. In an exemplary embodiment, a list of α values ​​may be radio resource control (RRC) configured or hard-coded in the specification, and a field in the scheduling DCI may be used to select a value in the list. In an exemplary embodiment, the DCI field may be a new field or an existing field. For example, if all RVs can be shifted and the PUSCH segments are of the same size, the indication of the starting RV is not important (i.e., α may be indicated instead of the starting RV), so the DCI field indicating the starting RV may be used to indicate the value of α. Additionally or alternatively, in an exemplary embodiment, the value of α may be determined based on the ratio between the number of bits that can be carried per slot / PUSCH segment (i.e., G) and the TBS. For example, different values ​​of α may be configured for different ranges of the ratio between G and TBS. If the values ​​of G are different due to different lengths of the segments, the max / min / average value of G may be used for the ratio.

[0050] Additionally or alternatively, in an exemplary embodiment, the value of α may be determined based on a ratio between G and the gap of corresponding RVs of the first and second transmissions, or the longest gap of any two consecutive RVs. For example, different values ​​of α may be configured for different ranges of the ratio between G and the longest gap of any two consecutive RVs. If the values ​​of G are different due to different lengths of segments, the max / min / average value of G may be used for the ratio. In a non-limiting example, the value of α may be determined based on a ratio between G (315) of FIG. 3 and the gap between RV0 (310) and RV2 (320). In another non-limiting example, the value of α may be determined based on a ratio between G (415) of FIG. 3 and the gap between RV0 (410) and RV2 (420) (larger than the gap between RV2 (420) and RV3 (425)).

[0051] In an exemplary embodiment, different values ​​of α may be indicated / determined for different RVs to be shifted. In an exemplary embodiment, α may be indicated by a list of different vectors of α values, which may be RRC configured or hard-coded in the specification. Each vector may include different α values ​​for different RVs. For example, a first value of the vector may indicate an α to apply to a first RV to be shifted, a second value of the vector may indicate a second different α to apply to a second different RV to be shifted, etc. A field in the scheduling DCI may be used to select a vector in the list. In an exemplary embodiment, the DCI field may be a new field or an existing field. An example of an existing field may include a DCI field indicating a starting RV. In an exemplary embodiment, the network may select a vector of α values ​​that best approximates the actual gap between adjacent RVs. In other words, based on information related to the gap between the RVs, the base station (e.g., gNB) may indicate in the scheduling DCI a vector of values ​​that match the gap between the RVs.

[0052] Additionally or alternatively, in an exemplary embodiment, the value of α for a given RV may be determined by the ratio between G and the gap from the current RV to the previous RV (e.g., consecutive RV). For example, different values ​​of α may be configured for different ranges of ratios between G and the gap from the current RV to the previous RV. If the values ​​of G are different due to different lengths of segments, the max / min / average value of G may be used for the ratio.

[0053] In an exemplary embodiment, a new starting position of the RV may be introduced. Instead of shifting the RV based on a conventional fixed starting position k0, in an exemplary embodiment, a new starting position(s) may be defined for the RV (other than RV0) based on the gap from the end of the previous RV to the beginning of the current RV (i.e., the gap between consecutive RVs in the circular buffer). In this exemplary embodiment, the number of RVs may be equal to the number of PUSCH segments of the TBoMS. It may be noted that this is different from the solution of R1-2101478, where the number of RVs is limited to four and the PUSCH segment is rotated over a maximum of four RVs. The starting position of the RV may be defined as follows:

number

number

[0054] 7, an example of defining a new starting position for an RV is shown. RV0 (722) is the first RV and therefore does not need to be shifted (i.e., at 720).

number

number

[0055] It may be noted that in the above equation, β is expressed in units of bits, which may be very large and difficult to indicate. In an exemplary embodiment, the overall buffer size may be quantized to units of multiples of bits, i.e., at a coarser granularity, where one unit is defined, for example, by the following equation:

number

[0056] Where:

number

[0057] RV in circular buffer i-1 From the end of the RV i Gap to the beginning of / scalar β i In an exemplary embodiment where is the same for all RVs, the gap / scalar β i may be indicated by M and c via RRC and / or DCI.

[0058] When different gaps / scalars are applied across the RVs, a problem may occur that the number of PUSCH segments may vary for different TBoMSs. Constructing a list of vectors, each containing all the RVs, may be computationally intensive, if not impossible, considering that the size of the vector (i.e., the number of RVs) may vary for different TBoMSs. In an exemplary embodiment, a fixed length L may be defined for the vector (i.e., the L values ​​are included in the vector), and these L values ​​of β and / or c may cycle across the RVs. In a non-limiting example where a vector includes two β and c values ​​that apply to four RVs, a first β and c value may apply to RV1 and RV3, and a second β and c value may apply to RV2 and RV4. In the indication, the list of vectors, each containing an L value of β and / or c, may be hard-coded in the specification or may be RRC configured. The base station (e.g., gNB) may indicate which vector is used, for example, by using DCI.

[0059] In an exemplary embodiment of the present invention, it may be assumed that the RV index is the same as the PUSCH segment index, i.e., RV i can be assigned to the i-th PUSCH segment, but this is not always the case.

[0060] In another exemplary embodiment, RV0 may be assigned to the largest PUSCH segment, which may result in a circular shift in the assignment of RV indices in the circular buffer, but the order of the PUSCH segments may remain the same. In practice, in such a design, the RV index and the PUSCH segment index may be different. For example, in a non-limiting example, let PUSCH0, PUSCH1, PUSCH2, and PUSCH3 be the four PUSCH segments, with PUSCH2 being the largest. Let G0, G1, G2, and G3 be the Gs corresponding to these PUSCH segments. According to the considered exemplary embodiment, instead of assigning RV0 to G0 (i.e., the first bit in the buffer), RV0 can be assigned to G2. In that case, a cycle through G and RV would read G2(RV0), G3(RV1), G0(RV2), G1(RV3). Furthermore, this allocation of RV0 to the largest circularly shifted PUSCH segment may free up existing fields in the DCI indicating the starting RV index, which may instead be used to indicate β and / or c as described above (i.e., DCI fields otherwise used to indicate the starting RV index may be repurposed for other purposes, such as to indicate β and / or c, etc.).

[0061] In an exemplary embodiment, the trigger may be implemented such that both the gNB and the UE can use the same approach to determine the starting position of RV(k0), and both the conventional RV cycle and at least one of the RV shifting methods proposed above may be used for TBoMS.

[0062] In an example embodiment, the trigger may be implemented with an explicit indication, for example, the gNB may indicate whether the traditional RV cycle or the new RV shift solution should be applied by semi-statically configuring this information in RRC signaling and / or by dynamically indicating this information in a scheduling DCI in the TBoMS.

[0063] In an example embodiment, the indication in the scheduling DCI can be done by introducing a new separate field or by reusing the DCI fields that indicate α or β in the above solutions. For example, one DCI state of the α or β indication (e.g., all zero bits) can be used to indicate that the conventional RV cycle is being used, while the other state can indicate that a new RV shift solution is being used with the specified α or β value.

[0064] In an exemplary embodiment, the trigger may be implemented with an implicit indication. For example, both the gNB and the UE may determine whether the new RV shift solution (according to the exemplary embodiment of the present disclosure) should be applied based on a threshold, which may be hard-coded in the specification or RRC configurable. In an exemplary embodiment, the threshold may relate to a percentage of codewords in the circular buffer or a percentage of systematic bits not covered by the RV. For example, the non-conventional approach may be triggered if the codeword size is less than a threshold percentage of the circular buffer, and the conventional approach may be triggered if the codeword size exceeds a threshold percentage of the circular buffer. For example, the non-conventional approach may be triggered if less than a threshold percentage of systematic bits are covered by the RV, and the conventional approach may be triggered if more than a threshold percentage of systematic bits are covered by the RV.

[0065] In an example embodiment, the threshold may be a ratio between G and either the TBS or the circular buffer size. If the assigned PUSCH segments of the TBoMS have different lengths (i.e., there are different G values), then the G used for the ratio may be the max / min / average of multiple G values.

[0066] In an exemplary embodiment, the threshold may be the gap between two consecutive RVs, or the ratio between G and the gap between two consecutive RVs. The gap may be the maximum or minimum gap between any two consecutive RVs. In one example, the gap may be the gap between a first RV and a second RV, where the first RV starts at the beginning of the circular buffer (i.e., the first RV always contains systematic bits). If the lengths of the assigned PUSCH segments of the TBoMS are different (i.e., there are different G values), the G used for the ratio may be the maximum / minimum / average of multiple G values, or G may take a value associated with one of the two RVs used to calculate the gap.

[0067] 8 illustrates potential steps of an example method 800. The example method 800 may include determining 810 a starting location of at least one redundancy version of a transport block in a circular buffer based at least in part on a location of another redundancy version of the transport block in the circular buffer, and transmitting 820 one or more of the another redundancy version and / or the at least one redundancy version using the determined starting location of the at least one redundancy version of the transport block. It may be noted that only one of the at least one redundancy version may be transmitted, multiple redundancy versions of the at least one redundancy version may be transmitted, or some number of the other redundancy versions and the at least one redundancy version may be transmitted.

[0068] 9 illustrates potential steps of an example method 900. The example method 900 may include scaling 910 a predetermined starting position of at least one redundancy version of coded bits of a transport block in a circular buffer based at least in part on a scaling factor, and transmitting 920 the at least one redundancy version using the scaled starting position of the at least one redundancy version of the transport block.

[0069] 10 illustrates potential steps of an example method 1000. The example method 1000 may include determining 1010 whether a user equipment should use a first method of determining a starting location of at least one redundancy version of a transport block in a circular buffer or a second method of determining a starting location of at least one redundancy version of a transport block in a circular buffer, where the second method includes determining a starting location of the at least one redundancy version based at least in part on one of a location of another redundancy version of the transport block in the circular buffer or a scaling factor, and transmitting 1020 an indication to determine a starting location of the at least one redundancy version based on at least one of the first method or the second method.

[0070] A technical effect of the example embodiments of the present disclosure may be improved decoding performance by avoiding limitations of current solutions to codeword transmission in multiple PUSCH segments (TBoMS).

[0071] According to an example embodiment, an apparatus may comprise at least one processor and at least one memory containing computer program code, the at least one memory and the computer program code configured to cause, using the at least one processor, the apparatus to determine a starting position of at least one redundancy version of a transport block in a circular buffer based at least in part on a position of another redundancy version of the transport block in the circular buffer, and to transmit one or more of the another redundancy version and / or the at least one redundancy version using the determined starting position of the at least one redundancy version of the transport block.

[0072] Determining a starting position of the at least one redundancy version may include, the example apparatus being further configured to: set a starting position of the at least one redundancy version equal to an ending position of another redundancy version.

[0073] Determining the starting position of at least one redundancy version may include having the example apparatus further configured to determine a remainder of a division of the starting position of another redundancy version plus a length of another redundancy version by a size of the circular buffer, where the determined starting position may include the determined remainder.

[0074] Determining a starting location of the at least one redundancy version may include, the example apparatus being further configured to: determine a starting location of the at least one redundancy version based at least in part on the at least one scalar.

[0075] The number of redundancy versions of a transport block may be equal to the number of physical uplink shared channel segments used for the transport block spanning a multi-segment transmission.

[0076] Determining a starting location of the at least one redundancy version may include having the example apparatus further configured to determine a remainder of a division of a starting location of another redundancy version plus a size of the another redundancy version plus a scalar of the at least one scalar by a size of the circular buffer, where the determined starting location may include the determined remainder.

[0077] The example apparatus may be further configured to determine a first value and a second value, and to determine a scalar of the at least one scalar, where determining the scalar may include multiplying the first value by a nearest integer value that is less than the circular buffer size divided by the second value.

[0078] Determining the first value and the second value may include the example apparatus being further configured to at least one of: receive a radio resource control configuration of at least one of the first value or the second value; determine the at least one of the first value or the second value based on a specification; or receive an indication of the at least one of the first value or the second value in a downlink control information field.

[0079] The example apparatus may be further configured to determine the at least one scalar based at least in part on an indication of the vector, where the vector may include information for determining a number of scalars of the at least one scalar that is less than a number of redundancy versions of the at least one redundancy version, and where the determined number of the at least one scalar may be cycles over the redundancy versions of the at least one redundancy version.

[0080] According to an example embodiment, an apparatus may comprise at least one processor and at least one memory containing computer program code, the at least one memory and the computer program code configured to cause, using the at least one processor, the apparatus to: scale a predetermined starting position of at least one redundancy version of coded bits of a transport block in a circular buffer based at least in part on a scaling factor; and transmit the at least one redundancy version using the scaled starting position of the at least one redundancy version of the transport block.

[0081] Scaling the predetermined starting position of the at least one redundancy version may include, where the example apparatus is further configured to determine a remainder of a division of the predetermined starting position multiplied by the scaling factor and the size of the circular buffer, where the scaled starting position may include the determined remainder.

[0082] The scaling factor may be configured to scale a predetermined starting position of the at least one redundancy version towards the beginning or end of the codeword.

[0083] The scaling factor may include a single scaling factor that is applicable to multiple redundancy versions.

[0084] The example apparatus may be further configured to determine the scaling factor based on a list of values ​​determined based on one of the specifications, a radio resource control configuration, or a system information block configuration, and a field in the scheduling downlink control information configured to select a value from the list of values.

[0085] The example apparatus may be further configured to determine the scaling factor based on a ratio of a number of bits carried per physical uplink shared channel segment in the circular buffer and a size of the transport block.

[0086] The example apparatus may be further configured to determine the scaling factor based on a ratio of the number of bits carried per physical uplink shared channel segment in the circular buffer and one of: a size of a gap between an end position of the first redundancy version and an earliest predetermined start position of the at least one redundancy version, or a maximum size of a gap between consecutive redundancy versions of the first redundancy version and the at least one redundancy version.

[0087] The number of bits carried per physical uplink shared channel segment in the circular buffer may include one of a maximum number of bits per physical uplink shared channel segment in the circular buffer, a minimum number of bits per physical uplink shared channel segment in the circular buffer, or an average number of bits per physical uplink shared channel segment in the circular buffer.

[0088] The exemplary apparatus may be further configured to determine a scaling factor based at least in part on a vector of scaling factors, where a scaling factor of the vector of scaling factors may correspond to a redundancy version of the at least one redundancy version.

[0089] The example apparatus may be further configured to select a vector of scaling factors from a vector of multiple scaling factors based on a field of the downlink control information.

[0090] The example apparatus may be further configured to receive an indication determining a starting location of all of the at least one redundancy version, or of one of the at least one of the at least one redundancy version.

[0091] The indication may be based on at least one of: a bitmap received when scheduling the downlink control information, an indication included in the radio resource control signaling, an indication included in the system information block, an indication included in the downlink control information message, an indication included in the specification, a percentage of the codeword size not covered by the at least one redundancy version or at least one of the other redundancy versions, a number of systematic bits not covered by the at least one redundancy version or at least one of the other redundancy versions, a ratio of a redundancy version size of the at least one redundancy version to a size of a transport block, a ratio of a redundancy version size of the at least one redundancy version to a size of a circular buffer, a gap between two consecutive redundancy versions of the other redundancy version and the at least one redundancy version, or a ratio of a redundancy version size of the at least one redundancy version to a gap between two consecutive redundancy versions.

[0092] The gap between two consecutive redundancy versions may include one of a maximum gap between two consecutive redundancy versions of another redundancy version and the at least one redundancy version, or a minimum gap between two consecutive redundancy versions of another redundancy version and the at least one redundancy version.

[0093] The at least one redundancy version or at least one of the other redundancy versions may be configured to transmit at least one of the multiple physical uplink shared channel segments used for a transport block spanning multiple segment transmissions.

[0094] At least one of the multiple physical uplink shared channel segments may span multiple slots.

[0095] According to one aspect, an example method may be provided that includes determining a starting location of at least one redundancy version of a transport block in a circular buffer based at least in part on a location of another redundancy version of the transport block in the circular buffer, and transmitting one or more of the another redundancy version and / or the at least one redundancy version using the determined starting location of the at least one redundancy version of the transport block.

[0096] Determining the starting location of the at least one redundancy version may include setting the starting location of the at least one redundancy version the same as an ending location of another redundancy version.

[0097] Determining the starting position of at least one redundancy version may include determining a remainder of a division of the starting position of another redundancy version plus a length of the other redundancy version by a size of the circular buffer, and the determined starting position may include the determined remainder.

[0098] Determining a starting location of the at least one redundancy version may include determining a starting location of the at least one redundancy version based at least in part on the at least one scalar.

[0099] The number of redundancy versions of a transport block may be equal to the number of physical uplink shared channel segments used for the transport block spanning a multi-segment transmission.

[0100] Determining the starting location of the at least one redundancy version may include determining a remainder of dividing the starting location of another redundancy version plus a size of the another redundancy version plus a scalar of the at least one scalar by a size of the circular buffer, and the determined starting location may include the determined remainder.

[0101] The example method may further include determining a first value and a second value, and determining a scalar of the at least one scalar, where determining the scalar may include multiplying the first value by a nearest integer less than the circular buffer size divided by the second value.

[0102] Determining the first value and the second value may include at least one of receiving a radio resource control configuration of at least one of the first value or the second value, determining at least one of the first value or the second value based on a specification, or receiving an indication of at least one of the first value or the second value in a downlink control information field.

[0103] An example method may further include determining the at least one scalar based at least in part on an indication of the vector, where the vector may include information for determining a number of scalars of the at least one scalar that is less than a number of redundancy versions of the at least one redundancy version, and where the determined number of the at least one scalar may be a cycle across redundancy versions of the at least one redundancy version.

[0104] According to one aspect, a method may be provided that includes scaling a pre-defined starting position of at least one redundancy version of coded bits of a transport block in a circular buffer based at least in part on a scaling factor, and transmitting at least the at least one redundancy version using the scaled starting position of the at least one redundancy version of the transport block.

[0105] Scaling the predetermined starting position of the at least one redundancy version may include determining a remainder of a division of the predetermined starting position multiplied by a scaling factor and the size of the circular buffer, and the scaled starting position may include the determined remainder.

[0106] The scaling factor may be configured to scale a predetermined starting position of the at least one redundancy version towards the beginning or end of the codeword.

[0107] The scaling factor may include a single scaling factor that is applicable to multiple redundancy versions.

[0108] The example method may further include determining the scaling factor based on a list of values ​​determined based on one of a specification, a radio resource control configuration, or a system information block configuration, and a field in the scheduling downlink control information configured to select a value from the list of values.

[0109] The example method may further include determining the scaling factor based on a ratio of a number of bits carried per physical uplink shared channel segment in the circular buffer and a size of the transport block.

[0110] The example method may further include determining the scaling factor based on a ratio of a number of bits carried per physical uplink shared channel segment in the circular buffer and one of: a size of a gap between an end position of the first redundancy version and an earliest predetermined start position of the at least one redundancy version, or a maximum size of a gap between successive redundancy versions of the first redundancy version and the at least one redundancy version.

[0111] The number of bits carried per physical uplink shared channel segment in the circular buffer may include one of a maximum number of bits per physical uplink shared channel segment in the circular buffer, a minimum number of bits per physical uplink shared channel segment in the circular buffer, or an average number of bits per physical uplink shared channel segment in the circular buffer.

[0112] The exemplary method may further include determining a scaling factor based at least in part on a vector of scaling factors, where a scaling factor of the vector of scaling factors may correspond to a redundancy version of the at least one redundancy version.

[0113] The example method may further include selecting a vector of scaling factors from a plurality of vectors of scaling factors based on a field of the downlink control information.

[0114] The example method may further include receiving an indication determining a starting location of one of all of the at least one redundancy version, or at least one of the at least one redundancy version.

[0115] The indication may be based on at least one of: a bitmap received when scheduling the downlink control information, an indication included in the radio resource control signaling, an indication included in the system information block, an indication included in the downlink control information message, an indication included in the specification, a percentage of the codeword size not covered by the at least one redundancy version or at least one of the other redundancy versions, a number of systematic bits not covered by the at least one redundancy version or at least one of the other redundancy versions, a ratio of a redundancy version size of the at least one redundancy version to a size of a transport block, a ratio of a redundancy version size of the at least one redundancy version to a size of a circular buffer, a gap between two consecutive redundancy versions of the other redundancy version and the at least one redundancy version, or a ratio of a redundancy version size of the at least one redundancy version to a gap between two consecutive redundancy versions.

[0116] The gap between two consecutive redundancy versions includes one of a maximum gap between two consecutive redundancy versions of another redundancy version and the at least one redundancy version, or a minimum gap between two consecutive redundancy versions of another redundancy version and the at least one redundancy version.

[0117] The at least one redundancy version or at least one of the other redundancy versions may be configured to transmit at least one of the multiple physical uplink shared channel segments used for a transport block spanning multiple segment transmissions.

[0118] At least one of the multiple physical uplink shared channel segments may span multiple slots.

[0119] According to an example embodiment, an apparatus may include circuitry configured to determine a starting location of at least one redundancy version of a transport block in a circular buffer based at least in part on a location of another redundancy version of the transport block in the circular buffer, and transmit one or more of the another redundancy version and / or the at least one redundancy version using the determined starting location of the at least one redundancy version of the transport block.

[0120] According to one example embodiment, an apparatus may comprise a processing circuit and a memory circuit including computer program code, the memory circuit and the computer program code configured to enable, using the processing circuit, the apparatus to determine a starting location of at least one redundancy version of a transport block in a circular buffer based at least in part on a location of another redundancy version of the transport block in the circular buffer, and to transmit one or more of the another redundancy version and / or the at least one redundancy version using the determined starting location of the at least one redundancy version of the transport block.

[0121] According to an example embodiment, the apparatus may comprise circuitry configured to cause scaling a predetermined starting position of at least one redundancy version of coded bits of a transport block in a circular buffer based at least in part on a scaling factor, and transmitting the at least one redundancy version using the scaled starting position of the at least one redundancy version of the transport block.

[0122] According to an example embodiment, an apparatus may comprise a processing circuit and a memory circuit including computer program code, the memory circuit and the computer program code being configured, using the processing circuit, to enable the apparatus to scale a predetermined starting position of at least one redundancy version of coded bits of a transport block within a circular buffer based at least in part on a scaling factor, and to transmit at least the at least one redundancy version using the scaled starting position of the at least one redundancy version of the transport block.

[0123] As used herein, the term "circuitry" may mean one or more or all of the following: (a) a hardware-only circuit implementation (such as an implementation with only analog and / or digital circuitry); (b) a combination of hardware circuitry and software, such as (where applicable) (i) a combination of analog and / or digital hardware circuitry(s) and software / firmware; and (ii) a combination of any portion of hardware processor(s) and software (including digital signal processor(s), software, and memory(s) that cooperate to cause a device such as a mobile phone or server to perform various functions); and (c) a hardware circuit(s) and / or processor(s), such as a microprocessor(s) or a portion of a microprocessor(s), that requires software (e.g., firmware) to operate, but may not be present if not necessary for operation. This definition of "circuitry" applies to all uses of the term in this application, including any claims. As a further example, the term circuitry as used in this application encompasses merely a hardware circuit or processor (or processors), or a portion of a hardware circuit or processor, as well as an embodiment of the software and / or firmware associated therewith. The term circuitry also encompasses, for example, baseband or processor integrated circuits for mobile devices, or similar integrated circuits in servers, cellular network devices, or other computing or network devices, if applicable to certain claim elements.

[0124] According to an example embodiment, an apparatus may include means for determining a starting location of at least one redundancy version of a transport block in a circular buffer based at least in part on a location of another redundancy version of the transport block in the circular buffer, and transmitting one or more of the another redundancy version and / or the at least one redundancy version using the determined starting location of the at least one redundancy version of the transport block.

[0125] The means configured to determine a start position of the at least one redundancy version may include means configured to set a start position of the at least one redundancy version to be the same as an end position of another redundancy version.

[0126] The means configured to determine a starting position of at least one redundancy version may include means configured to determine a remainder of a division of a starting position of another redundancy version plus a length of another redundancy version by a size of the circular buffer, and the determined starting position may comprise the determined remainder.

[0127] The means configured to determine a starting location of the at least one redundancy version may include means configured to determine a starting location of the at least one redundancy version based at least in part on the at least one scalar.

[0128] The number of redundancy versions of a transport block may be equal to the number of physical uplink shared channel segments used for the transport block spanning a multi-segment transmission.

[0129] The means configured to determine a starting location of the at least one redundancy version may include means configured to determine a remainder of a division of a starting location of another redundancy version plus a size of the another redundancy version plus a scalar of the at least one scalar by a size of the circular buffer, and the determined starting location may include the determined remainder.

[0130] The means may further include determining a first value and a second value, and determining a scalar of the at least one scalar, where determining the scalar may include multiplying the first value by a nearest integer value that is less than the circular buffer size divided by the second value.

[0131] The means configured for determining the first value and the second value may include means configured for at least one of receiving a radio resource control configuration of at least one of the first value or the second value, determining the at least one of the first value or the second value based on a specification, or receiving an indication of the at least one of the first value or the second value in a downlink control information field.

[0132] The means may be further configured to determine the at least one scalar based at least in part on an indication of the vector, where the vector may include information for determining a number of scalars of the at least one scalar that is less than a number of redundancy versions of the at least one redundancy version, and where the determined number of the at least one scalar may be cycles over the redundancy versions of the at least one redundancy version.

[0133] The means may be further configured to scale a predetermined starting position of the at least one redundancy version of the coded bits of the transport block within the circular buffer based at least in part on the scaling factor, and transmit the at least one redundancy version using the scaled starting position of the at least one redundancy version of the transport block.

[0134] The means configured to scale the predetermined starting position of the at least one redundancy version may include means configured to determine a remainder of a division of the predetermined starting position multiplied by a scaling factor and the size of the circular buffer, and the scaled starting position may comprise the determined remainder.

[0135] The scaling factor may be configured to scale a predetermined starting position of the at least one redundancy version towards the beginning or end of the codeword.

[0136] The scaling factor may include a single scaling factor that is applicable to multiple redundancy versions.

[0137] The means may be further configured to determine the scaling factor based on a list of values ​​determined based on one of a specification, a radio resource control configuration, or a system information block configuration, and a field in the scheduling downlink control information configured to select a value from the list of values.

[0138] The means may be further configured to determine the scaling factor based on a ratio of a number of bits carried per physical uplink shared channel segment in the circular buffer and a size of the transport block.

[0139] The means may be further configured to determine the scaling factor based on a ratio of a number of bits carried per physical uplink shared channel segment in the circular buffer and one of: a size of a gap between an end position of the first redundancy version and an earliest predetermined start position of the at least one redundancy version, or a maximum size of a gap between successive redundancy versions of the first redundancy version and the at least one redundancy version.

[0140] The number of bits carried per physical uplink shared channel segment in the circular buffer may include one of a maximum number of bits per physical uplink shared channel segment in the circular buffer, a minimum number of bits per physical uplink shared channel segment in the circular buffer, or an average number of bits per physical uplink shared channel segment in the circular buffer.

[0141] The means may be further configured to determine a scaling factor based at least in part on the vector of scaling factors, where a scaling factor of the vector of scaling factors may correspond to a redundancy version of the at least one redundancy version.

[0142] The means can be further configured to select a vector of scaling factors from a plurality of vectors of scaling factors based on a field of the downlink control information.

[0143] The means may be further configured to receive an indication determining a starting location of all of the at least one redundancy version, or of one of the at least one of the at least one redundancy version.

[0144] The indication may be based on at least one of: a bitmap received when scheduling the downlink control information, an indication included in the radio resource control signaling, an indication included in the system information block, an indication included in the downlink control information message, an indication included in the specification, a percentage of the codeword size not covered by the at least one redundancy version or at least one of the other redundancy versions, a number of systematic bits not covered by the at least one redundancy version or at least one of the other redundancy versions, a ratio of a redundancy version size of the at least one redundancy version to a size of a transport block, a ratio of a redundancy version size of the at least one redundancy version to a size of a circular buffer, a gap between two consecutive redundancy versions of the other redundancy version and the at least one redundancy version, or a ratio of a redundancy version size of the at least one redundancy version to a gap between two consecutive redundancy versions.

[0145] The gap between two consecutive redundancy versions may include one of a maximum gap between two consecutive redundancy versions of another redundancy version and the at least one redundancy version, or a minimum gap between two consecutive redundancy versions of another redundancy version and the at least one redundancy version.

[0146] The at least one redundancy version or at least one of the other redundancy versions may be configured to transmit at least one of the multiple physical uplink shared channel segments used for a transport block spanning multiple segment transmissions.

[0147] At least one of the multiple physical uplink shared channel segments may span multiple slots.

[0148] According to an example embodiment, a non-transitory computer-readable medium stores program instructions that, when executed with at least one processor, cause the at least one processor to determine a starting location of at least one redundancy version of a transport block in a circular buffer based at least in part on a location of another redundancy version of the transport block in the circular buffer, and transmit one or more of the another redundancy version and / or the at least one redundancy version using the determined starting location of the at least one redundancy version of the transport block.

[0149] Determining the starting location of the at least one redundancy version may include program instructions stored on the exemplary non-transitory computer-readable medium further configured to cause setting a starting location of the at least one redundancy version to be the same as an ending location of another redundancy version.

[0150] Determining the starting position of at least one redundancy version may further include determining a remainder of a division of the starting position of another redundancy version plus a length of another redundancy version by a size of the circular buffer, where the determined starting position may include the determined remainder.

[0151] Determining a starting location of the at least one redundancy version may include an exemplary non-transitory computer-readable medium further configured to determine a starting location of the at least one redundancy version based at least in part on the at least one scalar.

[0152] The number of redundancy versions of a transport block may be equal to the number of physical uplink shared channel segments used for the transport block spanning a multi-segment transmission.

[0153] Determining a starting location of the at least one redundancy version may further include determining a remainder of a division of a starting location of another redundancy version plus a size of another redundancy version plus a scalar of the at least one scalar by a size of the circular buffer, where the determined starting location may include the determined remainder.

[0154] The exemplary non-transitory computer-readable medium may be further configured to determine a first value and a second value, and to determine a scalar of the at least one scalar, where determining the scalar may include multiplying the first value by a nearest integer value that is less than the circular buffer size divided by the second value.

[0155] Determining the first value and the second value may include an example non-transitory computer-readable medium further configured to at least one of: receiving a radio resource control configuration of at least one of the first value or the second value, determining at least one of the first value or the second value based on a specification, or receiving an indication of at least one of the first value or the second value in a downlink control information field.

[0156] The exemplary non-transitory computer-readable medium may be further configured to cause the at least one processor to determine at least one scalar based at least in part on an indication of the vector, where the vector may include information for determining a number of scalars of the at least one scalar that is less than a number of redundancy versions of the at least one redundancy version, and where the determined number of the at least one scalar may be cycles through redundancy versions of the at least one redundancy version.

[0157] According to an example embodiment, a non-transitory computer-readable medium stores program instructions that, when executed with at least one processor, cause the at least one processor to scale a predetermined starting position of at least one redundancy version of coded bits of a transport block in a circular buffer based at least in part on a scaling factor, and transmit at least the at least one redundancy version using the scaled starting position of the at least one redundancy version of the transport block.

[0158] Scaling the predetermined starting position of the at least one redundancy version may further comprise determining a remainder of a division of the predetermined starting position multiplied by a scaling factor and a size of the circular buffer, where the scaled starting position may include the determined remainder.

[0159] The scaling factor may be configured to scale a predetermined starting position of the at least one redundancy version towards the beginning or end of the codeword.

[0160] The scaling factor may include a single scaling factor that is applicable to multiple redundancy versions.

[0161] The exemplary non-transitory computer-readable medium may be further configured to determine the scaling factor based on a list of values ​​determined based on one of a specification, a radio resource control configuration, or a system information block configuration, and a field in the scheduling downlink control information configured to select a value from the list of values.

[0162] The exemplary non-transitory computer-readable medium may be further configured to determine a scaling factor based on a ratio of a number of bits carried per physical uplink shared channel segment in the circular buffer and a size of a transport block.

[0163] The exemplary non-transitory computer-readable medium may be further configured to determine the scaling factor based on a ratio of a number of bits carried per physical uplink shared channel segment in the circular buffer and one of: a size of a gap between an end position of the first redundancy version and an earliest predetermined start position of the at least one redundancy version, or a maximum size of a gap between successive redundancy versions of the first redundancy version and the at least one redundancy version.

[0164] The number of bits carried per physical uplink shared channel segment in the circular buffer may include one of a maximum number of bits per physical uplink shared channel segment in the circular buffer, a minimum number of bits per physical uplink shared channel segment in the circular buffer, or an average number of bits per physical uplink shared channel segment in the circular buffer.

[0165] The exemplary non-transitory computer-readable medium may be further configured to determine a scaling factor based at least in part on a vector of scaling factors, where a scaling factor of the vector of scaling factors may correspond to a redundancy version of the at least one redundancy version.

[0166] The exemplary non-transitory computer-readable medium may be further configured to select a vector of scaling factors from a plurality of vectors of scaling factors based on a field of the downlink control information.

[0167] The exemplary non-transitory computer-readable medium may be further configured to receive an indication determining a starting location of one of all of the at least one redundancy version, or at least one of the at least one redundancy version.

[0168] The indication may be based on at least one of: a bitmap received when scheduling the downlink control information, an indication included in the radio resource control signaling, an indication included in the system information block, an indication included in the downlink control information message, an indication included in the specification, a percentage of the codeword size not covered by the at least one redundancy version or at least one of the other redundancy versions, a number of systematic bits not covered by the at least one redundancy version or at least one of the other redundancy versions, a ratio of a redundancy version size of the at least one redundancy version to a size of a transport block, a ratio of a redundancy version size of the at least one redundancy version to a size of a circular buffer, a gap between two consecutive redundancy versions of the other redundancy version and the at least one redundancy version, or a ratio of a redundancy version size of the at least one redundancy version to a gap between two consecutive redundancy versions.

[0169] The gap between two consecutive redundancy versions may include one of a maximum gap between two consecutive redundancy versions of another redundancy version and the at least one redundancy version, or a minimum gap between two consecutive redundancy versions of another redundancy version and the at least one redundancy version.

[0170] The at least one redundancy version or at least one of the other redundancy versions may be configured to transmit at least one of the multiple physical uplink shared channel segments used for a transport block spanning multiple segment transmissions.

[0171] At least one of the multiple physical uplink shared channel segments may span multiple slots.

[0172] According to another example embodiment, a machine-readable non-transitory program storage device is provided, tangibly embodying a program of instructions executable by the machine to perform operations that may include determining a starting location of at least one redundancy version of a transport block in a circular buffer based at least in part on a location of another redundancy version of the transport block in the circular buffer, and transmitting one or more of the another redundancy version and / or the at least one redundancy version using the determined starting location of the at least one redundancy version of the transport block.

[0173] According to another example embodiment, a machine-readable non-transitory program storage device is provided, tangibly embodying a program of instructions executable by the machine to perform operations, which may include scaling a predetermined starting position of at least one redundancy version of coded bits of a transport block in a circular buffer based at least in part on a scaling factor, and transmitting at least the at least one redundancy version using the scaled starting position of the at least one redundancy version of the transport block.

[0174] In an example embodiment, an apparatus comprises at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to cause the apparatus, using the at least one processor, to determine whether a user equipment should use a first method for determining a starting position of at least one redundancy version of a transport block in a circular buffer or a second method for determining a starting position of at least one redundancy version of a transport block in a circular buffer, where the second method may include determining a starting position of the at least one redundancy version based at least in part on one of a position of another redundancy version of the transport block in the circular buffer or a scaling factor, and to send an indication from the apparatus to determine a starting position of the at least one redundancy version based on at least one of the first method or the second method.

[0175] A second method may include setting a starting location of at least one redundancy version the same as an ending location of another redundancy version.

[0176] A second method may include determining a remainder from dividing the starting position of the other redundancy version plus the length of the other redundancy version by the size of the circular buffer.

[0177] The second method may include determining a starting location of at least one redundancy version based at least in part on the at least one scalar.

[0178] A second method may include determining a remainder of dividing the starting location of the other redundancy version plus a size of the other redundancy version plus a scalar of the at least one scalar by a size of the circular buffer.

[0179] The example apparatus may be further configured to transmit an indication of at least one of the first value or the second value, where the first value and the second value may be configured to indicate a scalar.

[0180] Transmitting the at least one indication of the first value or the second value includes the example apparatus being further configured to transmit at least one of downlink control information including a radio resource control configuration or an indication of the at least one of the first value or the second value.

[0181] The example apparatus may further be configured to transmit an indication of a vector, where the vector may include information for determining a number of scalars of the at least one scalar that is less than a number of redundancy versions of the at least one redundancy version, where the determined number of the at least one scalars may be cycles over the redundancy versions of the at least one redundancy version.

[0182] A second method may include determining the remainder of a division of the predetermined starting position multiplied by a scaling factor and the size of the circular buffer.

[0183] The scaling factor may be configured to scale a predetermined starting position of the at least one redundancy version towards the beginning or end of the codeword.

[0184] The scaling factor may include a single scaling factor that is applicable to multiple redundancy versions.

[0185] The example apparatus may be further configured to transmit at least one of downlink control information including a radio resource control configuration, a system information block configuration, or an indication of a scaling factor.

[0186] The indication of the scaling factor may include an indication of one of a plurality of scaling factors.

[0187] The transmitting the indication, the example apparatus is further configured to transmit at least one of a bitmap in scheduling downlink control information, an indication included in radio resource control signaling, an indication included in a system information block, or an indication included in a downlink control information message.

[0188] At least one of the redundancy versions or at least one of the other redundancy versions may be configured to carry at least one of a plurality of physical uplink shared channel segments used for a transport block spanning a multiple segment transmission.

[0189] At least one of the multiple physical uplink shared channel segments may span multiple slots.

[0190] According to one aspect, an example method may be provided that includes a user equipment determining whether to use a first method for determining a starting position of at least one redundancy version of a transport block in a circular buffer or a second method for determining a starting position of at least one redundancy version of a transport block in a circular buffer, where the second method may include determining a starting position of the at least one redundancy version based at least in part on one of a position of another redundancy version of the transport block in the circular buffer or a scaling factor; and sending an indication to determine a starting position of the at least one redundancy version based on at least one of the first method or the second method.

[0191] The second method may include means configured to set a starting location of at least one redundancy version the same as an ending location of another redundancy version.

[0192] A second method may include determining a remainder from dividing the starting position of the other redundancy version plus the length of the other redundancy version by the size of the circular buffer.

[0193] The second method may include determining a starting location of at least one redundancy version based at least in part on the at least one scalar.

[0194] A second method may include determining a remainder of dividing the starting location of the other redundancy version plus a size of the other redundancy version plus a scalar of the at least one scalar by a size of the circular buffer.

[0195] The example method may further include transmitting an indication of at least one of the first value or the second value, where the first value and the second value may be configured to indicate a scalar.

[0196] Transmitting the at least one indication of the first value or the second value may include transmitting at least one of a radio resource control configuration or downlink control information including an indication of the at least one of the first value or the second value.

[0197] The example method may further include transmitting an indication of the vector, where the vector may include information for determining a number of scalars of the at least one scalar that is less than a number of redundancy versions of the at least one redundancy version, where the determined number of the at least one scalars may be cycles over the redundancy versions of the at least one redundancy version.

[0198] A second method may include determining the remainder of a division of the predetermined starting position multiplied by a scaling factor and the size of the circular buffer.

[0199] The scaling factor may be configured to scale a predetermined starting position of the at least one redundancy version towards the beginning or end of the codeword.

[0200] The scaling factor may include a single scaling factor that is applicable to multiple redundancy versions.

[0201] The example method may further include transmitting at least one of a radio resource control configuration, a system information block configuration, or downlink control information including an indication of the scaling factor.

[0202] The indication of the scaling factor may include an indication of one of a plurality of scaling factors.

[0203] Transmitting the indication may include transmitting at least one of a bitmap in scheduling downlink control information, an indication included in radio resource control signaling, an indication included in a system information block, or an indication included in a downlink control information message.

[0204] At least one of the redundancy versions or at least one of the other redundancy versions may be configured to carry at least one of a plurality of physical uplink shared channel segments used for a transport block spanning a multiple segment transmission.

[0205] At least one of the multiple physical uplink shared channel segments may span multiple slots.

[0206] According to an example embodiment, the apparatus may include circuitry configured to determine whether a user equipment should use a first method for determining a starting position of at least one redundancy version of a transport block in a circular buffer or a second method for determining a starting position of at least one redundancy version of a transport block in a circular buffer, where the second method may include determining a starting position of the at least one redundancy version based at least in part on one of a position of another redundancy version of the transport block in the circular buffer or a scaling factor; and sending an indication from the apparatus to determine the starting position of the at least one redundancy version based on at least one of the first method or the second method.

[0207] According to one example embodiment, an apparatus may comprise a processing circuit and a memory circuit including computer program code, the memory circuit and the computer program code being configured, using the processing circuit, to enable the apparatus to: determine whether to use a first method of determining a starting position of at least one redundancy version of a transport block in a circular buffer or a second method of determining a starting position of at least one redundancy version of a transport block in a circular buffer, where the second method may include determining a starting position of the at least one redundancy version based at least in part on one of a position of another redundancy version of the transport block in the circular buffer or a scaling factor; and send an indication from the apparatus to determine a starting position of the at least one redundancy version based on at least one of the first method or the second method.

[0208] According to an example embodiment, the apparatus may include means for determining whether a user equipment should use a first method for determining a starting position of at least one redundancy version of a transport block in a circular buffer or a second method for determining a starting position of at least one redundancy version of a transport block in a circular buffer, where the second method may include determining a starting position of the at least one redundancy version based at least in part on one of a position of another redundancy version of the transport block in the circular buffer or a scaling factor; and sending an indication to determine a starting position of the at least one redundancy version based on at least one of the first method or the second method.

[0209] The second method may include means configured to set a starting location of at least one redundancy version the same as an ending location of another redundancy version.

[0210] A second method may include determining a remainder from dividing the starting position of the other redundancy version plus the length of the other redundancy version by the size of the circular buffer.

[0211] The second method may include determining a starting location of at least one redundancy version based at least in part on the at least one scalar.

[0212] A second method may include determining a remainder of dividing the starting location of the other redundancy version plus a size of the other redundancy version plus a scalar of the at least one scalar by a size of the circular buffer.

[0213] The means may be further configured to transmit an indication of at least one of the first value or the second value, where the first value and the second value may be configured to indicate a scalar.

[0214] The means configured to transmit an indication of at least one of the first value or the second value may include means configured to transmit at least one of a radio resource control configuration or downlink control information including an indication of the at least one of the first value or the second value.

[0215] The means may be further configured to transmit an indication of a vector, where the vector may include information for determining a number of scalars of the at least one scalar that is less than a number of redundancy versions of the at least one redundancy version, where the determined number of the at least one scalars may be cycles over the redundancy versions of the at least one redundancy version.

[0216] A second method may include determining the remainder of a division of the predetermined starting position multiplied by a scaling factor and the size of the circular buffer.

[0217] The scaling factor may be configured to scale a predetermined starting position of the at least one redundancy version towards the beginning or end of the codeword.

[0218] The scaling factor may include a single scaling factor that is applicable to multiple redundancy versions.

[0219] The means may be further configured to transmit at least one of a radio resource control configuration, a system information block configuration, or downlink control information including an indication of a scaling factor.

[0220] The indication of the scaling factor may include an indication of one of a plurality of scaling factors.

[0221] The means configured to transmit the indication may include means configured to transmit at least one of a bitmap in scheduling downlink control information, an indication included in radio resource control signaling, an indication included in a system information block, or an indication included in a downlink control information message.

[0222] At least one of the redundancy versions or at least one of the other redundancy versions may be configured to carry at least one of a plurality of physical uplink shared channel segments used for a transport block spanning a multiple segment transmission.

[0223] At least one of the multiple physical uplink shared channel segments may span multiple slots.

[0224] According to an example embodiment, a non-transitory computer-readable medium stores program instructions that, when executed with at least one processor, cause the at least one processor to determine whether a user equipment should use a first method for determining a starting position of at least one redundancy version of a transport block in a circular buffer or a second method for determining a starting position of at least one redundancy version of a transport block in a circular buffer, where the second method may include determining a starting position of the at least one redundancy version based at least in part on one of a position of another redundancy version of the transport block in the circular buffer or a scaling factor; and send an indication to determine a starting position of the at least one redundancy version based on at least one of the first method or the second method.

[0225] A second method may include setting a starting location of at least one redundancy version the same as an ending location of another redundancy version.

[0226] A second method may include determining a remainder from dividing the starting position of the other redundancy version plus the length of the other redundancy version by the size of the circular buffer.

[0227] The second method may include determining a starting location of at least one redundancy version based at least in part on the at least one scalar.

[0228] A second method may include determining a remainder of dividing the starting location of the other redundancy version plus a size of the other redundancy version plus a scalar of the at least one scalar by a size of the circular buffer.

[0229] The exemplary non-transitory computer-readable medium may be further configured to transmit an indication of at least one of the first value or the second value, where the first value and the second value may be configured to indicate a scalar.

[0230] Transmitting an indication of at least one of the first value or the second value may include the non-transitory computer-readable medium being further configured to transmit at least one of downlink control information including a radio resource control configuration or an indication of the at least one of the first value or the second value.

[0231] The exemplary non-transitory computer-readable medium may be further configured to transmit an indication of a vector, where the vector may include information for determining a number of scalars of the at least one scalar that is less than a number of redundancy versions of the at least one redundancy version, where the determined number of the at least one scalars may be cycles through the redundancy versions of the at least one redundancy version.

[0232] A second method may include determining the remainder of a division of the predetermined starting position multiplied by a scaling factor and the size of the circular buffer.

[0233] The scaling factor may be configured to scale a predetermined starting position of the at least one redundancy version towards the beginning or end of the codeword.

[0234] The scaling factor may include a single scaling factor that is applicable to multiple redundancy versions.

[0235] The exemplary non-transitory computer-readable medium may be further configured to transmit at least one of downlink control information including a radio resource control configuration, a system information block configuration, or an indication of a scaling factor.

[0236] The indication of the scaling factor may include an indication of one of a plurality of scaling factors.

[0237] Transmitting the indication may include the example non-transitory computer-readable medium further configured to transmit at least one of a bitmap in scheduling downlink control information, an indication included in radio resource control signaling, an indication included in a system information block, or an indication included in a downlink control information message.

[0238] At least one of the redundancy versions or at least one of the other redundancy versions may be configured to carry at least one of a plurality of physical uplink shared channel segments used for a transport block spanning a multiple segment transmission.

[0239] At least one of the multiple physical uplink shared channel segments may span multiple slots.

[0240] According to another example embodiment, a machine-readable non-transitory program storage device is provided, tangibly embodying a program of instructions executable by the machine to perform operations, which may include determining whether a user equipment should use a first method for determining a starting position of at least one redundancy version of a transport block in a circular buffer or a second method for determining a starting position of at least one redundancy version of a transport block in a circular buffer, where the second method may include determining a starting position of the at least one redundancy version based at least in part on one of a position of another redundancy version of the transport block in the circular buffer or a scaling factor; and sending an indication to determine a starting position of the at least one redundancy version based on at least one of the first method or the second method.

[0241] It should be understood that the foregoing description is merely illustrative. Various alternatives and modifications may be devised by those skilled in the art. For example, the features recited in the various dependent claims may be combined with each other in any suitable combination or combinations. Furthermore, features of different embodiments described above may be selectively combined to form new embodiments. Accordingly, the present description is intended to embrace all such alternatives, modifications, and variations that fall within the scope of the appended claims.

Claims

1. 1. An apparatus comprising: At least one processor; At least one non-transitory memory and computer program code, the at least one memory and the computer program code being configured to cause the device, using the at least one processor, to: determining a starting position of at least one redundancy version of a transport block in a circular buffer based at least in part on a position of another redundancy version of the transport block in the circular buffer; transmitting one or more of another redundancy version and / or the at least one redundancy version using the determined starting position of the at least one redundancy version of the transport block; the at least one non-transitory memory and the computer program code configured to cause Equipped with The starting position of the at least one redundancy version is denoted as k 0 , and where mod(A,B) is a modulo function that returns the remainder when A is divided by B, k′ 0 is the start position of the other redundancy version, G is the size of the other redundancy version, β is a scalar with at least one scalar from the end of the other redundancy version to the start of any redundancy version consecutive with the other redundancy version, or from the start of the other redundancy version to the end of any redundancy version consecutive with the other redundancy version, and Ncb is the size of the circular buffer. The apparatus.

2. Determining the starting location of the at least one redundancy version includes the step of: setting the start location of the at least one redundancy version to be the same as the end location of another redundancy version; The apparatus of claim 1 , further comprising:

3. Determining the starting location of the at least one redundancy version includes the step of: the start of the other redundancy version plus the length of the other redundancy version, Divide by the size of the circular buffer determining the remainder of [0023] The apparatus of claim 1 , wherein the determined starting position comprises the determined remainder.

4. Determining the starting location of the at least one redundancy version includes the step of: determining the starting location of the at least one redundancy version based at least in part on the at least one scalar; The apparatus of claim 1 , further comprising:

5. 5. The apparatus of claim 4, wherein a number of redundancy versions of the transport block is equal to a number of physical uplink shared channel segments used for the transport block spanning a multiple segment transmission.

6. Determining the starting location of the at least one redundancy version includes the step of: a start position of another redundancy version plus a size of another redundancy version plus the one scalar of the at least one scalar; determining a remainder of division by a size of the circular buffer; [0023] 6. Apparatus according to claim 4 or claim 5, wherein the determined starting position comprises the determined remainder.

7. The at least one memory and the computer program code are further adapted to cause the device, using the at least one processor, to: determining a first value and a second value; determining the one of the at least one scalar, the determining the one comprising: multiplying the first value by a nearest integer value less than the circular buffer size divided by the second value; The apparatus of claim 6 configured to:

8. Determining the first value and the second value includes causing the at least one memory and the computer program code to, using the at least one processor, cause the apparatus to: receiving at least one radio resource control configuration of the first value or the second value; determining at least one of the first value or the second value based on a specification; or receiving an indication of at least one of the first value or the second value in a downlink control information field; The apparatus of claim 7 , further comprising:

9. The at least one memory and the computer program code are further adapted to cause the device, using the at least one processor, to: determining the at least one scalar based at least in part on an indication of a vector, the vector including information for determining a number of scalars of the at least one scalar that is less than a number of redundancy versions of the at least one redundancy version, the determined number of the at least one scalar being a number of cycles of the redundancy versions of the at least one redundancy version across the size of the circular buffer; An apparatus according to any one of claims 4 to 6, configured to cause

10. 1. An apparatus comprising: At least one processor; At least one non-transitory memory and computer program code, the at least one memory and the computer program code being configured to cause the device, using the at least one processor, to: determining whether a user equipment should use a first method for determining a starting position of at least one redundancy version of a transport block in a circular buffer or a second method for determining the starting position of the at least one redundancy version of the transport block in the circular buffer, the second method comprising: the location of another redundancy version of the transport block in the circular buffer; or Scaling factor, determining the starting location of the at least one redundancy version based at least in part on one of said determining; and transmitting an indication from the device to determine the starting position of the at least one redundancy version based on at least one of the first method or the second method; configured to cause The starting position of the at least one redundancy version is denoted as k 0 , and where mod(A,B) is a modulo function that returns the remainder when A is divided by B, k′ 0 is the start position of the other redundancy version, G is the size of the other redundancy version, β is a scalar with at least one scalar from the end of the other redundancy version to the start of any redundancy version consecutive with the other redundancy version, or from the start of the other redundancy version to the end of any redundancy version consecutive with the other redundancy version, and Ncb is the size of the circular buffer. The apparatus.

11. The apparatus of claim 10, wherein the second method includes setting the start position of at least one redundant version to be the same as the end position of another redundant version.

12. The apparatus described in claim 10 or claim 11, wherein the second method includes determining a remainder when dividing the starting position of the other redundancy version plus the length of the other redundancy version by the size of the circular buffer.

13. An apparatus as described in any of claims 10 to 12, wherein the second method includes determining the starting position of the at least one redundant version based at least in part on at least one scalar.

14. The apparatus of claim 10, wherein the second method includes determining a remainder from dividing the starting position of the other redundancy version plus a size of the other redundancy version plus a scalar of the at least one scalar by the size of the circular buffer.

15. A method comprising: determining a starting position of at least one redundancy version of a transport block in a circular buffer based at least in part on a position of another redundancy version of the transport block in the circular buffer; transmitting one or more of another redundancy version and / or the at least one redundancy version using the determined starting position of the at least one redundancy version of the transport block; Including, The starting position of the at least one redundancy version is denoted as k 0 , and where mod(A,B) is a modulo function that returns the remainder when A is divided by B, k′ 0 is the start position of the other redundancy version, G is the size of the other redundancy version, β is a scalar with at least one scalar from the end of the other redundancy version to the start of any redundancy version consecutive with the other redundancy version, or from the start of the other redundancy version to the end of any redundancy version consecutive with the other redundancy version, and Ncb is the size of the circular buffer. method.

16. The method of claim 15, wherein determining the start position of the at least one redundant version includes setting the start position of the at least one redundant version to be the same as an end position of other redundant versions.

17. The method of claim 16, further comprising: determining the starting location of the at least one redundant version. the start of the other redundancy version plus the length of the other redundancy version, Divide by the size of the circular buffer determining the remainder of The method of claim 15 , wherein the determined starting position comprises the determined remainder.

18. The method of claim 15, wherein determining the starting position of the at least one redundant version includes determining the starting position of the at least one redundant version based at least in part on at least one scalar.

19. The method of claim 18, wherein the number of redundant versions of the transport block is equal to the number of physical uplink shared channel segments used for the transport block spanning multiple segment transmissions.

20. A non-transitory computer-readable medium having stored thereon program instructions that, when executed by at least one processor, cause the at least one processor to: determining a starting position of at least one redundancy version of a transport block in a circular buffer based at least in part on a position of another redundancy version of the transport block in the circular buffer; transmitting one or more of another redundancy version and / or the at least one redundancy version using the determined starting position of the at least one redundancy version of the transport block; Let them do so, The starting position of the at least one redundancy version is denoted as k 0 , and where mod(A,B) is a modulo function that returns the remainder when A is divided by B, k' 0 is the starting position of the other redundancy version, G is the size of the other redundancy version, β is a scalar with at least one scalar from the end of the other redundancy version to the start of any redundancy version that is contiguous with the other redundancy version, or from the start of the other redundancy version to the end of any redundancy version that is contiguous with the other redundancy version, and Ncb is the size of the circular buffer.