用于避免多環(huán)互連中的死鎖的方案及對擁塞控制的額外應(yīng)用的制作方法
【專利摘要】一種用于避免多環(huán)死鎖的方法和系統(tǒng)。該方法包括由與消息的目標(biāo)關(guān)聯(lián)的環(huán)連接器或由消息的源站來移除多環(huán)互連上的消息,以使得消息在移除之前圍繞時隙環(huán)互連傳送不超過一次。該方法還可以被應(yīng)用到單個環(huán)的網(wǎng)絡(luò)中以進(jìn)行擁塞控制。
【專利說明】用于避免多環(huán)互連中的死鎖的方案及對擁塞控制的額外應(yīng)用
[0001]本申請是申請日為2009年9月25日、申請?zhí)枮?00910175174.0、發(fā)明名稱為“用于避免多環(huán)互連中的死鎖的方案及對擁塞控制的額外應(yīng)用”的中國發(fā)明專利申請的分案申請。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明的實施例涉及多環(huán)互連,并且根據(jù)一個實施例,涉及一種用于避免多環(huán)互連中的死鎖的方案。其它實施例涉及擁塞控制和具有避免死鎖的多環(huán)互連的網(wǎng)絡(luò)。
【背景技術(shù)】
[0003]鏈路互連允許在設(shè)備和功能塊之間進(jìn)行通信?;ミB的一些實例是共享的總線和點對點鏈路。時隙環(huán)互連由在閉環(huán)中所布置的固定數(shù)量的時隙組成。環(huán)的每一個時隙為空或是被消息占用。環(huán)可以順時針旋轉(zhuǎn)或逆時針旋轉(zhuǎn)。也就是說,時隙中的消息可以按順時針方向或逆時針方向圍繞環(huán)傳播。旋轉(zhuǎn)的方向并不重要。環(huán)的基本操作很簡單:在每一個時鐘處,每一個時隙的內(nèi)容通常由它的上游相鄰時隙(例如,如果環(huán)順時針旋轉(zhuǎn),那么為逆時針方向的相鄰時隙)的內(nèi)容所替代。實際上,整個環(huán)可以被認(rèn)為是循環(huán)移位寄存器。
[0004]典型地,環(huán)上的時隙的子集具有依附于它們的一個或更多個站。但是,環(huán)上的所有的時隙都可以具有依附的一個或更多個站。站可以通過其所依附的時隙來發(fā)送和接收消息。為了發(fā)送消息,站等待它所依附的時隙變?yōu)榭眨⑶耶?dāng)變?yōu)榭諘r,將它希望發(fā)送的消息放入時隙中。典型地,每一個消息攜帶其目的站的標(biāo)識。
[0005]一般而言,站針對以其為目標(biāo)的消息而監(jiān)視其所依附的時隙。當(dāng)消息到達(dá)時,如果站具有用于接收該消息所需要的資源,那么站從時隙中移除該消息。站是否能夠在同一時鐘內(nèi)進(jìn)行接收與發(fā)送取決于實現(xiàn)細(xì)節(jié),而與本發(fā)明無關(guān)。
【專利附圖】
【附圖說明】
[0006]通過參照用于說明本發(fā)明的實施例的以下描述和附圖,可以最佳地理解本發(fā)明。
[0007]圖1a是具有兩個并排環(huán)的互連拓?fù)涞氖疽鈭D。
[0008]圖1b是具有四個并排環(huán)的互連拓?fù)涞氖疽鈭D。
[0009]圖1c具有分層環(huán)的互連拓?fù)涞氖疽鈭D。
【具體實施方式】
[0010]本發(fā)明的一個實施例涉及具有多個時隙環(huán)的網(wǎng)絡(luò)。本發(fā)明的另一個實施例涉及一種用于解決這種網(wǎng)絡(luò)中的環(huán)間死鎖問題的方法。本發(fā)明的又一個實施例涉及擁塞控制,甚至是在單個環(huán)中的擁塞控制。
[0011]在以下說明中,某些術(shù)語被用于描述本發(fā)明的特征。例如,術(shù)語“設(shè)備”或“代理”是通用的,并且可以用于描述被耦合到鏈路上的任何電子部件?!版溌坊蚧ミB”通常被定義為攜帶信息的介質(zhì),其建立消息的通信路徑,消息即以預(yù)定格式放置的信息。鏈路或互連可以是有線物理介質(zhì)(例如,總線、一個或更多個電線、導(dǎo)軌(trace)、電纜等)或無線介質(zhì)(例如,結(jié)合了無線信令技術(shù)的空氣)。
[0012]術(shù)語“網(wǎng)絡(luò)”可以指任何互連的組或系統(tǒng)。也就是說,網(wǎng)絡(luò)可以包括在相同機(jī)器中鏈接的設(shè)備,或鏈接起來共享信息的不同計算機(jī)中的設(shè)備。網(wǎng)絡(luò)包括,但并不限于:局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、無線局域網(wǎng)(WLAN)和虛擬局域網(wǎng)(VLAN)。
[0013]如上所述,環(huán)上的時隙的子集通常具有依附于它們的一個或更多個站。站被廣泛地定義為可以發(fā)送和接收消息的任何設(shè)備。站通常通過其所依附的時隙來發(fā)送和接收消息。為了發(fā)送消息,站等待它所依附的時隙變?yōu)榭?。?dāng)所依附的時隙為空時,站將其希望發(fā)送的消息放入該時隙中。典型地,每一個消息攜帶其目的站的標(biāo)識。一般而言,站針對以其為目標(biāo)的消息而監(jiān)視其所依附的時隙。當(dāng)以該站為目標(biāo)的消息到達(dá)時,如果該站具有用于接收消息所需的資源,那么站從時隙中移除該消息。
[0014]時隙環(huán)互連本質(zhì)上是具有受限的橫截面帶寬的一維通信介質(zhì)。當(dāng)希望彼此通信的站的數(shù)量很大時,期望在多個時隙環(huán)互連之中將站進(jìn)行劃分以增加聚合通信帶寬。多個時隙環(huán)互連可以以各種拓?fù)浔贿B接在一起,在圖1a-1c中說明了一些這樣的拓?fù)洹?br>
[0015]圖1a說明了具有并排拓?fù)渲械膬蓚€時隙環(huán)互連14的互連拓?fù)?0。如圖所示,每個時隙環(huán)互連14具有36個時隙12。但是,所說明的時隙12的數(shù)量是任意的,并不限于36。也就是說,時隙環(huán)互連14可以具有更多或更少的時隙12。此外,各種時隙環(huán)互連14不一定具有相同數(shù)量的時隙12。實際上,在一些實施例中,拓?fù)渲械母鞣N時隙環(huán)互連14具有不同數(shù)量的時隙12。
[0016]圖1a-1c中的雙箭頭代表環(huán)連接器16,其在時隙環(huán)互連14之間移動消息。環(huán)連接器16典型地是橋,但也可以是任何設(shè)備,例如:中繼器、路由器、集線器,或交換機(jī),這些設(shè)備可以連接多個時隙環(huán)14。
[0017]圖1b說明了具有并排拓?fù)渲械乃膫€時隙環(huán)互連14的互連拓?fù)?0,而圖1c說明了具有分層拓?fù)渲械奈鍌€時隙環(huán)互連14的互連拓?fù)?0。時隙12沒有在圖1b和Ic中示出。在說明的分層拓?fù)渲?,圖1c的左側(cè)的、以拓?fù)涞挠覀?cè)的站為目的站的消息必須通過中心時隙環(huán)15。許多其它拓?fù)涫强赡艿摹T趫D1a-1c中說明的拓?fù)鋬H用于說明。
[0018]多環(huán)死鎖
[0019]具有多環(huán)互連的系統(tǒng)中的死鎖問題可以使用在圖1a中的2環(huán)拓?fù)鋪碚f明。如果系統(tǒng)進(jìn)入以下狀態(tài):其中,上(或下)時隙環(huán)互連14的所有時隙12由將下(上)時隙環(huán)中的站(沒有示出)作為目標(biāo)的消息所占用,并且環(huán)連接器16中的所有緩沖器為滿,那么死鎖跟著發(fā)生,這是因為在任一時隙環(huán)互連14中都沒有時隙12可以為空。關(guān)于這種死鎖有幾點
值得注意。
[0020]第一,即使在每一個消息的最終目的地(目標(biāo)站)具有用于接收該消息的資源時,死鎖仍然可能發(fā)生。這是因為最終的目的地(目標(biāo)站)在一個時隙環(huán)互連14上,而消息被留在另一時隙環(huán)互連14上。第二,其中將多個時隙環(huán)互連14連接在一起的精確拓?fù)洳⒉恢匾?。可以針對上述拓?fù)?0、30和其它多環(huán)拓?fù)渲械娜魏我粋€容易地構(gòu)造相似地死鎖情況。第三,環(huán)連接器16的數(shù)量和位置以及其中的精確緩沖機(jī)制也不重要。一旦所有時隙12和環(huán)連接器緩沖器(沒有示出)被填滿,死鎖跟著發(fā)生。第四,在網(wǎng)絡(luò)中存在多于一個時隙環(huán)互連14的事實是引起死鎖發(fā)生的基礎(chǔ)。在單個環(huán)中,每個消息只要停留在時隙環(huán)互連14上,就會不斷重訪其目標(biāo)站,所以目標(biāo)站有無限次接收該消息的機(jī)會。相反,在具有兩個或更多個時隙環(huán)互連14的情況下,每一個時隙環(huán)互連14都有可能被目的站在其他時隙環(huán)互連14上的消息填滿。
[0021]用于避免多環(huán)死鎖的方案
[0022]方案背后的基本思想如下。優(yōu)選地,每一個消息由時隙環(huán)互連14上的目標(biāo)(其可以是環(huán)連接器16,例如橋)或時隙環(huán)互連14上的消息的源站從環(huán)中將其移除。因此,消息占用的時隙12在至多一個循環(huán)內(nèi)變?yōu)榭捎谩H绻⒌哪繕?biāo)可以接收該消息,那么該目標(biāo)從時隙環(huán)互連14中移除該消息。因此,例如,如果連接兩個時隙環(huán)的環(huán)連接器16可以接收消息,那么它從第一時隙環(huán)互連14中移除該消息并且將其傳遞給第二時隙環(huán)互連14。一旦消息穿越到另一時隙環(huán)互連14,最終的目的地將最終接收該消息。因此,一旦消息前進(jìn)到包含最終目的地的時隙環(huán)互連14的路徑,死鎖將不是問題。如果目標(biāo)不能接收消息,那么目標(biāo)(或更準(zhǔn)確地說,連接兩個時隙環(huán)互連的橋邏輯)用否定標(biāo)志對消息做標(biāo)記。也就是說,中間目標(biāo)(例如,環(huán)連接器16或橋)負(fù)責(zé)設(shè)置這些標(biāo)志。然后,消息循環(huán)回到源站,作為否定應(yīng)答。
[0023]源站保持消息的副本,直到它得到否定應(yīng)答或肯定應(yīng)答。如上所述,否定應(yīng)答是循環(huán)回到其源站的標(biāo)記消息。然后,源站從時隙環(huán)互連14中移除標(biāo)記消息以使得其時隙12可用。源站將在稍后使用它保留的副本來進(jìn)行發(fā)送該消息的另一次嘗試。因為環(huán)中的時隙12的總數(shù)量是固定并且已知的,所以源站可以進(jìn)行計時并且準(zhǔn)確地知道否定應(yīng)答,如果有的話,應(yīng)該何時到達(dá)。如果沒有否定應(yīng)答在這個時鐘到達(dá),那么源站認(rèn)為是肯定應(yīng)答。在肯定應(yīng)答的情況下,源站可以丟棄消息的副本。
[0024]SM
[0025]以下是上述方案的示例性實現(xiàn)。在本實例中,每一個消息除了它的有效載荷之外還攜帶以下位:(I)有效位V ; (2)否定應(yīng)答位N ;以及(3)對于時隙環(huán)互連14上的每一個站k,有一對應(yīng)的目的地位D[k]。在下文中,設(shè)置這些位為O或I的選擇是任意的。也就是說,可能已經(jīng)選擇了相反的約定或者一些其他約定。
[0026]在源站s與目標(biāo)站t (其中s和t為不同的站并且它們中之一或兩者可以是連接該環(huán)與另一個環(huán)的橋)之間的信令協(xié)議可以如下所述。第一,對于發(fā)送消息的源站S,它等待具有V=O和N=O的時隙12。通過設(shè)置V:=l、D[s]:=1和D[t]:=1來發(fā)送消息。第二,對于接收消息的目標(biāo)站,它等待具有V=1、N=0和D[t]=l的時隙。通過設(shè)置V:=0、D[s]:=0和D[t]:=0來接收消息。第三,如果目標(biāo)站t不能接收消息,那么它通過設(shè)置V:=0、N:=l和D[t]:=0來表明否定應(yīng)答。第四,源站s進(jìn)行計時并且在肯定應(yīng)答或否定應(yīng)答預(yù)定到達(dá)的時鐘內(nèi)執(zhí)行以下的檢查。
[0027]如果V=0、N=1并且D[s]=l,那么源站s得知否定應(yīng)答已經(jīng)到達(dá),它通過設(shè)置N:=0、D[s]:=0來從時隙環(huán)互連14移除該否定應(yīng)答。在一些實施例中,如果實現(xiàn)約束允許的話,還可以選擇使用同一時隙12來發(fā)送不同的消息。然而,如果D[s]=0或(V=I并且N=0),那么源站s得知肯定應(yīng)答已經(jīng)到達(dá)。在此情況下,有兩種子情況要考慮。第一,如果D[s]=0,那么這僅是肯定應(yīng)答并且源站s除了丟棄被應(yīng)答的消息的副本之外不需要進(jìn)行任何其他操作。第二,如果D[s]=l但是(V=I并且N=0),那么這既是對源站s發(fā)送的舊消息的肯定應(yīng)答,也是來自可以與t相同或不同的站U的、以源站S為目標(biāo)的新消息的到達(dá)。如果源站S能夠接收新消息,那么源站S通過設(shè)置V:=0、D[s]:=0和D[u]=0來接收消息。如果源站S不能接收新消息,那么源站s通過設(shè)置V:=0、N:=l和D[s]:=0對新消息作出否定應(yīng)答。
[0028]這種協(xié)議具有數(shù)種有利的特征。第一,消息對時隙12的占用始終為至多圍繞時隙環(huán)互連14 一周。第二,一旦消息由它的目標(biāo)成功接收,它的時隙12立即變?yōu)榭杀黄渌⒅赜?;僅否定應(yīng)答需要循環(huán)回到消息的源站。第三,每一個站k通常僅需要監(jiān)視位V、N和D [k],而不需要監(jiān)視j Φ k的任何D [ j]。第四,每一個站k需要驅(qū)動(設(shè)置位為O或I)至多三個輸出:V、N和D[k],和一個j 的D[j]。第五,在有效載荷部分不需要額外的位來標(biāo)識消息的源站和目標(biāo)站。然而,可選地,如果有用的話,具體實現(xiàn)可以選擇包括額外的位來標(biāo)識源站和目標(biāo)站。
[0029]應(yīng)用于單個時隙環(huán)互連上的擁寒控制
[0030]通過將消息對時隙12的占用限制為至多圍繞時隙環(huán)互連14 一周,上述方案還可以被應(yīng)用到擁塞控制。當(dāng)時隙旋轉(zhuǎn)經(jīng)過站時,站可以監(jiān)視時隙環(huán)互連14的時隙12的占用率,并使用該信息來控制在時隙環(huán)互連14上應(yīng)該過多長時間重新發(fā)送否定應(yīng)答消息。如果占用率很高,那么站可以在重新發(fā)送否定應(yīng)答消息之前等待更長的時間,因此降低了消息被注入時隙環(huán)互連14的速率。因此,消息對時隙環(huán)互連14上的時隙12的占用可以為至多圍繞該環(huán)一周的事實,對減少單個時隙環(huán)互連14上的擁塞也是有益的。
[0031]單個時隙環(huán)互連不需要用于避免死鎖的V位和N位,因為對于單個環(huán)來說死鎖不是問題。但是,具有這些位使得能更好地響應(yīng)擁塞。作為例子,每一個站可以監(jiān)視快速經(jīng)過的V位以監(jiān)視環(huán)的活動。例如,如果在80%的時間觀測到了 V位,那么站可以以慢于正常速率的速率來注入業(yè)務(wù)量,或完全不注入業(yè)務(wù)量直到對環(huán)的利用下降。如果所有站遵循這種機(jī)制,那么擁塞會內(nèi)在地自我調(diào)節(jié)并且環(huán)的業(yè)務(wù)量返回到期望的閾值(可以由系統(tǒng)定義的任何數(shù)值)以下。在缺少擁塞控制機(jī)制的情況下,只要代理能夠?qū)I(yè)務(wù)量注入網(wǎng)絡(luò),它們就會進(jìn)行這樣的操作,這導(dǎo)致已經(jīng)擁塞的網(wǎng)絡(luò)進(jìn)一步擁塞。在活躍度很高時,從這種擁塞恢復(fù)要花費很長的時間。擁塞的結(jié)果是使延遲(或發(fā)生通信所需的時間)非線性增加。因此,確保在沒有擁塞的情況下進(jìn)行操作通常來說會更好,即使這意味著站暫時放緩或中止將消息注入環(huán)中。
[0032]盡管已經(jīng)根據(jù)本發(fā)明的數(shù)個實施例描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將認(rèn)識到本發(fā)明并不限于描述的本發(fā)明的實施例,而是可以用落入所附的權(quán)利要求的精神和范圍內(nèi)的修改和變形來實踐本發(fā)明。因此,本說明書被認(rèn)為是說明性的而不是限制性的。
【權(quán)利要求】
1.一種發(fā)送消息的裝置,所述裝置包括: I/O邏輯,用于: 將在時隙環(huán)互連上發(fā)送的消息的時隙占用限制為圍繞所述時隙環(huán)互連單周,其中,所述時隙環(huán)互連包括多個時隙。
2.如權(quán)利要求1所述的裝置,其中,所述時隙占用被限制以減少所述時隙環(huán)互連上的擁塞。
3.如權(quán)利要求1-2中的任何一項所述的裝置,其中,所述時隙占用被限制以減少所述時隙環(huán)互連的延遲。
4.如權(quán)利要求1-3中的任何一項所述的裝置,其中,所述邏輯還用于在與所述單周相對應(yīng)的時段內(nèi)監(jiān)測針對所述消息的確認(rèn)的接收。
5.如權(quán)利要求1-4中的任何一項所述的裝置,其中,在所述時段內(nèi)未接收到否定確認(rèn)被解釋為肯定確認(rèn)。
6.如權(quán)利要求1-5中的任何一項所述的裝置,其中,所述邏輯用于保存所述消息的副本,直到針對所述消息的肯定確認(rèn)被接收到為止。
7.如權(quán)利要求1-6中的任何一項所述的裝置,其中,所述邏輯用于在確定了針對所述消息的肯定確認(rèn)時丟棄所述副本。
8.如權(quán)利要求1-7中的任何一項所述的裝置,其中,所述邏輯用于在所述時隙環(huán)互連的一個或多個時隙上注入消息。
9.如權(quán)利要求1-8中的任何一項所述的裝置,其中,所述邏輯用于在特定時隙上注入消息之前等待所述特定時隙打開。
10.如權(quán)利要求1-9中的任何一項所述的裝置,其中,所述消息標(biāo)識所述消息的源設(shè)備。
11.如權(quán)利要求1-10中的任何一項所述的裝置,其中,所述邏輯用于監(jiān)測所述時隙環(huán)互連的多個時隙的占用率,并且被否定確認(rèn)的消息基于所述占用率而被重新發(fā)送。
12.如權(quán)利要求1-11中的任何一項所述的裝置,其中,高占用率與較長地等待重新發(fā)送被否定確認(rèn)的消息相對應(yīng)。
13.如權(quán)利要求1-12中的任何一項所述的裝置,其中,所述邏輯用于等待重新發(fā)送被否定確認(rèn)的消息,以減小消息被注入到所述時隙環(huán)互連中的速率。
14.如權(quán)利要求1-13中的任何一項所述的裝置,其中,所述邏輯還用于通過所述時隙環(huán)互連的時隙從其它設(shè)備接收消息。
15.一種方法,包括:在存儲在權(quán)利要求1-14中的任何一項的至少一個機(jī)器可讀存儲介質(zhì)上的指令被執(zhí)行時,由機(jī)器執(zhí)行的動作。
16.—種用于控制互連上的擁塞的方法,所述方法包括: 在時隙環(huán)互連的特定時隙上注入消息,其中,所述時隙環(huán)互連包括多個時隙; 將所述消息對所述特定時隙的占用限制為圍繞所述時隙環(huán)互連單周。
17.如權(quán)利要求16所述的方法,其中,將所述消息對所述特定時隙的占用限制為單周包括: 確定是否在與所述周相對應(yīng)的時段內(nèi)識別了針對所述消息的確認(rèn);以及 當(dāng)接收到否定確認(rèn)時,重新發(fā)送所述消息。
18.如權(quán)利要求16-17中的任何一項所述的方法,還包括: 維持所述消息的副本,其中,重新發(fā)送所述消息包括:發(fā)送所述副本,并且在接收到肯定確認(rèn)時丟棄所述副本。
19.如權(quán)利要求16-18中的任何一項所述的方法,其中,識別所述肯定確認(rèn)包括:在所述周期內(nèi)未接收到針對所述消息的否定確認(rèn)。
20.如權(quán)利要求16-18中的任何一項所述的方法,其中,識別所述肯定確認(rèn)包括:接收到針對所述消息的肯定確認(rèn)。
21.—種包括用于執(zhí)行權(quán)利要求16-20所述的方法中的任何一項的模塊的系統(tǒng)。
22.—種系統(tǒng),包括: 第一設(shè)備; 第二設(shè)備;以及 包括多個時隙的時隙環(huán)互連; 其中,所述第一設(shè)備包括:用于在所述互連上向所述第二設(shè)備發(fā)送消息并且將所述消息對相應(yīng)時隙的占用限制為圍繞所述時隙環(huán)互連單周的邏輯。
23.如權(quán)利要求22所述的系統(tǒng),其中,所述第二設(shè)備包括:用于監(jiān)測所述時隙環(huán)互連的時隙,以獲得來自連接到所述時隙環(huán)互連的其它設(shè)備的消息的邏輯。
24.如權(quán)利要求22-23中的任何一項所述的系統(tǒng),其中,所述第一設(shè)備包括:用于監(jiān)測所述時隙環(huán)互連的時隙,以獲得來自連接到所述時隙環(huán)互連的其它設(shè)備的消息的邏輯。
25.如權(quán)利要求22-24中的任何一項所述的系統(tǒng),其中,所述時隙環(huán)互連用作循環(huán)移位寄存器。
【文檔編號】H04L12/46GK103560939SQ201310495351
【公開日】2014年2月5日 申請日期:2009年9月25日 優(yōu)先權(quán)日:2008年9月25日
【發(fā)明者】C-T·舒, N·謝呂庫里 申請人:英特爾公司