2012年10月24日 星期三

LTE:Discontinuous Reception(DRX)

Discontinuous Reception(DRX) Introduction

什麼是 Discontinuous Reception(DRX)?字面上的意思是不連續接收,意思即是UE的接收器,不會連續性的一直接收,會關閉接收器一段時間,等過一陣子再開啟,以達到UE省電的效果。在UE沒有DRX的狀況下,只能一直開著接收器去監聽基地台是否有作paging的動作,若有paging,UE則會開始與基地台從RRC idle進入到RRC connected的狀態。但若是如此,UE無時無刻開著接收器,會顯得相當的耗電,這時候就要藉由DRX的功能去降低UE開啟接收器的時間去達成省電的目的。

Short DRX Cycle and Long DRX Cycle


Long DRX Cycle

  • 關閉接收器的時間較長
  • 較為省電
  • 使用者感受到的delay時間較長

Short DRX Cycle 

  • 關閉接收器的時間較短
  • 較沒這麼省電
  • 使用者感受到的delay時間較短

DRX Cycle有分 Short跟Long UE可能會直接進Long Cycle或是先進一段Short Cycle再進Long Cycle,這表示Short cycle算是option。

為什麼要這樣設計呢,因為Long Cycle雖然比較省電,但是使用者在使用UE時,總是會有時間密集性,所以短時間突發的使用就讓Short Cycle來處理,而長時間的省電就由Long Cycle來處理。


Discontinuous Reception(DRX) Parameter


你一定馬上會有一個疑問,那EnodeB要怎麼知道UE什麼時候關接收器,什麼時候開接收器,要怎麼同步。如果沒有良好的同步,必定會造成很嚴重的問題。所以在基地台的RRC message 裡面就會明確指出什麼時間點要關接收器,什麼時間點要開接收器,當UE收到這些參數之後,就會跟EnodeB有默契,知道什麼時候該開,什麼時候該關。

以下則是相關的參數。

