本發(fā)明的示例性實施例一般涉及用于無線電信中的調(diào)制解調(diào)器板。特別地,各種實施例涉及這樣的技術(shù),所述技術(shù)用于針對使用多核處理器的單一調(diào)制解調(diào)器板上的多小區(qū)支持增強(qiáng)諸如帶有PREEMPTRT的SMPLinux的操作系統(tǒng)的實時性能。盡管本發(fā)明特別涉及無線電信領(lǐng)域,并且由此將特別參考其來進(jìn)行描述,但應(yīng)當(dāng)認(rèn)識到,本發(fā)明可以在其它領(lǐng)域和應(yīng)用中有用。
背景技術(shù):作為背景,LTE(長期演進(jìn))是正迅速演進(jìn)的3GPP項目,其目的是改進(jìn)UMTS(通用移動電信系統(tǒng))移動電話標(biāo)準(zhǔn)以應(yīng)付未來通信網(wǎng)絡(luò)需求。LTE提升無線網(wǎng)絡(luò)效率和帶寬,降低成本,并增強(qiáng)服務(wù)體驗。特別地,LTE利用新頻譜機(jī)會并提供與其它開放標(biāo)準(zhǔn)的更好集成。LTE一般包括LTERAN(無線電接入網(wǎng)絡(luò))(也稱為E-UTRAN)以及EPS(演進(jìn)的分組系統(tǒng),也稱為演進(jìn)的分組核心)。通常將通信系統(tǒng)拆分成兩個主要功能:數(shù)據(jù)平面功能和控制平面功能。在之前的LTE產(chǎn)品中,在調(diào)制解調(diào)器板上使用至少兩個處理器:一個用于支持控制平面功能(非實時,例如運行、維護(hù)和管理(或OA&M),以及呼叫處理管理相關(guān)的功能),以及另一個用于端接和支持?jǐn)?shù)據(jù)平面功能(實時,例如LTE2層處理)??刂坪蛿?shù)據(jù)平面這兩者使用不同操作系統(tǒng)(OS)實例,諸如Linux用于控制平面,以及諸如vXWorks(由加利福尼亞阿拉米達(dá)的WindRiverSystems制作和出售)的實時OS用于數(shù)據(jù)平面核心。通常,一個調(diào)制解調(diào)器板支持一個扇區(qū)或小區(qū)。因此,為支持多小區(qū)(例如3個小區(qū)或6個小區(qū))配置,將有必要提供與小區(qū)數(shù)量一樣多的調(diào)制解調(diào)器板。作為改進(jìn),多核處理器可以在調(diào)制解調(diào)器板上在LTE無線基站中被使用。在此情況下,諸如帶有PREEMPTRT補(bǔ)丁的SMPLinux的操作系統(tǒng)運行在一個包含全部八個核心的SMP(對稱多處理)分區(qū)上。在該配置中,控制平面(非實時線程和進(jìn)程)和數(shù)據(jù)平面(實時線程和進(jìn)程)即使其一定要運行在不同核心上但共享相同的操作系統(tǒng)實例。然而,開源的帶有PREEMPTRT的SMPLinux不是諸如vxWorks的骨干實時操作系統(tǒng)。因此,為確保來自帶有PREEMPTRT的SMPLinux的最優(yōu)實時性能,可以使用一些技術(shù)來減少或甚至消除通常由使用所述操作系統(tǒng)產(chǎn)生的極大等待時間尖峰。極大等待時間尖峰如果未被解決和消除,則趨向?qū)χT如LTE2層調(diào)度器的應(yīng)用的整體系統(tǒng)行為有不利影響,可能致使系統(tǒng)不能進(jìn)行部署。由此,存在對這樣的方法和系統(tǒng)的需求,所述方法和系統(tǒng)用于增強(qiáng)諸如帶有PREEMPTRT補(bǔ)丁的SMPLinux的操作系統(tǒng)的實時性能,其是經(jīng)由例如(a)禁用數(shù)據(jù)平面核心上的非必須中斷,其中,數(shù)據(jù)平面核心專用于運行僅實時進(jìn)程或線程,并將這些中斷選路到控制平面核心,以及(b)以與默認(rèn)“中斷”模式相反的“輪詢”模式運行特定硬件部件,由此減少針對特定數(shù)據(jù)核心生成的中斷的數(shù)量。
技術(shù)實現(xiàn)要素:此處描述了各種技術(shù),所述技術(shù)可以用于增強(qiáng)諸如帶有PREEMPTRT補(bǔ)丁的SMPLinux的操作系統(tǒng)(OS)的實時性能。帶有PREEMPTRT的SMPLinux不是骨干實時操作系統(tǒng)。因此,引入這樣的技術(shù)至關(guān)重要,所述技術(shù)用于解決可以否則由使用帶有PREEMPTRT的SMPLinux產(chǎn)生的極大等待時間問題。這些極大等待時間尖峰可以輕易影響具有非常嚴(yán)格實時性能需求的LTE2層調(diào)度器的正確系統(tǒng)行為,由此致使所述系統(tǒng)不能進(jìn)行部署。特別地,可以用于增強(qiáng)諸如帶有PREEMPTRT的SMPLinux的操作系統(tǒng)的實時性能的軟件技術(shù)中的一種涉及,禁用所述數(shù)據(jù)平面核心上的非必須中斷,所述數(shù)據(jù)平面核心專用于運行僅實時進(jìn)程或線程。作為代替,諸如軟件DMA中斷的這些非必須中斷被選路到所述控制平面核心。另外,硬件部件中的至少一個(例如隊列管理器)可以以與默認(rèn)“中斷”模式相反的“輪詢”模式運行,由此減少對于特定數(shù)據(jù)核心生成的中斷的數(shù)量。在一個實施例中,提供一種計算機(jī)實現(xiàn)的方法,所述方法使用調(diào)制解調(diào)器板上的多核處理器處理無線網(wǎng)絡(luò)中的數(shù)據(jù)分組。當(dāng)以輪詢模式運行隊列管理器時,獲取用于入站數(shù)據(jù)分組的緩沖器,并且將所述數(shù)據(jù)分組入隊到幀隊列中,其中,所述幀隊列包括將被所述隊列管理器處理的幀描述符的鏈表。使用內(nèi)核線程周期性地向所述隊列管理器輪詢排隊等候的幀描述符,并將N個幀描述符從所述硬件部件出隊,其中,N是可調(diào)參數(shù)??梢栽趦?nèi)核空間中執(zhí)行關(guān)聯(lián)于每個出隊的幀描述符的回調(diào)函數(shù),其中,所述回調(diào)函數(shù)將所述幀描述符內(nèi)所述數(shù)據(jù)分組的緩沖器指針入隊到內(nèi)核到用戶映射的緩沖器描述符環(huán)中以便處理。最后,在沒有上下文切換的情況下將所述數(shù)據(jù)分組遞送到消息模塊。在另一實施例中,提供一種用于處理無線網(wǎng)絡(luò)中的數(shù)據(jù)分組的系統(tǒng)。該裝置一般包括調(diào)制解調(diào)器板以及聯(lián)接到所述調(diào)制解調(diào)器板的包括多個處理器核心的多核處理器,其中,所述調(diào)制解調(diào)器板包括內(nèi)核空間和用戶空間。另外,所述系統(tǒng)可以包括:隊列管理器,其被配置為管理隊列并以輪詢模式運行;以及幀管理器,其被配置為,獲取用于入站數(shù)據(jù)分組的緩沖器,并將所述數(shù)據(jù)分組入隊到幀隊列中,其中,所述幀隊列包括將被所述硬件部件處理的幀描述符的鏈表。進(jìn)一步地,內(nèi)核線程被配置為周期性地向所述隊列管理器輪詢排隊等候的幀描述符,并將N個幀描述符從所述硬件部件出隊,其中,N是可調(diào)參數(shù)。內(nèi)核空間中關(guān)聯(lián)于每個出隊的幀描述符的回調(diào)函數(shù)被配置為,將所述幀描述符內(nèi)所述數(shù)據(jù)分組的緩沖器指針入隊到內(nèi)核到用戶映射的緩沖器描述符環(huán)中以便處理。最后,所述系統(tǒng)可以包括用于在沒有上下文切換的情況下將所述數(shù)據(jù)分組遞送到消息模塊的裝備。在又另一實施例中,公開一種用于在電信網(wǎng)絡(luò)中在單一SMP分區(qū)內(nèi)提供多小區(qū)支持的系統(tǒng)。所述系統(tǒng)通常包括調(diào)制解調(diào)器板和具有多個處理器核心的多核處理器,其中,所述多核處理器被配置為,禁用到達(dá)多個數(shù)據(jù)平面核心的非必須中斷,并將所述非必須中斷選路到多個控制平面核心。從下面提供的詳細(xì)描述中,本示例性實施例的適用性的進(jìn)一步范圍將變得顯而易見。然而應(yīng)當(dāng)理解,盡管指示了本發(fā)明的優(yōu)選實施例,但詳細(xì)描述和特定示例僅作為示例給出,因為本發(fā)明的精神和范圍內(nèi)的各種改變和修改對于本領(lǐng)域的技術(shù)人員將顯而易見。附圖說明本發(fā)明存在于如在下文中詳細(xì)陳述、在權(quán)利要求中特別指出和在附圖中示出的設(shè)備的各個部分和方法的步驟的構(gòu)造、安排和組合中,其中:圖1示出了根據(jù)本發(fā)明的方面的平臺體系結(jié)構(gòu)的一個實施例;圖2示出了根據(jù)本發(fā)明的方面的核心預(yù)留和核心一致的一個示例性體系結(jié)構(gòu);圖3示出了用于實現(xiàn)核心抽象層的一個示例性體系結(jié)構(gòu);以及圖4代表當(dāng)硬件被配置為以與默認(rèn)中斷模式相反的輪詢模式運行時關(guān)于入站數(shù)據(jù)分組的過程流的高層描述。具體實施方式現(xiàn)在參考附圖,其中所示僅用于示出示例性實施例,并且不用于限制所要求權(quán)利的主題,圖1提供當(dāng)前描述的實施例可以被并入其中的系統(tǒng)的視圖?,F(xiàn)在通過參考圖1,示出了示例性平臺體系結(jié)構(gòu)100。該體系結(jié)構(gòu)一般用在調(diào)制解調(diào)器板上,但應(yīng)當(dāng)理解,其可以用在其它應(yīng)用中。在該實施例中,通過在其中的全部八個核心定義一個分區(qū)。然而應(yīng)當(dāng)認(rèn)識到,多核處理器100可以具有任意數(shù)量的核心。通過該實施例,由此可能使用運行在核心的全部(例如八個核心)上的單一對稱多處理(SMP)操作系統(tǒng)(OS)實例102。由于控制和數(shù)據(jù)平面在一個OS實例下,所以通常需要注意確保關(guān)于數(shù)據(jù)平面的問題不會也使控制平面崩潰。在該示例中,多核處理器100為三個小區(qū)(在該圖中被示為104、106和108)提供服務(wù)。每個小區(qū)需要上行鏈路(UL)調(diào)度器(在該圖中被示為110、112和114)和下行鏈路(DL)調(diào)度器(在圖1中被示為116、118和120)。已知,使用無線電鏈路控制(RLC)層對跨LTE空中接口發(fā)送和接收的分組幀進(jìn)行分段、連接和糾錯。在GPRS(2.5G)無線棧中使用無線電鏈路控制和媒體訪問控制(RLC/MAC)軟件。其在移動臺與基站控制器(BSC)之間提供有確認(rèn)和無確認(rèn)的數(shù)據(jù)傳輸。由此,體系結(jié)構(gòu)100還包括RLC/MAC塊122,該RLC/MAC塊122是用在移動臺與網(wǎng)絡(luò)之間的空中接口上的基礎(chǔ)傳輸單元。RLC/MAC塊122一般用于傳送數(shù)據(jù)和RLC/MAC信令。多核處理器100還提供運行、維護(hù)和管理(OA&M)模塊124和呼叫處理(或CALLP)模塊126。OA&M一般用于描述與運行、維護(hù)、管理和維修電信網(wǎng)絡(luò)中的部件相關(guān)的過程、活動、工具、標(biāo)準(zhǔn)等。CALLP模塊126通常管理呼叫處理活動的非實時方面。另外,多核處理器100包括核心抽象層(CAL)128,該核心抽象層128一般向2層(L2)應(yīng)用軟件隱藏核心特定細(xì)節(jié)。2層是計算機(jī)聯(lián)網(wǎng)的七層開放系統(tǒng)互連(OSI)模型的數(shù)據(jù)鏈路層。數(shù)據(jù)鏈路層是在廣域網(wǎng)中的相鄰網(wǎng)絡(luò)節(jié)點之間或同一局域網(wǎng)段上的節(jié)點之間傳輸數(shù)據(jù)的協(xié)議層。數(shù)據(jù)鏈路層提供用于在網(wǎng)絡(luò)實體之間傳輸數(shù)據(jù)的功能和過程裝置,并且可以提供用于檢測并可能糾正可以在物理層中發(fā)生的錯誤的裝置。數(shù)據(jù)鏈路協(xié)議的示例如針對局域網(wǎng)(多節(jié)點)的以太網(wǎng)、針對點到點(雙節(jié)點)連接的點到點協(xié)議(PPP)、HDLC和ADCCP。在此情況下,L2一般是指具有非常嚴(yán)格實時要求的LTE空中接口層所需的L2調(diào)度器處理。為滿足基站的實時性能需求,其中,基站負(fù)責(zé)處理移動通信設(shè)備與網(wǎng)絡(luò)交換子系統(tǒng)之間的流量和信令,可以使用諸如帶有PREEMPTRT補(bǔ)丁的SMPLinux的操作系統(tǒng)。當(dāng)然,應(yīng)當(dāng)理解,可以使用其它操作系統(tǒng)。為達(dá)到所述SMP配置中的確定行為,優(yōu)選以這樣的方式來實現(xiàn)該系統(tǒng),其使用核心預(yù)留和核心一致構(gòu)造來達(dá)到與異步多處理(AMP)可比的系統(tǒng)行為。這對于從例如帶有PREEMPTRT的SMPLinux獲得最佳性能也是所需的。使用諸如緩沖器管理和消息服務(wù)的無鎖零復(fù)制服務(wù)可以也幫助解決任何可以由使用帶有PREEMPTRT的SMPLinux操作系統(tǒng)引起的等待時間問題。如圖1中所示的核心抽象層(128)的主要功能之一是為諸如L2處理的高層應(yīng)用提供各種服務(wù),所述各種服務(wù)使用多核平臺的全部能力。核心抽象層由此被設(shè)計為達(dá)到幾個目標(biāo)。首先,其支持BED(背板以太網(wǎng)驅(qū)動)接口,該BED接口基于新數(shù)據(jù)路徑加速體系結(jié)構(gòu)(DPAA),同時向高層應(yīng)用軟件(即L2軟件)隱藏DPAA和多核特定實現(xiàn)。(DPAA被設(shè)計為優(yōu)化諸如負(fù)載散播和資源共享的多核網(wǎng)絡(luò)處理,包括網(wǎng)絡(luò)接口和硬件加速器)。第二,其使用P4080的DPAA硬件部件來為流入和流出兩個方向上的用戶平面數(shù)據(jù)提供加速的數(shù)據(jù)路徑。第三,其提供盡可能大的靈活性以便容易地適應(yīng)配置改變(即,不需要代碼改變)。CAL配置的一個示例如針對緩沖器池、流入幀隊列和流出幀隊列的DPAA資源配置。如圖1中所示,本發(fā)明的一個實施例使用一個分區(qū)中的處理器核心的全部。由于對于簡單Linux來說可能難以滿足硬實時處理需求的全部,所以優(yōu)選諸如帶有PREEMPTRT補(bǔ)丁的SMPLinux的操作系統(tǒng)。還使用開源操作系統(tǒng)來降低成本。該系統(tǒng)進(jìn)一步合并SMPLinux的核心一致和CPU預(yù)留能力以便在SMP配置內(nèi)定義類AMP系統(tǒng)行為,該行為允許六小區(qū)或甚至九小區(qū)配置。因為在非實時核心(諸如控制平面)和實時核心(諸如數(shù)據(jù)平面)之間共享操作系統(tǒng)實例,所以當(dāng)鎖被非實時線程或進(jìn)程占用時,問題可能出現(xiàn)。鎖可以導(dǎo)致對于實時線程或進(jìn)程的延遲,因為實時線程或進(jìn)程不得不等待針對數(shù)據(jù)平面核心的鎖的釋放。已知,諸如傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)的傳輸層協(xié)議在其分組報頭中指定源和目的端口號。端口號是16位無符號整數(shù)。進(jìn)程將其輸入或輸出信道文件描述符(套接字)關(guān)聯(lián)于端口號和IP地址以便經(jīng)由網(wǎng)絡(luò)發(fā)送和接收數(shù)據(jù),其中,該過程稱為綁定。操作系統(tǒng)的聯(lián)網(wǎng)軟件具有這樣的任務(wù):將流出數(shù)據(jù)從全部應(yīng)用端口發(fā)送到網(wǎng)絡(luò)上,以及,經(jīng)由匹配分組IP地址和端口號,將到達(dá)的網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)給進(jìn)程。由于標(biāo)準(zhǔn)Linux協(xié)議棧不保證無鎖實現(xiàn),所以示例性實施例為運行在數(shù)據(jù)平面核心上用于發(fā)送和接收TCP/UDPIP分組的實時進(jìn)程(LTEL2調(diào)度器)定義一種無鎖消息方案,同時避免使用Linux協(xié)議棧。諸如運行在控制平面核心上的OA&M的非實時進(jìn)程將繼續(xù)使用Linux協(xié)議棧以便于其正常運行。通常,為避免Linux一般公共許可(GPL)問題,在用戶空間中運行LTEL2調(diào)度器。因此,為從LTEL2調(diào)度器發(fā)送和接收TCP/UDPIP數(shù)據(jù),數(shù)據(jù)不得不跨越用戶-內(nèi)核空間邊界。該步驟通常需要數(shù)據(jù)復(fù)制。由此,消耗處理器能力來將數(shù)據(jù)從一個存儲器位置復(fù)制到另一個浪費寶貴的資源。相應(yīng)地,提供這樣一種方法和系統(tǒng)是所需的,所述方法和系統(tǒng)對于運行在數(shù)據(jù)平面核心上的實時線程和進(jìn)程允許高效的無鎖、零復(fù)制和非阻塞消息服務(wù),同時允許控制平面以其正常方式(例如經(jīng)由使用傳統(tǒng)Linux協(xié)議棧)運行。由于控制平面(非實時進(jìn)程和線程,諸如OA&M和呼叫處理)和數(shù)據(jù)平面(實時進(jìn)程和線程,諸如LTEL2調(diào)度器)這兩者共享同一操作系統(tǒng)實例,所以確保存在核心的至少某種物理分離是有益的,其中,在所述核心上進(jìn)行這兩種類型的活動。在這方面,圖2示出了使用核心預(yù)留和核心一致構(gòu)造的一個體系結(jié)構(gòu)。在該示例中,使用八核處理器。核心0-7在該圖中被標(biāo)記為標(biāo)號202、204、206、208、210、212、214和216。全部非實時線程或進(jìn)程將被綁定到專用于控制平面活動的核心(218)。換句話說,專用于數(shù)據(jù)平面活動的核心組(在該圖中被標(biāo)記為220、222、224和226)將不容納和運行“快速路徑”(數(shù)據(jù)路徑)實現(xiàn)或L2處理所不直接需要的任何線程?!翱焖俾窂健笔怯糜诿枋鲞@樣的路徑的術(shù)語,所述路徑具有比“正常路徑”短的通過程序的指令路徑長度。對于快速路徑,為了有效,其必須比正常路徑高效地處理最經(jīng)常出現(xiàn)的任務(wù),留給后者處理不常見情況、邊角情況、錯誤處理和其它異常??焖俾窂绞且环N形式的優(yōu)化。被快速路徑驅(qū)動使用的流入緩沖器池是系統(tǒng)級共享資源的示例。其專用于接收數(shù)據(jù)平面分組。為達(dá)到核心一致和核心預(yù)留,定義用于控制平面核心組218的默認(rèn)一致掩碼。這樣,任何還未被指派特定綁定的線程或進(jìn)程將默認(rèn)到控制平面核心。核心抽象層(CAL)220向L2應(yīng)用軟件隱藏核心特定細(xì)節(jié)。在該配置中,存在僅一個正在運行的操作系統(tǒng)實例222。對應(yīng)于給定小區(qū)的實時進(jìn)程和線程被經(jīng)由核心預(yù)留和核心一致綁定到指定核心。例如,小區(qū)1和小區(qū)4的上行鏈路調(diào)度器線程被綁定到核心2,以及下行鏈路調(diào)度器線程被綁定到核心3。由此,圖2示出了SMP配置內(nèi)的類AMP配置。在該實施例中,例如,諸如OA&M和呼叫管理進(jìn)程的全部控制平面進(jìn)程將在核心0(202)上運行。小區(qū)實時進(jìn)程和線程的每個將在專用核心上運行,其中,沒有任何非實時進(jìn)程或線程將在所述專用核心處運行。這樣,(1)非實時線程不會急需處理時間,以及(2)非實時線程不會從實時線程取走任何寶貴處理時間,并且不在具有嚴(yán)格實時處理要求的數(shù)據(jù)核心上增加處理等待時間尖峰。通常已知,諸如Linux的操作系統(tǒng)中的系統(tǒng)存儲器可以被劃分為兩個不同區(qū)域:內(nèi)核空間和用戶空間。內(nèi)核空間是這樣的地方,內(nèi)核(即操作系統(tǒng)的核心)在其處執(zhí)行(即運行)并提供其服務(wù)。存儲器一般由RAM(隨機(jī)訪問存儲器)單元組成,所述RAM單元的內(nèi)容可以被以極高速度訪問(即讀取和寫入),但被僅臨時地(即,當(dāng)正在使用時,或最多當(dāng)電源保持打開時)保留。其目的是保存當(dāng)前正在使用的程序和數(shù)據(jù)。用戶空間是用戶進(jìn)程(即除內(nèi)核外的所有東西)在其中運行的存儲器位置集合。進(jìn)程是程序的執(zhí)行實例。內(nèi)核的任務(wù)之一是管理該空間內(nèi)的各個用戶進(jìn)程,以及防止其相互干擾。內(nèi)核空間可以僅通過使用系統(tǒng)調(diào)用被用戶進(jìn)程訪問。系統(tǒng)調(diào)用是類Unix操作系統(tǒng)中活躍進(jìn)程對由內(nèi)核實施的服務(wù)的請求,所述服務(wù)諸如是輸入/輸出(I/O)或進(jìn)程創(chuàng)建?;钴S進(jìn)程是當(dāng)前正在CPU中進(jìn)行的進(jìn)程,與正等待其在CPU中的下一回合的進(jìn)程相反。I/O是任何向或從CPU以及向或從外圍設(shè)備(諸如磁盤驅(qū)動、鍵盤、鼠標(biāo)和打印機(jī))傳輸數(shù)據(jù)的程序、運行或設(shè)備。由此,內(nèi)核空間嚴(yán)格預(yù)留給運行內(nèi)核、內(nèi)核擴(kuò)展和多數(shù)設(shè)備驅(qū)動。相反,用戶空間是全部用戶模式應(yīng)用在其處運行的存儲器區(qū)域,并且該存儲器在必要時可以被換出?,F(xiàn)在參考圖3,示出了達(dá)到這些和其它目標(biāo)的一個示例性體系結(jié)構(gòu)300。關(guān)于此,核心抽象層(CAL)301包括用戶空間中的各種模塊,包括但不限于:核心抽象層初始化(CALInit)模塊302,其將LTE網(wǎng)絡(luò)配置和任何靜態(tài)解析、分級和分發(fā)(PCD)規(guī)則加載到幀管理器(FMan)330和332,并且基于配置文件集合建立CAL框架;核心抽象層緩沖器(CALBuf)模塊304;核心抽象層消息(CALMsg)模塊306,其為用于向或從另一板(即eCCM)發(fā)送和接收用戶平面數(shù)據(jù)的L2軟件提供消息服務(wù);核心抽象層解析、分級和分發(fā)(CALPcdFmc)模塊308,其提供將被每個FMan(330、332)用于將流入幀選路到合適核心的PCD規(guī)則和配置;以及核心抽象層DPAA跟蹤(CALDpaaTrace)模塊310,其提供跟蹤能力,以便在核心抽象層的DPAA驅(qū)動(CALDpaa驅(qū)動)312中實現(xiàn)和禁用跟蹤,其中,DPAA驅(qū)動(CALDpaa驅(qū)動)312是內(nèi)核空間模塊。進(jìn)一步地,CAL301可以還包括DPAA資源配置工具313,用于管理緩沖器池、流入幀隊列和流出幀隊列。體系結(jié)構(gòu)300進(jìn)一步包括合適的操作系統(tǒng)314,諸如帶有PREEMPTRT補(bǔ)丁的SMPLinux。操作系統(tǒng)314接著支持各種驅(qū)動,諸如前面提到的CALDPaa驅(qū)動312、至少一個幀管理器(FMan)驅(qū)動316、至少一個緩沖器管理器(BMan)驅(qū)動318和至少一個隊列管理器(QMan)驅(qū)動320。緩沖器描述符環(huán)321是所映射的內(nèi)核到用戶(K-U)空間,用于允許諸如CALMsg模塊306的用戶空間部件和諸如CALDpaa驅(qū)動312的內(nèi)核空間部件在沒有任何尋址問題或數(shù)據(jù)復(fù)制需求的情況下訪問其。如圖3中所示,體系結(jié)構(gòu)300可以適當(dāng)?shù)匕≒4080核心網(wǎng)結(jié)構(gòu)322,該P4080核心網(wǎng)結(jié)構(gòu)322是適于可伸縮單片網(wǎng)絡(luò)將多個動力體系結(jié)構(gòu)處理核心與高速緩存、獨立高速緩存和存儲器子系統(tǒng)連接的互連體系結(jié)構(gòu)。P4080處理器包括DPAA的實現(xiàn)。由此,體系結(jié)構(gòu)300可以進(jìn)一步包括P4080DPAA324。DPAA324被設(shè)計為優(yōu)化諸如負(fù)載散播和資源共享的多核網(wǎng)絡(luò)處理,其包括網(wǎng)絡(luò)接口和硬件加速器。如所示,DPAA324一般包括各種管理器,諸如BMan326、QMan328、以及分別的第一和第二Fman330和332。已知,在無線多接入通信系統(tǒng)中,發(fā)送器和接收器可以使用多層通信棧進(jìn)行通信。所述層可以包括例如物理層、媒體訪問控制(MAC)層、無線電鏈路控制(RLC)層、協(xié)議層(例如分組數(shù)據(jù)匯聚協(xié)議(PDCP)層)、應(yīng)用層等。RLC層從PDCP層接收服務(wù)數(shù)據(jù)單元(SDU),并將SDU連接或分段為RLC協(xié)議數(shù)據(jù)單元(PDU)以便向MAC層傳輸。相應(yīng)地,CALBuf模塊304為在RLCSDU處理中使用的L2軟件便利無鎖緩沖器管理服務(wù)。如本領(lǐng)域中已知的,非阻塞算法確保正競爭共享資源的線程不因互斥而使其執(zhí)行被不確定地推遲。如果保證了系統(tǒng)級進(jìn)行,則非阻塞算法是無鎖(或沒鎖)的。CALBuf模塊304可以還支持對緩沖器池統(tǒng)計數(shù)據(jù)(例如池消耗狀態(tài)、消耗計數(shù)、池可用性狀態(tài)、池分配錯誤計數(shù)等)進(jìn)行查詢。CALBuf模塊304一般與CALDpaa驅(qū)動312接合以實現(xiàn)所述服務(wù)。CALBuf模塊304進(jìn)一步提供對于多核環(huán)境中的正確系統(tǒng)運行優(yōu)選的無鎖緩沖器管理方案,其中,在所述多核環(huán)境中,被非實時進(jìn)程占用的鎖對于正等待該鎖釋放的實時進(jìn)程可以導(dǎo)致等待時間問題。CALMsg模塊306為用于向或從另一板(即eCCM)發(fā)送和接收用戶平面數(shù)據(jù)的L2軟件提供消息服務(wù)。CALMsg模塊306一般與CALDPAA驅(qū)動312接合,以便經(jīng)由DPAA提供無鎖零復(fù)制消息服務(wù)。關(guān)于此,CALDpaa驅(qū)動312將流入數(shù)據(jù)流分組入隊到緩沖器描述符環(huán)321中。諸如在CALMsgAPI幫助下的LTEL2調(diào)度器的用戶空間應(yīng)用是緩沖器描述符環(huán)321的典型消費者。用戶應(yīng)用定期運行,并且處理被入隊到緩沖器描述符環(huán)321中的分組的每個。該特征允許L2應(yīng)用軟件在不使用協(xié)議棧的情況下以無鎖、零數(shù)據(jù)復(fù)制方式發(fā)送和接收TCP/UDPIP分組,從而避免極大等待時間延遲。CALDpaa驅(qū)動312是CAL301的內(nèi)核空間部件,并且使用Bman和QmanAPI幫助實現(xiàn)和提供緩沖器管理服務(wù)和消息服務(wù)。當(dāng)用在此處時,術(shù)語API(或應(yīng)用編程接口)是指由軟件程序?qū)崿F(xiàn)的、使其能夠與其它軟件進(jìn)行交互的接口。其以與用戶界面便利用戶與計算機(jī)之間的交互類似的方式便利不同軟件程序之間的交互。API由應(yīng)用、庫和操作系統(tǒng)實現(xiàn),以便確定其詞匯表和調(diào)用約定,并且被用于訪問其服務(wù)。其可以包括針對用于在API的消費者和實現(xiàn)者之間進(jìn)行通信的例程、數(shù)據(jù)結(jié)構(gòu)、對象類和協(xié)議的規(guī)范。CALDpaa驅(qū)動312一般負(fù)責(zé):管理將被用于用戶平面數(shù)據(jù)分發(fā)的DPAA資源(緩沖器池和幀隊列);經(jīng)由諸如打開、關(guān)閉、i-o控制(ioctl)的各種文件操作為其它CAL模塊提供用戶空間接口,以便于初始化、緩沖器管理和消息服務(wù);實施內(nèi)核到用戶空間(K-U)緩沖器映射;提供DPAA緩沖器池以及接收器和發(fā)送器統(tǒng)計數(shù)據(jù);以及,實現(xiàn)用于管理環(huán)形緩沖器的服務(wù)。應(yīng)當(dāng)指出,環(huán)形緩沖器一般代表CAL的2層軟件隊列,并且其被用于存儲去往特定2層下行鏈路調(diào)度器線程的幀描述符(FD)。CALMsg模塊306為2層下行鏈路調(diào)度器提供API以便從環(huán)形檢索緩沖器描述符。CALBuf模塊304提供將被僅用于“快速路徑”數(shù)據(jù)處理的緩沖器管理服務(wù)。CALBuf模塊304為L2應(yīng)用提供用戶空間API。CALBuf模塊304與CALDpaa驅(qū)動312協(xié)作以便為由CALDpaa驅(qū)動312創(chuàng)建但由Bman326管理的緩沖器提供零復(fù)制和無鎖緩沖器管理服務(wù)。上面描述的CAL部件的全部一般是平臺中間件(在用戶空間中運行),CALDpaa驅(qū)動312除外。CALDpaa驅(qū)動312是在內(nèi)核空間中運行的定制驅(qū)動,并且其被設(shè)計為實現(xiàn)和提供CAL用戶空間中間件所需的服務(wù)——特別是那些取決于P4080DPAA硬件部件的服務(wù)。作為用于該新體系結(jié)構(gòu)的核心抽象層的一部分對無鎖緩沖器管理和消息服務(wù)的引入幫助避免SMP環(huán)境中的極大等待時間尖峰,其中,在所述SMP環(huán)境中,控制平面和數(shù)據(jù)平面這兩者共享同一OS實例。在SMP環(huán)境中,被在一個核心上的非實時進(jìn)程或線程(諸如在控制平面中找到的那些)占用的鎖可以導(dǎo)致對于不同核心上正等待該鎖被釋放的實時線程或進(jìn)程(諸如在數(shù)據(jù)平面中找到的那些)的等待時間尖峰。由此,存在對無鎖、零復(fù)制、非阻塞消息方案的需求,該方案不將Linux協(xié)議棧用于數(shù)據(jù)平面核心上的快速數(shù)據(jù)路徑,以便滿足使用一個分區(qū)的基于多核處理器的調(diào)制解調(diào)器板的性能需求。在沒有所述方案的情況下,特別對于LTEL2調(diào)度器的處理,系統(tǒng)可能遭受可能使整個系統(tǒng)中斷的極大等待時間尖峰。使用零復(fù)制消息方案允許內(nèi)核空間中到達(dá)以太網(wǎng)接口的分組在不需要數(shù)據(jù)復(fù)制的情況下到達(dá)其目的地,所述目的地諸如是用戶空間中的2層下行鏈路調(diào)度器。由于LinuxGPL問題,在用戶空間中運行LTEL2調(diào)度器。因此,為從LTEL2調(diào)度器發(fā)送和接收TCP/UDPIP數(shù)據(jù),數(shù)據(jù)不得不跨越用戶-內(nèi)核空間邊界。所述活動將通常需要數(shù)據(jù)復(fù)制。由此,消耗處理器能力來將數(shù)據(jù)重一個存儲器位置復(fù)制到另一個浪費寶貴的資源。相應(yīng)地,提供這樣的方法和系統(tǒng)將是可取的,所述方法和系統(tǒng)對于在數(shù)據(jù)平面核心上運行的實時線程和進(jìn)程允許高效的無鎖、零復(fù)制和非阻塞消息服務(wù),同時仍允許控制平面以其正常方式(例如經(jīng)由使用傳統(tǒng)Linux協(xié)議棧)運行。對于快速數(shù)據(jù)路徑實現(xiàn)旁路掉Linux協(xié)議棧允許在數(shù)據(jù)平面核心上運行的LTEL2調(diào)度器使用可替換的無鎖消息方案來發(fā)送和接收TCP和UDPIP分組。使用Linux協(xié)議棧可以導(dǎo)致可能使LTEL2調(diào)度器的處理中斷的極大等待時間尖峰。這是由于這一事實:Linux協(xié)議棧未被設(shè)計為無鎖的。進(jìn)一步地,由于協(xié)議棧還被在控制平面核心上運行的諸如OA&M和呼叫處理實體的非實時進(jìn)程和線程使用,所以其可以導(dǎo)致對于實時進(jìn)程和線程的極大等待時間尖峰。協(xié)議棧將被綁定到在控制平面核心上運行,使得諸如OA&M和呼叫處理的非實時進(jìn)程和線程將繼續(xù)使用協(xié)議棧,因為其可以在沒有系統(tǒng)行為和/或運行中斷的情況下容易地抵擋偶然的極大等待時間尖峰。圖4示出了對于流入數(shù)據(jù)分組流禁用數(shù)據(jù)平面核心上的中斷的一種示例性方法。流入數(shù)據(jù)流分組被內(nèi)核線程處理,所述內(nèi)核線程向硬件輪詢分組以便減少關(guān)聯(lián)于每個中斷的上下文切換處理開銷。最初,硬件(例如QMan328)被配置為以與默認(rèn)的“中斷”模式相反的“輪詢”模式運行(410)。QMan328可以被配置為,在開始時即當(dāng)處理器被重啟時的軟件初始化期間以輪詢模式運行。應(yīng)當(dāng)指出,默認(rèn)的中斷模式例如在2010年11月12日提交的美國序列號12/945,146中詳細(xì)描述,該申請的公開內(nèi)容通過參考引入于此。隨著數(shù)據(jù)分組繼續(xù)到達(dá)外部以太網(wǎng)接口,諸如FMan330的幀管理器(1)從諸如BMan326的緩沖器管理器獲取緩沖器,(2)將分組復(fù)制到該緩沖器中,以及(3)將分組入隊到幀隊列(FQ)中。幀隊列是將由諸如QMan328的隊列管理器處理的幀描述符的硬件鏈表(420)。當(dāng)用在此處時,“鏈表”是指這樣的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)由數(shù)據(jù)記錄的序列組成,使得每個記錄中存在這樣的字段,該字段包含指向序列中下一個記錄的引用(即“鏈接”)。在此情況下,每個幀描述符包含指向保存數(shù)據(jù)分組的緩沖器的指針。QMan328使用由CAL模塊301定義的PCD規(guī)則(例如IP地址到流入幀隊列映射)來檢查每個到達(dá)的數(shù)據(jù)分組的IP地址。Fman330然后創(chuàng)建包含指向保存該數(shù)據(jù)分組的緩沖器的指針的幀描述符,并將其入隊到合適的幀隊列中。QMan328通過其內(nèi)部硬件隊列推入分組,直到分組到達(dá)硬件隊列的前端(430)。值得注意,硬件不會對數(shù)據(jù)平面核心生成任何入口中斷。作為CALDpaa驅(qū)動312的一部分創(chuàng)建內(nèi)核線程以便為QMan328服務(wù),QMan328在該實施例中一般被配置為以輪詢模式運行(440)。CALDpaa驅(qū)動312的內(nèi)核線程周期性地醒來(以ΔT的周期性時間間隔),并調(diào)用QManAPI來輪詢?nèi)魏我训竭_(dá)硬件隊列前端的排隊等候的幀描述符(450)。內(nèi)核線程將然后把“N”個條目(幀描述符)從QMan328中出隊(即將項從隊列中移除)(460)。關(guān)于此,“N”代表可調(diào)參數(shù)(例如,N=100)。特別地,N指示內(nèi)核線程在每次其“醒來”時將為之提供服務(wù)的來自QMan328的幀描述符條目的數(shù)量。接下來,做出關(guān)于是否存在任何將被提供服務(wù)的幀描述符的確定(470)。如果否,則內(nèi)核線程回到休眠(490)。否則,執(zhí)行關(guān)聯(lián)于每個出隊的幀描述符條目的注冊的回調(diào)函數(shù)。回調(diào)函數(shù)在沒有任何上下文切換的情況下并且以無鎖、零復(fù)制方式將分組遞送到CALMsg模塊306。這可以例如經(jīng)由以下來完成:將數(shù)據(jù)分組的緩沖器指針從幀描述符復(fù)制到緩沖器描述符中,并將其入隊到合適的緩沖器描述符K-U映射環(huán)321中,其中,該緩沖器描述符K-U映射環(huán)321將最終由用戶空間2層下行鏈路調(diào)度器消費(490)。在中斷模式下,每個流入數(shù)據(jù)分組的到達(dá)通常導(dǎo)致對數(shù)據(jù)平面核心的中斷。即使在中斷合并模式下,其中多達(dá)最多十五個數(shù)據(jù)分組在一個中斷服務(wù)例程(ISR)中被處理,用于用戶到內(nèi)核到用戶空間上下文切換的處理開銷也相當(dāng)大。這是因為,4GLTE無線系統(tǒng)支持大量用戶,每個能夠維持高數(shù)據(jù)速率(平均數(shù)據(jù)速率約2MBits/sec)。然而,經(jīng)由將QMan328配置為以與默認(rèn)中斷模式相反的輪詢模式運行提供幾個優(yōu)勢。例如,上面概述的方案顯著減少針對流入數(shù)據(jù)流對特定數(shù)據(jù)核心生成的中斷的數(shù)量。這導(dǎo)致在數(shù)據(jù)平面核心上發(fā)生的上下文切換(用戶到內(nèi)核到用戶空間)的顯著減少。這導(dǎo)致數(shù)據(jù)平面核心上的處理開銷的顯著減少,并增強(qiáng)LTE系統(tǒng)的實時性能。另外,在專用于運行僅實時進(jìn)程或線程的數(shù)據(jù)平面核心上禁用諸如軟件DMA中斷的非必須中斷,并且作為代替,將這些中斷選路到在控制平面核心上發(fā)生。這將幫助確保,沒有任何不必要的從諸如LTEL2調(diào)度器的用戶空間應(yīng)用到在內(nèi)核空間中運行的中斷服務(wù)例程(ISR)的上下文切換將由于這些中斷而在數(shù)據(jù)平面核心上發(fā)生。每個上下文切換涉及值得注意的處理開銷。經(jīng)由消除該不必要的處理開銷,將更多處理時間和能力給予用于實時進(jìn)程和線程的數(shù)據(jù)平面核心,所述實時進(jìn)程和線程諸如是LTEL2調(diào)度器。本領(lǐng)域的技術(shù)人員將容易地認(rèn)識到,各種上面所描述方法的步驟可以由已進(jìn)行編程的計算機(jī)來實施。此處,某些實施例還旨在覆蓋程序存儲設(shè)備,例如數(shù)字?jǐn)?shù)據(jù)存儲介質(zhì),所述程序存儲設(shè)備是機(jī)器或計算機(jī)可讀的,并且對機(jī)器可執(zhí)行或計算機(jī)可執(zhí)行指令程序進(jìn)行編碼,其中,所述指令實施所述上面描述方法的步驟的一些或全部。程序存儲設(shè)備可以是例如數(shù)字存儲器、諸如磁盤和磁帶的磁存儲介質(zhì)、硬盤驅(qū)動或光可讀數(shù)字?jǐn)?shù)據(jù)存儲介質(zhì)。實施例還旨在覆蓋被編程為實施上面描述方法的所述步驟的計算機(jī)。上面的說明書僅提供本發(fā)明的特定實施例的公開,并且不旨在用于將其限于此。同樣,本發(fā)明不限于僅上面描述的實施例。相反,應(yīng)當(dāng)認(rèn)識到,本領(lǐng)域的技術(shù)人員可以設(shè)想落在本發(fā)明范圍內(nèi)的可替換實施例。