PCIe SKP Ordered Set, parallelized, Elastic Buffer란? 개념정리



Host 입장에서는 한 Link에서 한 lane을 통해 데이터를 받아서 쉽게 데이터처리를 하는 것이 좋으나, 속도를 향상시키기 위하여 여러 lane을 통하여 데이터를 입력받습니다. 이 상황에서는 여러 lane의 data가 일정한 동작 속도에 의해 처리되는 것이 이상적입니다.

그러나 각 lane에서의 속도는 완벽하게 동일하지 않습니다. 각 lane CDR 회로가 link 내 각 lane 별로 따로 존재하고, lane 간 동작 속도에 차이가 존재합니다. CDR을 통해 복원된 data는 parallelize 후 Elastic buffer에 System Clock에 맞추어 저장됩니다. 이로 인하여 CDR로부터 생성된 clock과의 위상차만큼 data의 overflow or underflow가 발생하게 됩니다.

Elastic buffer는 이 문제를 인지하여, data stream 에서 dummy 데이터(SKP Ordered Set)를 더하거나 빼서 위상차이를 보정합니다. Host Receiver 측의 Elastic buffer에서 실제로 SKP ordered set을 얼마나 자주 사용할지는 device가 알 수 없다. 따라서 SKP Ordered set의 주기적인 전송을 Base Spec은 요구하고 있습니다.

다시 말하여, 송신자(Transmitter)에서 수신자(Receiver)로 전송한 bit 나 pattern은, 다수의 lane (예를 들면 4 lane)을 통해 보내지기 때문에 각 lane 으로 보면 위상차가 존재하게 되고, 이 데이터를 수신자(Receiver) 에서 Elastic buffer 를 통하여 위상차 조절을 진행하는 것입니다.