Global Sources
電子工程專輯
 
電子工程專輯 > 網路技術
 
 
網路技術  

系統設計之外的思考

上網時間: 2001年12月30日     打印版  Bookmark and Share  字型大小:  

關鍵字:InfiniBand  InfiniBand標準  new I/O approach  新型輸入/輸出方式  switch-fabric 

InfiniBand標準有效地解決了PCI等傳統I/O結構產生的通訊傳輸瓶頸。該標準採用點到點的交換結構提高了容錯性能和擴展性,用硬體實現10Gbps的數據傳輸、採用虛通道方式實現QoS,同時藉由採用循環冗餘檢測來保証信號的完整性。本文將深入探討InfiniBand標準以及該標準對通訊設計過程的影響。

隨著通訊速率的持續增加,設計工程師必須不停地去發現和解決系統結構的瓶頸。但是他們可能會忽略系統之外的一些問題。構建出數據速率達到10Gb的結構具有很大的挑戰性,但是真正的挑戰是這個結構不僅要能產生10Gb的數據流,而且在各系統之間的數據傳輸率也必須達到10Gb。

這個要求對於目前的I/O結構,如PCI、乙太網路和光纖通道(Fiber channel)等來說是不可能實現。因此,我們需要一種新的I/O方法,該方法用硬體實現高性能可靠傳輸。而InfiniBand就是能滿足這種要求的技術。

InfiniBand結構為解決當今系統間通訊問題而設計,該標準得到了戴爾,惠普,IBM,英特爾,微軟和昇陽等公司的支援。由於該標準採用交換結構並支援10Gb傳輸速率,越來越多的人開始注意這個標準。

InfiniBand結構的組成

在了解InfiniBand標準的優點之前,先介紹構建InfiniBand子網路的基本要素。為使InfiniBand有效地工作,InfiniBand標準定義了一套用於系統通訊的多種設備,包括通道配接器、交換機、路由器和子網路管理器(見圖1)。需要特別提出的是,在一個子網路內必須至少有一個子網路管理器來進行結構的初始化以及相應的維護。

通道配接器-通道配接器用於InfiniBand結構同其他設備的連接。InfiniBand標準中有兩種類型的通道配接器:一種是主通道配接器(HCA),另外一種是目標通道配接器(TCA)。

HCA提供了一個對Web server等主CPU和記憶體子系統的介面,並支援InfiniBand結構所定義的所有軟體動詞(Verb)。這?所說的軟體動詞是對客戶方軟體和HCA功能之間介面的一種抽象定義。軟體動詞並不為作業系統指定API,但它定義了作業系統廠商可能用來開發適用應用程式介面(API)的作業。

而TCA提供InfiniBand到I/O設備的連接。這種I/O卡可能是一種網路介面卡(NIC),它包含了每種設備特定作業所必需的部份功能。

交換機-交換機是InfiniBand結構中的基本組件。一個交換機中的InfiniBand埠不止一個,它能根據本地路由器包頭中所含的第二層地址(本地ID/LID)將數據包從其一個埠送到另外一個埠。交換機只是對數據包進行管理,並不產生或使用數據包。同通道配接器一樣,交換機也需要實現子網路管理代理(SMA)以響應子網路管理數據包。交換機可透過配置來實現數據包的點播或組播。

路由器-InfiniBand路由器用於將數據包從一個子網路傳送到另一子網路,其間數據包的數量不會變化。與交換機不同,路由器讀出第三層的全局路由頭(GRH)並根據其Ipv6網路層地址來進行數據包發送。

子網路管理器-子網路管理器對本地子網路進行配置並確保能連續運行。所有的通道配接器和交換機都必須實現一個SMA,該SMA與子網路管理器一起實現對通訊的處理。每個子網路必須至少有一個子網路管理器來進行初始化管理以及在鏈路連接或斷開時對子網路進行重新配置。

