專利名稱:一種柵障同步方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及機(jī)群系統(tǒng)互連網(wǎng)絡(luò)領(lǐng)域, 一種柵障同步方法及系統(tǒng)。
技術(shù)背景機(jī)群系統(tǒng)是由一組計(jì)算機(jī)系統(tǒng)(節(jié)點(diǎn))通過高性能網(wǎng)絡(luò)或局域網(wǎng)互連而 形成的具有單一系統(tǒng)映像的高可用、高性能、高可擴(kuò)展性的計(jì)算機(jī)集群系統(tǒng)。 運(yùn)行在機(jī)群系統(tǒng)上的并行程序?qū)⑵溆?jì)算任務(wù)分割成若干并行的子任務(wù),并分 配給每個(gè)計(jì)算節(jié)點(diǎn)執(zhí)行。根據(jù)并行程序算法需求,在某些子任務(wù)間存在保序 關(guān)系,因此需要進(jìn)行同步處理。柵障(Barrier)是同步機(jī)制的一種,被廣泛應(yīng)用于機(jī)群系統(tǒng)。Barrier操 作是并行程序的同步點(diǎn),并行程序要等待所有參與其中的計(jì)算節(jié)點(diǎn)都到達(dá)這 個(gè)同歩點(diǎn)后,才能執(zhí)行后續(xù)操作。共同完成一個(gè)計(jì)算任務(wù)的所有計(jì)算節(jié)點(diǎn), 通過某種拓?fù)渚W(wǎng)絡(luò),互連形成一棵在邏輯上有根的Barrier樹。當(dāng)Barrier樹 中的計(jì)算節(jié)點(diǎn)到達(dá)Barrier同步點(diǎn)后就停止執(zhí)行其他操作,直到它被通知 Barrier樹中的所有計(jì)算節(jié)點(diǎn)都已到達(dá)同步點(diǎn),Barrier同步完成,計(jì)算節(jié)點(diǎn)才 能夠繼續(xù)處理其它任務(wù)。Barrier同步完成的時(shí)間取決于Barrier樹中最后一個(gè) 達(dá)到Barrier同歩點(diǎn)的計(jì)算節(jié)點(diǎn),Barrier同步的延時(shí)定義為從最后一個(gè)計(jì)算節(jié) 點(diǎn)達(dá)到Barrier同歩點(diǎn)到Barrier樹中所有計(jì)算節(jié)點(diǎn)都被通知到Barrier同步完 成所需的時(shí)間。在接收到Barrier完成通知前,Barrier樹中所有提前到達(dá)Barrier 同步點(diǎn)的計(jì)算節(jié)點(diǎn)都處在空閑等待狀態(tài),降低了并行系統(tǒng)的性能,因此降低 Barrier同步延時(shí)對(duì)提高并行系統(tǒng)的性能有重要作用。Barrier操作可完全采用軟件實(shí)現(xiàn),這樣實(shí)現(xiàn)Barrier的好處是不需要額外 的硬件開銷,成本低,但延時(shí)最長(zhǎng)。Barrier操作也可采用專用的網(wǎng)絡(luò)在硬件 上實(shí)現(xiàn),這樣可以獲得最低的延時(shí),但固化的Barrier網(wǎng)絡(luò)靈活性差同時(shí)需要 額外的網(wǎng)絡(luò)布線,導(dǎo)致成本最高。在數(shù)據(jù)網(wǎng)絡(luò)中嵌入對(duì)Barrier的支持是一種 的高性價(jià)比的折中方案。在基于交換機(jī)的互連網(wǎng)絡(luò)中,將Barrier實(shí)現(xiàn)在數(shù)據(jù)網(wǎng)絡(luò)中,交換機(jī)節(jié)點(diǎn)作為Barrier樹的根節(jié)點(diǎn)和中間節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)作為 Barrier樹的葉子節(jié)點(diǎn),Barrier數(shù)據(jù)包與普通數(shù)據(jù)包分時(shí)共享鏈路帶寬。這種 實(shí)現(xiàn)方式在提供低延時(shí)的同時(shí)又有很好的靈活性,也有相對(duì)較低的硬件開銷。 Barrier操作分為兩個(gè)階段,第一階段是同步到達(dá)通知過程,到達(dá)Barrier 同步點(diǎn)的計(jì)算節(jié)點(diǎn)向父節(jié)點(diǎn)交換機(jī)發(fā)送到達(dá)通知;當(dāng)中間節(jié)點(diǎn)交換機(jī)收到所 有子節(jié)點(diǎn)到達(dá)通知后,中間節(jié)點(diǎn)交換機(jī)向父節(jié)點(diǎn)發(fā)送到達(dá)通知。在Barrier 樹中子節(jié)點(diǎn)向父節(jié)點(diǎn)層層往上遞交Barrier到達(dá)通知的過程也被稱為Combine 過程,對(duì)應(yīng)發(fā)送的通知到達(dá)數(shù)據(jù)包稱為Barrier規(guī)約包(也稱為Combine包)。 第二階段是同步完成通知過程,Barrier樹根節(jié)點(diǎn)交換機(jī)在接收到所有子節(jié)點(diǎn) Barrier到達(dá)通知后,向所有子節(jié)點(diǎn)發(fā)送Barrier完成通知;中間節(jié)點(diǎn)交換機(jī)在 接收到父節(jié)點(diǎn)的Barrier完成通知后向所有子節(jié)點(diǎn)發(fā)送Barrier完成通知。在 Barrier樹中父節(jié)點(diǎn)向子節(jié)點(diǎn)層層往下分發(fā)Barrier完成通知的過程也被稱為 Distribute過程,對(duì)應(yīng)發(fā)送的通知完成數(shù)據(jù)包稱為Barrier分發(fā)包(也稱為 Distribute包)。由于不同計(jì)算節(jié)點(diǎn)到達(dá)Barrier同步點(diǎn)具有異步性,所以對(duì)于 同一棵Barrier樹可能存在兩次Barrier操作的混雜,這就需要通過一位序號(hào) 來區(qū)分連續(xù)的兩次Barrier操作。發(fā)明內(nèi)容為了解決上述的技術(shù)問題,提供了一種Barrier同步系統(tǒng)及方法,其目的 在于,在能夠保證Barrier機(jī)制的魯棒性同時(shí),節(jié)省邏輯資源,并減少Barrier 同步操作占用的數(shù)據(jù)網(wǎng)絡(luò)帶寬。本發(fā)明提供了一種Barrier同步方法,包括步驟1,配置中間節(jié)點(diǎn)的子端口配置寄存器和父端口配置寄存器,以及 根節(jié)點(diǎn)的子端口配置寄存器,以確定一棵Barrier樹中節(jié)點(diǎn)間互連關(guān)系;中間 節(jié)點(diǎn)和根節(jié)點(diǎn)均為交換機(jī)節(jié)點(diǎn);步驟2,葉子節(jié)點(diǎn)在到達(dá)Barrier同步點(diǎn)后,向其父節(jié)點(diǎn)發(fā)送Barrier規(guī) 約包;葉子節(jié)點(diǎn)為計(jì)算節(jié)點(diǎn);步驟3,中間節(jié)點(diǎn)接收到其所有的子節(jié)點(diǎn)發(fā)送的Barrier規(guī)約包后向其 父節(jié)點(diǎn)發(fā)送Barrier規(guī)約包;根節(jié)點(diǎn)在接收到其所有子節(jié)點(diǎn)發(fā)送的Barrier 規(guī)約包后,向其子節(jié)點(diǎn)發(fā)送Barrier分發(fā)包;步驟4,中間節(jié)點(diǎn)接收到Barrier分發(fā)包后,向其子節(jié)點(diǎn)發(fā)送Barrier分發(fā) 包;葉子節(jié)點(diǎn)接收到Barrier分發(fā)包后繼續(xù)執(zhí)行子任務(wù)代碼。步驟2中,葉子節(jié)點(diǎn)還啟動(dòng)第一超時(shí)計(jì)數(shù)器,若第一超時(shí)計(jì)數(shù)器超過第 一預(yù)設(shè)時(shí)間仍未收到Barrier分發(fā)包,則葉子節(jié)點(diǎn)向其父節(jié)點(diǎn)重發(fā)Barrier 規(guī)約包,重置并啟動(dòng)第一超時(shí)計(jì)數(shù)器;步驟4中,葉子節(jié)點(diǎn)收到Barrier分 發(fā)包后,關(guān)閉第一超時(shí)計(jì)數(shù)器,并更新Barrier操作序號(hào)。步驟3中,中間節(jié)點(diǎn)還啟動(dòng)第二超時(shí)計(jì)數(shù)器,若第二超時(shí)計(jì)數(shù)器超過第 二預(yù)設(shè)時(shí)間仍未收到Barrier分發(fā)包,則中間節(jié)點(diǎn)向其父節(jié)點(diǎn)重發(fā)Barrier 規(guī)約包,重置并啟動(dòng)第二超時(shí)計(jì)數(shù)器;步驟4中,中間節(jié)點(diǎn)收到Barrier分 發(fā)包后,關(guān)閉第二超時(shí)計(jì)數(shù)器,并更新Barrier操作序號(hào)。Barrier規(guī)約包和Barrier分發(fā)包中均包含Barrier操作序號(hào)、Barrier包 禾中類禾B Barrier組號(hào);所述Barrier包種類用于區(qū)分Barrier規(guī)約包和Barrier 分發(fā)包,Barrier組號(hào)用于標(biāo)識(shí)Barrier規(guī)約包和Barrier分發(fā)包所屬的 Barrier組;Barrier操作序號(hào)用于區(qū)分連續(xù)的兩次Barrier操作。中間節(jié)點(diǎn)和根節(jié)點(diǎn)均包括一 Barrier模塊;Barrier模塊包括Barrier管理 子模塊、Barrier控制模塊、信息重組模塊和Barrier調(diào)度模塊;Barrier管理子模塊,用于接收來自管理模塊的配置信息并將配置信息寫 入Barrier組配置寄存器;Barrier控制模塊,用于中間節(jié)點(diǎn)在接收到所有子節(jié)點(diǎn)發(fā)送的Barrier規(guī) 約包后,將Barrier規(guī)約包發(fā)送至其父節(jié)點(diǎn);若所述父節(jié)點(diǎn)為根節(jié)點(diǎn),則其 在接收到所有子節(jié)點(diǎn)發(fā)送的Barrier規(guī)約包后,將Barrier分發(fā)包發(fā)送至其子 節(jié)點(diǎn);若所述父節(jié)點(diǎn)為中間節(jié)點(diǎn),則其在接收到所有子節(jié)點(diǎn)發(fā)送的Barrier 規(guī)約包后,將Barrier規(guī)約包發(fā)送至其父節(jié)點(diǎn);信息重組模塊,用于讀取Barrier規(guī)約包和Barrier分發(fā)包并將其轉(zhuǎn)換 為Barrier事件傳遞給Barrier控制模塊;Barrier調(diào)度模塊,用于調(diào)度多個(gè)Barrier組同時(shí)對(duì)發(fā)送端口的請(qǐng)求;Barrier控制模塊,依據(jù)接收到的Barrier事件進(jìn)行處理。當(dāng)該Barrier事件為接收到與當(dāng)前Barrier操作具有不同序號(hào)的Barrier 規(guī)約包時(shí),Barrier控制模塊重發(fā)包含上一次Barrier操作序號(hào)的Barrier分發(fā) 包;當(dāng)該Barrier事件為接收到與當(dāng)前Barrier操作具有相同序號(hào)的Barrier 規(guī)約包時(shí),Barrier控制模塊記錄發(fā)送Barrier規(guī)約包的子節(jié)點(diǎn);當(dāng)根節(jié)點(diǎn)接 收到所有子節(jié)點(diǎn)發(fā)送的Bairier規(guī)約包,根節(jié)點(diǎn)的Barrier控制模塊改變 Barrier操作序號(hào),進(jìn)入到下一次Barrier同步操作;當(dāng)該Barrier事件為接收到與當(dāng)前Barrier操作具有相同序號(hào)的Barrier分 發(fā)包時(shí),中間節(jié)點(diǎn)的Barrier控制模塊向其子節(jié)點(diǎn)下發(fā)Barrier分發(fā)包,并改 變Barrier操作序號(hào),進(jìn)入到下一次Barrier同步操作;當(dāng)該Barrier事件為接收到與當(dāng)前Barrier操作具有不同序號(hào)的Barrier分 發(fā)包時(shí),中間節(jié)點(diǎn)的Barrier控制模塊不做任何操作。本發(fā)明提供了一種Barrier同步系統(tǒng),包括葉子節(jié)點(diǎn)、中間節(jié)點(diǎn)和根節(jié)點(diǎn), 中間節(jié)點(diǎn)和根節(jié)點(diǎn)均為交換機(jī)節(jié)點(diǎn),葉子節(jié)點(diǎn)為計(jì)算節(jié)點(diǎn),中間節(jié)點(diǎn)還用于 配置其子端口配置寄存器和父端口配置寄存器,根節(jié)點(diǎn)還用于配置其子端口 配置寄存器,以確定一棵Barrier樹中節(jié)點(diǎn)間互連關(guān)系;根節(jié)點(diǎn),用于在接收到其所有子節(jié)點(diǎn)發(fā)送的Barrier規(guī)約包后,向其子 節(jié)點(diǎn)發(fā)送Barrier分發(fā)包;葉子節(jié)點(diǎn),用于在到達(dá)Barrier同步點(diǎn)后,向其父節(jié)點(diǎn)發(fā)送Barrier規(guī)約 包;該葉子節(jié)點(diǎn)接收到Barrier分發(fā)包后繼續(xù)執(zhí)行子任務(wù)代碼;中間節(jié)點(diǎn),用于接收到其所有的子節(jié)點(diǎn)發(fā)送的Barrier規(guī)約包后向其父 節(jié)點(diǎn)發(fā)送Barrier規(guī)約包;中間節(jié)點(diǎn)接收到Barrier分發(fā)包后,向其子節(jié)點(diǎn)發(fā) 送Barrier分發(fā)包。葉子節(jié)點(diǎn)還包括第一超時(shí)計(jì)數(shù)器,用于在發(fā)送Barrier規(guī)約包后進(jìn)行計(jì) 數(shù),在第一超時(shí)計(jì)數(shù)器超過第一預(yù)設(shè)時(shí)間仍未收到Barrier分發(fā)包時(shí),葉子 節(jié)點(diǎn)向其父節(jié)點(diǎn)重發(fā)Barrier規(guī)約包,重置并啟動(dòng)第一超時(shí)計(jì)數(shù)器;葉子節(jié)點(diǎn),還用于在收到Barrier分發(fā)包后,關(guān)閉第一超時(shí)計(jì)數(shù)器,并 更新Barrier操作序號(hào)。中間節(jié)點(diǎn)還包括第二超時(shí)計(jì)數(shù)器,用于在發(fā)送Barrier規(guī)約包后進(jìn)行計(jì) 數(shù),在第二超時(shí)計(jì)數(shù)器超過第二預(yù)設(shè)時(shí)間仍未收到Barrier分發(fā)包時(shí),中間 節(jié)點(diǎn)向其父節(jié)點(diǎn)重發(fā)Barrier規(guī)約包,重置并啟動(dòng)第二超時(shí)計(jì)數(shù)器;中間節(jié)點(diǎn),還用于在收到Barrier分發(fā)包后關(guān)閉第二超時(shí)計(jì)數(shù)器,并更 新Barrier操作序號(hào)。Barrier規(guī)約包和Barrier分發(fā)包中均包含Barrier操作序號(hào)、Barrier包 種類和Barrier組號(hào);所述Barrier包種類用于區(qū)分Barrier規(guī)約包和Barrier 分發(fā)包,Barrier組號(hào)用于標(biāo)識(shí)Barrier規(guī)約包和Barrier分發(fā)包所屬的 Barrier組;Barrier操作序號(hào)用于區(qū)分連續(xù)的兩次Barrier操作。中間節(jié)點(diǎn)和根節(jié)點(diǎn)均包括一 Barrier模塊;Barrier模塊包括Barrier管理 子模塊、Barrier控制模塊、信息重組模塊和Barrier調(diào)度模塊;Barrier管理子模塊,用于接收來自管理模塊的配置信息并將配置信息寫 入Barrier組配置寄存器;Barrier控制模塊,用于中間節(jié)點(diǎn)在接收到所有子節(jié)點(diǎn)發(fā)送的Barrier規(guī) 約包后,將Barrier規(guī)約包發(fā)送至其父節(jié)點(diǎn);若所述父節(jié)點(diǎn)為根節(jié)點(diǎn),則其 在接收到所有子節(jié)點(diǎn)發(fā)送的Barrier規(guī)約包后,將Barrier分發(fā)包發(fā)送至其子 節(jié)點(diǎn);若所述父節(jié)點(diǎn)為中間節(jié)點(diǎn),則其在接收到所有子節(jié)點(diǎn)發(fā)送的Barrier 規(guī)約包后,將Barrier規(guī)約包發(fā)送至其父節(jié)點(diǎn);信息重組模塊,用于讀取Barrier規(guī)約包和Barrier分發(fā)包并將其轉(zhuǎn)換 為Barrier事件傳遞給Barrier控制模塊;Barrier調(diào)度模塊,用于調(diào)度多個(gè)Barrier組同時(shí)對(duì)發(fā)送端口的請(qǐng)求;Barrier控制模塊,依據(jù)接收到的Barrier事件進(jìn)行處理。當(dāng)該Barrier事件為接收到與當(dāng)前Barrier操作具有不同序號(hào)的Barrier 規(guī)約包時(shí),Barrier控制模塊重發(fā)包含上一次Barrier操作序號(hào)的Barrier分發(fā) 包;當(dāng)該Barrier事件為接收到與當(dāng)前Barrier操作具有相同序號(hào)的Barrier 規(guī)約包時(shí),Barrier控制模塊記錄發(fā)送Barrier規(guī)約包的子節(jié)點(diǎn);當(dāng)根節(jié)點(diǎn)接 收到所有子節(jié)點(diǎn)發(fā)送的Barrier規(guī)約包,根節(jié)點(diǎn)的Barrier控制模塊改變 Barrier操作序號(hào),進(jìn)入到下一次Barrier同歩操作;當(dāng)該Barrier事件為接收到與當(dāng)前Barrier操作具有相同序號(hào)的Barrier分 發(fā)包時(shí),中間節(jié)點(diǎn)的Barrier控制模塊向其子節(jié)點(diǎn)下發(fā)Barrier分發(fā)包,并改 變Barrier操作序號(hào),進(jìn)入到下一次Barrier同步操作;當(dāng)該Barrier事件為接收到與當(dāng)前Barrier操作具有不同序號(hào)的Barrier分 發(fā)包時(shí),中間節(jié)點(diǎn)的Barrier控制模塊不做任何操作。本發(fā)明提出了一種簡(jiǎn)單、高效、可靠的Barrier同步系統(tǒng)和方法,相比于傳統(tǒng)的ACK可靠性機(jī)制,在能夠保證Barrier機(jī)制的魯棒性同時(shí),節(jié)省邏輯 資源,并減少Barrier同步操作占用的數(shù)據(jù)網(wǎng)絡(luò)帶寬。本發(fā)明只使用兩種 Barrier包實(shí)現(xiàn)可靠的Barrier操作,只在Barrier樹的葉子節(jié)點(diǎn)和中間節(jié)點(diǎn)各 需要一個(gè)超時(shí)計(jì)數(shù)器,控制狀態(tài)機(jī)只需兩個(gè)狀態(tài),同時(shí)不需要接收緩沖區(qū), 簡(jiǎn)化了邏輯,節(jié)省了硬件開銷。
圖1是本發(fā)明Barrier同步方法及系統(tǒng)的實(shí)施例中Barrier樹形結(jié)構(gòu)示意圖;圖2是本發(fā)明Barrier同步方法的實(shí)施例中計(jì)算節(jié)點(diǎn)Barrier操作流程圖; 圖3是本發(fā)明Barrier同步方法的實(shí)施例中交換機(jī)節(jié)點(diǎn)Barrier操作流程圖;圖4是本發(fā)明Barrier同步方法的實(shí)施例中Combine包出錯(cuò)恢復(fù)流程圖; 圖5是本發(fā)明Barrier同步方法的實(shí)施例中Distribute包出錯(cuò)恢復(fù)流程圖; 圖6是本發(fā)明Barrier同步系統(tǒng)的實(shí)施例中Barrier模塊與其它模塊接口 ; 圖7是圖6中Barrier模塊結(jié)構(gòu)框圖;圖8是本發(fā)明Barrier同歩系統(tǒng)的實(shí)施例中Barrier樹結(jié)構(gòu)信息配置寄存 器示意圖;圖9是本發(fā)明Barrier同步系統(tǒng)的實(shí)施例中Barrier數(shù)據(jù)包格式; 圖10是本發(fā)明Barrier同步系統(tǒng)的實(shí)施例中Barrier操作狀態(tài)機(jī)。
具體實(shí)施方式
本發(fā)明旨在降低Barrier操作時(shí)延,減少硬件實(shí)現(xiàn)Barrier開銷。Barrier 同步操作出錯(cuò)會(huì)給系統(tǒng)正確性帶來嚴(yán)重后果,所以在降低Barrier操作延時(shí)的 同時(shí)也必須保證Barrier操作的可靠性。Barrier同步機(jī)制要能夠保證由于鏈路 不穩(wěn)定引起的Barrier包丟失或出錯(cuò)異常情況下的Barrier操作的正確性。引 入數(shù)據(jù)包確認(rèn)和重傳協(xié)議可達(dá)到此目的。設(shè)計(jì)可靠的Barrier需要考慮以下幾 個(gè)方面 一、可靠性協(xié)議要易于硬件實(shí)現(xiàn),用盡可能少的邏輯資源實(shí)現(xiàn)對(duì)可 靠性的支持;二、可靠性協(xié)議要盡可能少地影響B(tài)arrier執(zhí)行效率;三、可靠性協(xié)議要盡可能避免占用過多的鏈路帶寬。在并行系統(tǒng)中可能存在多棵Barrier樹,用于同時(shí)執(zhí)行可以并行的任務(wù)。每個(gè)節(jié)點(diǎn)可能參與到一棵或多棵 Barrier樹中,為了保證靈活性,Barrier樹的組織結(jié)構(gòu)應(yīng)該能夠被動(dòng)態(tài)配置。在基于交換機(jī)的網(wǎng)絡(luò)中,將交換機(jī)作為Barrier樹形算法的根節(jié)點(diǎn)和中間 節(jié)點(diǎn),將計(jì)算節(jié)點(diǎn)作為Barrier樹的葉子節(jié)點(diǎn),Barrier同步的過程如圖1所示。 在圖1中,計(jì)算節(jié)點(diǎn)P0、 Pl、 P2、 P3、 P4、 P5和交換機(jī)節(jié)點(diǎn)S0、 Sl、 S2 構(gòu)成了 一棵Barrier樹,S2為樹根。在本方法中存在兩類Barrier數(shù)據(jù)包Barrier 規(guī)約包(Combine包)和Barrier分發(fā)包(Distribute包),它們通過Barrier 包中的Type域來區(qū)分。在Combine階段,計(jì)算節(jié)點(diǎn)P0、 Pl、 P2、 P3、 P4、 P5到達(dá)Barrier同步點(diǎn)后向各自的父節(jié)點(diǎn)發(fā)送Combine包,中間節(jié)點(diǎn)SO在接 收到子節(jié)點(diǎn)P0、 Pl、 P2的Combine包后向根節(jié)點(diǎn)S2發(fā)送Combine包,中 間節(jié)點(diǎn)SI在接收到子節(jié)點(diǎn)P3、P4的Combine包后向根節(jié)點(diǎn)S2發(fā)送Combine 包。在根節(jié)點(diǎn)S2接收到子節(jié)點(diǎn)S0、 Sl、 P5的Combine包后,說明所有處在 這棵Barrier樹中的計(jì)算都已近到達(dá)了 Barrier同步點(diǎn),Barrier同步進(jìn)入到 Distribute階段。在Distribute階段,根節(jié)點(diǎn)向子節(jié)點(diǎn)S0、 Sl 、 P5發(fā)送Distribute 包;SO在接收到父節(jié)點(diǎn)S2的Distribute包后,向子節(jié)點(diǎn)P0、 Pl、 P2發(fā)送 Distribute包;Sl在接收到父節(jié)點(diǎn)S2的Distribute包后,向子節(jié)點(diǎn)P3、 P4發(fā) 送Distribute包。當(dāng)所有計(jì)算節(jié)點(diǎn)都接收到Distribute包,這次Barrier同步完 成。對(duì)于由于鏈路不穩(wěn)定導(dǎo)致Barrier包出錯(cuò)或丟失,本發(fā)明提出了一種高效 的可靠性解決方案來保證Barrier操作能夠正確執(zhí)行。本發(fā)明中,首先需要對(duì)Barrier樹進(jìn)行配置,通過配置交換機(jī)的子端口配 置寄存器和父端口配置寄存器,確定一棵Barrier樹中節(jié)點(diǎn)間互連關(guān)系。Barrier 配置寄存器的組織如圖8所示。在一個(gè)交換芯片中可能存在多個(gè)Barrier組, 與交換機(jī)端口相連的每個(gè)節(jié)點(diǎn)可能處于其中一個(gè)或多個(gè)Barrier組中。每個(gè) Barrier組都有單獨(dú)的一組配置寄存器,交換機(jī)的每個(gè)端口在所有Barrier組配 置寄存器中都有相應(yīng)的映射,如果端口 i在Barrier組j中的映射位為1,表 示端口 i屬于該Barrier組j ,否則表示端口 i沒有參加到Barrier組j中。Barrier 組配置寄存器還記錄Root標(biāo)識(shí)和父節(jié)點(diǎn)端口號(hào)。如果Root標(biāo)識(shí)位為l,表 示交換機(jī)作為Barrier樹的根節(jié)點(diǎn),這時(shí)父節(jié)點(diǎn)端口號(hào)寄存器中的內(nèi)容沒有意 義。如果Root標(biāo)識(shí)位為O,表示交換機(jī)作為Barrier樹的中間節(jié)點(diǎn),父節(jié)點(diǎn)端口號(hào)寄存器中記錄了父節(jié)點(diǎn)所連端口的端口號(hào)。圖8中Barrier組配置寄存 器中的內(nèi)容表示交換機(jī)作為Barrier組0的中間節(jié)點(diǎn),父節(jié)點(diǎn)端口號(hào)Parent Port為8,子節(jié)點(diǎn)端口號(hào)PortO、 Port 2、 Portn-2為0、 2、 n-2;交換機(jī)作為 Barrier組1的根節(jié)點(diǎn),子節(jié)點(diǎn)端口號(hào)Portl、 Port2、 Portn-2、 Portn-1為1、 2、 n-2、 n-l。 n為端口總數(shù)。計(jì)算節(jié)點(diǎn)作為Barrier樹中的葉子節(jié)點(diǎn),只需要簡(jiǎn)單地遵循如下規(guī)則即 可計(jì)算節(jié)點(diǎn)在到達(dá)Barrier同步點(diǎn)后,向交換機(jī)節(jié)點(diǎn)發(fā)送Combine數(shù)據(jù)包, 同時(shí)重置并啟動(dòng)超時(shí)計(jì)數(shù)器,如果計(jì)數(shù)器計(jì)數(shù)超過設(shè)定的閾值后仍未收到 Distribute數(shù)據(jù)包,就重發(fā)Combine數(shù)據(jù)包。計(jì)算節(jié)點(diǎn)在接收到來自父節(jié)點(diǎn)的 Distribute包后關(guān)閉超時(shí)計(jì)數(shù)器,繼續(xù)執(zhí)行其它子任務(wù)代碼。該實(shí)施例以計(jì)算 節(jié)點(diǎn)i為例,說明計(jì)算節(jié)點(diǎn)的barrier執(zhí)行過程如圖2所示,包括步驟201,計(jì)算節(jié)點(diǎn)i執(zhí)行子任務(wù)代碼;步驟202,計(jì)算節(jié)點(diǎn)i到達(dá)Barrier同步點(diǎn);步驟203,計(jì)算節(jié)點(diǎn)i向父節(jié)點(diǎn)發(fā)送Combine包,重置并啟動(dòng)超時(shí)計(jì)數(shù)器;步驟204,判斷是否接收到來自父節(jié)點(diǎn)的Distribute包,如果是,執(zhí)行步 驟206,否則執(zhí)行步驟205;步驟205,判斷計(jì)數(shù)器是否超時(shí),如果是,執(zhí)行步驟203,否則執(zhí)行步驟204;步驟206,完成當(dāng)前Barrier操作,更新Barrier序號(hào),關(guān)閉超時(shí)計(jì)數(shù)器, 并重新執(zhí)行步驟201。交換機(jī)節(jié)點(diǎn)作為Barrier樹中的中間節(jié)點(diǎn)和根節(jié)點(diǎn)。在交換芯片中,Barrier 同歩的功能主要由Barrier模塊完成,Barrier模塊與其它模塊的接口如圖6 所示。管理模塊向Barrier模塊寫入Barrier樹配置信息。在一個(gè)交換機(jī)節(jié)點(diǎn) 中,參與到同一棵Barrier樹中的所有端口共同構(gòu)成一個(gè)Barrier組。不同的 Barrier組通過Barrier組號(hào)來標(biāo)識(shí)。對(duì)于每個(gè)交換機(jī),任意一個(gè)通信端口可以 參與到若干個(gè)Barrier組中。交換機(jī)的接收端口模塊在接收到Barrier數(shù)據(jù)包后將Barrier信息寫入 Barrier接收緩沖區(qū),Barrier模塊從Barrier接收緩沖區(qū)中讀取Barrier信息。 特別需要說明的是本方法中接收緩沖區(qū)并不是必須的,接收端口模塊可以直接把Barrier信息發(fā)送到Barrier模塊,這并不影響B(tài)arrier操作的正確性,同 時(shí)能夠達(dá)到進(jìn)一步簡(jiǎn)化設(shè)計(jì)資源的目的。Barrier包格式如圖9所示,接收端口模塊寫入Barrier接收緩沖區(qū)的 Barrier信息包括操作序號(hào)(Seq)、Barrier包種類(Type)和Barrier組號(hào)(Barrier Group ID)。操作序號(hào)(Seq)用于區(qū)分連續(xù)的兩次Barrier操作,Barrier包種 類(Type)用于區(qū)分Combine包和Distribute包,Barrier組號(hào)(Barrier Group ID )用于標(biāo)識(shí)Barrier包所屬的Barrier組。Barrier模塊從Barrier接收緩沖區(qū) 讀取Barrier信息,根據(jù)當(dāng)前Barrier同步進(jìn)行的狀態(tài)向相應(yīng)的發(fā)送端口模塊 發(fā)出Combine包或Distribute包發(fā)送請(qǐng)求。Barrier模塊內(nèi)部包括Barrier管理子模塊、信息重組模塊、Barrier控制模 塊和Barrier調(diào)度模塊,如圖7所示。Barrier管理子模塊用于接收來自管理模塊的Barrier配置信息并將配置 信息寫入Barrier組配置寄存器。信息重組模塊從Barrier接收緩沖區(qū)中讀取Barrier信息并將其轉(zhuǎn)換為 Barrier事件傳遞給Barrier控制模塊。共有4類Barrier事件接收到一個(gè)與 當(dāng)前Barrier操作具有相同序號(hào)的Combine包,接收到一個(gè)與當(dāng)前Barrier操 作具有不同序號(hào)的Combine包,接收到一個(gè)與當(dāng)前Barrier操作具有相同序號(hào) 的Distribute包,接收到一個(gè)與當(dāng)前Barrier操作具有不同序號(hào)的Distribute包。 每一個(gè)接收端口對(duì)應(yīng)一個(gè)信息重組模塊,由于每個(gè)端口可能參與到任意一個(gè) Barrier組中,所以信息重組模塊和所有的Barrier控制模塊都有信號(hào)連接。Barrier控制模塊是整個(gè)Barrier操作控制的核心,每個(gè)Barrier組對(duì)應(yīng)一 個(gè)Barrier控制模塊。Barrier同步的操作狀態(tài)由Barrier狀態(tài)寄存器記錄,初 始化時(shí),Barrier狀態(tài)寄存器中裝載著Barrier組配置寄存器中的子端口信息。 如果某個(gè)端口屬于Barrier組,則該端口在狀態(tài)寄存器中對(duì)應(yīng)的位被初始化為 1,否則初始化為O。 Barrier控制模塊的狀態(tài)機(jī)如圖10所示,Barrier控制模 塊在接收到Combine事件通知后,首先檢査Combine事件序號(hào)與當(dāng)前Barrier 操作序號(hào)是否相同。如果不同,那么說明該端口所連接的節(jié)點(diǎn)沒有收到上一 次完成的Barrier操作分發(fā)的Distribute包,Barrier控制模塊向該節(jié)點(diǎn)重發(fā)與 包含上一次Barrier操作序號(hào)的Distribute包。如果接收到的Combine包序號(hào) 與當(dāng)前Barrier操作序號(hào)相同,那么檢査狀態(tài)寄存器中該端口對(duì)應(yīng)的位是否為1,如果為1就把該位置為0,如果該位為O,那么不作任何操作。對(duì)于根節(jié)點(diǎn)交換機(jī),當(dāng)Barrier操作狀態(tài)寄存器所有位全為O時(shí),表明這次Barrier同 步完成了 , Barrier控制模塊通知Barrier組中所有子端口啟動(dòng)Distribute包發(fā) 送,改變Barrier操作序號(hào),進(jìn)入到下一次Barrier同步操作。對(duì)于中間節(jié)點(diǎn) 交換機(jī),當(dāng)Barrier操作狀態(tài)寄存器所有位全為0時(shí),表明本級(jí)節(jié)點(diǎn)Barrier 同步完成,交換機(jī)向父端口發(fā)送Combine包,啟動(dòng)Distribute等待超時(shí)計(jì)數(shù) 器,交換機(jī)等待父端口發(fā)送的Distribute包。在等待父端口 Distribute包的過 程中,如果計(jì)數(shù)器超時(shí),那么就向父端口重發(fā)Combine包,然后復(fù)位超時(shí)計(jì) 數(shù)器重新計(jì)數(shù)。當(dāng)交換機(jī)接收到父端口發(fā)送的Distribute包后,檢查Distribute 包序號(hào)與當(dāng)前Barrier操作序號(hào)是否相同,如果序號(hào)不同則不進(jìn)行任何操作, 如果序號(hào)相同,那么說明所有Barrier樹中的計(jì)算節(jié)點(diǎn)都己經(jīng)到達(dá)了 Barrier 同步點(diǎn),交換機(jī)向所有子節(jié)點(diǎn)發(fā)送Distribute包,關(guān)閉超時(shí)計(jì)數(shù)器,改變Barrier 操作序號(hào),進(jìn)入到下一次Barrier同步操作。由于可能有多個(gè)Barrier組同時(shí)向一個(gè)發(fā)送端口請(qǐng)求發(fā)送Barrier包,所 以每個(gè)發(fā)送端口都需要有一個(gè)Barrier包發(fā)送調(diào)度模塊來調(diào)度可能同時(shí)出現(xiàn) 的多個(gè)請(qǐng)求。由于Barrier包發(fā)送是稀疏事件,所以調(diào)度模塊只需要采用節(jié)省 硬件資源的固定優(yōu)先級(jí)調(diào)度策略即可。交換機(jī)節(jié)點(diǎn)Barrier執(zhí)行過程如圖3所示,包括步驟301,等待子節(jié)點(diǎn)Combine數(shù)據(jù)包;步驟302,接收到子節(jié)點(diǎn)i的Combine包;歩驟303,判斷接收到的Combine包序號(hào)是否與當(dāng)前Barrier操作序號(hào)相 同,如果是,執(zhí)行步驟305,否則執(zhí)行步驟304;歩驟304,向子節(jié)點(diǎn)i重發(fā)包含上次Barrier操作序號(hào)的Distribute包,繼 續(xù)等待子節(jié)點(diǎn)Combine數(shù)據(jù)包;步驟305,判斷是否接收到所有子節(jié)點(diǎn)Combine包,如果是,執(zhí)行步驟 306,否則繼續(xù)判斷是否接收到所有子節(jié)點(diǎn)Combine包;步驟306,判斷本級(jí)節(jié)點(diǎn)是否為根節(jié)點(diǎn),如果是,執(zhí)行步驟307,否則執(zhí) 行步驟308;步驟307,向所有子節(jié)點(diǎn)發(fā)送Distribute包,改變Barrier操作序號(hào),進(jìn) 入至lj下-一次Barrier同步;歩驟308,向父節(jié)點(diǎn)發(fā)送Combine包,重置并啟動(dòng)超時(shí)計(jì)數(shù)器; 步驟309,判斷是否接收到父節(jié)點(diǎn)Distribute包,如果是,執(zhí)行步驟311, 否則執(zhí)行步驟310;步驟310,判斷計(jì)數(shù)器是否超時(shí),如果是,執(zhí)行步驟308,否則執(zhí)行步驟309;步驟311,關(guān)閉超時(shí)計(jì)數(shù)器,向所有子節(jié)點(diǎn)發(fā)送Distribute包,改變Barrier 操作序號(hào),進(jìn)入到下一次Barrier操作。Barrier操作可能出現(xiàn)的可靠性問題有以下兩種一、Combine包丟失或 出錯(cuò);二、 Distribute包丟失或出錯(cuò)。第一種錯(cuò)誤的恢復(fù)流程如圖4所示,如 果子節(jié)點(diǎn)i向父節(jié)點(diǎn)發(fā)送的Combine包丟失或出錯(cuò),那么父節(jié)點(diǎn)由于沒有收 到子節(jié)點(diǎn)i的Combine信息而無法完成Barrier同步,從而父節(jié)點(diǎn)不會(huì)向子節(jié) 點(diǎn)i發(fā)送Distribute包。子節(jié)點(diǎn)i由于沒有收到Distribute包,最終計(jì)數(shù)器超 時(shí),子節(jié)點(diǎn)i向父節(jié)點(diǎn)重發(fā)Combine包。在父節(jié)點(diǎn)接收到子節(jié)點(diǎn)重發(fā)的 Combine后,進(jìn)入到正常的Barrier同步操作。具體包括步驟401,判斷子節(jié)點(diǎn)i發(fā)送的Combine包丟失或出錯(cuò),如果是,執(zhí)行 歩驟403,否則執(zhí)行步驟402;步驟402,進(jìn)入到正常的Barrier同步操作;步驟403,父節(jié)點(diǎn)由于沒有接收到子節(jié)點(diǎn)i的Combine信息而無法完成 Barrier同步,父節(jié)點(diǎn)不會(huì)向子節(jié)點(diǎn)發(fā)送Distribute包;步驟404,子節(jié)點(diǎn)i沒有接收到Distribute包,計(jì)數(shù)器超時(shí),子節(jié)點(diǎn)i向 父節(jié)點(diǎn)重發(fā)Combine包,并執(zhí)行歩驟401。第二種錯(cuò)誤的恢復(fù)流程如圖5所示,當(dāng)Barrier同步完成以后,父節(jié)點(diǎn)向 所有子節(jié)點(diǎn)分發(fā)Distribute包,改變Barrier操作序號(hào),進(jìn)入到下一次Barrier 操作。如果發(fā)向子節(jié)點(diǎn)i的Distribute包丟失或出錯(cuò),那么子節(jié)點(diǎn)i中的計(jì)數(shù) 器最終會(huì)因?yàn)闆]有收到Distribute包而超時(shí),子節(jié)點(diǎn)i向父節(jié)點(diǎn)重發(fā)包含上次 Barrier操作序號(hào)的Combine包。父節(jié)點(diǎn)在接收到子節(jié)點(diǎn)i發(fā)送的與當(dāng)前Barrier 操作序號(hào)不同的Combine包后,向子節(jié)點(diǎn)i重發(fā)包含上一次Barrier操作序號(hào) 的Distribute包。子節(jié)點(diǎn)i在接收到重發(fā)的Distribute包后進(jìn)入到正常的Barrier 同步操作。具體包括步驟501, Barrier同步完成,父節(jié)點(diǎn)向所有子節(jié)點(diǎn)發(fā)送Distribute包,改變Barrier操作序號(hào),進(jìn)入到下一次Barrier操作;步驟502,判斷發(fā)向子節(jié)點(diǎn)i的Distribute包丟失或出錯(cuò),如果是,執(zhí)行 歩驟504,否則執(zhí)行步驟503;步驟503,子節(jié)點(diǎn)i進(jìn)入到正常的下一次Barrier同歩操作;步驟504,子節(jié)點(diǎn)i沒有接收Distribute包,最終計(jì)數(shù)器超時(shí),子節(jié)點(diǎn)i 向父節(jié)點(diǎn)重發(fā)Combine包;步驟505,父節(jié)點(diǎn)接收到來自子節(jié)點(diǎn)i的Combine包的序號(hào)與當(dāng)前Barrier 操作序號(hào)不同,父節(jié)點(diǎn)向子節(jié)點(diǎn)i重發(fā)包含上次Barrier操作序號(hào)的Distribute 包,并執(zhí)行步驟502。為了保證Barrier操作的可靠性,在Barrier樹形算法的葉子節(jié)點(diǎn)和中間 節(jié)點(diǎn)都引入了超時(shí)重傳機(jī)制,超時(shí)計(jì)數(shù)器計(jì)數(shù)超過設(shè)定的閾值后,子節(jié)點(diǎn)就 向父節(jié)點(diǎn)重傳Combine包。為了保證Barrier執(zhí)行效率,在Barrier包出錯(cuò)后 要盡快重傳Combine包,需要計(jì)數(shù)器超時(shí)閾值盡可能低;為了防止在等待其 它計(jì)算節(jié)點(diǎn)到達(dá)Barrier同步點(diǎn)的過程中,因過多地重發(fā)Combine包而造成鏈 路帶寬浪費(fèi),需要計(jì)數(shù)器超時(shí)閾值盡可能高。為了解決這對(duì)矛盾,可以動(dòng)態(tài) 調(diào)整超時(shí)計(jì)數(shù)器的閾值。首先根據(jù)當(dāng)前鏈路的狀態(tài)設(shè)置-個(gè)初始超時(shí)閾值, 鏈路出錯(cuò)率越低,那么初始閾值越高;反之,初始閾值越低。每次計(jì)數(shù)器超 時(shí)后,都增加超時(shí)計(jì)數(shù)器超時(shí)的閾值。本發(fā)明提出的可靠Barrier同步實(shí)現(xiàn)方 案在理想情況下不會(huì)給鏈路帶來額外的數(shù)據(jù)量。本領(lǐng)域的技術(shù)人員在不脫離權(quán)利要求書確定的本發(fā)明的精神和范圍的條 件下,還可以對(duì)以上內(nèi)容進(jìn)行各種各樣的修改。因此本發(fā)明的范圍并不僅限 于以上的說明,而是由權(quán)利要求書的范圍來確定的。1權(quán)利要求
1.一種柵障同步方法,其特征在于,包括步驟1,配置中間節(jié)點(diǎn)的子端口配置寄存器和父端口配置寄存器,以及根節(jié)點(diǎn)的子端口配置寄存器,以確定一棵柵障樹中節(jié)點(diǎn)間互連關(guān)系;中間節(jié)點(diǎn)和根節(jié)點(diǎn)均為交換機(jī)節(jié)點(diǎn);步驟2,葉子節(jié)點(diǎn)在到達(dá)柵障同步點(diǎn)后,向其父節(jié)點(diǎn)發(fā)送柵障規(guī)約包;葉子節(jié)點(diǎn)為計(jì)算節(jié)點(diǎn);步驟3,中間節(jié)點(diǎn)接收到其所有的子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包后,向其父節(jié)點(diǎn)發(fā)送柵障規(guī)約包;根節(jié)點(diǎn)在接收到其所有子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包后,向其子節(jié)點(diǎn)發(fā)送柵障分發(fā)包;步驟4,中間節(jié)點(diǎn)接收到柵障分發(fā)包后,向其子節(jié)點(diǎn)發(fā)送柵障分發(fā)包;葉子節(jié)點(diǎn)在接收到柵障分發(fā)包后,繼續(xù)執(zhí)行子任務(wù)代碼。
2. 如權(quán)利要求1所述的柵障同步方法,其特征在于,步驟2中,葉子節(jié) 點(diǎn)還啟動(dòng)第一超時(shí)計(jì)數(shù)器,若第一超時(shí)計(jì)數(shù)器超過第一預(yù)設(shè)時(shí)間仍未收到柵 障分發(fā)包,則葉子節(jié)點(diǎn)向其父節(jié)點(diǎn)重發(fā)柵障規(guī)約包,重置并啟動(dòng)第一超時(shí)計(jì) 數(shù)器;步驟4中,葉子節(jié)點(diǎn)收到柵障分發(fā)包后,關(guān)閉第一超時(shí)計(jì)數(shù)器,并更 新柵障操作序號(hào)。
3. 如權(quán)利要求1所述的柵障同步方法,其特征在于,步驟3中,中間節(jié) 點(diǎn)還啟動(dòng)第二超時(shí)計(jì)數(shù)器,若第二超時(shí)計(jì)數(shù)器超過第二預(yù)設(shè)時(shí)間仍未收到柵 障分發(fā)包,則中間節(jié)點(diǎn)向其父節(jié)點(diǎn)重發(fā)柵障規(guī)約包,重置并啟動(dòng)第二超時(shí)計(jì) 數(shù)器;步驟4中,中間節(jié)點(diǎn)收到柵障分發(fā)包后,關(guān)閉第二超時(shí)計(jì)數(shù)器,并更 新柵障操作序號(hào)。
4. 如權(quán)利要求1所述的柵障同步方法,其特征在于,柵障規(guī)約包和柵障 分發(fā)包中均包含柵障操作序號(hào)、柵障包種類和柵障組號(hào);所述柵障包種類用 于區(qū)分柵障規(guī)約包和柵障分發(fā)包,柵障組號(hào)用于標(biāo)識(shí)柵障規(guī)約包和柵障分發(fā) 包所屬的柵障組;柵障操作序號(hào)用于區(qū)分連續(xù)的兩次柵障操作。
5. 如權(quán)利要求4所述的柵障同步方法,其特征在于,中間節(jié)點(diǎn)和根節(jié)點(diǎn) 均包括一柵障模塊;柵障模塊包括柵障管理子模塊、柵障控制模塊、信息重 組模塊和柵障調(diào)度模塊;柵障管理子模塊,用于接收來自管理模塊的配置信息并將配置信息寫入柵障組配置寄存器;柵障控制模塊,用于中間節(jié)點(diǎn)在接收到所有子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包后,將柵障規(guī)約包發(fā)送至其父節(jié)點(diǎn);若所述父節(jié)點(diǎn)為根節(jié)點(diǎn),則其在接收到所有 子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包后,將柵障分發(fā)包發(fā)送至其子節(jié)點(diǎn);若所述父節(jié)點(diǎn) 為中間節(jié)點(diǎn),則其在接收到所有子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包后,將柵障規(guī)約包 發(fā)送至其父節(jié)點(diǎn);信息重組模塊,用于讀取柵障規(guī)約包和柵障分發(fā)包并將其轉(zhuǎn)換為柵障事 件傳遞給柵障控制模塊;柵障調(diào)度模塊,用于調(diào)度多個(gè)柵障組同時(shí)對(duì)發(fā)送端口的請(qǐng)求; 柵障控制模塊,依據(jù)接收到的柵障事件進(jìn)行處理。
6. 如權(quán)利要求5所述的柵障同步方法,其特征在于,當(dāng)該柵障事件為接收到與當(dāng)前柵障操作具有不同序號(hào)的柵障規(guī)約包時(shí), 柵障控制模塊重發(fā)包含上一次柵障操作序號(hào)的柵障分發(fā)包;當(dāng)該柵障事件為接收到與當(dāng)前柵障操作具有相同序號(hào)的柵障規(guī)約包時(shí), 柵障控制模塊記錄發(fā)送柵障規(guī)約包的子節(jié)點(diǎn);當(dāng)根節(jié)點(diǎn)接收到所有子節(jié)點(diǎn)發(fā) 送的柵障規(guī)約包,根節(jié)點(diǎn)的柵障控制模塊改變柵障操作序號(hào),進(jìn)入到下一次 柵障同步操作;當(dāng)該柵障事件為接收到與當(dāng)前柵障操作具有相同序號(hào)的柵障分發(fā)包時(shí), 中間節(jié)點(diǎn)的柵障控制模塊向其子節(jié)點(diǎn)下發(fā)柵障分發(fā)包,并改變柵障操作序號(hào), 進(jìn)入到下一次柵障同步操作;當(dāng)該柵障事件為接收到與當(dāng)前柵障操作具有不同序號(hào)的柵障分發(fā)包時(shí), 中間節(jié)點(diǎn)的柵障控制模塊不做任何操作。
7. —種柵障同步系統(tǒng),包括葉子節(jié)點(diǎn)、中間節(jié)點(diǎn)和根節(jié)點(diǎn),中間節(jié)點(diǎn)和 根節(jié)點(diǎn)均為交換機(jī)節(jié)點(diǎn),葉子節(jié)點(diǎn)為計(jì)算節(jié)點(diǎn),其特征在于,中間節(jié)點(diǎn)還用 于配置其子端口配置寄存器和父端口配置寄存器,根節(jié)點(diǎn)還用于配置其子端 口配置寄存器,以確定一棵柵障樹中節(jié)點(diǎn)間互連關(guān)系;根節(jié)點(diǎn),用于在接收到其所有子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包后,向其子節(jié)點(diǎn) 發(fā)送柵障分發(fā)包;葉子節(jié)點(diǎn),用于在到達(dá)柵障同步點(diǎn)后,向其父節(jié)點(diǎn)發(fā)送柵障規(guī)約包;該葉子節(jié)點(diǎn)接收到柵障分發(fā)包后繼續(xù)執(zhí)行子任務(wù)代碼;中間節(jié)點(diǎn),用于中間節(jié)點(diǎn)接收到其所有的子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包后向該中間節(jié)點(diǎn)的父節(jié)點(diǎn)發(fā)送柵障規(guī)約包;中間節(jié)點(diǎn)接收到柵障分發(fā)包后,向其 子節(jié)點(diǎn)發(fā)送柵障分發(fā)包。
8. 如權(quán)利要求7所述的柵障同步系統(tǒng),其特征在于,葉子節(jié)點(diǎn)還包括第 一超時(shí)計(jì)數(shù)器,用于在發(fā)送柵障規(guī)約包后進(jìn)行計(jì)數(shù),在第一超時(shí)計(jì)數(shù)器超過 第一預(yù)設(shè)時(shí)間仍未收到柵障分發(fā)包時(shí),葉子節(jié)點(diǎn)向其父節(jié)點(diǎn)重發(fā)柵障規(guī)約包, 重置并啟動(dòng)第一超時(shí)計(jì)數(shù)器;葉子節(jié)點(diǎn),還用于在收到柵障分發(fā)包后,關(guān)閉第一超時(shí)計(jì)數(shù)器,并更新 柵障操作序號(hào)。
9. 如權(quán)利要求7所述的柵障同步系統(tǒng),其特征在于,中間節(jié)點(diǎn)還包括第 二超時(shí)計(jì)數(shù)器,用于在發(fā)送柵障規(guī)約包后進(jìn)行計(jì)數(shù),在第二超時(shí)計(jì)數(shù)器超過 第二預(yù)設(shè)時(shí)間仍未收到柵障分發(fā)包時(shí),中間節(jié)點(diǎn)向其父節(jié)點(diǎn)重發(fā)柵障規(guī)約包, 重置并啟動(dòng)第二超時(shí)計(jì)數(shù)器;中間節(jié)點(diǎn),還用于在收到柵障分發(fā)包后關(guān)閉第二超時(shí)計(jì)數(shù)器,并更新柵 障操作序號(hào)。
10. 如權(quán)利要求7所述的柵障同步系統(tǒng),其特征在于,柵障規(guī)約包和柵 障分發(fā)包中均包含柵障操作序號(hào)、柵障包種類和柵障組號(hào);所述柵障包種類 用于區(qū)分柵障規(guī)約包和柵障分發(fā)包,柵障組號(hào)用于標(biāo)識(shí)柵障規(guī)約包和柵障分 發(fā)包所屬的柵障組;柵障操作序號(hào)用于區(qū)分連續(xù)的兩次柵障操作。
11. 如權(quán)利要求10所述的柵障同步系統(tǒng),其特征在于,中間節(jié)點(diǎn)和根節(jié) 點(diǎn)均包括一柵障模塊;柵障模塊包括柵障管理子模塊、柵障控制模塊、信息 重組模塊和柵障調(diào)度模塊;柵障管理子模塊,用于接收來自管理模塊的配置信息并將配置信息寫入 柵障組配置寄存器;柵障控制模塊,用于中間節(jié)點(diǎn)在接收到所有子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包后, 將柵障規(guī)約包發(fā)送至其父節(jié)點(diǎn);若所述父節(jié)點(diǎn)為根節(jié)點(diǎn),則其在接收到所有 子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包后,將柵障分發(fā)包發(fā)送至其子節(jié)點(diǎn);若所述父節(jié)點(diǎn) 為中間節(jié)點(diǎn),則其在接收到所有子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包后,將柵障規(guī)約包 發(fā)送至其父節(jié)點(diǎn);信息重組模塊,用于讀取柵障規(guī)約包和柵障分發(fā)包并將其轉(zhuǎn)換為柵障事件傳遞給柵障控制模塊;柵障調(diào)度模塊,用于調(diào)度多個(gè)柵障組同時(shí)對(duì)發(fā)送端口的請(qǐng)求;柵障控制模塊,依據(jù)接收到的柵障事件進(jìn)行處理。
12.如權(quán)利要求ll所述的柵障同步系統(tǒng),其特征在于,當(dāng)該柵障事件為接收到與當(dāng)前柵障操作具有不同序號(hào)的柵障規(guī)約包時(shí),柵障控制模塊重發(fā)包含上一次柵障操作序號(hào)的柵障分發(fā)包;當(dāng)該柵障事件為接收到與當(dāng)前柵障操作具有相同序號(hào)的柵障規(guī)約包時(shí),柵障控制模塊記錄發(fā)送柵障規(guī)約包的子節(jié)點(diǎn);當(dāng)根節(jié)點(diǎn)接收到所有子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包,根節(jié)點(diǎn)的柵障控制模塊改變柵障操作序號(hào),進(jìn)入到下一次柵障同歩操作;當(dāng)該柵障事件為接收到與當(dāng)前柵障操作具有相同序號(hào)的柵障分發(fā)包時(shí), 中間節(jié)點(diǎn)的柵障控制模塊向其子節(jié)點(diǎn)下發(fā)柵障分發(fā)包,并改變柵障操作序號(hào), 進(jìn)入到下一次柵障同步操作;當(dāng)該柵障事件為接收到與當(dāng)前柵障操作具有不同序號(hào)的柵障分發(fā)包時(shí), 中間節(jié)點(diǎn)的柵障控制模塊不做任何操作。
全文摘要
本發(fā)明涉及一種柵障同步方法及系統(tǒng)。該方法包括配置中間節(jié)點(diǎn)的子端口配置寄存器和父端口配置寄存器,以及根節(jié)點(diǎn)的子端口配置寄存器,以確定一棵柵障樹中節(jié)點(diǎn)間互連關(guān)系;葉子節(jié)點(diǎn)在到達(dá)柵障同步點(diǎn)后,向其父節(jié)點(diǎn)發(fā)送柵障規(guī)約包;中間節(jié)點(diǎn)接收到其所有的葉子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包后,向其父節(jié)點(diǎn)發(fā)送柵障規(guī)約包;根節(jié)點(diǎn)在接收到其所有子節(jié)點(diǎn)發(fā)送的柵障規(guī)約包后,向其子節(jié)點(diǎn)發(fā)送柵障分發(fā)包;中間節(jié)點(diǎn)接收到柵障分發(fā)包后,向其子節(jié)點(diǎn)發(fā)送柵障分發(fā)包;葉子節(jié)點(diǎn)在接收到柵障分發(fā)包后,繼續(xù)執(zhí)行子任務(wù)代碼。本發(fā)明能夠節(jié)省硬件邏輯資源,并能減少柵障同步操作占用的帶寬。
文檔編號(hào)H04J3/06GK101330341SQ20081011759
公開日2008年12月24日 申請(qǐng)日期2008年8月1日 優(yōu)先權(quán)日2008年8月1日
發(fā)明者安學(xué)軍, 王達(dá)偉, 濤 胡 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所