鬼佬大哥大
  • / 11
  • 下載費用:30 金幣  

計算節點集群系統和數據中繼器.pdf

關 鍵 詞:
計算 節點 集群 系統 數據 中繼
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201210379911.0

申請日:

2012.10.09

公開號:

CN102932276B

公開日:

2015.01.14

當前法律狀態:

有效性:

法律詳情: 著錄事項變更IPC(主分類):H04L 12/861變更事項:發明人變更前:謝向輝 吳東 郝子宇 臧春峰 原昊 錢磊 鄔貴明 李璽 嚴忻凱變更后:謝向輝 吳東 郝子宇 臧春峰 原昊 錢磊 韓文報 鄔貴明 李璽 嚴忻凱|||授權|||實質審查的生效IPC(主分類):H04L 12/861申請日:20121009|||公開
IPC分類號: H04L12/861(2013.01)I; H04L12/803(2013.01)I 主分類號: H04L12/861
申請人: 無錫江南計算技術研究所
發明人: 謝向輝; 吳東; 郝子宇; 臧春峰; 原昊; 錢磊; 鄔貴明; 李璽; 嚴忻凱
地址: 214083 江蘇省無錫市濱湖區軍東新村030號
優先權:
專利代理機構: 北京眾合誠成知識產權代理有限公司 11246 代理人: 龔燮英
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201210379911.0

授權公告號:

|||102932276B||||||

法律狀態公告日:

2015.06.10|||2015.01.14|||2013.03.20|||2013.02.13

法律狀態類型:

著錄事項變更|||授權|||實質審查的生效|||公開

摘要

本發明提供的一種計算節點集群系統和數據中繼器。計算節點集群系統包括:多個計算節點,其中每個計算節點包括各自的FPGA和通用處理器;其中,各個計算節點的通用處理器通過網絡相互連接;并且,在每個計算節點中,FPGA連接至通用處理器;其中,每個FPGA均具有數據中繼器;而且,所有計算節點的FPGA通過數據中繼器依次連接。在一個連續發送過程中,動態自適應通路選擇器先轉發來自當前計算節點的通用處理器的所有消息,然后轉發來自其他FPGA的所有消息。并且,動態自適應通路選擇器在每個連續發送過程完成之后動態地調整在下一次連續發送過程發送的來自通用處理器的數據量與來自其他FPGA的數據量之間的比例。

權利要求書

