PCIe Ordered Set이란? 개념 정리

 


1. What is Ordered Set?

Link간의 communication은 Ordered Set을 통하여 이루어집니다. 모든 Ordered Set은 K character(comma, COM라고도 표기)로 시작하고, 전송되는 Ordered Set에 따라서 K or D chracter를 가지고 있을 수 있습니다. Ordered Set은 항상 four byte boundraries로 정렬되며, 아래의 다양한 상황들에서 전송됩니다.

  • Error Recovery, Initiating Events, Exit From Low Power States : TS1 or TS2(Training Sequence) 전송
  • Electrical Idle state에 진입 : Electrical Idle ordered set 전송
  • Link power state를 변경 : Fast Training Sequence(FTS) ordered set 전송
  • 전송할 packet이나 ordered set이 없으면 : 이 상태에서 link는 logically idle이고, receiver의 PLL이 transmitter의 frequency에 locked 되게 하기 위하여, transmitter가 지속적으로 무언가를 보내야됩니다. 이 때, Logical Idle characters는 00h로 이루어져있습니다.
  • Clock Tolerance Compenstation : Mux는 주기적으로 Clock Tolerance Compenstation을 위하여 SKIP ordered set 전송

2. Ordered Set 종류

Ordered Set의 정의는 TLP or DLLP가 아닌 characters series입니다. COM character로 항상 시작하며, Link Training, Clock tolerance compensation, Link Power Change에 사용됩니다.

2.1. TS1 and TS2 Ordered Set(TS1OS, TS2OS)

  • Link 초기화 & Training에 사용됩니다. Bit lock & Symbol lock 획득, Link speed 설정 등에 사용됩니다.

2.2. FTS Ordered Set(FTSOS)

  • Transmitter는 L0s low-power 상태에서 L0 상태로 가기 위하여 적절한 개수를 보냅니다(최소 개수는 training에 결정).

2.3. SKP Ordered Set(SOS)

  • Clock Tolerance Compensation에 사용됩니다.
  • 송수신측의 Frequency 차이가 존재하는 경우에는 송신/수신 데이터 처리 속도가 달라 데이터가 유실 될 수 있기 때문에, Elastic Buffer와 SKP OS가 사용됩니다.

2.4. Electrical Idle Ordered Set(EIOS)

  • 송신측(Transmitter)가 link를 저전력(low power)으로 보내기 위하여 사용하는 Ordered Set
  • low power link state로 들어가고 싶은 Transmitter는 EIOS를 전송합니다.
  • EIOS가 수신되면 수신측(Receiver)에서는 입력 에러를 무시합니다.

2.5. Electrical Idle Exit Ordered Set(EIEOS)

  • Electrical idle 상태에서 exit하기 위하여 전송합니다.
  • 낮은 주파수(low-frequency) 신호를 전송합니다. 이러한 이유는 낮은 주파수 상태로 데이터를 전송해여 높은 전압(high voltage)를 전송할 수 있고, 높은 전압을 보내야 수신측(receiver)에서 더 쉽게 EIEOS를 감지할 수 있기 때문입니다.
  • 8b/10b Encoding 에서는 K28.7을 전송하는데, 이는 1111100000(연속된 1 5개, 0 5개. 이는 즉 저주파수 신호를 의미)을 의미합니다.
  • 128b/130b Encoding 에서는 00FF00FF… 와 같은 방식으로 저주파수 신호를 전송합니다.

2.6. Skip Ordered Set(SKP)

  • 두 Device 사이에 Frequency 차이가 있을 때, 차이점을 보정(compensate)하여 데이터 유실 방지

2.7. Start of Data Stream Ordered Set(SDS)

  • Data Stream의 시작을 알리기 위해 사용하는 Ordered Set입니다.
  • Data Block인 TLP, DLLP, Framing Token 는 이후에 오면 Block Align을 수행하게 됩니다.
  • Data는 1st E1h(SDS Identifier), 나머지 15개는 55h로 구성됩니다.

3. Control Character 리스트

Character Name 8b/10b name Description
COM K28.5 Ordered set의 첫 번째 character로 Symbol lock을 달성하기 위하여 사용
PAD K23.7 Packet filler
STP K27.7 TLP 시작점
SDP K29.7 DLLP 시작점
IDL K28.3 Link가 Electrical Idle 상태로 진입할 때 사용
EIE K28.7 Electrical Idle Exit Ordered Set이 Link를 full power로 가져오기 위하여 사용
SKP K28.0 Clock Tolerance Compensation을 위하여 SKIP ordered set에서 사용
END K30.7 Good Packet의 종료점
EDB K30.7 Bad Packet or ‘nullified’ TLP의 종료점
FTS K28.1 L0s 저전력 상태에서 L0로 exit 할 때 사용

출처

  • PCIe Spec