TWI447677B - 動態地重新指定虛擬信道緩衝器之分配以最大化輸入輸出效能的方法 - Google Patents
動態地重新指定虛擬信道緩衝器之分配以最大化輸入輸出效能的方法 Download PDFInfo
- Publication number
- TWI447677B TWI447677B TW097117307A TW97117307A TWI447677B TW I447677 B TWI447677 B TW I447677B TW 097117307 A TW097117307 A TW 097117307A TW 97117307 A TW97117307 A TW 97117307A TW I447677 B TWI447677 B TW I447677B
- Authority
- TW
- Taiwan
- Prior art keywords
- bridges
- virtual channel
- bridge
- virtual
- hub
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4045—Coupling between buses using bus bridges where the bus bridge performs an extender function
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明大體係關於電腦及類似技術之領域,且詳言之,係關於電腦輸入輸出(IO)效能。仍更特定言之,本發明係關於重新指定緩衝器分配以最大化虛擬信道之IO效能。
本申請案含有關於以下美國申請案中之標的物的標的物,該申請案與本申請案在同一日期申請且讓與給本申請案之受讓人:"動態重新指定虛擬信道資源(Dynamically Reassigning Virtual Lane Resources)"(代理檔案號AUS920070481)。
考慮到當代社會中對電腦之連續增大的依賴,電腦技術已在許多方面進步以跟上增大的效能需求。為了滿足增大的效能需求,經常需要提供日益更快且更複雜之硬體組件。此外,在許多應用中,諸如處理器及周邊組件(諸如儲存設備、網路連接等)之多個硬體組件經並行操作以增大總系統效能。
發展努力所針對的一特定領域為管理由電腦利用之硬體組件,例如,儲存設備、網路連接、工作台、及轉接器、控制器及用於連接此等組件至電腦之中央處理單元(亦即,處理器)的其他互連硬體設備。經常稱為輸入/輸出(IO)資源之周邊組件通常經由一或多個中間互連硬體設備組件而耦接至電腦,該等硬體設備組件形成一"組織",中央處理單元與IO資源之間的通信經由該組織。
在較高效能電腦設計中,IO效能可能使互連硬體設備之複雜組態成為必要以處置設計之通信需要。在一些例項中,通信需要可能足夠大以使與電腦之中央處理單元所容納於之外殼分離及耦接至其的額外外殼成為必要。
經常,在更複雜之設計中,諸如IO轉接器之周邊組件可使用槽而耦接至IO組織,該等槽經排列於電腦之主外殼或輔助外殼中之任一者或兩者中。其他組件可以其他方式安裝或耦接至IO組織,例如,經由電纜及其他類型之連接器;然而,此等其他類型之連接器亦稱為槽。不管所使用之連接的類型,IO槽因此表示用於IO資源之連接點或IO端點以經由IO組織與電腦通信。
在較高效能電腦設計中,在系統中可用之IO槽的數目可按比例放大至數百。當處理大量IO槽時,IO可使用IO匣(IO drawer)與CPU複合體分離。為將IO匣連接至CPU複合體,IO功能經劃分為兩個組件(集線器及橋接器)。集線器指代IO功能之直接連接至處理器複合物(亦稱為處理器節點)的部分。橋接器指代在IO匣中的與集線器連接的組件。
視IO匣設計而定,每IO匣可能有一個或多個IO橋接器。隨著系統超過大小範圍,IO集線器之數目亦連同IO橋接器之數目一起增大。當將多個IO橋接器附接至單一集線器時,橋接器可被捆紮在一起且以迴路或串組態連接至集線器。經由諸如行業標準匯流排(諸如InfiniBand超高帶寬互連或快速周邊組件互連(PCI-Express))的匯流排在集線器與
橋接器之間傳遞資料。符合InfiniBand或PCI-Express協定之匯流排使用被稱為虛擬信道之概念來在各種組件之間傳遞資料。每一虛擬信道具有經指定至其以用於在兩個方向上傳遞資料的設定量之緩衝空間。一關於虛擬信道之問題在於,歸因於成本及空間限制,每虛擬信道之緩衝空間的量受到限制。此限制可支配系統及個別IO組件的總IO效能。
因此,需要提供一種用於在初始化及執行時間應用程式期間重新指定緩衝空間以最大化虛擬信道之IO效能的方法。
根據本發明,闡述一種用於重新指定緩衝空間以最大化虛擬信道之IO效能的方法。更特定言之,該用於重新指定緩衝空間之方法自未使用之虛擬信道取得緩衝空間且將未使用之緩衝空間重新指定至所使用之虛擬信道。舉例而言,在支援四個虛擬信道,其中僅兩個虛擬信道在使用中的實施例中,該方法重新指定來自其他兩個未使用虛擬信道的緩衝空間以供在使用中之兩個虛擬信道使用。
當重新指定虛擬信道緩衝空間時,可基於資料移動之方向來指定虛擬信道緩衝空間。關於虛擬信道緩衝空間,緩衝空間分為用於傳遞資料之空間及用於接收資料的空間。對於傳遞資料,僅需要用於將資料交遞至相鄰組件的足夠空間,對於接收資料,需要儘可能大的空間來捕獲所請求之資料及自另一組件傳遞之資料兩者。
因此,在本發明之一態樣中,緩衝空間自未使用之虛擬信道經移除且接著基於資料流動之方向而重新指定。對於用於傳遞資料之虛擬信道,緩衝空間經設定至最小緩衝空間大小,且對於用於接收資料之虛擬信道,緩衝空間經設定至最大緩衝空間大小。
在本發明之另一態樣中,當重新指定緩衝空間時,亦考慮橋接器之組態。舉例而言,當橋接器以橋接器之迴路或串組態而組態時,資料流動之方向將基於橋接器在何處與集線器相關而變化。更特定言之,關於橋接器之迴路,橋接器中之一些在一朝向集線器之方向上發送資料且一些橋接器在另一方向上發送資料。對於串組態,資料僅在一與集線器相關之方向上流動。
用於重新指定緩衝空間之系統判定可出現之各種組態且在初始化期間組態系統。另外,用於重新指定緩衝空間之系統處理執行時間情形,其中資料方向(諸如)歸因於錯誤條件、或匣添加或移除,或迴路分成串或串連接成迴路而改變。在該等情況下,用於重新指定緩衝空間之系統在執行時間期間重新分配緩衝器以維持系統之效能。另外,在特定情況下,系統需要考慮資料在重新分配之前於何處臨時停止。
在特定實施例中,用於重新指定緩衝空間之系統經實施於系統之韌體中。在系統之初始化期間,韌體首先判定哪些虛擬信道將不會被使用且將緩衝空間重新指定至剩餘虛擬信道。接著基於橋接器如何附接至集線器,韌體指定緩
衝空間以最大化IO效能,使得接收資料之虛擬信道埠與傳遞資料之虛擬信道相比具有大部分緩衝空間。韌體接著監視系統之資料方向改變。若偵測到此改變,則韌體在首先臨時停止資料流動之後重新指定虛擬信道緩衝器以在另一方向上最大化效能。
本發明之上文以及額外之目的、特徵及優勢將在以下實施方式中變得顯而易見。
在所附申請專利範圍中闡述本發明之新穎特徵所信任之特性。然而,當結合隨附圖式閱讀時,本發明自身以及較佳使用模式、其他目的及其優勢將藉由參考說明性實施例之以下實施方式而最佳地理解。
參看圖1,展示可實施本發明之例示性電腦系統的方塊圖。更特定言之,電腦系統100包括經由諸如InfiniBand鏈路之鏈路耦接至輸入輸出(IO)匣單元112的至少一處理器節點110。處理器節點110包括複數個處理器120a、120b,其耦接至記憶體122以及至集線器124。輸入輸出匣單元112包括一或多個橋接器140。集線器124與橋接器140之組合提供IO控制器(IOC)。匣單元112為實體封裝。通常(但不一定),IO匣單元駐留於一托架內。
集線器124實施複數個架構埠150a、150b。橋接器140中之每一者實施複數個架構埠152a、152b。每一埠提供將設備耦接至鏈路之雙向介面。鏈路為兩個設備上之兩個埠之間的雙向高速連接。
記憶體122包括揮發性及非揮發性記憶體兩者。韌體160儲存於記憶體122內且由處理器120中之至少一者執行。韌體160包括用於重新指定虛擬信道資源之系統162。
在特定實施例中,系統100可包括複數個IO匣單元112,其中每一IO匣單元112包括多個槽(例如,每匣6至20個槽)以及每IO匣單元112一或多個(例如,1至4個)橋接器。IO匣單元112可以串組態或迴路組態彼此耦接。IO槽中之每一者可符合諸如PCIX或快速PCI協定之IO協定。
資訊經由虛擬信道在集線器與橋接器之間傳達。虛擬信道允許基於類別類型(例如,回應/請求)來分離資料,及處理服務品質以及排序及一致問題。
對於在集線器與橋接器之間轉移資料有兩個主要命令類型。該兩個命令類型為請求及回應。當設備要求諸如DMA讀/寫、記憶體映射讀/寫讀取、IO讀/寫、組態讀/寫、訊息及中斷之動作時,使用請求。當資料自請求返回(諸如,資料自DMA讀取請求返回)時,使用回應。請求及回應係無序的且經處理為獨立流。為了進行此,其經指定不同虛擬信道。
參看圖2,展示埠及鏈路之互連的方塊圖。更特定言之,每一埠150、152包括複數個虛擬信道210以及傳輸器220及接收器222。每一虛擬信道包括發送緩衝器230及接收緩衝器232。每一緩衝器對提供虛擬信道緩衝器資源。
在一實施例中,集線器124及橋接器140之每一埠150、152實施四對發送/接收緩衝器對。每一埠實施包括資料虛
擬信道(VL0至VL3)(其充當用於發送且接收資料封包之資料緩衝器)及虛擬信道15(VL15)(其充當專用於SMP封包之發送及接收之子網路管理封包(SMP)緩衝器)的複數個虛擬信道。
即使所有虛擬信道使用相同實體導線(亦即,鏈路)來輸送資料,每一虛擬信道亦被處理為獨立資料流。因為每一虛擬信道為獨立資料流,所以每一虛擬信道包括獨立緩衝空間、仲裁及與每虛擬信道之輸送協定相關聯的其他項。每一虛擬信道具有用於在兩個方向上傳遞資料之設定量的經指定緩衝空間。由於緩衝空間跨越於設備之間,故緩衝空間用於臨時儲存資料。集線器及橋接器使用流動控制來在彼此之間傳達可用緩衝空間之量。若鄰近之設備不具有足夠緩衝空間來儲存所傳遞之資料,則傳遞設備不可轉遞資料。
圖3展示集線器及處於迴路組態之複數個橋接器的互連之一實例的方塊圖。特定言之,在迴路組態中,第一集線器埠(埠1)耦接至第一橋接器之第一橋接器埠(橋接器0,埠1)。第一橋接器之第二橋接器埠(橋接器0,埠2)耦接至第二橋接器之第一橋接器埠(橋接器1,埠1)。第二橋接器之第二橋接器埠(橋接器1,埠2)耦接至第三橋接器之第一橋接器埠(橋接器2,埠1)。第三橋接器之第二橋接器埠(橋接器2,埠2)耦接至第四橋接器之第一橋接器埠(橋接器3,埠1)。第四橋接器之第二橋接器埠(橋接器3,埠2)耦接至集線器之第二埠(埠2)。
圖4展示集線器及處於串組態之複數個橋接器的互連之一實例的方塊圖。特定言之,在串組態中,第一集線器埠(埠1)耦接至第一橋接器之第一橋接器埠(橋接器0,埠1)。第一橋接器之第二橋接器埠(橋接器0,埠2)耦接至第二橋接器之第一橋接器埠(橋接器1,埠1)。第二橋接器之第二橋接器埠(橋接器1,埠2)耦接至第三橋接器之第一橋接器埠(橋接器2,埠1)。第三橋接器之第二橋接器埠(橋接器2,埠2)耦接至第四橋接器之第一橋接器埠(橋接器3,埠1)。第四橋接器之第二橋接器埠(橋接器3,埠2)未經附接。集線器之第二埠亦未經附接。
圖5展示集線器及處於多串組態之複數個橋接器之一實例的方塊圖。特定言之,在多串組態中,第一集線器埠(埠1)耦接至第一橋接器之第一橋接器埠(橋接器0,埠1)。另外,第二橋接器之第二橋接器埠(橋接器1,埠2)耦接至第三橋接器之第一橋接器埠(橋接器2,埠1)。第三橋接器之第二橋接器埠(橋接器2,埠2)耦接至第四橋接器之第一橋接器埠(橋接器3,埠1)。第四橋接器之第二橋接器埠(橋接器3,埠2)耦接至集線器之第二埠(埠2)。第一橋接器與第二橋接器未連接。
參看圖6,展示用於重新指定虛擬信道資源之系統之操作的流程圖。更特定言之,用於重新指定虛擬信道資源之系統600藉由在步驟610處識別系統100內之可用集線器及橋接器而起始操作。接下來,在步驟612處,系統判定系統內之哪些虛擬信道未經指定(亦即,未由系統使用)。舉
例而言,在一實施中,儘管IO匣單元具有四個虛擬信道,但僅指定虛擬信道0及1。若系統600判定一些虛擬信道未使用,則系統600在步驟614處將來自未使用之虛擬信道的緩衝空間中之一些或全部重新指定至所使用之虛擬信道。舉例而言,在虛擬信道2及3未經使用之實施例中,則系統600將來自虛擬信道2及3之緩衝空間重新指定至虛擬信道0及1。
接下來,系統600在步驟620處判定系統100內之資料流動。資料流動可已由韌體在初始化期間指定或可由韌體在步驟620處指定。資源之指定的特定態樣視資料流動之方向而定。在步驟622處,系統基於資料流動組態虛擬信道資源。
對於一串,所有資料在集線器與任何給定橋接器之間的一方向上流動。對於串組態,韌體指定在一方向上之資料流動。在迴路組態中,任何給定橋接器具有兩條可能之資料路徑來將資料發送至集線器。在一實施例中,對於迴路組態,韌體使資料流動分裂,使得一半橋接器將資料發送至集線器埠1且一半橋接器將資料發送至集線器埠2。若韌體考慮哪些設備耦接至特定橋接器之槽,則韌體可不同地指定橋接器且接著基於設備之潛在頻寬與橋接器之數目之關係而指定資料流動係可能的。系統600藉由讀取與資料流動功能有關之集線器及橋接器中的暫存器而判定資料流動之方向。
接下來,在步驟624處,系統識別虛擬信道資源增量且
判定多大的緩衝空間待指定用於每一虛擬信道。
舉例而言,在一實施例中,在具有2千位元組之可用虛擬信道緩衝器資源及512個位元組之虛擬信道粒度的系統中,存在複數個可能之虛擬信道緩衝器指定。更特定言之,虛擬信道緩衝器指定包括:VL0=512,VL1=1536,VL0=1536,VL1=512
VL0=1024,VL1=1024
應瞭解,虛擬信道緩衝器大小之變化及虛擬信道緩衝器粒度的其他可能指定係可用的。
在串組態中,集線器之路徑中的一埠直接連接至該集線器或耦接至經連接至HUB之一橋接器或多個橋接器。在迴路組態中,橋接器之埠中之一者係在集線器之埠1的路徑中,且橋接器之另一埠係在集線器之埠2的路徑中。即使每一橋接器在迴路組態中具有至集線器之兩條路徑,資料亦僅在一路徑上流動。
又,因為IO匣單元112可包括每集線器124一系列橋接器140,所以橋接器140亦可將穿透資料發送至與集線器124通信之鄰近橋接器及將資料自該等鄰近橋接器發送,而無其自己的資料。
接下來,在步驟628處,系統基於橋接器140之資料流動方向對於每一橋接器組態虛擬信道入口埠緩衝器設定。更特定言之,將資料發送至集線器124之橋接器埠稱為入口埠。將資料傳遞至鄰近橋接器但在遠離集線器124之方向
上的橋接器埠稱為出口埠。
對於入口埠,在集線器124之方向上傳遞請求。此等請求經內部產生於橋接器內或該等請求作為來自出口埠之穿透而提交。因為此等請求為短期的,所以緩衝器要求為在集線器124之方向上傳遞的請求最小。對於入口埠,回應表示來自先前請求(來自內部請求或來自出口埠下游之橋接器的請求)之資料。為最大化效能且最小化時間,鄰近橋接器在將更多回應資料發送至入口埠之前必須等待,回應虛擬信道資源應被最大化。因此,對於入口埠,需要最大化用於回應之虛擬信道緩衝且最小化用於請求之虛擬信道緩衝。
使用具有2千位元組之虛擬信道緩衝器資源之系統的實例,對於入口埠,虛擬信道0經組態以處置請求且虛擬信道1經組態以處置回應。因此,資源經組態,使得VL0資源經最小化至512個位元組且VL1資源經最大化至1536個位元組。
對於出口埠,自鄰近橋接器接收請求。可存在一個鄰近橋接器及多個鄰近橋接器。為避免變為瓶頸,出口埠應經組態以接受儘可能多的請求。因此,用於請求處置出口埠的虛擬信道緩衝空間應被最大化。對於出口埠,回應自入口埠流至出口埠。因為回應以相對短期穿透,所以無需大量緩衝空間,此係因為回應之效能係藉由鄰近橋接器之入口埠(出口埠將資料轉遞至其)的虛擬信道緩衝而判定。因此,對於出口埠,需要最大化用於請求之虛擬信道緩衝且
最小化用於回應之虛擬信道緩衝。
使用具有2千位元組之虛擬信道緩衝器資源之系統的實例,對於出口埠,虛擬信道0經組態以處置請求且虛擬信道1經組態以處置回應。因此,資源經組態,使得VL0資源經最大化至1536個位元組且VL1資源經最小化至512個位元組。
因此,與自鄰近橋接器接收資料相關聯的虛擬信道經最大化且與在橋接器內之埠之間傳遞資料相關聯的虛擬信道經最小化。
舉例而言,再次參看圖3,韌體對於最接近集線器124之埠1的兩個橋接器設定資料流動使得資料流動通過橋接器之埠1朝向集線器的埠1,且對於最接近集線器之埠2的兩個橋接器(橋接器2及橋接器3)設定資料使得資料流動通過橋接器之埠2朝向集線器124的埠2。
使用具有2千位元組之虛擬信道緩衝器資源之系統的實例,對於橋接器0及橋接器1,資源經指定使得埠1虛擬信道0請求資源經最小化(例如,至512個位元組)且埠1虛擬信道1回應資源經最大化(例如,至1536個位元組),而埠2虛擬信道0請求資源經最大化(例如,至1536個位元組)且埠2虛擬信道1回應資源經最小化(例如,至1536個位元組)。對於橋接器2及橋接器3,資源經指定使得埠1虛擬信道0請求資源經最大化(例如,至1536個位元組)且埠1虛擬信道1回應資源經最小化(例如,至512個位元組),而埠2虛擬信道0請求資源經經最小化(例如,至512個位元組)且埠2虛擬信
道1回應資源經最大化(例如,至1536個位元組)。
又舉例而言,再次參看圖4,韌體對於所有四個橋接器設定資料流動,使得資料流動通過橋接器之埠1朝向集線器之埠1,且反之亦然。
使用具有2千位元組之虛擬信道緩衝器資源之系統的實例,資源經指定使得埠1虛擬信道0請求資源經最小化(例如,至512個位元組)且埠1虛擬信道1回應資源經最大化(例如,至1536個位元組),而埠2虛擬信道0請求資源經最大化(例如,至1536個位元組)且埠2虛擬信道1回應資源經最小化(例如,至1536個位元組)。
可在系統初始化過程期間(亦即,在系統啟動時)發生虛擬信道資源之重新指定。此重新指定稱為靜態重新指定。另外,在特定情形中,可能需要在系統正在執行時執行重新指定操作。此重新指定稱為動態重新指定。
舉例而言,當橋接器組態自迴路組態改變為串組態(此可能在迴路之一末端變成斷開時發生)時,可能需要虛擬信道資源之動態重新指定。當橋接器組態自迴路組態改變為多串組態(此可能在迴路內之兩個橋接器變成斷開時發生)時,可能需要虛擬信道資源之動態重新指定。當額外IO匣單元添加至系統時,亦可能需要虛擬信道資源之動態重新指定。當IO匣單元自系統移除時,亦可能需要虛擬信道資源之動態重新指定。
更特定言之,對於橋接器組態自迴路組態改變為串組態之情形,當虛擬信道資源經最初重新指定時,特定橋接器
(例如,橋接器0及1)之虛擬信道資源經組態以在一方向上發送且其他橋接器(例如,橋接器2及3)之虛擬信道資源經組態以在另一方向上發送資料。若在執行時間期間,橋接器組態改變,則若虛擬信道資源未經重新指定則可能不利地影響虛擬信道資源的效能。
用於重新指定虛擬信道資源之系統可能包括於管理分區之韌體超管理器內或為執行時間提取服務(RTAS)之部分的韌體元件內。
存在複數個機制,韌體可能經由其知曉橋接器組態之改變。舉例而言,韌體可能經由發生錯誤之中斷報告來知曉橋接器組態的改變。韌體可能經由檢查資料流動方向及電纜附接之輪詢機制而知曉橋接器組態的改變。另外,韌體可能經由在用戶端想要添加或移除匣之情形下的服務呼叫而知曉橋接器組態的改變。
對於方向由於壞電纜或某其他錯誤條件而阻塞的錯誤情形,若處於迴路模式,則橋接器自動顛倒訊務之方向至相對集線器埠。然而,在訊務之方向經顛倒之情況下,虛擬信道資源組態不再經最佳化。若虛擬信道緩衝器分配未經動態地重新指定以考慮新資料流動方向,則此最佳化缺乏可導致超過75%的資料損失。
更特定言之,參看圖7,展示用於動態地重新指定虛擬信道資源之系統之操作的流程圖。系統藉由在步驟710處判定橋接器組態改變是否已發生而起始操作。此判定可由操作於輪詢操作模式之系統700進行以判定橋接器組態改
變是否已發生。此改變可由中斷之接收而偵測或由服務呼叫之指示來偵測。若偵測到中斷,則系統在步驟712處判定錯誤條件是否存在。若錯誤條件存在,則系統700在步驟714處分析橋接器組態以判定資料流動之方向是否改變。若資料流動之方向未改變,則不進行操作且繼續監視以判定橋接器組態改變是否已發生。若資料流動之方向已改變,則系統700開始在步驟716處重新分配虛擬信道資源以最佳化該等資源而用於新橋接器組態的過程。
更特定言之,若IO匣單元發生錯誤且迴路組態已改變(例如,改變為串組態或多串組態),則用於動態地重新指定虛擬信道資源的系統重新分配虛擬信道緩衝器資源指定。
更特定言之,用於動態地重新指定虛擬信道資源的系統判定迴路在何處斷開(亦即,迴路之末端或中間)。接下來,系統判定每一橋接器之方向流動。若橋接器位於串之末端處,則方向流動可為相同的,而若橋接器位於串之中間,則方向流動視橋接器組態中之斷開發生於何處而定。接下來,系統臨時停止所有通過橋接器的訊務。接下來,系統基於對於每一橋接器所判定之資料流動而重新分配虛擬信道緩衝且接著重新起始在橋接器內之訊務流動。
對於錯誤條件,系統700通常判定錯誤經由來自硬體之指示一錯誤條件的中斷而發生。然而,系統亦可判定錯誤經由橋接器內之與資料流動方向有關之暫存器的輪詢而發生。若暫存器指示資料流動方向不同於系統700所理解之
方向,則用於動態地重新指定虛擬信道資源的系統將處於最佳化資源用於新近識別之資料流動的過程。
對於橋接器組態自串組態至迴路組態之改變,若橋接器經組態以產生此中斷則中斷有可能發生。然而,通常,自串組態至迴路組態之改變由論詢識別。韌體可關於諸如InfiniBand電纜之鏈路的存在檢查另一組暫存器。若韌體判定電纜已經重新附接或替換,則韌體可將橋接器組態自串組態調整至迴路組態。當橋接器組態已自串組態改變為迴路組態以允許系統將集線器之兩個埠用於資料訊務時,為效能原因重新平衡虛擬信道資源係重要的。
當重新平衡虛擬信道資源時,用於動態地重新指定虛擬信道資源之系統首先偵測電纜附接。接下來,系統組態集線器之埠以使得埠為有效且可用的。接下來,系統臨時停止訊務流動通過橋接器。接下來,系統對於某些橋接器重新導引資料流動以自串組態至橋接器組態重新平衡訊務。接下來,系統基於對於每一橋接器之新資料流動而重新分配虛擬信道緩衝。接下來,系統重新起始訊務流動通過橋接器。
當添加新的IO匣單元時,韌體被通知新匣已加入該組態。接下來,用於重新指定虛擬信道資源的系統使新近添加之IO匣單元通電且組態該IO匣單元。接下來,系統判定在新IO匣單元內之橋接器的橋接器組態。(意即,橋接器以迴路組態、串組態還是多串組態來組態。)接下來,系統判定IO匣單元內之每一橋接器之資料流動。若橋接器以
迴路組態排列,則系統判定一理想資料流動(若此資料流動尚未經指定)。接下來,系統基於對於每一橋接器之資料流動而重新分配虛擬信道緩衝且接著重新起始在IO匣單元內的訊務流動。
當IO匣單元自系統移除時,用於動態地重新指定虛擬信道資源之系統與在添加匣單元時一樣地起作用(除了系統使匣單元斷電),且可提示使用者重新附接電纜以完成剩餘橋接器組態。
儘管已參考一較佳實施例特別展示且描述了本發明,但熟習此項技術者將理解,在不脫離本發明之精神及範疇的情況下可進行形式及細節上的各種改變。此外,如說明書及所附申請專利範圍中所使用,術語"電腦"或"系統"或"電腦系統"或"計算設備"包括任何資料處理系統,包括(但不限於)個人電腦、伺服器、工作站、網路電腦、大型電腦、路由器、交換器、個人數位助理(PDA)、電話,及能夠處理、傳輸、接收、捕獲及/或儲存資料的任何其他系統。
如熟習此項技術者將瞭解,本發明可實施為方法、系統或電腦程式產品。因此,本發明可呈完全硬體實施例、完全軟體實施例(包括韌體、駐留軟體、微碼等)或在本文中皆可大體稱為"電路"、"模組"或"系統"之組合軟體及硬體態樣的實施例之形式。此外,本發明可呈一電腦可用儲存媒體上之電腦程式產品的形式,該電腦可用儲存媒體具有實施於媒體中之電腦可用程式碼。舉例而言,儘管參考韌
體實施描述了用於重新指定緩衝器的系統,但應瞭解,系統可以軟體、硬體或硬體與軟體之某組合來實施。
圖式中之方塊圖說明根據本發明之各種實施例之系統及方法之可能實施的架構、功能性及操作。亦應注意,方塊圖之每一區塊及方塊圖中之區塊的組合可由執行指定功能或動作的專用之基於硬體之系統實施,或由專用硬體與電腦指令之組合實施。
本文使用之術語僅出於描述特定實施例之目的,且並不意欲限制本發明。如本文所使用,除非本文另有明確指示,否則單數形式"一"及"該"亦意欲包括複數形式。應進一步理解,用於此說明書中的術語"包含"指定所陳述特徵、整數、步驟、操作、元件及/或組件的存在,但不排斥一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群的存在或添加。
在下文之申請專利範圍中之所有構件或步驟加功能要素的相應結構、材料、動作及均等物意欲包括結合如特定主張之其他所主張要素而執行功能的任何結構、材料或動作。出於說明及描述之目的已呈現了本發明之描述,但該描述並不意欲為詳盡的或限於所揭示形式的本發明。在不脫離本發明之精神及範疇之情況下,許多修改及變化對於一般熟習此項技術者將顯而易見。選擇且描述了實施例以最佳地解釋本發明之原理及實際應用,且使其他一般熟習此項技術者能夠理解本發明之具有適合於所涵蓋之特定用途的各種修改之各種實施例。
因此詳細地且藉由參考本申請案之本發明的較佳實施例而描述了本申請案之本發明,應顯而易見,在不脫離所附申請專利範圍中所界定之本發明之範疇的情況下,修改及變化係可能的。
100‧‧‧電腦系統
110‧‧‧處理器節點
112‧‧‧輸入輸出(IO)匣單元
120a‧‧‧處理器
120b‧‧‧處理器
122‧‧‧記憶體
124‧‧‧集線器
140‧‧‧橋接器
150a‧‧‧架構埠
150b‧‧‧架構埠
152a‧‧‧架構埠
152b‧‧‧架構埠
160‧‧‧韌體
162‧‧‧用於重新指定虛擬信道資源之系統
220‧‧‧傳輸器
222‧‧‧接收器
230‧‧‧發送緩衝器
232‧‧‧接收緩衝器
VL0-VL15‧‧‧虛擬信道
圖1展示可實施本發明之例示性電腦系統的方塊圖。
圖2展示虛擬信道資料流動之一實例的方塊圖。
圖3展示集線器與處於迴路組態之複數個橋接器的互連之一實例的方塊圖。
圖4展示集線器與處於串組態之複數個橋接器的互連之一實例的方塊圖。
圖5展示集線器與處於多串組態之複數個橋接器之一實例的方塊圖。
圖6展示用於重新指定虛擬信道資源之系統之操作的流程圖。
圖7展示用於動態地重新指定虛擬信道資源之系統之操作的流程圖。
(無元件符號說明)
Claims (12)
- 一種用於在一具有一集線器及複數個橋接器之電腦系統內指定若干虛擬信道資源的方法,該方法包含:在該電腦系統內識別若干可用橋接器,該等可用橋接器中之每一者包含複數個虛擬信道,該複數個虛擬信道中之每一者包含各別虛擬信道資源,該複數個虛擬信道包含若干經指定之虛擬信道及若干未經指定之虛擬信道;及將若干虛擬信道資源自該等未經指定之虛擬信道重新指定至該等經指定之虛擬信道;判定該複數個橋接器中之每一者之一資料流動方向;判定虛擬信道資源粒度(granularity);且其中該重新指定考慮該資料流動方向及該虛擬信道資源粒度。
- 如請求項1之方法,其中:該複數個橋接器中之每一者包含一入口埠及一出口埠;且該重新指定考慮一埠為一入口埠或一出口埠。
- 如請求項1之方法,其中:該複數個橋接器係以一迴路組態及一串組態中之至少一者來組態;且該重新指定考慮該複數個橋接器是以該迴路組態還是該串組態來組態。
- 如請求項1之方法,其中:該集線器及該複數個橋接器經由一鏈路而耦接;且該鏈路符合一InfiniBand協定及一快速周邊組件互連協定中之至少一者。
- 一種具有一集線器及複數個橋接器之資料處理系統,其包含:一處理器;一集線器,其耦接至該處理器;複數個橋接器,其耦接至該處理器;及一電腦可用媒體,其實施電腦程式碼,該電腦程式碼包含可由該處理器執行且經組態用於以下操作之若干指令:識別該複數個橋接器,該複數個橋接器中之每一者包含複數個虛擬信道,該複數個虛擬信道中之每一者包含各別虛擬信道資源,該複數個虛擬信道包含若干經指定之虛擬信道及若干未經指定之虛擬信道;將若干虛擬信道資源自該等未經指定之虛擬信道重新指定至該等經指定之虛擬信道;判定該複數個橋接器中之每一者之一資料流動方向;判定虛擬信道資源粒度;且其中該重新指定考慮該資料流動方向及該虛擬信道資源粒度。
- 如請求項5之資料處理系統,其中:該複數個橋接器中之每一者包含一入口埠及一出口埠;且該重新指定考慮一埠為一入口埠或一出口埠。
- 如請求項5之資料處理系統,其中:該複數個橋接器係以一迴路組態及一串組態中之至少一者來組態;且該重新指定考慮該複數個橋接器是以該迴路組態還是該串組態來組態。
- 如請求項5之資料處理系統,其中:該集線器及該複數個橋接器經由一鏈路而耦接;且,該鏈路符合一InfiniBand協定及一快速周邊組件互連協定中之至少一者。
- 一種具有一集線器及複數個橋接器之資料處理系統,其包含:一處理器;一集線器,其耦接至該處理器;複數個橋接器,其耦接至該處理器;及一用於重新指定若干虛擬信道資源之系統,用於重新指定若干虛擬信道資源之該系統包含:一識別模組,用於識別該複數個橋接器,該複數個橋接器中之每一者包含複數個虛擬信道,該複數個虛擬信道中之每一者包含各別虛擬信道資源,該複數個虛擬信道包含若干經指定之虛擬信道及若干未經指定之虛擬信道;及一重新指定模組,用於將若干虛擬信道資源自該等未經指定之虛擬信道重新指定至該等經指定之虛擬信道;一判定模組,用於判定該複數個橋接器中之每一者之一資料流動方向;一判定模組,用於判定虛擬信道資源粒度;且其中該重新指定模組考慮該資料流動方向及該虛擬信道資源粒度。
- 如請求項9之資料處理系統,其中:該複數個橋接器中之每一者包含一入口埠及一出口埠;且 該重新指定模組考慮一埠為一入口埠或一出口埠。
- 如請求項9之資料處理系統,其中:該複數個橋接器係以一迴路組態及一串組態中之至少一者來組態;且該重新指定模組考慮該複數個橋接器是以該迴路組態還是該串組態來組態。
- 如請求項9之資料處理系統,其中:該集線器及該複數個橋接器經由一鏈路而耦接;且該鏈路符合一InfiniBand協定及一快速周邊組件互連協定中之至少一者。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/751,116 US8270295B2 (en) | 2007-05-21 | 2007-05-21 | Reassigning virtual lane buffer allocation during initialization to maximize IO performance |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200910275A TW200910275A (en) | 2009-03-01 |
TWI447677B true TWI447677B (zh) | 2014-08-01 |
Family
ID=40072285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097117307A TWI447677B (zh) | 2007-05-21 | 2008-05-09 | 動態地重新指定虛擬信道緩衝器之分配以最大化輸入輸出效能的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8270295B2 (zh) |
JP (1) | JP5336764B2 (zh) |
TW (1) | TWI447677B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612662B2 (en) * | 2008-06-01 | 2013-12-17 | Hewlett-Packard Development Company, L.P. | Queue sharing and reconfiguration in PCI express links |
JP5085463B2 (ja) * | 2008-08-12 | 2012-11-28 | 株式会社リコー | 情報転送回路、情報処理装置、情報転送回路の制御方法、制御プログラム及び記録媒体 |
US8644140B2 (en) * | 2009-09-09 | 2014-02-04 | Mellanox Technologies Ltd. | Data switch with shared port buffers |
US20120066444A1 (en) | 2010-09-14 | 2012-03-15 | Advanced Micro Devices, Inc. | Resolution Enhancement of Video Stream Based on Spatial and Temporal Correlation |
US8699491B2 (en) | 2011-07-25 | 2014-04-15 | Mellanox Technologies Ltd. | Network element with shared buffers |
US9582440B2 (en) | 2013-02-10 | 2017-02-28 | Mellanox Technologies Ltd. | Credit based low-latency arbitration with data transfer |
US8989011B2 (en) | 2013-03-14 | 2015-03-24 | Mellanox Technologies Ltd. | Communication over multiple virtual lanes using a shared buffer |
US9641465B1 (en) | 2013-08-22 | 2017-05-02 | Mellanox Technologies, Ltd | Packet switch with reduced latency |
US9548960B2 (en) | 2013-10-06 | 2017-01-17 | Mellanox Technologies Ltd. | Simplified packet routing |
US9385962B2 (en) | 2013-12-20 | 2016-07-05 | Intel Corporation | Method and system for flexible credit exchange within high performance fabrics |
US9325641B2 (en) | 2014-03-13 | 2016-04-26 | Mellanox Technologies Ltd. | Buffering schemes for communication over long haul links |
US9584429B2 (en) | 2014-07-21 | 2017-02-28 | Mellanox Technologies Ltd. | Credit based flow control for long-haul links |
US11429549B2 (en) | 2017-07-20 | 2022-08-30 | Hewlett-Packard Development Company, L.P. | Input/output port configurations using multiplexers |
US10951549B2 (en) | 2019-03-07 | 2021-03-16 | Mellanox Technologies Tlv Ltd. | Reusing switch ports for external buffer network |
US11558316B2 (en) | 2021-02-15 | 2023-01-17 | Mellanox Technologies, Ltd. | Zero-copy buffering of traffic of long-haul links |
US11973696B2 (en) | 2022-01-31 | 2024-04-30 | Mellanox Technologies, Ltd. | Allocation of shared reserve memory to queues in a network device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020118646A1 (en) * | 2000-12-21 | 2002-08-29 | Jean-Francois Saint Etienne | Device and process for flow control in a switched network |
US20030223416A1 (en) * | 2002-05-31 | 2003-12-04 | Edmundo Rojas | Apparatus and methods for dynamic reallocation of virtual lane buffer space in an infiniband switch |
US20050060445A1 (en) * | 2003-09-11 | 2005-03-17 | International Business Machines Corporation | Method for implementing dynamic virtual lane buffer reconfiguration |
US20050076166A1 (en) * | 2003-10-02 | 2005-04-07 | International Business Machines Corporation | Shared buffer having hardware controlled buffer regions |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0239343A (ja) | 1988-07-29 | 1990-02-08 | Fujitsu Ltd | 送受信バッファリング制御方式 |
US5546557A (en) | 1993-06-14 | 1996-08-13 | International Business Machines Corporation | System for storing and managing plural logical volumes in each of several physical volumes including automatically creating logical volumes in peripheral data storage subsystem |
US7150021B1 (en) | 2001-10-12 | 2006-12-12 | Palau Acquisition Corporation (Delaware) | Method and system to allocate resources within an interconnect device according to a resource allocation table |
US6715055B1 (en) | 2001-10-15 | 2004-03-30 | Advanced Micro Devices, Inc. | Apparatus and method for allocating buffer space |
US20040022094A1 (en) * | 2002-02-25 | 2004-02-05 | Sivakumar Radhakrishnan | Cache usage for concurrent multiple streams |
US6904507B2 (en) | 2002-09-30 | 2005-06-07 | Agilent Technologies, Inc. | Buffer management architecture and method for an infiniband subnetwork |
US7564789B2 (en) * | 2004-02-05 | 2009-07-21 | Qlogic, Corporation | Method and system for reducing deadlock in fibre channel fabrics using virtual lanes |
JP2006195871A (ja) | 2005-01-17 | 2006-07-27 | Ricoh Co Ltd | 通信装置、電子機器、及び画像形成装置 |
JP2006244194A (ja) * | 2005-03-04 | 2006-09-14 | Kyocera Mita Corp | Usb制御装置、デバイス制御装置 |
US7315456B2 (en) | 2005-08-29 | 2008-01-01 | Hewlett-Packard Development Company, L.P. | Configurable IO subsystem |
CN1960527A (zh) | 2005-11-04 | 2007-05-09 | 华为技术有限公司 | 一种调整共同体内通信资源的方法 |
US10069711B2 (en) * | 2006-06-30 | 2018-09-04 | Intel Corporation | System and method for link based computing system having automatically adjustable bandwidth and corresponding power consumption |
US8654634B2 (en) * | 2007-05-21 | 2014-02-18 | International Business Machines Corporation | Dynamically reassigning virtual lane resources |
-
2007
- 2007-05-21 US US11/751,116 patent/US8270295B2/en not_active Expired - Fee Related
-
2008
- 2008-05-09 TW TW097117307A patent/TWI447677B/zh not_active IP Right Cessation
- 2008-05-13 JP JP2008125760A patent/JP5336764B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020118646A1 (en) * | 2000-12-21 | 2002-08-29 | Jean-Francois Saint Etienne | Device and process for flow control in a switched network |
US20030223416A1 (en) * | 2002-05-31 | 2003-12-04 | Edmundo Rojas | Apparatus and methods for dynamic reallocation of virtual lane buffer space in an infiniband switch |
US20050060445A1 (en) * | 2003-09-11 | 2005-03-17 | International Business Machines Corporation | Method for implementing dynamic virtual lane buffer reconfiguration |
US20050076166A1 (en) * | 2003-10-02 | 2005-04-07 | International Business Machines Corporation | Shared buffer having hardware controlled buffer regions |
Also Published As
Publication number | Publication date |
---|---|
JP2008287717A (ja) | 2008-11-27 |
TW200910275A (en) | 2009-03-01 |
US8270295B2 (en) | 2012-09-18 |
JP5336764B2 (ja) | 2013-11-06 |
US20080291824A1 (en) | 2008-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI447677B (zh) | 動態地重新指定虛擬信道緩衝器之分配以最大化輸入輸出效能的方法 | |
TWI463323B (zh) | 在一具有一集線器及複數個橋接器之電腦系統內動態地分配若干虛擬信道資源的方法及資料處理系統 | |
US8108467B2 (en) | Load balanced data processing performed on an application message transmitted between compute nodes of a parallel computer | |
US8036243B2 (en) | Single chip protocol converter | |
US8180949B1 (en) | Resource virtualization switch | |
US9686203B2 (en) | Flow control credits for priority in lossless ethernet | |
US7583600B1 (en) | Schedule prediction for data link layer packets | |
US7768907B2 (en) | System and method for improved Ethernet load balancing | |
US7643477B2 (en) | Buffering data packets according to multiple flow control schemes | |
US7797445B2 (en) | Dynamic network link selection for transmitting a message between compute nodes of a parallel computer | |
US9954792B2 (en) | Shared flow control credits | |
US8107360B2 (en) | Dynamic addition of redundant network in distributed system communications | |
CN114077563A (zh) | 多端口i/o混合系统中的系统功率管理 | |
CN110659239A (zh) | 在多通路链路中动态地协商不对称链路宽度 | |
JP5669851B2 (ja) | 論理的にパーティション化されたシステムにおいてパーティション間の効率的なコミュニケーションを行うための装置、方法、及びコンピュータ・プログラム | |
US20100228901A1 (en) | Input output control apparatus with a plurality of ports and single protocol processing circuit | |
JP5728088B2 (ja) | 入出力制御装置及び入出力制御装置のフレーム処理方法 | |
KR20140125311A (ko) | 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치 및 방법 | |
TW201301044A (zh) | 用於將資料匯流排耦接至無線鏈路的動態可配置無線資料匯流排開關及通過處理器執行它之方法 | |
US8924590B2 (en) | System and method for communicating in a networked system | |
CN117421122A (zh) | 一种数据传输方法、一种网卡和一种cpu |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |