1. はじめに

インフィニバンドとは?

IBTA ( InfiniBand Trade Association ) で定義されているオープンスタンダードなインターコネクト・プロトコルです。
インフィニバンドソフトウェアは OpenFabrics Alliance の元で開発され、複数のベンダーがこの団体に所属しています。

プロトコルの 3つの特徴

1. 広帯域  2. 低レイテンシ  3. 高い RAS (信頼性・可用性・保守性)
サーバ・ストレージ間の高速 I/O インターコネクトとして主に HPC/ エンタープライスデータセンタ /高い画像処理能力を必要とする医療機器や検査装置などで使用されています。

2. インフィニバンドのアーキテクチャ層

【アッパーレイヤ層】
・信号レベルと周波数、物理媒体、コネクタ
・アプリケーション、H/W間のインターフェース
・管理機能の提供

【トランスポート層】
・適切な QP ( Queue Pair キューペア)へのパケット転送
・メッセージの分割と再組み立て、アクセス権、etc...

【ネットワーク層】
・サブネット間のパケットルーティング

【リンク層】
・シンボルとフレーミング、フローコントロール (Credit based)
・ソースからディスティネーションへのパケットルーティング

【物理層】
・信号レベルと周波数、物理媒体、コネクタ、etc...

3. 物理層 - Physical Layer -

リンク幅としては、1x から 12x までレーンを束ねることが出来、現在最速の EDR ( 1 レーン当たり 25Gb/s ) を使用することで、最大 120Gb/s の帯域を実現することが出来ます。
HCA では、1 ポート当たり 4x ( 最大 100Gb/s ) でリンクされていますが、スイッチ間では、12x ( 最大 300Gb/s ) でリンクすることも可能です。
また、ケーブルにおいても、業界標準の銅ケーブルと光ケーブルに対応しています。( Mellanox / Emcore 社のケーブルに関しては、弊社の製品紹介ページにてご参照いただけます )

リンク幅 ・1x 送信(Tx)と受信(Rx) に1つの差動信号
・4x 送信(Tx)と受信(Rx) に4つの差動信号
・12x 送信(Tx)と受信(Rx) に12つの差動信号

リンク速度 ・Single Data Rate ( SDR )
・Double Data Rate ( DDR )
・Quad Data Rate ( QDR )
・2.5 GHz 信号 ( 1x に対して 2.5 Gb/s )
・5.0 GHz 信号 ( 1x に対して 5 Gb/s )
・10 GHz 信号 ( 1x に対して 10 Gb/s )
リンク帯域 ・リンク幅とリンク速度を掛け合わせた帯域
・4x SDR ( 10Gb/s ) 、4x DDR ( 20Gb/s ) 、4x QDR ( 40Gb/s )、4x FDR( 56Gb/s )、4x EDR( 100Gb/s )
符号化方式
(エンコーディング)
・8b/10b エンコーディング(SDR、DDR、QDR)
・64b/66b エンコーディング(FDR、EDR)
媒体(メディア)/
ケーブル
・PCB , パッシブ銅ケーブル、アクティブ銅ケーブル、オプティカル(光)ケーブル
・業界標準のコネクタ、ケーブル

4. リンク層 - Link Layer -

インフィニバンドパケット

インフィニバンドは、最大 2GB のメッセージから転送ユニットのパケット ( MTU ペイロード: 256Byte - 4KByte ) に分割されインフィニバンドリンクへと転送されます。
リンクはパケットロスを防ぐためクレジットベースのフローコントロールにより制御されてます。
また一つのリンク上で複数の仮想レーン(バーチャルレーン)を持つことができ、各々のバーチャルレーン ( VL : Virtual Lane ) ごとに独立したフロー制御を行います。パケットに対しては複数のサービスレベル (SL : Service Level ) を設定することができ、バーチャルレーンと組み合わせることで柔軟な QoS を行うことができます。
また、パケット自体にも ICRC と VCRC の二つの CRC が実装され、高い信頼性でデータを保護しております。

・End-to-End の転送単位(ユニット)
・ハードウェアによるメッセージの分割と再組み立て
・種類 : データパケット、アクナレッジ(Ack)、リンク

IBA パケット形式

