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