《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 10G網(wǎng)絡處理器驅(qū)動軟件的設計與實現(xiàn)

10G網(wǎng)絡處理器驅(qū)動軟件的設計與實現(xiàn)

2008-09-08
作者:李希鵬1,2,劉乃安1,宋國棟2

  摘 要: 在對10G" title="10G">10G城域網(wǎng)技術研究的基礎上,提出了10G網(wǎng)絡處理器" title="網(wǎng)絡處理器">網(wǎng)絡處理器的驅(qū)動程序設計中的一些思路并對此展開一定的分析和研究。
  關鍵詞: 10G以太網(wǎng) 網(wǎng)絡處理器 驅(qū)動 應用程序接口 中斷服務程序


  網(wǎng)絡技術的高速發(fā)展使下一代網(wǎng)絡技術不斷迎接新的挑戰(zhàn)。網(wǎng)絡處理核心從傳統(tǒng)的基于GPP(General Purpose Processor)的設計到基于ASIC(Application Specific Integrated Circuit)的設計再到基于網(wǎng)絡處理器NP(Network Processor)的設計,不斷向著高性能和高靈活性的方向發(fā)展。隨著城域網(wǎng)技術的發(fā)展,近年來許多廠家推出了10G的以太網(wǎng)設備。10G網(wǎng)絡處理器是實現(xiàn)10G以太網(wǎng)交換技術的關鍵點,10G網(wǎng)絡處理器的開發(fā)成為目前城域網(wǎng)建設中的一個重要環(huán)節(jié)。
  本文介紹了10G的網(wǎng)絡處理器及其驅(qū)動程序,并對驅(qū)動程序的開發(fā)方法進行了研究和探討。
