NR PUSCH 动态调度时域资源

Posted modem协议笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NR PUSCH 动态调度时域资源相关的知识,希望对你有一定的参考价值。

微信同步更新,欢迎关注同名“modem协议笔记”

上篇谈了configured grant传输,现在看动态调度,上行主要有DCI 0_0/0_1/0_2 等,从PDCCH 收到上行DCI之后就要去PUSCH对应的时频资源上发送data。UE主要从DCI获知PUSCH时频资源位置,以及获得PUSCH调制方式,比如MCS(Modulation and Coding Scheme)和RV(Redundancy Version)等。

同PDSCH,NR调度PUSCH资源在时域上可以达到到symbol级别的分配,每次调度的资源都可以动态变化。

下面具体来看下。

和PDSCH 相同,PUSCH 的时域调度由DCI field time domain resource assignment 根据TimeDomainAllocationList确定 K2(时隙偏移) S(起始符号)和L(符号长度)等值,即可确定时域资源,K2代表UL DCI 的时隙和调度PUSCH 时隙的偏移间隔。

通常UE要先获得TimeDomainAllocationList才能根据DCI找到对应的K2、S和L,而TimeDomainAllocationList主要通过pusch-ConfigCommon 和pusch-Config获得,如果两者都包含,那要优先用pusch-Config中的list。

相比于R15,R16时域资源分配方式分的更加详细,根据DCI 0_0(Table 6.1.2.1.1-1)/0_1(Table 6.1.2.1.1-1A)/0_2(Table 6.1.2.1.1-1B)和应用场景的不同,分别定义了对应的时域资源分配规则。

在初始接入场景只有DCI 0_0 就需要根据38.214 Table 6.1.2.1.1-1 根据RRC层参数的配置情况,确定时域资源映射关系,例如在初始接入场景,当pusch-ConfigCommon 和pusch-Config都没有时,就直接根据Default A确定K2 ,S和L(如果time domain resource assignment value 为m,查表时要找index m+1那行数据);如果有pusch-ConfigCommon中的list,就根据common list 确定,如下橘框部分。

​​​​

 

其中Table 6.1.2.1.1-2(normal CP)和Table 6.1.2.1.1-3(extended CP)中K2的确定 与PUSCH SCS相关,SCS越大 j越大,j越大,留给UE处理的时间会多些。

RRC层TimeDomainAllocationList 的配置情况有所变化。

 

R16 针对DCI 0_1/0_2 增加了PUSCH-TimeDomainResourceAllocationList-r16,可以在K2相同的情况下,定义S和L的不同情况,增加了调度的灵活性,配置结构如上。

k2:从PDCCH 上收到UL grant,需要去PUSCH 上发送UL data。K2代表UL grant与UL transmission 时间偏移,即UL DCI 的时隙和调度PUSCH 时隙的偏移间隔;K2缺省时,SCS 15/30khz 默认K2=1;SCS 60khz K2=2;SCS 120khz K2=3。

length和startSymbol:R16 增加的IE“PUSCH-Allocation-r16 ”中的参数,对于PUSCH repetition type B,网络端可以直接配置S和L(只针对DCI format 0_1/0_2) 。

numberOfRepetitions: 对于DCI format 0_1/0_2 可以配置repetitions Number 。注意后面的Cond,描述了具体的配置条件。

pusch-TimeDomainAllocationListDCI-0-1-r16和pusch-TimeDomainAllocationListDCI-0-2-r16都可以调用PUSCH-TimeDomainResourceAllocationList-r16用于配置在K2相同,而S,L不同的情况

再看一些场景时域资源确定的规则。

UE有TB要传输的场景

UE有数据要通过PUSCH 发送时(不管要不要发送CSI report),UE要根据DCI 中的time domain resource assignment field去确定K2 ,SLIV, PUSCH mapping type 和numberOfRepetitions等参数,确定规则如开头部分。

UE通过PUSCH发送CSI reports(没有额外TB传输)的场景

UE没有UL data发送但是根据DCI field CSI request 有CSI report要发送时,K2的确定比较特殊,需要根据DCI 中的time domain resource assignment field确定SLIV ,但是K2 的确定与RRC成配置的reportSlotOffsetList参数有关系。需要根据优先级reportSlotOffsetListDCI-0-2>reportSlotOffsetListDCI-0-1>reportSlotOffsetList的顺序确定。例如time domain resource assignment= 1,要从reportSlotOffsetList 分别根据repetitons number找各自的第二个值出来,然后取最大的那个值作为K2。

和PDSCH一样,根据是否有配置载波聚合时隙偏移进行了区分。如果 UE 被配置参数 ca-SlotOffset (载波聚合时隙偏移),Ks (PDCCH和PDSCH 的时隙偏移)由上图中的那个长公式决定;否则的话,Ks 仍然由R15中的原公式决定。我们知道在配置CA 的场景,一般会让Pcell和Scell 在同一个TAG 中,即上下行是保持同步的。这里针对的Async CA 就是指Pcell和Scell之间会有有slot级别的偏移,因而38.214中针对是否有配置ca-slotOffset 进行的区分。

 

