亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于FPGA的PCIe總線高速異步傳輸系統(tǒng)

        2018-08-08 07:31:40,,,

        ,,,

        (南瑞集團(tuán)有限公司(國網(wǎng)電力科學(xué)研究院有限公司),南京 210003)

        引 言

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

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

        1 PCIe總線

        PCIe總線是2001年由Intel提出的,是一種基于數(shù)據(jù)包的串行總線。由于其帶寬高、延時低、應(yīng)用靈活等特點(diǎn),PCIe總線可以將整個I/O系統(tǒng)統(tǒng)一起來,簡化設(shè)計(jì),提高可擴(kuò)展性,目前已經(jīng)成為計(jì)算機(jī)行業(yè)流行的總線結(jié)構(gòu)。

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

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

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

        圖1 TLP包格式

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

        2 系統(tǒng)設(shè)計(jì)

        2.1 系統(tǒng)結(jié)構(gòu)

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

        圖2 系統(tǒng)結(jié)構(gòu)圖

        2.2 主要功能

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

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

        2.3 SG-DMA操作流程

        DMA操作的過程需要主機(jī)驅(qū)動程序和FPGA內(nèi)部的DMA控制器協(xié)同工作,二者通過DMA描述符表來聯(lián)系。主機(jī)將待發(fā)數(shù)據(jù)包寫入環(huán)形隊(duì)列的緩沖區(qū)后,通過修改FPGA中的更新寄存器來觸發(fā)DMA控制器進(jìn)行下一階段的操作。當(dāng)DMA控制器將處理好的數(shù)據(jù)包發(fā)送到主機(jī)的緩沖區(qū)后,以中斷方式通知主機(jī)驅(qū)動程序。詳細(xì)過程如圖3所示。

        圖3 DMA操作流程

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

        在傳輸和處理過程中,一個特定的數(shù)據(jù)包順序經(jīng)過這6個階段。在本設(shè)計(jì)中,當(dāng)主機(jī)傳輸請求的速度大于一個包的傳輸處理速度時,將有多個步驟同時執(zhí)行,每個步驟處理不同的數(shù)據(jù)包。整個系統(tǒng)的速度取決于處理速度最慢的那一個處理步驟。

        3 實(shí)驗(yàn)驗(yàn)證

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

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

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

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

        實(shí)驗(yàn)還在數(shù)據(jù)包不經(jīng)過加密芯片、全速異步并發(fā)的情況下,測試了包長對系統(tǒng)傳輸速度的影響,結(jié)果如圖4所示。

        圖4 速度與包長關(guān)系

        結(jié)果表明,數(shù)據(jù)包長度對傳輸速度也有著明顯的影響,包長越大傳輸速度越高,在1024字節(jié)時包長對性能的影響深度最大。在實(shí)際應(yīng)用時,可以考慮對小于256字節(jié)的小包進(jìn)行拼接,以提高系統(tǒng)性能。

        實(shí)驗(yàn)還發(fā)現(xiàn),在速度較快的情況下,主機(jī)CPU讀取接收環(huán)形隊(duì)列中數(shù)據(jù)包的速度總是慢于主機(jī)向發(fā)送環(huán)形隊(duì)列中寫入數(shù)據(jù)包的速度,主機(jī)寫操作往往要等待讀操作騰空一些接收緩沖區(qū)。在多核CPU中通過使用中斷廣播功能或者多個內(nèi)核線程可以大幅度提高主機(jī)讀取并騰空環(huán)形隊(duì)列的速度,從而提高系統(tǒng)的整體性能。

        結(jié) 語

        精品中文字幕精品中文字幕 | 国产精品流白浆喷水| 亚洲日本视频一区二区三区| 自拍成人免费在线视频| 亚洲国产成人精品一区刚刚| 加勒比婷婷色综合久久| 国产精品扒开腿做爽爽爽视频| 久久99精品国产99久久6男男| 国产精品一区二区三区精品| 国产精品视频一区二区久久| 伊人久久精品无码av一区| 成人区人妻精品一熟女| 91性视频| 国产成人av一区二区三| 风韵丰满熟妇啪啪区老老熟妇| 台湾无码av一区二区三区| 亚洲av日韩av无码av| 最新在线观看精品国产福利片 | 婷婷综合缴情亚洲狠狠| 国产成人一区二区三区| 激情内射亚洲一区二区三区| 精品国产aⅴ无码一区二区 | 一区二区亚洲熟女偷拍| 欧美xxxxx在线观看| 国产成人亚洲日韩欧美| 高清高速无码一区二区| 国产三区三区三区看三区| 黄片视频免费在线观看国产| 一边吃奶一边摸做爽视频| 精品囯产成人国产在线观看| 92自拍视频爽啪在线观看| 成人无码av免费网站| 亚洲色大网站www永久网站| 久久er这里都是精品23| 日本亚洲系列中文字幕| 蜜臀色欲av在线播放国产日韩| 六月丁香久久| 亚洲全国最大的人成网站| 亚洲av永久无码精品网站| 亚洲中文字幕无码一区| 久久国产精品岛国搬运工|