|
||
A Code Block Group (CBG) is a concept in 5G NR, used to efficiently manage data transmission over PDSCH. When a Transport Block (TB) is processed, it is divided into smaller segments known as Code Blocks (CBs) to accommodate the limitations of the channel coding process. A Code Block Group consists of a set of these Code Blocks grouped together for transmission. This grouping enables more efficient retransmissions in scenarios where errors occur during data reception. Instead of retransmitting the entire Transport Block when some errors are detected, the network can retransmit only the specific CBGs that contain the failed Code Blocks. This approach improves overall efficiency, reduces latency, and conserves bandwidth. The number and size of Code Block Groups are determined by higher-layer configurations, allowing the network to adapt based on the required reliability and throughput. CBG-based transmission is a key feature that enhances the robustness and flexibility of modern wireless communication systems. As in LTE, in NR as well a huge TB (Transport Block) is split into multiple CBs (Code Block). However, there is a concept that is not in LTE. It is CBG. NR group a multipes of CBs into a CBG and NR can indicate ACK/NACK and retransmit the data in the unit of CBG. CBG is indicated in DCI (Format 0_1, Format 1_1)
Hierarchies in TB,CB and CBGSimply put, Code Blocks(CB) are the basic units of segmentation for data encoding and Code Block Groups(CBG) are logical groupings of these blocks(CB). Transport Block (TB)A transport block is the basic unit of data exchanged between the higher layers and the physical layer in wireless communication systems, such as LTE and 5G. It represents the payload that is encoded, modulated, and transmitted over the air interface, typically mapped to the PDSCH for downlink or the PUSCH for uplink. Code Block (CB)A Code Block is a smaller unit of data derived from a Transport Block (TB). When a Transport Block is too large to be processed by the channel coding scheme, it is divided into smaller segments called Code Blocks. This segmentation ensures the data can be encoded, transmitted, and decoded efficiently. Each Code Block is individually appended with a Cyclic Redundancy Check (CRC) to detect errors in its transmission. Code Block Group (CBG)A Code Block Group is a collection of one or more Code Blocks. It is an additional layer of organization introduced to enhance retransmission efficiency. If a receiver fails to decode certain portions of a Transport Block, the system can retransmit only the affected Code Block Groups, rather than retransmitting the entire Transport Block. This selective retransmission saves resources like bandwidth and reduces latency. Relationship Between CB and CBG
There are various types (cases) of hierarchies among TB,CB and CBG as illustrated below.
Typical structure of TB is illustrated as above. One TB is usually made up of multiple CBG and one CBG is usually made up of multiple CB. But there is possibility of seeing some extreme types as shown below. In the example shown below, one TB is made up of only one CBG which is made up of multiple CBs. In following example, you see one TB which is made up of multiple CBG and one CBG is made up of only one CB. In rare case, you may see a TB made up of CBG as follows. In this case, one TB is made up of one CBG and the CBG is made up of only one CB. Why CBG ?The use of Code Block Groups (CBGs) is driven by the need for more efficient and flexible data transmission. CBGs offer significant advantages in two key areas: efficiency in retransmissions and scalability.
By combining these features, CBGs play a critical role in improving the overall efficiency, reliability, and adaptability of modern wireless communication systems. Potential Disadvantage of CBGWhile Code Block Groups (CBGs) offer significant advantages, they also introduce certain disadvantages that can impact the performance and complexity of the wireless communication systems. Followings are some of the potential (possible) disadvantage that can be caused by applying CBG.
Configuring more CBGs for finer retransmission control increases the signaling overhead. Conversely, fewer CBGs reduce overhead but also decrease granularity, leading to retransmissions of unnecessary data. This trade-off can be challenging to optimize for dynamic network conditions. Process of CBG based Transmission and ReceptionIn CBG-based transmission and reception, a Transport Block (TB) is divided into Code Block Groups (CBGs), each containing specific Code Blocks (CBs). This approach allows selective retransmission of CBGs instead of the entire TB when errors occur, optimizing resource usage and reducing latency. The configuration is managed through higher-layer parameters, and information about transmitted and retransmitted CBGs is conveyed via control fields in the DCI. This method improves efficiency and adaptability in modern wireless communication systems. Following is a summary on the process of CBG based transmission and CBG based reception based on 38.214 - 5.1.7 Process of TransmissionIn CBG-based transmission, a Transport Block (TB) is divided into multiple Code Block Groups (CBGs), each containing specific Code Blocks (CBs). The configuration for CBG-based operation is indicated by the higher-layer parameter PDSCH-CodeBlockGroupTransmission. For transmission, the CBG Transmission Information (CBGTI) field in the DCI format specifies which CBGs are included in a transmission. In initial transmissions, all CBGs are assumed to be present. In retransmissions, the CBGTI indicates which CBGs need to be retransmitted, optimizing resource usage by avoiding unnecessary retransmission of successfully decoded CBGs. The CBG Flushing Information (CBGFI) field, if present, indicates whether retransmitted CBGs should be combined with previously received ones or treated independently Process of ReceptionIn CBG-based reception, the UE uses the CBG Transmission Information (CBGTI) field in the DCI to determine which Code Block Groups (CBGs) are transmitted or retransmitted. For initial transmissions, all CBGs are assumed to be present, while retransmissions are specified in the CBGTI field. The optional CBG Flushing Information (CBGFI) field indicates whether retransmitted CBGs should be combined with previously received data or treated as new. Each retransmitted CBG contains the same Code Blocks as in the initial transmission, enabling efficient recovery of lost data.
RRC ParametersPDSCH-ServingCellConfig ::= SEQUENCE { codeBlockGroupTransmission SetupRelease { PDSCH-CodeBlockGroupTransmission } OPTIONAL, xOverhead ENUMERATED { xOh6, xOh12, xOh18 } OPTIONAL, -- Need S nrofHARQ-ProcessesForPDSCH ENUMERATED {n2, n4, n6, n10, n12, n16} OPTIONAL, -- Need S pucch-Cell ServCellIndex OPTIONAL , -- Cond SCellAddOnly ... }
PDSCH-CodeBlockGroupTransmission ::= SEQUENCE { maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8}, codeBlockGroupFlushIndicator BOOLEAN, ... }
Reference
|
||