1 網(wǎng)絡處理器和驅(qū)動程序
  網(wǎng)絡處理器是一種可編程器件,它特定地應用于通信領域的多種任務,例如數(shù)據(jù)包處理、協(xié)議分析、路由查找、數(shù)據(jù)的匯聚、防火墻、QoS等。網(wǎng)絡處理器具有多協(xié)議支持、優(yōu)化的體系結構、專用的硬件設計和高速的數(shù)據(jù)轉發(fā)處理、高性能、高可靠性、豐富的流分類、擁塞管理、隊列調(diào)度、靈活的軟件開發(fā)和升級、靈活擴展和組合等特點。
  網(wǎng)絡處理器器件內(nèi)部由若干個微碼處理器和若干硬件協(xié)議處理器組成,多個微碼處理器在網(wǎng)絡處理器內(nèi)部并行處理,通過預先編制的微碼來控制處理數(shù)據(jù)包的操作。而對于一些復雜的標準操作(如內(nèi)存操作、路由表" title="路由表">路由表查找算法、QoS的擁塞控制算法、流量調(diào)度算法等)則采用硬件協(xié)議處理器進一步提高處理性能,從而實現(xiàn)業(yè)務的高靈活性與高性能的有機結合。
  目前的網(wǎng)絡處理器系列有:面向網(wǎng)絡接入終端的設備;支持企業(yè)、電信市場接入和邊緣應用的設備(支持2.5Gbps數(shù)據(jù)傳輸率);支持網(wǎng)絡核心應用的設備(支持10Gbps數(shù)據(jù)傳輸率)等。
  網(wǎng)絡處理器的驅(qū)動程序在系統(tǒng)中位于底層BSP(Board Support Packet)和上層軟件之間,如圖1所示。驅(qū)動程序是建立起上下層軟件之間通信的一個橋梁,為上下層軟件提供相應的接口,能夠把上層的命令解釋為底層軟硬件可以識別的代碼寫入芯片的寄存器中,包括兩個功能模塊:底層驅(qū)動模塊" title="驅(qū)動模塊">驅(qū)動模塊和業(yè)務驅(qū)動模塊。底層驅(qū)動模塊提供NP芯片初始化、配置、裝載微碼、建立維護NP查找結構、中斷處理、NP內(nèi)部表項維護、 NP實時檢測等功能;業(yè)務驅(qū)動模塊為上層應用提供數(shù)據(jù)包發(fā)送和接收、路由表操作、ARP表操作、VLAN操作、端口表操作、MAC表操作等功能。


2 驅(qū)動程序開發(fā)方法研究
  網(wǎng)絡處理器的芯片廠家需要提供相應的驅(qū)動開發(fā)軟件包,開發(fā)包中主要包括封裝了特定代碼的庫文件和說明文檔,這些庫文件在系統(tǒng)編譯時進行鏈接。開發(fā)人員通過調(diào)用驅(qū)動開發(fā)包中的API(Application Programming Interface)來完成對芯片的一系列操作。
2.1 芯片的初始化
  包括正確地初始化網(wǎng)絡處理器芯片,使芯片能正常工作。網(wǎng)絡處理器芯片作為PCI設備掛在CPU的PCI總線上,它通過PCI總線識別,系統(tǒng)為其分配相應的PCI地址和中斷號。CPU通過網(wǎng)絡處理器的PCI地址對NP內(nèi)部的寄存器進行訪問。
  NP初始化步驟:
  (1)調(diào)用識別函數(shù)識別NP:如果與廠商號相符,則說明NP已經(jīng)被識別。
  (2)配置NP的PCI設備:為 NP分配內(nèi)存地址;為 NP配置中斷號。
  (3)注冊PCI中斷處理程序" title="中斷處理程序">中斷處理程序:安裝芯片的中斷處理程序;將NP的PCI中斷處理程序與中斷號關聯(lián)。通常該中斷處理程序內(nèi)部會調(diào)用一個全局的函數(shù)指針,開發(fā)者可以對其賦值,使能NP的PCI中斷。
  (4)中斷事件處理方式:通常網(wǎng)絡處理器或交換芯片都定義有多種中斷事件,這些中斷事件由中斷事件狀態(tài)寄存器和中斷屏蔽寄存器進行控制。NP會定義若干種中斷事件,每種中斷用一個二進制位表示,該二進制位的取值決定中斷事件的中斷狀態(tài)(如:1表示有中斷,0表示無中斷)。中斷屏蔽寄存器則決定是否對中斷進行處理。
  (5)NP的中斷事件類型:
  數(shù)據(jù)幀中斷:當NP需要向CPU發(fā)數(shù)據(jù)包時,就產(chǎn)生此中斷,以通知主控系統(tǒng)有相關的數(shù)據(jù)幀和該數(shù)據(jù)幀的指針需要處理;
  查找中斷:當NP的硬件表進行更新時,會產(chǎn)生此中斷。例如,NP的MAC地址學習機制和地址老化機制更新MAC表后,會將更新結果通過消息的形式上報給主控系統(tǒng);
  統(tǒng)計中斷:當NP的統(tǒng)計隊列有消息時,產(chǎn)生此中斷,通知主控系統(tǒng)某個統(tǒng)計計數(shù)器已經(jīng)到達閾值。
  (6)中斷處理流程如圖2所示。當主機接收到一個NP發(fā)生的PCI中斷時,NP的PCI ISR被觸發(fā),PCI ISR確定哪一個NP發(fā)生中斷,將該NP編號通過消息的方式傳給驅(qū)動任務,驅(qū)動任務從中斷消息中獲得NP的ID號、中斷屏蔽寄存器的值和中斷事件寄存器的值,對中斷屏蔽寄存器和中斷事件寄存器的值進行位操作,對操作結果進行判斷,進而確定是否調(diào)用該中斷事件的中斷處理程序。
  (7)初始化芯片上的數(shù)據(jù)通道:復位芯片上的寄存器并賦給默認值;指定硬件搜索引擎?zhèn)€數(shù);設定統(tǒng)計計數(shù)器的門限值;設置外部存儲器值;啟動通道進入接收中斷狀態(tài)。
  (8)加載硬件表結構和微碼:硬件表結構包括二層表、三層表、路由表、三層接口表、VLAN表等;表結構在微碼中定義;微碼中定義了數(shù)據(jù)包收發(fā)的方式和相應的操作方法。

?


2.2 數(shù)據(jù)包處理
  在中斷處理的基礎上進行數(shù)據(jù)包的接收,如圖3所示。CPU通過中斷方式接收來自網(wǎng)絡處理器的數(shù)據(jù)包。
  (1)CPU接收來自網(wǎng)絡處理器數(shù)據(jù)包中斷后,會在驅(qū)動任務中調(diào)用響應的數(shù)據(jù)包的ISR,在該ISR中將數(shù)據(jù)包發(fā)給上層協(xié)議。
  (2)按協(xié)議標準對數(shù)據(jù)包格式或內(nèi)容進行修改和轉換。
  (3)通過驅(qū)動API提供的函數(shù)發(fā)送數(shù)據(jù)包。
