(LTSSM) Link Training and Status State Machine - Overview
4.2.6 Link Training and Status State Machine (LTSSM) Descriptions
TSSM 상태는 Figure 4-67에 나와 있으며, 이 상태들은 다음 섹션에서 설명됩니다.
링크 트레이닝 및 상태 상태 머신(LTSSM)에 지정된 모든 타임아웃 값은 별도로 명시되지 않는 한 기본값에서 -0초, +50%의 범위를 갖습니다. 모든 타임아웃 값은 기본 리셋(Fundamental Reset) 후에 지정된 값으로 설정되어야 합니다. 또한, 모든 카운터 값도 기본 리셋 후에 지정된 값으로 설정되어야 합니다.
4.2.6.1 Detect Overview
포트는 트레이닝 Ordered Set을 전송하고 수신된 트레이닝 Ordered Set에 응답합니다. 이 상태에서는 비트 락(Bit Lock)과 심볼 락(Symbol Lock)이 설정되며, 레인 극성이 구성됩니다.
4.2.6.2 Polling Overview
Polling 상태에는 Polling.Compliance(섹션 4.2.7.2.2 참조)가 포함됩니다. 이 상태는 테스트 장비를 사용하여 장치의 송신기(Transmitter)와 장치 내 연결부(Interconnect)가 전압 및 타이밍 사양(표 8-6, 표 8-7, 표 8-12 참조)을 준수하는지 평가하는 데 사용됩니다.
Polling.Compliance 상태는 단순화된 상호 운용성 테스트 체계를 포함하며, 이는 다양한 유형의 테스트 및 측정 장비(예: 패턴 발생기, 오실로스코프, BERT 등)를 사용하여 수행됩니다. Polling.Compliance 상태는 일반적으로 Polling.Active 상태에서 TS1 Ordered Set을 전송하는 동안 Compliance_Receive_Request가 어설트(Assert)될 때 논리적으로 진입됩니다.
Compliance_Receive_Request를 어설트할 수 있는 기능은 구현에 따라 다릅니다. 또한, 가장 일반적으로 송수신된 데이터 속도 및 수신된 TS1의 데이터 속도 식별자(Symbol 4 of TS1)를 기반으로 속도를 변경할 수 있도록 하는 기능도 제공됩니다. 이를 통해 이 동작이 다양한 데이터 속도에 대해 확장될 수 있도록 합니다.
4.2.6.3 Configuration Overview
설정(Configuration) 상태에서는 송신기(Transmitter)와 수신기(Receiver)가 협상된 데이터 속도로 데이터를 송수신합니다. 포트의 레인(Lane)은 폭(width) 및 레인 협상 시퀀스를 통해 링크(Link)로 구성됩니다. 또한, 레인 간 타이밍 조정(Lane-to-Lane de-skew)이 수행되어야 하며, 허용되는 경우 스크램블링(Scrambling)을 비활성화할 수 있습니다. N_FTS 값이 설정되며, 비활성(Disabled) 상태 또는 루프백(Loopback) 상태로 전환할 수도 있습니다.
4.2.6.4 Recovery Overview
복구(Recovery) 상태에서는 송신기(Transmitter)와 수신기(Receiver)가 설정된 링크(Link) 및 레인(Lane) 번호를 사용하여 이전에 지원되었던 데이터 속도로 데이터를 송수신합니다. 복구 상태에서는 설정된 링크가 원하는 경우 작동 데이터 속도를 변경할 수 있도록 하며, 비트 락(Bit Lock), 심볼 락(Symbol Lock) 또는 블록 정렬(Block Alignment)을 다시 설정하고, 레인 간 타이밍 조정(Lane-to-Lane de-skew)을 수행할 수 있습니다. 또한, 복구 상태는 새로운 N_FTS 값을 설정하고 루프백(Loopback), 비활성(Disabled), 핫 리셋(Hot Reset), 설정(Configuration) 상태로 전환하는 데도 사용됩니다.
4.2.6.5 L0 Overview
L0 상태는 정상적인 작동 상태로, 데이터 및 제어 패킷을 송수신할 수 있습니다. 모든 전력 관리 상태는 이 상태에서 진입할 수 있습니다.
4.2.6.6 L0s Overview
L0s는 전력 절감을 위한 상태입니다.
- L0s는 플릿 모드(Flit Mode)에서 지원되지 않으며, 하드웨어는 FM에서 작동하는 링크의 L0s 활성화 비트 값을 무시해야 합니다.
- L0s는 리타이머(Retimer)를 포함하는 링크에서 지원되지 않습니다.
- L0s는 독립적인 스프레드 스펙트럼 클로킹(SSC, Spread Spectrum Clocking)을 사용하는 개별 참조 클록으로 작동할 때 지원되지 않습니다. (자세한 내용은 § 섹션 4.2.8 및 § 섹션 4.3.9 참고)
L0s는 링크가 Recovery 상태를 거치지 않고도 신속하게 전력 절감 상태로 진입하고 복구할 수 있도록 합니다.
L0s 상태로의 진입은 EIOS 수신 후 발생합니다.
L0s에서 L0 상태로의 전환 시, 비트 락(Bit Lock), 심볼 락(Symbol Lock) 또는 블록 정렬(Block Alignment)을 재설정해야 하며, Lane-to-Lane de-skew가 필요합니다.
송신기(Transmitter)와 수신기(Receiver) 레인 쌍이 반드시 동시에 L0s 상태에 있을 필요는 없습니다.
4.2.6.7 L0p Overview
L0p는 L0 상태의 일부이며, 전력 절감을 위한 상태입니다. L0p는 Flit Mode에서만 지원되며, 모든 데이터 속도에서 사용 가능합니다. L0p 지원은 선택 사항이지만 포트에서는 이를 강력히 권장합니다.
Flit Mode를 지원하는 유사 포트(Pseudo-Ports, Retimers)에서는 L0p 지원이 필수입니다. L0p를 사용하면 일부 레인만 활성 상태로 유지하면서 나머지 레인은 전기 유휴 상태(Electrical Idle)에 놓일 수 있습니다.
그러나 Flit Mode를 사용할 경우, L0 → Recovery → Configuration → L0 상태 전환을 통한 동적 링크 폭 조정(Link Upconfigure) 기능은 지원되지 않습니다.
L0p는 폭(Width) 측면에서 대칭적(Symmetric)입니다. L0p를 지원하는 포트는 설정된 링크 폭(Link Width)까지 모든 유효한 폭(x1, x2, x4, x8, x16)을 지원해야 합니다. L0p 상태에서, 각 방향(Direction)에서 적어도 하나의 레인은 활성 상태여야 합니다. L0p 지원 여부는 Configuration.Complete 상태에서만 협상되며(LinkUp = 0b일 때), 이에 대한 자세한 내용은 §Section 4.2.7에서 설명되어 있습니다.
디바이스 포트 기능은 L0p 지원 설정 및 포트 L0p 종료 지연 시간 값(Port L0p Exit Latency value) 제공을 통해 L0p 지원 여부를 나타냅니다.
L0p Enable이 1b로 설정되고, Hardware Autonomous Width Disable이 0b로 설정되며, Target Link Width가 111b로 설정된 포트 기능은 설계된 소프트웨어 개입 없이 Link Management DLLP(§Section 4.2.6.7.1 참조)를 링크 파트너에게 전송하여 L0p 요청을 시작할 수 있습니다. 시스템 소프트웨어는 CfgWr TLP를 해당 기능에 전송하여 L0p Enable을 1b로 설정하고 Target Link Width를 000b에서 100b 사이의 값으로 변경함으로써 포트 기능이 L0p 링크 폭 변경을 시작하도록 지시할 수 있습니다. 그러나 테스트 또는 디버깅과 같은 사용 사례를 제외하고는 시스템 소프트웨어가 Target Link Width를 변경하지 않고 그대로 유지하는 것이 강력히 권장됩니다.
링크가 L0p를 지원하며 Configuration 상태로 전환하여 링크 폭이 변경된 경우, 다음 규칙이 적용됩니다:
- Upon entering Recovery, the Link will revert to the configured Link width from its last entry to L0.
- L0p cannot be used to activate Lanes that were turned off in the Configuration state.
L0p 상태에서는 어떤 레인도 최소한 TTX-IDLE-MIN 시간 동안 전기적 유휴(Electrical Idle) 상태에 있어야 합니다. 전기적 유휴 상태에서 TX의 DC 공통 모드 전압은 규격 내에서 유지되어야 합니다. 리시버(Receiver)는 TTX-IDLE-MIN 시간 이상 대기한 후 전기적 유휴 상태 종료(Electrical Idle Exit)를 감지하기 시작해야 합니다.
TTX-IDLE-MIN 시간이 경과한 후 L0p가 활성화되면,어떤 포트라도 최대 3개의 동일한 Link Management DLLP를 5개의 연속된 Flit 내에서 전송하여 링크 폭(Link Width) 변경을 요청할 수 있습니다.
- 두 개의 Flit은 Ordered Set으로 분리되었더라도 연속된 것으로 간주됩니다.
- 링크 폭 변경 요청은 Upsize(활성 레인 증가) 또는 Downsize(활성 레인 감소)를 위한 것이 될 수 있습니다.
L0p Enable이 설정된 경우(Link Partner가 활성 상태인 경우):
- L0p 요청을 받은 링크 파트너는 요청을 수락(Ack)하거나 거부(Nak)해야 하며, 요청을 무시하도록 허용되지 않는 한 반드시 응답해야 합니다.
L0p Enable이 클리어되었거나 Hardware Autonomous Width Disable이 설정된 경우:
- 링크 파트너는 L0p 요청을 거부(Nak)하는 것이 강력히 권장되며, 다만 요청이 "풀 링크 폭(fully configured link width)"까지 증가하는 경우라면 승인할 수 있습니다.
L0p 요청 응답 시간 규칙
포트는 다음 시간 내에 L0p 요청이 포함된 Flit을 받은 후 응답해야 합니다.
- 8b/10b 인코딩이 사용된 경우: 4μs
- 그 외의 경우: 1μs
시간은 다음 기준으로 측정됩니다.
- 입력 패키지 핀(Ingress Package Pin)에서 요청이 포함된 Flit의 마지막 비트가 수신된 순간부터
- 출력 패키지 핀(Egress Package Pin)에서 응답이 포함된 Flit의 첫 번째 비트가 전송될 때까지의 시간
L0p 요청 재전송 및 요청 무효화
- 포트가 링크 폭 변경 요청을 전송한 후 응답을 받지 못한 경우,
- 8b/10b 인코딩이 사용된 경우: 8μs 이내
- 그 외의 경우: 4μs 이내
동일한 링크 폭 변경 요청을 다시 전송하거나 요청을 취소해야 합니다.
- 5개의 연속된 Flit 내에서 동일한 L0p 요청을 여러 번 받은 경우,
- 링크 파트너는 항상 동일한 응답을 보내야 합니다.
- 다음 조건 중 하나라도 충족되면, 링크 파트너는 요청을 무효화된 것으로 간주해야 합니다.
- 업사이즈(Up-size) 요청의 경우:
- 요청자가 Ack가 포함된 Flit이 전송된 후 16μs 이내에 링크 폭 업사이즈(증가)를 시작하지 않은 경우 AND
- 요청자가 Ack가 포함된 Flit이 전송된 후 8μs 이내에 업사이즈 요청을 다시 전송하지 않은 경우
- 다운사이즈(Down-size) 요청 및 Ack 응답이 있는 경우:
- 요청자가 Ack가 포함된 Flit이 전송된 후 4μs 이내에 링크 폭 다운사이즈(감소) 요청을 다시 전송하지 않은 경우, 그리고
- 요청자가 Ack가 포함된 Flit이 전송된 후 16μs 이내에 링크 폭 다운사이즈를 시작하지 않았으며, 링크 파트너가 EIOSQ를 전송하여 링크 폭을 감소시키지 않은 경우
- 다운사이즈(Down-size) 요청 및 Nak 응답이 있는 경우:
- 요청자가 Nak가 포함된 Flit이 전송된 후 4μs 이내에 링크 폭 다운사이즈 요청을 다시 전송하지 않은 경우
- 업사이즈(Up-size) 요청의 경우:
L0p에 대한 규칙은 다음과 같습니다:
- Link Control 레지스터에서 Hardware Autonomous Width Disable 비트가 1b로 설정되었거나 L0p Enable 비트가 0b로 설정된 경우, 포트는:
- 다운사이즈(폭 감소)를 요청할 수 없음.
- 링크가 완전히 구성된 폭이 아니라면, 완전히 구성된 링크 폭으로 업사이즈(폭 증가) 요청을 시작해야 함.
- L0p Ack 및 Nak 규칙:
- 포트는 현재 폭보다 낮은 폭에 대한 **L0p 요청(L0p Request)**을 Nak할 수 있음, 단 L0p.Priority가 설정되지 않은 경우.
- 포트가 열 스로틀링(thermal throttling) 또는 신뢰성(reliability) 문제로 인해 링크 폭을 축소(down-size)하려는 경우,L0p 요청(L0p Request)에서 L0p.Priority를 설정해야 합니다. 링크 파트너(Link partner)는 L0p Enable이 설정되고 Hardware Autonomous Width Disable이 해제된 경우 우선순위 L0p 요청을 승인(Ack)해야 합니다. 또한, 링크 파트너가 L0p 폭 변경을 요청하지 않고, 다음 Flit에서 L0p 폭 변경 요청을 하지 않으려면, 아래의 동시 링크 폭 변경 요청 규칙을 따라야 합니다. 링크 파트너가 다음 Flit에서 L0p 폭 변경을 요청할 예정이라면, 100ns 이내에 송신기 핀(Transmitter pins)에 표시되어야 하며, L0p 요청에서 L0p.Priority가 설정되어 있어야 합니다. L0p.Priority를 설정하는 요구 사항은 구현 방식에 따라 달라질 수 있으며,
L0p.Priority 비트가 업사이즈 요청에 설정된 경우, 동작은 정의되지 않습니다. - 링크 폭을 축소하려는 포트가 링크 파트너로부터 Ack을 받은 경우, 기본적인 조건이 링크가 전체 폭으로 작동하는 것을 더 이상 제한하지 않을 때, 업사이즈 요청을 시작할 책임이 있습니다.
- 두 개의 포트가 동시에 링크 폭 변경을 요청하는 경우, 다음 규칙을 적용하여 어느 요청이 승리할지 결정해야 합니다.
포트는 송신기 핀(Transmitter pins)에서 100ns 이내에 L0p 요청이 표시되도록 예약된 경우, 보류 중인 L0p 요청을 동시 요청으로 간주할 수 있습니다. 요청이 실패한 포트는 승리한 포트의 요청을 적절한 L0p 응답(Ack)으로 승인해야 합니다. 요청이 성공한 포트는 패배한 포트의 요청을 Nak(거부)하거나 무시할 수 있습니다.- 두 요청 모두 L0p.Priority가 설정된 경우:
- 양쪽이 동일한 폭을 요청하면, 다운스트림(Downstream) 포트가 승리합니다.
- 그렇지 않으면, 더 낮은 폭을 요청한 쪽이 승리합니다.
- 한쪽 요청만 L0p.Priority가 설정된 경우:
- L0p.Priority가 설정된 요청이 승리합니다.
- 어느 쪽도 L0p.Priority가 설정되지 않은 경우:
- 양쪽이 동일한 폭을 요청하면, 다운스트림(Downstream) 포트가 승리합니다.
- 그렇지 않으면, 더 높은 폭을 요청한 쪽이 승리합니다.
- 두 요청 모두 L0p.Priority가 설정된 경우:
- 포트는 동일한 폭의 L0p 요청을 이미 승인(Ack)한 경우, 해당 요청을 무시해야 합니다.
또한, 송신기 레인(Transmitter Lanes)이 이미 동일한 폭으로 전환되었거나 전환 중인 경우에도 요청을 무시해야 합니다. - Recovery 상태로 진입하면,
링크는 가장 최근의 Configuration → L0 전환에서 설정된 링크 폭으로 복구됩니다.
또한, **L0p 전환 상태(폭 변경 요청/응답 및 Ack/Nak 이후 경과 시간 등과 같은 모든 추적 정보)**가 초기화되며,
폭 변경 요청이 없었던 것처럼 동작합니다.
L0p 요청을 통해 링크 폭 변경이 시작되면, 해당 요청은 완료되거나 포기(abandon)되어야 합니다.
포트는 다음 조건이 충족되지 않는 한 새로운 링크 폭 변경 요청을 시작할 수 없습니다.
- 마지막 1μs 동안(1b/1b 또는 128b/130b 인코딩 사용 시) 또는 마지막 4μs 동안(8b/10b 인코딩 사용 시), 링크 폭 조정이 진행되지 않았어야 합니다.
- 포트가 마지막 L0p 요청을 포기(abandon)한 경우, 요청을 포기한 이후 최소 16μs가 경과해야 합니다.
- 포트가 원격 포트(remote Port)에서 받은 마지막 L0p 요청을 승인(Ack)한 경우, 해당 요청이 완료되었거나 포기(abandon)된 상태여야 합니다.
링크 폭 축소(Link width down-size)의 경우,링크 폭 축소 요청이 승인(Ack)된 이후 각 포트는 독립적으로 다음 단계를 수행해야 합니다.
- 다음으로 예정된 SKP Ordered Set 간격에서, 종료될 예정인 레인은 SKP Ordered Set 대신 EIOSQ를 전송합니다.
- EIOSQ를 전송한 레인은 EIOSQ가 전송된 후 Electrical Idle 상태로 전환됩니다.
SKP Ordered Set을 전송한 레인은 새로운 링크 폭(Link Width)에 해당하는 SKP Ordered Set 삽입 간격을 사용하여 Flit 전송을 재개합니다.
(자세한 내용은 섹션 4.2.3.4.2.5를 참조하세요.) - 요청한 포트가 L0p 요청에 대한 Ack(승인) 을 받지 못했지만, 링크 파트너(Link Partner) 가 EIOSQ Ordered Set을 전송하는 것을 확인한 경우, 이를 Ack(승인) 으로 간주해야 합니다.
(이러한 상황은 Ack DLLP를 포함한 Flit이 손상된 경우 발생할 수 있습니다.) - 다운사이즈(Down-size) 협상 중에는, 모든 레인이 동시에 비활성화되도록 EIOS가 모든 레인에서 수신되어야 합니다.
레인 간 스큐(Skew) 조정이 완료되지 않으면 LTSSM은 Recovery(복구) 상태로 전환해야 합니다.- 링크(Link) 가 원하는 폭(Link Width)을 양방향에서 달성하지 못한 경우, 포트(Port) 는 EIOSQ를 전송한 후 24msec 후에 Recovery(복구) 상태로 진입할 수 있습니다.
링크 폭 증가(업사이즈) 시 다음 단계를 수행해야 합니다:
- 업사이징 작업은 요청 포트에서 시작해야 합니다. 요청하지 않은 포트는 활성화될 레인의 전기적 유휴(Electrical Idle) 종료를 감지한 후 업사이징 작업을 시작합니다.
- 데이터 스트림은 활성 레인에서 계속 진행됩니다.
- 레인을 활성화하려면 다음 순서를 따라야 합니다:
- SKP Ordered Set은 Lane 0과 동일한 시간에 예약되어야 하며, 동일한 수의 SKP가 (Pseudo-)Port의 수신기에 의해 Lane 0에서 추가되거나 삭제되어야 합니다. 포트는 8b/10b 인코딩에서 TS1/TS2 Ordered Set을 잘라내어 Lane 0과 동일한 시간에 SKP Ordered Set을 전송할 수 있습니다.
- TS1 Ordered Set을 전송할 때는 § Section 4.2.7.4.1 및 § Section 4.2.5.3의 요구 사항을 준수해야 합니다. 송신기는 SKP Ordered Set을 활성 레인과 동시에 전송해야 하지만 EIOSQ가 중단되지 않도록 해야 합니다. 이를 위해 SKP Ordered Set 이후 EIOSQ 시퀀스를 다시 시작할 수 있으며, EIOSQ 전송이 SDS Ordered Set보다 256 UI 이내에 예약된 경우 송신기는 EIOSQ 전송을 생략하거나 SKP 간격까지 SDS 전송을 지연할 수 있습니다.
- 모든 활성화될 레인에서 연속적인 8개의 TS1 또는 TS2 Ordered Set을 수신하면 송신기는 § Section 4.2.7.4.4 및 § Section 4.2.5.3의 요구 사항을 충족하는 TS2 Ordered Set 전송으로 전환해야 합니다. Extended Synch bit이 설정된 경우, 송신기가 TS2 Ordered Set 전송으로 전환하기 전에 최소 1024개의 연속적인 TS1 Ordered Set을 전송하는 것이 강력히 권장됩니다.
- 연속적인 16개의 TS2 Ordered Set을 받은 후, 포트는 다음 예약된 SKP Ordered Set 전송 직전에 SDS Ordered Set을 보냅니다(활성 레인뿐만 아니라 활성화될 레인에도 해당).
- Lane 간 de-skew는 SKP Ordered Set을 사용하여 수신기에서 수행해야 하며, 현재 활성 레인과 연속적인 8개의 TS2 Ordered Set을 수신한 레인이 동일한 시간에 SDS Ordered Set을 수신해야 합니다. 데이터 속도가 8.0 GT/s 이상인 경우, 새로운 링크 폭이 적용되는 SKP Ordered Set 삽입 간격이 재설정됩니다(§ Section 4.2.3.4.2.5 참조).
- 1ms가 경과했으며, 활성화될 레인 중 어느 것도 Electrical Idle을 종료하지 않았다면, LTSSM은 Recovery로 진입해야 합니다.
다양한 L0p 명령 및 응답에 대한 DLLP 인코딩은 §Figure 3-15에 나와 있습니다. DLLP의 다양한 필드에 대한 정의는 §Table 4-54에 나와 있습니다.
4.2.6.8 L1 Overview
L1은 전력 절감을 위한 상태입니다.
L1 상태는 L0s보다 추가적인 전력 절감을 제공하지만, 그 대가로 복귀 지연 시간이 증가합니다.
L1 상태로의 진입은 데이터 링크 계층(Data Link Layer)의 지시에 따라 EIOS를 수신한 후 발생합니다.
4.2.6.9 L2 Overview
L2 상태에서는 전력을 적극적으로 절약할 수 있습니다. 송신기(Transmitter)와 수신기(Receiver)의 대부분이 꺼질 수 있습니다.
기본 전원(Main power)과 클록(Clock)은 보장되지 않지만, 보조 전원(Aux power)은 사용할 수 있습니다.
비콘(Beacon) 지원이 관련 시스템 또는 폼팩터(form factor) 사양에 의해 요구되는 경우, 웨이크업 기능을 지원하는 업스트림 포트(Upstream Port)는 신호를 전송할 수 있어야 하며, 다운스트림 포트(Downstream Port)는 이를 수신할 수 있어야 합니다. 이 웨이크업 신호는 비콘(Beacon)이라고 합니다.
L2 상태로의 진입은 데이터 링크 계층(Data Link Layer)의 지시에 따라 EIOS를 수신한 후 발생합니다.
4.2.6.10 Disabled Overview
Disabled 상태의 목적은 구성된 링크(Link)가 비활성화된 상태를 유지하도록 하는 것입니다. 이는 명령에 의해 유지될 수도 있고, Disabled 상태로 진입한 후 전기 유휴 상태(Electrical Idle)에서 벗어나는 경우(예: Hot Removal and insertion)까지 지속될 수 있습니다.
4.2.6.11 Loopback Overview
Loopback(루프백)은 테스트 및 결함 격리를 위한 용도로 사용됩니다. 이 상태에서는 진입 및 종료 동작만 지정되며, 나머지 모든 세부 사항은 구현에 따라 달라집니다. Loopback은 개별 Lane(레인) 단위 또는 구성된 Link(링크) 단위로 작동할 수 있습니다.
Loopback Lead는 Loopback을 요청하는 구성 요소입니다.
Loopback Follower는 데이터를 다시 되돌려 보내는 구성 요소입니다.
8b/10b 및 128b/130b 인코딩에서는 Loopback이 TS1 및 TS2 Ordered Set의 Training Control 필드에서 비트 2(Loopback)를 사용합니다(§ Table 4-34 및 § Table 4-35 참조). 1b/1b 인코딩에서는 Loopback이 TS1 및 TS2 Ordered Set의 Training Control 필드에서 비트 3:0을 인코딩으로 사용합니다(§ Table 4-37 참조).
Loopback Lead의 진입 메커니즘은 장치별로 다릅니다.
Loopback Follower 장치는 두 개의 연속된 TS1 Ordered Set을 수신하고 Loopback_Request가 설정되었을 때 Loopback에 진입합니다.
4.2.6.12 Hot Reset Overview
Hot Reset 상태의 목적은 구성된 링크 및 관련된 다운스트림 장치를 인밴드(in-band) 신호를 사용하여 리셋할 수 있도록 하는 것입니다.
4.2.7 Link Training and Status State Rules
다양한 링크 상태 비트는 소프트웨어를 통해 모니터링되지만, LinkUp은 데이터 링크 계층(Data Link Layer)에 의해 모니터링됩니다. § Table 4-58에서는 LTSSM(링크 트레이닝 및 상태 머신) 전체에서 링크 상태 비트를 처리하는 방법을 설명합니다.
(더 많은 정보는
§ Section 3.2에서 LinkUp,
§ Section 7.5.3.8에서 링크 속도(Link Speed), 링크 폭(Link Width) 및 링크 트레이닝(Link Training),
§ Section 6.2에서 수신기 오류(Receiver Error), 그리고
§ Section 6.7에서 인밴드 존재 감지(In-Band Presence Detect)를 참조하십시오.)
또한, 수신기는 8b/10b 인코딩을 사용할 때, 필요할 경우 Lane Error Status Register(레인 오류 상태 레지스터)에서 8b/10b 오류를 보고할 수 있으며, § Table 4-58에서 수신기 오류(Receiver Error)로 오류를 보고하는 것이 허용될 수도 있습니다.
PCI Express 링크를 구성하고 운영하기 위한 상태 머신 규칙은 다음 섹션에서 정의됩니다.
1b/1b 인코딩을 위한 링크 및 레인 번호 매칭
1b/1b 인코딩을 사용할 경우, TS1/TS2 순서 집합(Ordered Sets) 내에서 링크 및 레인 번호가 명시적으로 전송되지 않으며, 이에 대한 정보는 § Table 4-37에 나열된 상태에서만 제공됩니다. 따라서, LTSSM(Low-Level Transaction State Machine)의 어떤 상태에서든 1b/1b 인코딩을 사용할 경우, 송신된 TSO/TS1/TS2 순서 집합과 수신된 TSO/TS1/TS2 순서 집합 간의 정확한 일치 여부는, 해당 순서 집합이 유효한 1b/1b TSO, TS1 또는 TS2 순서 집합이라면 항상 참이라고 간주해야 합니다.
Recovery.RcvrCfg 상태에서, 만약 평형 요청(Equalization Request)이 포함된 TS2 순서 집합(평형 바이트 0: 비트 0=0b, 비트 7=1b)이 수신되면, 이는 링크 번호가 정확히 일치하는 것으로 처리해야 합니다.
TS2 순서 집합을 평형 요청과 함께 전송하고, 링크 번호(또는 PAD)가 포함된 TS2 순서 집합을 수신할 경우, 수신기는 수신된 링크 번호를 확인하여, Configuration LTSSM 상태에서 협상된 링크 번호와 일치하는지 검사해야 합니다.
마찬가지로, LTSSM의 Configuration 상태 이외의 상태에서 1b/1b 인코딩을 사용할 경우, TSO/TS1/TS2 순서 집합을 전송하는 것과 관련된 모든 참조는 Configuration LTSSM 상태에서 협상된 링크 번호 및/또는 레인 번호를 사용한 것으로 해석되어야 합니다. TSO/TS1/TS2 순서 집합 내에서 레인 번호는 난수화(Scrambling)를 위한 용도로 사용됩니다.
####
출처) PCI Express Base Speicification Revision 6.3