相比于R15 ,R16 中PUSCH 时域资源分配上分成了两种类型,PUSCH repetition type A 和PUSCH repetition type B,两者的区别在资源分配方式。R15中没有PUSCH repetition type A 和PUSCH repetition type B的说法,而R15中的PUSCH时域资源分配方式可以看作是PUSCH repetition type A。当然PUSCH repetition type A/B需要UE能力支持,上报对应的能力,才可能配置。配置方式主要根据RRC层参数pusch-RepTypeIndicator确定,配置为pusch-RepTypB 就用PUSCH repetition type B,否则就用PUSCH repetition type A。

S和L的确定

PUSCH repetition type A 需要根据SLIV 的常规方式通过计算确定S 和L;PUSCH repetition type B则会由RRC 层参数直接配置startSymbol和length,直接告诉UE。

PUSCH 时域资源映射类型同样分为mapping type A和B,但是S和L的范围和PDSCH 有些区别。

   mapping typeA (slot based)(只适用于PUSCH repetition type A)  在一个时隙内,PUSCH占用的符号只能从符号index 0位置开始,符号长度4-14个符号(不超过slot边界)。

   mapping type B 在一个时隙内,PUSCH占用的符号从0-13 的符号位置开始,符号长度为1~14个符号。相比于Type A,TypeB PUSCH起始位置可以灵活配置,type B 就可以适用于 分配符号数量少,时延短的情况。

对于PUSCH mapping type B(mini slot based)(PUSCH repetition type B只能用PUSCH mapping type B),normal CP 下,S+L的取值略有不同, PUSCH repetition type A S+L 对应1~14 (不超过时隙边界),PUSCH repetition type B S+L对应1~27 ;extended CP 下,PUSCH repetition type A S+L 对应1~12 (不超过时隙边界),PUSCH repetition type B S+L对应1~23。相比于PUSCH reprtion type A, PUSCH repetition type B 一次调度可能跨越多个时隙的资源,更加适合URLLC 场景。

pusch-TimeDomainAllocationListForMultiPUSCH-r16也可以调用PUSCH-TimeDomainResourceAllocationList-r16。

pusch-TimeDomainAllocationListForMultiPUSCH包含2~8个连续的PUSCH 的资源分配,K2指定的是第一个PUSCH的发送时隙,每个PUSCH都会有各自的SLIV及mapping type。调度的 PUSCH 的数量由 pusch-TimeDomainAllocationListForMultiPUSCH有效 SLIV 的行数确定, 这种场景主要用于DCI format 0_1的调度。当配置pusch-TimeDomainAllocationListForMultiPUSCH时就不能配置push-AggregationFactor。

和PDSCH 一样,PUSCH 也支持时隙聚合,基站可使用相同的符号分配,在连续K个时隙重复发送相同的数据,以获得覆盖增益,不同的是参数的配置会麻烦些。对于PUSCH repetition Type A,当由DCI format 0_1或者0_2调度,由C-RNTI,MCS-C-RNTI或者是CS-RNTI加扰,且NDI=1(New data indicator)时,重传次数K的取值方法是:

按照参数numberOfRepetitions/pusch-AggregationFactor是否有配置进行取值,如果上述两个参数都没有配置那K=1。pusch-TimeDomainAllocationListForMultiPUSCH和push-AggregationFactor不能同时配置。

PUSCH配置时隙聚合时(K >1),每个时隙发送的RV不同,例如,如果DCI指示RV为0,基站在n mod 4为0、1、2、3的时隙中发送的RV分别为0、2、3、1。

对于PUSCH repetition Type A, K个连续时隙的符号配置也都是一样的,注意此时只能单layer传输。 

对于PUSCH repetition Type B(不考虑没有UL data但是要发送CSI report的情况),重复传输次数由numberOfRepetitions 决定,每一次重复传输的起始时隙和时隙内start symbol ,停止时隙和时隙内的ending symbol 都有对应的公式计算(主要与重复传输的次数number ,S和L有关),如上。第n次重复传输对应的RV同样根据Table 6.1.2.1-2确定。

这种通过公式计算的方式确定重复传输的时隙符号,可能会面临一些符号不能用于传输的问题,所以UE还要根据自身的配置确定下是否算出来的区间对应的符号都可以用于上行传输。

于是协议上有一坨关于判断符号是否有效的描述,比如TDD 下 重复传输期间的DL符号肯定不能用于传输;SSB和CORESET0 对应的符号也能用于传输等等,上面的截图只是很小的一部分,具体可以看38.214 6.1.2。

确定完可以用于PUSCH repetition type B 重复传输的有效符号后,还要根据实际调度情况决定是否真的可以进行重复传输,如果不行,还要取消。比如本来要进行repetion 传输符号时,UE却收到DL DCI 要去对应的符号上去收PDSCH data等。

网络端可能会配置minimumSchedulingOffsetK2,根据上面的公式可以算出一个门限,实际调度中网络配置的K2不应该小于门限(对于RACH 过程不用考虑这个限制)。

以上是关于NR PUSCH 动态调度时域资源的主要内容,如果未能解决你的问题,请参考以下文章

NR PDSCH时域资源

NR PDSCH DL data operation

NR PDCCH SearchSpace

NR 小区搜索 SearchSpace0

NR PRACH时域位置

NR PRACH时域位置