2.3 硬件表操作
  硬件表是NP中由微碼定義的表查找結構,由NP完成MAC地址查找、VALN表添加、路由表搜索等各種表條目的添加和刪除等操作。
  (1)由微碼定義和創(chuàng)建硬件表的種類、長度、編號等信息。
  (2)由驅(qū)動在芯片初始化過程中加載硬件表結構并啟動微碼。
  (3)驅(qū)動程序中要為上層協(xié)議提供硬件表添加、刪除、修改、顯示等接口。
  隨著10G以太網(wǎng)技術的發(fā)展,已經(jīng)有越來越多的廠家推出了自己的NP產(chǎn)品。高速網(wǎng)絡處理器已經(jīng)成為當前以太網(wǎng)研究中的一個重點,同時需要對芯片的驅(qū)動程序深入開發(fā)。本文對10G網(wǎng)絡處理器的驅(qū)動程序設計進行了分析和研究,提出了驅(qū)動軟件開發(fā)中的一些思路。由于目前與10G以太網(wǎng)技術相關標準和技術的成熟和完善還需要一定的時間;各廠家使用不同的軟硬件開發(fā)環(huán)境;存在不同的嵌入式操作系統(tǒng);以及一些廠家使用專用的代碼開發(fā)和調(diào)試工具等因素,使NP及其驅(qū)動程序的發(fā)展還需要進一步地提高。今后的主要工作包括:提高不同廠家的設備之間互通性和兼容性;加強NP軟件代碼的規(guī)范性和可移植性;完善NP驅(qū)動軟件的開發(fā)方法。
  10G網(wǎng)絡處理器作為下一代網(wǎng)絡的關鍵,以其多方面的優(yōu)勢,可以較好地滿足未來高速網(wǎng)絡技術發(fā)展的需求,具有非常廣泛的發(fā)展空間。
參考文獻
1 IEEE 802.3ae-2002. IEEE Standard for Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications-Media Access Control (MAC) Parameters. Physical Layer and Management Parameters for 10 Gb/s Operation
2 IEEE 802.3-2002 Edition. IEEE Standard for Information technology--Telecommunications and information exchange between systems--Local and metropolitan area networks--Specific requirements--Part 3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications
3 IEEE 802.3-2002 Edition. IEEE Standard for Information technology--Telecommunications and information exchange between systems--Local and metropolitan area networks--Specific requirements--Part 3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications. By EZchip Technologies Ltd., 2003.
4 陳一帥,趙永祥.網(wǎng)絡處理器及應用.網(wǎng)絡世界, 2000;7

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产福利免费视频| 精品国产精品久久一区免费式| 成人韩免费网站| 亚洲欧美一区二区三区| 国产免费插插插| 国产精自产拍久久久久久| 久久久高清日本道免费观看| 田中瞳中文字幕久久精品| 国产1区2区3区在线观看| 337p人体大胆扒开下部| 成年美女黄网站色大免费视频| 亚洲成av人影片在线观看| 狠狠色欧美亚洲狠狠色www| 国产在线h视频| 亚洲资源最新版在线观看| 好男人社区www在线观看高清| 亚洲av无码日韩av无码网站冲 | 国产亚洲欧美精品久久久| 99久久免费中文字幕精品| 妇女性内射冈站HDWWWCOM| 中文字幕在线精品| 无码人妻精品一区二区| 亚洲另类激情专区小说图片| 精品国产三级a| 国产成人女人视频在线观看| 99精品人妻无码专区在线视频区| 日本高清免费在线视频| 亚洲狼人综合网| 美女的胸又黄又www网站免费| 国产精品真实对白精彩久久| 99久久免费国产精品特黄| 天天碰天天摸天天操| 久久精品国产清自在天天线 | 国产色视频在线| 99久久99久久精品国产片果冻 | 国产h视频在线观看网站免费| 国产欧美日韩综合精品二区 | 人成午夜免费大片在线观看| 韩国无遮挡吃奶床戏| 国内精品一战二战| 99日精品欧美国产|