LTE下行物理层传输机制(6)-下行资源分配方式(Resource Allocation Type)
下行RB的資源分配(Resource Allocation)有三種方式,分別是資源分配方式0、資源分配方式1和資源分配方式2。在上一篇博文《LTE下行物理層傳輸機制(5)-DCI格式的選擇和DCI1A》中提到DCI1A的時候,提到DCI1A只能分配連續的VRB,以及這種方式下RIV(Resource Indication Value?)的計算,那么這種分配方式其實就是資源分配方式2。而DCI2和DCI2A格式使用的則是另外2種不同的分配方式,即資源分配方式0和資源分配方式1。因此在講DCI2和DCI2A之前,有必要先介紹這2種資源分配方式。
1.資源分配方式0
采用資源分配方式0的DCI有:DCI1、DCI2、DCI2A、DCI2B,這些DCI里都有個資源分配字段,用于表示哪些RB是分配給這個UE的。比如下圖的DCI2A格式,當使用資源分配方式0的時候,有ceil(N_DL_RB / P)個比特的bitmap表用于表示RB的分配情況,N_DL_RB是帶寬占用的RB總個數,參數P則與帶寬大小有關,具體見后文描述。
在RB資源分配方式0(Resource Allocation Type 0)中,所有的RB資源構成不同的RBG(RB Group),因此分配方式0就是以RBG為基本單位進行分配的。在這種分配方式里,DCI中的資源分配字段將使用一個bitmap表來分配RB資源,這個bitmap表的每個bit位就表示一個RBG。每個RBG由P個RB組成,P值與下行帶寬相關,如下表格所示。這P個連續的VRB與PRB是一一對應的。
比如下行是20MHz的帶寬(N_DL_RB=100),那么如果按照資源分配方式0分配RB資源,每個RBG將包括4個RB(P=4)。如果是1.4MHz的帶寬(N_DL_RB=6),那么每個RBG就只包括1個RB。
不同的帶寬,資源分配方式0所能使用的RBG個數也是固定的。如果用變量N_RBG來表示這個值的話,N_RBG=(N_DL_RB?/?P)向上取整。每個資源分配方式0的DCI,都對應著一個N_RBG比特長度的bitmap資源分配表,這個bitmap分配表被編碼到DCI碼流中,UE從這個分配表就可以推導出該PDSCH使用的RB資源。
比如3MHz的下行帶寬,它的RB個數N_DL_RB=15,P=2,因此N_RBG=(N_DL_RB /?P)向上取整=(15 / 2)向上取整=8。但是需要注意,如果是(N_DL_RB?mod P)!= 0的帶寬,它的最后一個RBG的大小和其它的RBG大小是不一樣的:最后一個RBG包含的RB個數=N_DL_RB - P *(N_DL_RB /?P),而其它位置的RBG包含的RB個數=P個。比如3MHz下行帶寬,除了最后一個RBG,其他(N_DL_RB /?P=15 / 2=)7個RBG,每個RBG都有2個RB,此時這7個RBG共占用了7*2=14個RB,小于整個帶寬的15個RB,因此最后一個RBG包含的RB個數=N_DL_RB - P *(N_DL_RB /?P)= 15 - 2 * (15 / 2)=1個。如下圖所示,最后一個RB14構成了一個RBG7。
另外,既然是bitmap表,就有高低位問題。協議也明確規定,RBG_0對應著這個bitmap的高位即MSB,而RBG_(N_RBG-1)則對應著這個bitmap表的低位即LSB。如果UE解碼到某個bit位=1,則表示對應的RBG分配給了這個UE。比如3M帶寬時,bitmap表占用的bit位數N_RBG=(15/2)向上取整=8,bitmap碼流=二進制Bin(00001011),那么表示該UE使用的RBG資源組分別是RBG4、RBG6和RBG7,因此使用的RB-ID分別是:RB8-RB9,RB12-RB14。所以說,分配方式0可以分配離散的RB資源,只是帶寬越大,分配的RB粒度P就越粗。
2.資源分配方式1
采用資源分配方式1的DCI有:DCI1、DCI2、DCI2A、DCI2B,與資源分配方式0相同。每個DCI里都有個資源分配字段,用于表示哪些RB是分配給這個UE的。只是與分配方式0不同的是,資源分配方式1的資源分配字段有三個域,而不是只有一個bitmap域。比如下圖的DCI2A格式,當使用資源分配方式1的時候,3個不同的信息域如圖中綠色標識區域所示。關于更詳細的內容,見后文描述。
在資源分配方式1中,所有的RB資源構成了不同的RBG(這點與資源分配方式0相同),而不同的RBG又構成了不同的RBG子集(RBG subset),因此資源組成方式是 RB -> RBG -> RBG子集。所有的RBG構成P個不同的RBG子集。當eNB給某個UE分配資源時,就選擇一個RBG子集,然后將該子集中包含的所有RB置1??傊?#xff0c;每個帶寬包含了P個RBG子集,每個RBG子集又包含了若干個RBG,每個RBG同樣也包含了P個連續的RB(最后一個RBG包含的RB個數與分配方式0相同),組成示意如下。
上圖示意的就是帶寬為10MHz時各RBG子集的構成情況,此時N_DL_RB=50,P=3,所以此時所有的RBG構成了3個RBG子集,每個RBG包含了3個連續的RB。
從上面的示意圖中也可以看到,如果使用分配方式1,那么每個DCI中,必須攜帶當前選擇的子集索引,以及該子集使用的bitmap。不過需要注意的是,此時bitmap表中的每個bit位表示的是對應的RB-ID,而不是RBG,這點與分配方式0不同。
還是以帶寬10MHz為例介紹DCI中的RB分配信息如何理解。如下圖所示,可以看到,該DCI使用了RBG子集1來指示資源分配,而具體的bitmap表中,bit2、bit3、bit5均等于1,表示子集1的第3個RB、第4個RB和第6個RB均被分配給了這個UE。另外也可以看到,每個UE使用的RB分配指示信息是通過RB-bitmap的形式給出的,這種RB-bitmap(RB0/RB1/RB2/...)是屬于同一個RBG子集內的索引,不同RBG子集的邏輯相對位置RB0/RB1/RB2/...指代的實際位置RB-ID是不同的。比如子集0內的bit2是指實際位置RB2,而子集1內的bit2指的是實際位置RB5。
上圖還可以看到,并不是所有的RBG子集包含的RBG和RB個數都是一樣的,比如子集0包含的RBG個數是6個,共有18個RB;而雖然子集1包含的RBG個數也是6個,但只有17個RB;而子集2包含的RBG個數則只有5個,RB個數只有15個。
上面介紹了資源分配方式1的一種實際使用情況,這里還有幾個地方沒有提到:DCI里面shift字段的含義、上圖中RB分配bitmap表占用的bit位個數怎么計算等等。下面就詳細說明采用資源分配方式1的DCI中,它的資源分配內容怎么填寫。
協議規定,資源分配方式1的資源分配字段占用的bit個數為(N_DL_RB / P)向上取整,包含3個域,這3個域分別是(參考前文DCI2A的碼流格式):
(1)RBG子集指示域。該域表示當前的資源分配是在P個RBG子集中選擇的是哪個子集,該域占用的bit位個數N =?log2(P)向上取整。比如10MHz帶寬,P=3,那么N=log2(P)向上取整=log2(3)向上取整=(1.58)向上取整=2,即DCI碼流中的RB資源分配字段的前2個bit,是用來表示當前使用的是哪個RBG子集。上圖中subset=01,就是表示該DCI分配的子集是子集1。
(2)shift資源偏移域。該域固定占用1個bit,如果該域的值=0,表示選中的RBG子集內的RB不做偏移,值=1表示選中的RBG子集內的RB需要執行偏移,協議使用變量delta_shift(p)來表示第p個子集內的RB偏移量,這個偏移量是從RB低位(即RB0端而不是RB99端)開始偏移的,或者說是從bitmap的MSB位開始偏移的。具體怎么偏移詳見下文。
(3)bitmap表域。該域占用的bit位個數N_TYPE1_RB?= (N_DL_RB / P)向上取整 - log2(P)向上取整 - 1,每個bit值表示當前RBG子集中的一個RB,該bitmap表的MSB比特位對應著頻率低的RB-ID,而LSB比特位則對應RB頻率高的RB-ID(這個規則與分配方式0相同)。
上面介紹了采用資源分配方式1時DCI里的資源分配字段所包含的各個域的內容,可以看到,shift域決定了bitmap表域的理解,下面以10M帶寬(50個RB)為例再具體解釋一下。
(A) 如果各個子集都不偏移即三個子集的shift=0,每個子集的偏移量delta_shift(p)=delta_shift(0)=delta_shift(1)=delta_shift(2)=0,那么:
RBG子集0由RBG0(RB0/RB1/RB2)、RBG3(RB3/4/5)、RBG6(RB6/7/8)、RBG9(RB9/10/11)、RBG12(RB12/13/14)、RBG15(RB15/16/17)組成。
RBG子集1由RBG1(RB0/RB1/RB2)、RBG4(RB3/4/5)、RBG7(RB6/7/8)、RBG10(RB9/10/11)、RBG13(RB12/13/14)、RBG16(RB15/16)組成。
RBG子集2由RBG2(RB0/RB1/RB2)、RBG5(RB3/4/5)、RBG8(RB6/7/8)、RBG11(RB9/10/11)、RBG14(RB12/13/14)組成。
不過需要注意的是,上面每個子集包含的RB個數其實是不一樣的(子集0有18個RB,子集1有17個RB,子集2有15個RB),而根據DCI的bitmap表域的計算公式,每個子集只能包含的bit個數N_TYPE1_RB?= (50/3)向上取整 -?log2(3)向上取整 - 1 = 17 - 2 - 1 = 14,即每次調度的時候,eNB只能分配14個RB給UE,所以在shift=0的條件下,實際上每個子集只有前14個RB能夠使用(從RBG0或者RB低頻端開始),而對子集0來說,RB高頻端還有4個RB不能分配使用,對子集1來說,RB高頻端還有3個RB不能分配使用,對子集2來說,RB高頻端還有1個RB不能分配使用,如下圖所示。
由于每次調度時RB個數有限制,因此某些情況下并不適合使用資源分配方式1,比如測試吞吐量的時候。
(B) 如果子集0使用了偏移即shift=1,則表示需要對組成RBG子集0的RB進行偏移調整,偏移量delta_shift(p)= N_RBGsubset_RB(p) - N_TYPE1_RB= N_RBGsubset_RB(0) - N_TYPE1_RB。其中,參數N_RBGsubset_RB(p)表示RBG子集p內的RB個數(如果是子集0的話,注意該值等于18而不是等于14),N_TYPE1_RB是bitmap域的比特長度,如下圖示意。
從上面的公式中也可以看到,偏移量delta_shift(p)=?N_RBGsubset_RB(p) - N_TYPE1_RB?也表示了每個子集中不能分配的RB個數,如子集0中有4個RB不能使用,子集1中有3個RB不能使用,而子集2中則有1個RB不能使用。那么如何決定哪幾個RB不能使用,就是shift域的真正目的:如果shift=0,則表示RBG高頻端的幾個RB不使用,而如果shift=1,則意味著RBG低頻段的幾個RBG不能使用。
仍然以10MHz帶寬為例,此時N_DL_RB=50,P=3。那么shift=1時,判斷條件[(N_DL_RB - 1)/P 向下取整] mod P = [(49/3)向下取整] mod 3 = 16 mod 3 =1。因此:
對于子集0來說,p=0<1,所以RB偏移量delta_shift(0)=?N_RBGsubset_RB(0) - N_TYPE1_RB =?[(50 - 1)/9]向下取整 * 3 + 3 - (17 - 2 - 1) = 5 * 3 + 3 - 14 =4。
對于子集1來說,p=1=1,所以RB偏移量delta_shift(1)=?N_RBGsubset_RB(1) - N_TYPE1_RB =?[49/9]向下取整 * 3 + (49 mod 3) + 1 - (17 - 2 - 1) = 15 + 2 - 14 =3。
對于子集2來說,p=2>1,所以RB偏移量delta_shift(2)=?N_RBGsubset_RB(2) - N_TYPE1_RB = [(50 - 1)/9]向下取整 * 3 - (17 - 2 - 1) = 5 * 3 - 14 =1。
根據公式計算得到三個子集的偏移量delta_shift(p)分別是4、3、1,這與前文示意圖中描述的“每個子集中不能分配的RB個數”數值一致。此時實際的分配如下圖所示。
從圖上可以看到,子集0包含的RB從實際位置RB10開始直到RB47,共14個RB,在DCI的bitmap域里,第一個RB對應的就是RB10,其它的依次類推。協議也給出了在shift=1的情況下,每個子集中每個RB的序列,如下圖所示。
以10MHz帶寬為例,P=3,N_TYPE1_RB=14,i的范圍是0~13,因此:
對于子集0,delta_shift(0)=4,i=0(第一個RB位置)時,n_RBGsubset_VRB(0)=?(0+4)/3 * 9 + 0*3 +(0+4)mod3 = 9 + 0 + 1 =10;i=13(最后一個RB位置)時,n_RBGsubset_VRB(0)=(13+4)/3 * 9 + 0*3 + (13+4)mod3 = 45+0+2=47。
對于子集1,delta_shift(1)=3,i=0(第一個RB位置)時,n_RBGsubset_VRB(1)=?(0+3)/3 * 9 + 1*3 +(0+3)mod3 = 9 + 3 + 0 =?12;i=13(最后一個RB位置)時,n_RBGsubset_VRB(1)=(13+3)/3 * 9 + 1*3 + (13+3)mod3 = 45+3+1=49。對于子集2,delta_shift(2)=1,i=0(第一個RB位置)時,n_RBGsubset_VRB(2)=?(0+1)/3 * 9 + 2*3 +(0+1)mod3 = 0 + 6 + 1 =?7; i=13(最后一個RB位置)時,n_RBGsubset_VRB(2)=(13+1)/3 * 9 + 2*3 + (13+1)mod3 = 36+6+2=44。
根據公式計算的結果,與上面示意圖的移位結果一致。
綜上,資源分配方式1的分配粒度是RB,相對分配方式0的RBG分配粒度,更加靈活自由,但由于每次只能分配一個子集的RB資源,所以使用分配方式1時,可供分配的RB最大個數受到了限制,最大流量也會因此受到限制。如果要最大化LTE系統的下行流量,eNB就不能采用資源分配方式1,而需要采用資源分配方式0下的雙流模式。
3.資源分配方式2
采用資源分配方式2的DCI有:DCI1A、DCI1B、DCI1C、DCI1D,與資源分配方式0和1沒有重疊。這種方式已經在博文《LTE下行物理層傳輸機制(5)-DCI格式的選擇和DCI1A》中提到,這里不再累述。
參考文獻:
(1)3GPP TS 36.212 V9.4.0 (2011-09) Multiplexing and channel coding
(2)3GPP TS 36.213 V9.3.0 (2010-09) Physical layer procedures
(3)3GPP TS 36.321 V9.6.0 (2012-03) Medium Access Control (MAC) protocol specification
(4)http://www.sharetechnote.com/
總結
以上是生活随笔為你收集整理的LTE下行物理层传输机制(6)-下行资源分配方式(Resource Allocation Type)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 数据库中执行数据库语句能找
- 下一篇: 3结构介绍_豹驰(BOACH)声学材料吸