CMIS — quản lý chung
CMIS, viết tắt của Common Management Interface Specification, là mô hình quản lý cho mọi form factor tốc độ cao mới: QSFP-DD, OSFP, OSFP-XD, QSFP112, SFP-DD và SFP112 (dưới dạng SFP+ với CMIS), DSFP, COBO và QSFP hỗ trợ CMIS. Nó bắt đầu trong MSA của QSFP-DD (CMIS 3.0, năm 2018), được các nhóm OSFP và COBO tiếp nhận, và từ phiên bản 5.0 (năm 2021) được duy trì tại OIF. So với SFF-8636, đây không phải là một bản đồ bộ nhớ lớn hơn mà là một mô hình khác hẳn: các trang theo bank cho tới 32 làn, máy trạng thái tường minh cho module và cho từng luồng dữ liệu, ứng dụng thay cho các bit tuân thủ, chẩn đoán linh hoạt (VDM) và một kênh lệnh (CDB) cho firmware và các chức năng mở rộng. Byte phiên bản và lịch sử: Các phiên bản đặc tả.
Mô hình bộ nhớ
| Vùng | Định địa chỉ | Nội dung |
|---|---|---|
| Trang dưới (byte 0–127) | luôn hiển thị | mã nhận dạng, phiên bản, trạng thái module, cờ, giám sát module, điều khiển chung, loại media, bộ mô tả ứng dụng 1–8, mật khẩu, bank select 126, page select 127 |
| Trang trên 00h (128–255) | trang 127 = 00h | khối nhà sản xuất, cấp công suất, đầu nối, chiều dài cáp, công nghệ media, checksum |
| 01h | quảng bá | phiên bản firmware/phần cứng, chiều dài liên kết, bước sóng, các trang và bank được hỗ trợ, thời lượng, điều khiển toàn vẹn tín hiệu, bộ mô tả 9–15 |
| 02h | ngưỡng | ngưỡng báo động/cảnh báo của module và của làn |
| 04h | khả năng laser | lưới kênh và phạm vi của laser điều chỉnh được (dòng dõi SFF-TA-1004) |
| 10h (theo bank) | điều khiển làn | hủy khởi tạo luồng dữ liệu, vô hiệu hóa Tx, cực tính, squelch, cân bằng tín hiệu, staged control set |
| 11h (theo bank) | trạng thái làn | trạng thái luồng dữ liệu, cờ theo từng làn, giám sát làn, trạng thái cấu hình, active control set |
| 12h (theo bank) | điều khiển laser điều chỉnh được | kênh/bước sóng theo từng làn |
| 13h–14h (theo bank) | chẩn đoán | loopback, bộ tạo và bộ kiểm tra PRBS |
| 20h–2Fh (theo bank) | VDM | bộ mô tả, mẫu đo, ngưỡng, cờ |
| 9Fh | CDB | khối lệnh: command ID, độ dài, checksum, payload cục bộ |
| A0h–AFh | CDB EPL | payload mở rộng cho các lần truyền lớn (ảnh firmware) |
| 80h–FFh (khác) | nhà sản xuất | các trang riêng của nhà sản xuất |
Một bank đánh địa chỉ cho 8 làn: bank 0 là làn 1–8, bank 1 là làn 9–16, và cứ thế tiếp tục; số bank được triển khai được quảng bá ở trang 01h. Module chỉ có trang 00h thì đặt bit bộ nhớ phẳng (byte 2 bit 7). Bus: một địa chỉ duy nhất A0h, tối đa 400 kHz, ModSelL theo từng khe cắm — giao diện hai dây.
Trang dưới — những byte mà host thường xuyên truy cập
| Byte | Trường | Ghi chú |
|---|---|---|
| 0 | Mã nhận dạng | 18h QSFP-DD, 19h OSFP, 1Eh QSFP với CMIS… (SFF-8024) |
| 1 | Phiên bản CMIS | nibble major.minor: 50h = 5.0, 40h = 4.0, 30h = 3.0 |
| 2 | Đặc tính bộ nhớ | bit 7 bộ nhớ phẳng, cùng bit stepped-config-only và các bit khả năng khác |
| 3 | Trạng thái module | bit 3–1: 1 LowPwr, 2 PwrUp, 3 Ready, 4 PwrDn, 5 Fault; bit 0 ngắt được bỏ khẳng định |
| 8–11 | Cờ module | thay đổi trạng thái, báo động nhiệt độ/Vcc, báo động phụ, riêng nhà sản xuất; được chốt lại, xóa khi đọc |
| 14–25 | Giám sát module | nhiệt độ, Vcc, Aux1–Aux3 (dòng TEC, nhiệt độ laser, nguồn phụ), riêng nhà sản xuất |
| 26 | Điều khiển chung | 5.x: bit 6 LowPwrAllowRequestHW, bit 5 phương thức squelch, bit 4 LowPwrRequestSW, bit 3 software reset (4.x: bit 6 LowPwr, bit 4 ForceLowPwr) |
| 37–38 | Trạng thái CDB | bận / thành công / lỗi cho khối lệnh 1 và 2 |
| 39–40 | Firmware đang hoạt động | major.minor của ảnh đang chạy |
| 85 | Loại media | 01h MMF, 02h SMF, 03h đồng thụ động, 04h cáp chủ động, 05h BASE-T |
| 86–117 | Bộ mô tả ứng dụng 1–8 | 4 byte mỗi bộ: host interface ID, media interface ID, số làn host/media, tùy chọn gán làn host |
| 118–121 | Đổi mật khẩu | do nhà sản xuất định nghĩa |
| 122–125 | Nhập mật khẩu | do nhà sản xuất định nghĩa — nơi đặt mật khẩu bảo vệ ghi |
| 126 | Bank select | — |
| 127 | Page select | — |
Máy trạng thái module
Reset ──► MgmtInit ──► ModuleLowPwr ──► ModulePwrUp ──► ModuleReady
▲ │
└──────── ModulePwrDn ◄────────┘
(ModuleFault từ bất kỳ trạng thái nào khi có lỗi nghiêm trọng)
- MgmtInit — module khởi động bộ điều khiển của nó; thông tin nhận dạng chưa đọc được (tối đa 2 s theo đặc tả phần cứng).
- ModuleLowPwr — đọc được thông tin nhận dạng, quảng bá và ngưỡng; công suất giới hạn ở cấp 1; host xác thực module tại đây.
- ModulePwrUp → ModuleReady — host bỏ khẳng định chân LPMode (hoặc xóa LowPwrRequestSW) và module cấp nguồn cho phần quang học của nó; các luồng dữ liệu giờ có thể được khởi tạo.
- ModulePwrDn — quá trình ngược lại khi LPMode được khẳng định.
Một module không bao giờ rời khỏi LowPwr là ticket CMIS kinh điển: Sự cố CMIS, Công suất và nhiệt.
Ứng dụng và luồng dữ liệu
Thay vì các bit tuân thủ, một module CMIS quảng bá ứng dụng — các cặp giao diện điện host và giao diện media, kèm số làn:
| Bộ mô tả | Giao diện host | Giao diện media | Làn host / làn media | Ví dụ |
|---|---|---|---|---|
| App 1 | 12h 400GAUI-8 C2M | 1Ch 400GBASE-DR4 | 8 / 4 | một liên kết 400G |
| App 2 | 0Eh 100GAUI-2 C2M | 14h 100GBASE-DR | 2 / 1 | breakout 4 × 100G |
Host chọn một ứng dụng cho mỗi làn bằng cách ghi AppSel (bit 7–4), một DataPathID (bit 3–1) và bit explicit-control vào Staged Control Set 0 (trang 10h byte 145–152), rồi khẳng định ApplyDPInit (trang 10h byte 143). Module trả lời qua ConfigStatus (trang 11h byte 202–205: được chấp nhận, bị từ chối, AppSel không hợp lệ, tổ hợp làn không hợp lệ…) và sao chép các giá trị được chấp nhận vào Active Control Set (trang 11h 206–221). Mỗi luồng dữ liệu sau đó đi qua máy trạng thái riêng của nó:
DPDeactivated ──► DPInit ──► DPInitialized ──► DPTxTurnOn ──► DPActivated
▲ │
└────────── DPDeinit ◄───────── DPTxTurnOff ◄──────────────┘
Trạng thái được báo cáo theo từng làn ở trang 11h byte 128–131 (một nibble cho mỗi làn), và thời lượng tối đa của mỗi bước được quảng bá ở trang 01h để host biết cần chờ bao lâu. Vô hiệu hóa Tx theo từng làn nằm ở trang 10h byte 130. Breakout mà module không liệt kê như một ứng dụng thì đơn giản là không khả dụng — Tốc độ & tốc độ truyền.
Giám sát: cờ, giám sát, VDM
- Giám sát module (trang dưới 14–25) và giám sát làn (trang 11h: công suất Tx 154–169, dòng phân cực Tx 170–185, công suất Rx 186–201, 2 byte mỗi làn) dùng cùng định dạng 16-bit như SFP/QSFP (đơn vị).
- Ngưỡng nằm ở trang 02h; cờ được chốt lại và xóa khi đọc, với mask cho từng cờ; IntL báo hiệu bất kỳ cờ nào chưa bị mask.
- VDM (trang 20h–2Fh) bổ sung các đại lượng quan sát mà các đặc tả cũ chưa từng có: BER trước FEC, khung FEC không sửa được, SNR theo từng làn, nhiệt độ và tuổi laser, eSNR, các tham số chuyển mức PAM4 — mỗi đại lượng có bộ mô tả, ngưỡng và cờ riêng. Đây là cách một module 400G báo cáo chất lượng liên kết trước khi lỗi đến được host (Giám sát).
CDB — Command Data Block
Trang 9Fh là một hộp thư: host ghi một command ID (byte 128–129), độ dài payload (130–132), một checksum (133) và tối đa 120 byte payload cục bộ (136–255), có thể thêm nữa ở các trang EPL A0h–AFh; module thực thi và báo cáo trong byte trạng thái 37–38 cùng một payload trả lời. Các lệnh chuẩn gồm:
| Lệnh | Mục đích |
|---|---|
| 0000h | truy vấn trạng thái |
| 0040h / 0041h | tính năng module / tính năng quản lý firmware |
| 0100h | lấy thông tin firmware (ảnh đang chạy và ảnh không hoạt động) |
| 0101h | bắt đầu tải firmware xuống |
| 0103h / 0104h | ghi khối firmware qua LPL / EPL |
| 0107h | hoàn tất tải xuống |
| 0109h / 010Ah | chạy ảnh / xác nhận ảnh |
| 0102h | hủy |
CDB là cách các công cụ của nhà sản xuất cập nhật firmware module ngoài hiện trường, và cách một số nhà sản xuất triển khai các chức năng cấu hình và mở khóa. Hỗ trợ và tính năng được quảng bá ở trang 01h.
Checksum và mật khẩu
Trang 00h byte 222 tính checksum cho byte 128–221; các trang 01h, 02h và 04h mang một checksum trang ở byte 255 (Checksum). Mật khẩu (122–125) và các cơ chế mở khóa của nhà sản xuất nằm ngoài phạm vi đặc tả — Mã hóa lại EEPROM.
Hỗ trợ từ phía host
Các hệ điều hành mạng triển khai CMIS 4.0 và 5.x ở mức độ sâu khác nhau: một số điều khiển đầy đủ luồng ứng dụng/luồng dữ liệu, số khác chỉ thả LPMode rồi trông đợi module tự khởi động. Sự khác biệt này đứng sau phần lớn các ticket kiểu “nhận diện được nhưng không bao giờ sẵn sàng” — Sự cố CMIS, Host làm gì.
Trong CodingBox
CodingBox phát hiện CMIS qua byte mã nhận dạng và phiên bản, đọc bộ nhớ dưới, các trang 00h, 01h, 02h và các trang làn theo bank, giải mã bộ mô tả ứng dụng theo SFF-8024, hiển thị trạng thái module và luồng dữ liệu cùng giám sát theo từng làn trên DDM, và chỉnh sửa thông tin nhận dạng với checksum trang được tính lại trong EEPROM editor. Các thao tác firmware qua CDB là riêng của từng nhà sản xuất và nằm ngoài phạm vi của trình chỉnh sửa.
Bảng ở mức thanh ghi: Bản đồ trang dưới, Bản đồ các trang trên 00h/01h/02h, Bản đồ các trang làn 10h/11h, VDM, CDB.