專利名稱:計(jì)算節(jié)點(diǎn)集群系統(tǒng)和數(shù)據(jù)中繼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算技術(shù)領(lǐng)域,更具體地說,本發(fā)明涉及一種使得可重構(gòu)FPGA (FieldProgrammable Gate Array,現(xiàn)場可編程門陣列)陣列中的數(shù)據(jù)帶寬增強(qiáng)的計(jì)算節(jié)點(diǎn)集群系統(tǒng)和數(shù)據(jù)中繼器。
背景技術(shù):
通用處理器加可重構(gòu)FPGA的軟硬件協(xié)同計(jì)算模式正在成為一種新的計(jì)算結(jié)構(gòu)發(fā)展方向,而將這種結(jié)構(gòu)中的FPGA相互連接構(gòu)成陣列形式,更是很大程度提高了這種結(jié)構(gòu)的計(jì)算能力和靈活性??芍貥?gòu)FPGA具有強(qiáng)大的計(jì)算能力,非常適合進(jìn)行計(jì)算密集型的應(yīng)用。但是,當(dāng)需·要處理數(shù)據(jù)密集型應(yīng)用時(shí),F(xiàn)PGA同外部通用處理器互連的數(shù)據(jù)通路帶寬往往會(huì)成為整個(gè)結(jié)構(gòu)中的性能瓶頸,會(huì)很大程度限制FPGA計(jì)算加速能力的發(fā)揮。因此,希望能夠提供一種可增強(qiáng)可重構(gòu)FPGA陣列中的數(shù)據(jù)帶寬的方法。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)中存在上述缺陷,提供一種使得可重構(gòu)FPGA陣列中的數(shù)據(jù)帶寬增強(qiáng)的計(jì)算節(jié)點(diǎn)集群系統(tǒng)。根據(jù)本發(fā)明,提供了一種計(jì)算節(jié)點(diǎn)集群系統(tǒng),其包括多個(gè)計(jì)算節(jié)點(diǎn),其中每個(gè)計(jì)算節(jié)點(diǎn)包括各自的FPGA和通用處理器;其中,各個(gè)計(jì)算節(jié)點(diǎn)的通用處理器通過網(wǎng)絡(luò)相互連接;并且,在每個(gè)計(jì)算節(jié)點(diǎn)中,F(xiàn)PGA連接至通用處理器;其中,每個(gè)FPGA均具有數(shù)據(jù)中繼器;而且,所有計(jì)算節(jié)點(diǎn)的FPGA通過數(shù)據(jù)中繼器依次連接。優(yōu)選地,數(shù)據(jù)中繼器實(shí)現(xiàn)了動(dòng)態(tài)自適應(yīng)通路均衡選擇。優(yōu)選地,依次連接的數(shù)據(jù)中繼器在一個(gè)方向上傳遞數(shù)據(jù)。優(yōu)選地,數(shù)據(jù)中繼器包括消息發(fā)送端口、動(dòng)態(tài)自適應(yīng)通路選擇器、FPGA消息接口、壓縮模塊以及通用處理器消息接口 ;其中,F(xiàn)PGA消息接口接收來自其它FPGA的數(shù)據(jù),并且將其保存在先進(jìn)先出隊(duì)列中;通用處理器消息接口接收來自當(dāng)前計(jì)算節(jié)點(diǎn)的通用處理器的數(shù)據(jù);壓縮模塊用于對(duì)從通用處理器消息接口接收的數(shù)據(jù)進(jìn)行壓縮;動(dòng)態(tài)自適應(yīng)通路選擇器動(dòng)態(tài)地轉(zhuǎn)發(fā)從FPGA消息接口的先進(jìn)先出隊(duì)列取出的消息以及從壓縮模塊取出的消息;消息發(fā)送端口 Dl用于將動(dòng)態(tài)自適應(yīng)通路選擇器D2傳遞來的數(shù)據(jù)從數(shù)據(jù)中繼器發(fā)送出去。優(yōu)選地,在一個(gè)連續(xù)發(fā)送過程中,動(dòng)態(tài)自適應(yīng)通路選擇器先轉(zhuǎn)發(fā)來自當(dāng)前計(jì)算節(jié)點(diǎn)的通用處理器的所有消息,然后轉(zhuǎn)發(fā)來自其他FPGA的所有消息。優(yōu)選地,動(dòng)態(tài)自適應(yīng)通路選擇器在每個(gè)連續(xù)發(fā)送過程完成之后動(dòng)態(tài)地調(diào)整在下一次連續(xù)發(fā)送過程發(fā)送的來自通用處理器的數(shù)據(jù)量與來自其他FPGA的數(shù)據(jù)量之間的比例。優(yōu)選地,動(dòng)態(tài)自適應(yīng)通路選擇器包括當(dāng)前狀態(tài)寄存器、歷史狀態(tài)寄存器、控制邏輯、以及2選I選擇器;其中,2選I選擇器接收從FPGA消息接口傳遞來的第一消息以及壓縮模塊傳遞來的第二消息;控制邏輯根據(jù)當(dāng)前狀態(tài)寄存器和歷史狀態(tài)寄存器的內(nèi)容,一次挑選出其中一個(gè)來源的消息作為一個(gè)第三消息,并將第三消息送到消息發(fā)送端口。根據(jù)本發(fā)明,還提供了一種數(shù)據(jù)中繼器,包括消息發(fā)送端口、動(dòng)態(tài)自適應(yīng)通路選擇器、FPGA消息接口、壓縮模塊以及通用處理器消息接口 ;其中,F(xiàn)PGA消息接口接收來自其它FPGA的數(shù)據(jù),并且將其保存在先進(jìn)先出隊(duì)列中;通用處理器消息接口接收來自當(dāng)前計(jì)算節(jié)點(diǎn)的通用處理器的數(shù)據(jù);壓縮模塊用于對(duì)從通用處理器消息接口接收的數(shù)據(jù)進(jìn)行壓縮;動(dòng)態(tài)自適應(yīng)通路選擇器動(dòng)態(tài)地轉(zhuǎn)發(fā)從FPGA消息接口的先進(jìn)先出隊(duì)列取出的消息以及從壓縮模塊取出的消息;消息發(fā)送端口用于將動(dòng)態(tài)自適應(yīng)通路選擇器傳遞來的數(shù)據(jù)從數(shù)據(jù)中繼器發(fā)送出去。優(yōu)選地,在一個(gè)連續(xù)發(fā)送過程中,動(dòng)態(tài)自適應(yīng)通路選擇器先轉(zhuǎn)發(fā)來自當(dāng)前計(jì)算節(jié)點(diǎn)的通用處理器的所有消息,然后轉(zhuǎn)發(fā)來自其他FPGA的所有消息。優(yōu)選地,動(dòng)態(tài)自適應(yīng)通路選擇器在每個(gè)連續(xù)發(fā)送過程完成之后動(dòng)態(tài)地調(diào)整在下一·次連續(xù)發(fā)送過程發(fā)送的來自通用處理器的數(shù)據(jù)量與來自其他FPGA的數(shù)據(jù)量之間的比例。根據(jù)本發(fā)明,通過依次連接各個(gè)FPGA的各個(gè)數(shù)據(jù)中繼器,形成了一個(gè)額外的數(shù)據(jù)通路,實(shí)際上增大了數(shù)據(jù)帶寬;而且數(shù)據(jù)中繼器實(shí)現(xiàn)了動(dòng)態(tài)的自適應(yīng)通路均衡選擇,一方面增強(qiáng)了數(shù)據(jù)傳輸?shù)膸?,另一方面提供了?shù)據(jù)中繼器可重用能力,可使數(shù)據(jù)中繼器應(yīng)用在整個(gè)異構(gòu)FPGA陣列中的各位置。
結(jié)合附圖,并通過參考下面的詳細(xì)描述,將會(huì)更容易地對(duì)本發(fā)明有更完整的理解并且更容易地理解其伴隨的優(yōu)點(diǎn)和特征,其中圖I示意性地示出了根據(jù)本發(fā)明實(shí)施例構(gòu)建的FPGA和通用處理器組成的陣列結(jié)構(gòu)。圖2示意性地示出了根據(jù)本發(fā)明實(shí)施例的FPGA的框圖。圖3示意性地示出了根據(jù)本發(fā)明實(shí)施例的FPGA的數(shù)據(jù)中繼器的框圖。 圖4示出了本發(fā)明實(shí)施例采用的數(shù)據(jù)包格式。圖5示意性地示出了根據(jù)本發(fā)明實(shí)施例的通用處理器消息接口的配置。圖6示意性地示出了根據(jù)本發(fā)明實(shí)施例的動(dòng)態(tài)自適應(yīng)通路選擇器的配置。圖7示意性地示出了根據(jù)本發(fā)明實(shí)施例的動(dòng)態(tài)自適應(yīng)通路選擇器的操作處理的優(yōu)選示例。需要說明的是,附圖用于說明本發(fā)明,而非限制本發(fā)明。注意,表示結(jié)構(gòu)的附圖可能并非按比例繪制。并且,附圖中,相同或者類似的元件標(biāo)有相同或者類似的標(biāo)號(hào)。
具體實(shí)施例方式為了使本發(fā)明的內(nèi)容更加清楚和易懂,下面結(jié)合具體實(shí)施例和附圖對(duì)本發(fā)明的內(nèi)容進(jìn)行詳細(xì)描述。圖I示意性地示出了根據(jù)本發(fā)明實(shí)施例構(gòu)建的FPGA和通用處理器組成的陣列結(jié)構(gòu)。如圖I所示,通過諸如標(biāo)準(zhǔn)以太網(wǎng)4之類的網(wǎng)絡(luò)使得多個(gè)計(jì)算節(jié)點(diǎn)相互連接,在圖I所示的示例中,包括第一計(jì)算節(jié)點(diǎn)I、第二計(jì)算節(jié)點(diǎn)2和第三計(jì)算節(jié)點(diǎn)3。每個(gè)計(jì)算節(jié)點(diǎn)包括各自的FPGA和通用處理器。具體地說,第一計(jì)算節(jié)點(diǎn)I包括第一 FPGAFPGA1和第一通用處理器11 ;第二計(jì)算節(jié)點(diǎn)2包括第二 FPGAFPGA2和第二通用處理器22 ;第三計(jì)算節(jié)點(diǎn)3包括第三FPGAFPGA3和第三通用處理器33。更具體地說,各個(gè)計(jì)算節(jié)點(diǎn)的通用處理器通過諸如標(biāo)準(zhǔn)以太網(wǎng)4之類的網(wǎng)絡(luò)相互連接。 并且,在每個(gè)計(jì)算節(jié)點(diǎn)中,F(xiàn)PGA連接至通用處理器。并且,所有計(jì)算節(jié)點(diǎn)的FPGA依次連接。雖然示出了 3個(gè)計(jì)算節(jié)點(diǎn)的示例,但是,計(jì)算節(jié)點(diǎn)的數(shù)量顯然不限于3個(gè),而是可以是任何適當(dāng)數(shù)量。圖I中包含三種數(shù)據(jù)連接方式FPGA之間的高速互連(例如GPI0、RocketI0),通用處理器與FPGA之間的通信連接(例如GPMC、PCIe、AIX總線等),以及通用處理器之間通過標(biāo)準(zhǔn)的以太網(wǎng)互連。這種結(jié)構(gòu)的一般應(yīng)用模式為通用處理器上的軟件程序和FPGA上的硬件加速邏輯協(xié)同工作,以高效地加速應(yīng)用計(jì)算速度。具體地說,通用處理器上的軟件完成一些適應(yīng)軟件完成的數(shù)據(jù)處理之后,將數(shù)據(jù)送入FPGA中的專門加速邏輯以實(shí)現(xiàn)高速的硬件加速。但是,在數(shù)據(jù)密集型應(yīng)用中,若通用處理器同F(xiàn)PGA之間連接的帶寬不夠,則會(huì)無法滿足通用處理器向FPGA傳遞數(shù)據(jù)的需求,進(jìn)而影響整個(gè)應(yīng)用的計(jì)算速度。鑒于此,本發(fā)明實(shí)施例在FPGA中集成了數(shù)據(jù)中繼器(數(shù)據(jù)中繼器M2)。具體地說,圖2示意性地示出了根據(jù)本發(fā)明實(shí)施例的FPGA的框圖。如圖2所示,以第二計(jì)算節(jié)點(diǎn)2為例,第二計(jì)算節(jié)點(diǎn)2的第二 FPGAFPGA2包括FPGA計(jì)算邏輯Ml以及數(shù)據(jù)中繼器M2 ;其中,為了便于描述,圖2中省略了 FPGA的其它組成部分。數(shù)據(jù)中繼器M2是一種帶寬增強(qiáng)的數(shù)據(jù)中繼器。即,每個(gè)FPGA均具有實(shí)現(xiàn)了動(dòng)態(tài)的自適應(yīng)通路均衡選擇的數(shù)據(jù)中繼器。各個(gè)FPGA的各個(gè)數(shù)據(jù)中繼器依次連接;換言之,所有計(jì)算節(jié)點(diǎn)的FPGA通過數(shù)據(jù)中繼器依次連接。由此,通過依次連接各個(gè)FPGA的各個(gè)數(shù)據(jù)中繼器,形成了一個(gè)額外的數(shù)據(jù)通路,實(shí)際上增大了數(shù)據(jù)帶寬。如果第一計(jì)算節(jié)點(diǎn)I上的第一通用處理器11和FPGAFPGA1正在協(xié)同工作,但是受到了兩者之間互連帶寬的限制,則此時(shí)可以利用第二計(jì)算節(jié)點(diǎn)2的第二通用處理器22和第三計(jì)算節(jié)點(diǎn)3的第三通用處理器33協(xié)助進(jìn)行前期的數(shù)據(jù)處理,并且第二通用處理器22將處理后的數(shù)據(jù)通過其自己的數(shù)據(jù)中繼器M2轉(zhuǎn)發(fā)到第一計(jì)算節(jié)點(diǎn)I的FPGAFPGA1中,而第三計(jì)算節(jié)點(diǎn)3將處理后的數(shù)據(jù)通過其自己的數(shù)據(jù)中繼器以及第二通用處理器22的數(shù)據(jù)中繼器M2轉(zhuǎn)發(fā)到第一計(jì)算節(jié)點(diǎn)I的FPGAFPGA1中。圖3示意性地示出了根據(jù)本發(fā)明實(shí)施例的FPGA的數(shù)據(jù)中繼器的框圖。如圖3所示,F(xiàn)PGA的數(shù)據(jù)中繼器包括消息發(fā)送端口 D1、動(dòng)態(tài)自適應(yīng)通路選擇器D2、FPGA消息接口 D3、壓縮模塊D4以及通用處理器消息接口 D5。通常在網(wǎng)絡(luò)中傳遞的消息需要負(fù)責(zé)的消息包頭,用于在網(wǎng)絡(luò)中路由。但是,優(yōu)選地,在本發(fā)明實(shí)施例中,依次連接的數(shù)據(jù)中繼器在一個(gè)方向上傳遞數(shù)據(jù);例如圖I所示的從第三計(jì)算節(jié)點(diǎn)3至第二計(jì)算節(jié)點(diǎn)2,然后到達(dá)第一計(jì)算節(jié)點(diǎn)I的方向。所以,由于本發(fā)明實(shí)施例的數(shù)據(jù)中繼器連接方式及數(shù)據(jù)傳遞方式的簡單設(shè)計(jì),本發(fā)明實(shí)施例中的消息包格式可以具有簡單的形式,例如消息包格式中無需包括路由信息。圖4示出了本發(fā)明實(shí)施例采用的數(shù)據(jù)包格式。如圖4所示,本發(fā)明實(shí)施例中的消息包格式可以僅僅是消息包實(shí)際內(nèi)容(壓縮或未壓縮)DATAl,也可以是壓縮算法DATAO與消息包實(shí)際內(nèi)容(壓縮或未壓縮)DATAl的組合。其中,壓縮算法DATAO用于指明消息包實(shí)際內(nèi)容DATAl的壓縮方式。由此,通用處理器向FPGA傳遞消息時(shí),只需要將需要發(fā)送的內(nèi)容放入消息包實(shí)際內(nèi)容(壓縮或未壓縮)DATAl即可。優(yōu)選地,通用處理器在傳遞消息時(shí)不在通用處理器內(nèi)部做消息的壓縮,這是因?yàn)閴嚎s會(huì)占用通用處理器很多處理時(shí)間,不利于通用處理器全速進(jìn)行數(shù)據(jù)前期處理工作。優(yōu)選地,F(xiàn)PGA之間的消息可以經(jīng)過壓縮處理,以減少傳輸時(shí)所需的帶寬。由于FPGA之間的通道都是單向的,消息會(huì)被一直轉(zhuǎn)發(fā)直到終點(diǎn),因此,也無需在消息包中包含目
的信息等路由信息。其中,F(xiàn)PGA消息接口 D3接收來自其它FPGA的數(shù)據(jù)。FPGA消息接口 D3的主要部件為一個(gè)消息緩存,消息緩存實(shí)現(xiàn)為一個(gè)先進(jìn)先出的隊(duì)列。FPGA消息接口 D3接收到的消息(數(shù)據(jù))將放入消息緩存以待動(dòng)態(tài)自適應(yīng)通路選擇器D2將消息取出。通用處理器消息接口 D5接收來自當(dāng)前計(jì)算節(jié)點(diǎn)的通用處理器的數(shù)據(jù)。處理器消息接口 D5需要實(shí)現(xiàn)同處理器連接的通信協(xié)議,如GPMC,PCIe等,其內(nèi)部的主要包含實(shí)現(xiàn)通信的標(biāo)準(zhǔn)協(xié)議接口 Pl以及一個(gè)先進(jìn)先出緩存P2,如圖5所示。壓縮模塊D4用于對(duì)從通用處理器消息接口 D5接收的數(shù)據(jù)進(jìn)行壓縮。具體地,壓縮模塊D4是數(shù)據(jù)中繼器中的核心模塊,其設(shè)計(jì)是為了節(jié)省FPGA相互之間通信時(shí)需要的接口·帶寬,其作用相當(dāng)于增強(qiáng)了整個(gè)中繼過程中的數(shù)據(jù)傳輸帶寬。通用處理器的消息到達(dá)之后,可以利用壓縮模塊將數(shù)據(jù)包的內(nèi)容進(jìn)行壓縮,壓縮可以使用標(biāo)準(zhǔn)的壓縮算法(如gzip等)。需要說明的是,在當(dāng)前實(shí)施例中,消息壓縮只針對(duì)來自通用處理器的消息進(jìn)行。由于在數(shù)據(jù)中繼器M2設(shè)計(jì)中加入了壓縮部件(壓縮模塊D4),可以在實(shí)際上增強(qiáng)數(shù)據(jù)傳輸?shù)挠行?。?dòng)態(tài)自適應(yīng)通路選擇器D2是數(shù)據(jù)中繼器中的控制核心,其用于動(dòng)態(tài)地轉(zhuǎn)發(fā)從FPGA消息接口 D3的先進(jìn)先出隊(duì)列取出的消息以及從壓縮模塊D4取出的消息。優(yōu)選地,在一個(gè)連續(xù)發(fā)送過程(例如一個(gè)發(fā)送周期)中,動(dòng)態(tài)自適應(yīng)通路選擇器D2先轉(zhuǎn)發(fā)來自通用處理器的所有消息,然后轉(zhuǎn)發(fā)來自其他FPGA的所有消息。并且,優(yōu)選地,動(dòng)態(tài)自適應(yīng)通路選擇器D2能夠在每個(gè)連續(xù)發(fā)送過程完成之后動(dòng)態(tài)地調(diào)整在下一次連續(xù)發(fā)送過程發(fā)送的來自通用處理器的數(shù)據(jù)量與來自其他FPGA的數(shù)據(jù)量之間的比例,以保證流量較大的通路消息會(huì)盡快被轉(zhuǎn)發(fā),同時(shí)避免流量較小的通路占用控制邏輯的時(shí)間。動(dòng)態(tài)自適應(yīng)通路選擇器D2的總體結(jié)構(gòu)如圖6所示。如圖6所示,動(dòng)態(tài)自適應(yīng)通路選擇器D2是包括當(dāng)前狀態(tài)寄存器R1、歷史狀態(tài)寄存器R2、控制邏輯LG1、以及2選I選擇器LG2。其中,2選I選擇器LG2接收從FPGA消息接口 D3傳遞來的第一消息SOl以及壓縮模塊D4傳遞來的第二消息S02??梢钥闯?,第一消息SOl實(shí)際包含來自其他FPGA的數(shù)據(jù)內(nèi)容,而第二消息S02包含來自同一計(jì)算節(jié)點(diǎn)的通用處理器的數(shù)據(jù)內(nèi)容??刂七壿婰Gl根據(jù)當(dāng)前狀態(tài)寄存器Rl和歷史狀態(tài)寄存器R2的內(nèi)容,將來自不同源節(jié)點(diǎn)(其他FPGA或者同一計(jì)算節(jié)點(diǎn)的通用處理器)的消息一次挑選出其中一個(gè)來源的消息作為一個(gè)第三消息S03,并將第三消息S03送到消息發(fā)送端口 Dl。消息發(fā)送端口 Dl用于將動(dòng)態(tài)自適應(yīng)通路選擇器D2傳遞來的數(shù)據(jù)從數(shù)據(jù)中繼器發(fā)送出去;同樣,消息發(fā)送端口 Dl可實(shí)現(xiàn)為一個(gè)先進(jìn)先出的緩沖。圖7示意性地示出了根據(jù)本發(fā)明實(shí)施例的動(dòng)態(tài)自適應(yīng)通路選擇器的操作處理的優(yōu)選示例。首先,需要說明的是,在操作處理中,歷史狀態(tài)和當(dāng)前狀態(tài)共有4個(gè)寄存器表示。其中歷史狀態(tài)有X2寄存器、Y2寄存器分別對(duì)應(yīng)來自通用處理器消息和來自FPGA的消息,歷史狀態(tài)寄存器的意義是來自相應(yīng)通路的消息隊(duì)列在被控制邏輯選中后發(fā)現(xiàn)隊(duì)列為空的次數(shù)。其中,記錄隊(duì)列為空的次數(shù)用于重置X1、Y1寄存器時(shí)對(duì)這兩個(gè)值的修改,分別記錄在X2、Y2 寄存器中,X2,Y2 參與計(jì)算下一次 XI,Yl 的計(jì)算,即 Xl=Xl+(Y2-X2)/2,Y1=64_X1。當(dāng)前狀態(tài)中同樣使用Xl寄存器、Yl寄存器表示來自通用處理器和來自FPGA的消息,當(dāng)前狀態(tài)寄存器的意義是控制邏輯LGl在一段連續(xù)發(fā)送過程中需要選擇相應(yīng)通路的次數(shù)。需要說明的是,在當(dāng)前狀態(tài)中,Xl和Yl的和是64。判斷“當(dāng)前狀態(tài)”中的Xl值是否大于O (步驟S0),在X值大于O的情況下,控制邏輯LGl使當(dāng)前狀態(tài)的Xl遞減I (步驟SI),并且控制邏輯LGl首先根據(jù)“當(dāng)前狀態(tài)”中的Xl值,控制2選I選擇器選擇LG2來自通用處理器的消息送往消息發(fā)送端口(步驟S2),該過程重復(fù)Xl次。具體地說,在步驟S2之后判斷通用處理器消息隊(duì)列是否為空(步驟S3),在不為空的情況,處理回到步驟S0。在通用處理器消息隊(duì)列為空的情況下歷史狀態(tài)中,X2遞增I (步驟S5),此后處理回到步驟so。更具體地說,當(dāng)發(fā)生通用處理器消息隊(duì)列為空時(shí),則表明雖然控制邏輯希望從通用處理器消息隊(duì)列取出數(shù)據(jù),但是其內(nèi)部沒有數(shù)據(jù),為了記錄這種情況以在下一次調(diào)整控制邏輯對(duì)兩條數(shù)據(jù)通路的選擇,將對(duì)歷史狀態(tài)中的X2加I (步驟S4)。隨后,程序回到步驟S0。如上,控制邏輯根據(jù)當(dāng)前狀態(tài)中的Yl值進(jìn)行來自FPGA的消息轉(zhuǎn)發(fā),并設(shè)置歷史狀態(tài)寄存器。具體地說,在Xi值不大于O的情況下(步驟SO的判定結(jié)果為否定),判斷Yl值是否大于O (步驟S5)。在Yl值大于O的情況下,控制邏輯LGl使當(dāng)前狀態(tài)的Yl遞減I (步驟S6),并且控制邏輯LGl首先根據(jù)“當(dāng)前狀態(tài)”中的Yl值,控制2選I選擇器選擇LG2來自FPGA的消息送往消息發(fā)送端口(步驟S7),該過程重復(fù)Yl次。具體地說,在步驟S7之后判斷通用處理器消息隊(duì)列是否為空(步驟S8),在不為空的情況,處理回到步驟S5。在通用處理器消息隊(duì)列為空的情況下歷史狀態(tài)中,Y2遞增I (步驟S9),此后處理回到步驟S5。當(dāng)一次連續(xù)發(fā)送完成后,將重置當(dāng)前狀態(tài)(Χ1=Χ1+(Υ2-Χ2)/2,Υ1=64_Χ1)(步驟S00),以及重置歷史狀態(tài)(使得X2=l,Y2=l)(步驟SOI)。并進(jìn)入下一次連續(xù)發(fā)送過程。其中,當(dāng)前狀態(tài)重置的基本思想是動(dòng)態(tài)地調(diào)整控制邏輯在下一次連續(xù)發(fā)送階段從兩個(gè)通路選擇的比例,以保證流量較大的通路消息會(huì)盡快被轉(zhuǎn)發(fā),同時(shí)避免流量較小的通路占用控制邏輯的時(shí)間。根據(jù)本發(fā)明實(shí)施例,數(shù)據(jù)中繼器實(shí)現(xiàn)了動(dòng)態(tài)的自適應(yīng)通路均衡選擇,一方面增強(qiáng)了數(shù)據(jù)傳輸?shù)膸挘硪环矫嫣峁┝藬?shù)據(jù)中繼器可重用能力,可使數(shù)據(jù)中繼器應(yīng)用在整個(gè)異構(gòu)FPGA陣列中的各位置。此外,需要說明的是,說明書中的術(shù)語“第一”、“第二”、“第三”等描述僅僅用于區(qū)分說明書中的各個(gè)組件、元素、步驟等,而不是用于表示各個(gè)組件、元素、步驟之間的邏輯關(guān)系或者順序關(guān)系等??梢岳斫獾氖牵m然本發(fā)明已以較佳實(shí)施例披露如上,然而上述實(shí)施例并非用以限定本發(fā)明。對(duì)于任何熟悉本領(lǐng)域的技術(shù)人員而言,在不脫離本發(fā)明技術(shù)方案范圍情況下,都可利用上述揭示的技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案作出許多可能的變動(dòng)和修飾,或修改為等同變化的等效實(shí)施例。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所做的任何簡單修改、等同變化及修飾,均仍屬于本發(fā)明技術(shù)方案保護(hù)的范圍內(nèi)。
權(quán)利要求
1.一種計(jì)算節(jié)點(diǎn)集群系統(tǒng),其特征在于包括多個(gè)計(jì)算節(jié)點(diǎn),其中每個(gè)計(jì)算節(jié)點(diǎn)包括各自的FPGA和通用處理器;其中,各個(gè)計(jì)算節(jié)點(diǎn)的通用處理器通過網(wǎng)絡(luò)相互連接;并且,在每個(gè)計(jì)算節(jié)點(diǎn)中,F(xiàn)PGA連接至通用處理器;其中,每個(gè)FPGA均具有數(shù)據(jù)中繼器;而且,所有計(jì)算節(jié)點(diǎn)的FPGA通過數(shù)據(jù)中繼器依次連接。
2.根據(jù)權(quán)利要求I所述的計(jì)算節(jié)點(diǎn)集群系統(tǒng),其特征在于,數(shù)據(jù)中繼器實(shí)現(xiàn)了動(dòng)態(tài)自適應(yīng)通路均衡選擇。
3.根據(jù)權(quán)利要求I或2所述的計(jì)算節(jié)點(diǎn)集群系統(tǒng),其特征在于,依次連接的數(shù)據(jù)中繼器在一個(gè)方向上傳遞數(shù)據(jù)。
4.根據(jù)權(quán)利要求I或2所述的計(jì)算節(jié)點(diǎn)集群系統(tǒng),其特征在于,數(shù)據(jù)中繼器包括消息發(fā)送端口、動(dòng)態(tài)自適應(yīng)通路選擇器、FPGA消息接口、壓縮模塊以及通用處理器消息接口 ;其中,F(xiàn)PGA消息接口接收來自其它FPGA的數(shù)據(jù),并且將其保存在先進(jìn)先出隊(duì)列中;通用處理器消息接口接收來自當(dāng)前計(jì)算節(jié)點(diǎn)的通用處理器的數(shù)據(jù);壓縮模塊用于對(duì)從通用處理器消息接口接收的數(shù)據(jù)進(jìn)行壓縮;動(dòng)態(tài)自適應(yīng)通路選擇器動(dòng)態(tài)地轉(zhuǎn)發(fā)從FPGA消息接口的先進(jìn)先出隊(duì)列取出的消息以及從壓縮模塊取出的消息;消息發(fā)送端口用于將動(dòng)態(tài)自適應(yīng)通路選擇器傳遞來的數(shù)據(jù)從數(shù)據(jù)中繼器發(fā)送出去。
5.根據(jù)權(quán)利要求4所述的計(jì)算節(jié)點(diǎn)集群系統(tǒng),其特征在于,在一個(gè)連續(xù)發(fā)送過程中,動(dòng)態(tài)自適應(yīng)通路選擇器先轉(zhuǎn)發(fā)來自當(dāng)前計(jì)算節(jié)點(diǎn)的通用處理器的所有消息,然后轉(zhuǎn)發(fā)來自其他FPGA的所有消息。
6.根據(jù)權(quán)利要求4或5所述的計(jì)算節(jié)點(diǎn)集群系統(tǒng),其特征在于,動(dòng)態(tài)自適應(yīng)通路選擇器在每個(gè)連續(xù)發(fā)送過程完成之后動(dòng)態(tài)地調(diào)整在下一次連續(xù)發(fā)送過程發(fā)送的來自通用處理器的數(shù)據(jù)量與來自其他FPGA的數(shù)據(jù)量之間的比例。
7.根據(jù)權(quán)利要求I或2所述的計(jì)算節(jié)點(diǎn)集群系統(tǒng),其特征在于,動(dòng)態(tài)自適應(yīng)通路選擇器包括當(dāng)前狀態(tài)寄存器、歷史狀態(tài)寄存器、控制邏輯、以及2選I選擇器;其中,2選I選擇器接收從FPGA消息接口傳遞來的第一消息以及壓縮模塊傳遞來的第二消息;控制邏輯根據(jù)當(dāng)前狀態(tài)寄存器和歷史狀態(tài)寄存器的內(nèi)容,一次挑選出其中一個(gè)來源的消息作為一個(gè)第三消息,并將第三消息送到消息發(fā)送端口。
8.一種數(shù)據(jù)中繼器,其特征在于包括消息發(fā)送端口、動(dòng)態(tài)自適應(yīng)通路選擇器、FPGA消息接口、壓縮模塊以及通用處理器消息接口 ;其中,F(xiàn)PGA消息接口接收來自其它FPGA的數(shù)據(jù),并且將其保存在先進(jìn)先出隊(duì)列中;通用處理器消息接口接收來自當(dāng)前計(jì)算節(jié)點(diǎn)的通用處理器的數(shù)據(jù);壓縮模塊用于對(duì)從通用處理器消息接口接收的數(shù)據(jù)進(jìn)行壓縮;動(dòng)態(tài)自適應(yīng)通路選擇器動(dòng)態(tài)地轉(zhuǎn)發(fā)從FPGA消息接口的先進(jìn)先出隊(duì)列取出的消息以及從壓縮模塊取出的消息;消息發(fā)送端口用于將動(dòng)態(tài)自適應(yīng)通路選擇器傳遞來的數(shù)據(jù)從數(shù)據(jù)中繼器發(fā)送出去。
9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)中繼器,其特征在于,在一個(gè)連續(xù)發(fā)送過程中,動(dòng)態(tài)自適應(yīng)通路選擇器先轉(zhuǎn)發(fā)來自當(dāng)前計(jì)算節(jié)點(diǎn)的通用處理器的所有消息,然后轉(zhuǎn)發(fā)來自其他FPGA的所有消息。
10.根據(jù)權(quán)利要求8或9所述的數(shù)據(jù)中繼器,其特征在于,動(dòng)態(tài)自適應(yīng)通路選擇器在每個(gè)連續(xù)發(fā)送過程完成之后動(dòng)態(tài)地調(diào)整在下一次連續(xù)發(fā)送過程發(fā)送的來自通用處理器的數(shù)據(jù)量與來自其他FPGA的數(shù)據(jù)量之間的比例。
全文摘要
本發(fā)明提供的一種計(jì)算節(jié)點(diǎn)集群系統(tǒng)和數(shù)據(jù)中繼器。計(jì)算節(jié)點(diǎn)集群系統(tǒng)包括多個(gè)計(jì)算節(jié)點(diǎn),其中每個(gè)計(jì)算節(jié)點(diǎn)包括各自的FPGA和通用處理器;其中,各個(gè)計(jì)算節(jié)點(diǎn)的通用處理器通過網(wǎng)絡(luò)相互連接;并且,在每個(gè)計(jì)算節(jié)點(diǎn)中,F(xiàn)PGA連接至通用處理器;其中,每個(gè)FPGA均具有數(shù)據(jù)中繼器;而且,所有計(jì)算節(jié)點(diǎn)的FPGA通過數(shù)據(jù)中繼器依次連接。在一個(gè)連續(xù)發(fā)送過程中,動(dòng)態(tài)自適應(yīng)通路選擇器先轉(zhuǎn)發(fā)來自當(dāng)前計(jì)算節(jié)點(diǎn)的通用處理器的所有消息,然后轉(zhuǎn)發(fā)來自其他FPGA的所有消息。并且,動(dòng)態(tài)自適應(yīng)通路選擇器在每個(gè)連續(xù)發(fā)送過程完成之后動(dòng)態(tài)地調(diào)整在下一次連續(xù)發(fā)送過程發(fā)送的來自通用處理器的數(shù)據(jù)量與來自其他FPGA的數(shù)據(jù)量之間的比例。
文檔編號(hào)H04L12/861GK102932276SQ20121037991
公開日2013年2月13日 申請(qǐng)日期2012年10月9日 優(yōu)先權(quán)日2012年10月9日
發(fā)明者謝向輝, 吳東, 郝子宇, 臧春峰, 原昊, 錢磊, 鄔貴明, 李璽, 嚴(yán)忻凱 申請(qǐng)人:無錫江南計(jì)算技術(shù)研究所