5G NR中的HARQ機制 CBG傳輸

  • NR和LTE一樣都有兩級重傳機制:MAC層的HARQ機制RLC層的ARQ機制。丟失或出錯數據的重傳主要是由MAC層的HARQ機制處理,並由RLC的ARQ進行補充。MAC層的HARQ機制能夠提供快速重傳,RLC層的ARQ機制能夠提供可靠的數據傳輸。
  • HARQ使用Stop-and-Wait進程,當一個HARQ在等待確認信息時,發送端可以使用另一個HARQ來繼續發送數據。這些HARQ進程共同組成了一個HARQ實體,這個實體結合了停等協議,允許數據同時連續傳輸。
  • HARQ有下行HARQ和上行HARQ之分。下行HARQ針對下行數據傳輸,上行HARQ針對上行數據傳輸,兩者相互獨立,處理方式也不相同。

一、HARQ進程和調度

  1. NR R15每個上下行載波均支持最大16個HARQ進程,基站可以根據網絡的部署情況,通過高層信令半靜態配置UE支持的最大進程數。如果網絡沒有提供對應的配置參數,則下行缺省的HARQ進程數爲8,上行每個載波支持的最大進程數始終爲16。HARQ進程號在PDCCH中承載,固定爲4比特

  2. 5G不支持跨小區的HARQ重傳,如果初始傳輸在小區1,在傳輸後激活的小區變爲小區2,則不會在小區2上重傳。對於FDD,如果UE在發送HARQ-ACK之前發生了激活UL BWP的切換,則UE不會再相應的PUCCH資源發送HARQ-ACK信息。

  3. 爲了降低終端實現的複雜度,NR R15僅支持順序的HARQ調度,即先調度的數據的HARQ-ACK不會比後調度的HARQ-ACK先反饋,對於上下行都是如此。同時,對於同一個HARQ,如果先調度的HARQ-ACK沒有反饋,則不會對同一個數據再進行一次調度。

二、 HARQ-ACK信息上報

  1. NR上下行均採用異步HARQ,HARQ-ACK信息既可以在PUCCH上承載,也可以在PDCCH上承載。NR R15僅支持UE在一個時隙僅有一個承載HARQ-ACK信息的PUCCH。對於上行數據發送,如果需要重傳,基站不向UE發送ACK/NACK信息,而是直接調度UE進行數據重傳。
  2. 如果UE檢測到在時隙n接收PDSCH,或UE在時隙n檢測到SPS(Semi-Persistent Scheduling,半持續調度)釋放的DCI,UE在時隙(n+k)發送相應的HARQ-ACK信息。其中,k通過DCI中的PDSCH到HARQ的定時指示器來指示,如果DCI中沒有該定時指示器,則通過高層參數DI-DataToUL-ACK來表示。
  3. 對於上下行採用不同的子載波間隔的場景,如果PDSCH子載波間隔大於等於PUCCH子載波間隔,則k=0對應於PDSCH重疊的時隙。如果PDSCH子載波間隔小於PUCCH子載波間隔,則對於PDSCH接收而言,k=0對應於PDSCH接收結束時對應的時隙,對於SPS PDSCH釋放而言,k=0對應於PDCCH接收結束時對應的時隙。
  4. 對於DCI格式1_0,PDSCH到HARQ的定時指示器固定爲3bit,取值爲{1、2、3、4、5、6、7、8}。對於DCI格式1_1,PDSCH到HARQ的反饋可以是0bit、1bit、2bit、3bit,比特寬度由[log2(I)]來定義。其中,I由高層參數DI-DataToUL-ACK的行數來確定。
  5. 如果UE在PUCCH上傳輸HARQ-ACK信息,UE首先確定PUCCH資源集合,然後再確定一個PUCCH資源

三、UE上下行數據處理時延

1. 下行PDSCH處理時延

UE在接收到DCI格式1_0或者1_1中承載的下行調度信息後,會在對應時隙接收相應的PDSCH,並向基站發送反饋HARQ-ACK信息。UE 開始發送HARQ-ACK信息的時間要晚於在承載PDSCH的最後一個符號結束之後的時間。如果不滿足這個要求,UE不會發送HARQ-ACK。

2. 上行PUSCH處理時延

UE發送上行PUSCH(包括DMRS)的最早發送時間晚於承載PUSCH的調度信息的PDCCH的最後一個符號結束後的時間。

四、HARQ-ACK碼本

UE在一個HARQ反饋資源(PUSCH或PDSCH)上反饋的HARQ-ACK信息的整體稱爲HARQ-ACK碼本。

具體碼本產生的方式較爲複雜,後期需要用到時再學習。

五、基於編碼塊組的傳輸

  • 在NR系統中,數據傳輸速率達到Gbit/s的數量級,每個傳輸塊都會很大。在LTE系統中基於Turbo編碼,支持的最大碼塊(CB,Code Block)爲6144bit,大於6144bit的TB被分爲多個CB。假設峯值速率達到20Gbit/s,當一個時隙=0.5ms時,這個時隙內需要傳輸的數據包大小約爲10Mbit,這個包是很大的,若將這個包分爲2個TB(目前LTE支持最大兩個TB),則一個TB塊的大小約爲5Mbit。

  • 如果仍然基於一個TB塊進行1bit 的ACK/NAK反饋,一旦這個TB譯碼出錯,便會造成整個TB重傳。由於該TB很大, 重傳整個TB的資源利用率比較低。由於TB在編碼前,會被劃分爲很多的編碼塊(CB)。對於5Mbit的TB,按照LTE的Turbo編碼,可以分爲大約818個傳輸塊。可能有些CB譯碼正確,有些譯碼錯誤,重傳整個TB是不明智的。

  • 由於一個TB被分爲多個CB,終端譯碼時可以知道每個CB是否正確。因此一種方式就是對每個CB進行ACK/NAK反饋,這樣如果某個TB譯碼失敗,終端只需對傳輸錯誤的CB進行重傳,不用重傳整個TB。基於CB的反饋看起來減少了重傳的冗餘信息,可以提高資源利用率,但是需要反饋很多的上行ACK/NAK,這樣會導致上行信令的開銷非常大,同樣也會造成資源的浪費,因爲反饋很多ACK是沒有意義的。

  • 在NR中引入了一種基於TB反饋和基於CB反饋的折中方案:將TB中的多個CB分組,分組後的CB稱爲CBG(Code Block Group)。針對每一個CBG反饋對應的ACK/NAK,並且基於CBG進行重傳。

  • 爲保證後向兼容,CBG傳輸是可配置的,只有配置了基於CBG傳輸的用戶纔可以基於CBG進行重傳

    1. 編碼塊組個數

    • 設計基於CBG的反饋和重傳是對於基於TB的一種優化方案,目的是爲了提高資源的利用率。但是如果CBG的個數過多 ,資源開銷還是比較大。除此之外,基站的發送控制信息也需要重傳,在重傳的DCI中需要指出那些CBG被重傳,如果CBG個數過大,DCI的開銷也會較大。並且,TB大小不同,這樣DCI的比特數可變,那麼用戶需要盲檢測多種DCI比特數,造成電力資源的浪費。
    • 一個TB中最大的CBG個數是固定的,也就是基站會給用戶發送一個配置信息,指示CBG的最大個數,該最大個數可以記爲N。目前標準38.331規定了CBG的最大個數的候選值爲2、4、6、8。

    2. 編碼塊組劃分

    用戶可以根據下面的公式確定TB中的CBG個數M。
    M=min(N,C) M = min(N,C)
    其中,N爲高層信令配置的最大CBG個數,C是TB中CB的數目。首先確定M和C的大小關係,如果M等於C,那麼一個CBG就包含1個CB。如果M不等於C,則需要根據下面的過程來確實CBG裏CB的個數。
    在這裏插入圖片描述

3. 下行控制命令

  • 基站在重傳過程中,需要指示用戶是對哪些CBG進行了重傳,以方便用戶進行CBG接收以及合併譯碼。並且,是否需要重傳是針對每個用戶的特定行爲,因此CBG重傳的DCI是在用戶特定的DCI中
  • 如果用戶配置了CBG傳輸,則用戶接收的DCI中,會包含一個CBG傳輸指示域,即iCBG Transmission Information,簡稱CBGTI。
  • 用戶的DCI中,還會攜帶新數據指示域(NDI,New Data Indicator),指示當前是新傳還是重傳,NDI指示新傳和重傳時用戶會有不同的理解。
    • 如果NDI指示新傳,則用戶會認爲所有的CBG都是新傳;
    • 如果NDI指示重傳,則用戶會用下面的處理過程。
      • 根據CBGTI的指示,確定哪些CBG被傳輸,其中比特爲0表示對應的CBG沒有傳輸,比特爲1表示傳輸了。
      • 如果DCI中還存在緩存清理指示值,即CBG Flushing out Information,簡稱CBGFI。這個指示值如果爲0,表示之前收到的CBG同樣被污染了,需要清空緩存;如果爲1,指示重傳的CBG可以和之前收到的樣本合併。
      • 重傳的CBG中包含的CB和初傳的CBG中包含的CB是完全一樣的。

4. HARQ-ACK反饋

  • 對於基於CBG傳輸的反饋信息,如果用戶配置了CBG傳輸方式,則用戶會針對每一個CBG都生成一個比特的ACK/NAK反饋信息。如果配置了2個CW,則第二傳輸塊的反饋信息會在第一傳輸塊之後。
  • 如果用戶正確譯碼一個CBG中的所有CB,則該CBG反饋ACK;如果一個CBG中至少有一個CB譯碼錯誤,則反饋NAK。
    輸塊的反饋信息會在第一傳輸塊之後。
  • 如果用戶正確譯碼一個CBG中的所有CB,則該CBG反饋ACK;如果一個CBG中至少有一個CB譯碼錯誤,則反饋NAK。
  • 針對TB重傳,用戶會針對初傳正確的那些CBG反饋ACK。如果用戶正確譯碼了整個CBG,但是該TB的譯碼錯誤,則所有CBG對應的反饋信息比特都是NAK。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章