DRX Parameter Description
DRX Cycle 定義為一次DRX的時間長度,也就是指一次打開接收器加上一次關閉接收器的時間長(這是使用Subframe time及longdrx-CycleStartOffset所計算出來的)。
onDurationTimer 這是指在DRX cycle中打開接收器的時間。
drx-Inactivity timer 表示UE在收到PDCCH的資料,還需要接收器還要開啟多久,也就是說當沒有收到PDCCH來的資料時,這個Timer就會啟動,若Timer超過設定值之後,就會接收器就會關起來,但若在這個Timer仍在計數的時候,又收到PDCCH,則這個Timer就會歸零。
drx-Retransmission timer 表示UE等候HARQ重傳時,必須監聽的最大PDCCH子訊框個數(什麼HARQ,是一個LTE錯誤重傳的機制,以後再寫。(HARQ細節的部份我們先不考量進來,不過下面有解釋DRX與HARQ的關係)
shortDRX-Cycle DRX Cycle有分Long DRX cycle或DRX Short,這個參數表示short DRX cycle代表short DRX cycle要用多久,才會轉變成Long DRX cycle ,若是沒有設定,則直接使用Long DRX。
drxShortCycleTimer 因為有分Short DRX跟Long DRX,當超過一定的時間之後,會由Short DRX轉變成Long DRX。因為Long DRX雖然較省電,但是喚醒的時間也較久,所以LTE設計了一個機制,若是一段時間沒有資料要傳,則由Short DRX轉變成Long DRX。

Discontinuous Reception(DRX) mode in different RRC status


在不同的RRC狀態時,會有不同的DRX的表現 

先從以下的圖說起,這個圖是引用IEEE的資料

image

在RRC Connected時候,可以看的到,跟ACTIVE真的要傳資料並無太大的不同,最大的不同是LTE-U_u是DRX Enabled介面,所以會進行Connected節電。而在最右邊的RRC idle時,可以看的到所有的核心網路都只有把Context 保留住,但是並沒有實體做連結,而eNodeB更是把UE context移除了,所以這時候如果有要Downlink資料要傳送,核心網路會重建,並且會讓eNodeB去對UE做Paging。EnodeB做Paging的時間會選擇UE在DRX cycle的On Duration去做傳送。所以代表UE要接收到資料的時間會較長。

結論:

  • Active mode DRX 用在RRC Connected狀態,使用Short DRX Cycle與Long DRX Cycle,RRC Connected表示UE與EnodeB之間是有空中資源,可以隨時進行資料傳輸,On Duration時,在聆聽的是PDCCH。
  • Idle mode DRX  用在RRC Idle狀態,使用Long DRX Cycle ,RRC Idle表示UE與EnodeB之間沒有空中資源,必須透過Paging(下行)或是Random Access(上行)來取得空中資源,On Duration時是聆聽aging channel。


Discontinuous Reception(DRX) Operation

image

要了解DRX,必須要先從上面這張圖開始

DRX的時間為兩個,一個是On Duration,另一個則是Opportunity for DRX,On duration 是指要打開接收器的時間,Opportunity for DRX則是可以關閉接收器的部分,為什麼是Opportunity ,而不是Off Duration呢,因為要考慮到HARQ重傳的狀況。所以才會使用這個字眼。

有兩種可能會讓UE進入DRXCycle

  • 在On duration接收的時候會收到從網路來的資料,當沒有從PDCCH來的資料時,就會開始Inactivity timer。這個計時器就是在算網路跟UE間多久沒有進行活動,當Inactivity timer到期的時候,就會進入DRX Cycle
  • 另一種則是收到EnodeB所傳送的DRX Command MAC control element指令,則UE也會進入DRX Cycle

進入DRX Cycle之後會先有做以下的事情

  • 會將onDurationTime與drx-InactivityTimer,因為這都是On Duration 所需的計時器。
  • 判斷是否有Short DRX cycle ,若是有的話,則使用Short DRX,若是沒有的話,則是使用Long DRX Cycle,還記得前面提到Long DRX與Short DRX的差別嗎,是這是使用Subframe time及longdrx-CycleStartOffset所計算出來的。會有這樣的設計,UE通常剛進入DRX會有很高的機會再收到資料,當處於Short DRX cycle一段時間沒傳資料之後,才會進入Long DRX Cycle。

進入Long DRX Cycle時,符合以下的條件會打開接收器監聽訊號

( [(SFN * 10) + subframe number] mod (longDRX_Cycle)  == (drxStartOffset) ) 

  • [(SFN * 10) + subframe number] 這個東西代表每個subframe的系統絕對位置,Frame的架構以後再寫吧,這邊寫就扯遠了。
  • mod代表除某個東西的餘數
  • LongDRX_Cycle是網路給的Long DRX Cycle數值
  • drxStartOffset代表是在哪個訊框開始的,我可以在某個訊框開始週期

整段的意思就是如果我在某些訊框剛好是Long DRX Cycle時才會開起來,因為Long DRX 數值通常比較大,所以開起來的次數當然明顯比較少,一到一萬除於100能整除的數字一定比除於10的數字少。

進入Short DRX Cycle,符合以下的條件會打開接收器監聽訊號

( [(SFN * 10) + subframe number] mod (shortDRX_Cycle) == (drxStartOffset) mod (shortDRX_Cycle))

  • [(SFN * 10) + subframe number] 這個東西代表每個subframe的系統絕對位置,Frame的架構以後再寫吧,這邊寫就扯遠了。
  • mod代表除某個東西的餘數
  • ShortDRX_Cycle是網路給的Short DRX Cycle數值
  • drxStartOffset代表是在哪個訊框開始的,我可以在某個訊框開始週期
  • 為什麼右邊是還會除餘shortDRX_Cycle,老實說我不清楚,也找不到原因,只知道如果除餘一個數字會讓 Long DRX跟 Short DRX的offset會不同。

因為Long DRX 數值通常比較大,所以開起來的次數當然明顯比較少,一到一萬除於100能整除的數字一定比除於10的數字少。

Discontinuous Reception(DRX) and HARQ Relation 

但要注意一件事情,也就是我們中間有提到的HARQ重傳機制會如何影響到DRX的機制

鑒於很多資料都不清楚,我用以下一張圖來說明HARQ與DRX的關係(僅為概念圖)

2

可以看到上圖有一個HARQ RTT Timer也有一個DRX Retransmission timer,HARQ RTT timer表示 HARQ的重傳最快什麼時候會回來,在發生HARQ解碼錯誤,通常是傳送過程被影響,於是會啟動HARQ RTT Timer,而且必定是HARQ RTT timer結束之後HARQ重傳才會到,代表這中間都還可以不理會繼續做DRX。而DRX-Retransmission timer為 HARQ RTT timer結束之後會開啟,當開啟之後,就會暫停DRX的機制,等待重傳,等到Retransmission time結束後就會回歸DRX機制。這是為了重傳而設計的機制

重點:只有在drx-InactivityTimer和drx-RetransmissionTimer都不啟動時,UE才會關閉接收器。也就是說InactivityTimer時間到了,但RetransmissionTimer還在跑,還是要乖乖的把接收器打開來等待HARQ機制重傳

 

HARQ後記

看了這麼多,可以發現協會開放了這麼多的參數,就是要給每個營運商自己去控制UE的省電程度與開啟DRX之後的延遲程度,所以到最後還是把這個調整的課題留給營運商!

7 則留言:

  1. Hi 張先生

    我看完之後有幾個問題想請教你

    1.如果short-DRX / Long DRX都開啟的時候, UE有機會在long DRX cycle time時接收資料嗎? 還是資料一要傳送時就會切到short- DRX

    2.Long DRX連線後,有啥event會讓他切成RRC idle state?

    謝謝

    回覆刪除
  2. 簡單回答,若有錯誤還請指正
    1.UE 會在Short or Long DRX模式下的On Duration 監聽是否要接收資料,若有收到eNodeB 通知有資料要接收 會停止DRX 回到Active Mode..,在Active Mode 中如果經過一段時間(Inactivity Timer) 沒資料要接收,就進入DRX
    2.有兩種方式
    (1)等 RRC 的Inactivity Timer 數完後也都沒資料要送給UE ,就會讓UE 回到Idle State
    (2) RRC直接給UE Command 說請UE 回到Idle State

    回覆刪除
  3. Minor suggestios.
    paging 有 paging cycle. UE也是週期性的在特定時間接收 PDCCH. 而其他時間也是進入 DRX. 接收器不可能一直開著
    Long / Short DRX cycle 是讓 UE 在 RRC_Connected mode 之下 能進入省電模式 但又能及時接收封包

    另外, 引用的圖應是出自 3GPP, 而非 IEEE.

    回覆刪除
    回覆
    1. 感謝您協助回覆,整年下來都很忙,沒有什麼時間去回覆大家的問題

      刪除
  4. 想請問張先生三個問題:
    1.請問PDCCH是否是在固定位置傳送(就我收集到的資訊,好像是在每一個frame的第一個subframe第一個slot),若是如此,若inactivity timer倒數完後到下一個PDCCH到達這段期間,可能有數個subframe間隔,UE是在什麼狀態(保持active,還是直接就進入DRX opportunity?)
    2.On duration應該是UE和eNB約好的,以便eNB通知UE準備接收封包,但因為inactivity timer有接收封包就自動歸零的機制,eNB如何掌握UE何時真正開始進入DRX cycle?
    3.當UE在long DRX cycle中的On duration時收到positive PDCCH告知有封包接收,進入active mode後,若再經一個inactivity timer無封包接收,是重新由short cycle DRX開始,還是仍繼續long DRX cycle,它的DRX cycle(或可說on duration)會改變位置嗎?

    回覆刪除
  5. 張先生你好
    我想請問一個問題
    我知道如果UE在LTE底下 作任何事情都需要經過RANDOM ACCESS PROCEDURE
    像是加入LTE網路的RRC連線 就要先競爭RANDOM ACCESS

    那我有一個問題 有很多解決 RANDOM ACCESS 競爭頻寬的解法
    像是 PAGING 或是 特定SLOTS允許存取 或是分類不同UE群的群組
    但是 像是前兩者 感覺是透過 UE之ID 去呼叫 去歸類
    例如現在要喚醒 某個UE 必須知道他的ID 才可以請他起床 呼叫他
    或是說 有ABC三個UE 如果要分類他們在特定SLOTS才可以發起 RANDOM ACCESS
    那感覺也會是透過他們的ID去規劃

    那現在我不懂得是 ENB 要怎樣才知道各個UE的ID以紀錄?
    我有查詢到似乎每個 UE 進入LTE 都必須先經過註冊 但是這註冊是怎樣的過程?
    以及用到哪些頻道 謝謝

    回覆刪除
    回覆
    1. 關於UE的ID有好幾種,有分Radio暫時發放的使用,這個叫做RNTI,詳情可以參考http://xdxdd.blogspot.tw/2012/08/blog-post.html。也有給後端MME做辨認使用。例如IMSI,IMEI等等都算是一種ID,你所說的應該是RNTI的那種。至於要怎麼註冊進入LTE網路。請參考http://xdxdd.blogspot.tw/2012/09/lte-attach-procedure.html。

      刪除