这两个timer关联度比较高,放在一起看会比较清楚。
HARQ-RTT-Timer
对于同一个HARQ进程,当一次上行调度或下行调度,到下一次调度,需要一定的处理时间,这个时长就是HARQ RTT(Round Trip Timer)时间;
在NR 中上下行HARQ都是异步HARQ,即HARQ RTT时长不是固定的。
drx-HARQ-RTT-TimerDL和drx-HARQ-RTT-TimerUL的单位是BWP的symbol个数,最长56个symbol即4个slots。具体含义也比较清楚,就是在下一次重传前的一个最小时间间隔,因此也将上述两个Timer描述为DL/UL调度重传的最短时长。如果不开启DRX,就不会配置这两个timer,因为UE总在监听PDCCH;开启DRX 才会配置这两个 timer,这样对于同一个HARQ progress在Timer运行期间,就不会有相同HARQ 的PDCCH调度。
drx-HARQ-RTT-Timer的工作图示如上。
DRX RetransmissionTimer
drx-RetransmissionTimerDL/UL 的单位是slot数,sl0对应 0个slots,sl1对应 1 slot....
更具体的 在DRX group处于Active Time期间时,
DL场景
在UE收到DL data后,要针对对应的HARQ process开启drx-HARQ-RTT-TimerDL,具体的开启时间对应HARQ ACK/NACK发送后的第一个symbol,同时停止对应HARQ process 的drx-RetransmissionTimerDL。
值得注意的时上面的内容有一个non-numerical k1 的说法,这个场景对应的NR-U,具体讨论可以查看R2-1909808和R2-1912101,大概意思是当DCI PDSH-to-HARQ_feedback timing对应的是一个non-numerical k1(即没有指定HARQ ACK/NACK 所用的K1),那UE要在当前bundle内最后一个PDSCH 结束后的第一个符号启动drx-RetransmissionTimerDL,等待下一个DCI 带下来正确的k1,再进行HARQ ACK/NACK的动作。
当drx-HARQ-RTT-TimerDL超时后,对于同一个HARQ process,如果UE解码PDSCH失败时,UE必须要监听PDCCH来获取DL 重传data,这时UE启动drx-RetransmissionTimerDL来等待下行的重传data; 如果UE解码PDSCH成功,不需要启动drx-RetransmissionTimerDL。
UL场景
在UE收到UL grant时,要针对对应的HARQ process开启drx-HARQ-RTT-TimerUL,具体的开启时间对应当前bundle内第一个PUSCH发送后的第一个symbol,同时在相应 PUSCH 传输的第一次传输时就要停止对应HARQ process 的drx-RetransmissionTimerUL。
当drx-HARQ-RTT-TimerUL超时后,对于同一个HARQ进程,UE发送PUSCH后,UE不知道基站是否解码成功,必须要监听PDCCH来获取可能的UL 重传data,所以这时UE要开启drx-RetransmissionTimerUL。
针对上述过程的图示如下:
查看协议可以看到DL SPS 和configured UL grant的描述并没有上面动态调度的那句"if a DRX group is in Active Time",也就是说DL SPS 和configured UL grant不受DRX active 和sleep机制的影响,本身他们就分配好了各自的收发周期,按照各自的配置进行UL/DL操作就好,其他内容基本一样,具体如下:
DL SPS
在UE收到DL data后,要针对对应的HARQ process开启drx-HARQ-RTT-TimerDL,具体的开启时间对应HARQ ACK/NACK发送后的第一个symbol,同时停止对应HARQ process 的drx-RetransmissionTimerDL。
configured UL grant
在UE收到UL grant时,要针对对应的HARQ process开启drx-HARQ-RTT-TimerUL,具体的开启时间对应当前bundle内第一个PUSCH发送后的第一个symbol,同时在相应 PUSCH 传输的第一次传输时就要停止对应HARQ process 的drx-RetransmissionTimerUL。