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