基于FPGA的MAC層地址表設(shè)計(jì)與仿真詳情解析_第1頁
基于FPGA的MAC層地址表設(shè)計(jì)與仿真詳情解析_第2頁
基于FPGA的MAC層地址表設(shè)計(jì)與仿真詳情解析_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于FPGA的MAC層地址表設(shè)計(jì)與仿真詳情解析為解決高速以太網(wǎng)鏈路接口中軟件方式實(shí)現(xiàn)的MAC層地址表機(jī)制在處理效率上受到制約的問題,提出了一種基于FPGA(現(xiàn)場可編程門陣列)硬件電路方式實(shí)現(xiàn)以太網(wǎng)交換機(jī)中MAC地址表的查找,學(xué)習(xí)和老化。該方法采用hashing算法建立地址表項(xiàng)索引值與MAC地址之間的對應(yīng)關(guān)系,完成滿足平均時間復(fù)雜度為O(1)的地址查找。由于實(shí)際交換機(jī)中地址表容量有限,地址學(xué)習(xí)只能是MAC地址的子集,通過優(yōu)化hashing函數(shù)降低地址沖突發(fā)生的概率以及設(shè)計(jì)一種地址老化機(jī)制提高地址表查找能力。仿真結(jié)果表明,地址表機(jī)制采用硬件電路方式實(shí)現(xiàn)比軟件方式處理效率更高。引言

在計(jì)算機(jī)網(wǎng)絡(luò)中,數(shù)據(jù)鏈路層完成節(jié)點(diǎn)到節(jié)點(diǎn)的通信,二層以太網(wǎng)交換機(jī)屬于數(shù)據(jù)鏈路層設(shè)備[1]。MAC(介質(zhì)訪問控制)地址是在網(wǎng)絡(luò)通信用來識別主機(jī)的標(biāo)識。交換機(jī)的緩存中有一個MAC地址表,需要轉(zhuǎn)發(fā)數(shù)據(jù)時,交換機(jī)會在地址表查詢是否有與目的MAC地址對應(yīng)的表項(xiàng),如果有,交換機(jī)立即將數(shù)據(jù)報(bào)文往該表項(xiàng)中的轉(zhuǎn)發(fā)端口發(fā)送;如果沒有,交換機(jī)則會將數(shù)據(jù)報(bào)文以廣播的形式發(fā)送到除了接收端口外的所有端口,盡最大能力保證目的主機(jī)接收到數(shù)據(jù)報(bào)文。因此,交換機(jī)地址表的構(gòu)建和維護(hù)決定了數(shù)據(jù)轉(zhuǎn)發(fā)的方向和效率。MAC層地址表存儲查找多基于hash表。Hashing是一種用于以常熟平均時間插入、刪除和查找的技術(shù),hash表通過把關(guān)鍵碼值映射到表中一個位置來訪問記錄。這個映射函數(shù)叫做hashing函數(shù),存放記錄的數(shù)組叫做hash表。交換機(jī)地址表存儲的是全部MAC地址的一個子集因此必然會發(fā)生地址沖突,文獻(xiàn)[2-3]對比了幾種解決沖突的方法。MAC地址表的容量是有限的,因此交換機(jī)采用老化機(jī)制來維護(hù)MAC地址表,以保證最大限度地利用地址表項(xiàng)資源。交換機(jī)在構(gòu)建某條表項(xiàng)時,會相應(yīng)地開啟該表項(xiàng)的老化定時器[4],如果在老化時間內(nèi),交換機(jī)始終沒有收到該表項(xiàng)中的MAC地址的報(bào)文,交換機(jī)就會將該表項(xiàng)刪除,失效的表項(xiàng)不會繼續(xù)占用MAC地址表資源。這樣,即使網(wǎng)絡(luò)中的設(shè)備更換或者移除,交換機(jī)的MAC地址表始終能保持網(wǎng)絡(luò)中最新的拓?fù)浣Y(jié)構(gòu)記錄。合適的老化時間可以提高MAC地址表項(xiàng)資源的利用率,但過長或過短的老化時間,反而影響交換機(jī)的性能。如果老化時間過長,交換機(jī)中保存的MAC地址表項(xiàng)的數(shù)量過多會將地址表資源消耗完,網(wǎng)絡(luò)中的拓?fù)渥兓蜔o法及時更新;如果老化時間過短,則有效的MAC地址表項(xiàng)會被交換機(jī)過早刪除,從而降低交換機(jī)的轉(zhuǎn)發(fā)效率。傳統(tǒng)的MAC地址表處理機(jī)制主要采用軟件的方式實(shí)現(xiàn)[5]。隨著以太網(wǎng)鏈路接口的速率從1Gb/s發(fā)展到10Gb/s,基于軟件的算法在速度上受到串行計(jì)算機(jī)系統(tǒng)的制約。新一代現(xiàn)場可編程門陣列(FPGA)的出現(xiàn)以后,算法通過硬電路描述,所有的延遲只來源于門電路,而一般門電路的延遲都在ns級別。減少了系統(tǒng)運(yùn)行所需的時鐘周期數(shù),實(shí)現(xiàn)了真正的高速率。1地址表處理機(jī)制

本數(shù)字電路設(shè)計(jì)中,采用單一時鐘域的同步時序設(shè)計(jì),所有的觸發(fā)器都是在同一個時鐘節(jié)拍下進(jìn)行翻轉(zhuǎn)。這樣就簡化了整個設(shè)計(jì),后端綜合、布局布線的時序約束容易實(shí)現(xiàn)。地址表占用的空間由片內(nèi)存儲器RAM提供,片內(nèi)存儲器是基于FPGA的系統(tǒng)可使用的最簡單的存儲器,存儲、讀取是在FPGA內(nèi)部完成,電路板上無需外部連線,具有最高吞吐量和最低反應(yīng)延時的,適用于緩存和查找表。地址表表項(xiàng)中至少記錄mac物理地址,端口號。每個mac地址表項(xiàng)的數(shù)據(jù)結(jié)構(gòu)見表1。

定義如下:

Valid:表項(xiàng)有效指示,1代表有效表項(xiàng),0代表空閑表項(xiàng)。Age:老化比特,地址表更新時查詢的位段,1代表年輕,0代表老化。Macaddress:48bit物理地址。Port_id:物理地址對應(yīng)的端口號。地址表項(xiàng)寫入表中的位置即地址學(xué)習(xí)由源地址(MAC地址)經(jīng)過hashing算法求得的索引值決定。地址表項(xiàng)的讀取即地址表查詢由目的地址(物理地址)經(jīng)過hashing算法求得的索引值決定。Hashing算法本身消耗一部分時序,物理地址的學(xué)習(xí)和查詢就需要等待這部分時序,為了使得地址表

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論