基于Intel DPDK框架的用戶(hù)空間驅(qū)動(dòng)和環(huán)境抽象層的研究與實(shí)現(xiàn)
本文關(guān)鍵詞:基于Intel DPDK框架的用戶(hù)空間驅(qū)動(dòng)和環(huán)境抽象層的研究與實(shí)現(xiàn),由筆耕文化傳播整理發(fā)布。
【摘要】:SDN和NFV是近幾年來(lái)網(wǎng)絡(luò)世界炙手可熱的“新星”,雖然提出的背景和應(yīng)用場(chǎng)景不完全相同,但是兩者在實(shí)際應(yīng)用過(guò)程中需要的轉(zhuǎn)發(fā)表表項(xiàng)都變得非常巨大。此時(shí),海量表項(xiàng)的存儲(chǔ)、處理也就不再適合全部由硬件部分來(lái)實(shí)現(xiàn)。同時(shí),不斷提高的網(wǎng)絡(luò)速率對(duì)網(wǎng)絡(luò)設(shè)備處理時(shí)延提出了更高的要求。針對(duì)上述情況,我們結(jié)合軟件和硬件各自的優(yōu)勢(shì),提出了一種高速網(wǎng)絡(luò)中硬件提取軟件查找的處理方案。該方案從下到上整體上分為三部分:FPGA邏輯開(kāi)發(fā)硬件部分,低延時(shí)數(shù)據(jù)傳遞軟件部分,數(shù)據(jù)處理軟件部分。需要特別說(shuō)明的是,本方案中一個(gè)很重要的改進(jìn)就是:硬件邏輯開(kāi)發(fā)部分和數(shù)據(jù)處理軟件部分之間傳遞的絕大部分?jǐn)?shù)據(jù)不是完整的數(shù)據(jù)包,而是數(shù)據(jù)包中一些關(guān)鍵的數(shù)據(jù)。這樣做的好處是能夠節(jié)省內(nèi)存和PCI-E帶寬。軟件實(shí)現(xiàn)查找與傳統(tǒng)交換機(jī)中硬件實(shí)現(xiàn)查找相比,經(jīng)歷更多的操作、消耗更多的時(shí)間。要在高速網(wǎng)絡(luò)中使用這種數(shù)據(jù)處理方案,軟件設(shè)計(jì)時(shí)最根本的要求就是盡最大可能減少數(shù)據(jù)收發(fā)、處理過(guò)程中的時(shí)間消耗。本文的主要工作是設(shè)計(jì)和實(shí)現(xiàn)了低延時(shí)數(shù)據(jù)傳遞軟件部分,具體的說(shuō)分為三部分:第一、對(duì)比傳統(tǒng)Linux驅(qū)動(dòng)程序設(shè)計(jì)和Linux用戶(hù)空間I/0技術(shù)兩種驅(qū)動(dòng)設(shè)計(jì)方式,針對(duì)實(shí)驗(yàn)室特定的FPGA邏輯開(kāi)發(fā)板,設(shè)計(jì)了一種無(wú)中斷、零拷貝、輪詢(xún)的用戶(hù)空間驅(qū)動(dòng)。這種方式的驅(qū)動(dòng),可以使得數(shù)據(jù)的收發(fā)過(guò)程繞過(guò)Linux內(nèi)核,數(shù)據(jù)直接在Linux用戶(hù)空間和硬件邏輯開(kāi)發(fā)部分之間傳遞,從多個(gè)方面減少數(shù)據(jù)接收和發(fā)送過(guò)程中的時(shí)間消耗。第二、參考了Intel DPDK框架,對(duì)底層具體的硬件環(huán)境進(jìn)行了抽象,實(shí)現(xiàn)了一個(gè)環(huán)境抽象層。該環(huán)境抽象層可以為上層的庫(kù)和數(shù)據(jù)處理軟件提供一個(gè)低開(kāi)銷(xiāo)、緊湊的數(shù)據(jù)處理環(huán)境。第三、編寫(xiě)具有轉(zhuǎn)發(fā)功能的數(shù)據(jù)處理軟件、和硬件邏輯開(kāi)發(fā)模塊進(jìn)行聯(lián)合調(diào)試和測(cè)試。測(cè)試內(nèi)容主要包括低延時(shí)數(shù)據(jù)傳遞軟件的傳遞時(shí)延和整個(gè)數(shù)據(jù)處理方案的吞吐率。出于對(duì)比和測(cè)試的需要,本文還實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)。
【關(guān)鍵詞】:硬件提取 軟件查找 用戶(hù)空間驅(qū)動(dòng) DPDK框架 環(huán)境抽象層
【學(xué)位授予單位】:電子科技大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2015
【分類(lèi)號(hào)】:TP393.11;TP274
【目錄】:
- 摘要5-6
- ABSTRACT6-14
- 縮略詞表14-15
- 第一章 緒論15-21
- 1.1 研究背景15-17
- 1.1.1 以太網(wǎng)的快速發(fā)展15
- 1.1.2 SDN和NFV的快速發(fā)展15-17
- 1.2 研究問(wèn)題的提出17
- 1.3 國(guó)內(nèi)外研究現(xiàn)狀17-18
- 1.4 論文的主要工作18-21
- 1.4.1 論文內(nèi)容與意義18-19
- 1.4.2 本文的結(jié)構(gòu)19-21
- 第二章 協(xié)議分析與技術(shù)介紹21-29
- 2.1 相關(guān)的協(xié)議簡(jiǎn)介21-22
- 2.1.1 MAC子層協(xié)議21
- 2.1.2 網(wǎng)絡(luò)層協(xié)議21-22
- 2.2 用戶(hù)空間I/O框架22-23
- 2.3 處理器親和性23-25
- 2.4 硬件高速緩存、轉(zhuǎn)址旁路轉(zhuǎn)換、Linux大頁(yè)面機(jī)制25-27
- 2.4.1 硬件高速緩存25-26
- 2.4.2 轉(zhuǎn)址旁路轉(zhuǎn)換26
- 2.4.3 Linux大頁(yè)面機(jī)制26-27
- 2.5 對(duì)稱(chēng)多處理以及和非對(duì)稱(chēng)多處理27-28
- 2.6 本章小結(jié)28-29
- 第三章 數(shù)據(jù)處理方案的整體架構(gòu)29-43
- 3.1 數(shù)據(jù)處理方案架構(gòu)29-30
- 3.2 數(shù)據(jù)處理方案的改進(jìn)30-32
- 3.3 數(shù)據(jù)處理方案的處理流程32-34
- 3.4 數(shù)據(jù)處理方案帶來(lái)的有益效果34
- 3.5 數(shù)據(jù)處理方案對(duì)軟件根本要求34-36
- 3.6 數(shù)據(jù)處理方案數(shù)據(jù)傳輸模塊總體方案36-42
- 3.6.1 Intel DPDK框架36-39
- 3.6.1.1 DPDK框架主要組成模塊36-38
- 3.6.1.2 DPDK框架給數(shù)據(jù)處理平面帶來(lái)的有益效果38-39
- 3.6.2 環(huán)境抽象層(EAL)分析39-41
- 3.6.2.1 環(huán)境抽象層實(shí)現(xiàn)要求39-41
- 3.6.2.2 環(huán)境抽象層中各個(gè)子模塊的初始化步驟41
- 3.6.3 驅(qū)動(dòng)設(shè)計(jì)的具體要求分析41-42
- 3.7 本章小結(jié)42-43
- 第四章 環(huán)境抽象層各子模塊的實(shí)現(xiàn)43-52
- 4.1 環(huán)境抽象層中CPU子模塊43-44
- 4.2 環(huán)境抽象層中PCI子模塊44-47
- 4.2.1 PCI子模塊初始化過(guò)程44-45
- 4.2.2 PCI子模塊探測(cè)函數(shù)45-47
- 4.3 環(huán)境抽象層中內(nèi)存子模塊47-50
- 4.3.1 環(huán)境抽象層中大頁(yè)內(nèi)存管理子模塊47-49
- 4.3.2 環(huán)境抽象層中內(nèi)存區(qū)子模塊49-50
- 4.4 環(huán)境抽象層中線(xiàn)程子模塊50-51
- 4.5 本章小結(jié)51-52
- 第五章 用戶(hù)空間驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)52-72
- 5.1 驅(qū)動(dòng)實(shí)現(xiàn)方案的選擇52-57
- 5.1.1 中斷還是輪詢(xún)52-53
- 5.1.2 傳統(tǒng)設(shè)備驅(qū)動(dòng)程序還是用戶(hù)空間I/O53-57
- 5.1.2.1 傳統(tǒng)的Linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序54-55
- 5.1.2.2 Linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)的中斷數(shù)據(jù)接收和發(fā)送過(guò)程55-57
- 5.1.2.3 傳統(tǒng)的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序中存在的問(wèn)題57
- 5.2 用戶(hù)空間輪詢(xún)驅(qū)動(dòng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)57-71
- 5.2.1 用戶(hù)空間輪詢(xún)驅(qū)動(dòng)的內(nèi)核模塊的設(shè)計(jì)與實(shí)現(xiàn)59-62
- 5.2.2 用戶(hù)空間輪詢(xún)驅(qū)動(dòng)的用戶(hù)模塊的設(shè)計(jì)與實(shí)現(xiàn)62-71
- 5.2.2.1 用戶(hù)空間輪詢(xún)驅(qū)動(dòng)的用戶(hù)模塊實(shí)現(xiàn)的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)62-66
- 5.2.2.2 用戶(hù)空間輪詢(xún)驅(qū)動(dòng)的輪詢(xún)的實(shí)現(xiàn)66-67
- 5.2.2.3 用戶(hù)空間輪詢(xún)驅(qū)動(dòng)數(shù)據(jù)收發(fā)過(guò)程的具體實(shí)現(xiàn)67-70
- 5.2.2.4 用戶(hù)空間驅(qū)動(dòng)中批量數(shù)據(jù)包處理的實(shí)現(xiàn)70-71
- 5.3 本章小結(jié)71-72
- 第六章 環(huán)境抽象層和用戶(hù)空間驅(qū)動(dòng)測(cè)試與分析72-89
- 6.1 測(cè)試環(huán)境簡(jiǎn)介72-73
- 6.2 簡(jiǎn)單功能測(cè)試73-79
- 6.2.1 網(wǎng)卡基本收發(fā)功能測(cè)試73-75
- 6.2.1.1 測(cè)試目的73
- 6.2.1.2 網(wǎng)卡收發(fā)功能測(cè)試步驟73-74
- 6.2.1.3 網(wǎng)卡收發(fā)功能測(cè)試結(jié)果與分析74-75
- 6.2.2 數(shù)據(jù)卡低延時(shí)數(shù)據(jù)傳遞軟件中環(huán)境抽象層測(cè)試75-76
- 6.2.2.1 測(cè)試目的75
- 6.2.2.2 環(huán)境抽象層測(cè)試步驟75
- 6.2.2.3 環(huán)境抽象層測(cè)試與結(jié)果分析75-76
- 6.2.3 數(shù)據(jù)卡低延時(shí)數(shù)據(jù)傳遞軟件中用戶(hù)空間驅(qū)動(dòng)測(cè)試76-79
- 6.2.3.1 測(cè)試目的76
- 6.2.3.2 數(shù)據(jù)卡用戶(hù)空間驅(qū)動(dòng)測(cè)試場(chǎng)景與步驟76
- 6.2.3.3 數(shù)據(jù)卡用戶(hù)空間驅(qū)動(dòng)測(cè)試與結(jié)果分析76-79
- 6.3 性能測(cè)試79-86
- 6.3.1 延時(shí)測(cè)試79-83
- 6.3.1.1 測(cè)試目的79
- 6.3.1.2 延時(shí)測(cè)試場(chǎng)景與步驟79-80
- 6.3.1.3 延時(shí)測(cè)試與結(jié)果分析80-83
- 6.3.2 吞吐率測(cè)試83-86
- 6.3.2.1 測(cè)試目的83
- 6.3.2.2 吞吐率測(cè)試場(chǎng)景和步驟83
- 6.3.2.3 數(shù)據(jù)包關(guān)鍵信息方式轉(zhuǎn)發(fā)測(cè)試吞吐率結(jié)果與分析83-86
- 6.4 特殊功能測(cè)試-MAC地址替換86-88
- 6.4.1 測(cè)試目的86
- 6.4.2 MAC地址替換測(cè)試場(chǎng)景和步驟86-87
- 6.4.3 MAC地址替換測(cè)試結(jié)果與分析87-88
- 6.5 本章小結(jié)88-89
- 第七章 結(jié)束語(yǔ)89-90
- 7.1 論文總結(jié)89
- 7.2 下一步研究工作89-90
- 致謝90-91
- 參考文獻(xiàn)91-93
- 攻讀碩士學(xué)位期間的研究成果93
【共引文獻(xiàn)】
中國(guó)期刊全文數(shù)據(jù)庫(kù) 前10條
1 陳剛;張京;唐建;;一種基于FPGA的PCIe總線(xiàn)及其DMA的設(shè)計(jì)方法[J];兵工自動(dòng)化;2014年05期
2 溫宇辰;李明偉;陳玉龍;;PCI-E總線(xiàn)光纖接口卡的設(shè)計(jì)[J];電子技術(shù)應(yīng)用;2014年04期
3 趙英瀟;張?jiān)?戴華驊;郭瑞;陳曾平;;Virtex-6 FPGA的三種串行通信協(xié)議測(cè)試及對(duì)比[J];單片機(jī)與嵌入式系統(tǒng)應(yīng)用;2014年10期
4 檀永;侯明國(guó);沈健;;基于PCI-E總線(xiàn)的智能變電站網(wǎng)絡(luò)記錄分析儀研制[J];電氣自動(dòng)化;2015年05期
5 孫文碩;賽景波;;PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)[J];電子器件;2015年05期
6 王澧;王蕾;張玲;;一種PCIe總線(xiàn)MAC模塊的設(shè)計(jì)與驗(yàn)證[J];電子與封裝;2015年10期
7 李麗斯;崔志華;殷曄;王石記;常路;;基于FPGA的PCIe總線(xiàn)DMA控制器的設(shè)計(jì)與驗(yàn)證[J];計(jì)算機(jī)測(cè)量與控制;2014年04期
8 劉興輝;姜長(zhǎng)仁;張冬苓;曹軍;羅燁輝;;PCI Express多鏈路的De-Skew邏輯設(shè)計(jì)[J];遼寧大學(xué)學(xué)報(bào)(自然科學(xué)版);2014年01期
9 侯寧;盧亞鵬;張多利;;基于片上網(wǎng)絡(luò)的多核芯片組通訊方案[J];計(jì)算機(jī)時(shí)代;2014年10期
10 鄭乾;晏敏;趙建中;李優(yōu);張鋒;;基于PCIE2.0的物理層彈性緩沖器設(shè)計(jì)[J];計(jì)算機(jī)工程;2014年10期
中國(guó)博士學(xué)位論文全文數(shù)據(jù)庫(kù) 前1條
1 陳勁;水聽(tīng)器線(xiàn)列陣的數(shù)據(jù)采集與傳輸關(guān)鍵技術(shù)研究[D];天津大學(xué);2013年
中國(guó)碩士學(xué)位論文全文數(shù)據(jù)庫(kù) 前10條
1 胡民達(dá);基于PCIE總線(xiàn)的CCSDS標(biāo)準(zhǔn)衛(wèi)星數(shù)據(jù)采集軟件開(kāi)發(fā)[D];華南理工大學(xué);2010年
2 蘭里;自動(dòng)絲網(wǎng)印刷機(jī)硬件設(shè)計(jì)與驅(qū)動(dòng)開(kāi)發(fā)[D];華南理工大學(xué);2012年
3 彭畢雨;基于FPGA的網(wǎng)絡(luò)適配器驅(qū)動(dòng)程序設(shè)計(jì)[D];華中科技大學(xué);2013年
4 侯君健;增強(qiáng)型以太網(wǎng)適配器研究與設(shè)計(jì)[D];華中科技大學(xué);2013年
5 尤超勤;木質(zhì)材料超聲無(wú)損定征與分類(lèi)技術(shù)的研究[D];浙江大學(xué);2014年
6 徐開(kāi)潔;Linux下算法加密卡的PCIe接口的驅(qū)動(dòng)研究[D];杭州電子科技大學(xué);2013年
7 楊威龍;基于FPGA的高速數(shù)據(jù)傳輸接口設(shè)計(jì)與實(shí)現(xiàn)[D];北方工業(yè)大學(xué);2014年
8 李鋒;基于光纖反射內(nèi)存網(wǎng)的實(shí)時(shí)數(shù)據(jù)傳輸研究[D];中國(guó)科學(xué)院研究生院(光電技術(shù)研究所);2014年
9 鐘曉珍;基于PowerPC的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)[D];山東大學(xué);2014年
10 段潔汝;高頻RFID測(cè)試設(shè)備硬件部分設(shè)計(jì)與實(shí)現(xiàn)[D];山東大學(xué);2014年
本文關(guān)鍵詞:基于Intel DPDK框架的用戶(hù)空間驅(qū)動(dòng)和環(huán)境抽象層的研究與實(shí)現(xiàn),由筆耕文化傳播整理發(fā)布。
,本文編號(hào):429276
本文鏈接:http://sikaile.net/guanlilunwen/ydhl/429276.html