CMIS(共通管理インターフェース)
CMIS(Common Management Interface Specification)は、QSFP-DD、OSFP、OSFP-XD、QSFP112、 SFP-DD、SFP112(SFP+ with CMIS として)、DSFP、COBO、そして CMIS 対応 QSFP まで、あらゆる新しい高速フォームファクターの管理モデルです。QSFP-DD MSA(CMIS 3.0、2018年)で始まり、OSFP と COBO の各グループに採用され、バージョン 5.0(2021年)以降は OIF が維持しています。SFF-8636 と比べると、単に大きなメモリマップというより別のモデルです。最大 32 レーン分のバンク化されたページ、モジュールと各データパスそれぞれの明示的なステートマシン、準拠ビットフィールドの代わりの アプリケーション、多彩な診断機能(VDM)、そしてファームウェアと拡張機能のためのコマンドチャネル(CDB)です。バージョンバイトと変遷履歴は 仕様リビジョンを参照してください。
メモリモデル
| 領域 | アドレッシング | 内容 |
|---|---|---|
| 下位ページ(バイト 0–127) | 常に参照可能 | 識別子、リビジョン、モジュール状態、フラグ、モジュール監視項目、グローバル制御、メディアタイプ、アプリケーションディスクリプタ 1–8、パスワード、バンク選択 126、ページ選択 127 |
| 上位ページ 00h(128–255) | ページ 127 = 00h | ベンダーブロック、電力クラス、コネクター、ケーブル長、メディア技術、チェックサム |
| 01h | アドバタイズ | ファームウェア/ハードウェアリビジョン、リンク長、波長、対応ページとバンク、所要時間、信号品質制御、ディスクリプタ 9–15 |
| 02h | しきい値 | モジュールおよびレーンのアラーム/警告しきい値 |
| 04h | レーザー機能 | 波長可変レーザーのグリッドと範囲(SFF-TA-1004 系列) |
| 10h(バンク化) | レーン制御 | データパスの無効化、Tx ディセーブル、極性、スケルチ、等化、ステージドコントロールセット |
| 11h(バンク化) | レーンステータス | データパスの状態、レーンごとのフラグ、レーン監視項目、設定状態、アクティブコントロールセット |
| 12h(バンク化) | 波長可変レーザー制御 | レーンごとのチャネル/波長 |
| 13h–14h(バンク化) | 診断 | ループバック、PRBS ジェネレーターとチェッカー |
| 20h–2Fh(バンク化) | VDM | ディスクリプタ、サンプル、しきい値、フラグ |
| 9Fh | CDB | コマンドブロック:コマンド ID、長さ、チェックサム、ローカルペイロード |
| A0h–AFh | CDB EPL | 大容量転送(ファームウェアイメージ)用の拡張ペイロード |
| 80h–FFh(その他) | ベンダー | ベンダー固有のページ |
バンクは 8 レーンをアドレッシングします。バンク 0 はレーン 1–8、バンク 1 はレーン 9–16 という具合です。実装されているバンク数はページ 01h でアドバタイズされます。ページ 00h しか持たないモジュールは、フラットメモリビット(バイト 2 ビット 7)をセットします。バス:単一アドレス A0h、最大 400 kHz、スロットごとの ModSelL — 2線式インターフェース。
下位ページ — ホストが拠り所とするバイト
| バイト | フィールド | 備考 |
|---|---|---|
| 0 | 識別子 | 18h QSFP-DD、19h OSFP、1Eh QSFP with CMIS…(SFF-8024) |
| 1 | CMIS リビジョン | メジャー・マイナーのニブル:50h = 5.0、40h = 4.0、30h = 3.0 |
| 2 | メモリ特性 | bit 7 フラットメモリ、その他ステップ構成専用などの機能ビット |
| 3 | モジュール状態 | bits 3–1:1 LowPwr、2 PwrUp、3 Ready、4 PwrDn、5 Fault;bit 0 割り込み解除 |
| 8–11 | モジュールフラグ | 状態変化、温度/Vcc アラーム、補助アラーム、ベンダー固有;ラッチされ、読み取りでクリア |
| 14–25 | モジュール監視項目 | 温度、Vcc、Aux1–Aux3(TEC 電流、レーザー温度、追加電源)、ベンダー固有 |
| 26 | グローバル制御 | 5.x:bit 6 LowPwrAllowRequestHW、bit 5 スケルチ方式、bit 4 LowPwrRequestSW、bit 3 ソフトウェアリセット(4.x:bit 6 LowPwr、bit 4 ForceLowPwr) |
| 37–38 | CDB ステータス | コマンドブロック 1・2 の busy/success/fail |
| 39–40 | アクティブファームウェア | 実行中イメージのメジャー・マイナー |
| 85 | メディアタイプ | 01h MMF、02h SMF、03h パッシブ銅線、04h アクティブケーブル、05h BASE-T |
| 86–117 | アプリケーションディスクリプタ 1–8 | それぞれ 4 バイト:ホストインターフェース ID、メディアインターフェース ID、ホスト/メディアのレーン数、ホストレーン割り当てオプション |
| 118–121 | パスワード変更 | ベンダー定義 |
| 122–125 | パスワードエントリ | ベンダー定義 — 書き込み保護パスワードの格納場所 |
| 126 | バンク選択 | — |
| 127 | ページ選択 | — |
モジュールステートマシン
Reset ──► MgmtInit ──► ModuleLowPwr ──► ModulePwrUp ──► ModuleReady
▲ │
└──────── ModulePwrDn ◄────────┘
(ModuleFault from any state on a fatal error)
- MgmtInit — モジュールがコントローラーを起動する段階。識別情報はまだ読み取れません(ハードウェア仕様上、最大 2 s)。
- ModuleLowPwr — 識別情報、アドバタイズ、しきい値が読み取り可能。電力はクラス 1 に制限され、ホストはここでモジュールを検証します。
- ModulePwrUp → ModuleReady — ホストが LPMode ピンをネゲートする(または LowPwrRequestSW をクリアする)と、モジュールは光学系に電力を供給します。これでデータパスを初期化できます。
- ModulePwrDn — LPMode のアサート時の逆方向の遷移です。
LowPwr から抜け出せないモジュールは、CMIS における典型的なトラブルです。 CMIS の問題、 電力と熱を参照してください。
アプリケーションとデータパス
準拠ビットの代わりに、CMIS モジュールはアプリケーションをアドバタイズします。これは、レーン数を伴うホスト電気インターフェースとメディアインターフェースの組み合わせです。
| ディスクリプタ | ホストインターフェース | メディアインターフェース | ホストレーン/メディアレーン数 | 例 |
|---|---|---|---|---|
| App 1 | 12h 400GAUI-8 C2M | 1Ch 400GBASE-DR4 | 8 / 4 | 400G リンク1本 |
| App 2 | 0Eh 100GAUI-2 C2M | 14h 100GBASE-DR | 2 / 1 | 4 × 100G ブレークアウト |
ホストはレーンごとにアプリケーションを選びます。AppSel(bits 7–4)、DataPathID (bits 3–1)、明示制御ビットをステージドコントロールセット 0(ページ 10h バイト 145–152)に書き込み、続いてApplyDPInit(ページ 10h バイト 143)をアサートします。モジュールは ConfigStatus(ページ 11h バイト 202–205:accepted、rejected、invalid AppSel、 invalid lane combination…)で応答し、受理された値をアクティブコントロールセット (ページ 11h 206–221)にコピーします。各データパスはそれぞれ独自のステートマシンをたどります。
DPDeactivated ──► DPInit ──► DPInitialized ──► DPTxTurnOn ──► DPActivated
▲ │
└────────── DPDeinit ◄───────── DPTxTurnOff ◄──────────────┘
状態はレーンごとにページ 11h バイト 128–131 に報告され(レーンあたり1ニブル)、各ステップの最大所要時間はページ 01h でアドバタイズされるため、ホストはどれだけ待てばよいか分かります。レーンごとの Tx ディセーブルはページ 10h バイト 130 にあります。モジュールがアプリケーションとして挙げていないブレークアウトは、単純に利用できません — 速度とレートを参照してください。
監視:フラグ、監視項目、VDM
- モジュール監視項目(下位ページ 14–25)とレーン監視項目(ページ 11h:Tx パワー 154–169、Tx バイアス 170–185、Rx パワー 186–201、レーンあたり 2 バイト)は、SFP/QSFP と同じ 16 ビット形式を使います(単位)。
- しきい値はページ 02h にあります。フラグはラッチされ読み取りでクリアされ、フラグごとにマスクがあります。IntL はマスクされていないフラグがあれば発報します。
- VDM(ページ 20h–2Fh)は、旧仕様にはなかった観測項目を追加します。FEC 前 BER、訂正不能な FEC フレーム、レーンごとの SNR、レーザー温度と経年、eSNR、PAM4 レベル遷移パラメーターです。それぞれに専用のディスクリプタ、しきい値、フラグがあります。400G モジュールが、エラーがホストに届く前にリンク品質を報告できるのはこの仕組みによるものです(監視)。
CDB — コマンドデータブロック
ページ 9Fh はメールボックスです。ホストがコマンド ID(バイト 128–129)、ペイロード長(130–132)、チェックサム(133)、そして最大 120 バイトのローカルペイロード(136–255)を書き込み、必要に応じて EPL ページ A0h–AFh にさらに書き込みます。モジュールはこれを実行し、ステータスバイト 37–38 と応答ペイロードで報告します。標準コマンドの例:
| コマンド | 用途 |
|---|---|
| 0000h | ステータス照会 |
| 0040h / 0041h | モジュール機能/ファームウェア管理機能 |
| 0100h | ファームウェア情報を取得(実行中イメージと非アクティブイメージ) |
| 0101h | ファームウェアダウンロード開始 |
| 0103h / 0104h | LPL/EPL 経由でファームウェアブロックを書き込み |
| 0107h | ダウンロード完了 |
| 0109h / 010Ah | イメージを実行/イメージをコミット |
| 0102h | 中止 |
CDB は、ベンダーツールが現場でモジュールのファームウェアを更新する仕組みであり、一部のベンダーが設定機能やアンロック機能を実装する仕組みでもあります。対応状況と機能はページ 01h でアドバタイズされます。
チェックサムとパスワード
ページ 00h のバイト 222 はバイト 128–221 のチェックサムです。ページ 01h、02h、04h では、バイト 255 にページチェックサムが入ります(チェックサム)。パスワード(122–125)とベンダーのアンロック方式は仕様の対象外です — EEPROM の書き換えを参照してください。
ホストの対応
ネットワーク OS が実装する CMIS 4.0 と 5.x の深さはさまざまです。アプリケーション/データパスの一連の流れをフルに制御するものもあれば、LPMode を解除してモジュール自身の立ち上げに任せるものもあります。この違いが、「認識はされるが決して Ready にならない」という大半のトラブルの背景にあります — CMIS の問題、 ホストが行うことを参照してください。
CodingBox では
CodingBox は識別子とリビジョンバイトで CMIS を検出し、下位メモリ、ページ 00h、01h、02h、バンク化されたレーンページを読み取り、アプリケーションディスクリプタを SFF-8024 と照合してデコードし、モジュールとデータパスの状態およびレーンごとの監視項目を DDM 画面に表示し、EEPROM editor では識別情報を編集するとページチェックサムを再計算します。CDB 経由のファームウェア操作はベンダー固有であり、エディターの対象外です。
レジスタレベルの表:下位ページマップ、上位ページマップ 00h/01h/02h、レーンページマップ 10h/11h、VDM、CDB。