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

        ?

        基于FPGA的SR-IOV技術研究與實現(xiàn)*

        2019-10-09 05:23:16任繼奎葉云峰
        通信技術 2019年9期
        關鍵詞:寄存器中斷分流

        任繼奎,林 山,葉云峰

        (中國電子科技集團公司第三十研究所,四川 成都 610041)

        0 引 言

        單根I/O虛擬化(Single Root I/O Virtualization,SR-IOV)是由PCI-SIG制定的輸入輸出(Input Output,I/O)虛擬化標準[1],通過利用直接I/O技術,消除了額外數(shù)據(jù)包復制帶來的性能開銷,實現(xiàn)了接近物理機的I/O性能,有利于提升虛擬云計算平臺的性能,因此SR-IOV正逐步在虛擬云計算平臺流行起來。

        SR-IOV的核心思想是:在設備支持的前提下,將一個設備劃分為一個物理功能單元(Physical Function,PF)和多個虛擬功能單元(Virtual Function,VF),每個虛擬功能單元都可以作為一個輕量級的I/O設備供虛擬機使用,這樣一個設備就可以同時被分配給多個虛擬機,解決了因設備數(shù)量限制給虛擬化系統(tǒng)帶來的可擴展性差的問題[2]。

        本文研究的虛擬化設備基于FPGA實現(xiàn),選取的FPGA型號為:Intel Arria 10。該芯片可支持4個PF和2048個VF,本文實現(xiàn)了1個PF和64個VF的數(shù)據(jù)通信功能。

        1 設計實現(xiàn)

        1.1 接口設計

        虛擬化PCI Express(PCIE)接口采用模塊化設計,并采用多通道進行數(shù)據(jù)處理,對VF數(shù)據(jù)進行隔離,如圖1所示。其中PCIE(SR-IOV)為支持虛擬化的PCIE硬核,DMA0-DMA8為9個直接存儲訪問(Direct Memory Access,DMA)傳輸通道,通過多通道將數(shù)據(jù)進行分流處理,以達到較高的性能,同時實現(xiàn)了VF數(shù)據(jù)的隔離。數(shù)據(jù)接口采用接口時鐘(250 MHz),內(nèi)部數(shù)據(jù)處理采用系統(tǒng)時鐘,兩個時鐘域間采用異步FIFO(First-in first-out)進行時鐘域的轉(zhuǎn)換處理。

        圖1 PCIE接口設計框圖

        PCIE接口功能模塊說明:

        VF分流:接收PCIE數(shù)據(jù),并根據(jù)VF號進行數(shù)據(jù)分流,將數(shù)據(jù)轉(zhuǎn)發(fā)給不同的DMA處理單元進行處理。

        VF合流:將各DMA處理單元的數(shù)據(jù)進行合并轉(zhuǎn)發(fā)。

        鏈路分流:將PCIE數(shù)據(jù)幀按傳輸層協(xié)議(ransaction Layer Protocol,TLP)類型分為請求幀和完成幀,請求幀進入寄存器讀寫操作處理;完成幀進入完成幀分流處理。

        完成幀分流:通過PCIE數(shù)據(jù)幀頭TAG字段,將數(shù)據(jù)分為基本描述符(Basic Descriptor)完成幀和數(shù)據(jù)完成幀。BD完成幀將進入BD緩存FIFO;數(shù)據(jù)完成幀進入數(shù)據(jù)組包與分流處理。

        組包與分流:根據(jù)數(shù)據(jù)包TAG序號和完成地址將業(yè)務數(shù)據(jù)進行組包并按數(shù)據(jù)類型進行數(shù)據(jù)分流。

        存儲器讀寫:將PCIE存儲器讀寫請求轉(zhuǎn)換為寄存器操作,當為寄存器寫時,將數(shù)據(jù)寫入FPGA內(nèi)部相應地址;當為寄存器讀時,通過寄存器接口讀取相應數(shù)據(jù)后封裝為讀完成幀。

        寄存器處理與統(tǒng)計:完成寄存器讀寫地址譯碼和狀態(tài)統(tǒng)計。

        數(shù)據(jù)請求:根據(jù)BD完成幀信息,產(chǎn)生數(shù)據(jù)讀取幀。BD信息包括數(shù)據(jù)地址和長度等。

        BD請求:輪詢BD指針RAM,根據(jù)指針信息判斷是否有數(shù)據(jù)需要讀取,如果有數(shù)據(jù)需要讀取則發(fā)送BD讀取幀。

        業(yè)務合流:將多路數(shù)據(jù)合并。

        數(shù)據(jù)發(fā)送:根據(jù)數(shù)據(jù)回寫地址、數(shù)據(jù)長度和PCIE最大寫長度,將數(shù)據(jù)封裝為多個寄存器寫TLP進行發(fā)送。當數(shù)據(jù)發(fā)送完成后,寫數(shù)據(jù)傳輸完成標記。

        中斷產(chǎn)生:根據(jù)數(shù)據(jù)傳輸完成標記和中斷控制信息,產(chǎn)生相應中斷。

        鏈路復接:將多路數(shù)據(jù)進行復接。

        BD_RAM:存儲BD指針信息。

        BD_FIFO:BD信息存儲。

        MSI-X表:中斷信息表。

        64_2_256:將數(shù)據(jù)位寬為64位的數(shù)據(jù)轉(zhuǎn)換為256位的數(shù)據(jù)。

        256_2_64:將數(shù)據(jù)位寬為256位的數(shù)據(jù)轉(zhuǎn)換為64位的數(shù)據(jù)。

        1.2 數(shù)據(jù)交互流程

        宿主機(虛擬機)與FPGA通過BD表進行數(shù)據(jù)信息交互。當有數(shù)據(jù)需要交互時,宿主機(虛擬機)通過尾指針(Tail值)通知FPGA進行數(shù)據(jù)讀取,在處理完成后,F(xiàn)PGA通過回寫地址進行數(shù)據(jù)回寫。主機處理流程如圖2所示。

        圖2 驅(qū)動處理流程圖

        流程說明:

        初始化:通知FPGA所使用的BD表大小和基地址等;

        準備BD表信息:包括數(shù)據(jù)地址和長度等;

        BD鏈是否有空閑:檢查是否可以發(fā)送;

        寫FPGA端Tail值:通知FPGA數(shù)據(jù)準備好;

        等待中斷回應:每個VF一個中斷;

        數(shù)據(jù)接收:檢查數(shù)據(jù)回寫標記,處理數(shù)據(jù)并釋放BD空間。

        FPGA端采用并行處理,分為請求BD、請求數(shù)據(jù)和數(shù)據(jù)發(fā)送3部分,其處理流程如圖3所示。

        流程說明:

        (1)請求BD

        1)判斷Tail和Head值是否相等;

        2)判斷是否可以存儲BD;

        3)發(fā)送請求并更新Head值。

        (2)請求數(shù)據(jù)

        1)判斷BD_FIFO是否為空,空則沒有數(shù)據(jù),非空則進行處理;

        2)判斷是否有存儲空間,如果有則進行數(shù)據(jù)請求;

        3)等待數(shù)據(jù)返回并對數(shù)據(jù)進行組包。

        圖3 FPGA處理流程圖

        (3)數(shù)據(jù)發(fā)送

        1)判斷是否有數(shù)據(jù)需要發(fā)送,如果有則進行分片發(fā)送;

        2)寫數(shù)據(jù)已處理標記;3)產(chǎn)生相應的中斷。

        1.3 中斷處理

        由于傳統(tǒng)中斷和消息中斷(Message Signal Interrupt,MSI)有中斷個數(shù)的限制,且VF只支持MSI-X中斷,因此虛擬PCIE卡采用MSI-X中斷,每個VF一個中斷。初始化時,驅(qū)動需要將中斷地址和數(shù)據(jù)內(nèi)容寫入FPGA內(nèi)部MSI-X表。FPGA在獲取到中斷源信息后,根據(jù)MSI-X表內(nèi)容和中斷控制信息進行中斷產(chǎn)生,如圖4所示。

        由于通信數(shù)據(jù)量非常大,如果每個數(shù)據(jù)都產(chǎn)生一個中斷,主機將花費大量的資源進行中斷處理,無法進行快速的數(shù)據(jù)傳輸處理,因此,采用中斷匯聚[3]和中斷屏蔽進行中斷優(yōu)化處理。

        中斷匯聚的方法有2種,一種是采用頻率控制,如1μs產(chǎn)生一個中斷;另外一種是采用數(shù)據(jù)包個數(shù)進行中斷控制,當達到某個設定值時產(chǎn)生中斷。

        頻率控制雖然減少了中斷數(shù)量但無法平衡大包和小包數(shù)據(jù)傳輸?shù)臅r間差,當進行小包傳輸時,需要更高的中斷頻率才能達到最大速率,而大包則需要更低的頻率。

        圖4 中斷產(chǎn)生示意圖

        本接口模型采用數(shù)據(jù)包個數(shù)進行中斷的控制,同時設置了中斷控制寄存器和中斷屏蔽寄存器。驅(qū)動可通過中斷控制寄存器對數(shù)據(jù)包個數(shù)和數(shù)據(jù)空閑時間進行動態(tài)調(diào)節(jié)。當數(shù)據(jù)包個數(shù)未達到設置的閥值但空閑時間達到設置的閥值時,F(xiàn)PGA也會發(fā)起中斷。當驅(qū)動進入中斷后還可通過中斷屏蔽寄存器對中斷進行屏蔽,當驅(qū)動處理完成后,再打開中斷屏蔽。

        2 試驗與分析

        本接口模塊在設計仿真完成后,進行了實物測試。測試時,宿主機型號為:DELL T7610。在使能8個VF的狀態(tài)下,同時對1個PF和8個虛擬設備進行收發(fā)包測試,測試結果如表1所示。

        表1 測試結果 Gbit/s

        經(jīng)過測試表明,該接口模型不僅實現(xiàn)了數(shù)據(jù)的高速交互,同時還平衡了各個虛擬設備間的帶寬分配。當數(shù)據(jù)長度越長時,交互效率越高,接口性能越好。

        3 結 語

        本文在對SR-IOV進行理論研究的基礎上,設計實現(xiàn)了一種基于FPGA的虛擬化設備的數(shù)據(jù)交互模型,解決了云計算平臺與虛擬設備間數(shù)據(jù)交互的需求。在設計實現(xiàn)時,對模塊劃分、數(shù)據(jù)交換流程和中斷處理進行了詳細介紹。在該設計中,根據(jù)VF號對設備進行了多通道處理,減少了不同設備間的影響;同時采用模塊化設計方式,降低了設計成本與難度,提升了數(shù)據(jù)交互能力。實驗與分析表明,本文設計實現(xiàn)的數(shù)據(jù)交互模型能夠提供高達35 Gbit/s的有效通信帶寬。當數(shù)據(jù)長度越長,性能越高。同時該交互模型也平衡各個虛擬設備間的帶寬分配??蓱糜谠萍用芸ǖ榷喾N虛擬設備中。

        猜你喜歡
        寄存器中斷分流
        涉罪未成年人分流與觀護制度比較及完善
        Lite寄存器模型的設計與實現(xiàn)
        計算機應用(2020年5期)2020-06-07 07:06:44
        NSA架構分流模式
        跟蹤導練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        分簇結構向量寄存器分配策略研究*
        基于MEC的LTE本地分流技術
        電信科學(2017年6期)2017-07-01 15:44:53
        肝膽胰外科手術與動、靜脈自然分流
        AT89C51與中斷有關的寄存器功能表解
        FPGA內(nèi)嵌PowerPC的中斷響應分析
        微處理機(2012年4期)2012-06-13 11:32:24
        无码中文字幕色专区| 亚洲精品女优中文字幕| 中文字幕人妻av四季| 一二三四五区av蜜桃| 亚洲精品美女久久久久久久| 伊人色综合视频一区二区三区 | 男女真人后进式猛烈视频网站| 国产欧美日韩中文久久| 99久久超碰中文字幕伊人| 精品久久久久久久久久中文字幕| 乱子真实露脸刺激对白| 免费人人av看| 精品中文字幕久久久人妻| 日本一区二区免费高清| 亚洲精品少妇30p| 国产av人人夜夜澡人人爽麻豆| 亚洲成人观看| 国产精品久久国产三级国| 最近更新中文字幕一区二区| 亚洲av无码久久| 亚洲av综合色区无码一二三区| 伊人亚洲综合网色AV另类| 日韩精品国产一区二区| 亚洲综合自拍偷拍一区| 日本丰满熟妇videossexhd| 日韩好片一区二区在线看| 亚洲色AV天天天天天天| 女女同女同一区二区三区| 熟女少妇精品一区二区| 大伊香蕉在线精品视频75| 精品人妻VA出轨中文字幕| 欧美亚洲日韩国产人成在线播放| 在线成人影院国产av| 日韩aⅴ人妻无码一区二区| 亚洲中文无码永久免| 无码一区二区三区在线在看| 在线小黄片视频免费播放| 精品国产免费一区二区三区香蕉| 国产成人午夜精华液| 久99久精品免费视频热77| 毛片在线播放亚洲免费中文网|