Description
A Code Block Group (CBG) is a fundamental concept in the 5G New Radio (NR) physical layer, specifically within the Hybrid Automatic Repeat Request (HARQ) process for error control. In NR, a Transport Block (TB), which is the basic unit of data for transmission over the air interface, is segmented into smaller Code Blocks (CBs) before channel coding. A CBG is a collection of one or more of these Code Blocks. The primary function of CBG-based transmission is to enable more granular retransmissions. Instead of signaling HARQ feedback (ACK/NACK) and performing retransmissions at the granularity of an entire Transport Block, the network can operate at the CBG level. This means the receiver can identify and request retransmission of only those specific CBGs that contained errors, rather than the entire TB.
The operation involves several key components and procedures. During initial transmission, the gNB (base station) transmits a TB, which is segmented into CBs, and these CBs are logically grouped into CBGs based on configuration. The number of CBGs per TB is configurable by RRC signaling, with a maximum defined per specification (e.g., up to 8 CBGs for a TB in some configurations). Each CBG is independently channel coded. The receiver (UE) performs decoding and generates HARQ feedback in the form of a CBG-based ACK/NACK bitmap. This bitmap indicates the success (ACK) or failure (NACK) of each individual CBG. The gNB processes this feedback and schedules retransmissions specifically for the NACKed CBGs. The retransmitted CBGs may use the same or different redundancy versions (RVs) as defined in the HARQ process.
Architecturally, CBG processing is integrated into the physical downlink shared channel (PDSCH) and physical uplink shared channel (PUSCH) handling within the gNB and UE protocol stacks, primarily in the MAC and physical layers. The configuration, including whether CBG-based transmission is enabled and the number of CBGs, is determined by RRC and can be adapted based on channel conditions. The Downlink Control Information (DCI) formats include fields to indicate the CBG Transmission Information (CBGTI) and CBG Flushing Information (CBGFI), which manage which CBGs are being transmitted and whether previous soft buffer content should be flushed. This mechanism is crucial for managing the soft buffer memory in the receiver, as it stores log-likelihood ratios for incremental redundancy combining.
CBG's role in the network is to enhance the efficiency of the HARQ process, which is critical for achieving the high reliability and low latency targets of 5G, particularly for enhanced Mobile Broadband (eMBB) and Ultra-Reliable Low-Latency Communications (URLLC) services. By reducing the amount of data that needs to be retransmitted when only part of a TB is corrupted, CBG-based retransmission minimizes air interface resource consumption, reduces latency for error recovery, and improves overall throughput and spectral efficiency. It represents a significant evolution from the LTE approach, where retransmissions were primarily TB-based, offering finer control and better performance in challenging radio conditions.
Purpose & Motivation
CBG-based transmission was introduced in 5G NR to address limitations of the Transport Block (TB)-based HARQ used in LTE. In LTE, if any part of a TB failed decoding, the entire TB—potentially a large data unit—had to be retransmitted. This was inefficient, especially as TB sizes grew larger with higher data rates in 5G. Retransmitting an entire TB consumed excessive time and radio resources, increasing latency and reducing spectral efficiency, which was detrimental for latency-sensitive services like URLLC and for maintaining high throughput in poor signal conditions.
The primary problem CBG solves is the granularity of retransmissions. By grouping code blocks, it allows the system to identify and retransmit only the corrupted subsets of data. This partial retransmission capability significantly reduces the overhead and delay associated with error recovery. Historically, the motivation came from the need to support diverse 5G use cases with stringent requirements. For eMBB, large TBs are common, and CBG prevents small errors from triggering large retransmissions. For URLLC, minimizing latency is paramount, and faster error correction via targeted retransmissions is critical.
Furthermore, CBG enables more efficient use of the UE's soft buffer memory for HARQ combining. Instead of storing soft bits for an entire TB for potential retransmission, the UE can manage memory per CBG, allowing for better performance with limited buffer sizes. This addresses practical implementation constraints. The creation of CBG was driven by 3GPP's goal to design a more flexible and efficient air interface for NR, learning from LTE's experiences and anticipating the needs of future high-speed, low-latency applications.
Classification
Detected Changes Across Releases
from 3GPP Change RequestsSpecific changes extracted from the „Change history“ tables of 3GPP specifications (243 CRs across 5 releases). Complements the general historical overview above with the evidence-based evolution of this function.
Studied in Rel-14, normative work from Rel-15.
In Release 15, the CBG (Code Block Group) function was not newly introduced; the provided grounding context and Change Request titles exclusively detail foundational procedures for transport block processing, code block segmentation, and channel coding. The listed corrections for HARQ-ACK codebooks, PUSCH scheduling, and PDSCH processing do not mention or define CBG-based transmission or retransmission. Therefore, based solely on the given materials, Release 15 specifications for the discussed physical layer procedures do not include the CBG feature.
- Support maximum 8 SS/PBCH blocks for unpaired spectrum beyond 2.4GHz TS 38.213CR0006
- Correction to dynamic HARQ codebook in NR TS 38.213CR0014
- CR on overlapping of CSI and PUSCH with slot aggregation TS 38.213CR0028
- Correction on PUSCH power scaling TS 38.213CR0039
- Clarification of reference to PDSCH processing capability 1 in TS 38.213 TS 38.213CR0042
- Correction on the timeline condition of multiplexing two HARQ-ACK information in one slot TS 38.213CR0043
+ 27 more changes
In Release 16, the enhancements for the Code Block Group (CBG) function primarily focused on refining the associated HARQ-ACK feedback mechanisms to improve reliability and efficiency. Key corrections addressed the construction and prioritization of Type-2 and Type-3 HARQ-ACK codebooks, the handling of overlapping PUCCH/PUSCH transmissions with different priorities, and the processing timeline for SCell dormancy indications. These updates provided more precise definitions for codebook generation and multiplexing, particularly for scenarios involving PDSCH repetitions, SPS PDSCH, and secondary PUCCH groups.
- Correction on HARQ-ACK codebook RRC parameter TS 38.212CR0069
- CR to 38.213 on HARQ-ACK processing timeline for DCI format 1_1 with Scell dormancy indication without scheduling PDSCH TS 38.213CR0135
- Correction on PUSCH processing capability for DAPS handover TS 38.213CR0150
- Correction of NRU HARQ procedure in the presence of SPS PDSCH TS 38.213CR0163
- 38.213 CR Correction on HARQ-ACK codebook for secondary PUCCH group TS 38.213CR0167
- Correction on Type2 HARQ-ACK codebook construction TS 38.213CR0168
+ 57 more changes
In Release 17, the enhancements for the Code Block Group (CBG) function primarily involved refinements to the Type-2 HARQ-ACK codebook generation, particularly for scenarios where spatial bundling and time bundling are configured. Specific corrections were made to ensure proper CBG-based HARQ-ACK feedback generation during procedures like PUCCH cell switching and uplink bandwidth part switching. These updates ensured the reliable operation of CBG-based retransmissions within the broader HARQ framework.
- CR on DCI size for Rel-17 NTN HARQ in 38.212 TS 38.212CR0116
- CR on the description of the SRS resource set indication for PUSCH repetition TS 38.212CR0117
- Correction to support up to 32 HARQ process numbers for FR2-2 TS 38.212CR0126
- Correction on TDRA for multiple PUSCH scheduling in TS 38.212 TS 38.212CR0127
- CR on number of HARQ-ACK codebooks configurable for multicast TS 38.212CR0129
- CR on aligning DCI sizes when configuring two HARQ-ACK codebooks for multicast TS 38.212CR0135
+ 86 more changes
In Release 18, the CBG function itself was not a primary focus of new feature introductions. The release's enhancements centered on other physical layer procedures, such as the introduction of multi-cell PDSCH/PUSCH scheduling and corrections to HARQ-ACK multiplexing on PUSCH transmissions. The provided specification text details the foundational code block segmentation, channel coding, and rate matching processes for transport channels, but does not describe new CBG-specific mechanisms for this release.
- Introduction of RS for pathloss determination of Type 1 CG PUSCH [PL RS Type 1 CG] TS 38.213CR0567
- Introduction of multiplexing in a PUSCH with repetitions HARQ-ACK associated with DL assignments received after an UL grant for the PUSCH [HARQ-ACK MUX on PUSCH] TS 38.213CR0568
- Introduction of multi-cell PDSCH / PUSCH scheduling TS 38.214CR0442
- Multicast MBS PDSCH bandwidth for eRedCap UE in RRC inactive state TS 38.213CR0629
- Clarification on not multiplexing UCI on MSG3 PUSCH TS 38.213CR0631
- Correction on Type-2 HARQ-ACK codebook and DL BWP change TS 38.213CR0632
+ 41 more changes
In Release 19, the new CBG-related function is the correction on Hybrid Automatic Repeat reQuest (HARQ) Process Number (HPN) determination for multi-PDSCH and multi-PUSCH scheduling. This change ensures accurate process identification when multiple transport blocks are scheduled across multiple slots, directly impacting the code block group retransmission procedures. The update refines the linkage between scheduled physical channels and their specific HARQ processes within the existing CBG framework.
- Introduction of 32 HARQ process numbers in Rel-19 [TN32HARQ] TS 38.212CR0222
- CR on UEIRI multiplexed into PUSCH in TS 38.212 TS 38.212CR0244
- CR on UEIRI multiplexed into PUSCH in TS 38.213 TS 38.213CR0762
- CR for Autonomous updates of the UE-specific TA or common TA in an OCC group in NR NTN TS 38.213CR0763
- Correction on HPN determination for multi-PDSCH and multi-PUSCH scheduling TS 38.214CR0747
- Correction on TBS determination for SPS PDSCH TS 38.214CR0748
+ 2 more changes
Explore further
Broader topics and technologies where CBG plays a role.
Defining Specifications
3GPP specifications that define or reference CBG, with the latest known release. Sourced from the 3GPP document catalog — see methodology.
| Specification | Title | Release |
|---|---|---|
| TS 38.212 vj10 | NR Multiplexing and Channel Coding | Rel-19 |
| TS 38.213 vj10 | NR Physical Layer Control Procedures | Rel-19 |
| TS 38.214 vj10 | NR Physical Layer Procedures for Data | Rel-19 |
| TR 38.802 ve20 | Study on New Radio Access Technology Physical Layer Aspects | Rel-14 |
| TR 38.889 vg00 | NR-based access to unlicensed spectrum study | Rel-16 |
| TR 38.912 vj00 | Study on New Radio Access Technology | Rel-19 |