透過仲裁機制來選擇一個子網路管理器作為主子網路管理器,而其他子網路管理器工作於待機模式(每個待機模式下的子網路管理器都會備份此子網路的拓樸資訊,並檢驗此子網路是否能夠運行)。若主子網路管理器產生故障,一個待機子網路管理器接管子網路的管理以確保不間斷運行。

InfiniBand的關鍵

InfiniBand結構的關鍵在於透過採用點到點的交換結構解決共享匯流排的瓶頸問題,這種交換結構專門用於解決容錯性和可擴展性問題(見圖2)。共享匯流排結構中多個設備與匯流排之間是被動連接,而InfiniBand的點到點交換機採用了與共享匯流排結構不同的連接方式,它透過一個帶有主動元件的結構與各個設備連接。所有的連接都是點到點的連接,一個設備對應一個終端。因此,同傳統的PCI匯流排結構不同,InfiniBand結構中鏈路的建立和終止得到很好的控制。所以,採用此結構後,通訊系統的性能得以最佳化,可在高出很多的頻率下運行。

下面進行更進一步的探討。以往採用共享匯流排結構的系統一次只能有一個主控設備,並需要進行匯流排仲裁,這降低了系統結構中數據傳輸速率。而在InfiniBand結構中,可利用無阻塞交換機將各端點連接起來,每個交換機可以同時有多條鏈路進行數據發送和接收。因此,多個端點可以同時進行相互間通訊。此外,僅需添加一些交換機即可實現擴展。隨著交換機數目增加,系統的總頻寬也會相應增加。

分層結構

InfiniBand結構是一種多層結構,其中每一層的運行都是相互獨立的。InfiniBand的多層結構劃分為:物理層、鏈路層、網路層和傳輸層以及一些更高的其他層。

在物理層上,InfiniBand標準定義了三種鏈路速率,分別為:1X、4X和12X。此標準也定義了包括銅導線和光纖在內的物理介質。此外,它還定義了用於光纖和銅導線的標準連接器和電纜,以及用於機架系統的背板連接器。

銅纜上的1X鏈路採用四線差分信令(每個方向兩線),可提供2.5Gbps的全雙工連接。其他鏈路速率都建立於1X鏈路的基本結構上。

一條InfiniBand 1X鏈路的理論頻寬是2.5Gbps。但實際數據速率為2Gbps(因為鏈路數據採用8b/10b編碼)。由於鏈路具有雙向性,所以全雙工數據速率為4Gbps。相應的,4X和12X鏈路的規定頻寬為10Gbps和30Gbps。

與物理層不同,鏈路層提供基本的子網路連接,並確保數據的完整性。子網路內的數據包傳送是在鏈路層進行。一個子網路內的所有設備都有一個由子網路管理器賦予的16位元LID,而子網路內的所有數據包都採用LID尋址方式進行發送。

鏈路級的交換將數據包轉發到由數據包內本地路由頭(LRH)中目標LID指定的設備上。規定所有的數據包都必須帶有LRH。

數據包是保証數據完整性的基本鏈路層單元。鏈路層數據包有兩種類型,一是管理包,一是數據包。管理包用於鏈路的配置和維護,數據包則可承載高達4,000位元組的淨載荷。

網路層

InfiniBand子網路間的數據包在網路層上進行路由。為實現互連,InfiniBand結構中引進了一個可選GRH,它採用128位元Ipv6地址,使得InfiniBand結構可直接同基於IP的網路互連。

傳輸層是對網路層的一個補充。這一層負責數據包的按順序發送、分割、通道再使用,並提供傳輸業務,如可靠連接、可靠數據報、不可靠連接、不可靠數據報、初始數據報等。傳輸層也在發送時進行數據的分段,在接收時進行數據重組。

根據通道所能傳送的最大傳送單元大小,傳輸層將數據分割成大小合適的包。接收端再根據基本傳輸頭(BTH)將數據包重組起來,基本傳輸頭中包含目的隊列對和數據包序號。接收端發送一個數據包接收應答到發送端,發送端接到應答後根據運行狀態修改完成隊列(Completion queue)的運行狀態。

