Mac-hs實體概述和R99結(jié)構(gòu)的協(xié)議棧相比,HSDPA協(xié)議棧將部分鏈路調(diào)整功能移至NodeB,增加了系統(tǒng)效率,減少了鏈路調(diào)整時間,另外,與其他傳輸信道終結(jié)于RNC相比,HSDPA的HS-DSCH信道終結(jié)于NodeB中的MAC-hs,而HARQ就是由Node B中的MAC-hs層完成的,這將提供比R99的RLC確認機制更短的時延。
如果給UE 分配了一條HS-DSCH,在已經(jīng)配置了MAC-c\sh的情況下,MAC-d PDU通過Iub接口從MAC-c\sh傳到MAC-hs;在沒有配置MAC-c\sh的情況下,MAC-d PDU通過Iur\Iub接口從MAC-d傳到MAC-hs。
Mac-hs實體組成MAC-hs用于處理在HS-DSCH上傳輸?shù)臄?shù)據(jù),通過MAC-Control接收RRC層的配置參數(shù)。對于MAC-hs中的每一個MAC-d PDU都要進行優(yōu)先級的處理。它由四個部分組成:
-
流量控制:
流控實體的功能可以應(yīng)用于具有或者不具有MAC-c/sh的HSDPA協(xié)議結(jié)構(gòu)。MAC-d與MAC-hs或者MAC-c/sh與MAC-hs之間共同提供一個流控實體,流控實體的功能是針對每一個MAC-d流中的每一個優(yōu)先級來獨立控制的。流控實體用來控制來自MAC-d或者MAC-c/sh的數(shù)據(jù)流,以便滿足空中接口變化的能力。通過流控可以減少傳輸時延和堵塞情況。
-
調(diào)度、優(yōu)先級處理:
此實體的作用是根據(jù)不同的優(yōu)先級來協(xié)調(diào)數(shù)據(jù)流和HARQ之間的資源。根據(jù)UE在上行HS-DPCCH中的ACK/NACK反饋情況決定是新發(fā)還是重傳,根據(jù)用戶優(yōu)先級和調(diào)度策略,以及信道質(zhì)量指示,確定用戶的傳輸數(shù)據(jù)塊大小,設(shè)置優(yōu)先級和隊列。在一個HS-DSCH內(nèi)的每一個優(yōu)先級的TSN是惟一的,后面?zhèn)鱽淼男聰?shù)據(jù)塊的TSN也會依次遞增。為了保證正確的傳輸優(yōu)先級,在任何時間都可以發(fā)起新的HARQ進程,NodeB根據(jù)通信寬口和調(diào)度優(yōu)先級,將MAC-d PDU分配到對應(yīng)的優(yōu)先級隊列和數(shù)據(jù)塊的編號。按照信道質(zhì)量好的用戶盡量滿足最大傳輸速率的方式,來獲得更好的小區(qū)吞吐量。
-
HARQ:
HARQ實體負責(zé)完成每一個用戶的HARQ功能。HARQ實體處理多個HARQ進程,實現(xiàn)HSDPA用戶多進程的數(shù)據(jù)傳輸,每一個TTI傳輸?shù)腍S-DSCH數(shù)據(jù)對應(yīng)一個HARQ進程。
-
TFRC選擇:
TFRC實體的作用是根據(jù)實際的信道情況和網(wǎng)絡(luò)資源情況選擇合適的傳輸格式,分配合適的HS-DSCH信道碼,選擇最佳的調(diào)制方式,即確定TFRI。
TFRI包括了HS-DSCH TF部分,MAC-hs傳輸塊大小和調(diào)制方案,同時還有在HS-DSCH TTI上映射的物理信道的信息。
Mac-hs實體功能 Flow Control:- 流量控制實體其實應(yīng)分為兩部分,一個在MAC-d中,另一個在MAC-hs中,通過這兩個部分的配合來完成MAC-d到MAC-hs的流量控制功能。在MAC-hs實體中創(chuàng)建一個緩沖區(qū),緩存上層(MAC-d)發(fā)來的數(shù)據(jù)。通過監(jiān)測該緩沖區(qū)的使用情況,MAC-hs模塊中的流量控制實體向MAC-d模塊中的流量控制實體發(fā)出增大或減小流量的指令,從而達到流量控制的目的(防止緩沖區(qū)的溢處,導(dǎo)致MAC-hs層丟包;又要防止緩沖區(qū)干涸,導(dǎo)致“斷流”,影響吞吐量)。
- 為了達到以上的設(shè)計目標(biāo),必須對優(yōu)先級緩沖區(qū)做一個劃分。設(shè)計三個門限:SLOW_DOWN_GATE_BYTE、STOP_DATA_GATE_BYTE、SPEED_UP_GATE_BYTE。若緩沖區(qū)的使用量大于或等于SLOW_DOWN_GATE_BYTE,則向MAC-d發(fā)送降低流量的指令EN_SLOWN_DOWN;若緩沖區(qū)的使用量大于或等于STOP_DATA_GATE_BYTE,則向MAC-d發(fā)送停止數(shù)據(jù)發(fā)送的指令EN_STOP_DATA,若緩沖區(qū)的使用量小于或等于SPEED_UP_GATE_BYTE,則向MAC-d發(fā)送增大流量的指令EN_SPEED_UP
Scheduling/Priority Handling:該模塊實現(xiàn)以下功能:
- 調(diào)度一個小區(qū)中的所有UE,(目前我們的儀表只支持單個UE)。
- 根據(jù)高層的指示調(diào)度MAC-hs SDU,一個UE可以有幾個MAC-d流,MAC-hs接收MAC-d發(fā)送來的PDU,并按照其優(yōu)先級放入相應(yīng)的優(yōu)先級緩存隊列中。
- 為所選隊列中新傳送的數(shù)據(jù)塊設(shè)置TSN,針對一條HS-DSCH來說,隊列中的第一個MAC-hs PDU的TSN為0,每傳送一個TSN加1,
- 通過捆綁NDI比特來實現(xiàn)TSN的重復(fù)使用,為了恢復(fù)之前的傳輸或迫使UE沖洗軟緩沖區(qū),在這種情況下payload就會改變,所以要注意保持高層數(shù)據(jù)的順序。
- 為每一個傳到HARQ實體的MAC-hs PDU指示Queue ID 和TSN。
- 根據(jù)優(yōu)先級(包括TSN)決定是發(fā)送重傳的數(shù)據(jù)還是發(fā)送新數(shù)據(jù)。
- 基于高層的延時特性,“調(diào)度”可以丟棄任何超時的MAC-hs SDU。
- 負責(zé)為新的或者重傳的MAC-hs SDU選擇合適的冗余版本。
HARQ:該模塊實現(xiàn)以下功能:
- 配合Schedule模塊完成HARQ的PDU組裝和發(fā)送。對從schedule處收到的MAC-hs PDU要進行判斷,是新數(shù)據(jù)還是要求重傳的數(shù)據(jù)。如果是新數(shù)據(jù),則啟動一個空閑的process,記錄RV信息,并把MAC-hs PDU復(fù)制,把副本和傳輸次數(shù)放入等待回復(fù)的鏈表中,再將MAC-hs PDU發(fā)給schedule。如果是重傳的MAC-hs PDU,則將相應(yīng)的PDU放入重傳隊列,把重傳計數(shù)加1,記錄RV信息,將這個MAC-hs PDU從重傳隊列中移到等待回復(fù)隊列中,再將MAC-hs PDU發(fā)給schedule。
- 接收并處理HARQ反饋信息,發(fā)送端發(fā)出的每個PDU都需要確認,接收端通過HARQ反饋消息(ACK,NACK,NULL)來描述PDU的接收情況。ACK表示該PDU正確接收,NACK表示沒有正確接收,NULL由物理層參數(shù)m_iExistFlag指示,表明在這個TTI,UE沒有上報對應(yīng)PDU的確認消息。
如果收到NACK,首先判斷這個PDU的傳輸次數(shù)是否已達到最大傳輸次數(shù),如果已經(jīng)達到高層配置的最大傳輸次數(shù),則調(diào)用放棄重傳的函數(shù),然后還要判斷此PDU是否處在相應(yīng)QUEUE的WINDOWSIZE之外,如果處在WINDOWSIZE之外,則調(diào)用放棄重傳函數(shù),如果既沒有到達最大重傳次數(shù),又沒有處于WINDOWSIZE之外,則將數(shù)據(jù)信息由等待回復(fù)的鏈表中轉(zhuǎn)存至等待重發(fā)的鏈表里,等待調(diào)度的進一步處理,同時刪除等待回復(fù)的鏈表中的相應(yīng)節(jié)點。
如果收到ACK,將PROCESS_ID由等待回復(fù)的鏈表中轉(zhuǎn)存到空閑HARQ進程鏈表中供調(diào)度使用,并且同樣刪除等待回復(fù)鏈表中的相應(yīng)節(jié)點。
如果收到NULL,按照測量協(xié)議的要求,須使用上次的RVinfo和processID重傳一次,所以要將記錄傳輸次數(shù)的TransmitCount減1,并將數(shù)據(jù)信息由等待回復(fù)的鏈表中轉(zhuǎn)存至等待重發(fā)的鏈表里,等待調(diào)度的進一步處理,同時刪除等待回復(fù)的鏈表中的相應(yīng)節(jié)點。
- 為每個HARQ process維護狀態(tài)機,狀態(tài)維護是通過將PROCESS_ID放入不同的鏈表來實現(xiàn)的。共有三個鏈表,為HARQ_IDLE_PROCESS_LIST,HARQ_ WAITFEEDBACK _LIST,HARQ_ WAITRETRANSMIT_ LIST,分別對應(yīng)空閑狀態(tài)、等待回復(fù)狀態(tài)和等待重傳狀態(tài)。
- 當(dāng)一個PDU在經(jīng)過多次發(fā)送(最大傳輸次數(shù)由高層配置)仍然無法被UE正確接收,HARQ將放棄這個PDU的傳輸,丟棄此PDU,將WAIT_ RETRANSMIT _LIST鏈表中這個PDU的數(shù)據(jù)清空,并將這個PDU占用的PROCESS_ID存至IDLE_LIST表明這個HARQ進程空閑,可用于新一輪的傳輸。
TFRC selection:該模塊實現(xiàn)以下功能:
- 接收端上傳的DPCCH_DATA經(jīng)物理層上傳到高層,高層再將此數(shù)據(jù)傳輸?shù)絋FRC模塊,該模塊將除原語頭以外的參數(shù)存儲到本地全局變量中供調(diào)度模塊調(diào)用。
每個TTI網(wǎng)側(cè)都要通知UE當(dāng)前的傳輸配置,這些參數(shù)被封裝在一個結(jié)構(gòu)體中通過SCCH傳給UE,其中一個參數(shù)就是TFRI(TFRI部分包括傳輸塊大小,調(diào)制方式,時隙以及每時隙所用的碼道數(shù))可以通過‘高層配置’或是根據(jù)‘接收到的CQI進行AMC判決’決定傳輸方式,如果根據(jù)高層配置決定傳輸方式,則在每次傳輸數(shù)據(jù)前,高層會傳送關(guān)于調(diào)制方式的指令,即決定是QPSK還是16QAM,兩種調(diào)制方式都有一個相對應(yīng)的傳輸塊大小,所以根據(jù)高層配置的傳輸方式就可以確定傳輸塊大小,同時傳輸所用的時隙及各時隙碼道數(shù)都可以被確定,即SCCH數(shù)據(jù)中的TFRI被確定了,然后根據(jù)Mod_Scheduler傳遞的指針將上述參數(shù)填入SCCH數(shù)據(jù)中的對應(yīng)的TFRI結(jié)構(gòu)體中。由于,TFRI中的傳輸塊大小值并不是真實的大小,只是真實值對應(yīng)的一個6比特數(shù)。所以除了上述參數(shù)外,還要添加傳輸塊真實大小的值供PDU生成模塊使用。