999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于FPGA的PCIe總線高速異步傳輸系統

2018-08-08 07:31:40,,,
單片機與嵌入式系統應用 2018年8期

,,,

(南瑞集團有限公司(國網電力科學研究院有限公司),南京 210003)

引 言

作為第三代I/O總線,PCI express(簡稱PCIe)總線采用了高速串行傳輸方式,不但簡化了接口部分的硬件連線,而且大幅度提高了傳輸速率。在單通道模式下,PCIe Gen2的單向傳輸速率為5 Gbps,PCIe Gen3的單向傳輸速率達到了8 Gbps;在多通道模式下,PCIe的單向傳輸速率還可以成倍增加,最高可達128 Gbps。但是在實際使用中,受讀寫順序、器件速度和I/O方式等因素影響,PCIe總線的通道帶寬難以被充分地利用。

本文在Xilinx PCIe硬核的基礎上設計了一個Scatter-Gather DMA(簡稱SG-DMA)控制器,使得在傳輸過程中盡量少地調用低速I/O讀寫操作;在DMA控制器的前后分別設計了環形隊列和FIFO,使得主機讀寫PCIe外設數據包呈異步方式,數據傳輸和數據處理也呈異步模式。如同多級流水線一樣,不同數據包的接收、處理、發送可以在同一個時刻進行,這樣可以最大限度地利用PCIe通道的傳輸帶寬,實現基于PCIe總線的高速異步傳輸。

1 PCIe總線

PCIe總線是2001年由Intel提出的,是一種基于數據包的串行總線。由于其帶寬高、延時低、應用靈活等特點,PCIe總線可以將整個I/O系統統一起來,簡化設計,提高可擴展性,目前已經成為計算機行業流行的總線結構。

PCIe總線自下而上分為三層,分別是物理層、數據鏈路層和事務層。

物理層采用了串行差分信號,點對點傳輸,收發獨立,相對于并行共享總線,PCIe總線非常便利和高效,這也是CMOS工藝不斷發展的結果。為了嵌入時鐘和保持直流平衡,PCIe Gen1和PCIe Gen2還采用了8b/10b編碼,單通道實際數據速率分別為2 Gbps和4 Gbps,PCIe Gen3沒有使用8b/10b編碼,單通道實際數據速率為8 Gbps。

數據鏈路層主要負責鏈路管理、電源管理和數據完整性檢測。事務層將往來于PCIe主從設備之間的數據封裝成一個或多個TLP包,TLP包的類型主要有存儲器讀寫、I/O讀寫和配置讀寫。一個完整的TLP包由前綴(Prefix)、頭(Header)、數據載荷(Data payload)和摘要(Digest)組成,如圖1所示。

圖1 TLP包格式

DMA寫傳輸要使用存儲器寫請求TLP包,DMA讀傳輸要使用存儲器讀請求TLP包和存儲器讀完成TLP包。

2 系統設計

2.1 系統結構

本設計的硬件部分主要采用了一片Xilinx FPGA器件,型號是XC7A100T,該器件具有101 440個邏輯門,4 860 KB Block RAM,8個GTP收發器,可以支持四通道的PCIe Gen2。通過邏輯設計,在FPGA內部構建了一個PCIe硬核、TLP包接收引擎、TLP包發送引擎、DMA接收控制器、DMA發送控制器、接收FIFO和發送FIFO。這些模塊構成了數據包發送和接收兩條通道,通過PCIe總線與驅動程序中的兩個環形隊列連接,系統結構如圖2所示。

圖2 系統結構圖

2.2 主要功能

DMA描述符表是一個由若干個描述符組成的鏈表,每一個描述符都指向環形隊列中的一個緩沖區。DMA描述符表和每個緩沖區都需要在一個連續的地址空間中,而緩沖區之間不必地址連續,可以分散分布。驅動程序在硬件初始化階段將DMA描述符表的地址和長度寫入FPGA的寄存器中。SG-DMA控制器在讀取緩沖區之前首先讀入描述符表,根據描述符中的物理地址、總線地址和長度信息向主機發出讀請求TLP包,主機回復帶數據的TLP包。SG-DMA控制器解析帶數據的TLP包就得到了緩沖區中的數據。

PCIe IP核連接Serdes收發器,負責TLP包編解碼、從數據流中恢復時鐘。Xilinx的PCIe IP核提供的用戶接口是AXI總線接口形式,因此TLP接收引擎從AXI總線上獲取TLP包,然后分發到不同的DMA控制器或者是MEM寄存器。RX-FIFO和TX-FIFO的作用是允許DMA傳輸和后面的業務處理能夠異步并行,也允許DMA接收和發送異步并行。

2.3 SG-DMA操作流程

DMA操作的過程需要主機驅動程序和FPGA內部的DMA控制器協同工作,二者通過DMA描述符表來聯系。主機將待發數據包寫入環形隊列的緩沖區后,通過修改FPGA中的更新寄存器來觸發DMA控制器進行下一階段的操作。當DMA控制器將處理好的數據包發送到主機的緩沖區后,以中斷方式通知主機驅動程序。詳細過程如圖3所示。

圖3 DMA操作流程

