分組交換的片上互連網絡中的快速虛擬通道的制作方法
【專利摘要】本申請涉及“分組交換的片上互連網絡中的快速虛擬通道”。公開了用于在芯片上部件網絡中使用快速虛擬通道的方法、路由器節(jié)點和指令集。輸入鏈路302可以經由快速虛擬通道110從分組交換網絡中的源節(jié)點102接收快速流控制單元。輸出鏈路306可以把快速流控制單元發(fā)送到匯節(jié)點106。交換機分配器322可以把快速流控制單元直接轉發(fā)到輸出鏈路306。
【專利說明】分組交換的片上互連網絡中的快速虛擬通道
[0001]本分案申請的母案申請日為2009年3月31日、申請?zhí)枮?00980110393.9、發(fā)明名稱為“分組交換的片上互連網絡中的快速虛擬通道”。
【技術領域】
[0002]本發(fā)明一般涉及單芯片多處理器(chipmult1-processor)上的部件之間的通信的領域。本發(fā)明還具體地涉及在單芯片多處理器上的部件之間創(chuàng)建快速(express)虛擬通信通道。
【背景技術】
[0003]單芯片多處理器(CMP)或專用片上系統(tǒng)(ASOC)可能具有需要彼此通信的若干部件。這些部件可以是諸如處理器、高速緩存、數據寄存器或其他芯片部件之類的零件。芯片部件可以使用總線系統(tǒng)或專用布線系統(tǒng)進行通信。這些系統(tǒng)中的每一個可能要求大量的布線,其可能用盡芯片上的寶貴空間并且在信號之間產生干擾。
[0004]這些部件可以通過使用分組交換系統(tǒng)來以空間更高效的方式進行通信。分組交換系統(tǒng)可以通過在部件之間傳送數據分組來起作用,從而減小任意兩個部件之間的布線量。
【發(fā)明內容】
[0005]根據本發(fā)明的實施例,提供了一種在片上網絡中提供快速虛擬通道的方法,所述方法包括:
[0006]經由快速虛擬通道從源節(jié)點接收快速流控制單元;以及
[0007]基于資源缺乏計數器的值與資源缺乏閾值的比較,把快速流控制單元直接轉發(fā)到輸出鏈路以發(fā)送到匯節(jié)點;
[0008]其中,每次去往作為快速流控制單元的相同輸出端口的正常流控制單元被緩沖時,將更新所述資源缺乏計數器,其中,基于確定快速流控制單元正在快速虛擬通道上運行,相對于其它非快速流控制單元,快速流控制單元被給予優(yōu)先選擇。
[0009]根據本發(fā)明的實施例,提供了一種在片上網絡中提供快速虛擬通道的設備,所述設備包括:
[0010]經由快速虛擬通道從源節(jié)點接收快速流控制單元的輸入鏈路;
[0011]基于資源缺乏計數器的值與資源缺乏閾值的比較,把快速流控制單元發(fā)送到匯節(jié)點的輸出鏈路,其中,每次去往作為快速流控制單元的相同輸出端口的正常流控制單元被緩沖時,將更新所述資源缺乏計數器;以及
[0012]將快速流控制單元直接轉發(fā)到輸出鏈路的交換機分配器,其中,基于確定快速流控制單元正在快速虛擬通道上運行,相對于其它非快速流控制單元,快速流控制單元被給予優(yōu)先選擇。
[0013]根據本發(fā)明的實施例,還提供了一種包含代碼的機器可讀介質和一種設備?!緦@綀D】
【附圖說明】
[0014]要理解這些附圖僅描繪了本發(fā)明的典型實施例,而因此不被視為對其范圍的限制,將通過使用附圖另外詳細且具體地描述和解釋本發(fā)明,在附圖中:
[0015]圖1以框圖示出單芯片多處理器部件數據分組傳輸的一個實施例。
[0016]圖2作為二維網狀網絡示出芯片上的部件網絡的一個實施例。
[0017]圖3以框圖示出實施快速虛擬通道的路由器節(jié)點微架構的一個實施例。
[0018]圖4作為二維網狀網絡示出芯片上的動態(tài)快速虛擬通道部件網絡的一個實施例。
[0019]圖5作為框圖示出芯片上的路由靈活(route-flexible)的動態(tài)快速虛擬通道部件網絡的一個實施例。
[0020]圖6以流程圖示出路由器節(jié)點處理來自虛擬通道的數據分組的方法的一個實施例。
[0021]圖7以網狀網絡示出快速虛擬通道網絡中的資源缺乏(starvation)事件的一個實施例。
[0022]圖8以時間線示出正常虛擬通道基于信用(credit)的緩沖器管理系統(tǒng)的一個實施例。
[0023]圖9以時間線示出快速虛擬通道基于信用的緩沖器管理系統(tǒng)的一個實施例。
[0024]圖10以框圖示出靜態(tài)緩沖器管理系統(tǒng)的緩沖器計數的一個實施例。
[0025]圖11以框圖示出動態(tài)共享的緩沖器管理系統(tǒng)的緩沖器計數的一個實施例。
[0026]圖12以框圖示出可獲得的進出給定節(jié)點的路徑的組合的一個實施例。
[0027]圖13以框圖示出虛擬通道的靜態(tài)分區(qū)的一個實施例。
[0028]圖14以框圖示出可以充當路由器節(jié)點的計算機系統(tǒng)的一個實施例。
【具體實施方式】
[0029]本發(fā)明的附加特征和優(yōu)點將在以下的說明書中進行闡述,并且部分地將從說明書中顯而易見,或者可以通過實踐本發(fā)明而獲悉。本發(fā)明的特征和優(yōu)點可以借助于在所附權利要求書中具體指出的工具和組合來實現和獲得。本發(fā)明的這些及其他特征將從以下的說明書和所附的權利要求書中變得更徹底地清楚,或者可以通過實踐如本文所闡述的發(fā)明而獲悉。
[0030]下面詳細討論本發(fā)明的各個實施例。雖然討論了具體的實施方式,但是應當理解這樣做僅僅是為了說明目的。相關領域的技術人員將意識到在不偏離本發(fā)明的精神和范圍的情況下可以使用其他部件和配置。
[0031]本發(fā)明包括諸如方法、設備和計算機指令集之類的各種各樣的實施例、以及與本發(fā)明的基本概念有關的其他實施例。公開了用于在芯片上的部件網絡中使用快速虛擬通道的方法、路由器節(jié)點和指令集。輸入鏈路可以經由快速虛擬通道從分組交換網絡中的源節(jié)點接收快速流控制單元(express flow control unit)。輸出鏈路可以把快速流控制單元發(fā)送到匯節(jié)點。交換機分配器可以把快速流控制單元直接轉發(fā)到輸出鏈路。
[0032]單芯片多處理器(CMP)或專用芯片上系統(tǒng)(ASOC)可能具有許多需要彼此通信的部件。這些部件可以使用分組交換來傳送數據而不使用過量的芯片空間。圖1以框圖示出單芯片多處理器部件數據傳輸100的一個實施例。充當源節(jié)點102的部件可以把數據集組織成數據分組。數據分組可以被分成一個或多個流控制單元(FLIT)。源節(jié)點102可以把每個FLIT傳輸到最近可用的部件。充當路由器節(jié)點104的接收部件可以把數據傳輸到下一個最近可用的部件,直到到達充當匯節(jié)點106的部件為止。FLIT從源節(jié)點102到匯節(jié)點106所遵循的路徑可以被組織成虛擬通道。在正常虛擬通道(NVC) 108中,源節(jié)點102可以把FLIT傳輸到路由器節(jié)點104,該路由器節(jié)點104可以緩沖FLIT、組織該FLIT以及其他經歷該管線的FLIT、然后把它們發(fā)送到輸出鏈路以將其發(fā)送到下一個路由器節(jié)點104或匯節(jié)點 106。
[0033]快速虛擬通道(EVC) 110可以通過接近專用鏈路的等待時間和能量而用來縮短封包化的片上網絡和理想互連結構之間的性能和能量差距。EVCllO可以允許FLIT沿節(jié)點對之間的預定義路徑繞過中間路由器節(jié)點104。與其他FLIT相比,可以給予在EVCllO上行進的FLIT優(yōu)待,從而使得它們直接使用輸出鏈路而不用進行緩沖,且不必通過每個路由器節(jié)點104處的路由器管線。EVCllO可以以類似于電路交換的方式促進流在網絡中的創(chuàng)建而不涉及任何電路建立階段,從而顯著地減少分組傳輸等待時間。此外,通過允許FLIT實際上繞過中間路由器節(jié)點104,EVCllO可以減小緩沖量、路由器交換活動和每跳資源競爭,從而增加能量和面積效率。
[0034]圖2作為二維網狀網絡示出靜態(tài)EVC分組交換網絡200的一個實施例。雖然引用分組交換芯片多處理器網絡,但是EVCllO可以用于任何分組交換網絡。請注意,對本發(fā)明而言,網狀網絡的大小和二維性質是說明性的而決不是限定性的。每個節(jié)點202可以充當源節(jié)點102、路由器節(jié)點104或匯節(jié)點106。網絡200中的每個節(jié)點202可以通過NVC108而連接到相鄰節(jié)點202。而且,節(jié)點202可以通過EVCllO而連接到非相鄰節(jié)點,從而允許FLIT沿預定義路徑穿過多個中間節(jié)點或路由器節(jié)點104,而不用在任何路由器節(jié)點104處停止或緩沖。例如,從節(jié)點B行進到節(jié)點G的FLIT可以采取從節(jié)點B到節(jié)點D的規(guī)則NVC路徑108并且然后采取從節(jié)點D到節(jié)點G的EVCllO或鏈路。EVCllO可以消除通過諸如節(jié)點E和F之類的路由器節(jié)點104的等待時間,并且通過消除路由器節(jié)點104上的所有緩沖操作來節(jié)約功率。在靜態(tài)EVC網絡中,具體的源節(jié)點102和匯節(jié)點106可以通過EVCl 10連接。雖然在本示例中使用四個節(jié)點的靜態(tài)EVC110,但是根據選擇也可以使用更大或更小長度的靜態(tài)EVC110。
[0035]路由器可以實施在虛擬通道流控制之上的快速鏈路。路由器可以指定虛擬通道,該虛擬通道可以僅由在快速路徑上行進的數據分組預訂。圖3以框圖示出實施EVCllO的路由器節(jié)點微架構300的一個實施例。路由器節(jié)點104可以經由輸入鏈路302上的虛擬通道接收FLIT,并且把FLIT引導至流控制模塊304。用于流控制的虛擬通道可以被布置為NVC108和EVCl 10。流控制模塊304可以使用虛擬通道來確定FLIT優(yōu)先級以選擇哪個FLIT轉發(fā)到由縱橫式交換機308所選擇的輸出鏈路306。
[0036]路由計算邏輯模塊310可以在每個路由器節(jié)點104處計算路由計算或數據分組在源節(jié)點102和匯節(jié)點106之間行進的路徑。路由計算邏輯模塊310可以負責驗證數據分組是否可以被放置在EVCllO上。另外,路由計算邏輯模塊310可以執(zhí)行所有數據分組的先行(look-ahead)路由,以便一旦數據分組到達節(jié)點或EVC路徑110端點,在路由器管線的關鍵路徑中就不需要路由計算。路由計算不必以任何方式影響所用的基本路由算法。EVC分配器312可以給打算使用快速通路來在節(jié)點對之間行進的數據分組分配EVCl 10,而NVC分配器314可以給打算行進到鄰近節(jié)點的另一個數據分組分配NVC108。
[0037]流控制模塊304可以經由EVC輸入緩沖器(EVC BUF)316從EVCllO或者經由NVC輸入緩沖器(NVC BUF) 318從NVC108接收FLIT。當FLIT通過其快速路徑110上的任何路由器節(jié)點104時,EVC鎖存器320可以實行(stage)FLIT。通過EVC鎖存器320行進的FLIT可以優(yōu)先于(pre-empt)相同輸出端口 306上的任何其他數據分組流。EVC鎖存器320可以中斷兩個節(jié)點之間正在進行的數據分組傳輸而免于被源節(jié)點102發(fā)送,諸如較低優(yōu)先級EVC 流。
[0038]交換機分配器322可能喜歡EVC流110勝過NVC流108。交換機分配器322可以中斷源節(jié)點102處具有較少跳的FLIT的EVC流110,以便具有更多跳的FLIT的EVC流110可以使用該路由器節(jié)點104。交換機分配器322可以中斷較近源節(jié)點102處的FLIT的EVC流110,以便來自更遠源節(jié)點102的FLIT的EVC流110可以使用該路由器節(jié)點104。
[0039]網絡200可以被靜態(tài)地劃分成EVCllO和NVC108,或者可以具有更多動態(tài)創(chuàng)建的虛擬通道。圖4作為二維網狀網絡示出動態(tài)EVC分組交換網絡400的一個實施例。在動態(tài)EVC分組交換網絡400中,節(jié)點202之間的任何跳集可以被指定為動態(tài)EVC402。EVC路徑402的長度可以在由部件網絡約束確定的最大EVC長度內針對給定數據路徑的路徑來根據需要定制大小。例如,在靜態(tài)EVC網絡200中,源節(jié)點102可以經由單跳NVC路徑108從節(jié)點B遍歷到節(jié)點C并從節(jié)點C遍歷到節(jié)點D,并且經由靜態(tài)分配的EVC路徑110從節(jié)點D遍歷到節(jié)點G。在允許最大三跳EVC路徑402的動態(tài)網絡中,源節(jié)點102可以把FLIT從節(jié)點B直接發(fā)送到節(jié)點E,然后可以使用兩跳長度的子集EVC路徑402而去往節(jié)點G,諸如此類。
[0040]圖5作為框圖示出芯片500上的路由靈活的動態(tài)EVC部件網絡的一個實施例。有時,數據路徑可能由于資源約束而不能使用最優(yōu)EVC路徑502,諸如最長的EVC路徑502。在這種情況下,源節(jié)點102可以經由具有可用資源的可選EVC路徑504 (諸如下一個較短EVC路徑504)發(fā)送FLIT。例如,對于源節(jié)點A102把FLIT發(fā)送到匯節(jié)點G106的最高效的數據路徑可以是把FLIT沿第一最優(yōu)EVC路徑502從源節(jié)點A102直接發(fā)送到節(jié)點D,然后沿第二最優(yōu)EVC路徑502從路由器節(jié)點D104發(fā)送到匯節(jié)點G106。然而,最高效的數據路徑可能沒有可用的資源。源節(jié)點A102可以沿可選路徑504把FLIT發(fā)送到匯節(jié)點。源節(jié)點A102可以沿可選EVC路徑504把FLIT發(fā)送到路由器節(jié)點C104,然后從路由器節(jié)點C104發(fā)送到路由器節(jié)點E104,并然后從路由器節(jié)點E104發(fā)送到匯節(jié)點G106。EVC分配器212可以通過考慮數據分組的路由信息來確定最佳路徑。
[0041]圖6以流程圖示出路由器節(jié)點處理來自虛擬通道的FLIT的方法600的一個實施例。路由器節(jié)點104可以經由虛擬通道(VC)接收FLIT (塊602)。如果FLIT是正常FLIT(NF)(塊604),則路由器節(jié)點104可以把NF存儲在輸入緩沖器中(塊606)并且然后處理NF(塊608)。NF可以是路由器節(jié)點104是源節(jié)點102的FLIT、從NVC108上的鄰近節(jié)點到達路由器節(jié)點104的FLIT、或者路由器節(jié)點104是EVCllO的終點但不是匯節(jié)點106的FLIT。輸入端口可以是NVC輸入緩沖器318 (如果到達NVC108的話)或者是EVC輸入緩沖器316(如果到達EVCllO的話)。路由器節(jié)點104可以把處理的NF轉發(fā)到輸出鏈路306(塊610)。如果FLIT是快速FLIT (EF) 110 (塊604),則路由器節(jié)點104可以把EF轉發(fā)到輸出鏈路306 (塊612)。快速FLIT可以是由在EVCllO中部的路由器節(jié)點104接收的FLIT。
[0042]在為具體的消息流預留帶寬的任何網絡中,當在預先建立的電路上行進的消息阻擋其他消息時可能出現資源缺乏。圖7以網狀網絡示出EVC網絡中的資源缺乏事件700的一個實施例。給予EF702的較高優(yōu)先級可能導致資源缺乏情形704。更具體地,如果沿EVC702路徑的路由器節(jié)點D104總是具有即將到來的EF要服務,則在路由器節(jié)點D104處局部緩沖的NF可能從未得到使用物理通道的機會。來自更上游的快速數據分組也可以使源自下游路由器的不同EVCllO上的快速數據分組連續(xù)資源缺乏。
[0043]為對此進行補救,每個路由器節(jié)點104可以保存該路由器節(jié)點104已服務了具體EVC路徑110的連續(xù)循環(huán)的數量的計數。在給快速FLIT服務了閾值數量的連續(xù)循環(huán)之后,路由器節(jié)點104可以把諸如“開始資源缺乏補救(Begin Starvation Remediation)”消息或“資源缺乏開(Starvation On)”令牌之類的資源缺乏消息沿信用通道向上游發(fā)送到EVC源節(jié)點A102。在接收到這個令牌后,源節(jié)點A102可以停止在對應的鏈路上發(fā)送EF,以允許服務局部資源缺乏的FLIT。在這樣做設定數量的循環(huán)后,路由器節(jié)點D104可以發(fā)送“結束資源缺乏補救(End Starvation Remediation)” 消息或“資源缺乏關(Starvation Off)”令牌到EVC源節(jié)點A102,以信號通知可以恢復EVC通信。
[0044]如圖6中所示,對于EF,如果去往相同輸出端口 306的NF被緩沖(塊614),則路由器節(jié)點104可以遞增資源缺乏計數(SCT)(塊616)。路由器節(jié)點104可以檢查SCT以查看其是否達到了資源缺乏閾值(STHR)(塊618)。如果SCT達到了 STHR (塊618),則路由器節(jié)點104可以把“開始資源缺乏補救”消息(BSRM)向上游發(fā)送到所有EVC源節(jié)點102 (塊620)。在允許所有適當的上游節(jié)點接收BRSM的一段時間之后,路由器節(jié)點104可以進入資源缺乏補救模式,在資源缺乏補救模式期間,路由器節(jié)點不接收EF。雖然路由器節(jié)點104處于資源缺乏補救模式,但是EVC源節(jié)點102可以暫停EF的傳輸、重新路由EF、或者采取其他補償動作。路由器節(jié)點104可以把資源缺乏補救周期計數器(SRP)設定為零(塊622)。
[0045]對于NF,如果路由器節(jié)點104不處于資源缺乏補救模式(塊624),則路由器節(jié)點104可以把SCT復位為零(塊626)。如果路由器節(jié)點104處于資源缺乏補救模式(塊624),則一旦NF已經被成功地路由到輸出端口 306,路由器節(jié)點104就可以遞增SRP (塊628)。一旦資源缺乏補救周期結束(塊630),路由器節(jié)點104就可以把“結束資源缺乏補救”消息(ESRM)發(fā)送到所有上游EVC源節(jié)點102,以信號通知路由器節(jié)點104再次接收EF(塊632)。
[0046]芯片上部件網絡可以使用緩沖流控制技術來管理緩沖器,并且在相鄰的路由器節(jié)點104之間傳送其可用性。下游節(jié)點可以通過背壓把可用的自由緩沖器數量傳送到上游節(jié)點?;谛庞玫木彌_器管理可以使用上游路由器來保存下游可用的自由緩沖器數量的計數。每當發(fā)出FLIT就可以使計數遞減,從而消耗下游緩沖器。當FLIT離開下游節(jié)點并且釋放其相關緩沖器時,可以向上游發(fā)回信用并且可以遞增對應的自由緩沖器計數。
[0047]部件網絡可以使用簡單的緩沖器管理方案來給每個虛擬通道靜態(tài)地分配等于該虛擬通道的信用往返延遲的緩沖。圖8以時間線示出NVC108基于信用的緩沖器管理系統(tǒng)800的一個實施例。在時間h,當節(jié)點B發(fā)送FLIT到下一個節(jié)點(箭頭802)時,節(jié)點B可以在h和t2之間發(fā)送信用到節(jié)點A (箭頭804)。節(jié)點A可以在t2和t3之間處理信用(箭頭806)。節(jié)點A可以發(fā)送信用到先前節(jié)點(箭頭804)同時在t3和t4之間發(fā)送FLIT到節(jié)點B(箭頭802)。節(jié)點B可以從&到t5處理非快速管線中的FLIT (箭頭808)。因而,從&到七5可以得到信用往返延遲(TCEN)。
[0048]當使用EVCllO時,緩沖器可用性的傳送可以跨越若干跳來完成,以確保在下游EVC匯節(jié)點106處的自由緩沖器。緩沖器可用性的多跳傳送可能導致較長的緩沖周轉時間,對通過量有不良影響。圖9以時間線示出EVCllO基于信用的緩沖器管理系統(tǒng)900的一個實施例。在時間h,當節(jié)點D發(fā)送FLIT到下一個節(jié)點(箭頭902)時,節(jié)點D可以在^和t2之間發(fā)送信用到節(jié)點A(箭頭904)。節(jié)點A可以在t2和t3之間處理信用(箭頭906)。節(jié)點A可以發(fā)送信用到先前節(jié)點(箭頭904)同時在t3和t4之間發(fā)送FLIT到節(jié)點B (箭頭902)。節(jié)點B可以從t4到t5把FLIT轉發(fā)到作為部分快速管線的輸出鏈路(箭頭908)。節(jié)點B可以在t5和t6之間發(fā)送FLIT到節(jié)點C (箭頭902)。節(jié)點C可以從t6到t7把FLIT轉發(fā)到作為部分快速管線的輸出鏈路(箭頭908)。節(jié)點C可以在t7和t8之間發(fā)送FLIT到節(jié)點D(箭頭902)。節(jié)點C可以從^到^處理非快速管線中的FLIT(箭頭910)。因而,從^到^可以得到信用往返延遲(TCKE)。
[0049]緩沖器管理系統(tǒng)可以靜態(tài)地組織緩沖器。圖10以框圖示出靜態(tài)緩沖器管理系統(tǒng)1000的緩沖器計數的一個實施例。緩沖器的靜態(tài)數量可以被分派給每個虛擬通道,被保留用于到達每個虛擬通道的FLIT。NVC緩沖器集1002可以被保留用于每個NVC108并且EVC緩沖器集1004可以被保留用于每個EVC110。當設定該集中緩沖器的數量時,每個EVC緩沖器集1004的大小可以把Tcke考慮在內。
[0050]靜態(tài)緩沖器管理可能在對立業(yè)務的情況下在分配緩沖器方面效率低。例如,如果大多數網絡業(yè)務只有近鄰,則EVCl 10也許從未被使用,并且靜態(tài)分派給EVCl 10的緩沖器空間也許變得閑置。代替把緩沖器靜態(tài)地分區(qū)成VC (諸如NVC108和EVC110)的是,緩沖器可以按需被分派給VC。當緩沖器變得可用時,向上游節(jié)點信號通知EVC的存在的高水位線(high-water mark)方案可以優(yōu)先考慮短跳EVC402或NVC108而不是長跳。例如,如果兩跳EVC402要求至少八個緩沖器可用,則當在下游路由器處的緩沖器計數等于八時,下游路由器可以給上游路由器信號通知離開兩個節(jié)點(two nodes away)的EVC402可用??梢栽试S緩沖器自由浮動跨越VC,以致VC可能只有一個FLIT。
[0051]圖11以框圖示出動態(tài)`共享的緩沖器管理系統(tǒng)1100的緩沖器計數的一個實施例。緩沖器計數1102可以表示可用的或自由的緩沖器的數量。如果緩沖器計數1102指示可用緩沖器的數量等于NVC閾值數量1104、或者為操作NVC108所需的緩沖器數量,則節(jié)點可以使用NVC108。如果緩沖器計數1102指示可用緩沖器的數量等于EVC閾值數量1106、或者為操作EVC402所需的緩沖器數量,則節(jié)點可以使用EVC402。EVC閾值1106可以與EVC路徑402的長度有關。
[0052]為了實現靈活的緩沖,下游路由器可能必須向上游路由器發(fā)送適當的信號。圖12以框圖示出可獲得的進出給定節(jié)點的路徑1200的組合的一個實施例。雖然示出八節(jié)點網絡,但是可以使用其他大小的網絡。
[0053]VC可以被靜態(tài)地分區(qū)。圖13以框圖示出虛擬通道的靜態(tài)分區(qū)1300的一個實施例。VC的總數1302或分組狀態(tài)跟蹤器(packet state tracker)可以在NVC108和不同長度的EVC402兩者之間進行劃分。這種劃分可以在設計時完成。對于具有EVC長度高達Imax的能力的部件網絡而言,總計(kX Imax)的虛擬通道集可以被供應。部件網絡可以給NVC108分派h個虛擬通道1302,給長度為二的EVC402分派k2個虛擬通道,給長度為三的EVC402分派k3個虛擬通道,諸如此類。
[0054]圖14示出用于充當分組交換網絡中的路由器節(jié)點104的計算系統(tǒng)1400的可能配置。路由器節(jié)點104可以包括通過總線1440連接的控制器/處理器1410、存儲器1420、網絡接口 1430。路由器節(jié)點104可以實施任何操作系統(tǒng),例如諸如Microsoft Windows.、UNIX或LINUX??蛻舳撕头掌鬈浖梢砸匀魏尉幊陶Z言來編寫,例如諸如C、C++、Java或VisualBasic。服務器軟件可以運行在應用程序框架上,例如諸如Java?服務器或.Ν1Π—?框架。
[0055]控制器/處理器1410可以是為本領域技術人員所已知的任何編程處理器。然而,決策支持方法也可以在通用或專用計算機、編程微處理器或微控制器、外圍集成電路元件、專用集成電路或其他集成電路、硬件/電子邏輯電路,諸如分立元件電路、可編程邏輯器件(諸如可編程邏輯陣列、現場可編程門陣列等等)上實施。一般而言,能夠實施如本文所描述的EVC路由方法的任一裝置或多個裝置可以用來實施本發(fā)明的決策支持系統(tǒng)功能。
[0056]存儲器1420可以包括易失性和非易失性數據儲存器,包括一個或多個電、磁或光存儲器,諸如隨機存取存儲器(RAM)、高速緩存、硬驅或其他存儲器裝置。存儲器可以具有高速緩存以加速對特定數據的訪問。存儲器1420也可以連接到致密盤只讀驅動器(CD-ROM)、數字多功能光盤只讀存儲器(DVD-ROM)、DVD讀寫輸入、磁帶驅動或者允許直接加載數據到系統(tǒng)中的其他可移動存儲器裝置。
[0057]網絡連接接口 1430可以連接到通信裝置、調制解調器、網絡接口卡、收發(fā)器或者任何其他能夠從網絡發(fā)射和接收信號的裝置。網絡連接接口 1430可以用來把路由器節(jié)點104連接到網絡。路由器節(jié)點104的部件可以例如經由電總線1440連接或者被以無線方式鏈接。
[0058]客戶端軟件和數據庫可以被控制器/處理器1410從存儲器1420進行訪問,并且例如可以包括數據庫應用、字處理應用以及體現本發(fā)明的決策支持功能的部件。路由器節(jié)點104可以實施任何操作系統(tǒng),例如諸如Microsoft Windows?、UNIX或LINUX??蛻舳撕头掌鬈浖梢砸匀魏尉幊陶Z言來編寫,例如諸如C、C++、Java或Visual Basic。盡管不要求,但是在諸如程序模塊之類的計算機可執(zhí)行指令的一般背景下,至少部分地描述本發(fā)明,所述計算機可執(zhí)行指令由諸如通用計算機之類的電子裝置執(zhí)行。一般而言,程序模塊包括執(zhí)行特定任務或實施特定抽象數據類型的例程程序、對象、部件、數據結構等等。此外,本領域的技術人員將明白,本發(fā)明的其他實施例可以在具有許多類型的計算機系統(tǒng)配置的網絡計算環(huán)境中加以實施,包括個人計算機、手持式裝置、多處理器系統(tǒng)、基于微處理器的或可編程消費者電子器件、網絡PC、小型計算機、大型計算機、等等。
[0059]盡管不要求,但是在諸如程序模塊之類的計算機可執(zhí)行指令的一般背景下至少部分地描述本發(fā)明,所述計算機可執(zhí)行指令由諸如通用計算機之類的電子裝置執(zhí)行。一般而言,程序模塊包括執(zhí)行特定任務或實施特定抽象數據類型的例程程序、對象、部件、數據結構等等。此外,本領域的技術人員將明白,本發(fā)明的其他實施例可以在具有許多類型的計算機系統(tǒng)配置的網絡計算環(huán)境中加以實施,包括個人計算機、手持式裝置、多處理器系統(tǒng)、基于微處理器的或可編程消費者電子器件、網絡PC、小型計算機、大型計算機、等等。
[0060]實施例也可以在分布式計算環(huán)境中加以實施,其中任務由通過通信網絡(由硬布線鏈路、無線鏈路或由其組合)鏈接的本地和遠程處理裝置執(zhí)行。
[0061]本發(fā)明范圍內的實施例也可以包括用于承載計算機可執(zhí)行指令或數據結構或者在其上存儲計算機可執(zhí)行指令或數據結構的計算機可讀介質。這樣的計算機可讀介質可以是任何可用介質,所述介質可以由通用或專用計算機訪問。作為示例而非限制,這樣的計算機可讀介質可以包括RAM、ROM、EEPROM、CD-ROM或其他光盤儲存器、磁盤儲存器或其他磁儲存器裝置、或者任何其他可以用來以計算機可執(zhí)行指令或數據結構的形式承載或存儲期望的程序代碼構件的介質。當信息通過網絡或另一通信連接(硬布線的、無線的或其組合)而被轉移或提供到計算機時,計算機把該連接恰當地視為計算機可讀介質。因而,任何這樣的連接被恰當地稱作計算機可讀介質。上面的組合也應當被包括在計算機可讀介質的范圍內。
[0062]計算機可執(zhí)行指令包括例如使通用計算機、專用計算機或專用處理裝置執(zhí)行特定功能或功能組的指令和數據。計算機可執(zhí)行指令也包括由獨立或網絡環(huán)境中的計算機執(zhí)行的程序模塊。一般而言,程序模塊包括執(zhí)行特定任務或實施特定抽象數據類型的例程、程序、對象、組件和數據結構等等。計算機可執(zhí)行指令、相關數據結構以及程序模塊代表用于執(zhí)行本文公開的方法的步驟的程序代碼構件的示例。這樣的可執(zhí)行指令或相關數據結構的特定序列代表用于實施在此類步驟中描述的功能的對應動作的示例。
[0063]盡管上面的描述可以包含特定細節(jié),但是它們不應當被解釋為以任何方式限制本發(fā)明。本發(fā)明的所描述實施例的其他配置是本發(fā)明的范圍的一部分。例如,本發(fā)明的原理可以應用于每個單獨用戶,其中每個用戶可以單獨部署這樣的系統(tǒng)。即使大量可能應用中的任何一個不需要本文描述的功能,這也使得每個用戶能夠利用本發(fā)明的益處。電子裝置的多個實例中的每一個可以以各種可能的方式處理內容。不必需要所有終端用戶都使用一個系統(tǒng)。因此,所附的權利要求書及其法律等效物應當唯一地限定本發(fā)明,而不是由所給出的任何特定實例來限定本發(fā)明。
【權利要求】
1.一種在片上網絡中提供快速虛擬通道的方法,所述方法包括: 經由快速虛擬通道從源節(jié)點接收快速流控制單元;以及 基于資源缺乏計數器的值與資源缺乏閾值的比較,把快速流控制單元直接轉發(fā)到輸出鏈路以發(fā)送到匯節(jié)點; 其中,每次去往作為快速流控制單元的相同輸出端口的正常流控制單元被緩沖時,將更新所述資源缺乏計數器,其中,基于確定快速流控制單元正在快速虛擬通道上運行,相對于其它非快速流控制單元,快速流控制單元被給予優(yōu)先選擇。
2.如權利要求1所述的方法,進一步包括: 跟蹤從快速虛擬通道接收的快速流控制單元; 如果達到資源缺乏閾值,則進入資源缺乏補救模式;以及 把正常流控制單元傳輸到相鄰節(jié)點。
3.如權利要求1所述的方法,其中快速虛擬通道具有靜態(tài)長度。
4.如權利要求1所述的方法,其中快速虛擬通道具有動態(tài)長度。
5.如權利要求1所述的方法,其中快速虛擬通道是在最優(yōu)快速虛擬通道不能用的情況下供替換的快速虛擬通道。
6.如權利要求1所述的方法,其中快速虛擬通道具有靜態(tài)分派的緩沖器。
7.如權利要求1所述的方法,其中快速虛擬通道具有動態(tài)分派的緩沖器。
8.一種在片上網絡中提供快速虛擬通道的設備,所述設備包括: 經由快速虛擬通道從源節(jié)點接收快速流控制單元的輸入鏈路; 基于資源缺乏計數器的值與資源缺乏閾值的比較,把快速流控制單元發(fā)送到匯節(jié)點的輸出鏈路,其中,每次去往作為快速流控制單元的相同輸出端口的正常流控制單元被緩沖時,將更新所述資源缺乏計數器;以及 將快速流控制單元直接轉發(fā)到輸出鏈路的交換機分配器,其中,基于確定快速流控制單元正在快速虛擬通道上運行,相對于其它非快速流控制單元,快速流控制單元被給予優(yōu)先選擇。
9.如權利要求8所述的設備,進一步包括確定是否達到資源缺乏閾值的資源缺乏計數器,使得正常流控制單元能夠到達相鄰節(jié)點。
10.如權利要求8所述的設備,其中快速虛擬通道具有靜態(tài)長度。
11.如權利要求8所述的設備,其中快速虛擬通道具有動態(tài)長度。
12.如權利要求8所述的設備,其中快速虛擬通道是在最優(yōu)快速虛擬通道不能用的情況下供替換的快速虛擬通道。
13.如權利要求8所述的設備,其中快速虛擬通道具有靜態(tài)分派的緩沖器。
14.如權利要求8所述的設備,其中快速虛擬通道具有動態(tài)分派的緩沖器。
15.如權利要求8所述的設備,其中單芯片多處理器包括路由器節(jié)點。
16.一種包含代碼的機器可讀介質,當所述代碼被執(zhí)行時,使得機器執(zhí)行如權利要求1-7中任一項所述的方法。
17.一種設備,包括執(zhí)行如權利要求1-7中任一項所述的方法的部件。
【文檔編號】H04L29/08GK103501285SQ201310460325
【公開日】2014年1月8日 申請日期:2009年3月31日 優(yōu)先權日:2008年4月2日
【發(fā)明者】A.庫馬, P.P.孔杜 申請人:英特爾公司