link第一次切換至8GT/s時,必須進行equalization。
link兩端設備在初始化協商時,通過TS1/TS2廣播對8GT/s的支持。
進入L0后,不管當前的速率是多少,如果需要equalization,那在equalization執行結束前,llink兩端都不能發送DLLP。
Downstream端口需要將狀態從L0切換成Recovery來進行equalization和切換速率至8GT/s。
Upstream端口也被允許(但不是必須)自動進行L0至Recovery的切換。
Upstream端口在收到Downstream發來的DLLP之前,不能發送DLLP。
如果自身需要,或者Upstream有請求,Downstream可以再次執行Equalization。
upstream端口可以通過TS2來請求重做equalization。
downstream端口可以通過TS1來重做equalization。
Equalization過程最多可分為4個Phase,在8GT/s速率,Phase信息通過TS1中的Equalization Control(EC)字段來傳輸。
Phase 0:
DS端口通過8b/10b編碼發送每條lane的TX的preset值和RX的preset hint給US端口。這些值是在轉換至8GT/s之前,在Recovery.RcvrCfg狀態,通過EQ TS2進行發送的。
這些Preset值是提取自每條Lane的Equalization Control寄存器中的US_Port_TX_Preset和US_Port_RX_Preset_Hint字段。在數據速率變成8GT/s后,US端口通過TS1發送它收到的preset值。
Phase 1:
DS端口通過發送EC=01b的TS1來開始Phase 1,TS1中包含每條Lane的Equalization Control寄存器的DS_Port_TX_Preset和DS_Port_RX_Preset_Hint字段。
US端口根據DS發來的值,調整自己的RX,如果能繼續Equalization,在收到DS的TS1之后,便也進入到Phase 1,發送EC=01的TS1。
DS端口在收到EC=01的TS1之后,判斷可以繼續余下的Phase,於是進行Phase 2。
Phase 2:
US端口調整DS的TX設置來匹配自己每條Lane的RX,來確保能收到符合需求的(BER<10^(-12))比特流。
DS端口通過發送EC=10的TS1來進入Phase 2。DS端口發送TX coefficients和preset。
US端口收到這些OS之后,可能會請求不同的coefficient (C0, C-1, C+1)和preset設置,並繼續評估DS Lane的每個設置,直到達到最佳狀態。然后,US端口發送EC=11的TS1給DS端口,並進入Phase 3。
Phase 3:
DS端口調整US的TX來匹配自己的RX設置,使用的方式是類似Phase 2的握手和evaluation過程,除了EC=11。DS發送EC=00的TS1來結束Phase 3和Equalization過程。
重復Equallization時,或在Link處於8GT/s時進行Equalization,Phase可以被跳過。因為沒有必要讓Link回到2.5GT/s或%。0GT/s來通過重發相同的EQ TS2來傳送presets。
DS的TX fine-tuning如果不需要,那么它可以選擇跳過Phase 2和Phase 3。