Mappa dei registri CMIS: pagine lane (10h, 11h, VDM, CDB)
Tutto ciò che è per lane in un modulo CMIS vive in pagine a banchi: il banco b (byte inferiore 126) copre le lane 8b+1 … 8b+8. La pagina 10h è dove l’host scrive — inizializzazione del data path, Tx disable, polarità, squelch, equalizzazione e gli Staged Control Set che selezionano le applicazioni; la pagina 11h è dove l’host rilegge — stati del data path, flag per lane, monitor, stato di configurazione e l’Active Control Set. Le pagine 20h–2Fh contengono il VDM e la 9Fh la mailbox CDB. Questa pagina elenca i byte chiave, redatta sulla base di CMIS 5.x (le posizioni di byte di alcuni campi di integrità del segnale differiscono tra 4.x e 5.x; sono indicate come intervalli). Descrizione narrativa: CMIS.
Legenda: i byte per lane usano il bit n−1 per la lane n (bit 0 = lane 1 … bit 7 = lane 8); i campi a nibble usano i bit 7–4 per la lane dispari e 3–0 per la lane pari di ogni coppia, salvo indicazione contraria · rsvd = riservato.
Pagina 10h — controllo di lane (l’host scrive)
| Byte | Campo | Bit / contenuto |
|---|---|---|
| 128 | DPDeinitLane | bit per lane: 1 = deinizializza (porta il data path della lane a DPDeactivated) |
| 129 | rsvd | — |
| 130 | OutputDisableTx | bit per lane: 1 = uscita Tx (laser) spenta |
| 131 | PolarityFlipTx | bit per lane: inverte l’ingresso elettrico Tx |
| 132 | SquelchDisableTx | bit per lane: 1 = disabilita lo squelch automatico Tx |
| 133 | ForceSquelchTx | bit per lane: 1 = forza lo squelch Tx |
| 134 | rsvd | — |
| 135 | AdaptiveInputEqEnableTx | bit per lane: 1 = equalizzazione adattiva dell’ingresso lato host |
| 136 | AdaptiveInputEqRecallTx | bit per lane: richiama l’impostazione EQ memorizzata (4.x: freeze) |
| 137 | rsvd | — |
| 138–141 | FixedInputEqTargetTx | nibble per lane (138: lane 1–2 … 141: lane 7–8): codice EQ di ingresso fisso 0–15 |
| 142 | rsvd | — |
| 143 | ApplyDPInitLane | bit per lane: 1 = applica lo Staged Control Set 0 ed esegue DPInit |
| 144 | ApplyImmediateLane | bit per lane: applica SCS0 senza reinizializzare il data path |
| 145–152 | Staged Control Set 0 — configurazione del data path | un byte per lane (145 = lane 1 … 152 = lane 8): bit 7–4 AppSelCode (1–15 = indice del descrittore, 0 = nessuno) · 3–1 DataPathID (prima lane host del data path − 1) · 0 ExplicitControl (1 = usa le impostazioni SI sotto invece dei valori predefiniti dell’applicazione) |
| 153 | SCS0 AdaptiveInputEqEnableTx | bit per lane |
| 154 | SCS0 AdaptiveInputEqRecallTx | bit per lane |
| 155 | rsvd | — |
| 156–159 | SCS0 FixedInputEqTargetTx | nibble per lane |
| 160 | SCS0 CDREnableTx | bit per lane: 1 = CDR Tx attivo, 0 = bypass |
| 161 | SCS0 CDREnableRx | bit per lane |
| 162–165 | SCS0 OutputEqPreCursorTargetRx | nibble per lane |
| 166–169 | SCS0 OutputEqPostCursorTargetRx | nibble per lane |
| 170–173 | SCS0 OutputAmplitudeTargetRx | nibble per lane |
| 174–177 | rsvd | — |
| 178–210 | Staged Control Set 1 | stesso layout di 145–177 (178–185 configurazione del data path, 186–210 target SI) |
| 211–255 | Controlli e maschere dell’uscita Rx | OutputDisableRx, PolarityFlipRx, SquelchDisableRx per lane; maschere dei flag per la pagina 11h (posizioni di byte secondo la revisione) |
Flusso di selezione: scrivere 145–152 → impostare 143 per le lane → interrogare la pagina 11h 202–205 per ConfigStatus → leggere 128–131 per lo stato del data path — CMIS, Velocità e rate.
Pagina 11h — stato di lane (l’host legge)
| Byte | Campo | Bit / contenuto |
|---|---|---|
| 128 | DPStateHostLane 1–2 | 3–0 stato lane 1 · 7–4 stato lane 2 (tabella dei codici sotto) |
| 129 | DPStateHostLane 3–4 | come sopra |
| 130 | DPStateHostLane 5–6 | — |
| 131 | DPStateHostLane 7–8 | — |
| 132–133 | rsvd | — |
| 134 | DPStateChangedFlag | bit per lane; con latch |
| 135 | TxFaultFlag | bit per lane |
| 136 | TxLOSFlag | bit per lane (LOS in ingresso lato host) |
| 137 | TxCDRLOLFlag | bit per lane |
| 138 | TxAdaptiveInputEqFailFlag | bit per lane |
| 139 | Allarme alto di potenza Tx | bit per lane |
| 140 | Allarme basso di potenza Tx | — |
| 141 | Avviso alto di potenza Tx | — |
| 142 | Avviso basso di potenza Tx | — |
| 143 | Allarme alto di bias Tx | — |
| 144 | Allarme basso di bias Tx | — |
| 145 | Avviso alto di bias Tx | — |
| 146 | Avviso basso di bias Tx | — |
| 147 | RxLOSFlag | bit per lane (LOS lato media) |
| 148 | RxCDRLOLFlag | bit per lane |
| 149 | Allarme alto di potenza Rx | — |
| 150 | Allarme basso di potenza Rx | — |
| 151 | Avviso alto di potenza Rx | — |
| 152 | Avviso basso di potenza Rx | — |
| 153 | OutputStatusRx | bit per lane: 1 = uscita Rx abilitata/valida |
| 154–169 | Monitor di potenza Tx | 2 byte per lane (154–155 lane 1 … 168–169 lane 8), senza segno, 0,1 µW |
| 170–185 | Monitor di bias Tx | 2 byte per lane, 2 µA × moltiplicatore |
| 186–201 | Monitor di potenza Rx | 2 byte per lane, 0,1 µW |
| 202 | ConfigStatus lane 1–2 | 3–0 lane 1 · 7–4 lane 2 (tabella dei codici sotto) |
| 203 | ConfigStatus lane 3–4 | — |
| 204 | ConfigStatus lane 5–6 | — |
| 205 | ConfigStatus lane 7–8 | — |
| 206–213 | Active Control Set — configurazione del data path | un byte per lane, stesso layout della pagina 10h 145–152: la configurazione effettivamente in vigore |
| 214–234 | Active Control Set — impostazioni SI | abilitazione/richiamo EQ adattiva, EQ fissa, CDR Tx/Rx, pre/post-cursore Rx, ampiezza Rx — rispecchia il layout SCS |
| 235 | DPInitPending | bit per lane: 1 = una configurazione scaglionata attende ApplyDPInit |
| 236–255 | rsvd / flag secondo la revisione | — |
Codici di stato del data path (byte 128–131)
| Codice | Stato | Significato |
|---|---|---|
| 1h | DPDeactivated | lane inattiva; Tx spento |
| 2h | DPInit | inizializzazione con la configurazione applicata |
| 3h | DPDeinit | disattivazione in corso |
| 4h | DPActivated | Tx acceso, dati in transito |
| 5h | DPTxTurnOn | laser in accensione |
| 6h | DPTxTurnOff | laser in spegnimento |
| 7h | DPInitialized | configurata, in attesa dell’abilitazione Tx |
| 0h, 8h–Fh | rsvd | — |
Codici ConfigStatus (byte 202–205)
| Codice | Stato | Significato |
|---|---|---|
| 0h | ConfigUndefined | nessuna configurazione ancora applicata |
| 1h | ConfigSuccess | set scaglionato accettato e in vigore |
| 2h | ConfigRejected | rifiuto generico |
| 3h | ConfigRejectedInvalidAppSel | codice AppSel non dichiarato |
| 4h | ConfigRejectedInvalidDataPath | DataPathID non consentito per quell’applicazione |
| 5h | ConfigRejectedInvalidSI | target di integrità del segnale fuori intervallo |
| 6h | ConfigRejectedLaneInUse | lane già parte di un altro data path attivo |
| 7h | ConfigRejectedPartialDataPath | non tutte le lane del data path sono state configurate |
| 8h–Bh | rsvd | — |
| Ch | ConfigInProgress | applicazione in corso |
| Dh–Fh | custom | del produttore |
Pagina 12h — controllo del laser sintonizzabile (per lane)
Impostazione del numero di canale, impostazione di lunghezza d’onda/frequenza, offset di sintonia fine, stato di sintonia e flag per lane, con le capacità sulla pagina 04h — Mappe sintonizzabili.
Pagine 20h–2Fh — VDM (Versatile Diagnostics Monitoring)
| Pagine | Contenuto | Layout |
|---|---|---|
| 20h–23h | Descrittori | 2 byte per osservabile (128–255 → 64 per pagina, 256 in totale): byte 0 bit 7–4 ID del set di soglie, 3–0 lane (0 = a livello di modulo); byte 1 tipo di osservabile (1 età del laser · 2 corrente TEC · 3 errore di frequenza del laser · 4 temperatura del laser · 5/6 eSNR media/host · 7/8 transizione di livello PAM4 media/host · 9–16 BER pre-FEC min/max/avg/corrente media/host · 17–24 FERC min/max/avg/corrente media/host · 128+ set coerente) |
| 24h–27h | Campioni | 2 byte per osservabile, stesso indice del proprio descrittore; formati U16 / S16 / F16 |
| 28h–2Bh | Soglie | 8 byte per set di soglie: allarme alto, allarme basso, avviso alto, avviso basso |
| 2Ch–2Fh | Flag e maschere | flag di allarme/avviso per osservabile (2Ch–2Dh) e maschere (2Eh–2Fh) |
Formato di rapporto F16: bit 15–11 esponente e, bit 10–0 mantissa m; valore = m × 10^(e − 24). Dettagli: VDM e metriche FEC.
Pagina 9Fh — blocco comandi CDB
| Byte | Campo | Contenuto |
|---|---|---|
| 128–129 | CMD ID | identificatore del comando, MSB per primo (0000h interroga stato · 0040h funzionalità del modulo · 0041h funzionalità di gestione del firmware · 0100h ottieni informazioni firmware · 0101h avvia il download del firmware · 0102h interrompi · 0103h scrivi blocco firmware LPL · 0104h scrivi blocco firmware EPL · 0107h completa il download · 0109h esegui l’immagine · 010Ah conferma l’immagine) |
| 130–131 | Lunghezza EPL | byte di payload esteso nelle pagine A0h–AFh |
| 132 | Lunghezza LPL | byte di payload locale (0–120) |
| 133 | CdbChkCode | checksum su 128–132 e sull’LPL: complemento a uno di (Σ) mod 256 |
| 134 | Lunghezza RPL | lunghezza del payload di risposta scritta dal modulo |
| 135 | RplChkCode | checksum di risposta |
| 136–255 | LPL | payload locale (parametri del comando / risposta) |
| A0h–AFh 128–255 | EPL | fino a 2048 byte di payload esteso |
Scrivere per ultimo il byte 129 (l’LSB del CMD ID) avvia l’esecuzione; l’host poi interroga i byte inferiori 37–38 (CdbStatus) finché CdbIsBusy non si azzera.
Mappe correlate
- Mappa delle pagine inferiori CMIS — stato del modulo, flag, applicazioni.
- Mappa delle pagine superiori CMIS — identità, annuncio, soglie.
- Mappa delle pagine inferiori SFF-8636 — il predecessore a 4 lane.