仕様リビジョンとバージョンバイト
仕様は生きた文書です。モジュールは自身のメモリマップがどのリビジョンに準拠しているかを申告し、ホストは自分が知っているリビジョンに従ってマップを解釈します。多くの場合この両者は十分に一致しますが、一致しないときはあるバイトが本来とは違うものとして読み取られます。このページはバージョンバイトの一覧、その読み方、そして — おおまかに — 各世代で何が追加されたかをまとめており、目の前のモジュールで見ているフィールドがそもそも存在するのかを判断できるようにします。
バージョンが申告される場所
| ファミリー | バイト | 符号化方式 |
|---|---|---|
| SFF-8472(SFP) | A0h バイト 94 | 列挙コード(下表) |
| SFF-8636(QSFP) | バイト 1 | 列挙コード(下表) |
| CMIS | バイト 1 | メジャーニブル . マイナーニブル(50h = 5.0) |
| MIS(SFP-DD) | バイト 1 | CMIS と同じ |
| INF-8077i(XFP) | なし | 識別子 06h は INF-8077i rev 4.x を意味する |
SFF-8472 — バイト 94
| 値 | リビジョン | 主な追加内容(概要) |
|---|---|---|
| 00h | 未規定 | 診断機能以前のモジュール;識別情報のみ |
| 01h | 9.3 | 初のデジタル診断:A2h のしきい値、監視値、フラグ |
| 02h | 9.5 | 明確化、任意のレーザー温度/TEC 監視 |
| 03h | 10.2 | SFP+ 時代:レート選択、リニア受信器オプション、バイト 93 拡張オプション |
| 04h | 10.4 | SFF-8431 によるソフトレート選択、電力レベル 2、SFF-8079 によるアプリケーション選択 |
| 05h | 11.0 | 10G 銅線(DAC)コーディング — ケーブル技術ビット、60–61 の減衰 |
| 06h | 11.3 | 拡張オプション、波長可変送信器オプション、16GFC 速度コード |
| 07h | 11.4 | ページ化された A2h メモリ(バイト 64 ビット 4)、SFF-8690 の波長可変ページ 02h |
| 08h | 12.0 | SFF-8024 によるバイト 36 拡張仕様コンプライアンス;25G/100G 時代のコード |
| 09h | 12.4 | 電力レベル 3(2.0 W)、バイト 62 の FC 速度 2、PAM4 エンコーディングコード、SFF-8024 との整合 |
経験則:08h または 09h を申告するモジュールでは、バイト 36 が意味を持つ値(またはゼロ)であり、バイト 12 = FFh のときバイト 66 に ×250 Mb/s のレートが入っている必要があります。 03h 以下を申告するモジュールでは、バイト 36 に意味はまったくなく、ホストはこれを無視します。
SFF-8636 — バイト 1
| 値 | 準拠するマップ | 主な追加内容 |
|---|---|---|
| 00h | 未規定(SFF-8436 rev 4.8 以前) | 初期の QSFP+ マップ |
| 01h | SFF-8436 rev 4.8 以前 | — |
| 02h | SFF-8436 rev 4.8、バイト 186–189 は SFF-8636 準拠 | 波長と許容差のフィールド |
| 03h | SFF-8636 rev 1.3 以前 | 初の SFF-8636 |
| 04h | rev 1.4 | — |
| 05h | rev 1.5 | — |
| 06h | rev 2.0 | QSFP28/100G:バイト 192 拡張コンプライアンス、電力クラス 5–7、CDR 制御と LOL フラグ |
| 07h | rev 2.5、2.6、2.7 | ページ 20h–21h、Tx ディセーブル高速モード、Table 4-4 コードの追加 |
| 08h | rev 2.8、2.9、2.10 | 電力クラス 8 とバイト 107 最大電力、200G(QSFP56)コード、PAM4 エンコーディング |
rev 2.0 より前のホストはバイト 192 を見ません — 40G 時代のスイッチに挿した 100G モジュールは、ベンダーブロックの内容にかかわらず、それだけの理由で「不明」になります。
CMIS — バイト 1
| 値 | バージョン | 主な変更内容 |
|---|---|---|
| 30h | 3.0(2018、QSFP-DD MSA) | 初の共通モデル:下位/上位ページ、アプリケーション、モジュールおよびデータパスのステートマシン、CDB |
| 40h | 4.0(2019) | 段階的な制御セット、VDM ページ 20h–2Fh、拡張アプリケーションディスクリプタ、所要時間の明確化 |
| 41h | 4.1 | 修正と明確化 |
| 50h | 5.0(2021、OIF) | 最大 32 レーンまでのバンク、データパスとレーンフラグモデルの改良、VDM 観測項目の拡張、診断ページ 13h–14h |
| 51h–53h | 5.1、5.2、5.3 | 漸進的な改良:VDM タイプの追加、コヒーレント(ZR)監視フック、ファームウェア管理の改良 |
CMIS 5.x モジュールは、4.0 を実装したホストでも基本的な流れ(ステートマシン、アプリケーション選択)は通常動作しますが、ホストは新しい VDM ページを読み取りません。3.0 のみに対応するホストでは、5.x モジュールのブリングアップに完全に失敗することもあります — CMIS の問題。MIS のバージョンは CMIS に追随します:MIS。
互換性のルール
- 新しいモジュール、古いホスト — 未知のコードは不明としてデコードされます。より大きいバイト 94/バイト 1 の値は通常許容されます。問題が始まるのは、ホストが新しいリビジョンにしか存在しないフィールド(バイト 192、アプリケーション)を必要とするときです。
- 古いモジュール、新しいホスト — 問題ありません。ホストは後方互換の解釈を維持します。
- 申告したリビジョンと内容の不一致 — 本当の落とし穴です。バイト 12 = FFh の状態でバイト 66 が空のまま 12.x を申告すると、ホストには「0 Gb/s」と映ります。バイト 192 にでたらめな値を入れたまま rev 2.0 以上を申告すると、不明な種別になります。コーディングする際は、実際に使うフィールドに合わせてリビジョンバイトを設定してください。
- SFF-8024 にはモジュール側のバージョンバイトが存在しません。どのコードを認識できるかは、ホスト側のテーブルのリビジョンが決めます。
その他の文書とその改訂頻度
| 文書 | 現行世代 | 備考 |
|---|---|---|
| SFF-8024 | rev 4.x、年に数回改訂 | 新しい識別子、コネクター、インターフェース ID はまずここに追加される |
| INF-8077i | rev 4.5(2005) | XFP;安定しており、今後の改訂は見込まれない — XFP |
| SFF-8690 / SFF-TA-1004 | 1.x | 波長可変マップ — 波長可変マップ |
| SFF-8079 / SFF-8089 | 1.x | レート/アプリケーション選択 — レート選択 |
| ハードウェア仕様(SFF-8431、SFF-8679、QSFP-DD HW、OSFP) | カタログを参照 | SFP、QSFP の各ハードウェアファミリー |
文書番号とタイトル:MSA 仕様カタログ。
CodingBox では
CodingBox はまずリビジョンバイトを読み取り、それに合致するフィールド定義を適用します。そのため、申告されたリビジョンに存在しないフィールドは、誤ったラベルではなく予約済みとして表示されます。EEPROM editor では、リビジョンバイトとそれが支配するフィールドをまとめて設定できます。