5G NR Downlink HARQ Codebook

3GPP Specification, 5G, 5G NR, 5G Physical Layer

In 5G NR, 3GPP specification has defined HARQ Codebook  to provide the feedback to base station for Downlink data transmission i.e., PDSCH Data. UE Sends the ACK/NACK for corresponding PDSCH in PUSCH/PUCCH.

On the very high level, 5G HARQ supports  following features:

  • Per Transport Block(TB) , one bit is required for HARQ feedback
  • Multiple HARQ process (upto 16) is supported per UE and there has to be separate feedback for each HARQ Process.
  • In one PUSCH/PUCCH, UE can send feedback for multiple PDSCH reception
  • DCI format 1_0 and 1_1 has timing information for HARQ feedback transmission and corresponding PDSCH reception
  • Code Block Group(CBG) based transmission feature is supported in NR PDSCH. If CBG based HARQ ACK feedback is supported
    • Feedback with 1 bit per CBG is supported
    • A CBG can have one or more Code blocks. Higher layer defines the CBG granularity
    • A TB can have multiple CBGs , so feedback for A TB represented by multiple bits (i.e., no. of feedback bits = No. of CBGs)

A codebook is a sequence of bits , which is constructed using ACK/NACK feedback of multiple PDSCH reception for configured time window.
3GPP has defined two type of HARQ Codebook is defined

  • Type 1 Codebook is fixed size Codebook provided  by the gNB via RRC Signaling (Semi static)
  • Type 2 Codebook having dynamic size and changes according to resource allocation (Dynamic)

Type 1 Codebook 

Total size of codebook is the total sum of transmission occasion of PDSCH for a given specific time window. For specific time window, the sum accounts for

    • multiple PDSCH transmission in a single slot
    • multiple PDSCH transmitted across slots
    • multiple PDSCH transmitted across carriers
    •  multiple Transport Blocks for a specific PDSCH
    • multiple CBGs for a TB

The specific Time window will be defined by DCI which is used to allocate PDSCH resources. Note: DCI Format 1_0 has a field ‘PDSCH-to-HARQ_feedback timing indicator’ : Value ∈ {1,2,3,4,5,6,7,8}.

DCI Format 1_1 has a field ‘PDSCH-to-HARQ_feedback timing indicator’ ,which can take values from the set of configured by ‘dl-DataToUL-ACK’ information element. ‘dl-DataToUL-ACK’ element can have 8 values range within 0 to 15. This field indicates the HARQ feedback timing (in terms of slots) to UE.

Consider a Case where UE is receiving PDSCH in slot ‘n’ so corresponding feedback will be sent in ‘n+k’ slot. Where ‘k’ is determined by ‘PDSCH-to-HARQ_feedback timing indicator’

    • Consider a case, DCI Format 1_0 is used and where k = 8; This means that , HARQ codebook which is being transmitted in ‘n+8’ slot , can include feedback of reception of PDSCH which is received in n,n+1st ,n+2nd , … n+7th slot, means the time window can include 8 consecutive slots.
    • If DCI 1_1 is used, and ‘PDSCH-to-HARQ_feedback timing indicator ’ 𝑉𝑎𝑙𝑢𝑒 ∈ {1,2,3,5,6,7,8,11}. This means that HARQ-ACK Codebook which is transmitted in slot ‘n’ can include acknowledgement of PDSCH received in slot n-1,n-2,n-3,n-5,n-6,n-7,n-8 and n-11.
  • Calculation of Size of Type 1 Codebook:
    A UE configured with 3 carrier, and k = 8

    • Carrier 1 : 4 layer and 4 CBG Per TB => 1 Transport Block ➔ 4 bit for HARQ feedback
    • Carrier 2 : 8 layer and without CBG transmission => 2 transport Block ➔ 2 bit for HARQ Feedback
    • Carrier 3 : 8 layer and 8 CBG per TB => 2 transport block ➔ 16 bit for HARQ feedback ( 8 bit for each TB )
    • Total accumulated slots = 8 (i.e. k = 8) So Codebook Size = (4 + 2 + 16 ) * 8 = 176 bits

In above example, only single PDSCH transmission per slot is assumed. There might be a case where a single slot can have multiple PDSCH transmission occasions.

Limitations of Type 1 Codebook

Semi-static codebook has a fixed size. As in above example, irrespective of actual PDSCH resource allocation , UE has to send 176 bits in HARQ Codebook. Consider a case where 3 PDSCH allocation is there in a single slot and this configuration is applied to all 3 carriers. Allocation 1  (S,L) = {2,4}, Allocation 2 (S,L) = {6,4}, Allocation 3 (S,L) = {10,4} So total Codebook Size = 3* 176 = 528 Bits.

If instead of 3 PDSCH UE is receiving only 2 PDSCH allocation , then still UE will send 528 bits. To overcome this limitation, 3GPP has defined Type 2 Codebook  which has dynamic Size.

Type 2 Codebook
It removes the inefficiency caused by unused transmission occasions, but with Type 2 Codebook another difficulty is added to maintain the correct calculation between actual transmission and feedback.

In the static Codebook, UE will populate with negative acknowledgement in the codebook entries, where PDSCH transmission is not there i.e., one-to-one mapping between codebook entries and PDSCH transmission.

In the dynamic Codebook, if UE misses any PDSCH transmission on PDCCH then the codebook size becomes smaller from the UE perspective and Base station still maps acknowledgement for missed transmission.

To overcome this issue, 3GPP has introduced a counter, “Downlink Assignment Indicator(DAI)”. DAI helps to avoid the issue created by missed transmission. This counter is available in both DCI 1_0 and DCI 1_1 format.

DAI is 2-bit field and it has a range of 1 to 4. It means that DAI can detect maximum 3 missed transmission. The gNB will provide DAI value along with PDSCH and If UE detects any missed value of DAI then UE will assume missed transmission and it will map negative acknowledgement in codebook. Counter value is reset after every 4th transmission.

Article is submitted by Subhash Kumawat (Project Associate at 5G IIT-Hyderabad>)

About Subhash Kumawat  
Subhash is graduated from National Institute of Technology (NIT) NIT Kurukshetra with specialization in Electrical Engineering. He presently working with IIT Hyderabad as project associate on  5G NR Physical Layer Development. You may reach him on LinkedInhttps://www.linkedin.com/in/subhash-kumawat-02051995/
Related Post: