本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Step 1 反馈窗口的确定,即在某Slot进行HARQ-ACK反馈时候,需要确定可能会在该Slot进行反馈的Slot集合K1 set
Step 2 遍历反馈窗口内的每个Slot,确定Slot内可以调度PDSCH的最大集合,即上一篇文章中介绍的Semi-static反馈方式的完备性,所有Slot内可能同时调度PDSCH的位置都会在最后的反馈比特HARQ-ACK codebook中占据一席之地,在K1 set的每个Slot中进行如下处理
Step 2-1 可能调度PDSCH的符号位置取决于RRC配置参数pdsch-TimeDomainAllocationList , 首先对pdsch-TimeDomainAllocationList 根据每个PDSCH 的起始符号和PDSCH 符号数, 进行符号位置冲突判断,对与上行符号冲突的PDSCH排除在外,这样做的目的也是尽可能地减少一些反馈比特
Step 2-2 对Step2-1中保留下来的PDSCH集合
-
如果UE只支持一个Slot内调度一个unicast PDSCH,那么该Slot只占一个坑;
-
如果UE一个Slot支持多unicast PDSCH,那么确定Slot内可以调度的PDSCH的最大个数,准则是PDSCH只能时分复用
Step 3 对每个Slot进行Step 2处理之后的结果取并集,即记录反馈窗口内所有可能同时调度的PDSCH集合。每个PDSCH反馈的比特数取决于是否配置了CBG反馈以及harq-ACK-SpatialBundling参数。
以上,出于简单场景考虑,未考虑协议伪代码中BWP切换、上下行BWP SCS不一致、PDSCH Repetition等因素,后面文章中会继续补充介绍。
下面介绍比特数相对semi-static反馈方式更加经济型的HARQ-ACK反馈方式 – dynamic反馈方式。
通过前面的HARQ-ACK反馈的概述可知,该方式通过在下行调度DCI中增加DAI(Downlink Assignment Indicator)field来辅助UE进行HARQ-ACK反馈,该field的物理含义是对在同一个Slot反馈的下行调度进行计数。
DAI只有2比特,最多表示个数为4,那么如果调度的个数大于4时,则继续从‘00’开始循环计数,UE需要对这种情况进行识别,并正确进行计数以确定最后反馈的比特数。另外一方面,DAI同时也确定了HARQ-ACK bit的位置。
注意到,在多载波的情况下,还有2比特的Total DAI,表示该Slot内和之前调度的计数总值,还是以示意图来解释其含义及作用。
配置了CBG的反馈情况下,码本由两部分组成,基于CBG反馈 + 基于TB反馈,这是因为对于DCI format 1-0调度或者SPS PDSCH都是基于TB反馈,或者DL SPS Release仅反馈1比特ACK,这样在配置基于CBG反馈的情况下,使反馈的比特数减少。需要注意的是,这种情况下,对于DAI的计数是分开计数的。
Dynamic HARQ-ACK反馈方式的一点缺陷是一些漏检判断不出,末尾的漏检通过调度PUSCH的DCI format中携带的DAI可以检查出来。