HARQ ACK Codebook
This is one of the complicated topics (at least to me) in 5G/NR Physical Layer Process (38.213) and what is described here would remain messy without clear big picture for a while until I myself get clear understanding on this process.
Codebook-based HARQ and non-codebook-based HARQ differ primarily in the way HARQ-ACK feedback is structured and transmitted.
- In Codebook-based HARQ, the feedback is organized into a predefined structure known as a "codebook," where the ACK/NACK information for multiple downlink transmissions is compactly represented. This method enables efficient feedback for scenarios where there are multiple PDSCH (Physical Downlink Shared Channel) receptions or code block group (CBG)-based retransmissions. It is particularly useful in systems with high traffic or large-scale data transmissions, as
it
reduces the
overhead associated with transmitting individual ACK/NACK bits for each transmission. The feedback mechanism ensures compatibility with advanced 5G features like CBG-based retransmissions, where multiple code blocks in a transport block can be acknowledged or retransmitted selectively.
- On the other hand,Non-codebook-based HARQ provides feedback in a simpler, more straightforward manner, with one bit of ACK/NACK typically transmitted per transport block or transmission. This approach is simpler and more intuitive but becomes less efficient when dealing with scenarios involving high traffic, multiple HARQ processes, or code block groups. It may result in higher signaling overhead compared to the compact representation of codebook-based feedback.
The key distinction lies in the organization and efficiency of the feedback process, with codebook-based HARQ being more sophisticated and optimized for complex transmission scenarios, while non-codebook-based HARQ remains simpler and more suited for straightforward transmission scenarios.
In 5G New Radio (NR), HARQ remains a key mechanism for ensuring reliable data transmission. The following points offer a high-level summary of HARQ functionality and design considerations: (these are for HARQ in general including both codebook and non-codebook based HARQ. They are not specific to codebook based HARQ only)
These features allow 5G NR to efficiently handle a wide range of traffic types and service requirements, from high-throughput eMBB services to latency-critical URLLC use cases. By supporting both coarse-grained (entire TB) and fine-grained (CBG) retransmission strategies, as well as flexible timing and bundling of HARQ feedback, NR can optimize reliability and resource usage under varying network conditions.
NOTE : Theoretically all of these requirement can be met with regular method (non-codebook based HARQ), but for some of the requires codebook based HARQ can be more effiecient.
- One-Bit HARQ-ACK per TB
- The UE can provide HARQ acknowledgment (ACK) or negative acknowledgment (NACK) using a single bit for each transport block (TB).
- Support for Multiple or Single DL HARQ Processes per UE
- The network can configure one or multiple parallel downlink HARQ processes for each UE, allowing flexible handling of throughput and latency requirements.
- Minimum HARQ Processing Time Capability
- Each UE must report its minimum HARQ processing time, which is the shortest possible delay from receiving downlink data to transmitting the corresponding HARQ-ACK.
- This metric helps the gNB schedule resources and meet timing requirements for both eMBB (enhanced Mobile Broadband) and URLLC (Ultra-Reliable Low-Latency Communications).
- Asynchronous and Adaptive DL HARQ
- 5G NR supports asynchronous (non-slot-aligned) HARQ scheduling and adaptive retransmissions for at least eMBB and URLLC services.
- The gNB can select the retransmission timing and resource allocation without tight slot synchronization constraints.
- Bundled HARQ Feedback for Multiple PDSCH
- From the UE’s perspective, it can combine ACK/NACK feedback for multiple PDSCH receptions over time and transmit it in a single uplink control or data channel opportunity.
- This consolidation reduces uplink overhead and increases feedback efficiency.
- HARQ Feedback Timing in DCI
- The exact timing between a PDSCH reception and its corresponding ACK/NACK transmission is indicated by fields in the Downlink Control Information (DCI), specifically the “PDSCH-to-HARQ feedback timing indicator” present in formats DCI 1_0 and DCI 1_1.
- Code Block Group (CBG)-Based HARQ
- HARQ can operate at a finer granularity using Code Block Grouping:
- A code block group can be treated as a smaller unit within a TB for retransmission decisions.
- One or more CBGs can form a single TB, and each CBG can be acknowledged with either single-bit or multi-bit feedback.
- Constraints on CBG Retransmission
- CBG-based retransmissions are permitted only within the same TB for a given HARQ process.
- This ensures tighter control over partial or full retransmissions of a transport block without affecting other HARQ processes.
- CBG Size and Configuration
- In the simplest case, a TB may consist of exactly one CBG (i.e., all code blocks in the TB form a single group). In such scenarios, the UE reports a single HARQ-ACK bit for the entire TB.
- Alternatively, a CBG may contain just one code block, enabling very fine-grained retransmission control.
- The network (via higher-layer signaling) configures the size and number of CBGs, balancing overhead and efficiency.
Codebook determination algorithm itself is defined in 38.213, but there are many parameters that controls the algorithm. Since they use a little bit different name for the same parameters between 38.213 and 38.331, I thought it would be helpful to make a mapping table for these parameters.
38.213 - 9.1
|
38.331
|
Values
|
CBG-DL (CBG = Code Block Group)
|
codeBlockGroupTransmission
|
On / Off |
CBGs-per-TB-DL()
|
maxCodeBlockGroupsPerTransportBlock
|
2,4,6,8 |
HARQ-ACK-codebook
|
harq-ACK-Codebook
|
semiStatic, dynamic
|
C |
|
Number of Codeblocks within a TB |
|
|
Number of CBG within a TB |
|
harq-ACK-Spatial-Bundling
|
true |
|
Number-MCS-HARQ-DL-DCI (?)
|
|
|
DL-data-DL-acknowledgement (?)
|
|
CBG transmission information (CBGTI)
|
|
A field in DCI 1_1 |
- Identifying Downlink Assignments
- In 5G, each PDSCH (downlink data channel) has an associated Downlink Control Information (DCI) that tells the UE how the data is transmitted (modulation, coding rate, number of layers, etc.).
- The UE must keep track of which transmissions (and which HARQ processes) are active.
- Grouping or Bundling of Feedback
- Depending on the configuration, the network can instruct the UE to bundle or group several downlink transmissions for a single round of HARQ feedback.
- This grouping is often based on time (multiple PDSCHs within a certain time window) or on codewords/layers within a single scheduling instance.
- Constructing the Codebook
- Each ACK/NACK bit for each transport block can be combined or “indexed” into the codebook. The codebook is essentially a mapping:
- (set of ACK/NACK bits) -> (shorter coded message)
- There are rules in the 3GPP specs (e.g., TS 38.213 / 38.321) that describe exactly how these mappings are formed for different scenarios (e.g., different ranks, different MIMO layers, different slot aggregations).
- Reporting the Codebook in Uplink
- Once the UE determines the final ACK/NACK status for each downlink transmission within the reporting set, it selects the corresponding codebook entry and transmits that in the PUCCH (Physical Uplink Control Channel) or PUSCH (Physical Uplink Shared Channel), depending on the scheduling.
- The gNB receives the codebook-based feedback and can decode it into the full set of ACKs/NACKs to know which transmissions were successful and which need retransmissions.
In codebook based HARQ for NR, the process of determining the number of HARQ ACK/NACK bits is more flexible and versatile compared to LTE or Non-codebook based NR HARQ, where a simple rule—typically assigning one bit per transport block (TB)—is commonly used. For example, in LTE, if a 4x4 MIMO configuration is used, a single cell would handle two transport blocks (two codewords), resulting in 2 bits for HARQ feedback and in case of NR non-codebook based HARQ, if a 4x4 MIMO configuration is
used, the cell would handle one transport blocks (one codewords), resulting in 1 bit for HARQ feedback
Below are the main cases for determining HARQ bit lengths, as summarized from 38.213 - 9.1, with intuitive explanations added for clarity.
< Case 1 >
Since no explicit scheduling information is provided via the PDCCH, only a single acknowledgment bit is required for the received data. This is the simplest scenario, ensuring minimal overhead for HARQ feedback.
Condition :
PDSCH is received without corresponding PDCCH or
PDCCH indcating a SPS PDSCH release
Number of HARQ Bit : 1 bit
< Case 2 >
In this case, feedback is straightforward, with one bit representing the acknowledgment for each transport block. This aligns with the simpler LTE-style feedback mechanism, where each TB gets its own HARQ bit.
Condition :
PDSCH-CodeblockGroupTransmission = Not Configured AND
PDSCH with DCI 1_1
Number of HARQ Bit : 1 bit per TB (Transport Block)
< Case 3 >
This case handles semi-persistent scheduling (SPS), where periodic transmissions may not require dynamic scheduling information. HARQ feedback is limited to the specific SPS transmission to optimize feedback overhead.
< Case 4 >
This setup provides granularity by allowing feedback for individual code block groups within a TB. For example, if a TB consists of five CBGs, five HARQ bits are used. This granularity enhances the ability to retransmit specific portions of a TB, improving efficiency for error correction and retransmission.
Condition :
PDSCH-CodeblockGroupTransmission = Configured
Number of HARQ Bits : 1 bit per CBG(Codeblock Group).
In this case, Usually 1 TB carries multiple CBG, so multiple bits are allocated for one TB.
< Case 5 >
This approach uses a predefined, semi-static configuration for HARQ feedback, which reduces dynamic signaling overhead. It’s particularly useful in scenarios with predictable traffic patterns.
Condition :
HARQ-ACK-codebook=semi-static
Number of HARQ Bits : Determined by Type 1 HARQ-ACK codebook determination algorithm
< Case 6 >
A dynamic codebook allows for more flexibility in varying traffic conditions or when multiple PDSCH transmissions need to be acknowledged within the same slot. This case is highly adaptable, supporting advanced NR features like multiple HARQ feedback within a single uplink resource.
Condition :
HARQ-ACK-codebook=dynamic
Number of HARQ Bits : Determined by Type 2 HARQ-ACK codebook determination algorithm
There are a few different types of Codebook determination algorithm called Type 1, Type 2 and Type 3. Each of these types are again divided into two cases depending on whether the HARQ ACK is reported in PUCCH or PUSCH. Which types of algorithm to use is determined by a couple of RRC parameters. The Codebook determination algorithm type and the RRC parameters determining the type can
be summarized as follows :
Codebook Determination Type
|
Condition
|
CBG-based HARQ-ACK codebook determination
|
codeBlockGroupTransmission = ON
|
Type-1 HARQ-ACK codebook determination
|
HARQ-ACK-codebook=semi-static
|
|
Type-1 HARQ-ACK codebook in PUCCH
|
|
|
Type-1 HARQ-ACK codebook in PUSCH
|
|
Type-2 HARQ-ACK codebook determination
|
HARQ-ACK-codebook = dynamic
|
|
Type-2 HARQ-ACK codebook in PUCCH
|
codeBlockGroupTransmission = OFF or omit
|
|
Type-2 HARQ-ACK codebook in PUSCH
|
|
Followings are short descriptions on each type of the codebook.
- Type-1 HARQ-ACK Codebook : This type is used for simple cases where feedback is tied to a single or small number of slots. Each entry in the codebook corresponds to a transport block (TB) or PDSCH transmission, with feedback directly linked to specific downlink assignments.
- Purpose: Used for scenarios where downlink assignments and feedback are associated with a single or limited number of slots.
- Determination:
- Feedback is tied to the Downlink Assignment Indications (DAIs) and associated with a specific PDCCH configuration.
- Each entry in the codebook corresponds to a particular transport block (TB) or PDSCH transmission.
-
Type-2 HARQ-ACK Codebook : This type handles more complex situations, such as feedback across multiple slots. It’s used in cross-slot scheduling and combines feedback for several PDSCH transmissions managed by different scheduling occasions. This codebook is more flexible and designed for dynamic operations.
- Purpose: Handles scenarios with complex scheduling or multi-slot/multi-beam operations.
- Determination:
- Aggregates HARQ-ACK feedback across multiple slots.
- Typically used in Cross-Slot Scheduling or multi-slot feedback modes.
- The structure of the codebook is more flexible and accounts for multiple PDSCH transmissions scheduled by different PDCCH occasions.
- Type-3 HARQ-ACK Codebook : This type is designed for scenarios involving multiple beams, such as in massive MIMO systems. It provides feedback for different beams or TCI states, making it suitable for advanced spatial multiplexing and beam-aware communication.
- Purpose: Tailored for beam-specific feedback, particularly in massive MIMO systems.
- Determination:
- Provides feedback across multiple beams or Transmission Configuration Indicator (TCI) states.
- It is beam-aware and supports configurations for advanced spatial multiplexing.
Reference
|
|