當前位置:首頁 > 消費電子 > 消費電子
[導讀]  2 多信源組播系統(tǒng)結構及整體設計方案  2.1項目研究需求、目標和內(nèi)容  網(wǎng)絡編碼能夠提高網(wǎng)絡吞吐量,提升魯棒性、安全性等網(wǎng)絡性能。具有網(wǎng)絡編碼功能的路由器是未來

  2 多信源組播系統(tǒng)結構及整體設計方案

  2.1項目研究需求、目標和內(nèi)容

  網(wǎng)絡編碼能夠提高網(wǎng)絡吞吐量,提升魯棒性、安全性等網(wǎng)絡性能。具有網(wǎng)絡編碼功能的路由器是未來網(wǎng)絡發(fā)展的趨勢。組播通信在網(wǎng)絡通信中有重要的作用,事實上,任何一個網(wǎng)絡都可以認為是組播網(wǎng)的一個特例。然而,目前在世界上研究網(wǎng)絡編碼在組播上的應用大多集中在單信源組播方面,例如,單信源多信宿網(wǎng)絡如何達到最大傳輸速率問題[25],基于網(wǎng)絡編碼的組播路由算法和性能評估[26], 基于網(wǎng)絡編碼的組播通信網(wǎng)絡的拓撲設計[27], 多信源隨機線性網(wǎng)絡編碼在組播通信的研究[28]以及單信源組播網(wǎng)中編碼節(jié)點的研究[29],以上研究都是以軟件仿真為主,沒有形成實際的硬件平臺和系統(tǒng)。

  多信源組播的應用非常廣泛,如P2P內(nèi)容分發(fā)網(wǎng)絡等。事實上,任何一個網(wǎng)絡都可以作為多信源組播的一個特例,因此研究多信源組播是有意義且必要的。

  本項目的主要研究目標是基于網(wǎng)絡編碼的多信源組播系統(tǒng)的實現(xiàn)。在基于國內(nèi)外網(wǎng)絡編碼理論在組播通信中的最新研究成果和技術,對網(wǎng)絡編碼理論進行深入學習和探討,提出一種基于網(wǎng)絡編碼的多信源組播系統(tǒng)和網(wǎng)絡,然后依據(jù)此系統(tǒng)設計出可實現(xiàn)組播的通信協(xié)議和相關算法,再利用開放式的網(wǎng)絡設計硬件平臺NetFPGA[30],使提出的協(xié)議和算法在硬件上實現(xiàn),最后在實際的環(huán)境中用若干電腦和NetFPGA組成一個小型組播通信網(wǎng)絡進行系統(tǒng)測試和性能評估。

  2.2 NetFPGA——新一代開放式網(wǎng)絡研究平臺簡介

  由斯坦福大學開發(fā)的NetFPGA是一個基于Linux操作系統(tǒng)的可重用開放性硬件平臺,允許用戶在實驗室內(nèi)搭建高性能的網(wǎng)絡模型進行仿真和研究。它具有以下特點[31]:

  (1)很好地支持模塊化設計,它可以使研究人員在硬件上搭建Gb/s高性能網(wǎng)絡系統(tǒng)模型。(2)NetFPGA是一個基于Linux系統(tǒng)的開放性平臺,可以利用平臺上現(xiàn)有的資源,在前人開發(fā)的基礎上添加自己的模塊和修改現(xiàn)有的系統(tǒng),而不需要重復地搭建外圍模塊、開發(fā)驅(qū)動和GUI等,大大減輕了網(wǎng)絡研究的任務。

  NetFPGA的硬件主要包含了4個1Gb/s的以太網(wǎng)接口(GigE),一個用戶可編程的FPGA,以及兩片SRAM和一片DRAM。NetFPGA開發(fā)板通過標準的PCI總線接口連接到PC機或服務器,模塊框圖如圖2.2-1所示。

  

 

  圖 2.2-1:NetFPGA平臺的組成框圖

  在外部硬件接口方面,除了連接PC主機的PCI總線插口,一個Broadcom公司的物理層收發(fā)器(PHY)包含了四個千兆位以太網(wǎng)接口,板子上的兩個SATA連接口使得系統(tǒng)內(nèi)部的多個NetFPGA可以通過SATA數(shù)據(jù)線連接起來,互相之間直接以很高的速度交換數(shù)據(jù),而不必再通過PCI總線。NetFPGA通過PCI總線與主機CPU連接,提供了硬件加速的數(shù)據(jù)通道,分擔CPU的處理任務。主機CPU按照DMA方式讀寫NetFPGA上的寄存器和存儲器來配置NetFPGA的工作模式,并對NetFPGA的工作狀態(tài)進行監(jiān)控。

  NetFPGA平臺的軟件系統(tǒng)包括操作系統(tǒng)、作為軟件接口的驅(qū)動程序、實現(xiàn)各種硬件功能的邏輯代碼、執(zhí)行控制功能的軟件程序、系統(tǒng)測試的腳本程序,以及計算機輔助設計軟件工具。

  2.3 利用NetFPGA實現(xiàn)本設計的總體構想

  基于網(wǎng)絡編碼的組播通信系統(tǒng)將充分運用NetFPGA上面的各種硬件和軟件資源,實現(xiàn)系統(tǒng)的設計目標,具體是:(1)根據(jù)項目的需求,合理且充分利用NetFPGA卡上面的各種硬件資源,如FPGA、存儲芯片和輸入輸出接口;(2)由于基于NetFPGA實現(xiàn)的IPv4原理性路由器是一個開源的系統(tǒng),因此我們可以運用其提供的部分代碼和已經(jīng)設計好的底層硬件平臺,來幫助我們實現(xiàn)設計目標。例如,我們的系統(tǒng)的編碼、解碼工作主要在網(wǎng)絡層完成,因此我們可以利用NetFPGA中已有的物理層、MAC層硬件邏輯來實現(xiàn)數(shù)據(jù)的接收和發(fā)送;(3)在軟件方面,由于NetFPGA平臺選擇了CentOS操作系統(tǒng),并且開發(fā)了軟硬件接口的驅(qū)動程序,基于Linux內(nèi)核的設備驅(qū)動程序和Java程序開發(fā)的圖形用戶界面(Java GUI)等,因此我們可以對其應用、改進,使我們的系統(tǒng)更加完善,方便調(diào)試和后續(xù)的進一步研究。

  2.4系統(tǒng)實現(xiàn)的整體設計方案說明

  2.4.1 系統(tǒng)拓撲圖及說明

  如圖2.4-1所示,是擬采用的組播通信網(wǎng)絡的拓撲圖:

  

 

  圖2.4-1基于網(wǎng)絡編碼組播的網(wǎng)絡拓撲圖

  說明:為了易于在工程上實現(xiàn),將網(wǎng)絡編碼路由器分為編碼路由器EC(Encoding router)和解碼路由器DC(Decoding router),分別專門負責編碼和解碼。具體講,如圖1所示,信源S1,S2,S3發(fā)送數(shù)據(jù)包,編碼路由器EC0和EC1負責將接收到的數(shù)據(jù)包以隨機的系數(shù)進行線性編碼后發(fā)送給組播路由器R,注意,這里的組播路由器更準確地說是轉(zhuǎn)發(fā)路由器,因為它的功能只是將收到的數(shù)據(jù)包轉(zhuǎn)發(fā)到其三個輸出端口,而沒有IGMP(組播管理)和相應的組播路由功能。當然,我們也可以直接在EC上實現(xiàn)轉(zhuǎn)發(fā)的功能,增加R的原因是考慮到NetFPGA端口數(shù)量的限制(每塊NetFPGA只有4個端口)。解碼路由器DC接收編碼的數(shù)據(jù)并解碼,并將它發(fā)送給下游的信宿主機,在這里,由于PC數(shù)量的限制,我們使用雙口網(wǎng)卡可以將解碼路由器和信宿放到同一臺主機上,這對網(wǎng)絡性能的測試和實現(xiàn)沒有任何影響。

  2.4.2編碼策略與方案

  作為一種編碼結構的提出,我們將編碼只限于不同信源數(shù)據(jù)包之間,暫不考慮信源包內(nèi)部編碼。相同信源的數(shù)據(jù)包之間分“代”,以便在解碼時區(qū)分信息先后順序[32]。不同信源的包之間不區(qū)分代的概念。

  定義:為了討論的方便性和簡潔性,我們將信源S1的第1代記為S(1,1),信源S2的第3代記為S(2,3),……依此類推。依據(jù)包頭和緩存,每個信源的代的編號從0開始,至1023結束,即信源n的最大的代編號為S(n,1023)

  在編碼路由器EC上對不同信源的IP數(shù)據(jù)包進行編碼,編碼系數(shù)矢量隨機選擇,編碼方法是線性編碼。例如,在上圖中的編碼路由器EC0,設兩個鏈路的輸入的全局編碼向量為:in(e)= 由于只有兩個信源之間的編碼有且只有一條邊輸出,則本地編碼向量為(α β),依據(jù)文章[33]的公式:

  

 

  則輸出out(e)=(α β) =αS(1,x)+βS(2,y)。編碼后的數(shù)據(jù)以NCP(network coding protocol)包頭封裝,然后再封裝在IP數(shù)據(jù)報中,如圖2.4-2所示:

 

  

 

  圖2.4-2:編碼后數(shù)據(jù)的封裝格式

  為減小相應的編碼負擔和提高編碼效率,我們只對網(wǎng)絡中的IP數(shù)據(jù)報中的有效載荷進行編碼(已經(jīng)編碼過的數(shù)據(jù)包可以再進行編碼),不對ARP等其他數(shù)據(jù)包編碼。在編碼路由器中,我們?yōu)椴煌妮斎胪ǖ篱_辟不同的FIFO以進行順序存取和編碼

  2.4.3隨機系數(shù)的選擇

  根據(jù)相關資料可知,隨即編碼系數(shù)矢量的選擇可以從Galois Field中進行選擇,依據(jù)論文[33][34],我們選擇域為GF256,即 ,此時可以解碼的概率為1- =0.996,這個概率可以滿足大多數(shù)的應用需求。

 

  2.4.4 NCP數(shù)據(jù)包頭的格式

  為了能夠在解碼路由器上進行解碼,我們需要在被編碼的有效載荷前增加NCP數(shù)據(jù)包頭[35],根據(jù)我們的方案,其包頭格式如圖2.4-4:

