CMIS 레인 페이지 레지스터 맵 (10h, 11h, VDM, CDB)
CMIS 모듈에서 레인별 항목은 모두 뱅크 구조의 페이지에 있습니다: 뱅크 b(하위 바이트 126)는 레인 8b+1 … 8b+8을 담당합니다. 페이지 10h는 호스트가 쓰는 영역으로, 데이터 경로 초기화, Tx disable, 극성, 스퀠치, 이퀄라이제이션, 애플리케이션을 선택하는 스테이징된 제어 세트가 있습니다. 페이지 11h는 호스트가 읽어 들이는 영역으로, 데이터 경로 상태, 레인별 플래그, 모니터, 구성 상태, 활성 제어 세트가 있습니다. 페이지 20h–2Fh는 VDM을, 9Fh는 CDB 메일박스를 담습니다. 이 페이지는 CMIS 5.x를 기준으로 정리한 핵심 바이트 목록입니다(일부 신호 무결성 필드의 바이트 위치는 4.x와 5.x에서 다르며, 그런 경우 범위로 표기했습니다). 설명: CMIS.
범례: 레인별 바이트는 레인 n에 비트 n−1을 씁니다(비트 0 = 레인 1 … 비트 7 = 레인 8). 별도 표기가 없는 한 니블 필드는 각 쌍에서 홀수 레인에 비트 7–4, 짝수 레인에 비트 3–0을 씁니다 · rsvd = 예약됨.
페이지 10h: 레인 제어(호스트가 씀)
| 바이트 | 필드 | 비트/내용 |
|---|---|---|
| 128 | DPDeinitLane | 레인당 1비트: 1 = 비초기화(해당 레인의 데이터 경로를 DPDeactivated로 전환) |
| 129 | rsvd | — |
| 130 | OutputDisableTx | 레인당 1비트: 1 = Tx 출력(레이저) 끔 |
| 131 | PolarityFlipTx | 레인당 1비트: Tx 전기 입력 반전 |
| 132 | SquelchDisableTx | 레인당 1비트: 1 = 자동 Tx 스퀠치 비활성화 |
| 133 | ForceSquelchTx | 레인당 1비트: 1 = Tx 스퀠치 강제 |
| 134 | rsvd | — |
| 135 | AdaptiveInputEqEnableTx | 레인당 1비트: 1 = 호스트 측 적응형 입력 이퀄라이제이션 |
| 136 | AdaptiveInputEqRecallTx | 레인당 1비트: 저장된 EQ 설정 불러오기(4.x: 동결) |
| 137 | rsvd | — |
| 138–141 | FixedInputEqTargetTx | 레인당 니블(138: 레인 1–2 … 141: 레인 7–8): 고정 입력 EQ 코드 0–15 |
| 142 | rsvd | — |
| 143 | ApplyDPInitLane | 레인당 1비트: 1 = 스테이징된 제어 세트 0을 적용하고 DPInit 실행 |
| 144 | ApplyImmediateLane | 레인당 1비트: 데이터 경로를 재초기화하지 않고 SCS0 적용 |
| 145–152 | 스테이징된 제어 세트 0: 데이터 경로 구성 | 레인당 1바이트(145 = 레인 1 … 152 = 레인 8): 비트 7–4 AppSelCode(1–15 = 디스크립터 인덱스, 0 = 없음) · 3–1 DataPathID(데이터 경로의 첫 호스트 레인 − 1) · 0 ExplicitControl(1 = 아래의 SI 설정을 애플리케이션 기본값 대신 사용) |
| 153 | SCS0 AdaptiveInputEqEnableTx | 레인당 1비트 |
| 154 | SCS0 AdaptiveInputEqRecallTx | 레인당 1비트 |
| 155 | rsvd | — |
| 156–159 | SCS0 FixedInputEqTargetTx | 레인당 니블 |
| 160 | SCS0 CDREnableTx | 레인당 1비트: 1 = Tx CDR 켬, 0 = 바이패스 |
| 161 | SCS0 CDREnableRx | 레인당 1비트 |
| 162–165 | SCS0 OutputEqPreCursorTargetRx | 레인당 니블 |
| 166–169 | SCS0 OutputEqPostCursorTargetRx | 레인당 니블 |
| 170–173 | SCS0 OutputAmplitudeTargetRx | 레인당 니블 |
| 174–177 | rsvd | — |
| 178–210 | 스테이징된 제어 세트 1 | 145–177과 동일한 구조(178–185 데이터 경로 구성, 186–210 SI 목표값) |
| 211–255 | Rx 출력 제어와 마스크 | 레인당 OutputDisableRx, PolarityFlipRx, SquelchDisableRx; 페이지 11h용 플래그 마스크(바이트 위치는 리비전마다 다름) |
선택 절차: 145–152에 쓰기 → 해당 레인의 143 설정 → ConfigStatus를 확인하기 위해 페이지 11h 202–205 폴링 → 128–131을 읽어 데이터 경로 상태 확인. 참고: CMIS, 속도와 레이트.
페이지 11h: 레인 상태(호스트가 읽음)
| 바이트 | 필드 | 비트/내용 |
|---|---|---|
| 128 | DPStateHostLane 1–2 | 3–0 레인 1 상태 · 7–4 레인 2 상태(아래 코드 표 참고) |
| 129 | DPStateHostLane 3–4 | 위와 동일 |
| 130 | DPStateHostLane 5–6 | — |
| 131 | DPStateHostLane 7–8 | — |
| 132–133 | rsvd | — |
| 134 | DPStateChangedFlag | 레인당 1비트; 래치됨 |
| 135 | TxFaultFlag | 레인당 1비트 |
| 136 | TxLOSFlag | 레인당 1비트(호스트 측 입력 LOS) |
| 137 | TxCDRLOLFlag | 레인당 1비트 |
| 138 | TxAdaptiveInputEqFailFlag | 레인당 1비트 |
| 139 | Tx 파워 고알람 | 레인당 1비트 |
| 140 | Tx 파워 저알람 | — |
| 141 | Tx 파워 고경고 | — |
| 142 | Tx 파워 저경고 | — |
| 143 | Tx 바이어스 고알람 | — |
| 144 | Tx 바이어스 저알람 | — |
| 145 | Tx 바이어스 고경고 | — |
| 146 | Tx 바이어스 저경고 | — |
| 147 | RxLOSFlag | 레인당 1비트(미디어 측 LOS) |
| 148 | RxCDRLOLFlag | 레인당 1비트 |
| 149 | Rx 파워 고알람 | — |
| 150 | Rx 파워 저알람 | — |
| 151 | Rx 파워 고경고 | — |
| 152 | Rx 파워 저경고 | — |
| 153 | OutputStatusRx | 레인당 1비트: 1 = Rx 출력 활성화/유효 |
| 154–169 | Tx 파워 모니터 | 레인당 2바이트(154–155 레인 1 … 168–169 레인 8), 부호 없음, 0.1 µW |
| 170–185 | Tx 바이어스 모니터 | 레인당 2바이트, 2 µA × 배율 |
| 186–201 | Rx 파워 모니터 | 레인당 2바이트, 0.1 µW |
| 202 | ConfigStatus 레인 1–2 | 3–0 레인 1 · 7–4 레인 2(아래 코드 표 참고) |
| 203 | ConfigStatus 레인 3–4 | — |
| 204 | ConfigStatus 레인 5–6 | — |
| 205 | ConfigStatus 레인 7–8 | — |
| 206–213 | 활성 제어 세트: 데이터 경로 구성 | 레인당 1바이트, 페이지 10h의 145–152와 동일한 구조: 실제로 적용 중인 구성 |
| 214–234 | 활성 제어 세트: SI 설정 | 적응형 EQ 활성화/불러오기, 고정 EQ, CDR Tx/Rx, Rx 프리커서/포스트커서, Rx 진폭. SCS 구조를 그대로 반영 |
| 235 | DPInitPending | 레인당 1비트: 1 = 스테이징된 구성이 ApplyDPInit을 기다리는 중 |
| 236–255 | rsvd/리비전별 플래그 | — |
데이터 경로 상태 코드(바이트 128–131)
| 코드 | 상태 | 의미 |
|---|---|---|
| 1h | DPDeactivated | 레인 유휴; Tx 꺼짐 |
| 2h | DPInit | 적용된 구성으로 초기화 중 |
| 3h | DPDeinit | 해제 중 |
| 4h | DPActivated | Tx 켜짐, 데이터 흐름 중 |
| 5h | DPTxTurnOn | 레이저 켜지는 중 |
| 6h | DPTxTurnOff | 레이저 꺼지는 중 |
| 7h | DPInitialized | 구성 완료, Tx 활성화 대기 중 |
| 0h, 8h–Fh | rsvd | — |
ConfigStatus 코드(바이트 202–205)
| 코드 | 상태 | 의미 |
|---|---|---|
| 0h | ConfigUndefined | 아직 적용된 구성 없음 |
| 1h | ConfigSuccess | 스테이징된 세트가 수락되어 적용 중 |
| 2h | ConfigRejected | 일반적인 거부 |
| 3h | ConfigRejectedInvalidAppSel | 광고되지 않은 AppSel 코드 |
| 4h | ConfigRejectedInvalidDataPath | 해당 애플리케이션에 허용되지 않는 DataPathID |
| 5h | ConfigRejectedInvalidSI | 범위를 벗어난 신호 무결성 목표값 |
| 6h | ConfigRejectedLaneInUse | 이미 다른 활성 데이터 경로에 속한 레인 |
| 7h | ConfigRejectedPartialDataPath | 데이터 경로의 일부 레인만 구성됨 |
| 8h–Bh | rsvd | — |
| Ch | ConfigInProgress | 적용 중 |
| Dh–Fh | custom | 벤더별 |
페이지 12h: 튜너블 레이저 제어(레인별)
레인별 채널 번호 설정, 파장/주파수 설정, 미세 조정 오프셋, 튜닝 상태와 플래그가 있으며, 지원 기능은 페이지 04h에 있습니다. 참고: 튜너블 맵.
페이지 20h–2Fh: VDM(Versatile Diagnostics Monitoring)
| 페이지 | 내용 | 구조 |
|---|---|---|
| 20h–23h | 디스크립터 | 관측값당 2바이트(128–255 → 페이지당 64개, 총 256개): 바이트 0 비트 7–4는 임계값 세트 ID, 3–0은 레인(0 = 모듈 수준); 바이트 1은 관측값 종류(1 레이저 노화 · 2 TEC 전류 · 3 레이저 주파수 오차 · 4 레이저 온도 · 5/6 eSNR 미디어/호스트 · 7/8 PAM4 레벨 전이 미디어/호스트 · 9–16 FEC 이전 BER 최소/최대/평균/현재 미디어/호스트 · 17–24 FERC 최소/최대/평균/현재 미디어/호스트 · 128 이상 코히어런트 세트) |
| 24h–27h | 샘플 | 관측값당 2바이트, 디스크립터와 동일한 인덱스; 형식은 U16/S16/F16 |
| 28h–2Bh | 임계값 | 임계값 세트당 8바이트: 고알람, 저알람, 고경고, 저경고 |
| 2Ch–2Fh | 플래그와 마스크 | 관측값별 알람/경고 플래그(2Ch–2Dh)와 마스크(2Eh–2Fh) |
F16 비율 형식: 비트 15–11은 지수 e, 비트 10–0은 가수 m이며, value = m × 10^(e − 24)입니다. 자세한 내용: VDM과 FEC 지표.
페이지 9Fh: CDB 명령 블록
| 바이트 | 필드 | 내용 |
|---|---|---|
| 128–129 | CMD ID | 명령 식별자, MSB부터(0000h 상태 조회 · 0040h 모듈 기능 · 0041h 펌웨어 관리 기능 · 0100h 펌웨어 정보 조회 · 0101h 펌웨어 다운로드 시작 · 0102h 중단 · 0103h LPL로 펌웨어 블록 쓰기 · 0104h EPL로 펌웨어 블록 쓰기 · 0107h 다운로드 완료 · 0109h 이미지 실행 · 010Ah 이미지 커밋) |
| 130–131 | EPL length | 페이지 A0h–AFh에 있는 확장 페이로드의 바이트 수 |
| 132 | LPL length | 로컬 페이로드의 바이트 수(0–120) |
| 133 | CdbChkCode | 128–132와 LPL에 대한 체크섬: (Σ) mod 256의 1의 보수 |
| 134 | RPL length | 모듈이 기록하는 응답 페이로드 길이 |
| 135 | RplChkCode | 응답 체크섬 |
| 136–255 | LPL | 로컬 페이로드(명령 파라미터/응답) |
| A0h–AFh 128–255 | EPL | 최대 2048바이트의 확장 페이로드 |
바이트 129(CMD ID의 LSB)를 마지막에 쓰면 실행이 트리거됩니다. 이후 호스트는 CdbIsBusy가 해제될 때까지 하위 페이지 바이트 37–38(CdbStatus)을 폴링합니다.
관련 맵
- CMIS 하위 페이지 맵: 모듈 상태, 플래그, 애플리케이션.
- CMIS 상위 페이지 맵: 식별 정보, 광고 정보, 임계값.
- SFF-8636 하위 페이지 맵: 4레인 전신 규격.