SKP用于Clock Tolerance Compensation.
SKP Ordered Set用来补偿Link两端的比特速率之间的差异。接收端必须要有elastic buffer来进行补偿。发送端和接收端可容忍600ppm的差异,也就是每1666个clock就会产生1个clock的偏移。
一:对于8b/10b
发送端发出的SKP OS由一个COM+3个SKP组成,而接收端接收到1 COM加上1到5个SKP都可以认为是收到了SKP OS。
发送SKP OS的时间间隔为1180到1538个symbols。electrical idle不计入间隔时间,在这种情况下,SKP的schedule count会被reset。
二:对于128b/130b
发送端发出的SKP OS有16个symbols.由于PORT可以增加或者减少4个SKP symbols,所以接收端接收到的SKP OS可以为8,12,16,20,24 symbols.SKP_END是最后4个symbol的开头.跟在SKP_END后面的3个symbols也包含不同信息,这些信息的含义与LTSSM有关。
发送SKP OS的时间间隔为370到375个blocks。
如果要发送SKP,则当前block需要以EDS token结尾,然后紧跟着发送SKP block,接下来的data block延续上一个data block的数据发送。如果要发送多个SKP OS,则每个SKP OS前面都要有一个以EDS结尾的data block.