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