權利要求書一種計算節點集群系統,其特征在于包括:多個計算節點,其中每個計算節點包括各自的FPGA和通用處理器;其中,各個計算節點的通用處理器通過網絡相互連接;并且,在每個計算節點中,FPGA連接至通用處理器;其中,每個FPGA均具有數據中繼器;而且,所有計算節點的FPGA通過數據中繼器依次連接。
根據權利要求1所述的計算節點集群系統,其特征在于,數據中繼器實現了動態自適應通路均衡選擇。
根據權利要求1或2所述的計算節點集群系統,其特征在于,依次連接的數據中繼器在一個方向上傳遞數據。
根據權利要求1或2所述的計算節點集群系統,其特征在于,數據中繼器包括:消息發送端口、動態自適應通路選擇器、FPGA消息接口、壓縮模塊以及通用處理器消息接口;其中,FPGA消息接口接收來自其它FPGA的數據,并且將其保存在先進先出隊列中;通用處理器消息接口接收來自當前計算節點的通用處理器的數據;壓縮模塊用于對從通用處理器消息接口接收的數據進行壓縮;動態自適應通路選擇器動態地轉發從FPGA消息接口的先進先出隊列取出的消息以及從壓縮模塊取出的消息;消息發送端口用于將動態自適應通路選擇器傳遞來的數據從數據中繼器發送出去。
根據權利要求4所述的計算節點集群系統,其特征在于,在一個連續發送過程中,動態自適應通路選擇器先轉發來自當前計算節點的通用處理器的所有消息,然后轉發來自其他FPGA的所有消息。
根據權利要求4或5所述的計算節點集群系統,其特征在于,動態自適應通路選擇器在每個連續發送過程完成之后動態地調整在下一次連續發送過程發送的來自通用處理器的數據量與來自其他FPGA的數據量之間的比例。
根據權利要求1或2所述的計算節點集群系統,其特征在于,動態自適應通路選擇器包括:當前狀態寄存器、歷史狀態寄存器、控制邏輯、以及2選1選擇器;其中,2選1選擇器接收從FPGA消息接口傳遞來的第一消息以及壓縮模塊傳遞來的第二消息;控制邏輯根據當前狀態寄存器和歷史狀態寄存器的內容,一次挑選出其中一個來源的消息作為一個第三消息,并將第三消息送到消息發送端口。
一種數據中繼器,其特征在于包括:消息發送端口、動態自適應通路選擇器、FPGA消息接口、壓縮模塊以及通用處理器消息接口;其中,FPGA消息接口接收來自其它FPGA的數據,并且將其保存在先進先出隊列中;通用處理器消息接口接收來自當前計算節點的通用處理器的數據;壓縮模塊用于對從通用處理器消息接口接收的數據進行壓縮;動態自適應通路選擇器動態地轉發從FPGA消息接口的先進先出隊列取出的消息以及從壓縮模塊取出的消息;消息發送端口用于將動態自適應通路選擇器傳遞來的數據從數據中繼器發送出去。
根據權利要求8所述的數據中繼器,其特征在于,在一個連續發送過程中,動態自適應通路選擇器先轉發來自當前計算節點的通用處理器的所有消息,然后轉發來自其他FPGA的所有消息。
根據權利要求8或9所述的數據中繼器,其特征在于,動態自適應通路選擇器在每個連續發送過程完成之后動態地調整在下一次連續發送過程發送的來自通用處理器的數據量與來自其他FPGA的數據量之間的比例。

說明書

說明書計算節點集群系統和數據中繼器
技術領域
本發明涉及計算技術領域,更具體地說,本發明涉及一種使得可重構FPGA(Field Programmable Gate Array,現場可編程門陣列)陣列中的數據帶寬增強的計算節點集群系統和數據中繼器。
背景技術
通用處理器加可重構FPGA的軟硬件協同計算模式正在成為一種新的計算結構發展方向,而將這種結構中的FPGA相互連接構成陣列形式,更是很大程度提高了這種結構的計算能力和靈活性。
可重構FPGA具有強大的計算能力,非常適合進行計算密集型的應用。但是,當需要處理數據密集型應用時,FPGA同外部通用處理器互連的數據通路帶寬往往會成為整個結構中的性能瓶頸,會很大程度限制FPGA計算加速能力的發揮。
因此,希望能夠提供一種可增強可重構FPGA陣列中的數據帶寬的方法。
發明內容
本發明所要解決的技術問題是針對現有技術中存在上述缺陷,提供一種使得可重構FPGA陣列中的數據帶寬增強的計算節點集群系統。
根據本發明,提供了一種計算節點集群系統,其包括:多個計算節點,其中每個計算節點包括各自的FPGA和通用處理器;其中,各個計算節點的通用處理器通過網絡相互連接;并且,在每個計算節點中,FPGA連接至通用處理器;其中,每個FPGA均具有數據中繼器;而且,所有計算節點的FPGA通過數據中繼器依次連接。
優選地,數據中繼器實現了動態自適應通路均衡選擇。
優選地,依次連接的數據中繼器在一個方向上傳遞數據。
優選地,數據中繼器包括:消息發送端口、動態自適應通路選擇器、FPGA消息接口、壓縮模塊以及通用處理器消息接口;其中,FPGA消息接口接收來自其它FPGA的數據,并且將其保存在先進先出隊列中;通用處理器消息接口接收來自當前計算節點的通用處理器的數據;壓縮模塊用于對從通用處理器消息接口接收的數據進行壓縮;動態自適應通路選擇器動態地轉發從FPGA消息接口的先進先出隊列取出的消息以及從壓縮模塊取出的消息;消息發送端口D1用于將動態自適應通路選擇器D2傳遞來的數據從數據中繼器發送出去。
優選地,在一個連續發送過程中,動態自適應通路選擇器先轉發來自當前計算節點的通用處理器的所有消息,然后轉發來自其他FPGA的所有消息。
優選地,動態自適應通路選擇器在每個連續發送過程完成之后動態地調整在下一次連續發送過程發送的來自通用處理器的數據量與來自其他FPGA的數據量之間的比例。
優選地,動態自適應通路選擇器包括:當前狀態寄存器、歷史狀態寄存器、控制邏輯、以及2選1選擇器;其中,2選1選擇器接收從FPGA消息接口傳遞來的第一消息以及壓縮模塊傳遞來的第二消息;控制邏輯根據當前狀態寄存器和歷史狀態寄存器的內容,一次挑選出其中一個來源的消息作為一個第三消息,并將第三消息送到消息發送端口。
根據本發明,還提供了一種數據中繼器,包括:消息發送端口、動態自適應通路選擇器、FPGA消息接口、壓縮模塊以及通用處理器消息接口;其中,FPGA消息接口接收來自其它FPGA的數據,并且將其保存在先進先出隊列中;通用處理器消息接口接收來自當前計算節點的通用處理器的數據;壓縮模塊用于對從通用處理器消息接口接收的數據進行壓縮;動態自適應通路選擇器動態地轉發從FPGA消息接口的先進先出隊列取出的消息以及從壓縮模塊取出的消息;消息發送端口用于將動態自適應通路選擇器傳遞來的數據從數據中繼器發送出去。
優選地,在一個連續發送過程中,動態自適應通路選擇器先轉發來自當前計算節點的通用處理器的所有消息,然后轉發來自其他FPGA的所有消息。
優選地,動態自適應通路選擇器在每個連續發送過程完成之后動態地調整在下一次連續發送過程發送的來自通用處理器的數據量與來自其他FPGA的數據量之間的比例。
根據本發明,通過依次連接各個FPGA的各個數據中繼器,形成了一個額外的數據通路,實際上增大了數據帶寬;而且數據中繼器實現了動態的自適應通路均衡選擇,一方面增強了數據傳輸的帶寬,另一方面提供了數據中繼器可重用能力,可使數據中繼器應用在整個異構FPGA陣列中的各位置。
附圖說明
結合附圖,并通過參考下面的詳細描述,將會更容易地對本發明有更完整的理解并且更容易地理解其伴隨的優點和特征,其中:
圖1示意性地示出了根據本發明實施例構建的FPGA和通用處理器組成的陣列結構。
圖2示意性地示出了根據本發明實施例的FPGA的框圖。
圖3示意性地示出了根據本發明實施例的FPGA的數據中繼器的框圖。
圖4示出了本發明實施例采用的數據包格式。
圖5示意性地示出了根據本發明實施例的通用處理器消息接口的配置。
圖6示意性地示出了根據本發明實施例的動態自適應通路選擇器的配置。
圖7示意性地示出了根據本發明實施例的動態自適應通路選擇器的操作處理的優選示例。
需要說明的是,附圖用于說明本發明,而非限制本發明。注意,表示結構的附圖可能并非按比例繪制。并且,附圖中,相同或者類似的元件標有相同或者類似的標號。
具體實施方式
為了使本發明的內容更加清楚和易懂,下面結合具體實施例和附圖對本發明的內容進行詳細描述。
圖1示意性地示出了根據本發明實施例構建的FPGA和通用處理器組成的陣列結構。
如圖1所示,通過諸如標準以太網4之類的網絡使得多個計算節點相互連接,在圖1所示的示例中,包括第一計算節點1、第二計算節點2和第三計算節點3。
每個計算節點包括各自的FPGA和通用處理器。具體地說,第一計算節點1包括第一FPGAFPGA1和第一通用處理器11;第二計算節點2包括第二FPGAFPGA2和第二通用處理器22;第三計算節點3包括第三FPGAFPGA3和第三通用處理器33。
更具體地說,各個計算節點的通用處理器通過諸如標準以太網4之類的網絡相互連接。
并且,在每個計算節點中,FPGA連接至通用處理器。并且,所有計算節點的FPGA依次連接。
雖然示出了3個計算節點的示例,但是,計算節點的數量顯然不限于3個,而是可以是任何適當數量。
圖1中包含三種數據連接方式:FPGA之間的高速互連(例如GPIO、RocketIO),通用處理器與FPGA之間的通信連接(例如GPMC、PCIe、AIX總線等),以及通用處理器之間通過標準的以太網互連。
這種結構的一般應用模式為通用處理器上的軟件程序和FPGA上的硬件加速邏輯協同工作,以高效地加速應用計算速度。具體地說,通用處理器上的軟件完成一些適應軟件完成的數據處理之后,將數據送入FPGA中的專門加速邏輯以實現高速的硬件加速。但是,在數據密集型應用中,若通用處理器同FPGA之間連接的帶寬不夠,則會無法滿足通用處理器向FPGA傳遞數據的需求,進而影響整個應用的計算速度。
鑒于此,本發明實施例在FPGA中集成了數據中繼器(數據中繼器M2)。具體地說,圖2示意性地示出了根據本發明實施例的FPGA的框圖。如圖2所示,以第二計算節點2為例,第二計算節點2的第二FPGAFPGA2包括FPGA計算邏輯M1以及數據中繼器M2;其中,為了便于描述,圖2中省略了FPGA的其它組成部分。數據中繼器M2是一種帶寬增強的數據中繼器。即,每個FPGA均具有實現了動態的自適應通路均衡選擇的數據中繼器。各個FPGA的各個數據中繼器依次連接;換言之,所有計算節點的FPGA通過數據中繼器依次連接。
由此,通過依次連接各個FPGA的各個數據中繼器,形成了一個額外的數據通路,實際上增大了數據帶寬。
如果第一計算節點1上的第一通用處理器11和FPGAFPGA1正在協同工作,但是受到了兩者之間互連帶寬的限制,則此時可以利用第二計算節點2的第二通用處理器22和第三計算節點3的第三通用處理器33協助進行前期的數據處理,并且第二通用處理器22將處理后的數據通過其自己的數據中繼器M2轉發到第一計算節點1的FPGAFPGA1中,而第三計算節點3將處理后的數據通過其自己的數據中繼器以及第二通用處理器22的數據中繼器M2轉發到第一計算節點1的FPGAFPGA1中。
圖3示意性地示出了根據本發明實施例的FPGA的數據中繼器的框圖。
如圖3所示,FPGA的數據中繼器包括:消息發送端口D1、動態自適應通路選擇器D2、FPGA消息接口D3、壓縮模塊D4以及通用處理器消息接口D5。
通常在網絡中傳遞的消息需要負責的消息包頭,用于在網絡中路由。但是,優選地,在本發明實施例中,依次連接的數據中繼器在一個方向上傳遞數據;例如圖1所示的從第三計算節點3至第二計算節點2,然后到達第一計算節點1的方向。所以,由于本發明實施例的數據中繼器連接方式及數據傳遞方式的簡單設計,本發明實施例中的消息包格式可以具有簡單的形式,例如消息包格式中無需包括路由信息。
圖4示出了本發明實施例采用的數據包格式。如圖4所示,本發明實施例中的消息包格式可以僅僅是消息包實際內容(壓縮或未壓縮)DATA1,也可以是壓縮算法DATA0與消息包實際內容(壓縮或未壓縮)DATA1的組合。其中,壓縮算法DATA0用于指明消息包實際內容DATA1的壓縮方式。
由此,通用處理器向FPGA傳遞消息時,只需要將需要發送的內容放入消息包實際內容(壓縮或未壓縮)DATA1即可。優選地,通用處理器在傳遞消息時不在通用處理器內部做消息的壓縮,這是因為壓縮會占用通用處理器很多處理時間,不利于通用處理器全速進行數據前期處理工作。
優選地,FPGA之間的消息可以經過壓縮處理,以減少傳輸時所需的帶寬。由于FPGA之間的通道都是單向的,消息會被一直轉發直到終點,因此,也無需在消息包中包含目的信息等路由信息。
其中,FPGA消息接口D3接收來自其它FPGA的數據。FPGA消息接口D3的主要部件為一個消息緩存,消息緩存實現為一個先進先出的隊列。FPGA消息接口D3接收到的消息(數據)將放入消息緩存以待動態自適應通路選擇器D2將消息取出。
通用處理器消息接口D5接收來自當前計算節點的通用處理器的數據。處理器消息接口D5需要實現同處理器連接的通信協議,如GPMC,PCIe等,其內部的主要包含實現通信的標準協議接口P1以及一個先進先出緩存P2,如圖5所示。
壓縮模塊D4用于對從通用處理器消息接口D5接收的數據進行壓縮。具體地,壓縮模塊D4是數據中繼器中的核心模塊,其設計是為了節省FPGA相互之間通信時需要的接口帶寬,其作用相當于增強了整個中繼過程中的數據傳輸帶寬。通用處理器的消息到達之后,可以利用壓縮模塊將數據包的內容進行壓縮,壓縮可以使用標準的壓縮算法(如gzip等)。需要說明的是,在當前實施例中,消息壓縮只針對來自通用處理器的消息進行。由于在數據中繼器M2設計中加入了壓縮部件(壓縮模塊D4),可以在實際上增強數據傳輸的有效帶寬。
動態自適應通路選擇器D2是數據中繼器中的控制核心,其用于動態地轉發從FPGA消息接口D3的先進先出隊列取出的消息以及從壓縮模塊D4取出的消息。
優選地,在一個連續發送過程(例如一個發送周期)中,動態自適應通路選擇器D2先轉發來自通用處理器的所有消息,然后轉發來自其他FPGA的所有消息。
并且,優選地,動態自適應通路選擇器D2能夠在每個連續發送過程完成之后動態地調整在下一次連續發送過程發送的來自通用處理器的數據量與來自其他FPGA的數據量之間的比例,以保證流量較大的通路消息會盡快被轉發,同時避免流量較小的通路占用控制邏輯的時間。
動態自適應通路選擇器D2的總體結構如圖6所示。如圖6所示,動態自適應通路選擇器D2是包括:當前狀態寄存器R1、歷史狀態寄存器R2、控制邏輯LG1、以及2選1選擇器LG2。其中,2選1選擇器LG2接收從FPGA消息接口D3傳遞來的第一消息S01以及壓縮模塊D4傳遞來的第二消息S02。可以看出,第一消息S01實際包含來自其他FPGA的數據內容,而第二消息S02包含來自同一計算節點的通用處理器的數據內容。
控制邏輯LG1根據當前狀態寄存器R1和歷史狀態寄存器R2的內容,將來自不同源節點(其他FPGA或者同一計算節點的通用處理器)的消息一次挑選出其中一個來源的消息作為一個第三消息S03,并將第三消息S03送到消息發送端口D1。
消息發送端口D1用于將動態自適應通路選擇器D2傳遞來的數據從數據中繼器發送出去;同樣,消息發送端口D1可實現為一個先進先出的緩沖。
圖7示意性地示出了根據本發明實施例的動態自適應通路選擇器的操作處理的優選示例。
首先,需要說明的是,在操作處理中,歷史狀態和當前狀態共有4個寄存器表示。其中歷史狀態有X2寄存器、Y2寄存器分別對應來自通用處理器消息和來自FPGA的消息,歷史狀態寄存器的意義是來自相應通路的消息隊列在被控制邏輯選中后發現隊列為空的次數。其中,記錄隊列為空的次數用于重置X1、Y1寄存器時對這兩個值的修改,分別記錄在X2、Y2寄存器中,X2,Y2參與計算下一次X1,Y1的計算,即X1=X1+(Y2?X2)/2,Y1=64?X1。
當前狀態中同樣使用X1寄存器、Y1寄存器表示來自通用處理器和來自FPGA的消息,當前狀態寄存器的意義是控制邏輯LG1在一段連續發送過程中需要選擇相應通路的次數。需要說明的是,在當前狀態中,X1和Y1的和是64。
判斷“當前狀態”中的X1值是否大于0(步驟S0),在X值大于0的情況下,控制邏輯LG1使當前狀態的X1遞減1(步驟S1),并且控制邏輯LG1首先根據“當前狀態”中的X1值,控制2選1選擇器選擇LG2來自通用處理器的消息送往消息發送端口(步驟S2),該過程重復X1次。具體地說,在步驟S2之后判斷通用處理器消息隊列是否為空(步驟S3),在不為空的情況,處理回到步驟S0。
在通用處理器消息隊列為空的情況下歷史狀態中,X2遞增1(步驟S5),此后處理回到步驟S0。更具體地說,當發生通用處理器消息隊列為空時,則表明雖然控制邏輯希望從通用處理器消息隊列取出數據,但是其內部沒有數據,為了記錄這種情況以在下一次調整控制邏輯對兩條數據通路的選擇,將對歷史狀態中的X2加1(步驟S4)。隨后,程序回到步驟S0。
如上,控制邏輯根據當前狀態中的Y1值進行來自FPGA的消息轉發,并設置歷史狀態寄存器。具體地說,在X1值不大于0的情況下(步驟S0的判定結果為否定),判斷Y1值是否大于0(步驟S5)。在Y1值大于0的情況下,控制邏輯LG1使當前狀態的Y1遞減1(步驟S6),并且控制邏輯LG1首先根據“當前狀態”中的Y1值,控制2選1選擇器選擇LG2來自FPGA的消息送往消息發送端口(步驟S7),該過程重復Y1次。具體地說,在步驟S7之后判斷通用處理器消息隊列是否為空(步驟S8),在不為空的情況,處理回到步驟S5。在通用處理器消息隊列為空的情況下歷史狀態中,Y2遞增1(步驟S9),此后處理回到步驟S5。
當一次連續發送完成后,將重置當前狀態(X1=X1+(Y2?X2)/2,Y1=64?X1)(步驟S00),以及重置歷史狀態(使得X2=1,Y2=1)(步驟S01)。并進入下一次連續發送過程。其中,當前狀態重置的基本思想是動態地調整控制邏輯在下一次連續發送階段從兩個通路選擇的比例,以保證流量較大的通路消息會盡快被轉發,同時避免流量較小的通路占用控制邏輯的時間。
根據本發明實施例,數據中繼器實現了動態的自適應通路均衡選擇,一方面增強了數據傳輸的帶寬,另一方面提供了數據中繼器可重用能力,可使數據中繼器應用在整個異構FPGA陣列中的各位置。
此外,需要說明的是,說明書中的術語“第一”、“第二”、“第三”等描述僅僅用于區分說明書中的各個組件、元素、步驟等,而不是用于表示各個組件、元素、步驟之間的邏輯關系或者順序關系等。
可以理解的是,雖然本發明已以較佳實施例披露如上,然而上述實施例并非用以限定本發明。對于任何熟悉本領域的技術人員而言,在不脫離本發明技術方案范圍情況下,都可利用上述揭示的技術內容對本發明技術方案作出許多可能的變動和修飾,或修改為等同變化的等效實施例。因此,凡是未脫離本發明技術方案的內容,依據本發明的技術實質對以上實施例所做的任何簡單修改、等同變化及修飾,均仍屬于本發明技術方案保護的范圍內。

關于本文
本文標題:計算節點集群系統和數據中繼器.pdf
鏈接地址:http://www.wwszu.club/p-6421028.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大