本發(fā)明涉及片上網絡領域,特別是涉及一種基于2D mesh網絡的路由多播方法及系統(tǒng)。
背景技術:
2D mesh網絡是片上網絡中應用最為廣泛的一種網絡結構,其優(yōu)點在于網絡具有很強的對稱性和可擴展能力,路由算法簡單易于分析和實現(xiàn)。
鑒于2D mesh網絡的諸多優(yōu)點和廣泛應用基礎,這種網絡結構被應用于神經形態(tài)計算領域。傳統(tǒng)的在2D mesh網絡中進行路由多播方法是在路由包中配置多播路由信息,這對于一個路由節(jié)點與多個神經形態(tài)處理單元連接的2D mesh網絡來說,每個神經形態(tài)處理單元在產生一個路由包時都需要在該路由包中配置相應的多播路由信息,這種實現(xiàn)路由包多播的方式不僅繁瑣,且增加了每個路由包含有的信息,路由包在網絡資源中路由時對網絡資源的占用較高,不利于網絡資源的有效利用。
技術實現(xiàn)要素:
基于此,有必要針對傳統(tǒng)的路由包多播方式不僅繁瑣而且對網絡資源占用較高的問題,提供一種簡便且降低多播過程對網絡資源占用的基于2D mesh網絡的路由多播方法及系統(tǒng)。
為達到發(fā)明目的,提供一種基于2D mesh網絡的路由多播方法,所述方法包括:
在多播路由節(jié)點接收到路由包后,提取所述多播路由節(jié)點自身存儲的多播控制信息和多播步長信息;
在所述多播控制信息有效時,提取所述多播控制信息中的多播方向信息,并獲取所述多播路由節(jié)點的當前節(jié)點地址;
根據所述當前節(jié)點地址以及所述多播方向信息和所述多播步長信息確定所述路由包將要路由至的目標路由節(jié)點的目標節(jié)點地址,并根據所述目標節(jié)點地址將所述路由包路由至所述目標路由節(jié)點。
在其中一個實施例中,所述在多播路由節(jié)點接收到路由包后,還包括:
獲取所述路由包的有效數據,并將所述有效數據發(fā)送給與所述多播路由節(jié)點連接的神經形態(tài)處理單元。
在其中一個實施例中,所述在所述多播控制信息有效時,提取所述多播控制信息中的多播方向信息,并獲取所述多播路由節(jié)點的當前節(jié)點地址的步驟包括:
由所述多播控制信息中提取多播使能信息,并判斷所述多播使能信息是否有效;
若是,則判斷所述多播步長信息是否存在有效的多播步長,并在存在有效的多播步長時,提取所述多播控制信息中的多播方向信息及獲取所述多播路由節(jié)點的當前節(jié)點地址;
若否,則控制所述路由包結束路由。
在其中一個實施例中,所述根據所述目標節(jié)點地址將所述路由包路由至所述目標路由節(jié)點的步驟包括:
判斷所述路由包當前路由至的第一路由節(jié)點的第一節(jié)點地址是否為所述目標節(jié)點地址;
若是,則判定所述第一路由節(jié)點為所述目標路由節(jié)點,將所述路由包中的有效數據發(fā)送給與所述目標路由節(jié)點連接的神經形態(tài)處理單元,并判斷所述目標路由節(jié)點中是否配置了所述多播控制信息和所述多播步長信息;若是,則確定所述目標路由節(jié)點為多播路由節(jié)點,并提取所述多播路由節(jié)點存儲的所述多播控制信息和所述多播步長信息;若否,則控制所述路由包結束路由;
若否,則控制所述路由包通過所述2D mesh網絡繼續(xù)路由,直至路由至所述目標路由節(jié)點。
在其中一個實施例中,從相同的所述多播路由節(jié)點路由的所有路由包具有相同的目標節(jié)點地址。
本發(fā)明還提供一種基于2D mesh網絡的路由多播系統(tǒng),所述系統(tǒng)包括:
提取模塊,用于在多播路由節(jié)點接收到路由包后,提取所述多播路由節(jié)點自身存儲的多播控制信息和多播步長信息;
獲取模塊,用于在所述多播控制信息有效時,提取所述多播控制信息中的多播方向信息,并獲取所述多播路由節(jié)點的當前節(jié)點地址;
確定模塊,用于根據所述當前節(jié)點地址以及所述多播方向信息和所述多播步長信息確定所述路由包將要路由至的目標路由節(jié)點的目標節(jié)點地址,并根據所述目標節(jié)點地址將所述路由包路由至所述目標路由節(jié)點。
在其中一個實施例中,還包括:
發(fā)送模塊,用于在多播路由節(jié)點接收到路由包后,獲取所述路由包的有效數據,并將所述有效數據發(fā)送給與所述多播路由節(jié)點連接的神經形態(tài)處理單元。
在其中一個實施例中,所述獲取模塊包括:
第一判斷單元,用于由所述多播控制信息中提取多播使能信息,并判斷所述多播使能信息是否有效;若是,則進入第二判斷單元;若否,則進入第一控制單元;
所述第二判斷單元,用于判斷所述多播步長信息是否存在有效的多播步長,并在存在有效的多播步長時,提取所述多播控制信息中的多播方向信息及獲取所述多播路由節(jié)點的當前節(jié)點地址;
所述第一控制單元,用于控制所述路由包結束路由。
在其中一個實施例中,所述確定模塊包括:
第三判斷單元,用于判斷所述路由包當前路由至的第一路由節(jié)點的第一節(jié)點地址是否為所述目標節(jié)點地址;若是,則進入發(fā)送判斷單元;若否,則進入第二控制單元;
所述發(fā)送判斷單元,用于將所述路由包中的有效數據發(fā)送給與所述目標路由節(jié)點連接的神經形態(tài)處理單元,并判斷所述目標路由節(jié)點中是否配置了所述多播控制信息和所述多播步長信息;若是,則確定所述目標路由節(jié)點為多播路由節(jié)點,并提取所述多播路由節(jié)點存儲的所述多播控制信息和所述多播步長信息;若否,則控制所述路由包結束路由;
所述第二控制單元,用于控制所述路由包通過所述2D mesh網絡繼續(xù)路由,直至路由至所述目標路由節(jié)點。
在其中一個實施例中,從相同的所述多播路由節(jié)點路由的所有路由包具有相同的目標節(jié)點地址。
本發(fā)明的有益效果包括:
上述基于2D mesh網絡的路由多播方法及系統(tǒng),將路由包進行路由多播過程的多播控制信息和多播步長信息存儲在2D mesh網絡中的路由節(jié)點中,這樣當存儲有多播控制信息和多播步長信息的路由節(jié)點接收到路由包后,所有以該路由節(jié)點進行路由的路由包均會被多播,而無需在路由包中與多播過程相關的信息,這樣可以減少路由包中包含的信息,能夠有效提高路由包進行多播路由時的效率,降低多播過程對2D mesh網絡資源的占用,提高2D mesh網絡資源的利用率。同時,對于一個路由節(jié)點與多個神經形態(tài)處理單元連接的2D mesh網絡,無需在每個路由包生成時都為之配置相應的多播路由信息也能夠完成相應的多播過程,可以簡單地實現(xiàn)以路由節(jié)點為單位的路由包中有效數據的復制,多播過程簡單方便。
附圖說明
圖1為一個實施例中的2D mesh網絡的串行路由多播方法的流程示意圖;
圖2為一個實施例中的圖1中步驟S200的流程示意圖;
圖3為一個實施例中的圖1中步驟S300的流程示意圖;
圖4為一個實施例中的2D mesh網絡中路由節(jié)點排列示意圖;
圖5為實施例一中的基于2D mesh網絡的路由多播的過程示意圖;
圖6為實施例二中的基于2D mesh網絡的路由多播的過程示意圖;
圖7為一個實施例中基于2D mesh網絡的路由多播系統(tǒng)的結構示意圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例對本發(fā)明2D mesh網絡的串行路由多播方法及系統(tǒng)進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
在一個實施例中,如圖1所示,提供了一種2D mesh網絡的串行路由多播方法,該方法包括以下步驟:
S100,在多播路由節(jié)點接收到路由包后,提取多播路由節(jié)點自身存儲的多播控制信息和多播步長信息。
S200,在多播控制信息有效時,提取多播控制信息中的多播方向信息,并獲取多播路由節(jié)點的當前節(jié)點地址。
S300,根據當前地址信息以及多播方向信息和多播步長信息確定路由包將要路由至的目標路由節(jié)點的目標節(jié)點地址,并根據目標節(jié)點地址將路由包路由至目標路由節(jié)點。
本實施例中,將路由包進行路由多播過程的多播控制信息和多播步長信息存儲在2D mesh網絡中的路由節(jié)點中,這樣當存儲有多播控制信息和多播步長信息的路由節(jié)點(多播路由節(jié)點)接收到路由包后,所有以該路由節(jié)點進行路由的路由包均會被多播,相當于多播過程以路由節(jié)點為單位進行,而無需在路由包中分配存儲多播控制信息和多播步長信息的存儲區(qū)域,即路由包中只有神經形態(tài)處理單元生成的有效數據信息,而不含有與多播過程相關的信息,這樣可以減少路由包中包含的信息,能夠有效提高路由包進行多播路由時的效率,降低多播過程對2D mesh網絡資源的占用,提高2D mesh網絡資源的利用率。同時,對于一個路由節(jié)點與多個神經形態(tài)處理單元連接的2D mesh網絡,無需在每個路由包生成時都為之配置相應的多播路由信息也能夠完成相應的多播過程,可以簡單地實現(xiàn)以路由節(jié)點為單位的路由包中有效數據的復制,多播過程簡單方便。
其中,需要說明的是,2D mesh網絡中可以全部路由節(jié)點中都配置多播控制信息和多播步長信息,也可以部分路由節(jié)點中配置多播控制信息和多播步長信息。在一個實施例中,多播控制信息和多播步長信息存儲在于路由節(jié)點連接的存儲單元中。優(yōu)選的,該存儲單元包括存儲多播控制信息的第一存儲單元和存儲多播步長信息的第二存儲單元。將多播控制信息和多播步長信息分別存儲在兩個存儲單元,可以減少獲取多播控制信息和多播步長信息時在同一存儲單元查找的過程,提高多播控制信息和多播步長信息的獲取效率,從而提高路由包的多播路由效率。上述第一存儲單元和第二存儲單元可以為寄存器、內存或硬盤,優(yōu)選的,存儲單元為寄存器,寄存器的讀寫效率較快,可以進一步提高多播路由的效率。
值得說明的是,路由包在進行多播路由時,默認每次只進行一個步長的路由,因此,可以在得知路由包當前所在的路由節(jié)點的當前節(jié)點地址及多播方向信息和多播步長信息之后確認該路由包將要路由至的路由節(jié)點的目標節(jié)點地址。其中,這里的一個多播步長可表示一個路由節(jié)點間的距離,也可表示多個路由節(jié)點的距離,每一個多播步長表示的路由節(jié)點的距離可預先根據需要設定。
在一個實施例中,在多播路由節(jié)點接收到路由包后,還包括:
S100′,獲取路由包的有效數據,并將有效數據發(fā)送給與多播路由節(jié)點連接的神經形態(tài)處理單元。
在2D mesh網絡中,只要路由包路由至目標路由節(jié)點,都將該路由包發(fā)送給相應的神經形態(tài)處理單元,從而實現(xiàn)相應的神經形態(tài)處理單元對路由包中的有效數據進行分析處理,完成相應的功能。
在一個實施例中,參見圖2,步驟S200包括:
S210,由多播控制信息中提取多播使能信息,并判斷多播使能信息是否有效;若是,則執(zhí)行步驟S220;若否,則執(zhí)行步驟S230。
S220,判斷多播步長信息是否存在有效的多播步長,若是,則執(zhí)行步驟S221;若否,則執(zhí)行步驟S230。
S221,提取多播控制信息中的多播方向信息及獲取多播路由節(jié)點的當前節(jié)點地址。
S230,控制路由包結束路由。
本實施例中是步驟S200的一個具體實施例,在本實施例中,路由節(jié)點是否進行多播過程由多播控制信息和多播步長信息共同決定,在多播控制信息和多播步長信息同時有效時,路由節(jié)點才能進行多播過程。
具體地,在一個實施例中,配置多播控制信息A占用的存儲空間為2bit(比特,描述電腦數據量的最小單位),多播步長信息B占用的存儲空間為8bit。當多播控制信息A的值為00或11時,多播控制信息無效,表示無多播,路由包路由至該路由節(jié)點時不進行多播過程,即路由包達到該路由節(jié)點后路由結束;當多播控制信息A的值為01時,多播控制信息有效,表示該路由節(jié)點被配置為多播路由節(jié)點,即路由包到達該路由節(jié)點后還需進行多播過程,并且多播方向為X方向;當多播控制信息A的值為10時,多播控制信息有效,表示該路由節(jié)點被配置為多播路由節(jié)點,即路由包到達該路由節(jié)點后還需要進行多播過程,并且多播方向為Y方向。
當確定多播控制信息有效時,即獲得的多播控制信息為10和01時,到達該路由節(jié)點的路由包需要進行多播,此時需要進一步的獲取該路由節(jié)點的多播步長信息來確定路由包的目標節(jié)點地址。當多播步長信息B的值為0時,多播步長信息中不存在有效的多播步長,此時多播仍無效,該路由節(jié)點不進行多播;當多播步長信息B的值為非零時,根據多播步長信息中的多播步長和多播方向信息中的多播方向確定路由包將要路由至的目標路由節(jié)點。
其中,上述實施例中配置多播控制信息A的值為00或11時,表示無多播,這里只是為了便于說明,并不用于限定。在其他的實施例中,也可配置多播控制信息A的值為00時,表示無多播,多播控制信息A的值為11表示有多播過程,且多播的方向為同時向X和Y方向。
優(yōu)選地,在一個實施例中,從相同的多播路由節(jié)點路由的所有路由包具有相同的目標節(jié)點地址。即某一路由節(jié)點配置好多播路由信息之后,通常不隨意變動,所有以該多播路由節(jié)點發(fā)送的路由包將要路由至的目標路由節(jié)點相同,提高2D mesh網絡多播路由為穩(wěn)定性。更進一步地,從相同的多播路由節(jié)點發(fā)送的所有路由包具有一個方向的目標節(jié)點地址(只有一個目標路由節(jié)點)。即路由包在以某個路由節(jié)點為多播路由節(jié)點執(zhí)行多播過程時,多播方向為一個,多播方向要么是X方向,要么是Y方向,這樣保證路由包在執(zhí)行多播過程時是串行執(zhí)行的,不會出現(xiàn)同時向多個方向多播時調用的目標路由節(jié)點太多和同一路由節(jié)點被很多個路由節(jié)點調用為目標路由節(jié)點的問題,避免多個方向多播路徑復雜及陷入循環(huán)多播的現(xiàn)象。在2D mesh網絡應用于神經形態(tài)計算領域時,路由包在路由時除了點對點的連接關系外,還會涉及大量一對多(一個源路由節(jié)點對應多個目標路由節(jié)點)的多播路由的連接關系,這樣往往會帶來神經形態(tài)處理單元扇入扇出不足的問題,即一個神經形態(tài)處理單元可能需要同時分析處理多個路由包,或一個神經形態(tài)處理單元生成的路由包被多個其它的神經形態(tài)計算單元分析處理,而設置路由包以某個路由節(jié)點為多播源節(jié)點執(zhí)行多播時只向一個路由方向路由,可以很好地解決神經形態(tài)處理單元扇入扇出不足的問題。
需要說明的是,上述以某個路由節(jié)點為單位執(zhí)行多播只向一個路由方向路由指的是一次多播過程中只有一個路由方向,而不是在整個2D mesh網絡執(zhí)行多次多播過程中只有一個路由方向。例如:以路由節(jié)點E為多播路由節(jié)點執(zhí)行多播時的多播方向只為X方向,當路由包到達目標路由節(jié)點F時,目標路由節(jié)點F作為新的多播路由節(jié)點執(zhí)行多播時的多播方向可以只為Y方向,也可以只為X方向。
在一個實施例中,參見圖3,步驟S300包括:
S310,判斷路由包當前路由至的第一路由節(jié)點的第一節(jié)點地址是否為目標節(jié)點地址;若是,則執(zhí)行步驟S320;若否,則執(zhí)行步驟S330。
S320,判定第一路由節(jié)點為目標路由節(jié)點,將路由包中的有效數據發(fā)送給與目標路由節(jié)點連接的神經形態(tài)處理單元,并判斷目標路由節(jié)點中是否配置了多播控制信息和多播步長信息;若是,則執(zhí)行步驟S321;若否,則執(zhí)行步驟S322。
S321,則確定目標路由節(jié)點為多播路由節(jié)點,并提取多播路由節(jié)點存儲的多播控制信息和多播步長信息。
S322,控制路由包結束路由。
S330,控制路由包通過2D mesh網絡繼續(xù)路由,直至路由至目標路由節(jié)點。
路由包在2D mesh網絡中路由時,每到達一個路由節(jié)點,就判斷該路由節(jié)點的節(jié)點地址是否為目標節(jié)點地址,即判斷路由包是否到達目標路由節(jié)點,如果到達的路由節(jié)點為目標路由節(jié)點,將路由包的有效數據發(fā)送給目標路由節(jié)點相應的神經形態(tài)處理單元中供其分析處理,然后判斷該目標路由節(jié)點中是否配置的多播控制信息和多播步長信息(即判斷該目標路由節(jié)點是否為多播路由節(jié)點),如果配置了,就提取該多播路由節(jié)點中的多播控制信息和多播步長信息,并執(zhí)行下一個多播過程,實現(xiàn)多播過程的串行連續(xù);如果沒有配置,則說明該目標路由節(jié)點不是多播路由節(jié)點,不執(zhí)行多播過程,該路由包的多播過程結束。
值得說明的是,在上述實施例中,一個路由節(jié)點被配置為多播路由節(jié)點的同時(在該路由節(jié)點中存儲有多播控制信息和多播步長信息),可以為其它多播路由節(jié)點的目標路由節(jié)點。即當路由包從一個多播路由節(jié)點到達目標路由節(jié)點后,如果該目標路由節(jié)點也為多播路由節(jié)點,則該路由包繼續(xù)執(zhí)行多播過程,直至該路由包所到達的目標路由節(jié)點不是多播路由節(jié)點。即路由包在2D mesh網絡中的多播過程可以是串行連續(xù)的,且多播次數不受限制。由于每次多播都是以路由節(jié)點為單位的路由包有效數據的復制,因此可以很好地克服傳統(tǒng)為每一個路由包都配置多播路由信息的多播過程繁瑣的問題,簡單方便易于實現(xiàn),且路由包中含有的信息減少,也有利于提高多播路由的效率,減少對網絡資源的占用。
為了更清楚的解釋上述實施例,以下結合幾個具體的實施例來對上述基于2D mesh網絡的路由多播方法進行詳細說明。在以下實施例中,路由節(jié)點按2D mesh網絡結構排列,每個路由節(jié)點通過四對輸入輸出通道與相鄰的路由節(jié)點相連構成2D mesh網絡。每個路由節(jié)點可以和一個或多個神經形態(tài)處理單元相連。預先設定水平向右為X軸正方向,垂直向下為Y軸正方向,左上處路由節(jié)點的路由坐標為(0,0)。
參見圖4,2D mesh網絡中的各個路由節(jié)點設置寄存器A和寄存器B,寄存器A用于存儲多播控制信息,寄存器B用于存儲多播步長信息,其中寄存器占用2bit位寬,寄存器B占用8bit位寬,即A[1:0],B[7:0]。寄存器A和寄存器B占用的位寬也可根據具體需求而定,這里只用于解釋說明,并不用于限定。當寄存器A的值為00或11時,表示無多播,該路由節(jié)點不進行多播操作,即路由包到達目標路由節(jié)點后即路由結束;當寄存器A的值為01時,表示該路由節(jié)點配置為多播路由節(jié)點,即路由包到達目標路由節(jié)點后還需進行多播操作,并且多播方向為X方向;當寄存器A的值為10時,表示該路由節(jié)點配置為多播路由節(jié)點,即路由包到達目標路由節(jié)點后還需進行多播操作,并且多播方向為Y方向。寄存器A的值為01或10時,該路由節(jié)點需進行多播,此時需進一步的根據寄存器B確定多播目標節(jié)點。當多播步長寄存器值為0時,多播無效;當寄存器值B為非零值時,目標路由節(jié)點根據多播方向和多播步長共同確定。
實施例一
參見圖5,源路由節(jié)點(0,0)和(3,1)同時向目標路由節(jié)點(2,1)發(fā)送路由包,源路由節(jié)點通過2D mesh網絡中路由節(jié)點的路由算法單元向目標路由節(jié)點發(fā)送路由包時需實時判斷是否到達目標路由節(jié)點,如果沒有到達,則需要通過2D mesh網絡繼續(xù)向下一路由節(jié)點發(fā)送路由包,如果到達,就將路由包中的有效數據發(fā)送給相應的神經形態(tài)處理單元。路由節(jié)點(2,1)的寄存器A配置為A[1:0]=10,B[7:0]=0x02,則所有以(2,1)為多播路由節(jié)點的路由包到達節(jié)點(2,1)后,執(zhí)行以下過程:
S001,將路由包中的有效數據發(fā)送給與路由節(jié)點(2,1)相連的神經形態(tài)處理單元。
S002,提取路由節(jié)點(2,1)中寄存器A的值,根據寄存器A的值確定是否進行多播操作,并在多播控制信息有效時提取多播方向信息。此處寄存器A的值為10,則路由包需要進行多播,且多播方向為Y方向。
S003,提取路由節(jié)點(2,1)中寄存器B的值,判斷寄存器B中是否存在有效的多播步長。此處寄存器B的值為0x02,為有效的多播步長,且多播步長為2。
S004,根據多播方向信息(Y方向)和多播步長信息(2個步長)確定路由包進行多播的目標節(jié)點地址為(2,3),將路由包路由至目標路由節(jié)點(2,3),并將路由包中的有效數據發(fā)送給與路由節(jié)點(2,3)相連的神經形態(tài)處理單元。
其將多播路由信息(包括多播控制信息和多播步長信息)存儲在路由節(jié)點中,路由包到達該路由節(jié)點時以該路由節(jié)點為發(fā)送節(jié)點按照該路由節(jié)點中的路由規(guī)則被多播,由于多播路由信息不再包含在路由包中,因此路由包中信息量減少,能夠有效提高路由包的路由效率,減少路由包在路由過程對網絡資源的占用,且多播路由信息無需在每個生成的路由包中配置,避免了在每個路由包中配置多播路由信息的繁瑣。
實施例二
參見圖6,源路由節(jié)點(1,0)向目標路由節(jié)點(1,1)發(fā)送路由包,路由節(jié)點(1,1)的寄存器A配置為A[1:0]=01,寄存器B配置為B[7:0]=0x03,則所有以(1,1)為多播路由節(jié)點的路由包到達節(jié)點(1,1)后,執(zhí)行以下過程:
S001,將路由包中的有效數據發(fā)送給與路由節(jié)點(1,1)相連的神經形態(tài)處理單元。
S002,提取路由節(jié)點(1,1)中寄存器A的值,根據寄存器A的值確定是否進行多播操作,并在多播控制信息有效時提取多播方向信息。此處寄存器A的值為01,則路由包需要進行多播,且多播方向為X方向。
S003,提取路由節(jié)點(1,1)中寄存器B的值,判斷寄存器B中是否存在有效的多播步長。此處寄存器B的值為0x03,為有效的多播步長,且多播步長為3。
S004,根據多播方向信息(X方向)和多播步長信息(3個步長)確定路由包進行多播的目標節(jié)點地址為(4,1),將路由包路由至目標路由節(jié)點(4,1),并將路由包中的有效數據發(fā)送給與路由節(jié)點(4,1)相連的神經形態(tài)處理單元。
上述多播過程將多播路由信息存儲在路由節(jié)點中而不是配置在路由包中,路由包中的信息量減少,能夠有效提高路由包的路由效率,減少路由包在路由過程對網絡資源的占用,且多播路由信息無需在每個生成的路由包中配置,避免了在每個路由包中配置多播路由信息的繁瑣。
其中,需要說明的是,上述實施例一和實施例二中的寄存器B的位寬為8bit,其值為0x02和0x03是以16進制的形式表達的,16進制必須以0x開頭,0x02轉換為二進制的值為:00000010;0x03轉換為二進制的值為:00000011。將寄存器B的值以16進制的形式表達,簡單明了。
本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
在一個實施例中,如圖7所示,還提供了一種基于2D mesh網絡的路由多播系統(tǒng),該系統(tǒng)包括:提取模塊100,用于在多播路由節(jié)點接收到路由包后,提取多播路由節(jié)點自身存儲的多播控制信息和多播步長信息。獲取模塊200,用于在多播控制信息有效時,提取多播控制信息中的多播方向信息,并獲取多播路由節(jié)點的當前節(jié)點地址。確定模塊300,用于根據當前節(jié)點地址以及多播方向信息和多播步長信息確定所述路由包將要路由至的目標路由節(jié)點的目標節(jié)點地址,并根據目標節(jié)點地址將路由包路由至目標路由節(jié)點。
本實施例中,將路由包進行路由多播過程的多播控制信息和多播步長信息存儲在2D mesh網絡中的路由節(jié)點中,這樣當存儲有多播控制信息和多播步長信息的路由節(jié)點接收到路由包后,所有以該路由節(jié)點進行路由的路由包均會被多播,而無需在路由包中與多播過程相關的信息,這樣可以減少路由包中包含的信息,能夠有效提高路由包進行多播路由時的效率,降低多播過程對2D mesh網絡資源的占用,提高2D mesh網絡資源的利用率。同時,對于一個路由節(jié)點與多個神經形態(tài)處理單元連接的2D mesh網絡,無需在每個路由包生成時都為之配置相應的多播路由信息也能夠完成相應的多播過程,可以簡單地實現(xiàn)以路由節(jié)點為單位的路由包中有效數據的復制,多播過程簡單方便。
在一個實施例中,還包括:發(fā)送模塊100′,用于在賭博路由節(jié)點接收到路由包后,獲取路由包的有效數據,并將有效數據發(fā)送給與多播路由節(jié)點連接的神經形態(tài)處理單元。
在一個實施例中,獲取模塊200包括:第一判斷單元210,用于由多播控制信息中提取多播使能信息,并判斷多播使能信息是否有效;若是,則進入第二判斷單元220;若否,則進入第一控制單元230。
第二判斷單元220,用于判斷多播步長信息是否存在有效的多播步長,并在存在有效的多播步長時,提取多播控制信息中的多播方向信息及獲取多播路由節(jié)點的當前節(jié)點地址。第一控制單元230,用于控制路由包結束路由。
在一個實施例中,確定模塊300包括:第三判斷單元310,用于判斷所述路由包當前路由至的第一路由節(jié)點的第一節(jié)點地址是否為目標節(jié)點地址;若是,則進入發(fā)送判斷單元320;若否,則進入第二控制單元330。
發(fā)送判斷單元320,用于將所述路由包中的有效數據發(fā)送給與所述目標路由節(jié)點連接的神經形態(tài)處理單元,并判斷目標路由節(jié)點中是否配置了多播控制信息和多播步長信息;若是,則確定所述目標路由節(jié)點為多播路由節(jié)點,并提取所述多播路由節(jié)點存儲的所述多播控制信息和所述多播步長信息;若否,則控制路由包結束路由。第二控制單元330,用于控制所述路由包通過所述2D mesh網絡繼續(xù)路由,直至路由至目標路由節(jié)點。
在一個實施例中,從相同的多播路由節(jié)點路由的所有路由包具有相同的目標節(jié)點地址。
由于此系統(tǒng)解決問題的原理與前述一種基于2D mesh網絡的路由多播方法相似,因此該系統(tǒng)的實施可以參見前述方法的實施,重復之處不再贅述。
以上所述實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。
以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權利要求為準。