品質問題

在網路中採用任何新協議或新標準都會使人們產生這樣一個疑問:此協議如何實現QoS?InfiniBand為支援QoS性能進行了專門的設計。支援InfiniBand的系統將採用虛通道(VL)方式來實現QoS,虛通道是一些共享一條物理鏈接的相互分立的邏輯通訊鏈路。每條物理鏈接可支援多達15條的標準虛通道和一條管理通道(VL15)。

那麼虛通道是如何實現QoS的呢?當數據包穿過子網路時,它會根據QoS等級來定義一個服務等級(SL)。路徑上的每條鏈路可以提供不同的虛通道數,而服務等級會確定每條鏈路相應的優先級。每個交換機?路由器都有一個服務級別與虛通道的映射表,這個映射表由子網路管理器設置並根據每條鏈路所支援的虛通道數來保持鏈路相應的優先級。

除QoS外,InfiniBand標準還保証了數據的完整性。InfiniBand的鏈路層對每個數據包實現兩種循環冗餘檢測(CRC),即可變CRC(VCRC)和固定CRC(ICRC)。這兩種檢測機制確保了數據的完整性。

16位元VCRC涵蓋了數據包中的所有域,並在數據包的每次轉發時都進行重新計算。32位元ICRC僅包括那些轉發時不產生變化的域。VCRC提供了兩次轉發間鏈路級的數據完整性,而ICRC提供了端到端的數據完整性。在某些協議中,如乙太網路協議只定義了一個CRC值,當採用這種協議的設備產生錯誤時,由於會重新計算此CRC值,因此即使數據已經被破壞,下一次轉發檢測時會認為此CRC值依然有效,因此錯誤在轉發時不能別發現。而InfiniBand採用了ICRC方式,因此當有一個比特錯誤產生時,錯誤總是會被檢測出來。

介面結構

通訊系統行業的許多設計工程師都熱衷於虛介面結構(VIA)。VIA是一種分佈式通訊技術,它獨立於硬體並且與當前的網路連接相容。這種結構提供了一種API,可用於群集應用中對等網之間的高速、低延遲通訊。

在開發InfiniBand時考慮到了VIA結構。它採用基於通道的執行隊列從主機軟體客戶端去除了數據流控制。這些稱為工作隊列的執行隊列是由主機CPU創建的,然後由InfiniBand硬體進行管理。

設備之間的每個通訊通道的一端都安排了一個工作隊列對(WQP,發送和接收隊列)。主機將處理事務放到工作隊列中(工作隊列項),然後此事務在發送隊列中由通道配接器進行處理,再發送到遠端設備。當遠端設備響應後,通道配接器透過完成隊列或事件將處理狀態返回給主機(見圖3)。

主機可以放置多個工作隊列項,而通道配接器硬體會對這其中的每個通訊請求進行處理。通道配接器會根據適當的優先次序對每個張貼的工作隊列項進行處理,然後產生一個完成隊列項(CQE)來顯示完成狀態。VIA將主機CPU同通道配接器分隔開來,使得主機在事務得到處理的同時能夠繼續進行其他工作。

發展中的InfiniBand

毫無疑問,當今通訊網路的傳輸速率會繼續成長。但為滿足這種速率的要求,設計人員對系統內外都必須加以認真考慮才能實現通訊網路中數據速率的真正增加。

InfiniBand受到業界廣泛支援,逐漸成為網路中高速信號傳輸的重要新技術。現在關鍵是要建立起支援這些結構的系統。目前已經有了InfiniBand的矽解決方案。矽方案的應用、系統級參考設計以及軟體的完善意味著開發InfiniBand方案的所有基本組件都已實現,這使得該標準的大規模應用成為可能。

作者:Michael Kagan

副總裁

Mellanox公司

michael@mellanox.co.il





投票數:   加入我的最愛
我來評論 - 系統設計之外的思考
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首