網(wǎng)絡(luò)優(yōu)化講解NR HARQ_第1頁(yè)
網(wǎng)絡(luò)優(yōu)化講解NR HARQ_第2頁(yè)
網(wǎng)絡(luò)優(yōu)化講解NR HARQ_第3頁(yè)
網(wǎng)絡(luò)優(yōu)化講解NR HARQ_第4頁(yè)
網(wǎng)絡(luò)優(yōu)化講解NR HARQ_第5頁(yè)
已閱讀5頁(yè),還剩80頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

NRHARQ

這個(gè)系列介紹NR的HARQ(HybridAutomaticRepeatQuest)。HARQ是橫跨MAC(MediumAccessControl)和PHY(Physical)的數(shù)據(jù)重傳機(jī)制,NR的HARQ沿用自LTE,但比LTE更靈活,比如上行異步HARQ、HARQACK時(shí)機(jī)配置(PDSCHtoHARQfeedbacktimingindicator)、CBG(CodeBlockGroup)的HARQACK碼本等。按照以往慣例,前面先進(jìn)行“前情回顧”,熟悉LTEHARQ的讀者可以跳過(guò)。NR部分主要參考孫老師的《NRHARQ簡(jiǎn)介》(發(fā)表于公眾號(hào)“春天工作室”),LTE部分主要參考金輝老師的《深入理解LTE-A》,包括《HARQ介紹》、《上行HARQ》和《下行HARQ》。金輝老師的公眾號(hào)是“金輝5G”,網(wǎng)站是“”(不積跬步無(wú)以至千里),推薦大家關(guān)注和學(xué)習(xí)。本人理論水平有限,也沒有無(wú)線專業(yè)工作經(jīng)歷,文章難免存在錯(cuò)漏,歡迎各位專家批評(píng)和指正。

為什么要重傳?

因?yàn)閭鬏斶^(guò)程是“不可靠”的,特別是無(wú)線傳輸。假設(shè)A和B是通信雙方,從某種意義來(lái)說(shuō),A通過(guò)無(wú)線信道傳送給B的信息,B是“猜”(判決)出來(lái)的——因而就有“猜錯(cuò)”的可能,比“猜錯(cuò)”更糟的,是B完全沒收到信號(hào)。無(wú)論如何,這些都是“失敗”的傳輸,原因有很多可能,比如信號(hào)太弱,或干擾太強(qiáng)等。為了實(shí)現(xiàn)“可靠”的傳輸,需要設(shè)計(jì)一個(gè)機(jī)制來(lái)“補(bǔ)鍋”,這個(gè)機(jī)制就是重傳。亞洲舞王——尼古拉斯.趙四說(shuō)過(guò):沒什么是重傳不能解決的,如果有…那就再傳幾次。

這就好像,A向B喊話,如果距離比較遠(yuǎn)(信號(hào)太弱),或環(huán)境比較吵(干擾太強(qiáng)),B可能聽不清A在喊什么(解碼失?。多喊幾遍(重傳),B聽清(解碼成功)的可能性就會(huì)大一些。如果A知道B聽清沒有,可以選擇性的重復(fù)某幾句話,如果A不知道,只能喊破喉嚨了。在通信系統(tǒng)中,通常A只重傳“失敗”數(shù)據(jù),因?yàn)橹貍髡加妙~外的資源,會(huì)降低“效率”。在特定場(chǎng)景中,A也可以用“效率”換取“可靠”,“主動(dòng)”重傳以獲得增益,提高B“猜中”的成功率。這個(gè)系列關(guān)注的HARQ,是指“被動(dòng)”重傳。或者換個(gè)說(shuō)法,“主動(dòng)”重傳是Repetition,重復(fù)傳輸(比如NB-IOT,實(shí)際還是由HARQ實(shí)現(xiàn)),“被動(dòng)”重傳是Retransmission,A基于(B)應(yīng)答決定是否重傳。重傳不僅降低“效率”,還會(huì)增加“時(shí)延”。B不僅要應(yīng)答,還要盡快應(yīng)答。基站調(diào)度時(shí)選擇的MCS(ModulationandCodingScheme)是以BLER(BlockErrorRate)小于10%為目標(biāo)的,通過(guò)HARQ快速應(yīng)答和重傳,可大幅降低BLER。不過(guò),所謂“忙中出錯(cuò)”,既要快又要穩(wěn)(又讓馬跑,又不讓馬吃草),是不現(xiàn)實(shí)的。因而,LTE有兩層重傳:HARQ和RLC(RadioLinkControl)的ARQ。HARQ反饋的出錯(cuò)率大概是1%,剩下的問(wèn)題交給RLC(AM,確認(rèn)模式)解決(如果業(yè)務(wù)對(duì)丟包和誤碼不敏感,比如語(yǔ)音,RLC(UM,非確認(rèn)模式)也可以不管)。通過(guò)HARQ和RLC的ARQ結(jié)合,可在可靠性、時(shí)延和開銷之間取得較好的平衡。

HARQ適用于下行(DL-SCH),也適用于上行(UL-SCH)。通常來(lái)說(shuō),HARQ適用于“一對(duì)一”傳輸,不太適用于廣播——因?yàn)閺V播不需要UE反饋(BroadcastHARQ是為了獲得增益)。比如系統(tǒng)消息,UE收到就行了,就不要主動(dòng)發(fā)言了(這位同學(xué)你坐下);又比如尋呼消息,只有相關(guān)UE需要應(yīng)答,但這屬于高層(NAS)應(yīng)答;再比如RAR(RandomAccessResponse),除了存在“一對(duì)多”可能(多個(gè)UE選擇相同的PRACH和RAPID),還是“一錘子買賣”(RAR有時(shí)效性),重發(fā)RAR會(huì)出現(xiàn)意外。

A是“被動(dòng)”重傳的,意味著A可以發(fā)現(xiàn)“失敗”,從實(shí)現(xiàn)角度看,這又意味著:1、B可以發(fā)現(xiàn)“失敗”;2、B可以向A反饋“失敗”。由此,可以設(shè)計(jì)一個(gè)簡(jiǎn)單的傳輸模型:1、A向B依次發(fā)送數(shù)據(jù)塊,并給數(shù)據(jù)塊添加校驗(yàn)信息;2、B對(duì)接收數(shù)據(jù)塊進(jìn)行校驗(yàn),成功則響應(yīng)ACK,失敗則響應(yīng)NACK;3、A每發(fā)送一個(gè)數(shù)據(jù)塊就停下來(lái),等待B返回響應(yīng)(StopandWaitProtocol),如果響應(yīng)為ACK,A發(fā)送新的數(shù)據(jù)塊,如果響應(yīng)為NACK,或沒有收到響應(yīng),A重傳當(dāng)前數(shù)據(jù)塊。以下行傳輸為例,PHY(物理層)就像“一條河”,eNB和UE的MAC之間有“一艘船”來(lái)回?cái)[渡,eNB通過(guò)PDSCH向UE發(fā)送數(shù)據(jù),需要等待UE通過(guò)PUCCH(或PUSCH)返回響應(yīng)(ACK或NACK),eNB才可以發(fā)送新的數(shù)據(jù),或重傳當(dāng)前數(shù)據(jù)——除非超過(guò)設(shè)定時(shí)間,eNB沒等到船回來(lái),才會(huì)另派一艘。無(wú)論初傳還是重傳,eNB先通過(guò)PDCCH(圖上沒有呈現(xiàn))發(fā)送DCI(DownlinkControlInformation),UE才知道在PDSCH接收數(shù)據(jù)。DCI很重要,可想象為eNB派往UE“宣旨”的“欽差”——如果“欽差”翻了船,就沒有“然后”了。在DL-SCH物理傳輸模型中,eNB的MAC向PHY提交的數(shù)據(jù)(MACPDU)稱為TransportBlock,簡(jiǎn)稱TB。為了讓UE可以檢驗(yàn)接收的TB是否無(wú)誤,eNB在長(zhǎng)度為A的TB前面添加24位“1”,通過(guò)gCRC24(D)獲得24位的CRC(CyclicRedundancyCheck,循環(huán)冗余校驗(yàn)碼),附加在TB后面。UE接收TB后,以相同方式計(jì)算CRC并進(jìn)行比對(duì),如果CRC一致,則解碼成功,向eNB返回ACK,否則解碼失敗,返回NACK。

模型很簡(jiǎn)單,但效率不高。為此,協(xié)議做了一些改進(jìn)。首先,在ARQ的基礎(chǔ)上增加FEC(ForwardErrorCorrection),前向糾錯(cuò)——可以在B(糾錯(cuò))解決的問(wèn)題,就不用麻煩A(重傳)了。ARQ和FEC結(jié)合,稱為HARQ,“混合式”自動(dòng)重傳請(qǐng)求。我不確定HARQ的FEC指什么,個(gè)人理解為L(zhǎng)TE和NR的信道編碼(分別使用Turbo碼和LDPC碼)輸出的ParityBits(LDPC可參考《NRPDSCH(三)》)。A將編碼輸出(SystematicBits和ParityBits)寫入環(huán)形緩沖器(CircularBuffer),根據(jù)速率匹配要求(空口速率)從中選擇Bits發(fā)送。因此,在初傳中,B不一定收到所有ParityBits——B收到越多,解碼性能越好。

由上可見,如果B解碼失敗就把數(shù)據(jù)丟棄,有點(diǎn)可惜,因?yàn)榇蟛糠諦it(多半)是正確的。如果B把解碼失敗的數(shù)據(jù)寫入緩存(HARQBuffer),和同一TB的重傳數(shù)據(jù)進(jìn)行合并,就比單次傳輸(初傳或重傳)的數(shù)據(jù)更有可能解碼成功——這個(gè)合并過(guò)程稱為“軟合并”(SoftCombining)。顯然,CRC校驗(yàn)應(yīng)在“軟合并”后進(jìn)行。理論上,重傳的數(shù)據(jù)和初傳相同也有增益,但效果不如重傳其他ParityBits(加強(qiáng)FEC作用,或理解為降低碼率)。因而,LTE和NR使用增量冗余(IncrementalRedundancy)方案,A在環(huán)形緩沖器的不同位置開始選擇Bits,可獲得同一TB的4個(gè)不同的RV(RedundancyVersion,冗余版本):RV0、RV1、RV2、RV3。A重傳時(shí)按照特定順序(0、2、3、1)選擇RV發(fā)送。除了RV0,其他RV無(wú)法自解碼(RV3可能可以),但和RV0“軟合并”后解碼成功率會(huì)增加。

這里有一個(gè)小問(wèn)題。如果TB初傳時(shí),B只是解碼失敗,A發(fā)送其他RV才有增益,如果B完全沒有收到數(shù)據(jù)(或接收質(zhì)量很差),A還是重發(fā)RV0比較穩(wěn)妥——RV0包含所有SystematicBits,B可以自解碼。針對(duì)上述兩種場(chǎng)景,A需要不同的反饋,才可以選擇合適的RV重傳。因此,模型需要增加一種否定應(yīng)答。如果B解碼失敗,返回NACK,要求A發(fā)送額外的ParityBits(其他RV),如果B沒有收到數(shù)據(jù),返回DTX,要求A重傳SystematicBits(還是RV0)。綜上所述,HARQ功能由PHY和MAC(HARQProtocol)共同實(shí)現(xiàn)。在發(fā)送端,MAC負(fù)責(zé)傳輸和重傳TB,選擇RV(并指示PHY),接收和處理ACK/NACK,PHY負(fù)責(zé)(根據(jù)MAC指示)生成RV;在接收端,PHY負(fù)責(zé)RV的軟合并和CRC校驗(yàn)(在NR中還有CBG的CRC校驗(yàn)),MAC負(fù)責(zé)接收TB,發(fā)送ACK/NACK。

如果A把ACK識(shí)別為NACK,A會(huì)重傳(B)已經(jīng)解碼成功的TB(MACPDU),B的MAC直接丟棄就好(MAC似乎無(wú)法識(shí)別),即使提交上層,RLC也會(huì)通過(guò)DuplicationDetection丟棄(RLCPDU)。反過(guò)來(lái),如果A把NACK識(shí)別為ACK,A的MAC誤以為B已經(jīng)成功收到TB,此時(shí)就需要RLC重傳來(lái)挽救——對(duì)于A的MAC來(lái)說(shuō),RLC重傳數(shù)據(jù)(RLCPDU)是新的Payload(MACSDU),和此前“丟失”(實(shí)際上MAC并不知道)的TB沒有聯(lián)系,MAC重新組裝新的TB(MACPDU)。

最后…

模型最大的問(wèn)題,在于每個(gè)UE只有“一艘船”。eNB每次(一個(gè)TTI)只能向UE發(fā)送一個(gè)TB(如果忽略空分復(fù)用),收到UE響應(yīng)之前,eNB就無(wú)所事事了(相當(dāng)于“一周”只上一天班),傳輸效率非常低,更糟糕的是,如果這個(gè)TB一直解碼失敗,傳輸就完全停滯了(雖然eNB和UE很努力)。為了提高傳輸效率,協(xié)議需要限定TB的最大HARQ次數(shù)(MAC不行就放棄吧,留給RLC處理),更重要的,是給UE加幾艘船——“一艘船”就是一個(gè)HARQ進(jìn)程(HARQProcess),多個(gè)HARQ進(jìn)程“并行”處理不同TB,傳輸效率就上去了,這就是N通道的停等式協(xié)議(NChannelStopandWait)

于是,協(xié)議又引入了HARQ實(shí)體(HARQEntity)概念。每個(gè)UE都有一個(gè)HARQ實(shí)體,包含多個(gè)HARQ進(jìn)程。如果配置了CA(CarrierAggregation,載波聚合),UE在每個(gè)載波單元(ComponentCarrier)都有一個(gè)HARQ實(shí)體,HARQ進(jìn)程數(shù)量成倍增長(zhǎng),傳輸效率就更高了。如果忽略CA和空分復(fù)用,HARQ進(jìn)程最大數(shù)量受限于最小HARQRTT(RoundTripTime)——即從TB在A發(fā)送開始,到A根據(jù)B反饋(ACK/NACK/DTX)確定后續(xù)動(dòng)作的時(shí)長(zhǎng)。簡(jiǎn)單的說(shuō),HARQRTT就是A派出同一艘船的間隔。在LTEFDD中,最大HARQ進(jìn)程數(shù)量等于RTT包含的子幀數(shù)量(班次再多就要打架了);在LTETDD中,最大HARQ進(jìn)程數(shù)量等于RTT包含的“同一方向”的子幀數(shù)量——因此,不同上下行子幀配置(TDDUL/DLConfiguration)的最大HARQ進(jìn)程數(shù)量也不同,以上行為例,最大HARQ進(jìn)程數(shù)量如表格所示。(在NR中,HARQ進(jìn)程數(shù)量可通過(guò)RRC配置,UE在每個(gè)服務(wù)小區(qū)最多支持16個(gè)HARQ進(jìn)程,默認(rèn)為8個(gè))

每個(gè)HARQ進(jìn)程有獨(dú)立的HARQBuffer,因?yàn)橥籘B的不同RV,才可以進(jìn)行“軟合并”。相應(yīng)的,eNB在DCI包含HARQProcessnumber,以便UE(結(jié)合MCS和NDI)區(qū)分不同TB——同步HARQ除外,此時(shí)HARQProcessnumber可從Timing(子幀號(hào))推導(dǎo),DCI不用包含HARQProcessnumber。如果使用空分復(fù)用(SpatialMultiplexing),即一個(gè)TTI(TransmissionTimeInterval)并行傳輸兩個(gè)TB,DCI只包含一個(gè)HARQProcessnumber,兩個(gè)TB“關(guān)聯(lián)”同一HARQ進(jìn)程,但有獨(dú)立的HARQ信息,包括各自的MCS、NDI和RV。

對(duì)于特定HARQ進(jìn)程,UE需要確定調(diào)度的TB是初傳還是重傳。在UE側(cè),每個(gè)HARQ進(jìn)程有一個(gè)NDI(NewDataIndicator)。簡(jiǎn)單的理解,如果UE此前沒有收到某個(gè)TB的NDI,或NDI發(fā)生“翻轉(zhuǎn)”(NDItoggled),則TB是初傳,否則TB是重傳,具體規(guī)要更復(fù)雜一些,詳見3GPPTS36.321的5.3.1章節(jié)。如果TB是初傳,MAC直接嘗試解碼,如果是TB是重傳,MAC先進(jìn)行“軟合并”,再嘗試解碼。多個(gè)HARQ進(jìn)程帶來(lái)的問(wèn)題是,在接收端,MAC提交給RLC的數(shù)據(jù)是“亂序”的(示圖中,數(shù)據(jù)塊1解碼成功時(shí)間最晚),因?yàn)楦鱾€(gè)TB是“并行”處理的,且無(wú)法預(yù)知哪個(gè)TB會(huì)先解碼成功。在CA場(chǎng)景中,UE有多個(gè)HARQ實(shí)體,“亂序”更加是必然的。因此,在LTE中,RLC對(duì)接收數(shù)據(jù)進(jìn)行“重排”(Reordering),以實(shí)現(xiàn)向上層“按序提交”(InOrderDelivery)的服務(wù),這對(duì)TCP業(yè)務(wù)尤其重要——在NR中,為了縮短處理時(shí)延,“重排”功能上移到PDCP(PacketDataConvergenceProtocol)實(shí)現(xiàn)。NRHARQ(八)

感謝閱讀。

這一篇講NRHARQ的“動(dòng)態(tài)碼本”。前面提到,“半靜態(tài)碼本”的問(wèn)題是“無(wú)用”反饋太多,UE希望“一個(gè)蘿卜一個(gè)坑”,“蘿卜”(PDSCHReception或SPSRelease)不知道會(huì)不會(huì)有,“坑”(HARQ-ACK)先占上了?!鞍腱o態(tài)碼本”就像“包干報(bào)銷”,如果想擠掉水分,UE該怎么做呢?“動(dòng)態(tài)碼本”的思路是——“實(shí)報(bào)實(shí)銷”。

也就是說(shuō),gNB“報(bào)”(調(diào)度)多少,UE就“銷”(反饋)多少。UE不再按照“計(jì)劃表”(PDSCH候選集)巴巴的等PDSCH,而是根據(jù)PDCCH確定HARQ反饋的位數(shù),即“動(dòng)態(tài)碼本”的長(zhǎng)度。不過(guò),除了“指示下行SPS釋放”的PDCCH,UE還是根據(jù)PDSCH解碼結(jié)果確定返回ACK還是NACK,不能像陳佩斯那樣,朱時(shí)茂(gNB)一抬手(PDCCH)就倒地(HARQ-ACK)了。

那不是顯得您槍法準(zhǔn)嗎…

對(duì)于特定的上行時(shí)隙n,UE先確定哪些PDCCH調(diào)度的“下行傳輸”在時(shí)隙n的PUCCH反饋,根據(jù)《NRHARQ(五)》描述,UE根據(jù)k1倒推PDSCH時(shí)隙,再根據(jù)k0倒推PDCCH時(shí)隙——k1由DCI1_0或1_1的PDSCHtoHARQFeedbackTimingIndicator(結(jié)合DLDataToULACK)指示,k0由DCI1_0或1_1的TimeDomainResourceAssignment(結(jié)合PDSCH時(shí)域資源分配表)指示。反過(guò)來(lái)說(shuō),如果在某個(gè)PDCCH監(jiān)聽時(shí)機(jī)(PDCCHMonitoringOccasion)收到C-RNTI、CS-RNTI或MCS-RNTI加擾的DCI1_0或1_1,UE由TimeDomainResourceAssignment(結(jié)合PDSCH時(shí)域資源分配表)獲得k0,由PDSCHtoHARQFeedbackTimingIndicator(結(jié)合DLDataToULACK)獲得k1,就知道“反饋”時(shí)隙和“調(diào)度”時(shí)隙的間隔(k0+k1)。如果配置PDSCH的“重復(fù)發(fā)送”,間隔增加N_repeat_PDSCH–1時(shí)隙。同一時(shí)隙反饋的DCI(PDCCH),UE按時(shí)間順序進(jìn)行記錄。

如果配置載波聚合,UE在多個(gè)小區(qū)監(jiān)聽PDCCH。UE在所有小區(qū)、激活BWP、搜索空間范圍內(nèi)的{小區(qū),PDCCH監(jiān)聽時(shí)機(jī)}監(jiān)聽,先按照小區(qū)順序記錄PDCCH監(jiān)聽時(shí)機(jī)相同(m相同)的PDCCH,再按照時(shí)間順序記錄PDCCH監(jiān)聽時(shí)機(jī)不同(m不同)的PDCCH,結(jié)合SPS配置,就知道“動(dòng)態(tài)碼本”的長(zhǎng)度了。以下圖為例,在時(shí)域維度上,共有M=4個(gè)PDCCH監(jiān)聽時(shí)機(jī),在分量(載波)維度上,共有N_DL_cells=3個(gè)小區(qū),實(shí)際共接收8個(gè)(和時(shí)隙n關(guān)聯(lián))的DCI(PDCCH),那么,未包含SPSPDSCH反饋的“動(dòng)態(tài)碼本”的長(zhǎng)度就為8。由上可見,如果UE使用“動(dòng)態(tài)碼本”,反饋位數(shù)和“下行傳輸”數(shù)量對(duì)應(yīng),可以大幅減少反饋開銷。問(wèn)題是,如果UE漏檢PDCCH,反饋位數(shù)和“下行傳輸”數(shù)量不對(duì)應(yīng),gNB怎么知道哪個(gè)對(duì)哪個(gè)?和LTETDD相似,在NR中,gNB對(duì)DCI進(jìn)行計(jì)數(shù),并通過(guò)DAI(DownlinkAssignmentIndicator)告知UE。

在LTETDD中,V_UL_DAI指示HARQ反饋窗口包含“下行傳輸”的總數(shù)(包含SPSPDSCH),eNB通過(guò)上行DCI發(fā)送;V_DL_DAI指示截止到當(dāng)前子幀,HARQ反饋窗口包含“下行DCI”的總數(shù)(不包含SPSPDSCH),eNB通過(guò)下行DCI發(fā)送。簡(jiǎn)單的說(shuō),V_DL_DAI是“計(jì)數(shù)”(或序數(shù)、報(bào)數(shù),差不多意思),V_UL_DAI是“總數(shù)”——如果eNB(在特定子幀)沒有發(fā)送上行DCI,UE無(wú)法獲得V_UL_DAI,只能通過(guò)V_DL_DAI判斷是否漏檢PDCCH,如果漏檢最后的數(shù)個(gè)PDCCH,UE也無(wú)法發(fā)現(xiàn)(可參考《NRHARQ(四)》)。

和LTETDD相似,NR也有兩種DAI:counterDAI和totalDAI,這里簡(jiǎn)稱為cDAI和tDAI。顧名思義,cDAI和V_DL_DAI相似,表示“計(jì)數(shù)”;tDAI和V_UL_DAI相似,表示“總數(shù)”——至少名字比LTE起的好多了??赡芪×薒TETDD的教訓(xùn),NR沒把希望放在1個(gè)上行DCI上,在下行DCI把cDAI和tDAI都告訴UE。cDAI和V_DL_DAI意義相同,gNB每發(fā)送一個(gè)下行DCI就加1,就像向UE“報(bào)數(shù)”。tDAI表示的“總數(shù)”和V_UL_DAI略有差異。假如m表示PDCCH監(jiān)聽時(shí)機(jī)索引(0<=m<M),tDAI表示從搜索空間開始,截止到當(dāng)前PDCCH監(jiān)聽時(shí)機(jī),gNB發(fā)送(和時(shí)隙n關(guān)聯(lián)的)下行DCI的“總數(shù)”。在同一PDCCH監(jiān)聽時(shí)機(jī)(m相同)中,tDAI相同,tDAI跟隨PDCCH監(jiān)聽時(shí)機(jī)變化。以上圖為例,m為0、1、2、3時(shí),tDAI分別為3、5、6、8。由于tDAI設(shè)計(jì)的變化,UE可以更好的了解“下行傳輸”的全貌,對(duì)是否丟失“下行傳輸”,以及丟失哪些“下行傳輸”做出更準(zhǔn)確的判斷和反饋。NR的DAI也不是完美的,原因和NR設(shè)計(jì)“動(dòng)態(tài)碼本”一樣——減少開銷。說(shuō)到底,UE按照gNB指示使用“動(dòng)態(tài)碼本”,減少反饋開銷是gNB的本意(你(UE)不想多說(shuō),我(gNB)還不想多聽呢)。和LTE相似,為了減少DCI(PDCCH)開銷,NR也只用2位表示cDAI或tDAI,可能會(huì)給UE增加一點(diǎn)困難。同時(shí),DCI1_1包含cDAI(前兩位)和tDAI(后兩位),但DCI1_0只包含cDAI(還能再省點(diǎn)嗎)。

關(guān)于“動(dòng)態(tài)碼本”生成,協(xié)議給了一段“偽代碼”。UE先初始化變量,服務(wù)小區(qū)數(shù)量為N_DL_cells,c為小區(qū)索引,初始值為0;PDCCH監(jiān)聽時(shí)機(jī)數(shù)量為M,m為PDCCH監(jiān)聽時(shí)機(jī)索引,初始值為0;Vtemp和Vtemp2作為記錄cDAI和tDAI變化的臨時(shí)變量,初始值為0,由于只用2位表示DAI,cDAI和tDAI每增加4翻轉(zhuǎn)一次,j作為記錄DAI翻轉(zhuǎn)次數(shù)的臨時(shí)變量,初始值為0?!皠?dòng)態(tài)碼本”長(zhǎng)度為O_ACK。UE根據(jù)接收的“下行傳輸”生成反饋(ACK或NACK),寫入“動(dòng)態(tài)碼本”對(duì)應(yīng)的“位”,這些“位”的索引構(gòu)成集合Vs,初始值為空集——反過(guò)來(lái),Vs以外的“位”對(duì)應(yīng)丟失的“下行傳輸”,反饋為NACK。接著,UE可對(duì)PDCCH監(jiān)聽時(shí)機(jī)進(jìn)行遍歷(表達(dá)式1),由上,m=0表示時(shí)間最早的PDCCH監(jiān)聽時(shí)機(jī)。對(duì)于特定的PDCCH監(jiān)聽時(shí)機(jī)(m),UE對(duì)(下行)小區(qū)進(jìn)行遍歷(表達(dá)式2)。對(duì)于特定的小區(qū)(c),如果發(fā)生BWP切換,UE跳過(guò)這個(gè)小區(qū),不進(jìn)行任何操作,否則,如果在“小區(qū)c+PDCCH監(jiān)控時(shí)機(jī)m”有(和時(shí)隙n關(guān)聯(lián)的)PDCCH,UE執(zhí)行PartA和PartB。PartA將cDAI和tDAI記錄到變量Vtemp、Vtemp2和j。Vtemp用于記錄cDAI(模塊2),cDAI只有2位,每增加4翻轉(zhuǎn)一次,為了推算cDAI實(shí)際對(duì)應(yīng)的PDCCH數(shù)量,增加變量j記錄翻轉(zhuǎn)次數(shù)。如果cDAI小于Vtemp(上一個(gè)cDAI),說(shuō)明cDAI翻轉(zhuǎn)一次,j加1(模塊1),再將cDAI賦值給Vtemp(模塊2)。Vtemp2用于記錄tDAI,如果tDAI為空(DCI1_0),UE將cDAI賦值給Vtemp2(模塊3a),如果tDAI不為空,UE將tDAI賦值給Vtemp2(模塊3b)。PartB對(duì)實(shí)際接收的“下行傳輸”生成HARQ反饋,放置在“動(dòng)態(tài)碼本”對(duì)應(yīng)的“位”,并將這些“位”記錄在集合Vs。根據(jù)空分復(fù)用(MaxNrofCodeWordsScheduledByDCI)和反饋綁定(HARQACKSpatialBundlingPUCCH)的情況,分為3個(gè)場(chǎng)景:1、空分復(fù)用,每個(gè)“下行傳輸”生成2位反饋;2、空分復(fù)用+反饋綁定,每個(gè)“下行傳輸”生成1位反饋,結(jié)果為2個(gè)TB的反饋的邏輯“與”;3、其他場(chǎng)景,每個(gè)“下行傳輸”生成1位反饋。

UE根據(jù)j和Vtemp2確定“動(dòng)態(tài)碼本”長(zhǎng)度(未包含SPSPDSCH反饋)。Vtemp只可能由cDAI賦值,Vtemp2還可能由tDAI賦值,且Vtemp2在Vtemp之后賦值,如果Vtemp2小于Vtemp,說(shuō)明tDAI可能比cDAI多翻轉(zhuǎn)一次,此時(shí)j加1——為什么把這一步放在循環(huán)之外呢?個(gè)人理解,UE根據(jù)實(shí)際接收的“下行傳輸”生成反饋時(shí),j應(yīng)為cDAI翻轉(zhuǎn)次數(shù)(UE收到的每個(gè)cDAI都對(duì)應(yīng)一個(gè)實(shí)際接收的DCI),在計(jì)算“動(dòng)態(tài)碼本”長(zhǎng)度O_ACK時(shí),j應(yīng)為tDAI翻轉(zhuǎn)次數(shù)。如果空分復(fù)用,且沒有反饋綁定,O_ACK為2x(4j+Vtemp2),否則,O_ACK為4j+Vtemp2(模塊1)。UE獲得O_ACK后,將“動(dòng)態(tài)碼本”除去Vs之后的“位”全部設(shè)置為NACK(模塊2)——對(duì)應(yīng)丟失的“下行傳輸”。最后,如果激活SPSPDSCH,對(duì)各個(gè)小區(qū)的SPSPDSCH各生成1位反饋,附在“動(dòng)態(tài)碼本”的最后。以上是我想象出來(lái)的“下行傳輸”和“動(dòng)態(tài)碼本”,gNB共發(fā)送8個(gè)DCI和1個(gè)SPSPDSCH,MaxNrofCodewordsScheduledByDCI為1,UE丟失1個(gè)“下行傳輸”。由j=1,Vtemp2=4,NSPS=1,O_ACK=4x1+4+1=9,“動(dòng)態(tài)碼本”共9位,最后1位對(duì)應(yīng)SPSPDSCH反饋,第4位為NACK,其他位置由PDSCH解碼結(jié)果確定。.NRHARQ(二)這一篇繼續(xù)講HARQ的相關(guān)概念。在LTE中,eNB和UE地位不是對(duì)等的,無(wú)論上行傳輸還是下行傳輸,PUSCH或PDSCH都是由eNB分配,并通過(guò)DCI(DownlinkControlInformation)指示的(RAR除外)——包括HARQ重傳占用的資源。eNB控制資源在時(shí)域和頻域的分布,根據(jù)重傳和前一次傳輸(初傳或重傳)的關(guān)系,在時(shí)域上,HARQ分為同步(synchronous)和異步(asynchronous)兩類,在頻域上,HARQ分為自適應(yīng)(adaptive)和非自適應(yīng)(non-adaptive)兩類。

簡(jiǎn)單的說(shuō),“同步HARQ”指重傳在前一次傳輸(初傳或重傳)之后的固定Timing發(fā)送,反過(guò)來(lái),“異步HARQ”指重傳的Timing是可變的?!胺亲赃m應(yīng)HARQ”指重傳的傳輸參數(shù)(PRB和Qm等)必須和前一次傳輸相同,反過(guò)來(lái),“自適應(yīng)HARQ”指重傳的傳輸參數(shù)可以和前一次傳輸不同。顯然,“同步HARQ”和“非自適應(yīng)HARQ”相對(duì)簡(jiǎn)單,而“異步HARQ”和“自適應(yīng)HARQ”相對(duì)復(fù)雜。在LTE中,上行傳輸使用同步、非自適應(yīng)或自適應(yīng)HARQ;下行傳輸使用異步、自適應(yīng)HARQ。在NR中,上行傳輸和下行傳輸都使用異步、自適應(yīng)HARQ。

先看上行傳輸。

UE通過(guò)動(dòng)態(tài)或半靜態(tài)調(diào)度(SPS,Semi-PermanentScheduling)獲得ULGrant(上行授權(quán)),根據(jù)HARQ進(jìn)程的NDI(NewDataIndicator)決定PUSCH用于初傳(InitialTransmission)還是重傳(Retransmission)。對(duì)于初傳,UE根據(jù)MCS(ModulationandCodingScheme,確定碼率(R)、TB大?。═BS)和調(diào)制階數(shù)(Qm),可參考《NRPDSCH(五)》)構(gòu)成和處理TB,在指示的PUSCH(PRB)發(fā)送TB。eNB對(duì)接收TB進(jìn)行CRC校驗(yàn),如果校驗(yàn)成功,且UE還有上行數(shù)據(jù)要發(fā)送(BSR),指示UE發(fā)送新的TB,如果校驗(yàn)失敗,指示UE重傳當(dāng)前TB(RV可能不同)。我們更關(guān)心校驗(yàn)失敗場(chǎng)景(好變態(tài))。在時(shí)域上,LTE的上行傳輸使用同步HARQ,重傳在前一次傳輸(或收到HARQ反饋)之后的固定Timing發(fā)送——在FDD中,重傳Timing總是在前一次傳輸?shù)?個(gè)子幀之后(k=4);在TDD中,重傳Timing和TDDUL/DLConfiguration相關(guān)——在3GPPTS36.213的表格8-2中,數(shù)字(k)標(biāo)注位置為UE接收PHICH(非自適應(yīng)HARQ)或PDDCH(自適應(yīng)HARQ)的子幀n(下行子幀或特殊子幀),UE在k子幀之后(n+k)重傳。在上行傳輸中,eNB發(fā)送反饋的Timing是確定的。在FDD中,如果eNB在上行子幀i–4接收PUSCH,在上行子幀i發(fā)送反饋(k=4)。在TDD中,eNB發(fā)送反饋的Timing和TDDUL/DLConfiguration相關(guān)——在3GPPTS36.213的表格8.3-1中,數(shù)字(k)標(biāo)注位置為eNB發(fā)送反饋的子幀i(下行子幀或特殊子幀),對(duì)應(yīng)UE在k子幀之前(i-k)發(fā)送的PUSCH。在上行傳輸中,重傳和反饋的Timing都是確定的,特定子幀只能用于特定HARQ進(jìn)程,無(wú)論初傳還是重傳,DCI都不需包含HARQProcessnumber,這有助于減少開銷。在頻域上,如果eNB希望UE使用原有的傳輸參數(shù)重傳(非自適應(yīng)HARQ),通過(guò)PHICH(PhysicalHybrid-ARQIndicatorChannel)向UE返回NACK——每個(gè)TTI的每個(gè)上行TB對(duì)應(yīng)一個(gè)PHICH,如果上行傳輸使用空分復(fù)用(兩個(gè)TB),則需要兩個(gè)PHICH。可見,如果上行傳輸使用非自適應(yīng)HARQ,下行控制只占用PHICH,不占用PDCCH,這可以進(jìn)一步減少開銷。換句話說(shuō),eNB只要“搖搖頭”(NACK),UE就啥都懂了——一切盡在不言中。同步HARQ的重傳Timing是固定的,如果初傳使用的PRB和PRACH或MSG3的資源沖突,或eNB希望(給其他UE)分配連續(xù)的PUSCH資源,就不能使用非自適應(yīng)HARQ了,因?yàn)镠ARQ重傳的優(yōu)先級(jí)最低(沒面子)。此時(shí),eNB通過(guò)PDCCH發(fā)送DCI,指示UE使用新的PRB重傳。有趣的是,盡管eNB解碼失敗,但在PHICH返回ACK,而不是NACK——因?yàn)椤皻J差”(DCI)也可能翻船,萬(wàn)一UE漏檢PDCCH,同時(shí)eNB返回NACK,UE會(huì)使用非自適應(yīng)HARQ,可能導(dǎo)致PRB資源沖突。如果eNB返回ACK,UE頂多誤以為eNB解碼成功,這可以通過(guò)RLC重傳挽救。還有一種特殊場(chǎng)景,eNB決定使用自適應(yīng)HARQ,但暫時(shí)無(wú)法分配重傳所需的PDCCH或PUSCH(最近手頭有點(diǎn)緊),可以只在PHICH返回ACK,但暫時(shí)不發(fā)送PDCCH。eNB等待合適的時(shí)機(jī),再以自適應(yīng)HARQ方式通知UE(我胡漢三又回來(lái)啦)——這種方式稱為“延遲重傳”。可見,即使UE從PHICH收到ACK,也不能認(rèn)為eNB解碼成功,還要看是否收到PDCCH,再?zèng)Q定是否清空HARQBuffer。

由上,如果同時(shí)支持“自適應(yīng)HARQ”和“非自適應(yīng)HARQ”,同一上行子幀(PDSCH)對(duì)應(yīng)的PHICH和PDCCH最好有相同的Timing,即在同一下行子幀發(fā)送。如果UE從PHICH收到NACK還好,必然是非自適應(yīng)HARQ,不會(huì)造成誤會(huì),如果從PHICH收到ACK,UE需要根據(jù)PDCCH確定eNB是解碼成功,還是指示UE自適應(yīng)HARQ(解碼失敗),UE早點(diǎn)確定,可以早點(diǎn)對(duì)HARQBuffer進(jìn)行處理(好像也不要緊,也許有更有意義的作用吧)。無(wú)論初傳還是重傳,UE要先確定MCS和RV(RedundancyVersion)。對(duì)于初傳,eNB通過(guò)DCI指示MCS和RV,MCS取值為0~28,RV總是為0(用于上行調(diào)度的DCIformat0/4沒有RV字段,RV由MCS查表獲得);對(duì)于(上行傳輸?shù)模┲貍?,UE總是沿用上一次傳輸?shù)腗CS(PRB和Qm不變),RV取決于HARQ類型。對(duì)于非自適應(yīng)HARQ,RV按照0、2、3、1順序選擇;對(duì)于自適應(yīng)HARQ,eNB通過(guò)DCI指示“MCS”——但這不是真正的MCS(前面提到,重傳的MCS沿用前一次傳輸?shù)腗CS),用于間接的指示RV,“MCS”=29、30、31,分別對(duì)應(yīng)RV=1、2、3。

對(duì)于上行傳輸?shù)腡M2,DCI可能調(diào)度2個(gè)TB(空分復(fù)用),UE通過(guò)MCS確定某個(gè)TB是否去使能(disable),以免“浪費(fèi)感情”。如果UE收到DCIformat0,TB2總是去使能的,PUSCH只用于TB1;如果UE收到DCIformat4,在N_PRB=1時(shí),MCS為28的TB是去使能的,在N_PRB>1時(shí),MCS為0的TB是去使能的。如果兩個(gè)TB都是使能的,TB1和CW0對(duì)應(yīng),TB2和CW1對(duì)應(yīng);如果一個(gè)TB是去使能的,使能的TB總是和CW0對(duì)應(yīng)(CW是Codeword簡(jiǎn)寫,碼字)。

對(duì)于使能的TB,UE還要判斷PUSCH用于初傳還是重傳。對(duì)于動(dòng)態(tài)調(diào)度(C-RNTI加擾)的傳輸,UE遵循此前提到的原則:如果DCI攜帶的NDI和HARQ進(jìn)程的前一次傳輸相比發(fā)生翻轉(zhuǎn)(NDIToggled),或HARQ進(jìn)程的HARQBuffer是“空”的(第一次使用這個(gè)HARQ進(jìn)程傳輸),PUSCH用于初傳,否則PUSCH用于(自適應(yīng))重傳。

半靜態(tài)調(diào)度(SPSC-RNTI加擾)則有些不同,UE不需要比較NDI——如果DCI攜帶的NDI為0,UE就認(rèn)為HARQ進(jìn)程的NDI發(fā)生翻轉(zhuǎn),PUSCH用于初傳,如果DCI攜帶的NDI為1,UE就認(rèn)為HARQ進(jìn)程的NDI沒有翻轉(zhuǎn),PUSCH用于(自適應(yīng))重傳。如果是上行SPS激活后的周期性PUSCH傳輸,或半靜態(tài)調(diào)度(SPSC-RNTI加擾)的HARQ進(jìn)程又被用于動(dòng)態(tài)調(diào)度(C-RNTI加擾),UE也認(rèn)為HARQ進(jìn)程的NDI發(fā)生翻轉(zhuǎn),PUSCH用于初傳。MSG3的HARQ更為特殊。如圖所示,CBRA(ContentionBasedRandomAccess,基于競(jìng)爭(zhēng)的隨機(jī)接入)包括4個(gè)步驟:MSG1、MSG2、MSG3、MSG4,可參考《NR的隨機(jī)接入(二)》。MSG3初傳的PUSCH是從RAR(MSG2)獲得的。RAR攜帶TC-RNTI,如果UE后續(xù)收到TC-RNTI加擾的PDCCH(ULGrant),對(duì)應(yīng)的PUSCH用于MSG3的自適應(yīng)重傳。可見,UE完全無(wú)視NDI,通過(guò)RNTI(RA-RNTI或TC-RNTI)確定PUSCH用于MSG3的初傳還是(自適應(yīng))重傳。另外,根據(jù)3GPPTS36.321的5.3.1章節(jié)和5.4.1章節(jié)描述,UE總是優(yōu)先嘗試接收C-RNTI或TC-RNTI加擾的PDCCH(動(dòng)態(tài)調(diào)度),如果沒有收到,才會(huì)嘗試接收SPSC-RNTI加擾的PDCCH(半靜態(tài)調(diào)度),上下行相同。

再看下行傳輸。

eNB通過(guò)動(dòng)態(tài)或半靜態(tài)調(diào)度發(fā)送DLAssignment(下行分配),根據(jù)MCS和RV構(gòu)成和處理TB,在(同一子幀的)PDSCH(PRB)發(fā)送TB。UE在指示的PDSCH接收TB,并進(jìn)行CRC校驗(yàn)。如果校驗(yàn)成功,UE向eNB返回ACK,如果校驗(yàn)失敗,UE向eNB返回NACK。和上行傳輸不同,下行傳輸沒有類似PHICH的HARQ反饋信道,如果UE在反饋Timing有PUSCH可用,通過(guò)PUSCH反饋ACK/NACK(搭個(gè)便車),否則通過(guò)PUCCH反饋。同樣的,我們更關(guān)心校驗(yàn)失敗場(chǎng)景。在時(shí)域上,LTE的下行傳輸使用異步HARQ,重傳Timing不是固定的,UE不知道eNB什么時(shí)候會(huì)重傳,直到收到新的指示(PDCCH)。對(duì)于異步HARQ,由于HARQ進(jìn)程無(wú)法從Timing推導(dǎo),DCI必須包含HARQProcessnumber。同時(shí),LTE的下行傳輸使用自適應(yīng)HARQ,UE對(duì)重傳“一無(wú)所知”,完全依賴于eNB的指示(PDCCH)。

不過(guò),UE發(fā)送反饋的Timing依然是確定的。在FDD中,如果UE在下行子幀n–4接收PDSCH(或指示下行SPS釋放的PDCCH),在上行子幀n發(fā)送反饋(k=4)。在TDD中,UE發(fā)送反饋的Timing和TDDUL/DLConfiguration相關(guān)——在3GPPTS36.213的表格-1中,數(shù)字(k)標(biāo)注位置為UE發(fā)送反饋的子幀n(都是上行子幀),對(duì)應(yīng)UE在k子幀之前(n-k)接收的PDSCH——如果上行子幀數(shù)量較少,部分上行子幀對(duì)應(yīng)多個(gè)下行子幀或特殊子幀(這也是用n-k,而不是n+k表示的原因),多個(gè)k組成集合K。在TDD的上行傳輸中,eNB可以通過(guò)下行子幀(D)或特殊子幀(S)發(fā)送反饋,而在TDD的下行傳輸中,UE只能通過(guò)上行子幀(U)發(fā)送反饋,不包括特殊子幀。特殊子幀的DwPTS持續(xù)時(shí)間足夠長(zhǎng),可以用于發(fā)送PHICH(或PCFICH、PDCCH、PDSCH)——正常CP的特殊子幀配置0和5,以及擴(kuò)展CP的特殊子幀配置0和4除外,因?yàn)镈wPTS持續(xù)時(shí)間不夠長(zhǎng),只有3個(gè)OFDM符號(hào)。同理,特殊子幀的UpPTS持續(xù)時(shí)間都很短,不可以用于發(fā)送反饋。

在頻域上,LTE的下行傳輸使用自適應(yīng)HARQ,重傳可以使用不同MCS和PRB,結(jié)合異步HARQ,eNB完全控制重傳的資源,可以避免和系統(tǒng)消息或MBSFN子幀產(chǎn)生沖突。通常來(lái)說(shuō),UE可以從初傳DCI的MCS推導(dǎo)TBS,不過(guò),如果初傳的反饋為DTX,eNB無(wú)法確定UE是沒有收到DCI(漏檢PDCCH),還是PDSCH接收質(zhì)量太差,重傳DCI還是需要通過(guò)MCS顯性的指示TBS,MCS只能為0~28。如果初傳的反饋為NACK,重傳DCI的“MCS”可為29~31,沿用前一次傳輸?shù)腡BS(UE知道)——和上行DCI不同,下行DCI包含單獨(dú)RV字段,“MCS”不用于指示RV,而用于指示Qm,“MCS”=29、30、31,分別對(duì)應(yīng)Qm=2、4、6。通常來(lái)說(shuō),重傳TBS不變,同一TB的不同RV才可以“軟合并”。如果UE發(fā)現(xiàn)重傳TBS(根據(jù)MCS和N_PRB推導(dǎo))和上一次傳輸不同,UE清空HARQBuffer,替換為新接收數(shù)據(jù)。在自適應(yīng)HARQ中,如果重傳DCI的MCS為29~31,由于TBS不變,Qm變小則N_PRB變大,Qm變大則N_PRB變小。

和上行傳輸相似,在下行傳輸中,DCI可能調(diào)度2個(gè)TB(空分復(fù)用),UE通過(guò)MCS和RV確定某個(gè)TB是否去使能。如果UE配置了TM3/4/8/9/10,且收到DCIformat1A,TB2是去使能的,PDSCH只用于TB1;如果UE收到DCIformat2/2A/2B/2C/2D,MCS為0且RV為1的TB是去使能的。對(duì)于使能的TB,UE還要判斷PDSCH用于初傳還是重傳,規(guī)則和上行傳輸相同,這里不再重復(fù)。和上行傳輸相似,在下行傳輸中,如果兩個(gè)TB都是使能的,TB1和CW0對(duì)應(yīng),TB2和CW1對(duì)應(yīng);如果一個(gè)TB是去使能的,使能的TB總是和CW0對(duì)應(yīng)。不過(guò),對(duì)于DCIformat2/2A,還要留意TBtoCWswapflag。如果兩個(gè)TB都是使能的,且TBtoCWswapflag為1,TB和CW的映射關(guān)系要“swap”一下——TB1和CW1對(duì)應(yīng),TB2和CW0對(duì)應(yīng),這是為了平均2個(gè)CW的信道質(zhì)量。需要注意的是,在UE側(cè),PUCCH或PUSCH對(duì)ACK/NACK進(jìn)行信道編碼時(shí),是基于CW(而不是TB)處理的,eNB從PUCCH或PUSCH接收ACK/NACK時(shí),也要留意是否需要“swap”一下(反轉(zhuǎn)再反轉(zhuǎn)),以獲得TB1和TB2對(duì)應(yīng)的ACK/NACK。

最后,無(wú)論上行傳輸還是下行傳輸,eNB都會(huì)設(shè)定HARQ最大重傳次數(shù)(MAC沒必要一條路走到黑)。由于RV只有4個(gè),最大重傳次數(shù)沒必要過(guò)大。對(duì)于上行傳輸,eNB通過(guò)MaxHARQTx和MaxHARQMSG3Tx(隨機(jī)接入)告知UE;對(duì)于下行傳輸,eNB就沒必要告知UE了,UE不知道最大重傳次數(shù),只能根據(jù)NDI確定PDSCH用于初傳還是重傳,是清空HARQBuffer還是進(jìn)行“軟合并”。NRHARQ(九)這一篇講CBG(CodeBlockGroup)的傳輸和反饋。數(shù)據(jù)傳輸是個(gè)復(fù)雜的過(guò)程,TB(TransportBlock)經(jīng)過(guò)一系列處理,才會(huì)“裝載”到PDSCH或PUSCH傳輸。以下行傳輸為例,發(fā)送方(gNB)有12個(gè)處理步驟,這里只關(guān)注第3步:CodeBlockSegmentation&CRCattachment,即“碼塊分割”和“碼塊CRC添加”。從某種意義來(lái)說(shuō),“碼塊分割”是信道編碼的一部分,因?yàn)镃B(CodeBlock)大小取決于信道編碼類型。在NR中,DL-SCH信道編碼采用LDPC(LowDensityParityCheck)碼,最大CB大小記為Kcb。按照TBS(A)和期望碼率(R)選擇BaseGraph(和校驗(yàn)矩陣的母矩陣H關(guān)聯(lián)),BaseGraph1的Kcb為8448,BaseGraph2的Kcb為3840(可參考《NRPDSCH(三)》)。如果TB+CRC長(zhǎng)度(B)大于Kcb,對(duì)TB+CRC進(jìn)行“碼塊分割”,CB數(shù)量記為C。更具體的,如果B>Kcb,C=B/(Kcb–L)(向上取整),L為CB的CRC長(zhǎng)度,取值為24。接收方可根據(jù)CB的CRC檢驗(yàn)CB是否無(wú)誤。在LTE中,只要一個(gè)CB出錯(cuò),發(fā)送方就需要重傳整個(gè)TB(一顆老鼠屎,壞了一鍋粥)。在NR中,PDSCH和PUSCH支持以CBG(CodeBlockGroup)為粒度進(jìn)行傳輸和反饋,如果一個(gè)CB出錯(cuò),發(fā)送方只需要重傳對(duì)應(yīng)的CBG,可以節(jié)省重傳的物理資源,特別是在TBS較大的情況下。CBG傳輸(及重傳)需要UE能力支持,如果RRC配置了CodeBlockGroupTransmission,每個(gè)TB(+TB的CRC)劃分為M個(gè)CBG——M=min(N,C)。N由RRC參數(shù)MaxCodeBlockGroupsPerTransportBlock確定,取值可為n2、n4、n6、n8。如果DCI可以調(diào)度兩個(gè)TB(RRC參數(shù)MaxNrofCodeWordsScheduledByDCI為2),N最大可為n4——因?yàn)橐晕粓D方式(bitmap)表示CBG傳輸狀態(tài)的CBGTI(CBGTransmissionInformation)共有8位,每個(gè)TB(CW)只能分到4位。如果N>C,則M=C(M可取的最大值),1個(gè)TB劃分為C個(gè)CBG,1個(gè)CBG只包含1個(gè)CB——M越大,CBG包含CB數(shù)量越少,效率越高。從這個(gè)角度看,以CB為粒度進(jìn)行傳輸和反饋,可以進(jìn)一步節(jié)省PDSCH資源,但會(huì)增加DCI(CBGTI)和HARQ反饋的開銷,占用更多PDCCH資源,因而,以CBG(比TB小,比CB大)為粒度可以在兩者之間取得較好的平衡。如果C>M(N),由于C不一定被M整除,各CBG包含CB數(shù)量可能不同——M個(gè)CBG分為兩部分,前M1個(gè)CBG包含K1個(gè)CB,其他CBG包含K2個(gè)CB,K1=K2+1。舉個(gè)例子,如果N=8,C=27,M=min(8,27)=8。M1=mod(27,8)=3,C/M=27/8,K1為4,K2為3。于是,27個(gè)CB分為8個(gè)CBG,前3(M1)個(gè)CBG包含4(K1)個(gè)CB,其他CBG包含3(K2)個(gè)CB。對(duì)于同一TB,gNB和UE按照相同方式確定M、M1、K1、K2,即以相同方式劃分CBG,雙方對(duì)CBG的構(gòu)成形成共識(shí)(3GPPTS38.214:ACBGcontainsthesameCBsasintheinitialtransmissionoftheTB),才具備CBG重傳的條件。在NR中,只有DCI0_1(上行傳輸)和1_1(下行傳輸)支持CBG傳輸。在DCI中,CBGTI(CBGTransmissionInformation)表示傳輸(或重傳)的CBG;CBGFI(CBGFlushingOutInformation)表示CBGTI指示的CBG進(jìn)行“軟合并”還是“清空緩存”(3GPPTS38.214:CBGFIsetto0'indicatesthattheearlierreceivedinstancesofthesameCBGsbeingtransmittedmaybecorrupted,andCBGFIsetto1'indicatesthattheCBGsbeingretransmittedarecombinablewiththeearlierreceivedinstancesofthesameCBGs.)。在上行傳輸中,HARQ緩存在gNB上,清不清空自己知道就行了,DCI不需要攜帶CBGFI(給誰(shuí)看呢)。另外,CBG和特定TB關(guān)聯(lián),而DCI只包含1個(gè)HARQProcessNumber,對(duì)應(yīng)1個(gè)TB——這意味著,CBG重傳不能和CBG初傳混合,因?yàn)閷?duì)應(yīng)不同TB。

根據(jù)3GPPTS38.214描述,如果在PDSCH進(jìn)行CBG傳輸(CodeBlockGroupsTransmission),DCI1_1的CBGTI共NTBxN位,NTB對(duì)應(yīng)MaxNrofCodeWordsScheduledByDCI。如果NTB為2(存在空分復(fù)用可能),CBGTI前半部分(前N位)對(duì)應(yīng)第一個(gè)TB;后半部分(后N位)對(duì)應(yīng)第二個(gè)TB(如果存在)。在每一組(N位)中,前M位對(duì)應(yīng)M個(gè)CBG,MSB(最高位)對(duì)應(yīng)第一個(gè)CBG(0#)。對(duì)于初傳,UE可假定gNB發(fā)送TB的所有CBG。以上圖為例。DCI調(diào)度1個(gè)TB(CW)時(shí),NTB=1,N=8,1個(gè)TB最多分為8個(gè)CBG,示圖中CBGTI為“11111100”,表示TB1發(fā)送6個(gè)CBG,對(duì)應(yīng)CBG#0~#5;DCI調(diào)度2個(gè)TB(CW)時(shí),NTB=2,N=4,1個(gè)TB最多分為4個(gè)CBG,示圖中CBGTI為“11101110”,表示TB1發(fā)送3個(gè)CBG,對(duì)應(yīng)CBG#0~#2,TB2發(fā)送3個(gè)CBG,對(duì)應(yīng)CBG#0~#2。

CBG傳輸會(huì)增加HARQ反饋的開銷。如果沒用CBG,接收方對(duì)每個(gè)TB生成1位反饋(ACK/NACK),如果使用CBG,接收方對(duì)每個(gè)CBG生成1位反饋。如果CBG所有CB解碼成功,CBG反饋為ACK,如果至少1個(gè)CB解碼失敗,CBG反饋為NACK。對(duì)于CBGTI為“0”的位,即實(shí)際沒有傳輸(不存在)的CBG,接收方也生成NACK反饋。由上,即使實(shí)際發(fā)送的CBG數(shù)量小于N,每個(gè)TB的反饋位數(shù)也總是N。如果使用空分復(fù)用,UE分別生成兩個(gè)TB的N位反饋,并進(jìn)行串接。對(duì)于重傳的TB,如果某些CBG在此前的傳輸已經(jīng)解碼成功,UE對(duì)這些CBG生成ACK反饋。對(duì)于某個(gè)TB,如果UE對(duì)所有CBG解碼成功(根據(jù)CBCRC),但對(duì)TB解碼失?。ǜ鶕?jù)TBCRC),UE對(duì)所有CBG生成NACK反饋——UE無(wú)法判斷誤判哪個(gè)CBG(肯定有問(wèn)題,但不知道問(wèn)題在哪兒),只好請(qǐng)gNB全部進(jìn)行重傳。

如果使用“半靜態(tài)碼本”,對(duì)于配置CBG傳輸?shù)男^(qū)c,UE按照上述思路生成各個(gè)TB的反饋。在偽代碼中,UE對(duì)CBG序號(hào)進(jìn)行遍歷(從CBG#0開始),生成各個(gè)CBG的反饋——如果空分復(fù)用,UE先后生成兩個(gè)TB同一CBG序號(hào)(比如說(shuō),都為CBG#0)的反饋,放置到HARQ-ACK碼本時(shí),兩者相隔N位。從結(jié)果來(lái)看,就是將TB2各個(gè)CBG的反饋串接在TB1各個(gè)CBG的反饋之后,和上文對(duì)應(yīng)。在CBG的循環(huán)體之外,有一句j=j+NTBxN(j為HARQ碼本中的序號(hào)),這意味著,對(duì)于“配置”CBG傳輸(PDSCHCodeBlockGroupTransmission)的小區(qū)c的每個(gè)候選PDSCH,無(wú)論gNB是否“使用”CBG傳輸,UE都要生成NTBxN位反饋,包括gNB實(shí)際沒有傳輸?shù)暮蜻xPDSCH(生成NTBxN位NACK)。由上可見,對(duì)于“半靜態(tài)碼本”,CBG可視為特殊的“載波分量”,“配置”CBG傳輸會(huì)大幅增加HARQ開銷。以上圖為例,小區(qū)c=2配置CBG傳輸,假設(shè)NTBxN=4。gNB在候選PDSCHA“使用”CBG傳輸,UE相應(yīng)生成4位反饋,合情合理,gNB在候選PDSCHC“沒有使用”CBG傳輸,UE也要生成4位反饋,就有點(diǎn)不爽了,gNB在候選PDSCHB和D實(shí)際沒有傳輸,UE也要生成4位反饋,簡(jiǎn)直不能忍啊。

如果使用“動(dòng)態(tài)碼本”,UE將“沒有配置”CBG傳輸和“配置”CBG傳輸?shù)男^(qū)分為兩部分,數(shù)量分別為N_DL,TB_Cells和N_DL,CBG_Cells。UE分別對(duì)“沒有使用”CBG傳輸(或稱為TB傳輸)和“使用”CBG傳輸?shù)南滦袀鬏敺謩e生成HARQ-ACK子碼本,再串接起來(lái)——相對(duì)應(yīng)的,TB傳輸和CBG傳輸各有一套tDAI和cDAI,分別對(duì)DCI進(jìn)行計(jì)數(shù)。注意,“配置”CBG傳輸不等于“使用”CBG傳輸。因此,TB傳輸?shù)淖哟a本不僅包括N_DL,TB_Cells小區(qū)的DCI1_0和1_1,還包括N_DL,CBG_Cells小區(qū)(“配置”CBG傳輸)的DCI1_0(“沒有使用”CBG傳輸)。如果多個(gè)小區(qū)配置CBG傳輸,不同小區(qū)的NTB,c及N,c可能不同,如果使用“半靜態(tài)碼本”,UE對(duì)每個(gè)候選PDSCH生成的反饋位數(shù)(NTB,cxN,c)也可能不同;如果使用“動(dòng)態(tài)碼本”,UE對(duì)每個(gè)在CBG傳輸小區(qū)的DCI1_1(對(duì)應(yīng)的下行傳輸)生成的反饋位數(shù)是相同的——取值為所有CBG傳輸小區(qū)的NTB,cxN,c的最大值。對(duì)于特定的CBG傳輸小區(qū)c,如果NTB,cxN,c小于最大值,后面不足的位生成NACK反饋。

以下圖為例,UE共有3個(gè)服務(wù)小區(qū),小區(qū)c=0“沒有配置”CBG傳輸,NTB為2;小區(qū)c=1和c=2“配置”CBG傳輸,NTB均為1,N分別為4和2;{PDCCH監(jiān)聽時(shí)機(jī),小區(qū)}-對(duì)A、B、C、D“使用”TB傳輸(B在CBG傳輸小區(qū),但使用DCI1_0),H、I、J、K“使用”CBG傳輸(DCI1_1)。由上,UE有1個(gè)TB傳輸小區(qū)和2個(gè)CBG傳輸小區(qū),分兩組分別計(jì)數(shù)(cDAI和tDAI),并分別生成HARQ-ACK子碼本。在CBG傳輸小區(qū)的集合中(c=1和c=2),NTB,cxN,c最大值為4。UE對(duì)TB傳輸各DCI(對(duì)應(yīng)下行傳輸)分別生成2位反饋,對(duì)CBG傳輸各DCI(對(duì)應(yīng)下行傳輸)分別生成4位反饋,對(duì)于c=2,NTBxN為2,小于最大值4,每個(gè)下行傳輸?shù)姆答伜?–2=2位為NACK。NRHARQ(六)這一篇開始講NR的HARQ-ACK碼本。在NR中,UE需要對(duì)“下行傳輸”發(fā)送HARQ反饋,和LTE相似,NR的“下行傳輸”包含動(dòng)態(tài)調(diào)度或半靜態(tài)調(diào)度的PDSCH(場(chǎng)景1或場(chǎng)景2a,PDSCHwithPDCCH),周期傳輸?shù)腟PSPDSCH(場(chǎng)景2b,onlyPDSCH)和“指示下行SPS釋放”的PDCCH(場(chǎng)景2c,onlyPDCCH)。如果UE檢測(cè)到“指示下行SPS釋放”的PDDCH,或接收PDSCH解碼成功,則返回ACK,如果UE接收PDSCH解碼失敗,則返回NACK。對(duì)于后兩部分,UE對(duì)1個(gè)PDSCH或PDCCH生成1位反饋,對(duì)于第一部分,如果UE沒有配置CBG(CodeBlockGroup)傳輸,UE對(duì)1個(gè)TB生成1位反饋,如果UE配置CBG傳輸(PDSCHCodeBlockGroupTransmission),UE對(duì)1個(gè)TB生成多位反饋——對(duì)應(yīng)不同CBG。為了突出重點(diǎn),CBG后面再講。

即使忽略CBG,UE也可能需要在1個(gè)PUCCH發(fā)送多位反饋。在LTETDD的下行傳輸中,如果“數(shù)據(jù)”子幀(下行子幀或特殊子幀)比“反饋”子幀(上行子幀)多,1個(gè)“反饋”子幀(可能)需要對(duì)應(yīng)多個(gè)“數(shù)據(jù)”子幀(可參考《NRHARQ(四)》),LTETDD這是迫于無(wú)奈(資源限制)。在NR中,由于k1可以靈活配置,盡管沒有LTETDD上下行配置的約束,1個(gè)“反饋”時(shí)隙依然可能對(duì)應(yīng)多個(gè)“數(shù)據(jù)”時(shí)隙(可參考《NRHARQ(五)》),這可就NR是自找的了。既然挖了坑,那就填吧。在R15中,1個(gè)時(shí)隙只包含1個(gè)攜帶HARQ-ACK的PUCCH(3GPPTS38.213:AUEdoesnotexpecttotransmitmorethanonePUCCHwithHARQ-ACKinformationinaslot.R16貌似取消了這個(gè)約束),UE需要通過(guò)HARQ-ACK碼本(Codebook)發(fā)送多位反饋。UE必須和gNB對(duì)HARQ-ACK碼本形成共識(shí),換句話說(shuō),gNB從某個(gè)上行時(shí)隙(nU)的PUCCH(或PUSCH)收到的HARQ反饋,位數(shù)和順序都需要符合gNB期望(UE不能答非所問(wèn)),否則傳輸會(huì)出現(xiàn)混亂。

在NR中,HARQ-ACK碼本分為兩個(gè)類型,協(xié)議稱為“Type1”和“Type2”,形象一些,這里稱為“半靜態(tài)碼本”和“動(dòng)態(tài)碼本”。gNB通過(guò)RRC參數(shù)PDSCHHARQACKCodebook配置HARQ-ACK碼本類型——“semi-static”表示“Type1”,“dynamic”表示“Type2”。HARQ-ACK碼本類型是PhysicalCellGroupConfig的必選參數(shù),gNB必須為UE選擇一種碼本,但在UE獲得配置之前(和gNB還沒形成共識(shí)),每次只會(huì)(只能)發(fā)送1位反饋。因而,本文提到的“下行傳輸”,DCI1_0或DCI1_1都是C-RNTI、MCS-C-RNTI或CS-RNTI加擾的?!鞍腱o態(tài)碼本”和“動(dòng)態(tài)碼本”就像華山派的“劍宗”和“氣宗”,走的完全是兩個(gè)路子。“半靜態(tài)碼本”根據(jù)PDSCH相關(guān)的RRC半靜態(tài)配置生成,“動(dòng)態(tài)碼本”根據(jù)下行DCI(PDCCH)動(dòng)態(tài)調(diào)度生成。換句話說(shuō),“半靜態(tài)碼本”,UE盯的是PDSCH,而“動(dòng)態(tài)碼本”,UE盯的是PDCCH(但反饋依然取決于PDSCH解碼)。打個(gè)比方,接收“下行傳輸”就像接子彈,如果盯的是飛行的子彈(PDSCH),你就是基努里維斯(黑客帝國(guó)),如果盯的是開槍的動(dòng)作(PDCCH),你就是陳佩斯(主角與配角)——但也不能老朱剛一抬手(PDCCH)你就倒地(HARQ-ACK)啊。對(duì)于PDSCHwithPDCCH(動(dòng)態(tài)調(diào)度或半靜態(tài)調(diào)度),UE以PDSCH或PDCCH為候選都可以,對(duì)于onlyPDSCH(周期傳輸?shù)腟PSPDSCH)或onlyPDCCH(指示下行SPS釋放),UE就要特殊對(duì)待了——如果使用“半靜態(tài)碼本”(盯PDSCH),“指示下行SPS釋放”的PDCCH的反饋,在碼本中的位置和周期傳輸?shù)腟PSPDSCH相同;如果使用“動(dòng)態(tài)碼本”(盯PDSCH),周期傳輸?shù)腟PSPDSCH的反饋放在碼本最后,反正頂多也就一位(和LTE相似,UE至多接收1個(gè)SPSPDSCH,3GPPTS38.213:AUEdoesnotexpecttobeindicatedtotransmitHARQ-ACKinformationformorethanoneSPSPDSCHreceptionsinasamePUCCH)。再打個(gè)比方,“下行傳輸”就像gNB向UE發(fā)送“當(dāng)日達(dá)”(哪天發(fā)送哪天到),gNB在每個(gè)月(時(shí)隙配置周期)的某幾天(slots)向UE發(fā)送包裹(PDSCH),發(fā)送前先電話通知(PDCCH)UE包裹會(huì)在幾天后(k0)發(fā)送,以及UE應(yīng)在收到幾天后(k1)返回結(jié)果。對(duì)于某個(gè)特殊日子,gNB可能只通知一次(指示下行SPS激活的PDCCH),此后每個(gè)月的同一天都會(huì)發(fā)送包裹(周期傳輸?shù)腟PSPDSCH),gNB取消也通過(guò)電話通知UE(指示下行SPS釋放的PDCCH)。

在特定的某一天(上行時(shí)隙),UE通過(guò)兩種方式返回結(jié)果:第一種方式,UE根據(jù)gNB此前發(fā)送的計(jì)劃表(PDSCH相關(guān)配置),對(duì)可能會(huì)有包裹(PDSCH)的每一天進(jìn)行監(jiān)測(cè),不管實(shí)際有沒有都進(jìn)行記錄(半靜態(tài)碼本);第二種方式,UE根據(jù)gNB的通知(PDCCH)監(jiān)測(cè)和記錄(動(dòng)態(tài)碼本),沒有包裹接收任務(wù)的日子,UE就可以歇著了。第一種方式記錄詳盡,但非常費(fèi)事(HARQ反饋開銷大,和我一樣啰嗦),反過(guò)來(lái),第二種方式比較省事,但需要考慮UE漏接電話(漏檢PDCCH)的風(fēng)險(xiǎn)。舉個(gè)例子。示圖中下行時(shí)隙的“下行傳輸”都在上行時(shí)隙nU反饋,如果使用“半靜態(tài)碼本”,UE對(duì)每個(gè)可能存在“下行傳輸”的時(shí)隙發(fā)送反饋,碼本長(zhǎng)度為5位(假設(shè)沒有空分復(fù)用和CBG傳輸),對(duì)于實(shí)際沒有“下行傳輸”的時(shí)隙,UE返回NACK——這有助于提高魯棒性,即使UE漏檢PDCCH,gNB也知道需要重傳;如果使用“動(dòng)態(tài)碼本”,UE只對(duì)PDCCH指示的時(shí)隙發(fā)送反饋,碼本長(zhǎng)度為3位,前兩位對(duì)應(yīng)PDSCHwithPDCCH,最后一位對(duì)應(yīng)SPSPDSCH,和LTE相似,為了規(guī)避UE漏檢PDCCH的風(fēng)險(xiǎn),gNB通過(guò)DAI(DownlinkAssignmentInformation)向UE傳遞PDCCH計(jì)數(shù)信息。

看上去挺簡(jiǎn)單。

實(shí)際上,示例忽略了很多細(xì)節(jié)。比如說(shuō),載波聚合(CarrierAggregation)、BWP切換(Change)、SCS配置(μDL和μUL的比值)、TDD上下行配置(D、S(或X)、U時(shí)隙和符號(hào)的數(shù)量)、是否支持同一時(shí)隙多次調(diào)度對(duì)候選PDSCH或PDCCH的影響;以及載波聚合、空分復(fù)用(MaxNrofCodewordsScheduledByDCI)、反饋綁定(HARQACKSpatialBundlingPUCCH/PUSCH)、CBG傳輸(PDSCHCodeBlockGroupTransmission)、重復(fù)發(fā)送(PDSCHAggregationFactor)對(duì)HARQ-ACK碼本的影響。比較好理解的是空分復(fù)用和反饋綁定。假設(shè)UE配置MaxNrofCodewordsScheduledByDCI為2,同一DCI可調(diào)度2個(gè)TB。如果沒有配置HARQACKSpatialBundlingPUCCH,UE對(duì)(1個(gè)PDSCH的)2個(gè)TB分別返回1位反饋;如果配置HARQACKSpatialBundlingPUCCH,UE對(duì)2個(gè)TB總共返回1位反饋,結(jié)果為兩個(gè)TB反饋的邏輯“與”——如果UE實(shí)際只收到1個(gè)TB,假定第二個(gè)TB反饋為ACK。

和LTETDD的下行傳輸相似,在NR中,同一上行時(shí)隙的PDSCH候選集也可稱為“HARQ反饋窗口”。不過(guò),在LTETDD中,“HARQ反饋窗口”不會(huì)重疊,在NR中,由于k1可以靈活配置,不同上行時(shí)隙的“HARQ反饋窗口”可能存在重疊(Overlap)。示圖是我想象的一種場(chǎng)景(先不管是否合理),k1集合為{9,8,7,4,3,2},U1的“HARQ反饋窗口”包括D1~D6的PDSCH候選集,U2的“HARQ反饋窗口”包含D4~D9的PDSCH候選集,可見D4~D6部分重疊。如果在實(shí)際調(diào)度中,gNB讓U1反饋D4~D6的PDSCH候選集,U2反饋D7~D9的PDSCH候選集,U2的“半靜態(tài)碼本”依然包含D4~D6的PDSCH候選集,但反饋都為NACK,gNB也知道這部分反饋是“不作數(shù)的”。對(duì)于“重復(fù)發(fā)送”的PDSCH(ifUEisprovidedPDSCHAggregationFactor),gNB在時(shí)隙n–N_repeat_PDSCH+1到時(shí)隙n連續(xù)發(fā)送的PDSCH(N_repeat_PDSCH可為n2、n4或n8),在“半靜態(tài)碼本”中,只有UE在時(shí)隙n+k(通過(guò)HARQACKfeedbackindicator和DLDataToULACK推導(dǎo))發(fā)送的反饋是“作數(shù)的”(gNB看這個(gè)就成),如果UE在時(shí)隙n+k以外的時(shí)隙對(duì)相關(guān)PDSCH發(fā)送反饋(可能因?yàn)镠ARQ反饋窗口重疊),結(jié)果都是NACK(gNB可以無(wú)視之)——無(wú)論UE對(duì)“重復(fù)發(fā)送”的PDSCH是否已經(jīng)解碼成功(UE已收到同一TB的多個(gè)RV,具備解碼條件)。最后,由于“半靜態(tài)碼本”開銷較大(特別是載波聚合、空分復(fù)用或CBG傳輸?shù)膱?chǎng)景),有時(shí)候gNB并不希望UE返回完整的“半靜態(tài)碼本”。在以下場(chǎng)景中,UE可能在PUCCH只返回一類“下行傳輸”的反饋(孫老師稱為“半靜態(tài)碼本的回退”):1、DCI1_0調(diào)度的SPSRelease,且DAI為1;2、DCI1_0調(diào)度的PDSCH接收,且DAI為1;3、周期傳輸?shù)腟PSPDSCH。NRHARQ(七)這一篇講NRHARQ的“半靜態(tài)碼本”。根據(jù)上一篇的思路,如果RRC配置使用“半靜態(tài)碼本”,第一步,UE找出PDSCH候選集,第二步,UE根據(jù)PDSCH候選集生成“半靜態(tài)碼本”。更具體的實(shí)現(xiàn),3GPPTS38.213分別給了兩段偽代碼(pseudo-code),這里解讀一下,看看BWP切換、載波聚合、上下行SCS、TDD上下行配置、空分復(fù)用、反饋綁定和CBG傳輸對(duì)“半靜態(tài)碼本”的影響。

先看第一步。

在特定的服務(wù)小區(qū)c,激活的DLBWP和ULBWP中,如果UE在時(shí)隙nU(上行時(shí)隙)通過(guò)PUCCH發(fā)送HARQ反饋,UE根據(jù)DLDatatoULACK(k1集合)、PDSCH時(shí)域資源分配表(k0、S、L)和上下行SCS配置,推導(dǎo)nU關(guān)聯(lián)的PDSCH候選集,再根據(jù)TDD上下行配置剔除“沖突”部分,就是UE需要生成HARQ反饋的PDSCH候選集(嚴(yán)格來(lái)說(shuō),是接收位置的候選集,這些位置不一定有UE的PDSCH)。

如果UE監(jiān)聽DCI1_0,且沒有監(jiān)聽DCI1_1,DLDatatoULACK為{1,2,3,4,5,6,7,8},如果UE監(jiān)聽DCI1_1,DLDatatoULACK由RRC配置獲得。PDSCH時(shí)域資源分配表由PDSCHConfigCommon和PDSCHConfig(如果后者存在,則為兩者的并集)獲得,沒有獲得RRC配置之前,UE使用預(yù)定義的PDSCH時(shí)域資源分配表A。上行SCS(PUCCH的SCS,由μUL表示)由激活ULBWP的BWPUplink獲得;下行SCS(PDSCH的SCS,由μDL表示)由激活DLBWP的BWPDownlink獲得——上行SCS和下行SCS可能不同。UE先初始化變量:MA,c表示PDSCH候選集(偽代碼的目標(biāo)輸出),初始值為空集;j表示PDSCH候選集中的索引,初始值為0;B只在UE支持同一時(shí)隙內(nèi)接收多個(gè)PDSCH時(shí)使用,初始值為空集;C(K1)表示k1集合的基數(shù),k表示k1集合中的索引,初始值為0——k1集合中k1按數(shù)值大小降序排列(可能和DLDatatoULACK順序不同)。舉個(gè)例子,如果DLDatatoULACK為{1,2,3,4},k1集合為{4,3,2,1},C(K1)為4,K1,0、K1,1、K1,2、K1,3分別為4、3、2、1。接著,UE對(duì)k1集合進(jìn)行遍歷(表達(dá)式1),由上,K1,0(k為0)為k1集合中數(shù)值最大的k1,表示和nU間隔最大的nD,即從最早出現(xiàn)的下行時(shí)隙開始。對(duì)于特定的k1,UE先判斷上行SCS和下行SCS是否相同,如果不同需要進(jìn)行時(shí)隙對(duì)齊(表達(dá)式2)——由上行時(shí)隙時(shí)長(zhǎng)=下行時(shí)隙時(shí)長(zhǎng)x2^(μDL–μUL),如果上行SCS小于下行SCS(μDL>μUL,μ越大SCS越大,時(shí)隙時(shí)長(zhǎng)越小),1個(gè)k1(參考時(shí)隙為上行時(shí)隙)對(duì)應(yīng)多個(gè)nD(下行時(shí)隙),需要對(duì)nD進(jìn)行遍歷(表達(dá)式3)。比如說(shuō),上行SCS為15kHz(μUL=0),下行SCS為30kHz(μDL=1),2^(μDL–μUL)=2,1個(gè)k1對(duì)應(yīng)2個(gè)下行時(shí)隙,nD分別為0和1。對(duì)于特定的下行時(shí)隙,如果(PDSCH所在的SCell的)下行BWP切換,或(PUCCH所在的Pcell的)上行BWP切換(條件4),則UE跳過(guò)這個(gè)nD,不進(jìn)行任何操作(對(duì)MA,c沒有貢獻(xiàn),不增加候選PDSCH),否則UE執(zhí)行PartA和PartB。

PartA對(duì)PDSCH時(shí)域資源分配表的行集合R進(jìn)行遍歷,剔除存在“沖突”的行。r表示R中的索引,對(duì)應(yīng)分配表的某一行(不同的k0、S、L)。如果配置了TDDULDLConfigurationCommon或TDDULDLConfigurationDedicated,某一行對(duì)應(yīng)的資源(k0、S、L指示)至少1個(gè)符號(hào)配置為“UL”,則從集合R刪去這一行(R=R\r)。如果配置PDSCH的“重復(fù)發(fā)送”,重復(fù)時(shí)隙都不存在“沖突”時(shí)才保留r——如果沒有配置PDSCH的“重復(fù)發(fā)送”,N_repeat_PDSCH為1,上述條件描述的時(shí)隙范圍只包含1個(gè)時(shí)隙(可視為“重復(fù)發(fā)送”的特例)。舉個(gè)例子,假設(shè)上下行SCS相同,k1集合為{8,7,6,5,4,3,2,1},時(shí)隙配置為“DDDSU”。在遍歷k1的過(guò)程中,當(dāng)k=3時(shí)k1=5(K1,3=5),時(shí)隙nD在TDD上下行配置中為上行(U)。此時(shí),在遍歷R的過(guò)程中,無(wú)論哪一行(r)都不會(huì)保留——上行時(shí)隙的所有符號(hào)都配置為“UL”,不能用于PDSCH。對(duì)于特殊時(shí)隙S(K1,2=6),UE結(jié)合特殊時(shí)隙S的配置(下行符號(hào)、上行符號(hào)、靈活符號(hào)的數(shù)量)判斷,示例假定特殊時(shí)隙S也存在“沖突”,沒有保留。PartB往MA,c(PDSCH候選集)記錄j(不是k或k1,UE知道j和k1的對(duì)應(yīng)關(guān)系)。如果經(jīng)過(guò)上面一番“折騰”,R還不是空集,那么恭喜UE,至少獲得1個(gè)候選PDSCH,可以把j“合并”到MA,c。如果UE支持同一時(shí)隙內(nèi)“多次調(diào)度”,1個(gè)nD可能包含多個(gè)候選PDSCH,UE對(duì)R(剩余的行)進(jìn)行遍歷,將符號(hào)資源相互“沖突”的一組r(k0+S+L組合)記為1個(gè)候選PDSCH(對(duì)應(yīng)相同的j)。

更具體的,如果UE支持同一時(shí)隙內(nèi)“多次調(diào)度”,先將R中值最小的“l(fā)astOFDMsymbolindex”設(shè)為m,再根據(jù)m確定候選PDSCH。如果某一行S+L組合的結(jié)束符號(hào)最靠前,把這一行作為參考行。在遍歷R的過(guò)程中,如果其他行的S(起始符號(hào))小于或等于m,一定和參考行的S+L組合(符號(hào)資源)存在“沖突”。符合這個(gè)條件的行,以及參考行本身,總共只能有1個(gè)候選PDSCH,對(duì)應(yīng)相同的j。UE將第1個(gè)候選PDSCH關(guān)聯(lián)的行剔除,再將R(剩余行)中值最小的“l(fā)astOFDMsymbolindex”設(shè)為新的m,重復(fù)上述過(guò)程,直到R成為空集,就知道nD包含多少候選PDSCH。以上圖為例,R包含3行,r分別為0、1、2,S+L組合分別為2+4、3+4和10+2,結(jié)束符號(hào)索引分別為5、6、11——5最小。UE將m設(shè)為5,在遍歷R的過(guò)程中,前兩行S(2和3)小于或等于m(5),第三行S(10)大于m(5)。UE刪除前兩行,j合并進(jìn)MA,c,j遞增。R不是空集,UE重復(fù)上述過(guò)程,將m設(shè)為11,在遍歷R的過(guò)程中,第三行S(11)等于m(11),UE刪除第三行,j合并進(jìn)MA,c,j遞增。R成為空集,循環(huán)結(jié)束。由上,nD包含2個(gè)候選PDSCH。

再看第二步。

各個(gè)服務(wù)小區(qū)的MA,c確定后,“半靜態(tài)碼本”的長(zhǎng)度就確定了,如果C(MA,c)大于1,或配置了載波聚合(小區(qū)數(shù)量大于1),或配置了CBG傳輸,UE參照偽代碼“按部就班”的生成“半靜態(tài)碼本”。UE對(duì)小區(qū)進(jìn)行遍歷,生成各個(gè)小區(qū)的HARQ-ACK子碼本(SubCodebook),再串接為“半靜態(tài)碼本”,總長(zhǎng)度為O_ACK。j表示“半靜態(tài)碼本”中的索引,初始值為0。對(duì)于特定的小區(qū)c,UE由MA,c得到小區(qū)包含候選PDSCH的數(shù)量Mc,m表示MA,C中的索引

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論