主機讀寫FPGA內部寄存器和響應中斷,相對于DMA讀寫一個數據包的時間要長得多,如果頻繁地讀寫FPGA內部寄存器,會產生大量的中斷,極大地限制主機與PCIe卡之間的傳輸速度。為了提高效率,主機每寫8個待傳輸的數據包到環形隊列后,再寫一次FPGA內部寄存器;SD-DMA發送控制器將128個數據包發送到環形隊列后向主機申請一次中斷,避免主機將過多的CPU時間片耗費在中斷上下文切換過程中。圖3所示步驟可以分為6個階段:①主機寫入環形隊;②DMA讀入RX-FIFO;③從RX-FIFO中讀出處理;④處理后寫入TX-FIFO;⑤DMA寫入環形隊列;⑥中斷服務程序將環形隊列中的數據交給用戶程序。

在傳輸和處理過程中,一個特定的數據包順序經過這6個階段。在本設計中,當主機傳輸請求的速度大于一個包的傳輸處理速度時,將有多個步驟同時執行,每個步驟處理不同的數據包。整個系統的速度取決于處理速度最慢的那一個處理步驟。

3 實驗驗證

本設計的實驗驗證是在一個基于FPGA的PCIe加密卡上進行的。該加密卡以一片Xilinx XC7A100T芯片作為核心處理器,并通過芯片內置的IP Core實現四通道的PCIe Gen2接口。加密卡上配置了兩片對稱密碼算法芯片,最大可以實現2 Gbps速度的加解密速度。主機處理器是Cavium CN7230,具有64位MIPS指令集處理器、4個內核,主頻為1.2 GHz,支持四通道PCIe Gen2接口,運行的操作系統為Linux-3.12。

首先在固定包長1024字節的條件下,測試在不同讀寫模式下對傳輸性能的影響。測試數據如表1所列。

表1 不同模式下的讀寫速度

實驗結果表明,異步并發模式可以顯著提升系統的傳輸性能,減少中斷次數有利于降低主機CPU的負荷,將更多的時間片投入到數據包的搬運操作中。另外,加密芯片的處理速度也制約著系統性能。

實驗還在數據包不經過加密芯片、全速異步并發的情況下,測試了包長對系統傳輸速度的影響,結果如圖4所示。

圖4 速度與包長關系

結果表明,數據包長度對傳輸速度也有著明顯的影響,包長越大傳輸速度越高,在1024字節時包長對性能的影響深度最大。在實際應用時,可以考慮對小于256字節的小包進行拼接,以提高系統性能。

實驗還發現,在速度較快的情況下,主機CPU讀取接收環形隊列中數據包的速度總是慢于主機向發送環形隊列中寫入數據包的速度,主機寫操作往往要等待讀操作騰空一些接收緩沖區。在多核CPU中通過使用中斷廣播功能或者多個內核線程可以大幅度提高主機讀取并騰空環形隊列的速度,從而提高系統的整體性能。

結 語

主站蜘蛛池模板: 国产真实二区一区在线亚洲 | 亚洲日韩每日更新| 无码一区中文字幕| 国产成人一级| 国产午夜精品一区二区三区软件| 92午夜福利影院一区二区三区| 亚洲黄色视频在线观看一区| 中国一级特黄视频| 自拍偷拍欧美| 国产福利在线免费| 欧美性猛交一区二区三区| 国产99视频免费精品是看6| 亚洲视频在线青青| 国产成人精品免费视频大全五级| 亚洲第一成年人网站| 一区二区自拍| 国产精品一区不卡| 无码国内精品人妻少妇蜜桃视频| 国产超碰在线观看| 97成人在线观看| 91精品国产丝袜| 亚洲经典在线中文字幕| 欧美午夜理伦三级在线观看| 亚洲精品777| 国产成人资源| 中文字幕乱妇无码AV在线| 国产在线视频二区| 亚洲日韩第九十九页| 凹凸精品免费精品视频| 亚洲国内精品自在自线官| 国产v精品成人免费视频71pao| 无码粉嫩虎白一线天在线观看| 亚洲欧美不卡视频| 九九精品在线观看| 婷婷色中文| 国产经典在线观看一区| 亚洲精品国产成人7777| AV不卡国产在线观看| 日本成人福利视频| 欧美精品另类| 老熟妇喷水一区二区三区| 久久久久九九精品影院| 91成人免费观看| 精品无码人妻一区二区| 国产超薄肉色丝袜网站| 一级毛片不卡片免费观看| 欧美午夜网| 伊人色综合久久天天| 国产丝袜无码精品| 正在播放久久| 国产一区二区人大臿蕉香蕉| 视频二区中文无码| 欧洲精品视频在线观看| 88国产经典欧美一区二区三区| 茄子视频毛片免费观看| 91外围女在线观看| 青青操视频在线| 亚洲第一黄色网址| 91亚洲国产视频| 亚洲系列中文字幕一区二区| 在线日韩日本国产亚洲| 久久无码av三级| 国产亚洲视频播放9000| 免费看美女自慰的网站| 在线国产资源| 国产精品综合久久久| 国产三级韩国三级理| 国产精品亚洲一区二区三区在线观看| 成人在线观看一区| 国产精品开放后亚洲| 国产女人爽到高潮的免费视频| 精品人妻一区无码视频| 99在线视频免费| 日本欧美中文字幕精品亚洲| 日韩黄色精品| 天堂久久久久久中文字幕| 国产精品无码一二三视频| 99er这里只有精品| 日本色综合网| 99热国产在线精品99| 在线观看亚洲成人| 中文字幕亚洲无线码一区女同|