LRH Local Route Header (すべてのパケットに必要) : LIDによりアドレスされる
GRH Global Route Header (宛先のサブネットが異なる際に必要) : GID によりアドレスされる
BTH Base Transport Header (IB トランスポート) : QP 番号によりアドレスされる
ExTH Extended Transport Header RDMA/Atomic/Ack のさまざまなヘッダー
Immediate Data Header Immediate Data (if any was sent)
Msg Payload   メッセージペイロード
ICRC Invariant CRC (32 bit) End-to-End エラー訂正
VCRC Variant CRC(16 bit) Hop by Hop エラー訂正

フルコントロール

・クレジットベースのリンクレベルフローコントロール
・バーチャルレーンごとのフローコントロール
・ファブリック内でのパケットロスを防ぎ、バーチャルレーンごとのQoSを実現

バーチャルレーン と サービスレベル

・Virtual Lanes (VLs) - 1つの物理リンク上に最大 16 個の VL を作成 ( IB spec )
・各々の VL ごとに独立したフローコントロール ( 独立した Tx/Rx バッファ )
・16 個のサービルレベル ( パケットごとに VL にマッピング )

5. リンク層の例

※ より詳細な情報は、IB spec 1.2 のドキュメントにて取得できます。

6. トランスポート層 - Transport Layer -

転送は、「SEND」「RDMA ( Remote DMA ) Write」 「RDMA Read」 の3種類があり、RDMA は異なるコンピュータ間のホストメモリに直接データを読み・書きすることができ、CPU 処理のオーバヘッドがほとんどかからないため、その CPU リソースを実アプリケーションへ効率よく活用すること出来ます。
また転送サービスに関しても、Reliable / Unreliable の2種類があり、用途に応じたサービスを選択することが出来ます。

RC ( Reliable Connection ) Ack/Nak 対応の QP
UC ( Unreliable Connection ) Ack/Nak 対応無しの QP
RD ( Reliable datagram ) Ack/Nak 対応のEEC
UD ( Unreliable datagram ) UDP ( Ack/Nak 対応無し )
RAW IB 以外のプロトコル ( IPv6 または Ethernet packets )

転送の種類

・SEND
・RDMA Write
・RDMA Read

RDMA (リモートダイレクトメモリアクセス) は、異なるコンピュータ間のメモリに直接情報を移動させる機能で、最小限のメモリ バス帯域幅とCPU処理オーバヘッドしか必要となりません。

RDMA write のイメージ

1. HCA は、この WQE を消費しデータを取得し、リモート側に転送し、コンプリケーション (Completion Queue)を生成する。
2. パケットが HCA にて受信されると、そのアドレスとメモリキーが確認され、直接メモリに書き込まれる。
3. アプリケーションは受取用のバッファを割り当て、アドレスとキーをリモート側に送る。
4. 送信側は転送データをホストメモリに展開し、リモート側(受信)の仮想アドレスを持った WQE を Send Queu (センドキュー)に配置し、DoorBell を鳴らす。

7. インフィニバンドファブリックの管理マネージャー

インフィニバンドではそのサブネット内に必ず一つサブネットマネージャーが存在する必要があります。 このマネージャは、HCA、またはスイッチの双方で存在することが出来、管理者の構成により選択されます。また、サブネットマネージャー、サブネット内のデバイスディスカバリや FDB の初期化、LID の割り当てなどの管理を行い、定期的にファブリックを点検(スイープ)し、そのサブネット内に変化があったかどうかを 常に検知しています。このマネージャーが起動して始めてインフィニバンドリンクは正常に確立されます。
尚、インフィニバンドスイッチには、サブネットマネージャー内蔵の Managed タイプと Unmanaged タイプがあります。

8. インフィニバンドの特徴まとめ

【1】広帯域 - I/O のボトルネックを省きデータを高速に処理 -
・40Gb/s、56Gb/s、100Gb/s の HCA リンク帯域
・120Gb/s、300Gb/s のスイッチ間リンク帯域

【2】超低レイテンシ - アプリケーション処理時間の大幅削減 -
・1us 以下の End-to-End レイテンシ

【3】ハードウェアベースのトランスポート - CPUへの負荷を削減 -
・Ack/Nak 対応の信頼性のあるデータ転送
・RDMA を使用した CPU に負荷をかけないデータ転送

【4】パケットロスの無いネットワークと柔軟なクオリティサービス(QoS) - 高品質 -
・リンクレベルフローコントロール
・輻輳制御( Congestion Management )
・Virtual lane ごとの QoS と多数のサービスレベル ( SL )