數據路由的系統和方法
2023-09-17 04:20:45
專利名稱:數據路由的系統和方法
技術領域:
本發明涉及處理網絡,更具體地說,涉及用於在所述網絡中通過多個節點進行數據路由的系統和方法。
處理網絡圖表示通常包括多個為要經過處理的數據建立異步數據流的處理節點。圖可以提供用於處理節點的結構,以便不同的源能有效地混合併路由到多種數據輸出設備。
對於不同的應用,網絡圖經常被用於在軟體層流式傳送數據。軟體流式傳送可以用處理節點圖來表示,其中節點間的通信是用數據的不連續(discreet)數據包完成,並通常建立在位於圖結構中的多個構件基礎上,其中節點可表示進行如分析、解碼和處理數據流等活動的處理步驟,以便例如成為輸出設備的輸出。節點從輸入邊向輸出邊有效地傳送數據包,使數據流式傳送通過圖。各數據包沿特定路由通過圖,在源節點開始,在匯節點結束。數據被說成是流過圖,是因為在源節點產生所有數據之前,包含數據包的數據序列、數據段等通常都已經到達匯節點了。
傳統上,節點之間的連接是靜態的,也就是,它們在數據流式傳送時從未改變。然而,為了充分利用可編程DSP處理器的靈活性,當流式傳送時改變圖也許是有利的。改變圖的原因包括在控制需要經過用於後續數據包的不同處理節點的路由的流式圖表示的應用中的特定模式的改變。
在流式圖改變之前,必須衝掉已經在流式圖內的數據,或必須處理流式圖中存在的數據。在不丟失數據的情況下重新配置圖,只有在舊的路由中的數據可能已經流出圖的情況下才有可能。然而,當構造新的路由時保持舊的路由完好無缺通常是不可能的,因為這些路由可能需要相同的資源。此外,如果起始於相同源的兩個後續數據包沿兩條不同路由而行,則由於動態變化,它們的相對順序可能在目的節點被打亂。
另外,如果兩個路由有多於一個以不同順序訪問的共有節點,則可能發生死鎖,舉例說,如果第一路由已經申請了第一節點,並且第二路由已經申請了第二節點,那麼之後兩個路由都想申請另一個節點。
在不中止數據流的情況下改變流式圖直到前面的數據已經被處理,這對於許多應用是很有利的。因此,本發明的一個目的就是解決上面提到的當數據流性質改變時而仍然保持數據包在目的節點的相對順序的情況下改變圖的問題。
此外,本發明的一個目的在於,以非常簡單的方式防止在兩個路由共享多於一個的節點的情況下可能發生的死鎖。
這是利用通過處理網絡動態進行數據路由的方法(及相應的系統)來實現的,該處理網絡至少包括三個用於接收、處理和傳輸數據的節點,該方法包括如下步驟定義通過多個所述節點的線性路由,第一節點作為路由的源;通過存儲把定義的節點和/或預留的路由連接與預留時間聯繫起來的路由預留信息,預留起始於源節點的路由的連接;在任何用於路由的數據從源節點發送之前,在源節點發送用於路由的起始標記;建立路由中第一節點和下個節點的連接,並刪除兩個節點的預留信息,並且,如果第一節點將發送起始標記給下一節點,則下一節點還沒連接到任何上遊節點,並且下一節點的預留信息指示其應該連接到第一節點;如果下一節點已經接收到來自第一節點的路由結束標記,並且下一節點被連接到第一節點,則斷開第一節點和下一節點間的連接;通過連接轉發任何結束標記、起始標記和下遊數據;將各節點的數據發送到連接在路由上的下一節點;當後續數據必須通過另一個路由傳播時,產生並發送在源節點的結束標記。
路由定義為線性的,也就是,相同的路由應該只能訪問各節點一次。而且,路由是單路徑的,即,不允許有樹結構和子路由。然而,路由本身可定義為總路徑內的子路徑。
為了保持數據數據包的相對順序,要沿著數據流發送標記。標記就是一段信息,例如數字,並且可被實現為數據流中的特定數據包、常規數據包中的一些特定數據欄位等。為了能知道數據流應該沿哪個路由而行,在源節點插入第一起始標記和第二結束標記,以定義當前數據流的起始和結束。在此實施例中,所有數據流都應該包有起始和結束標記。結束標記後的第一個數據包應該總是包括一個起始標記,否則結束標記後的數據流的路由將是未定義的。
利用下文詳細描述的解決方案,可給控制圖的應用提供用於通過流式圖進行動態路由數據包的方便而高級的接口。通過提供高級的路由概念隱藏了應用中的低級排序和同步細節。
在從屬權利要求中定義了優選實施例。
下面結合優選實施例並參考附圖對本發明進行更詳細地說明,附圖中
圖1示出了有四個節點的圖中的兩個路由;圖2示出了由起始標記和結束標記分開的數據流;圖3示出了路由的預留;圖4示出了路由的第一連接;圖5示出了斷開的圖4的連接以及第二路由的預留;圖6示出了圖3路由的第二連接和第二路由的第一連接;圖7示出了在路由2的第一連接斷開之前的第二路由的第二連接;圖8示出了本發明節點的示意圖;在所有圖中,相同的標號表示相同的或相應的特徵、功能等。
圖1描述了一個包括四個節點(1,2,3和4)的圖表示的例子,其中從源節點(1)到目的節點(4)有兩條路由(R1,R2)可用。或者,數據流必須沿第一路由(R1=(1,2);(2,4))或第二路由(R2=(1,3);(3,4))而行。對於本例,路由(1,2);(2,3);(3,4)和(1,3);(3,2);(2,4)是不相關的。
例如,可在多個數位訊號處理器(DSP)中定義路由圖,各處理器被編程用於不同的專用處理任務,如語音編碼、視頻處理等。圖中的路由也可在包含多任務軟體的單個處理器中,其中路由是在不同的處理函數中定義的。
圖2示出了具有由R-和E-標記分開以分別定義各數據流的起始和結束的數據數據包(D)的數據流。下文中,在數據流到達第一節點(1)之前確定路由和附加標記。確定路由和附加信息是在源節點中進行的。最初數據流可能只附加了起始標記。在這種模式中,第一節點(1)必須為數據流產生相應的結束標記。當沒有結束標記的數據流經過節點(1)並且新的起始標記到達時,節點(1)會在釋放連接之前產生結束標記並將其沿數據流發送,從而定義已經發送的數據流的結束。
預留信息在節點的輸入連接點(ICP)和輸出連接點(OCP)中排隊(如圖3所示)。各節點預期的輸入邊和匹配輸出邊以FIFO(先進先出)順序分別存儲在ICP和OCP中。如圖3所示,路由R1被預留,節點2的輸入連接點被預留以接受來自節點1的連接,並且節點1的輸出連接點被預留以發送給節點2。同樣,節點2被預留以發送給節點4,節點4被預留以接收來自節點2的數據。當在節點2處理數據時,數據將流式傳送到在節點2的輸出連接點中列出的節點,也就是,在這個例子中根據預留信息的節點4。
同步數據流所用的數據包的順序由預留的順序來定。在整個圖的一個原子行為中預留是瞬間完成的,因此將有一個路由間的總順序,結果,由於路由衝突所導致的死鎖將絕不會發生。預留信息必須以FIFO順序在ICP/OCP中排隊。預留信息隊列中的第一個值表示一個節點將最先重接的節點。
當具有第一起始標記R1的第一數據流到達源節點1時,將建立在OCP隊列中為第一的節點2的連接,並且標號1和2從兩個隊列中刪除,如圖4所示。當在節點2接收到R1時,R1後的數據將被發送到節點2,直到結束標記(E1)到達節點1為止。
參考圖5,當R2到達節點1時,進行第二路由R2的所有預留。我們看到,對於節點4的輸入,有兩個預留未決;首先是路由R1的連接,其後是路由R2的連接。在圖5中,當第二標記E1到達節點1時,路由R1的第一個連接斷開。標記R2發信號通知節點3建立連接,根據節點3的ICP中的預留信息,希望節點3連接到節點1。如圖6所示,當節點3沒有連接到任何上遊節點時,可立即建立連接。
應該注意,預留是在一個原子行為中完成的。當源節點將要發送數據前面的新路由標記時,進行預留。
然而,在將標記插入到數據流時,可以選擇不預留路由。如果對某些例子,當標記到達源節點但並沒對這個標記作預留時產生標記並將其插入數據流中,則預留過程可在源節點中完成。換句話說,有可能插入標記並延遲路由預留,直到數據流到達源節點。當路由可定義總路徑的子路徑時,這是有用的。換句話說,只要各起始標記不同於其他起始標記,就能保持相對順序。
在圖6中,由於排隊的信息,當節點4將接受這個連接時,數據將從節點2發送到節點4。假設在節點2的數據處理完之前R2到達節點3的OCP,則節點4將拒絕連接(3,4),由於當節點2到節點4的連接完成時,也就是,連接、發送和釋放時,這個連接將第一次被接受,這是鑑於在FIFO緩衝器隊列(如圖5所示)中2在3前面的事實。當在節點4接收到E1時,節點2將完成發送。這樣,即使節點處理是異步的,也能保持數據流間的相對順序。
此外,如果在從節點2到節點4發送數據的過程中,R2到達節點3的OCP,則節點3到節點4的連接將被中斷,因為在當前連接被釋放之前4不能接受任何新的連接。
當E1到達節點2的OCP時,釋放連接(2,4),可以進行未決的連接(3,4),如圖7所示。在同一圖中,我們看到在整個數據流離開源節點之前到達匯節點的數據流。
總結上述特徵,可以說起始標記始終位於數據流之前,而結束標記總是在數據流之後。結束標記用於斷開連接,起始標記用於重新連接。已知正好在節點發送路由標記前,由於結束標記必須結束前面的數據流,所以不連接節點的OCP。節點的OCP應當至少有一個預留給確定的路由中的下一節點的輸入,這是由於預留總是在重新連接之前進行的。基於下一節點的ICP是否連接,將執行下面的行為-如果連接了,則中止重新連接,並在刪除連接後重新開始。
-如果斷開了,則檢查下個節點(在隊列首部)的ICP是否有一個R-標記起始的當前節點的預留。如果有,建立實際的連接。如果沒有,延遲重新連接。
E標記總是結束數據流。當一個節點接收到E標記時,位於輸入的連接將被斷開,並通過檢查節點ICP的隊列來檢查另一節點的連接是否是未決的。如果隊列不空,則建立與隊列首部的節點的連接。
圖8示出了按照給定的處理網絡圖表示、包含處理節點的系統(801)的實施例的示意圖,該系統包括一個或多個微處理器(802)和/或數位訊號處理器(806)、存儲器(803)、輸入/輸出裝置(804),它們通過數據總線(805)連接。處理器和/或數位訊號處理器(806)是存儲器(803)和輸入/輸出裝置(804)之間的交互機構。輸入/輸出裝置(804)負責與處理器網絡中的可到達的節點進行通信,其中在諸如可利用資源參數和網絡節點的節點容量的操作過程中,將發生數據流的傳送和其他交互作用。節點參數可以通過輸入/輸出裝置(804)從遠程節點加載。節點之間的這種通信可利用如IrDa、藍牙、IEEE 802.11、無線LAN等,但是有線應用解決方案也是有用的。存儲器(804)存儲相關信息,如專用電腦程式、或用於確定路由的加載節點參數、資源分配的最優化結果等。
處理器裝置(802)最好負責所述的確定路由、資源分配最優化、圖管理、以及將傳輸的數據處理到專用軟體規定的範圍等。因此處理器裝置(802)作為確定流式傳送經過網絡圖的數據流動的網絡圖管理器。圖管理器,也就是處理器裝置(802),控制並處理從節點傳送到節點的數據流的交換。換句話說,處理器裝置可用於管理把從源檢索的數據轉換成適合接收節點的輸出所需的行為。
數位訊號處理器可專門編程用於不同的處理任務,如語音編碼、視頻處理等。或者,單個多出口(single multi-issued)DSP可包括幾個處理器裝置,或者將多個DSP嵌套以完成處理任務,其中各DSP是專用的,處理裝置要比單一多出口DSP的少。
圖中路由也可包含在包括多任務軟體的單個通用處理器中,其中在不同的處理函數中定義了路由。使用通用微處理器代替DSP,在一些系統設計中是一種可行的選擇。儘管專用DSP很適合處理系統中的信號處理任務,但是多數設計也需要微處理器用於其他處理任務,如路由管理等。將系統功能集成到一個處理器中可能是實現幾個共同設計目標(如減少系統部件數、降低功耗、最小化尺寸、降低成本等)的最好方式。將處理器數減少到一個也意味著控制較少的指令集和工具組。
此外,計算機可讀媒體包含一個用於使處理器在按照前言的處理網絡中執行動態分配處理資源的程序,其特徵在於如下步驟確定通過多個網絡節點的路由,並預留上述多個節點;給數據流附加第一標記和第二標記,第一標記與路由相聯繫;連接路由的第一節點到路由的第二節點,其中第二節點由相聯繫的第一標記描述;當建立第一節點和第二節點之間的連接時,從第一節點向第二節點發送所述數據流;以及當第二標記到達第一節點時釋放連接,這在本發明中公開了。
在本文中,計算機可讀媒體可以是程序存儲媒體,即,物理計算機ROM和RAM、可移動的和不可移動的存儲驅動器、磁帶、光碟、數位化視頻盤(DVD)、只讀光碟(CD或CD-ROM)、小型盤、硬碟、軟盤、智慧卡、PCMCIA卡、從數據網獲得的信息,數據網如區域網(LAN)、廣域網(WAN)或其任何結合,如網際網路、Intranet、Extranet等。
權利要求
1.一種通過處理網絡進行動態數據路由的方法,該處理網絡至少包括三個用於接收、處理和發送數據的節點,所述方法包括如下步驟-通過多個所述節點定義線性路由,第一節點作為路由的源;-通過存儲把路由的定義節點和/或預留連接與預留時間相聯繫的路由預留信息,來預留起始於源節點的路由的連接;-在從源節點發送路由的任何數據之前,在源節點發送路由的起始標記;-建立路由上源節點和下一節點之間的連接,並刪除上述兩個節點的預留信息,如果a)源節點將要發送起始標記給下一節點,b)下一節點沒有連接到任何上遊節點,且c)下一節點的預留信息指示它應該連接到源節點;-斷開源節點和下一節點之間的連接,如果a)下一節點已經從源節點接收到路由結束標記,且b)下一節點連接到源節點;-通過所述連接來轉髮結束標記、起始標記和下遊數據;-將各節點的數據發送到連接在路由上的下一節點;以及-如果還沒有插入結束標記,當後續數據必須通過另一個路由傳播時,在源節點產生並發送結束標記。
2.如權利要求1所述的方法,其特徵在於,按照整個路由的一個原子行為來執行預留步驟。
3.如權利要求1所述的方法,其特徵在於,在路由的節點中把預留信息存儲在第一輸入連接點(ICP)的FIFO隊列和第二輸出連接點(OCP)的FIFO隊列中,其中在各隊列中可存儲多個節點標識符;每個標識符表示存儲預留信息的節點根據上述隊列中的預留信息應該連接到的相鄰節點。
4.如權利要求書1所述的方法,其特徵在於,所述起始標記在數據流之前,結束標記終止數據流,其中總是保持這個順序。
5.如權利要求書1所述的方法,其特徵在於,如果數據流的特性改變,則起始標記和結束標記只插入到數據流中。
6.如權利要求書1所述的方法,其特徵在於,數據流中的數據可在節點內緩衝。
7.如權利要求書1所述的方法,其特徵在於,路由只描述由數據流訪問的節點的總列表的一段。
8.如權利要求書1所述的方法,其特徵在於,下一節點被指定為第一節點,且按照路由在此節點之後的節點被指定為下一節點,並重複建立、斷開、轉發、發送和指定第一節點和下一節點的步驟,直到路由的結束標記到達它的目的節點為止。
9.一種通過處理網絡進行動態數據路由的系統,包括至少三個用於接收、處理和發送數據的節點裝置,所述系統包括-通過多個所述節點定義線性路由的裝置,第一節點作為路由的源;-用於通過存儲把路由的定義節點和/或預留連接與預留時間相聯繫的路由預留信息來預留起始於源節點的路由的連接的裝置;-用於在從源節點發送路由的任何數據之前在源節點發送路由的起始標記的裝置;-用於建立路由中第一節點和下一節點之間的連接並刪除上述兩個節點的預留信息的裝置,如果a)第一節點將發送起始標記給下一節點,b)下一節點沒有連接到任何上遊節點,且c)下一節點的預留信息指示它應該連接到第一節點;-用於斷開第一節點和下一節點之間的連接的裝置,如果a)下一節點已經從第一節點接收到路由結束標記,且b)下一節點已連接到第一節點-用於通過所述連接來轉髮結束標記、起始標記和下遊數據的裝置;-用於將各節點的數據發送到連接在路由上的下一節點的裝置;以及-用於當後續數據必須通過另一個路由傳播時在源節點產生並發送結束標記的裝置。
10.如權利要求9所述的系統,其特徵在於,按照一個原子行為執行預留步驟。
11.如權利要求9所述的系統,其特徵在於,在路由的節點中把預留信息存儲在第一輸入連接點(ICP)的FIFO隊列和第二輸出連接點(OCP)的FIFO隊列中,其中在各隊列中可存儲多個節點標識符;每個標識符表示存儲預留信息的節點根據上述隊列中的預留信息應該連接到的相鄰節點。
12.如權利要求9所述的系統,其特徵在於,所述起始標記在數據流之前,結束標記終止數據流,其中總是保持這個順序。
13.如權利要求9所述的系統,其特徵在於,如果數據流的特性改變,則起始標記和結束標記只插入到數據流中。
14.如權利要求9所述的系統,其特徵在於,數據流中的數據可在節點內緩衝。
15.如權利要求9所述的系統,其特徵在於,路由只描述由數據流訪問的節點的總列表的一段。
16.一種計算機可讀媒體,包括程序,用於使處理器執行如權利要求1到8中任何一項所述的、通過處理網絡進行動態數據路由的方法。
全文摘要
本發明涉及一種在處理網絡中動態分配處理資源的方法,該處理網絡包括用於在數據流中通過利用附加結束標記來處理數據以保持網絡中沿不同路由而行的數據包之間的相對順序的節點。通過路由預留消除了兩條路由間的死鎖情形。當節點接收到路由標記(R1)時,解釋標記並完成重新路由。當節點接收到下一標記(R2)時,節點將結束標記(E1)插入到流中並如前面所述解釋下一標記(R2)。
文檔編號H04L12/56GK1672371SQ03817564
公開日2005年9月21日 申請日期2003年6月25日 優先權日2002年7月25日
發明者E·G·P·范多爾恩, H·C·W·范希斯奇 申請人:皇家飛利浦電子股份有限公司