版本

4位

首部長度

4位

總長度

16位)

標志

2位

保留

6位

第1個包信源號

第2個包信源號

……

……

 

 

 

第8個包信源號

第1個包的填充長度(10位)

編碼系數(shù)矢量1

(8位)

代的編號(10位)

編碼次數(shù)

(4位)

第2個包的填充長度

編碼系數(shù)矢量2

代的編號

編碼次數(shù)

………………

……

……

 

第n個包的填充長度

編碼系數(shù)n

代的編號

編碼次數(shù)

編碼后的有效載荷

                           

 

 

 

 

 

 

 

 

 

 

 

圖2.4-4:NCP數(shù)據(jù)包的包頭格式

  先將包頭各個字段的含義說明如下:

  ①版本:NCP數(shù)據(jù)包格式的版本,為了后續(xù)開發(fā)研究和以前版本的區(qū)分,第一個版本為0001.

 ?、谑撞块L度和總長度:首部長度是指除了有效數(shù)據(jù)載荷以外的部分,共4位,單位是4字節(jié),其最小值為2。當首部長度為3時,意味著該包的載荷沒有被編碼,只是加了包頭。當其值大于3時,其值減去3為被編碼的信源數(shù)。

  總長度是之首部長度和有效載荷之和的長度,16位,單位為字節(jié)。

  ③標志:若進入編碼路由器的只是一個沒有編碼過的IP數(shù)據(jù)包時,不進行編碼,直接將包頭前2行加在原IP數(shù)據(jù)包的有效載荷的前面即可。當僅有一個NCP數(shù)據(jù)包進入編碼路由器時,我們不進行編碼,直接進行轉(zhuǎn)發(fā),如圖2.4-5所示:

有效載荷的數(shù)據(jù)包類型

標志位

沒有編碼的IP數(shù)據(jù)包

01

編碼后的NCP數(shù)據(jù)包

10

保留

00

保留

11

                           圖2.4-5:標志位的含義

  ④編碼次數(shù):即從原始數(shù)據(jù)包算起,被編碼的次數(shù),因為在一個實際的網(wǎng)絡中,數(shù)據(jù)的編碼可以是遞歸的,即可以多次被編碼。有時,只有一個數(shù)據(jù)源時,直接在其前面加上NCP包頭而不進行編碼。增加編碼次數(shù)是為了能夠在多次編碼后進行解碼。若編碼前數(shù)據(jù)包為IP數(shù)據(jù)包,其編碼次數(shù)為0,若為NCP數(shù)據(jù)包,則次數(shù)≥1.當一個IP數(shù)據(jù)包和一個已編碼的數(shù)據(jù)包編碼時,利用編碼次數(shù),可以避免解碼路由器將NCP數(shù)據(jù)包誤以為IP數(shù)據(jù)包而交給主機。

 ?、莸谝粋€包的填充長度:因為不同數(shù)據(jù)源的數(shù)據(jù)包的長度可能不一樣,為了便于編碼計算,將它們前位補0使得長度一致。由于一個典型的以太網(wǎng)數(shù)據(jù)包的長度在500~1500字節(jié)之間,所以填充長度不超過1000字節(jié)。另外,我們還要考慮MAC層的最大傳送單元(MTU)的限制,即編碼后的MAC幀的長度不能超過1518字節(jié)。由此可以計算出,被編碼的數(shù)據(jù)包的最大長度是1499字節(jié)

 ?、蘧幋a系數(shù):即隨機選擇的編碼矢量的系數(shù),是在一個GF256的有限域中隨機選擇。

 ?、叽木幪枺杭幢痪幋a的數(shù)據(jù)包的代的編號,是按照順序產(chǎn)生的編號,目的是方便解碼。

  ⑧包的信源號:4位,對進入編碼路由器的數(shù)據(jù)包的信源進行編號,其目的是為了方便解碼,在我們目前的體系中,最多允許8個數(shù)據(jù)包同時被編碼。注意:當信源數(shù)少于8個時,例如有3個,則分別將對應的數(shù)據(jù)包的信源號分別填為0000,0001,0010,其余的都填寫為1111。

  2.4.5 轉(zhuǎn)發(fā)(組播)路由器R工作流程

  在實際的應用中,R應該是具有組播功能的路由器,即可以運行網(wǎng)際組播管理協(xié)議IGMP和多播路由選擇協(xié)議DVMRP等,從而它可以知道網(wǎng)絡的局部的拓撲和滿足組播成員的要求。為了初期容易實現(xiàn),我們將其功能簡化為轉(zhuǎn)發(fā)功能(即廣播功能)。

  2.4.6數(shù)據(jù)包的解碼

  (1) 高速緩存和CAM的使用

  數(shù)據(jù)包的解碼由DC解碼路由器完成。每個解碼路由器DC有三個輸入通道,分別連接到R0,R1,R2其解碼的策略是:我們先在DC中開辟三塊不同的高速緩存(DRAM)和與之分別對應的3個CAM,它們分別對應于R0、R1、R2,緩存和CAM的大小為代的編號的大小,即 =1024,在這三個緩存中存放按照順序接收到的數(shù)據(jù)。根據(jù)前面的數(shù)據(jù)處理過程,顯然,對應于每個緩存中的數(shù)據(jù),雖然有的是真正編碼后的數(shù)據(jù)包,有的只是在IP數(shù)據(jù)包前增加了一個包頭,但我們都可以認為是NCP數(shù)據(jù)包。在將數(shù)據(jù)存入高速緩存的同時,提取NCP數(shù)據(jù)包頭中的信源號和代的編號,將它們存入到內(nèi)容可尋址存儲器CAM(content addressable memory),則CAM的輸出即為對應數(shù)據(jù)在高速緩存的地址。

 

  使用CAM的原因是:由于經(jīng)過編碼,以及網(wǎng)絡環(huán)境非理想,解碼路由器收到的encoded packet可能是亂序的。因此考慮使用CAM做檢索鏈接,以便快速尋址當前解碼所需要的packet。[!--empirenews.page--]

  (2) 解碼順序

  根據(jù)實際情況的考慮,目前有兩種解碼的順序,一種情況是按照信源號和代的編號的順序進行解碼,第二種情況是按照緩存及其緩存地址的順序來解碼。

  在已知網(wǎng)絡拓撲的情況下,我們按照信源號和代的編號的順序來進行解碼,即對于信源采用輪詢策略,對于內(nèi)部代的編號采用小數(shù)優(yōu)先策略。例如,在我們的拓撲圖中,解碼順序是:S(1,1),S(2,1),S(3,1)→S(1,2),S(2,2),S(3,2)→……S(1,n),S(2,n),S(3,n)……。

  在未知網(wǎng)絡拓撲的情況下,我們按照高速緩存的地址順序來進行解碼,即先對高速緩存采用輪詢策略,對每個緩存中,采用地址由小到大的順序進行解碼,如圖2.4-7所示,進行解碼的順序是PZ1

  →PX1→ PY1→ PZ2→ PX2→PY2→PZ3……

