亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向多核網(wǎng)絡(luò)分組處理系統(tǒng)的線程親和緩沖區(qū)管理機(jī)制*

        2016-11-25 06:25:54陳一驕李世星戴幻堯
        國防科技大學(xué)學(xué)報 2016年5期
        關(guān)鍵詞:管理機(jī)制

        楊 惠,陳一驕,李 韜,李世星,戴幻堯

        (1.國防科技大學(xué) 計(jì)算機(jī)學(xué)院, 湖南 長沙 410073; 2.中國洛陽電子裝備試驗(yàn)中心, 河南 洛陽 471003)

        ?

        面向多核網(wǎng)絡(luò)分組處理系統(tǒng)的線程親和緩沖區(qū)管理機(jī)制*

        楊 惠1,陳一驕1,李 韜1,李世星1,戴幻堯2

        (1.國防科技大學(xué) 計(jì)算機(jī)學(xué)院, 湖南 長沙 410073; 2.中國洛陽電子裝備試驗(yàn)中心, 河南 洛陽 471003)

        基于通用多核架構(gòu)的網(wǎng)絡(luò)分組處理系統(tǒng)性能受到諸如分組IO開銷高、多核共享內(nèi)存及進(jìn)程調(diào)度競爭大、頁表緩沖表項(xiàng)失效率高等問題的困擾。為此提出一種基于通用多核網(wǎng)絡(luò)分組處理系統(tǒng)、面向高速分組轉(zhuǎn)發(fā)應(yīng)用的線程親和緩沖區(qū)硬件管理機(jī)制,并在網(wǎng)絡(luò)專用協(xié)處理引擎上實(shí)現(xiàn)。該機(jī)制采用無中斷的線程親和調(diào)度策略,將包含控制信息與緩沖區(qū)地址信息的描述符和分組數(shù)據(jù)按照分組處理的線程號鏈?zhǔn)降貙?yīng)加載在多個地址連續(xù)的共享緩沖區(qū)中?;谕ㄓ枚嗪撕同F(xiàn)場可編程門陣列平臺進(jìn)行報文轉(zhuǎn)發(fā)測試,實(shí)驗(yàn)結(jié)果表明,采用線程親和緩沖區(qū)管理機(jī)制能使平均報文轉(zhuǎn)發(fā)處理性能提升12.4%,有效地降低IO開銷和TLB表項(xiàng)失效率。

        分組IO;線程親和;緩沖區(qū)管理;分組轉(zhuǎn)發(fā);多核

        隨著新型網(wǎng)絡(luò)業(yè)務(wù)、協(xié)議以及多核技術(shù)的發(fā)展,具有高可編程性的基于多核處理器的網(wǎng)絡(luò)分組處理系統(tǒng)成為學(xué)術(shù)界和工業(yè)界研究的熱點(diǎn)。隨著通用多核處理器處理性能的不斷提升,通用多核處理器與專用網(wǎng)絡(luò)處理器芯片的差距逐步減小,具備高可編程性的通用多核處理器成為網(wǎng)絡(luò)設(shè)備中廣泛采用的數(shù)據(jù)平面處理核心器件[1-2]。基于通用多核CPU+網(wǎng)絡(luò)專用協(xié)處理引擎(Network dedicated co-Processing Engine, NPE),能夠?qū)崿F(xiàn)其對網(wǎng)絡(luò)處理器芯片的有效替代[3-5]。然而,在基于通用多核進(jìn)行網(wǎng)絡(luò)分組處理的過程中存在一系列不屬于網(wǎng)絡(luò)分組處理的開銷,諸如中斷處理、上下文切換、系統(tǒng)調(diào)用、數(shù)據(jù)拷貝、進(jìn)程調(diào)度等,這些開銷被稱作分組IO開銷[6-8]。將多核應(yīng)用于IPv4轉(zhuǎn)發(fā),分組IO開銷占整個分組處理開銷的70%[1]。當(dāng)前的多核處理器設(shè)計(jì)并未考慮到網(wǎng)絡(luò)處理中分組IO的問題,在獲得了高效網(wǎng)絡(luò)處理性能的同時,也伴隨著分組IO帶來的長處理延遲和復(fù)雜的網(wǎng)卡設(shè)計(jì)問題[2]。分組處理伴隨著密集的IO操作,分組處理過程中涉及的頻繁的訪存和頁表緩沖(Translation Lookaside Buffer, TLB)查表操作等會導(dǎo)致嚴(yán)重的訪存開銷。

        為降低通用多核處理網(wǎng)絡(luò)分組帶來的IO開銷,降低TLB表缺失率,提出一種面向高速分組轉(zhuǎn)發(fā)的線程親和緩沖區(qū)管理機(jī)制(Thread Affinity for Buffer Management mechanism, TABM)。其主要思想是系統(tǒng)初始化時,將預(yù)先分配的多核共享緩沖區(qū)分成大小相等、屬性相同的連續(xù)的緩沖區(qū)塊,每一個CPU線程對應(yīng)處理緩沖區(qū)塊中存儲的分組數(shù)據(jù);接收端采用線程親和的無中斷鏈?zhǔn)浇邮漳J?,將包含控制信息與緩沖區(qū)地址信息的描述符和分組數(shù)據(jù),由實(shí)現(xiàn)TABM的NPE,通過直接內(nèi)存存取(Direct Memory Access, DMA)控制搬移,根據(jù)分組在多線程上處理的線程號,對應(yīng)地加載在多個地址連續(xù)的共享緩沖區(qū)塊中,每一個線程中處理的分組及描述符信息以鏈表的形式組織并地址連續(xù)地存放,無須中斷多核;發(fā)送端將緩沖區(qū)地址管理的任務(wù)由多核軟件管理卸載下來,各個線程通過各自的計(jì)數(shù)器到達(dá)閾值,以此來釋放共享緩沖區(qū)地址空間。線程親和的緩沖區(qū)管理方法在NPE上硬件實(shí)現(xiàn),用于解決降低系統(tǒng)緩沖區(qū)的管理開銷、IO開銷和線程亂序存儲分組造成的TLB表缺失的問題,為多核實(shí)現(xiàn)高速分組轉(zhuǎn)發(fā)提供了有效的解決方案,更好地支持了多核多線程報文處理。

        1 相關(guān)研究

        針對多核網(wǎng)絡(luò)分組處理系統(tǒng)的分組IO開銷大的問題,Intel基于通用多核處理平臺進(jìn)行高效網(wǎng)絡(luò)軟件處理,提出了數(shù)據(jù)平面開發(fā)工具套件(Data Plane Development Kit, DPDK)[2],為高速網(wǎng)絡(luò)設(shè)計(jì)了一套數(shù)據(jù)平面庫,提供了統(tǒng)一的處理器軟件編程模式,從而幫助應(yīng)用程序有效地接收和發(fā)送數(shù)據(jù),提高分組IO性能。PacketShader[1]則采用大報文緩沖區(qū)的方式,靜態(tài)地預(yù)分配兩個大的緩沖區(qū)——套接字緩存(SocKet Buffer, SKB)控制信息緩沖區(qū)和分組數(shù)據(jù)緩沖區(qū),通過連續(xù)存儲每個接收分組的SKB控制信息和分組數(shù)據(jù),避免緩沖區(qū)申請/釋放以及描述符的轉(zhuǎn)換操作,有效降低分組IO開銷和訪存開銷。Netmap[9]通過預(yù)分配固定大小緩沖區(qū)、批處理和并行直接路徑的方法,實(shí)現(xiàn)了內(nèi)存映射,存儲信息結(jié)構(gòu)簡單高效,能夠?qū)崿F(xiàn)報文的高速轉(zhuǎn)發(fā)。直接高速緩存訪問(Direct Cache Access, DCA)通過處理器硬件支持,將接收網(wǎng)絡(luò)分組直接寫入LLC cache,減小CPU訪問分組描述符的延時[10]。而基于多核架構(gòu)的Linux內(nèi)核數(shù)據(jù)包獲取引擎[6]接收的報文不需要通過標(biāo)準(zhǔn)協(xié)議棧處理,而是送入批處理隊(duì)列進(jìn)行批處理。現(xiàn)有研究還采用內(nèi)存映射的零拷貝技術(shù),采用將內(nèi)核的內(nèi)存區(qū)域直接映射到應(yīng)用空間的方法,減少內(nèi)存訪問,這類方法需要對驅(qū)動和內(nèi)核做出修改,只能解決拷貝的開銷,不能解決報文緩沖區(qū)分配和釋放開銷。面向高速分組轉(zhuǎn)發(fā)提出的自描述緩沖區(qū)(Self-Described Buffer, SDB)管理機(jī)制[11]將描述符、SKB控制信息以及分組數(shù)據(jù)連續(xù)存儲在一個緩沖區(qū)中,大大降低系統(tǒng)的緩沖區(qū)管理開銷,但存在TLB頁表頻繁失效切換的問題,帶來了很大的訪存開銷。

        2 基于多核的線程親和緩沖區(qū)硬件管理

        2.1 多核共享緩沖區(qū)硬件管理基礎(chǔ)機(jī)制及分組轉(zhuǎn)發(fā)模型

        以接收端為例,首先簡要介紹在通用多核分組處理系統(tǒng)中報文接收的基本流程:網(wǎng)絡(luò)端口接收到分組后,通過DMA將分組傳送到預(yù)先分配的內(nèi)核緩沖區(qū)內(nèi),軟件更新描述符環(huán)、標(biāo)記已經(jīng)使用的緩沖區(qū)描述符,并發(fā)出中斷請求、通知多核分組數(shù)據(jù)到達(dá),操作系統(tǒng)處理中斷并將分組數(shù)據(jù)送往協(xié)議棧。這其中存在大量的CPU中斷處理開銷軟件維護(hù)描述符的系統(tǒng)開銷以及內(nèi)核緩沖區(qū)與用戶數(shù)據(jù)之間的大量數(shù)據(jù)拷貝等開銷。為了有效地解決緩沖區(qū)管理開銷問題,本文提出的TABM基于已有研究——SDB方法[11],將包含控制信息的描述符和分組數(shù)據(jù)連續(xù)存儲在多核共享緩沖區(qū)中,也就是每個緩沖區(qū)有固定大小的單元對應(yīng)存儲一個報文的數(shù)據(jù)和控制信息,每個單元的報文數(shù)據(jù)對齊到2 K字節(jié)。為了支持多核多線程,該緩沖區(qū)為多核共享地址連續(xù)的存儲區(qū)域。實(shí)現(xiàn)了SDB方法的NPE在初始化時,將共享緩沖區(qū)的描述符填入空閑描述符塊隊(duì)列中。當(dāng)數(shù)據(jù)報文到達(dá),SDB根據(jù)空閑描述符隊(duì)列存儲的地址分配一個空閑描述符,與數(shù)據(jù)報文組裝好通過PCIE送往共享緩沖區(qū)對應(yīng)的地址空間。該共享緩沖區(qū)以塊為單位,由硬件進(jìn)行組織、申請和釋放。描述符和報文塊以單向鏈表的形式在共享緩沖區(qū)內(nèi)組織,如圖1所示。系統(tǒng)在處理分組時,只要空閑描述符隊(duì)列具有空閑描述符,數(shù)據(jù)報文即可上傳至共享緩沖區(qū),等待CPU核處理,無須通過中斷響應(yīng),也無須多次訪存緩沖區(qū)。

        圖1 無中斷緩沖區(qū)硬件管理機(jī)制示意圖Fig.1 Hardware buffer management mechanism without interruption

        2.2 線程親和緩沖區(qū)管理機(jī)制描述

        基于SDB管理機(jī)制的分組轉(zhuǎn)發(fā)模型能支持多核多線程的調(diào)度,然而不同線程處理的數(shù)據(jù)報文將亂序排列在內(nèi)存共享緩沖區(qū)中。如圖1所示,當(dāng)前描述符靜態(tài)隨機(jī)存取存儲器(Static Random Access Memory, SRAM)中,與每個CPU線程號一一對應(yīng)地存儲著當(dāng)前即將接收報文的空閑描述符,而當(dāng)前描述符SRAM中對應(yīng)的報文空閑描述符被分配給報文后,從空閑描述符隊(duì)列中產(chǎn)生下一個當(dāng)前描述符,存入SRAM對應(yīng)的線程號中。例如,首先將要送往線程2號處理的報文,從網(wǎng)絡(luò)端口經(jīng)由NPE分配描述符后,送往多核共享緩沖區(qū);接著,送往線程號為N-2等的報文陸續(xù)到達(dá),由于空閑描述符隊(duì)列依次給各個線程提供當(dāng)前空閑描述符,下一個線程號同樣為2的報文對應(yīng)的緩沖區(qū)地址就不能與上一個線程號為2的報文連續(xù),即同一線程上處理的報文被亂序地加載到共享緩沖區(qū)內(nèi)存儲,這將導(dǎo)致多核處理報文時TLB查表的高失效率,致使TLB表項(xiàng)反復(fù)沖刷,嚴(yán)重影響系統(tǒng)性能。

        如果將送往相同內(nèi)核線程進(jìn)行處理的報文對應(yīng)的順序存放到連續(xù)的共享緩沖區(qū)空間,將緩沖區(qū)管理進(jìn)行線程親和,會大大降低TLB查表的失效率。于是,將共享緩沖區(qū)按線程數(shù)進(jìn)行劃分,以8線程為例,如圖2所示,多核共享緩沖區(qū)按地址順序劃分成8塊。實(shí)現(xiàn)TABM的NPE進(jìn)行共享緩沖區(qū)描述符初始化、維護(hù)與分配、釋放與回收的機(jī)制如下:

        1)共享緩沖區(qū)描述符在NPE中的初始化:系統(tǒng)首先在內(nèi)存空間中初始化連續(xù)的共享緩沖區(qū)塊,再將要初始化的緩沖區(qū)描述符塊通過寫寄存器的方式通知NPE,于是緩沖區(qū)描述符按線程填充到對應(yīng)的空閑描述符隊(duì)列中;

        2)共享緩沖區(qū)描述符的維護(hù)與分配:從線程對應(yīng)的空閑描述符隊(duì)列中取出當(dāng)前塊基地址,并順序以固定長度2 K為偏移量,形成當(dāng)前描述符存放入SRAM中,當(dāng)報文到達(dá),將對應(yīng)線程的報文數(shù)據(jù)與對應(yīng)線程的當(dāng)前描述符,通過PCIE發(fā)送到共享緩沖區(qū)中;

        3)共享緩沖區(qū)釋放和描述符回收:按塊釋放緩沖區(qū),每個緩沖區(qū)塊均包含M個2 K大小的緩沖區(qū),那么當(dāng)該塊對應(yīng)的計(jì)數(shù)器為M時,表明該緩沖區(qū)塊全部釋放,該塊對應(yīng)的描述符可以回收到對應(yīng)線程的空閑描述符隊(duì)列中。

        圖2 線程親和緩沖區(qū)管理機(jī)制示意圖Fig.2 Thread affinity for buffer management mechanism

        2.3 線程親和緩沖區(qū)管理機(jī)制硬件實(shí)現(xiàn)

        如圖3所示,線程親和緩沖區(qū)硬件管理機(jī)制結(jié)構(gòu)實(shí)現(xiàn)主要包括緩沖區(qū)地址分配模塊、緩沖區(qū)描述符回收模塊。

        圖3 線程親和緩沖區(qū)管理機(jī)制硬件結(jié)構(gòu)圖Fig.3 TABM architecture

        緩沖區(qū)地址分配模塊:接收報文,并根據(jù)該報文對應(yīng)的CPU線程號,從當(dāng)前描述符SRAM中獲取當(dāng)前報文存放到共享緩沖區(qū)內(nèi)的描述符信息Cu_Addri,同時從各自待分配報文描述符先入先出隊(duì)列(First Input First Output, FIFO)中獲取下一報文存放到共享緩沖區(qū)內(nèi)的描述符信息next_Addri(i=0,1…,7),同報文一起構(gòu)造報文鏈表,并通過PCIE發(fā)送到多核的共享緩沖區(qū)內(nèi)存儲。

        緩沖區(qū)描述符回收模塊:主要負(fù)責(zé)初始化和回收共享緩沖區(qū)描述符隊(duì)列,并為報文鏈形成可用的描述符。多核下發(fā)需要釋放的共享緩沖區(qū)對應(yīng)的描述符信息到下發(fā)描述符緩沖。根據(jù)描述符信息,將該描述符對應(yīng)的塊地址存放入緩沖區(qū)塊描述符SRAM中,每個塊地址都對應(yīng)一個釋放計(jì)數(shù)器。仍舊以每個緩沖區(qū)塊包含M個2 K大小的緩沖區(qū)為例,當(dāng)釋放計(jì)數(shù)器計(jì)數(shù)到M時,釋放這一個塊地址,并將對應(yīng)的塊描述符寫入緩沖區(qū)塊描述符FIFO中。由于每一個CPU線程對應(yīng)一個緩沖區(qū)塊描述符FIFO,因而圖2中的A1至A16緩沖區(qū)塊描述符經(jīng)由塊描述符回收分派器對應(yīng)加載到緩沖區(qū)塊描述符FIFO 0中,H1至H16緩沖區(qū)塊描述符對應(yīng)加載到緩沖區(qū)塊描述符FIFO 7中。

        塊描述符到報文描述符轉(zhuǎn)換模塊:實(shí)現(xiàn)將8個塊的地址信息分配到對應(yīng)的8個待分配報文描述符FIFO中。一個緩沖區(qū)塊基地址包含M個待分配報文描述符,每形成一個待分配報文描述符,計(jì)數(shù)器加1,地址偏移2 K。當(dāng)計(jì)數(shù)器等于M時,則這個緩沖區(qū)塊的地址分配完了。

        2.4 基于TABM的報文處理流程

        為實(shí)現(xiàn)無中斷地接收由網(wǎng)絡(luò)接口傳送來的數(shù)據(jù)報文,接收端接收的報文將被存儲到共享報文緩沖區(qū)中。接收報文需要給報文分配存放在內(nèi)存的地址,那么首先需要對報文存放的內(nèi)存地址進(jìn)行初始化,這部分初始化工作由軟硬件配合完成。在描述符初始化流程中,系統(tǒng)首先將要初始化的共享報文緩沖區(qū)描述符經(jīng)過圖3中所示的下發(fā)描述符緩沖,再下發(fā)到塊描述符SRAM中,同時將對應(yīng)的緩沖區(qū)塊計(jì)數(shù)器進(jìn)行累加,當(dāng)計(jì)數(shù)器數(shù)值到達(dá)塊大小時,緩沖區(qū)塊地址經(jīng)由塊描述符回收分派器按照線程對應(yīng)地加載到緩沖區(qū)塊描述符FIFO中,同時將塊描述符SRAM中的計(jì)數(shù)器清零。初始化流程的描述在表1中給出。

        表1 硬件初始化偽碼描述

        當(dāng)緩沖區(qū)塊地址在緩沖區(qū)塊描述符FIFO中準(zhǔn)備好以后,數(shù)據(jù)報文便可以從網(wǎng)絡(luò)接口接收進(jìn)來。根據(jù)接收進(jìn)來的數(shù)據(jù)報文的線程號CPUid,從線程對應(yīng)的當(dāng)前描述符SRAM中獲取描述符信息,將描述符和數(shù)據(jù)報文組成報文鏈表,構(gòu)造成PCIE的寫請求TLP報文,送往共享報文緩沖區(qū)內(nèi)與線程對應(yīng)的存放空間中,與此同時將該線程的下一描述符信息從空閑描述符隊(duì)列FIFO中填充到當(dāng)前描述符SRAM中已被分配出去的位置。只要共享報文緩沖區(qū)中存在空閑的地址,分組處理系統(tǒng)就可以持續(xù)地接收網(wǎng)絡(luò)接口接收上來的報文。分組處理系統(tǒng)之上運(yùn)行的應(yīng)用程序通過輪詢的方式檢測到新數(shù)據(jù)的到達(dá),然后對數(shù)據(jù)進(jìn)行處理,無須中斷端系統(tǒng)進(jìn)行數(shù)據(jù)接收。RX接收流程的硬件描述在表2中給出。

        表2 RX端接收報文偽碼描述

        當(dāng)共享緩沖區(qū)中的報文被處理完之后,需要將數(shù)據(jù)通過發(fā)送端下發(fā)出去,TX發(fā)送分組到端系統(tǒng)及描述符的回收如表3所示。TABM為了降低描述符回收代價,將描述符回收下放到硬件實(shí)現(xiàn),因此發(fā)送端實(shí)現(xiàn)了數(shù)據(jù)報文的發(fā)送以及描述符的回收兩種功能。首先系統(tǒng)將需要下發(fā)的數(shù)據(jù)的描述符信息,包括線程號、下發(fā)端口信息、數(shù)據(jù)存放地址、長度信息等寄存器寫的方式,存入下發(fā)描述符緩沖中。一方面,描述符緩沖中提取的描述符信息寫入塊描述符SRAM中,將對應(yīng)的緩沖區(qū)塊計(jì)數(shù)器進(jìn)行累加,當(dāng)計(jì)數(shù)器數(shù)值到達(dá)塊大小時,緩沖區(qū)塊地址經(jīng)由塊描述符回收分派器按照線程對應(yīng)地加載到緩沖區(qū)塊描述符FIFO中,并將塊描述符SRAM中的計(jì)數(shù)器清零。另一方面,根據(jù)描述符下發(fā)緩沖中提取的描述符信息,包括需回收報文緩沖區(qū)地址和長度信息,構(gòu)造PCIE的內(nèi)存讀請求TLP報文。發(fā)生端接收到多核分組處理系統(tǒng)返回的報文緩沖區(qū)內(nèi)需下發(fā)數(shù)據(jù)報文的Completion報文后解析并進(jìn)行報文重定序和拼接,然后將組裝完成的需下發(fā)的數(shù)據(jù)報文下發(fā)至網(wǎng)絡(luò)接口。

        表3 TX主機(jī)下發(fā)分組到端及描述符回收

        3 性能評估

        為有效驗(yàn)證TABM技術(shù)的功能和性能,本文設(shè)計(jì)并實(shí)現(xiàn)了TABM原型系統(tǒng)。原型系統(tǒng)基于國防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院自主研發(fā)的高性能通用64位CPU FT-1500A[12]與自主研制的NPE[11]構(gòu)建。其中NPE的核心部件在現(xiàn)場可編程門陣列(Field-Programmable Gate Array, FPGA)上實(shí)現(xiàn),F(xiàn)PGA器件采用Stratix IV EP4SGX230KF40C2。

        本實(shí)驗(yàn)的軟件測試環(huán)境包括:Ubuntu 14.04操作系統(tǒng)、NPDK 2.0版本軟件開發(fā)環(huán)境提供的NPE網(wǎng)口驅(qū)動[13]及用戶配置程序。

        NPDK環(huán)境將所有軟硬件的初始化函數(shù)封裝在環(huán)境庫內(nèi),調(diào)用初始化函數(shù)create_net_device(dma_cnt, disp_mode),其中dma_cnt表示硬件啟動多少個DMA通道,與軟件處理線程數(shù)對應(yīng),每個DMA通道對應(yīng)一個處理線程,綁定在一個指定的CPU核上運(yùn)行;disp_mode指定報文分派模式——循環(huán)分派或端口綁定分派。在不超過硬件最大支持DMA通道數(shù)情況下,通過重復(fù)調(diào)用pthread_create(&p_t,&attr,start_npe_thread,tp)函數(shù),選擇自由創(chuàng)建多個處理線程,創(chuàng)建線程數(shù)與dma_cnt數(shù)相同,start_npe_thread即為業(yè)務(wù)處理線程。線程創(chuàng)建后,顯示指定線程綁定到哪個CPU核上運(yùn)行,線程的創(chuàng)建與CPU親和設(shè)置都使用標(biāo)準(zhǔn)的libpthread庫函數(shù)。線程輪詢到報文后,立即調(diào)用報文發(fā)送函數(shù)進(jìn)行發(fā)送,完成一個報文的轉(zhuǎn)發(fā)操作。發(fā)送函數(shù)為send_pkt(*pkt, outport, pkt_len),其中pkt表示報文指針,outport表示輸出端口號,pkt_len表示發(fā)送長度。

        在該原型系統(tǒng)的軟硬件基礎(chǔ)上,通過Ixia網(wǎng)絡(luò)測試儀連續(xù)發(fā)送大小為64 B至1500 B大小不等的報文。由一個萬兆端口接收的報文,采用公平輪詢的方式分配到1,2,4,8個CPU線程處理,每個CPU線程被設(shè)置訪問對應(yīng)的共享緩沖區(qū)塊;通過軟件設(shè)置DMA通道數(shù),每個線程對應(yīng)一個DMA通道,創(chuàng)建不同的軟件線程。測試結(jié)果如圖4所示,可以看出采用TABM的原型系統(tǒng),當(dāng)發(fā)包速率為10 Gbps、轉(zhuǎn)發(fā)分組大小為1500 B時,速率最高達(dá)7.93 Gbps。當(dāng)分組較小時,支持線程數(shù)越大,轉(zhuǎn)發(fā)性能越好。

        圖4 TABM分組轉(zhuǎn)發(fā)性能Fig.4 Packet forwarding performance of TABM

        圖5 TABM與SDB機(jī)制的性能比對Fig.5 Performance comparison of TABM and SDB mechanism

        另外,在該原型系統(tǒng)的基礎(chǔ)上,通過Ixia網(wǎng)絡(luò)測試儀連續(xù)發(fā)送大小為64 B的報文,分別在FT-1500A加NPE萬兆加速引擎子卡的測試平臺上對SDB機(jī)制和TABM進(jìn)行了裸轉(zhuǎn)發(fā)性能測試和比對。測試結(jié)果如圖5所示,可以看出,TABM相較于SDB機(jī)制,分組轉(zhuǎn)發(fā)性能有明顯的提升,在內(nèi)核沒有支持更大TLB頁表的保守情況下,平均性能提升12.4%。TABM更加適應(yīng)于通用多核多線程的報文處理平臺。

        4 結(jié)論

        為了解決通用多核分組處理的分組IO開銷問題,提升轉(zhuǎn)發(fā)性能,基于通用多核加網(wǎng)絡(luò)專用協(xié)處理引擎的平臺,提出了一種基于多核網(wǎng)絡(luò)分組處理系統(tǒng)的線程親和緩沖區(qū)硬件管理機(jī)制TABM,并實(shí)現(xiàn)了支持TABM的原型系統(tǒng)。實(shí)驗(yàn)結(jié)果顯示,當(dāng)發(fā)包速率為10 Gbps時,相較于無中斷SDB管理機(jī)制,TABM能使系統(tǒng)整體轉(zhuǎn)發(fā)速率提高約12.4%。TABM能夠有效降低系統(tǒng)緩沖區(qū)的管理開銷、IO開銷和線程亂序存儲分組造成的TLB表缺失,更好地支持基于通用多核多線程的高速分組轉(zhuǎn)發(fā)。

        References)

        [1] Han S J, Jang K, Park K S, et al.PacketShader: a GPU-accelerated software router[J]. ACM SIGCOMM Computer Communication, 2010, 40(4): 195-206.

        [2] Wind River Systems. High-performance multi-core networking software design options[R]. White Paper Intel, 2011.

        [3] Huggahalli R, Iyer R, Tetrick S.Direct cache access for high bandwidth network I/O [J]. ACM SIGARCH Computer Architecture News, 2005, 33(2): 50-59.

        [4] Dashtbozorgi M, Abdollahiazgomi M. A high-performance and scalable multi-core aware software solution for network monitoring [J]. Journal of Supercomputing, 2012, 59(2):720-743.

        [5] Kekely L, Pus V, Benacek P. Trade-offs and progressive adoption of FPGA acceleration in network traffic monitoring[C]// Proceedings of the 24th International Conference on Field Programmable Logic and Applications (FPL), Munich, 2014: 1-4.

        [6] Bonelli N, Pietro A D, Giordano S, et al. On multi-gigabit packet capturing with multi-core commodity hardware [C]//Proceedings of the 13th International Conference on Passive and Active Measurement, Berlin/Heidelberg: Springer, 2012: 64-73.

        [7] Biersack E, Callegari C, Matijasevic M.Data traffic monitoring and analysis—from measurement, classification, and anomaly detection to quality of experience [J]. Lecture Notes in Computer Science, 2013, 7745: 45-56.

        [8] García-Dorado J L, Mata F, Ramos J, et al.High-performance network traffic processing systems using commodity hardware [J]. Lecture Notes in Computer Science, 2013, 7754: 3-27.

        [9] Rizzo L. Netmap: a novel framework for fast packet I/O[C]//Proceedings of the USENIX Annual Technical Conference, 2012:1-12.

        [10] Rizzo L, Deri L, Cardigliano A. 10 Gbit/t line rate packet processing using commodity hardware:survey and new proposals[EB/OL].[2015-05-08]. http://luca.ntop.org/log.pdf.

        [11] 唐路. 通用多核網(wǎng)絡(luò)處理器高速報文I/O技術(shù)研究[D]. 長沙:國防科學(xué)技術(shù)大學(xué), 2012.TANG Lu. Research on packet I/O technology for general-purpose multi-core network processor[D]. Changsha: National University of Defense Technology, 2012.(in Chinese)[12] 中國電子報. 中國電子重量級芯片“飛騰”亮相[EB/OL]. (2015-04-13)[2016-03-07].www.news.ifeng.com/a/20150413/43539854_0.shtml.

        Journal of China Electronic. The heavyweight chip of Chinese electronic FT appear [EB/OL]. (2015-04-13)[2016-03-07].www.news.ifeng.com/a/20150413/43539854_0.shtml. (in Chinese)

        [13] 徐東來. 面向通用多核CPU的高性能網(wǎng)絡(luò)I/O加速研究與實(shí)現(xiàn)[D].長沙:國防科學(xué)技術(shù)大學(xué), 2015.

        XU Donglai. Research and realization of high-performance I/O acceleration on general multi-core CPU[D]. Changsha: National University of Defense Technology, 2015.(in Chinese)

        Thread affinity for buffer management mechanism based on multi-core network packet processing system

        YANG Hui1, CHEN Yijiao1, LI Tao1, LI Shixing1, DAI Huanyao2

        (1. College of Computer, National University of Defense Technology, Changsha 410073, China;2. Luoyang Electronic Equipment Test Center, Luoyang 471003, China)

        The packet processing performance of the general multi-core architecture is plagued by many factors, including high packet IO cost, multi-core share memory and process scheduling competition, TLB entries failure rate, etc. Therefore, a TABM (thread affinity for buffer management mechanism) based on multi-core network packet processing system, which is oriented to high-speed packet forwarding application was proposed and completed on network dedicated co-processing engine. The TABM adopts thread affinity scheduling strategy with no interrupt, sends each packet data and descriptor which contains control and buffer address information to several successive shared buffers according to the corresponding thread ID, and organizes the packets and descriptors which processed in the same thread in the form of a chain. The packet forwarding performance was tested on the basis of general multi-core and field-programmable gate array platform. The experimental data show that the average packet forwarding performance is promoted by about 12.4% and the IO cost and the TLB entries failure rate are reduced by adopting the TABM.

        packet IO; thread affinity; buffer management; packet forwarding; multi-core

        10.11887/j.cn.201605005

        http://journal.nudt.edu.cn

        2015-05-27

        國家自然科學(xué)基金資助項(xiàng)目(612024823,61301236)

        楊惠(1987—),女,安徽蕭縣人,助理研究員,博士,E-mail:huihui19870124@126.com

        TP393

        A

        1001-2486(2016)05-026-06

        猜你喜歡
        管理機(jī)制
        試論工程造價管理機(jī)制的完善與創(chuàng)新
        建立有效的管理機(jī)制奠定堅(jiān)實(shí)的人力資源基礎(chǔ)
        關(guān)于軟科學(xué)質(zhì)量管理機(jī)制的問題探討
        工電道岔結(jié)合部聯(lián)合管理機(jī)制的探討
        淺析WSN的網(wǎng)絡(luò)安全管理機(jī)制
        基于ECC的智能家居密鑰管理機(jī)制的實(shí)現(xiàn)
        安全計(jì)算機(jī)通信管理機(jī)制的形式化驗(yàn)證與實(shí)現(xiàn)
        煤炭企業(yè)倉儲管理機(jī)制探索和研究
        建立完善的保障性住房管理機(jī)制探討
        企業(yè)內(nèi)部控制的風(fēng)險管理機(jī)制分析
        国产成人精品人人做人人爽97| 国产又黄又爽又无遮挡的视频| 亚洲一区二区高清在线| 国内免费自拍9偷1拍| 成人做爰69片免费看网站野花| 日韩a毛片免费观看| 欧美日韩高清一本大道免费| 久久精品国产亚洲av豆腐| 中文在线中文a| 一本之道高清无码视频| 国产真实乱XXXⅩ视频| 蜜桃在线视频一区二区| 欧美日韩精品乱国产| 无码人妻精品一区二区三区在线 | 自拍偷拍一区二区三区四区| 日本不卡在线视频二区三区| 香蕉人人超人人超碰超国产| 国产精品丝袜在线不卡| 亚洲熟女少妇精品久久| 欧美老妇交乱视频在线观看| 亚洲精品国产福利一二区| 国产高清一级毛片在线看| 精品中文字幕在线不卡| 一区二区三区四区四色av| 白白发在线视频免费观看2| 亚洲av无码国产精品色软件下戴| 色综合久久无码中文字幕app| 日本免费三片在线播放| 邻居少妇张开腿让我爽了一夜| 国产精品天天在线午夜更新| 亚洲国产欧美久久香综合| 麻豆国产av在线观看| 亚洲精品夜夜夜妓女网| 亚洲精品第一国产麻豆| 亚洲一区二区三区av天堂| 欧美激情综合色综合啪啪五月| 久久久精品久久日韩一区综合| 国产高潮精品一区二区三区av| 国产内射视频在线免费观看| 草草久久久无码国产专区| 五月天无码|