사양 개정과 버전 바이트
규격은 계속 변화하는 문서입니다. 모듈은 자신의 메모리 맵이 어느 리비전을 따르는지 선언하고, 호스트는 자신이 아는 리비전에 따라 그 맵을 해석합니다. 대개는 둘이 충분히 일치하지만, 그렇지 않을 때는 바이트가 실제와 다른 것으로 읽힙니다. 이 페이지는 버전 바이트와 그 해석 방법, 그리고 — 대략적으로 — 각 세대가 무엇을 추가했는지를 정리해, 지금 보고 있는 필드가 눈앞의 모듈에 애초에 존재하는지 판단할 수 있게 합니다.
버전이 선언되는 위치
| 계열 | 바이트 | 인코딩 |
|---|---|---|
| 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이 의미 있는 값(또는 0)을 가져야 하고, 바이트 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 + SFF-8636 방식의 바이트 186–189 | 파장과 허용오차 필드 |
| 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-disable 고속 모드, 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) 모니터링 훅, 펌웨어 관리 개선 |
4.0을 구현한 호스트에 꽂힌 CMIS 5.x 모듈은 기본 흐름(상태 머신, 애플리케이션 선택)에서는 대체로 동작하지만, 호스트가 최신 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에서는 리비전 바이트를 그것이 지배하는 필드들과 함께 설정할 수 있습니다.