高速緩存1                高速緩存2              高速緩存3

地址   數(shù)據(jù)包           地址    數(shù)據(jù)包         地址    數(shù)據(jù)

01     PZ1              01      PX1             01      PY1

02     PZ2              02      PX2             02      PY2

03     PZ3              03      PX3             03      PY3

04     ……             04     ……            04       ……

……

圖2.4-7 按照高速緩存的地址順序來進行解碼

  上面的兩種解碼方式各有優(yōu)點:在一般情況下,按照信源號和代的編號的順序來進行解碼可獲得較高的解碼速率,但在網(wǎng)絡環(huán)境惡化的情況下,其丟包率(無法解碼的概率)會比第2中方案高一些。由于在我們已有的網(wǎng)絡環(huán)境一般較好,為了體現(xiàn)網(wǎng)絡編碼的傳輸?shù)母咝?,我們按照?種順序進行解碼。

  (3) 解碼流程

  為了避免高速緩存的寫數(shù)據(jù)溢出,我們將設置二級緩存,二級緩存也有3個,可用SRAM構造,將SRAM分為3塊地址上獨立的區(qū)域,每個SRAM 大小為256×1800bytes,分別對應不同的信源,我們將解碼后的數(shù)據(jù),根據(jù)其代的編號,分別暫存在對應SRAM的對應地址上。例如,將S(1,1)存儲在SRAM1的第1個地址空間,S(2,4)則存儲在SRAM2的第4個地址空間。每個RAM各有1個讀、寫指針,可以同時按順序讀寫數(shù)據(jù),按照地址由小到大的順序讀出的數(shù)據(jù)被發(fā)送到輸出隊列中。

  如圖2.4-8所示為數(shù)據(jù)包的解碼過程,每個告訴緩存各有1個讀、寫指針,在解碼過程中,讀取緩存是按照解碼的順序進行的,而在寫緩存是按地址順序?qū)懙摹?/p>

  

 

  圖2.4-8:數(shù)據(jù)包解碼流程

  (4) 解碼策略與方法

  我們按照信源號和代的編號的順序來進行解碼,即對于信源采用輪詢策略,對于內(nèi)部代的編號采用小數(shù)優(yōu)先策略。例如,在我們的拓撲圖中,解碼順序是:S(1,1),S(2,1),S(3,1)→S(1,2),S(2,2),S(3,2)→……S(1,n), S(2,n), S(3,n)……

  假定我們按照上述順序準備解碼S(1,x),解碼程序如圖9:

  

 

  圖2.4-9 數(shù)據(jù)包S(1,x)的解碼過程

  無法求解一個數(shù)據(jù)包的原因可能是:該數(shù)據(jù)包由于延遲或者丟失,在CAM中搜尋不到,再有就是線性相關,無法解出來。在我們的系統(tǒng)中,由于其拓撲的特殊性,沒有線性相關的情況,因此無法解碼的情況只發(fā)生在解碼因子丟失的情況下。

  解碼子任務:解碼子任務的輸入是包頭信息,由調(diào)用它的程序給出,輸出有兩個變量:解碼后的數(shù)據(jù)包和解碼標志,解碼標志告訴調(diào)用它的程序是否可以解碼,我們假定現(xiàn)在要對S(i,j)解碼,子任務流程如圖2.4-10:

  

 

  圖2.4-10:解碼子任務流程[!--empirenews.page--]

  (5) 解碼后數(shù)據(jù)包暫存SRAM的讀寫策略

  我們將解碼后的數(shù)據(jù)包暫存在SRAM中等待發(fā)送,每個信源對應一個SRAM區(qū)域,同一個信源的解碼后的人數(shù)據(jù)包存儲在同一個RAM中,存儲地址為該包的代的編號。每個RAM各有一個讀指針,寫數(shù)據(jù)按照RAM的地址大小順序?qū)懭?。讀數(shù)據(jù)時按照信源編號和代的大小讀取。由于發(fā)送速率一般會高于解碼速率,因此RAM不用很大,暫定為256×1800。

  每讀取一個數(shù)據(jù)后,指針加1,若讀取某個SRAM時無數(shù)據(jù)(可能是延遲或丟失造成),則不用等待,直接進行下一個SRAM的讀取,3次輪詢之后還沒有到達,則強行加讀指針加1,讀取下一個數(shù)據(jù)包。如圖2.4-11所示為SRAM的讀寫操作。

  

 

  圖2.4-11 二級緩存SRAM的讀寫操作

  (6)舉例說明

  為了更清楚地顯示整個解碼的操作過程,我們以DC3為例,圖2.4-12顯示的是DC3的3個高速緩存和CAM,解碼過程如下

  

 

  

 

  圖2.4-12 數(shù)據(jù)包S(1,x)解碼過程

  數(shù)據(jù)包S(1,x)解碼過程如下:

  先將S(1,x)的包頭3個CAM中搜索,在CAM1中得到索引為00,我們利用該索引得到S(1,x)在高速緩存1的地址為00,從高速緩存1讀取數(shù)據(jù),得到a S(1,x)+b S(2,y),為了求解S(1,x)我們調(diào)用解碼子任務先求解S(2,y),為了防止出現(xiàn)死循環(huán),解碼子任務只在CAM2和CAM3中搜尋S(2,y),在CAM2中得到地址為02,于是讀取高速緩存2的02地址數(shù)據(jù),得到eS(2,y)+f S(3,z),于是再調(diào)用子任務求解S(3,z),在CAM3中搜索S(3,z)后解出S(3,z), 于是可以解出S(2,y),最后再解出S(1,x),同時,分別將S(3,z)、 S(2,y) 、S(1,x)存入SRAM3,SRAM2,SRAM1相應的地址中。

  2.5 系統(tǒng)軟硬件接口及相關軟件功能

  在系統(tǒng)中,并非只有硬件邏輯在不同的模塊之間處理數(shù)據(jù)包,而且還有相應的軟件和控制程序。如圖2.5-1所示,是數(shù)據(jù)包在系統(tǒng)中的通道與處理流程。數(shù)據(jù)在系統(tǒng)中的通道分為data bus和register bus,data bus主要進行數(shù)據(jù)的硬件處理,register bus則是軟硬件的接口。在數(shù)據(jù)傳輸?shù)拿總€階段對軟件應該是可控的、透明的,這些軟件在更高層次上執(zhí)行更復雜的算法和協(xié)議,或者處理一些異常情況,同時,對于系統(tǒng)開發(fā)人員,也應該是可控的,因為開發(fā)人員往往需要配置和調(diào)試硬件。使用通用的寄存器接口就可以使數(shù)據(jù)處理對軟件透明化,這是靠映射內(nèi)部的硬件寄存器來完成的,即所謂的存儲映射技術。對于軟件來講,映射寄存器相當于一個I/O接口,它可以由軟件訪問和修改。

  

 

  圖2.5-1:系統(tǒng)中的register bus 和data bus

  Register bus中每個模塊的register連接在一起,組成一個信息環(huán)路。這些register塊中存儲了數(shù)據(jù)處理在每個模塊中的狀態(tài)和階段,任何一個模塊都可以響應來自PCI總線寄存器的訪問和控制要求,而PCI總線寄存器可以通過軟件來控制。也就是說,硬件和軟件的通信是通過PCI總線完成的。

  數(shù)據(jù)以及控信息在硬件和主機系統(tǒng)之間是通過PCI總線傳輸?shù)?,以Linux網(wǎng)絡存儲棧作為接口的。NetFPGA向主機發(fā)送分組數(shù)據(jù)的過程如圖2.5-2a所示:

  分組到達,發(fā)往CPU隊列;

  中斷程序通知驅(qū)動程序有分組到達;

  驅(qū)動程序設置和初始化DMA傳送器;

  NetFPGA通過DMA總線發(fā)送分組;

  中斷程序發(fā)送DMA結束信號;

  驅(qū)動程序把分組傳遞到網(wǎng)絡存儲棧;

  

 

  圖2.5-2a:NetFPGA向主機發(fā)送數(shù)據(jù) 圖2.5-2b:主機向NetFPGA發(fā)送數(shù)據(jù)

  主機向NetFPGA發(fā)送分組數(shù)據(jù)的過程如圖2.5-2b所示:

  控制軟件通過網(wǎng)絡socket發(fā)送分組,分組被遞交給驅(qū)動程序;

  驅(qū)動程序設置和初始化DMA傳送器;

  中斷程序發(fā)送DMA結束信號;

  主機訪問寄存器是通過系統(tǒng)調(diào)用系統(tǒng)內(nèi)核的ioctl( )函數(shù)作為接口的。讀寫寄存器的操作函數(shù)如下,這兩個函數(shù)內(nèi)部調(diào)用了ioctl( )函數(shù)。

  readReg(nf2device *dev, int address, unsigned *rd_data)

  writeReg(nf2device *dev, int address, unsigned *wr_data)

  例如: readReg(&nf2, OQ_NUM_PKTS_STORED_0, &val);

  主機訪問NetFPGA寄存器的過程如下:

  (1)控制軟件調(diào)用ioctl( )函數(shù)操作網(wǎng)絡socket,由函數(shù)ioctl傳遞給驅(qū)動程序;

  (2)驅(qū)動程序完成PCI寄存器的讀寫

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