国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于fpga高速讀取磁盤陣列中文件的方法

      文檔序號:9349704閱讀:872來源:國知局
      一種基于fpga高速讀取磁盤陣列中文件的方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及云計算領(lǐng)域,尤其涉及一種基于FPGA高速讀取磁盤陣列中文件的方法。
      【背景技術(shù)】
      [0002]隨著云計算以及大數(shù)據(jù)處理的發(fā)展需求,現(xiàn)場可編程邏輯陣列(FPGA)由于其靈活性、可編程性以及豐富的高速通信接口在這些領(lǐng)域得到了越來越多的應(yīng)用。同時,由于以太網(wǎng)交換機技術(shù)較為成熟,成本也比較低廉,因而成為了 FPGA與磁盤陣列進行通信的首選。然而隨著規(guī)模的擴展,F(xiàn)PGA與磁盤陣列的文件高速通信成為了云計算領(lǐng)域的瓶頸之一。
      [0003]在現(xiàn)有的操作系統(tǒng)及網(wǎng)絡(luò)環(huán)境下,大多數(shù)應(yīng)用程序均需要可靠的通信,而TCP/IP協(xié)議成為當代網(wǎng)絡(luò)應(yīng)用實現(xiàn)可靠通信的主要選擇。然而,當應(yīng)用于磁盤陣列與FPGA構(gòu)建的高速局域網(wǎng)絡(luò)時,TCP/IP協(xié)議存在三個主要的問題:(I)在有損網(wǎng)絡(luò)中吞吐量嚴重降低,當出現(xiàn)瞬時網(wǎng)絡(luò)擁塞、轉(zhuǎn)發(fā)錯誤或者光纖問題時,TCP/IP無法區(qū)分短暫的網(wǎng)絡(luò)損壞,并且TCP/IP恢復時間也較長;(2)TCP/IP的緩沖區(qū)大小固定,并且發(fā)送方窗口大小受限于接收方緩沖區(qū)的大小,動態(tài)的數(shù)據(jù)包一旦有未收到應(yīng)答的情況會對整個網(wǎng)絡(luò)的傳輸有極強的影響;(3) TCP/IP協(xié)議的設(shè)計較為復雜。除了 TCP/IP協(xié)議外,UDP協(xié)議是一種常用的無連接的通信協(xié)議,然而其提供的傳送服務(wù)不可靠,相應(yīng)的協(xié)議開銷也較大。

      【發(fā)明內(nèi)容】

      [0004]針對現(xiàn)有技術(shù)存在的缺陷,本發(fā)明的目的在于提供一種基于FPGA高速讀取磁盤陣列中文件的方法,以提高傳輸速度及傳輸可靠性。
      [0005]為了實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
      [0006]—種基于FPGA高速讀取磁盤陣列中文件的方法,包括以下步驟:
      [0007]SI,通過一 FPGA處理單元向一磁盤陣列發(fā)送包含有待讀取文件的文件名的讀文件請求;所述磁盤陣列接收到所述讀文件請求后查找所述待讀取文件并反饋回相應(yīng)的讀文件請求應(yīng)答,所述讀文件請求應(yīng)答包括所述待讀取文件的文件大小,其中當所述待讀取文件在所述磁盤陣列中不存在時,所述文件大小為O ;
      [0008]S2,所述FPGA處理單元根據(jù)反饋回的所述讀文件請求應(yīng)答獲取所述文件大小,然后申請與所述文件大小相應(yīng)的存儲空間,并獲取所述存儲空間的起始存儲地址,再利用該起始存儲地址構(gòu)建FPGA存儲地址通知發(fā)送到所述磁盤陣列;所述磁盤陣列接收到所述FPGA存儲地址通知后,向所述FPGA處理單元發(fā)送FPGA存儲地址通知應(yīng)答;
      [0009]S3,所述磁盤陣列按照預定格式對所述待讀取文件進行分包處理以構(gòu)建若干文件內(nèi)容幀發(fā)送給所述FPGA處理單元,所述文件內(nèi)容幀包括對應(yīng)的發(fā)送序號及所述待讀取文件的相應(yīng)數(shù)據(jù),其中最后一幀所述文件內(nèi)容幀以及其余的部分所述文件內(nèi)容幀設(shè)置為需要應(yīng)答;所述FPGA處理單元接收到所述文件內(nèi)容幀后將其中所述待讀取文件的相應(yīng)數(shù)據(jù)寫入對應(yīng)的存儲空間并對其進行保序處理,以記錄相應(yīng)的保序序號,同時丟棄發(fā)送序號與保序序號不一致的所述文件內(nèi)容幀,并且當接收到的所述文件內(nèi)容幀需要應(yīng)答時,向所述磁盤陣列反饋相應(yīng)的文件內(nèi)容應(yīng)答幀,所述文件內(nèi)容應(yīng)答幀包括對應(yīng)文件內(nèi)容幀的保序序號及其發(fā)送序號;
      [0010]S4,所述磁盤陣列接收到所述文件內(nèi)容應(yīng)答幀后,判斷所述文件內(nèi)容應(yīng)答幀中的所述保序序號與所述發(fā)送序號是否一致,如果不一致,則重新發(fā)送對應(yīng)的所述文件內(nèi)容幀至所述FPGA處理單元;
      [0011]S5,所述磁盤陣列接收到最后一幀所述文件內(nèi)容應(yīng)答幀后,向所述FPGA處理單元發(fā)送相應(yīng)的文件內(nèi)容完成幀;所述FPGA處理單元接收到所述文件內(nèi)容完成幀后,向所述磁盤陣列發(fā)送文件內(nèi)容完成應(yīng)答幀,文件讀取操作結(jié)束。
      [0012]進一步地,所述步驟SI還包括:如果所述FPGA處理單元在預定時間內(nèi)未收到所述讀文件請求應(yīng)答,則重新發(fā)送對應(yīng)的所述讀文件請求,如果超過預定次數(shù)仍未接收到所述讀文件請求應(yīng)答,則終止發(fā)送所述讀文件請求,并輸出一讀文件請求錯誤報警。
      [0013]進一步地,如果所述FPGA處理單元在預定時間內(nèi)未收到所述FPGA存儲地址通知應(yīng)答,則重新發(fā)送對應(yīng)的所述FPGA存儲地址通知,如果超過預定次數(shù)仍未接收到所述FPGA存儲地址通知應(yīng)答,則終止發(fā)送所述FPGA存儲地址通知,并輸出一存儲地址通知錯誤報塾目ο
      [0014]優(yōu)選地,所述FPGA處理單元與所述磁盤陣列采用IP通信協(xié)議進行通信。
      [0015]優(yōu)選地,所述FPGA處理單元通過DMA的方式將所述待讀取文件的相應(yīng)數(shù)據(jù)寫入對應(yīng)的存儲空間。
      [0016]與現(xiàn)有技術(shù)相比較,本發(fā)明具有如下優(yōu)點:針對文件請求、FPGA存儲地址通知以及文件內(nèi)容完成幀請求采用了簡單的應(yīng)答式可靠傳輸,從而減小了 FPGA設(shè)計復雜度;針對待讀取文件內(nèi)容傳輸采用了主動觸發(fā)式的可靠傳輸,磁盤陣列能夠依據(jù)其盤陣服務(wù)器的處理器性能、網(wǎng)絡(luò)傳輸狀況以及網(wǎng)絡(luò)傳輸距離控制主動觸發(fā)的頻率,提供系統(tǒng)通信的靈活性以及環(huán)境適應(yīng)性,極大減少FPGA端的可靠協(xié)議開發(fā)復雜度。
      【附圖說明】
      [0017]圖1是本發(fā)明實施例中FPGA處理單元與外圍應(yīng)用服務(wù)器的隊列接口示意圖;
      [0018]圖2是本發(fā)明實施例中采用的可靠通信幀的幀結(jié)構(gòu)示意圖;
      [0019]圖3是本發(fā)明實施例中可靠通信幀首部的結(jié)構(gòu)示意圖;
      [0020]圖4是本發(fā)明的基于FPGA高速讀取磁盤陣列中文件的方法的通信流程示意圖。
      【具體實施方式】
      [0021]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉優(yōu)選實施例進行說明。
      [0022]圖1示出了 FPGA處理單元與外圍應(yīng)用服務(wù)器(例如WEB協(xié)議加速器)的隊列接口示意圖。如圖所示,外圍應(yīng)用服務(wù)器與FPGA處理單元通過磁盤文件打開接口、DDR (雙倍速率同步動態(tài)隨機存儲器)存儲位置接口和文件內(nèi)容接口通信;FPGA處理單元與磁盤陣列通過萬兆以太網(wǎng)通信,如圖2所示,本發(fā)明的以太網(wǎng)幀格式是建立在IP協(xié)議基礎(chǔ)之上的,因此協(xié)議的開銷小于TCP以及UDP協(xié)議。其中,以太網(wǎng)幀的可靠通信幀首部的定義如圖3所示,其中端口號占用2字節(jié),用來區(qū)分FPGA處理單元發(fā)起的是哪一個文件的請求(實現(xiàn)文件名與本地隊列維護的映射表),因此該協(xié)議能夠同時支持最多65536個文件并發(fā)傳送;操作碼占用I字節(jié),用來區(qū)分可靠通信幀的類型(0x23表示讀文件請求,0x24表示讀文件請求應(yīng)答,0x25表示FPGA存儲地址通知,0x26表示FPGA存儲地址通知應(yīng)答,0x27表示文件內(nèi)容幀,0x28表示文件內(nèi)容應(yīng)答幀,0x30表示文件內(nèi)容完成幀,0x31表示文件內(nèi)容完成應(yīng)答幀);數(shù)據(jù)內(nèi)容大小占用2字節(jié),表示本次傳輸?shù)臄?shù)據(jù)內(nèi)容長度(支持以太網(wǎng)的巨型幀傳輸,最大支持65535字節(jié));序列號占用I字節(jié),表示本次數(shù)據(jù)傳輸?shù)陌l(fā)送序號(利用該序號維護收發(fā)通信的可靠傳輸);文件名占用6字節(jié),表示本次傳輸?shù)奈募Q;DDR位置/文件按大小占用8字節(jié),表示本次數(shù)據(jù)內(nèi)容在DDR存儲的位置或者文件大??;數(shù)據(jù)域為本次傳輸?shù)奈募?shù)據(jù)內(nèi)容。
      [0023]本發(fā)明的基于FPGA高速讀取磁盤陣列中文件的方法的通信流程如圖4所示,從圖中可以看出,針對文件請求、FPGA存儲地址通知以及文件內(nèi)容完成幀請求采用了簡單的應(yīng)答式可靠傳輸,從而減少了 FPGA設(shè)計復雜度;針對待讀取文件內(nèi)容傳輸采用了主動觸發(fā)式的可靠傳輸,磁盤陣列能夠依據(jù)其盤陣服務(wù)器的處理器性能、網(wǎng)絡(luò)傳輸狀況以及網(wǎng)絡(luò)傳輸距離控制主動觸發(fā)的頻率,提供系統(tǒng)通信的靈活性以及環(huán)境適應(yīng)性,極大減少FPGA端的可靠協(xié)議開發(fā)復雜度,下面結(jié)合圖4介紹該方法的流程:
      [0024]當外圍應(yīng)用服務(wù)器需要通過FPGA處理單元從磁盤陣列中獲取文件時,首先將待讀取文件的文件名寫入到磁盤文件打開接口中的讀文件請求隊列raid_create_request_fifo隊列中去,F(xiàn)PGA處理單元一旦檢測到該隊列為非空,貝Ij通過構(gòu)建讀文件請求信號向磁盤陣列發(fā)起讀取文件請求(操作碼0x23)。磁盤陣列通過以太網(wǎng)口獲取該讀文件請求,并根據(jù)可靠通信幀首部獲取待讀取文件的文件名稱以及相應(yīng)的端口號,并在本地磁盤陣列查找文件,如果文件存在則獲取文件大小,如果不存在,則將文件大小設(shè)置為0,然后構(gòu)建包含文件大小的讀文件請求應(yīng)答(操作碼0x24),并將該讀文件請求應(yīng)答通過以太網(wǎng)傳到FPGA處理單元。FPGA處理單元接收到該讀文件請求應(yīng)答后,根據(jù)其中的文件大小能夠獲知該文件是否存在以及文件大小,然后將上述文件信息寫入到磁盤文件打開接口的讀文件響應(yīng)隊列Raid_create_request_status_fifo中。在上述的傳輸通信過程中,
      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1