數據組包方法與裝置制造方法
【專利摘要】本發(fā)明提供了一種數據組包方法與裝置,其中,數據組包方法包括:確定待發(fā)送數據的RB是按照RB對應的SDU長度向量將待發(fā)送數據組織到上行授權資源中;先對組織到上行授權資源中的待發(fā)送數據進行MAC?SDU組包,再根據MAC?SDU組包結果確定MAC?PDU的實際頭長與預留頭長的差;或者,先確定在最后一個MAC?SDU中填充的RLC?PDU的長度再對組織到上行授權資源中的待發(fā)送數據進行MAC?SDU組包;根據MAC?PDU的實際頭長與預留頭長的差或者根據RLC?PDU的長度,在MAC層和物理層共享的緩沖區(qū)中,進行MAC?PDU的組包。通過本發(fā)明,避免地址空間浪費,提高MAC?PDU的組包速度和效率。
【專利說明】數據組包方法與裝置
【技術領域】
[0001]本發(fā)明涉及通信【技術領域】,特別是涉及一種MAC(Medium Access Control,介質訪問控制)F1DU (Packet Data Unit,分組數據單元)的組包方法與裝置。
【背景技術】
[0002]LTECLong Time Evolution,長期演進)系統(tǒng)中,多種多樣的終端數據業(yè)務展現(xiàn)出各自特有的性能需求,比如最典型的網頁要求低響應時間、FTP (File Transfer Protocol,文件傳輸協(xié)議)業(yè)務要求數據的正確性、以及音視頻業(yè)務對保證速率的要求。這些不同的業(yè)務數據對無線資源的分配和競爭,在LTE系統(tǒng)內會集中體現(xiàn)在MAC(Medium Access Control,介質訪問控制)層的“多RB (Radio Bearer,無線承載)調度器”中。因為MAC層在數據面可以被理解為物理層和業(yè)務層的接口,MAC層將來自業(yè)務層的數據塊以分組的形式存在于業(yè)務層的RLC (Radio Link Control,無線鏈路控制)層的緩存之中,而來自物理層的上行授權(UpLink grant, ULgrant)被不間斷地通告給MAC層,因此,多RB調度器在功能上就需要高速且高效地將來自多個業(yè)務的RB上的數據分組,連續(xù)地組織到的ULgrant中。
[0003]多RB調度器在將RB上的數據分組組織到的ULgrant后,需要先將組織到ULgrant中的數據組織成MAC PDU包,然后再復制到物理層。一個MAC PDU包包含一個MAC PDU頭、O或多個MAC SDU (Service Data Unit ;業(yè)務數據單元)、0或多個MAC控制單元,以及可能的填充。MAC PDU頭和MAC SDUs (其中,SDUs為SDU的復數形式,表示多個SDU)的長度可變。一個MAC PDU頭包含一個或多個MAC PDU子頭;每個子頭對應一個MAC SDU或一個MAC控制單元或填充。除MAC PDU內最后一個子頭以及固定長度MAC控制單元的子頭之外,MAC PDU子頭包含R/R/E/LCID/F/L六個頭字段,而MAC PDU內最后一個子頭以及固定長度的MAC控制單元子頭包含R/R/E/LCID四個頭字段。填充對應的MAC PDU子頭也包含四個頭字段R/R/E/LCID。從上述MAC PDU的結構可以看出,MAC PDU頭是一個可變的長度,只有組完MAC SDU之后才能確定MAC的PDU頭長,所以,在組MAC SDU的時候無法確定組包的起始位置,需要借助于中間地址,在通過中間地址進行組包后,再拷貝到物理層的BUFFER (緩沖區(qū))中。
[0004]但是,這種組包方法一方面需要額外的中間地址空間,另一方面也降低了 MAC PDU組包的速度和效率。
【發(fā)明內容】
[0005]本發(fā)明提供了一種MAC PDU的組包方法與裝置,以解決現(xiàn)有MACPDU組包時,浪費地址空間,組包速度和效率不高的問題。
[0006]為了解決上述問題,本發(fā)明公開了一種數據組包方法,包括:確定待發(fā)送數據的無線承載是按照所述無線承載對應的業(yè)務數據單元長度向量,將所述待發(fā)送數據組織到上行授權資源中,其中,所述業(yè)務數據單元長度向量中的元素分別用于標識所述無線承載的各業(yè)務數據單元的分段長度;先對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包,再根據所述介質訪問控制層業(yè)務數據單元組包結果,確定介質訪問控制層分組數據單元的實際頭長與預留頭長的差,其中,所述預留頭長大于或等于所述實際頭長;或者,先確定在最后一個所述介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度,再對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包;當先對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包時,則根據所述介質訪問控制層分組數據單元的實際頭長與預留頭長的差,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包;或者,當先確定在最后一個所述介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度時,則根據所述無線鏈路控制層分組數據單元的長度,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包。
[0007]為了解決上述問題,本發(fā)明還公開了一種數據組包裝置,包括:第一確定模塊,用于確定待發(fā)送數據的無線承載是按照所述無線承載對應的業(yè)務數據單元長度向量,將所述待發(fā)送數據組織到上行授權資源中,其中,所述業(yè)務數據單元長度向量中的元素分別用于標識所述無線承載的各業(yè)務數據單元的分段長度;第二確定模塊,用于先對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包,再根據所述介質訪問控制層業(yè)務數據單元組包結果,確定介質訪問控制層分組數據單元的實際頭長與預留頭長的差,其中,所述預留頭長大于或等于所述實際頭長;或者,用于先確定在最后一個所述介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度,再對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包;組包模塊,用于當先對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包時,則根據所述介質訪問控制層分組數據單元的實際頭長與預留頭長的差,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包;或者,當先確定在最后一個所述介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度時,則根據所述無線鏈路控制層分組數據單元的長度,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包。
[0008]與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點:
[0009]首先,本發(fā)明的數據組包方案在進行MAC PDU組包時,通過獲得MAC PDU的實際頭長與預留頭長的差,或者,通過獲得最后一個MAC SDU中填充的RLCXRadio Link Control,無線鏈路控制)PDU的長度,實現(xiàn)了在協(xié)議規(guī)定的調度器特性的基礎上,BUFFER零拷貝的方案,其直接使用MAC層和底層(物理層)共享的BUFFER進行MAC PDU的組包,MAC層直接把組包數據寫入BUFFER,而不再通過中間地址進行組包后再拷貝到BUFFER中,從而減少了數據的拷貝次數,降低了 CPU load (CPU負載),也避免了地址空間浪費,提高了 MAC PDU的組包速度和效率。
[0010]其次,本發(fā)明中待發(fā)送數據的RB (Radio Bearer,無線承載)按照其對應的SDU長度向量,將待發(fā)送數據組織到ULgrant資源。SDU長度向量為RB的各待上傳SDU分段的數據長度的向量,向量中的每一個元素都是RB的一個完整SDU分段,當資源充足時,按照SDU長度向量為RB分配的無線資源能夠保證RB中SDU分段的完整傳輸,保護了 SDU的完整性,SDU的完整性是提高LTE整體性能的一個手段,它能夠有效地降低SDU的分割,減小上層報 文的開銷以及被重傳的可能性。
【專利附圖】
【附圖說明】
[0011]圖1是根據本發(fā)明實施例一的一種數據組包方法的步驟流程圖;
[0012]圖2是根據本發(fā)明實施例二的一種數據組包方法的步驟流程圖;
[0013]圖3是根據本發(fā)明實施例三的一種數據組包方法的步驟流程圖;
[0014]圖4是根據本發(fā)明實施例四的一種數據組包裝置的結構框圖;
[0015]圖5是根據本發(fā)明實施例五的一種數據組包裝置的結構框圖。
【具體實施方式】
[0016]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明。
[0017]實施例一
[0018]參照圖1,示出了根據本發(fā)明實施例一的一種數據組包方法的步驟流程圖。
[0019]本實施例的數據組包方法包括以下步驟:
[0020]步驟S102:確定待發(fā)送數據的RB是按照RB對應的SDU長度向量,將待發(fā)送數據組織到ULgrant資源中。
[0021]其中,SDU長度向量中的兀素分別用于標識RB的各SDU的分段長度。
[0022]采用按照RB對應的SDU長度向量,將RB的待發(fā)送數據組織到ULgrant資源中的方式,除最后一個SDU外,其它SDU中的實際數據長度與SDU分段長度相同,也即,只要SDU分段長度確定,則對應的SDU中的實際數據長度即確定;而最后一個SDU中的實際數據長度可能小于也可能等于SDU分段長度,無法根據SDU分段長度確定最后一個SDU中的實際數據長度,也就無法根據SDU分段長度確定MAC PDU的頭長。
[0023]在按照RB對應的SDU長度向量,將RB的待發(fā)送數據組織到ULgrant資源中時,可以先根據本RB對應的SDU長度向量獲取大于或等于本RB的Bj、且與本RB的Bj最接近的SDU分段長度;然后選擇獲取的SDU的分段長度和當前剩余的ULgrant資源的長度中的小值作為本RB的第一輪資源分配值,按照第一輪資源分配值為本RB分配ULgrant資源。若第一輪資源分配后仍有待發(fā)送數據的RB,且仍有剩余的ULgrant資源,則可以繼續(xù)按照第一輪資源分配的方法繼續(xù)進行第二輪資源分配,直到所有RB的待上傳數據全部獲得ULgrant資源或者ULgrant資源耗盡。其中,Bj用于標識需要給RB分配的無線資源的長度。Bj在RB 未得到授權時,是 RB 的 PBR (Prioritised Bit Rate,保證速率)與 TTI (TransmissionTime Interval,傳輸時間間隔)的乘積,表示當前調度時需要在第一輪給RB分配的數據長度,該Bj隨著時間的推移會逐漸增長。在為RB分配資源后,Bj會更新,從原Bj中減去為該RB分配的資源值,Bj可以為負值。
[0024]例如,一個RB有三個待上傳的SDU分段,各SDU分段的數據長度均為5,則第一SDU分段的長度向量值為5,第二 SDU分段的長度向量值為10,第三SDU分段的長度向量值為15,該RB的SDU長度向量為{5,10,15}。若該RB的Bj為13,則選擇的SDU分段長度為15。當ULgrant資源充足時,為該RB分配長度為15的ULgrant資源。
[0025]步驟S104:先對組織到ULgrant資源中的、待發(fā)送數據進行MAC SDU組包,再根據MAC SDU組包結果,確定MAC PDU的實際頭長與預留頭長的差;或者,先確定在最后一個MACSDU中填充的RLC PDU的長度,再對組織到ULgrant資源中的、待發(fā)送數據進行MAC SDU組包。
[0026]其中,預留頭長大于或等于實際頭長。
[0027]當按照RB對應的SDU長度向量,將待發(fā)送數據組織到ULgrant資源時,除最后一個MAC SDU外,其它MAC SDU對應的頭長可以方便地根據該MAC SDU的SDU長度向量確定,但最后一個MAC SDU的的SDU長度向量指示的長度則有可能不能實現(xiàn)該MAC SDU的完整組包。因此,在MACPDU組包時,需要針對這種情況而進行特別處理。
[0028]當先進行MAC SDU組包時,MAC層和物理層共享的BUFFER中預留有足夠的頭長(也即預留頭長)空間,進行MAC SDU組包后即可計算獲得MAC PDU的實際頭長,該實際頭長與預留頭長的差值即為實際MAC PDU與預留MAC PDU的偏差。依賴該偏差可以確定MAC PDU的實際起始地址和長度,實現(xiàn)直接的BUFFER寫入,無須中間地址和再次拷貝。
[0029]當先確定在最后一個MAC SDU中填充的RLC PDU的長度時,可以根據該長度,和,根據最后一個MAC SDU的長度確定的最后一個MAC SDU的頭長,再結合其它MAC SDU對應的頭長,獲得MAC PDU的實際頭長,根據該實際頭長即可確定MAC PDU的實際起始地址和長度,以及MACSDU的實際地址和長度,進而實現(xiàn)直接的BUFFER寫入,無須中間地址和再次拷貝。
[0030]步驟S106:根據MAC PDU的實際頭長與預留頭長的差,或者,根據RLC PDU的長度,在MAC層和物理層共享的BUFFER緩沖區(qū)中,進行MACPDU的組包。
[0031]當進行了先對組織到ULgrant資源中的、待發(fā)送數據進行MAC SDU組包,再根據MAC SDU組包結果,確定MAC PDU的實際頭長與預留頭長的差后,可以根據MAC PDU的實際頭長與預留頭長的差,在MAC層和物理層共享的BUFFER緩沖區(qū)中,進行MAC PDU的組包。
[0032]當進行了先確定在最后一個MAC SDU中填充的RLC PDU的長度,再對組織到ULgrant資源中的、待發(fā)送數據進行MAC SDU組包后,可以根據RLC PDU的長度和計算出的各個MAC SDU對應的頭長,在MAC層和物理層共享的BUFFER緩沖區(qū)中,進行MAC PDU的組包。
[0033]本實施例的數據組包方法的執(zhí)行主體為資源分配裝置,例如該資源分配裝置具體可以為調度器。
[0034]通過本實施例,首先,待發(fā)送數據的RB按照其對應的SDU長度向量,將待發(fā)送數據組織到ULgrant資源。SDU長度向量為RB的各待上傳SDU分段的數據長度的向量,向量中的每一個元素都是RB的一個完整SDU分段,當資源充足時,按照SDU長度向量為RB分配的無線資源能夠保證RB中SDU分段的完整傳輸,保護了 SDU的完整性,SDU的完整性是提高LTE整體性能的一個手段,它能夠有效地降低SDU的分割,減小上層報文的開銷以及被重傳的可能性。
[0035]其次,在進行MAC PDU組包時,通過獲得MAC PDU的實際頭長與預留頭長的差,或者,通過獲得最后一個MAC SDU中填充的RLC PDU的長度,實現(xiàn)了在協(xié)議規(guī)定的調度器特性的基礎上,BUFFER零拷貝的方案,其直接使用MAC層和底層(物理層)共享的BUFFER進行MAC PDU的組包,MAC層直接把組包數據寫入BUFFER,而不再通過中間地址進行組包后再拷貝到BUFFER中,從而減少了數據的拷貝次數,降低了 CPU load,也避免了地址空間浪費,提高了 MAC PDU的組包速度和效率。
[0036]實施例二
[0037]參照圖2,示出了根據本發(fā)明實施例二的一種數據組包方法的步驟流程圖。
[0038]本實施例的數據組包方法包括以下步驟:
[0039]步驟S202:調度器為Bj>0的RB進行ULgrant資源分配。
[0040]本實施例中,以執(zhí)行主體為MAC層調度器為例詳細介紹本發(fā)明的技術方案。
[0041]本實施例的資源分配方案基于兩輪調度的基本框架,第一輪調度針對PBR結果Bj,對于Bj>0的RB,將ULgrant資源按照RB的優(yōu)先級順序,先根據Bj結果和SDU長度向量分配給各個RB。如果在ULgrant資源耗盡之前,各個信道都被滿足,則可以進入第二輪調度。第二輪調度會將剩余的ULgrant資源,按照RB的優(yōu)先級順序,依次分配給還有待發(fā)數據的各RB。
[0042]具體地,本步驟可以包括:
[0043]步驟S2022:為Bj>0的RB生成SDU長度向量。
[0044]SDU長度向量為RB的各待上傳SDU分段的長度向量。以一個RB為例,生成該RB的SDU長度向量的步驟包括:獲取該RB的各SDU分段標識(如包括第一 SDU分段、第二 SDU分段和第三SDU分段)的長度值;對于每一個SDU分段,將本SDU分段所標識的長度值與本SDU分段前的所有SDU分段所標識的長度值的和,作為本SDU的分段長度(如單個SDU分段所標識的長度值均為5,則第一 SDU的分段長度5為該RB的SDU長度向量中的第一個元素、第二 SDU的分段長度5+5 = 10為該RB的SDU長度向量中的第二個元素,第三SDU的分段長度5+5+5 = 15為該RB的SDU長度向量中的第三個元素);按照該RB中的各SDU分段的前后順序,以各SDU的分段長度為元素生成該RB的SDU長度向量(該RB的SDU長度向量為{5,10,15})。其中,SDU分段所標識的長度值是一個SDU分段所能標識的長度值,即該SDU分段的長度的值。
[0045]步驟S2024:獲取ULgrant資源,調度器確定Bj>0的RB。
[0046]本實施例中,設定Bj>0的RB包括RB-l、RB-2、RB-3、RB-4和RB-5,相對應地,每個RB 的 SDU 長度向量分別為{5,10,15}、{5,10,15,20}、{5,10,15}、{5,10,15}和{5,10,15,
20}。
[0047]本實施例中,對于Bj大于O的上述各RB可以按照優(yōu)先級的順序進行后續(xù)的ULgrant資源分配處理。
[0048]步驟S2026:調度器獲取Bj>0的各RB的Bj,從各RB對應的SDU長度向量中獲取大于本RB的Bj、且與本RB的Bj最接近的SDU分段長度。
[0049]本實施例中,設定RB-1的Bj為5、RB-2的Bj為13、RB_3的Bj為8、RB_4的Bj為
9、RB-5的Bj為18。并且,如上所述,RB-1、RB-2、RB-3、RB-4和RB-5對應的SDU長度向量分別為{5,10,15}、{5,10,15,20}, {5,10,15}、{5,10,15}和{5,10,15,20}。因此,調度器確定的各RB的SDU分段長度分別為5、15、10、10和20。
[0050]步驟S2028:調度器將獲取的SDU的分段長度和當前剩余的ULgrant資源的長度中的小值作為本RB的第一輪資源分配值,按照第一輪資源分配值分配ULgrant資源給本RB。
[0051]ULgrant資源通常以長度形式表示和度量,因此,本步驟中的當前剩余的ULgrant資源的長度能夠表示當前剩余的ULgrant資源。
[0052]本實施例中,設定SDU的分段長度和當前剩余的ULgrant資源的長度中,SDU的分段長度為小值,則調度器將確定的各RB的SDU的分段長度作為第一輪資源分配值,根據該值為各RB分配上行授權資源。
[0053]步驟S20210:對于每一個RB,調度器將該RB的Bj減去對應RB的第一輪資源分配值后的結果作為該RB的新Bj。
[0054]也即,Bj (n) = Bj (n)-lk(n),其中,第一個Bj (η)表示第η個RB的新Bj,第二個Bj (η)表示第η個RB的原Bj,Ik (η)表示第η個RB的第一輪資源分配值,k表示該RB的
SDU向量序號。
[0055]步驟S20212:在上述為各個待發(fā)送數據的RB按照各自對應的SDU長度向量進行第一輪的ULgrant資源分配之后,若ULgrant資源有剩余,則根據仍有待上傳數據的RB的優(yōu)先級,按照仍有待上傳數據的RB對應的SDU長度向量,為仍有待上傳數據的RB分配ULgrant資源,直到所有RB的待上傳數據全部獲得ULgrant資源或者ULgrant資源耗盡。
[0056]也即,在進行上述步驟后,若ULgrant資源分配給Bj大于O的各RB后有剩余,則按照仍有待上傳數據的RB的優(yōu)先級,為仍有待上傳數據的RB分配ULgrant資源,直到所有RB的待上傳數據全部獲得ULgrant資源或者ULgrant資源耗盡。
[0057]第一輪調度在正常情況下,可能并不能將待發(fā)數據全部待發(fā)完,這時信道上還有剩余SDU。如果此時還有剩余 的ULgrant資源,可以進行ULgrant資源分配的第二輪調度。
[0058]第二輪調度可以采用多種方式,
[0059]例如,優(yōu)選地,若同一優(yōu)先級的仍有待上傳數據的RB有至少兩個,則根據各個RB對應的LC (邏輯信道)的ID (標識)的排列順序,按照各個RB對應的SDU長度向量,將剩余的ULgrant資源輪轉分配給仍有待上傳數據的RB。
[0060]再例如,優(yōu)選地,若同一優(yōu)先級的仍有待上傳數據的RB有N個,且N個RB中有M個RB的待上傳數據的長度Ii小于或等于譏_/^,其中,吣1^〈=10〈=丨〈=1-1,譏_為當前剩余的上行授權資源的長度;則為M個RB分配各自所需的Ii長度的上行授權資源,并按照
公式:Ul_ = IHuUZN — U更新UIm ;為剩余的N— M個RB分配U1m/N的上行授
權資源,并將更新后的UIm指示的上行授權資源迭代平均分配給剩余的N— M個RB。
[0061 ] 其中,將更新后的UIm指示的上行授權資源迭代平均分配給剩余的N— M個RB包括:將N-M個RB視為新的上述操作(上一段中描述的操作)中的N個RB,再一次施行上述操作,反復執(zhí)行,直到新一輪的N-M為1,則將所有的剩余上行授權資源分配給該RB。
[0062] 再例如,優(yōu)選地,在按照RB的優(yōu)先級,為仍有待上傳數據的RB分配上行授權資源的過程中,當首次對同一優(yōu)先級的N個RB,且N個RB中有M個RB的待上傳數據的長度Ii小于或等于U1M/N進行資源分配時,其中,N>1, M〈=N,0〈=i〈=M-l,UIm為當前剩余的上行授權資源的長度;則為M個RB分配各自所需的Ii長度的上行授權資源,并按照公式:
Ulrem = (Ulrem/N — Ii)更新U1M,獲得更新后的UIm ;對剩余的N—M個RB (即剩余的
N-M個數據長度大于U1m/N的RB)中的每個RB,獲取本RB已分配到的上行授權資源(即第一輪調度分配到的授權長度),并與更新前的U1m/N相加得到本RB的Ulavg,從本RB對應的SDU長度向量中獲取小于本RB的Ulavg、且與本RB的Ulavg最接近的SDU長度,作為本RB的授權長度Ij,其中,各RB的SDU長度向量在本RB每次獲得上行授權資源后更新,0〈=j〈=N-M ;按照所有剩余的、仍有待上傳數據的RB的標識(ID)排列順序,將更新后的Ulreni指示的上行授權資源輪轉分配給所有剩余的、仍有待上傳數據的RB。例如,假定同優(yōu)先級的RB為ABCD四個,本次調度到這個階段,CD尚需資源分配時則本次分配給C,下次調度到這個階段,如果還有CD需分配資源,則將資源分配給D。但不限于上述方式,第二輪調度還可以采用現(xiàn)有的調度方法,如,當調度到第二輪的時候,高優(yōu)先級RB更有可能分配到剩余的ULgrant資源,并且這些ULgrant資源會傾向于滿足所有的待發(fā)數據。
[0063]步驟S204:調度器確定待發(fā)送數據的RB已按照RB對應的SDU長度向量,將待發(fā)送數據組織到ULgrant資源中。
[0064]步驟S206:調度器確定MAC PDU的頭長,并根據確定后的MAC PDU頭長,進行MACrou組包。
[0065]一種可行方式是,先對組織到ULgrant資源中的、待發(fā)送數據進行MACSDU組包,再根據MAC SDU組包結果,確定MAC PDU的實際頭長與預留頭長的差,其中,預留頭長大于或等于實際頭長;然后,根據MAC PDU的實際頭長與預留頭長的差,在MAC層和物理層共享的BUFFER緩沖區(qū)中,進行MAC PDU的組包。
[0066]具體地,因預留頭長是已知的,可以先將MAC層和物理層共享的BUFFER的首地址加上預留頭長,得到SDU組包起始地址;從SDU組包起始地址開始,對組織到ULgrant資源中的、本RB的待發(fā)送數據進行MACSDU組包;在進行MAC SDU組包后,即可采用傳統(tǒng)方式計算出MAC PDU的實際頭長;然后,確定MAC PDU的實際頭長與預留頭長的差;在確定了 MACPDU的實際頭長與預留頭長的差之后,將MAC層和物理層共享的BUFFER的首地址加上實際頭長與預留頭長的差,得到PDU組包起始地址;從PDU組包起始地址開始,進行MAC PDU的組包,先寫入MAC PDU的頭部數據,再寫入MAC SDU數據。
[0067]另一種可行方式是,先確定在最后一個MAC SDU中填充的RLC PDU的長度,再對組織到ULgrant資源中的、待發(fā)送數據進行MAC SDU組包;然后,根據RLC PDU的長度,在MAC層和物理層共享的BUFFER緩沖區(qū)中,進行MAC PDU的組包。此種方式又可以進一步分為兩種方式:
[0068]方式一,在進行MAC SDU組包前,通知RLC層確定本RB的最后一個MAC SDU中填充的RLC PDU的長度;從RLC層獲取確定的所述長度;再對組織到ULgrant資源中的、待發(fā)送數據進行MAC SDU組包;根據最后一個MAC SDU中填充的RLC PDU的長度,和根據各個MACSDU的長度計算出的各個MAC SDU對應的頭長,確定MAC PDU的頭長;再根據確定的MAC PDU的頭長和MAC SDU的長度,在MAC層和物理層共享的BUFFER中,進行MAC PDU的組包。
[0069]方式二,將最后一個MAC SDU在ULgrant資源中的普通填充(common padding,即填充數超過2個字節(jié)的填充)的長度,確定為最后一個MAC SDU中填充的RLC PDU的長度;再對組織到ULgrant資源中的、待發(fā)送數據進行MAC SDU組包;然后,獲取最后一個MAC SDU在ULgrant資源中的授權長度;根據獲取的授權長度,確定最后一個MAC SDU的頭長為中頭(即MAC PDU子頭包含六個頭字段R/R/E/LCID/F/L時,其中L頭字段為7個bit的頭長)與普通填充的長度之和,或者,為長頭(即MAC PDU子頭包含六個頭字段R/R/E/LCID/F/L時,其中L頭字段為15個bit的頭長)與普通填充的長度之和;接著,根據確定的最后一個MACSDU的頭長,以及,其它各個MAC SDU的長度對應的各個MAC SDU的頭長,確定MAC PDU的頭長;再然后,根據MAC PDU的頭長和MAC SDU的長度,在MAC層和物理層共享的BUFFER中,進行MAC PDU組包。
[0070]通過本實施例,在協(xié)議規(guī)定的調度器特性的基礎上,提供了一種BUFFER零拷貝方案,直接使用MAC層和底層(物理層)共享的BUFFER進行MAC的組包,減少了一次拷貝,從而降低了 CPU load。并且,針對BUFFER零拷貝對調度器進行了改進,對同優(yōu)先級LC采用了一種輪詢方式進行了公平性的近似處理。多個同優(yōu)先級公平性,因為與當前信道的待發(fā)數據量直接相關所以較為復雜。本實施例采用了基礎公平保證+剩余輪詢的方式,前者保證每個同優(yōu)先級RB都能得到均值內最大限度的完整SDU個數的授權,而剩余輪詢也能確保最大限度的完整SDU個數的授權,同時兼顧公平原則,算法處理的復雜性也是可以接受的。
[0071]實施例三
[0072]參照圖3,示出了根據本發(fā)明實施例三的一種數據組包方法的步驟流程圖。
[0073]本實施例仍基于兩輪調度的基本框架,從兩輪調度和BUFFER零拷貝層面對本實施例的數據組包方法進行說明。
[0074]本實施例的數據組包方法包括以下步驟:
[0075]步驟S302 =MAC調度器對所有Bj大于O的RB進行第一輪調度。
[0076]本步驟在ULgrant授權通告到達UE時執(zhí)行,針對所有Bj大于O的RB,按照優(yōu)先級的順序(同優(yōu)先級則按照ID順序)分配ULgrant資源。每個RB得到的ULgrant授權長度Grantstepl為:SDU向量中從Bj向上取整值、和剩余ULgrant即Ulrail中的最小值。同時,更新 Bj 為 Bj-Grantstepl。
[0077]具體地,第一輪調度針對PBR結果Bj:將ULgrant按照RB的優(yōu)先級順序,先根據Bj結果和待發(fā)數據長度分配資源給各個RB ;如果在ULgrant耗盡之前,各個信道都被滿足,則可以進入第二輪調度,而第二輪``調度會將剩余的ULgrant,按照RB的優(yōu)先級順序,依次分配給還有待發(fā)數據的各RB。
[0078]具體的各調度輪次情形如下:
【權利要求】
1.一種數據組包方法,其特征在于,包括: 確定待發(fā)送數據的無線承載是按照所述無線承載對應的業(yè)務數據單元長度向量,將所述待發(fā)送數據組織到上行授權資源中,其中,所述業(yè)務數據單元長度向量中的元素分別用于標識所述無線承載的各業(yè)務數據單元的分段長度; 先對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包,再根據所述介質訪問控制層業(yè)務數據單元組包結果,確定介質訪問控制層分組數據單元的實際頭長與預留頭長的差,其中,所述預留頭長大于或等于所述實際頭長;或者,先確定在最后一個所述介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度,再對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包; 當先對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包時,則根據所述介質訪問控制層分組數據單元的實際頭長與預留頭長的差,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包; 或者, 當先確定在最后一個所述介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度時,則根據所述無線鏈路控制層分組數據單元的長度,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包。
2.根據權利要求1所述的方法,其特征在于, 所述先對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包的步驟包括:將所述介質訪問控制層和物理層共享的緩沖區(qū)的首地址加上所述預留頭長,得到業(yè)務數據單元組包起始地址;從所述業(yè)務數據單元組包起始地址開始,對組織到所述上行授權資源中的、所述待發(fā)送數據進行所述介質訪問控制層業(yè)務數據單元的組包;` 所述根據所述介質訪問控制層分組數據單元的實際頭長與預留頭長的差,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包的步驟包括:將所述介質訪問控制層和物理層共享的緩沖區(qū)的首地址加上所述實際頭長與預留頭長的差,得到分組數據單元組包起始地址;從所述分組數據單元組包起始地址開始,進行所述介質訪問控制層分組數據單元的組包。
3.根據權利要求1所述的方法,其特征在于, 所述確定在最后一個所述介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度的步驟包括:在進行所述介質訪問控制層業(yè)務數據單元組包前,通知無線鏈路控制層確定所述最后一個介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度;從所述無線鏈路控制層獲取確定的所述長度; 所述根據所述無線鏈路控制層分組數據單元的長度,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包的步驟包括:根據所述無線鏈路控制層分組數據單元的長度,和各個所述介質訪問控制層業(yè)務數據單元的長度,確定所述介質訪問控制層分組數據單元的頭長;根據確定的所述介質訪問控制層分組數據單元的頭長和所述介質訪問控制層業(yè)務數據單元的長度,在所述介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包。
4.根據權利要求1所述的方法,其特征在于, 所述確定在最后一個所述介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度的步驟包括:將所述最后一個介質訪問控制層業(yè)務數據單元在所述上行授權資源中的普通填充的長度,確定為所述最后一個介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度; 所述根據所述無線鏈路控制層分組數據單元的長度,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包的步驟包括:獲取所述最后一個介質訪問控制層業(yè)務數據單元在所述上行授權資源中的授權長度;根據獲取的所述授權長度,確定所述最后一個介質訪問控制層業(yè)務數據單元的頭長為中頭與所述普通填充的長度之和,或者,為長頭與所述普通填充的長度之和;根據所述最后一個介質訪問控制層業(yè)務數據單元的頭長,和其它各個所述介質訪問控制層業(yè)務數據單元的長度,確定所述介質訪問控制層分組數據單元的頭長;根據確定的所述介質訪問控制層分組數據單元的頭長和所述介質訪問控制層業(yè)務數據單元的長度,在所述介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包。
5.根據權利要求1所述的方法,其特征在于,在所述確定待發(fā)送數據的無線承載已按照所述無線承載對應的業(yè)務數據單元長度向量,將所述待發(fā)送數據組織到上行授權資源中的步驟之前,還包括: 在為各個待發(fā)送數據的無線承載按照各自對應的業(yè)務數據單元長度向量進行第一輪的上行授權資源分配之后,若所述上行授權資源有剩余,則根據仍有待上傳數據的無線承載的優(yōu)先級,按照所述仍有待上傳數據的無線承載對應的業(yè)務數據單元長度向量,為所述仍有待上傳數據的無線承載分配上行授權資源,直到所有無線承載的待上傳數據全部獲得上行授權資源或者所述上行授權資源耗盡。
6.根據權利要求5所述的方法,其特征在于,所述根據仍有待上傳數據的無線承載的優(yōu)先級,按照所述仍有待上傳數據的無`線承載對應的業(yè)務數據單元長度向量,為所述仍有待上傳數據的無線承載分配上行授權資源的步驟包括: 若同一優(yōu)先級的所述仍有待上傳數據的無線承載有至少兩個,則根據各個無線承載對應的邏輯信道的標識的排列順序,按照各個所述無線承載對應的業(yè)務數據單元長度向量,將剩余的所述上行授權資源輪轉分配給所述仍有待上傳數據的無線承載。
7.一種數據組包裝置,其特征在于,包括: 第一確定模塊,用于確定待發(fā)送數據的無線承載是按照所述無線承載對應的業(yè)務數據單元長度向量,將所述待發(fā)送數據組織到上行授權資源中,其中,所述業(yè)務數據單元長度向量中的元素分別用于標識所述無線承載的各業(yè)務數據單元的分段長度; 第二確定模塊,用于先對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包,再根據所述介質訪問控制層業(yè)務數據單元組包結果,確定介質訪問控制層分組數據單元的實際頭長與預留頭長的差,其中,所述預留頭長大于或等于所述實際頭長;或者,用于先確定在最后一個所述介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度,再對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包; 組包模塊,用于當先對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包時,則根據所述介質訪問控制層分組數據單元的實際頭長與預留頭長的差,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包;或者,當先確定在最后一個所述介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度時,則根據所述無線鏈路控制層分組數據單元的長度,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包。
8.根據權利要求7所述的裝置,其特征在于, 所述第二確定模塊在先對組織到所述上行授權資源中的、所述待發(fā)送數據進行介質訪問控制層業(yè)務數據單元組包時:將所述介質訪問控制層和物理層共享的緩沖區(qū)的首地址加上所述預留頭長,得到業(yè)務數據單元組包起始地址;從所述業(yè)務數據單元組包起始地址開始,對組織到所述上行授權資源中的、所述待發(fā)送數據進行所述介質訪問控制層業(yè)務數據單元的組包; 所述組包模塊在根據所述介質訪問控制層分組數據單元的實際頭長與預留頭長的差,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包時:將所述介質訪問控制層和物理層共享的緩沖區(qū)的首地址加上所述實際頭長與預留頭長的差,得到分組數據單元組包起始地址;從所述分組數據單元組包起始地址開始,進行所述介質訪問控制層分組數據單元的組包。
9.根據權利要求7所述的裝置,其特征在于, 所述第二確定模塊在確定 在最后一個所述介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度時:在進行所述介質訪問控制層業(yè)務數據單元組包前,通知無線鏈路控制層確定所述最后一個介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度;從所述無線鏈路控制層獲取確定的所述長度; 所述組包模塊在根據所述無線鏈路控制層分組數據單元的長度,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包時:根據所述無線鏈路控制層分組數據單元的長度,和各個所述介質訪問控制層業(yè)務數據單元的長度,確定所述介質訪問控制層分組數據單元的頭長;根據確定的所述介質訪問控制層分組數據單元的頭長和所述介質訪問控制層業(yè)務數據單元的長度,在所述介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包。
10.根據權利要求7所述的裝置,其特征在于, 所述第二確定模塊在確定在最后一個所述介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度時:將所述最后一個介質訪問控制層業(yè)務數據單元在所述上行授權資源中的普通填充的長度,確定為所述最后一個介質訪問控制層業(yè)務數據單元中填充的無線鏈路控制層分組數據單元的長度; 所述組包模塊在根據所述無線鏈路控制層分組數據單元的長度,在介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包時:獲取所述最后一個介質訪問控制層業(yè)務數據單元在所述上行授權資源中的授權長度;根據獲取的所述授權長度,確定所述最后一個介質訪問控制層業(yè)務數據單元的頭長為中頭與所述普通填充的長度之和,或者,為長頭與所述普通填充的長度之和;根據所述最后一個介質訪問控制層業(yè)務數據單元的頭長,和其它各個所述介質訪問控制層業(yè)務數據單元的長度,確定所述介質訪問控制層分組數據單元的頭長;根據確定的所述介質訪問控制層分組數據單元的頭長和所述介質訪問控制層業(yè)務數據單元的長度,在所述介質訪問控制層和物理層共享的緩沖區(qū)中,進行所述介質訪問控制層分組數據單元的組包。
11.根據權利要求7所述的裝置,其特征在于,還包括: 調度模塊,用于在所述第一確定模塊確定待發(fā)送數據的無線承載已按照所述無線承載對應的業(yè)務數據單元長度向量,將所述待發(fā)送數據組織到上行授權資源中之前,在為各個待發(fā)送數據的無線承載按照各自對應的業(yè)務數據單元長度向量進行第一輪的上行授權資源分配之后,若所述上行授權資源有剩余,則根據仍有待上傳數據的無線承載的優(yōu)先級,按照所述仍有待上傳數據的無線承載對應的業(yè)務數據單元長度向量,為所述仍有待上傳數據的無線承載分配上行授權資源,直到所有無線承載的待上傳數據全部獲得上行授權資源或者所述上行授權資源耗盡。
12.根據權利要求11所述的裝置,其特征在于,所述調度模塊在根據仍有待上傳數據的無線承載的優(yōu)先級,按照所述仍有待上傳數據的無線承載對應的業(yè)務數據單元長度向量,為所述仍有待上傳數據的無線承載分配上行授權資源時:若同一優(yōu)先級的所述仍有待上傳數據的無線承載有至少兩個,則根據各個無線承載對應的邏輯信道的標識的排列順序,按照各個所述無線 承載對應的業(yè)務數據單元長度向量,將剩余的所述上行授權資源輪轉分配給所述仍有待上傳數據的無線承載。
【文檔編號】H04W28/06GK103517335SQ201310430649
【公開日】2014年1月15日 申請日期:2013年9月18日 優(yōu)先權日:2013年9月18日
【發(fā)明者】周翠平, 朱文博, 丁麗潔, 蔣詩梅, 周光明 申請人:北京創(chuàng)毅訊聯(lián)科技股份有限公司, 北京創(chuàng)毅視訊科技有限公司