5G系统中的不连续接收
DRX:Discontinuous Reception
今天的文章给大家分享5G系统中的不连续接收,这种方法主要用于终端节电,可以让终端周期性的在某些时候进入睡眠状态,不去监听PDCCH子帧,而需要监听的时候,则从睡眠状态中唤醒,这样就可以使终端达到省电的目的。
虽然这样做对数据传输的时延有一定的影响,但如果这种时延并不影响用户体验,考虑到终端更为重要的功率消耗,执行DRX是很有意义的。
DRX分为:空闲态下的DRX和连接态下的DRX ,空闲态的DRX又称寻呼过程(Paging),连接态的DRX称为CDRX,本篇内容主要针对CDRX。
CDRX-Connected DRX
一个典型的DRX周期如下图所示。在这个图中,“On Duration”的这段时间是UE监控下行PDCCH子帧的时间,在这段时间里,UE是处于唤醒状态的。
“Opportunity for DRX”的这段时间是DRX睡眠时间,即UE为了省电,进入了睡眠而不监控PDCCH子帧的时间。
从这个图中可以看到,用于DRX睡眠的时间越长,UE的功率消耗就越低,但相应的,业务传输的时延也会跟着增加。
参数配置
Parameters configuration
受篇幅影响,读者可自行查看3GPP TS 38.331-g10
6.3.2 DRX-Config information element 作为参考。
SP9500-CTS的配置界面如下图所示:
DRX-Config
DRXCtrl:默认“OFF”,关闭DRX功能,设置为“ON,开启DRX功能。
(1) drx-onDurationTimer
DRX持续监听定时器,从一个DRX Cycle的起始处算起,在该定时器运行期间,终端需要持续监听网络的PDCCH的“PDCCH子帧数”,可选设置subMilliSeconds/MilliSeconds,
配置范围(单位ms):
subMilliSeconds:integer (1..31)
MilliSeconds:ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40, ms50, ms60,ms80, ms100, ms200, ms300, ms400, ms500, ms600, ms800, ms1000, ms1200, ms1600, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1.
(2) drx-InactivityTimer
DRX非激活定时器,该定时器在终端收到新数据调度PDCCH信令后启动,该参数表示当终端成功解码到一个下行PDCCH信道的DCI之后,还需要继续监测持续处于激活态的连续PDCCH 子帧数。
配置范围(单位ms):
ms0, ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40, ms50, ms60, ms80, ms100, ms200, ms300, ms500, ms750, ms1280, ms1920, ms2560, spare9, spare8,spare7, spare6, spare5, spare4, spare3, spare2, spare1.
(3) drx-HARQ-RTT-TimerDL
下行HARQ RTT定时器,该定时器的长度为从HARQ反馈时刻到收到针对该进程的HARQ重传之间的最小时间间隔。只有下行进程对应的数据未解码成功,终端才会在该进程的HARQ NACK反馈之后的第一个符号启动。下行进程的重传调度要在该Timer值之后才会调度。
配置范围(单位symbol):integer (0..56)
(4) drx-HARQ-RTT-TimerUL
上行HARQ RTT定时器,该定时器的长度为从PUSCH传输时刻到收到针对该进程的HARQ重传之间的最小时间间隔。上行PUSCH传输后,终端启动针对该进程的上行HARQ RTT定时器,如果PUSCH传输使用PUSCH重复,那么上行HARQ RTT定时器在PUSCH第一次重复后启动。
配置范围(单位symbol):integer (0..56)
(5) drx-RetransmissionTimerDL
下行重传定时器,drx-HARQ-RTT-TimerDL超时后的下一个符号启动该定时器。该定时器运行期间,终端监听网络的控制信道,如果接收到针对该进程的下行调度信息或下行配置授权,则停止该定时器。
配置范围(单位slot):
sl0, sl1, sl2, sl4, sl6, sl8, sl16, sl24, sl33, sl40, sl64, sl80, sl96, sl112, sl128,sl160, sl320, spare15, spare14, spare13, spare12, spare11, spare10, spare9,spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1
(6) drx-RetransmissionTimerUL
上行重传定时器,drx-HARQ-RTT-TimerUL超时后的下一个符号启动该定时器。该定时器运行期间,终端监听网络的控制信道,如果接收到针对该进程的上行调度信息或上行配置授权,则停止该定时器。
配置范围(单位slot):
sl0, sl1, sl2, sl4, sl6, sl8, sl16, sl24, sl33, sl40, sl64, sl80, sl96, sl112, sl128,sl160, sl320, spare15, spare14, spare13, spare12, spare11, spare10, spare9,spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1
(7) drx-LongCycleStartOffset
用于配置长DRX周期的周期和偏移
默认配置表示周期为10ms,起始偏移为1ms
ShortDRX
(1)drx-ShortCycle
用于配置短DRX周期的周期。
配置范围(单位为ms):
ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, ms30, ms32,ms35, ms40, ms64, ms80, ms128, ms160, ms256, ms320, ms512, ms640, spare9,spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1
(2)drx-ShortCycleTimer
用于控制终端使用短DRX周期的时间长度,单位为整数,表示在短周期内持续多少个子帧就进入长周期。如果值为2,则表示持续(2*drx-ShortCycle)个子帧就进入长周期。
drx-SlotOffset
终端启动drx-onDurationTimer的时延,通过该参数设置DRX onDuration的起始时刻相对于子帧起点的偏移量,偏移量是1/32ms的整数倍。
配置范围:integer (1..31)
CDRX基本过程
CDRX基本过程如上图所示:
① 终端drx-onDurationTimer启动,终端开始监听控制信道。
② 在 drx-ondurationTimer运行期间,gNB在t1时刻发送了针对下行进程1的初始传输的调度信令,于是drx- InactivityTimer启动。
③ 如果终端未成功解码该进程的下行数据,则反馈HARQ NACK,在HARQ NACK反馈之后的第一个符号启动下行drx-HARO-RTT-TimerDL。
④ t2时刻 drx-InactivityTimer超时,终端停止监听控制信道。
⑤t3时刻drx-HARQ-RTT-TimerDL超时,启动drx-RetransmissionTimerDL,终端开始监听控制信道。
⑥ 在t4时刻,终端接收到gNB发送的针对进程1的第一次重传调度信令,drx- Retransmission TimerDL停止,终端停止监听控制信道。
⑦ 如果终端对第一次重传数据解码仍未成功,则在t5进行 HARQ NACK反馈,并在 HARQ NACK反馈之后的第一个符号启动drx-HARO-RTT-TimerDL。
⑧在t6时刻drx-HARO-RTT-TimerDL超时,启动drx-RetransmissionTimerDL。
⑨ 在t7时刻,终端接收到gNB针对进程1的第二次重传调度信令,drx- Retransmission TimerDL停止,终端停止监听控制信道。由于第二次重传解码成功,终端不再启动在drx-HARO-RTT- TimerDL。
测试流程
配置
典型配置
drx-onDurationTimer设置为“MilliSeconds”= 5ms,
drx-LongCycleStartOffset周期设置为20ms,偏移为0ms,
drx-InactivityTimer设置为5ms,调度slot4。
drx-onDurationTimer设置为“MilliSeconds”= 8ms,
drx-LongCycleStartOffset周期设置为40ms,偏移为0ms,
drx-InactivityTimer设置为8ms,调度slot3和slot16。
drx-onDurationTimer设置为“MilliSeconds”= 20ms,
drx-LongCycleStartOffset周期设置为160ms,偏移为0ms,
drx-InactivityTimer设置为5ms,调度slot9
测试流程
说明
以SCS=30kHz为例
未配DRX功能的RMC调度过程如下图所示,每帧的slot5均调度。
开启DRX功能后的RMC调度过程如下图,配置DRX 长周期为20ms,每隔两个SFN调度一次slot5。
调度的Slot要在drx-onDurationTimer长度范围内,例如,drx-onDurationTimer设置为“MilliSeconds”且长度为5ms时,配置的RMC 调度的Slot索引需要在0-9范围内,DRX功能才会生效,例如调度slot5,如下图所示:
测试配置小结
①drx-InactivityTimer的长度要小于2n帧最后调度的slot到2n+1最开始调度的slot之间的间隔(即图1的间隔X,且针对SP9500,drx-InactivityTimer长度一般小于10ms)。
②drx-onDurationTimer和drx-InactivityTimer长度范围内均为Active time,可调度上/下行数据,其余为Sleep time,不可调度上/下行数据。
③配置RMC调度的初始slot必须在drx-onDurationTimer内,DRX功能才会生效。
DRX测试实例
以n78,scs=30kHz,BW=100MHz为例,无线帧长度10ms,slot编号0~19,共20个slot,每一个slot长度0.5ms,下面讲几个简单的例子:
关闭DRX
n78 100M带宽下调度slot3 PDSCH,吞吐量如下图所示:
【例1】开启DRX-长周期
【配置】长周期20ms,onDurationTimer 5ms,InactivityTimer 5ms,同样调度slot3,如下图所示:
在onDurationTimer 5ms当中,终端在slot3监听到PDCCH,按照规则,从slot4开始激活InactivityTimer 5ms到slot13结束监听,计时器完毕也没有收到其他数据,则终端进入睡眠时间10ms,所以终端每隔一个无线帧,能够收到一次Slot3上的PDSCH数据包,相比于不开启DRX(每一帧都在slot3上收到下行数据)而言,吞吐量减小为之前的一半,如下图所示
【例2】开启DRX-长周期
【配置】长周期变为40ms,onDurationTimer 5ms不变,InactivityTimer 5ms不变,如下图所示:
同样调度slot3,相比于【例1】,该配置长周期变为40ms,则每4个无线帧,才能监听到1个slot3,吞吐量降为不开启DRX的1/4,如下图所示:
【例3】开启DRX-长周期
【配置】长周期20ms,onDurationTimer 5ms,InactivityTimer 5ms。如下图所示:
调度slot11,因为slot11在on duration外,终端已进入休眠状态,终端在激活时间内监听不到任何数据,则吞吐量变为0,如下图所示
【例4】开启DRX-长周期+短周期
【配置】长周期20ms,短周期5ms,ShortCycleTimer 2,onDurationTimer 2ms,InactivityTimer 2ms,如下图所示
调度slot3,在onDurationTimer 2ms时间内,终端监听到slot3下行数据,立即激活slot4~slot7 InactivityTimer 2ms,没有监听到数据之后,激活短周期,短周期只能在0/5/10ms的位置被激活,所以跳过slot8/9,从slot10开始进入短周期,到slot19结束,没有监听到数据,短周期结束,进入下一个短周期(进入新的无线帧调度),Slot3上监听到数据,重复以上步骤,则每个无线帧上都能监听到Slot3上的下行数据调度,吞吐量结果与不开启DRX保持一致,如下图所示:
【例5】开启DRX-长周期+短周期
【配置】长周期20ms,短周期5ms,ShortCycleTimer 2,onDurationTimer 2ms,InactivityTimer 2ms。
调度slot3和slot11,过程和【例4】保持一致,只是在短周期激活的过程中,监听到了slot11的数据,吞吐量结果较之前,提升一倍。如下图所示:
写在最后
DRX方法主要用于终端节电,本文测试实例从配置DRX和slot调度出发,观测查看吞吐量结果表征数据业务的使用情况,印证终端的功耗情况。