Xilinx大學計劃指定教材:零存整取NetFPGA開發(fā)指南
定 價:32 元
- 作者:陸佳華 ,等 著
- 出版時間:2010/6/1
- ISBN:9787512401075
- 出 版 社:北京航空航天大學出版社
- 中圖法分類:TP331.2
- 頁碼:248
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書以通俗易懂的語言,由淺入深地向讀者闡述了NetFPGA的安裝、開發(fā),剖析了NetFPGA的參考路由器的邏輯、驅(qū)動以及上層軟件設計,分析了已有的各種典型應用,同時結(jié)合作者的開發(fā)實例介紹了如何在此平臺上開發(fā)用戶設計以及注意事項。本書在闡述NetFPGA開發(fā)的同時,更側(cè)重于介紹在FPGA上進行以太網(wǎng)相關(guān)邏輯開發(fā)的方法與設計思路;同時也闡述了板卡如何與主機系統(tǒng)交互、如何開發(fā)驅(qū)動等整個設計流程。因此本書雖然是基于NetFPGA平臺,但是其中的源代碼與設計思路同樣適用于Xilinx其他FPGA平臺。
本書可作為NetFPGA初學者、FPGA上網(wǎng)絡相關(guān)硬件開發(fā)人員的參考書,亦可作為大專院校從事FPGA網(wǎng)絡硬件加速研究方向的相關(guān)教師和研究生的參考書。
NetFPGA,拆分開就是Net,work與FPGA,這兩個名詞對于電子工程師來說都是耳熟能詳?shù)模弊g可簡單稱為網(wǎng)絡FPGA。通常普通的FPGA用戶也知道FPGA上能實現(xiàn)哪些網(wǎng)絡的應用,但這兩個名詞混合到一起又表示什么,又有哪些高明之處呢?
NetFPGA起源于斯坦福大學由NickMcKeown教授領導的研究小組,作為一個軟硬件皆可編程的開放平臺,應用在網(wǎng)絡設計課程中。學生只需要大約十周的時間,就可以開發(fā)出實際的網(wǎng)絡設備,如網(wǎng)卡、交換機、路由器、防火墻等。NetFPGA小組剛卸任的負責人之一JohnLockwood教授也是一直從事著網(wǎng)絡應用硬件化加速的工作,其最主要的開發(fā)、驗證平臺就是XilinxFPGA。
記得2003年在讀碩士時就了解到Lockwood教授在開展利用FPGA進行網(wǎng)絡加速的研究,而作者當時所在的課題組也在嘗試做一些網(wǎng)絡應用的硬件加速,然而那時對于FPGA和網(wǎng)絡都是一知半解,一切都得從頭開始、白手起家。為了搭建一個PCI接口的FPGA加速平臺,從原理圖、PCB、硬件調(diào)試、驅(qū)動開發(fā)、邏輯開發(fā)到上層應用整整花了一年半的時間,花費了很多精力,卻也沒有得到特別好的效果。等平臺搭建好,也就離畢業(yè)不遠了,因此反而沒有太多時間研究硬件加速應用本身。
畢業(yè)后有幸來到Xilinx公司工作,在一次與大學計劃經(jīng)理謝凱年博士的聊天中得知Lockwood已經(jīng)加入Nick的小組,而斯坦福大學正在和我們公司合作開展NetFPGA的項目,頓覺我的師弟們前途一片光明,也明白這對他們的課題來講意味著什么!甆etFPGA不僅提供硬件平臺,還提供驅(qū)動、邏輯源代碼。這些源代碼能夠讓讀者更快地熟悉網(wǎng)絡相關(guān)的邏輯設計,更好地利用搭建好的底層邏輯;同時易用的驅(qū)動程序和上位機程序也幫助硬件開發(fā)人員極大地減少了與上位機交互的工作量,這就能讓開發(fā)人員更專注于應用和加速本身,而不用考慮硬件平臺,降低了做網(wǎng)絡加速應用開發(fā)與研究的門檻,這也和Xilinx近期推出的“目標設計平臺”的概念不謀而合,NetFPGA也算是以網(wǎng)絡加速應用為目標的設計平臺。
第1篇 初識NetFPGA
第1章 網(wǎng)絡FPGA
1.1 NetFPGA溯源
1.2 核心部件
1.2.1 FPGA
1.2.2 Memorv
1.2.3 PHY
1.2.4 PCI
1.2.5 SATA
第2章 NetFPGA平臺搭建指南
2.1 NetFPGA主機清單
2.1.1 官方網(wǎng)站推薦主機清單
2.1.2 Xilinx大學計劃使用的主機清單
2.1.3 預裝機購買
2.1.4 機器選購的一些建議
2.2 操作系統(tǒng)介紹及其安裝
2.2.1 NetFPGA兼容的操作系統(tǒng)介紹
2.2.2 Bios設置
2.2.3 CentOS4.4 安裝指南
2.3 Net,F(xiàn)PGA系統(tǒng)快速安裝法
2.3.1 Java環(huán)境安裝
2.3.2 rpmforge安裝
2.3.3 Net:FPGA基礎開發(fā)包安裝
2.3.4 其他設置
2.4 NetlFPGA系統(tǒng)詳細安裝法
2.4.1 設置Grub參數(shù)
2.4.2 下載NetFPGA基礎開發(fā)包
2.4.3 設置環(huán)境變量
2.4.4 檢查是否安裝了對應版本的Linux內(nèi)核源代碼
2.4.5 安裝perl支持包
2.4.6 安裝.Java
2.4.7 安裝.NetFPGA驅(qū)動
2.4.8 驗證是否安裝成功
2.4.9 執(zhí)行CPCI
2.5 安裝.NetFPGA開發(fā)工具——綜合工具,
2.5.1 ISE版本規(guī)定
2.5.2 Linux如何安裝ISE9.1.03
2.5.3 如何設置環(huán)境變量
2.6 安裝NetFPGA開發(fā)工具——仿真工具及其相關(guān)設置
2.6.1 ModelSire的安裝
2.6.2 安裝內(nèi)存仿真模塊
2.7 安裝NetFPGA開發(fā)工具——調(diào)試工具
2.8 NetFPGA的測試
2.8.1 selftest版本1
2.8.2 selftest版本2
2.8.3 regresstest
第2篇 近觀NetFPGA
第3章 深入淺出Router硬件
3.1 為什么是Router
3.2 縱觀RouterArchitecture
3.3 硬件設計結(jié)構(gòu)的思考
3.3.1 關(guān)鍵技術(shù)之Packet和RegisterBus
3.3.2 關(guān)鍵技術(shù)之5級pipelining
3.3.3 關(guān)鍵技術(shù)之統(tǒng)一Packet格式
3.3.4 我們需要關(guān)注什么
3.4 鏈路層
3.4.1 認識MAC核
3.4.2 Router11的MAC核
3.4.3 鏈路層的輔助設計
3.4.4 如何使用TEMAC核
3.5 核心層面的網(wǎng)絡層
3.5.1 簡單的隊列調(diào)度
3.5.2 出色的轉(zhuǎn)發(fā)引擎
3.5.3 管理好輸出緩沖
3.5.4 SRAM接口設計
3.5.5 留給讀者的電路
3.6 數(shù)據(jù)交互的PCI接口
3.7 HDL源碼探究
第4章 深入淺出Router軟件
4.1 驅(qū)動程序的結(jié)構(gòu)
4.1 1驅(qū)動概述
4.1.2 NetFPGA驅(qū)動簡介
4.1.3 PCI驅(qū)動介紹
4.1.4 nf2設備探測和初始化
4.1.5 nf2設備卸載
4.2 設備驅(qū)動的操作
4.2.1 打開與關(guān)閉
4.2.2 數(shù)據(jù)包是如何接收的
4.2.3 驅(qū)動如何發(fā)送數(shù)據(jù)包
4.2.4 這樣來配置硬件板卡——ioctl
4.2.5 換一種方式來實現(xiàn)驅(qū)動程序
4.3 用戶界面分析
4.3.1 為什么要有用戶界面
4.3.2 用戶界面如何操控硬件
第3篇 再會NetFPGA
第5章 經(jīng)典應用剖析
5.1 視頻流demo
5.2 通用的PacketGer
5.2.1 硬件
5.2.2 軟件
5.3 新穎的OpenFlow
5.3.1 了解OpenFlowSwitch
5.3.2 如何在NetFPGA上搭建OpenFlow
5.4 豐富的Project
5.4.1 值得分析的Project
5.4.2 更多的Project
5.5 貢獻你的Project
第6章 開發(fā)實踐
6.1 選擇流量檢測
6.2 硬件設計方法
6.2.1 開始前的準備
6.2.2 設計正確的module
6.2.3 提交放心的module
6.2.4 添加新的module
6.3 驅(qū)動設計方法
6.3.1 驅(qū)動設計準備
6.3.2 提升數(shù)據(jù)傳輸速率的兩種方法
6.3.3 怎樣更加輕松地使用驅(qū)動程序
6.4 應用程序設計方法
6.4.1 功能驗證利器C語言程序
6.4.2 Java編寫GUI讓你的演示更nice
6.4.3 MakefiIe淺談
6.5 系統(tǒng)調(diào)試
第7章 皆可NetFPGA
7.1 高性能的NetFPGA
7.1.1 目標平臺
7.1.2 硬件移植
7.1.3 PCIe驅(qū)動開發(fā)
7.2 輕量級的NetFPGA
7.3 NetFPGA資源共享
附錄NFP2.0的改進
參考文獻
5.3.1 了解openFlowSwitch
最初的想法很簡單:我們都知道絕大多數(shù)Switch和Router。上都有一個:flowtable(典型的就是TCAM),用來實現(xiàn)防火墻、NAT、QoS及網(wǎng)絡數(shù)據(jù)統(tǒng)計。而不同供應商設備上的flowtable總是不同,我們需要定義一個適用于大多數(shù)Switch和Router的通用功能集,OpenF、low時該功能集進行了擴展,同時提供了一個開放的協(xié)議用來配置不同Switch和Router上的flowtable。利用OpenFlow網(wǎng)絡管理者可以很好地區(qū)分實驗流和工作流,研究人員通過選擇Packet路由線路和處理接收的Packet來控制自己的實驗流,因此,可以嘗試新的路由協(xié)議、安全模型、地址調(diào)度和選擇IP。當然,工作流量也可以獨立而正常的工作。