PCIe LTSSM이란? 개념 정리



0. What is LTSSM?

  • PCIe 환경에서 Physical Layer가 컨트롤하는 하드웨어 기반의 프로세스서, 연결된 장치들의 Link와 Port들을 설정하고 초기화하여 정상적으로 packet 전송을 가능하게 합니다
  • Link가 가질 수 있는 상태(State)를 다이어그램으로 나타낸 것입니다.
  • LTSSM은 Detect, Polling과 같은 State 단위로 11개로 나눠 구성되어 있습니다. 각 State는 substate를 가지고 있습니다. 아래에서 자세하게 설명하겠습니다.

0.1. 관련 개념

  • Ordered Set : Physical Layer에서 장치 간의 communication을 위하여 사용되는 패킷
  • Training Sequence : Link Initialization & Training에 사용되는 Ordered Set(Using Communication). 줄여서 TS라고 하며, TS1, TS2 존재.
  • Cold Reset : 시스템 전원이 들어와 있지 않다가, 전원이 켜질 때.
  • Warm Reset : 시스템 전원 종료 없이 이뤄지는 시스템 특정 수단에 의하여 발생. 스펙으로 명시되어 있지 않고 설계자가 정의하며, 윈도우즈의 reboot 과 같은 것들이 있다.

1. Detect

  • 양 끝 단에서 링크를 서로 발견하는 단계
  • initial state로서 reset 후나 처음 Boot 될 때 진입하는 단계
  • Fundamental Reset(Cold Boot or Warm Boot) 이나 Hot Reset 이후 진입
  • 모든 logic, port, register를 reset

2. Polling

  • 아래와 같은 역할을 수행하기 위한 State
    • Bit lock : 양 쪽의 클록을 동기화 하는 것(동기화가 완료되면 lock을 획득한다고 말합니다)
    • Symbol lock : Gen1/Gen2에서 연속된 비트들 사이의 경계가 어디인지 알아내는 것 (데이터를 전송할 때에는 추가적인 데이터가 들어갑니다. PCIe 에서는 8b/10b(목표 전송량/실제 필요 전송량)이나 128b/130b을 사용합니다.)
    • Lane polarity : Lane의 극성 체크(D+인지 D-인지)
    • Block Alignment : Gen3에서 연속된 비트들 사이의 경계가 어디인지 알아내는 것 (EIEOS 사용)
    • Lane Data Rate : Lane이 사용할 수 있는 Data 속도

3. Configuration

  • 아래와 같은 역할을 수행하기 위한 State
    • Lane reversal : x4의 경우 0~3 lane이 반대편 device의 3~0 순서로 연결될 수 있음. 이를 확인
    • Link & Lane number : TS(Training Sequence)에서 PAD 로 표기되던 데이터가 negotiation 된 number로 변경됨. 양 쪽 device의 지원가능한 만큼의 최대 성능으로 negotiation 수행
    • Lane to Lane de-skew : 여러 lane에서 병렬(parallel) bit streams들이 각각 다른 시간에 반대편 device에 도착하는 문제를 De-skew라고 하며, 이 문제를 해결하려고 함.

4. Recovery

  • 아래와 같은 역할을 수행하기 위한 State
    • Bit lock, Symbol lock 또는 Block alignment, Lane to lane de-skew 재설정
    • Link speed Change
    • Loopback, Hot reset, Disabled 진입 전 단계
    • L1 state에서 L0 state로 변경 시

5. L0

  • 정상적으로 데이터를 송수신하는 State

6. L0s

  • L0의 substate, L0로 복귀가 빠르게 되면서 전력을 아낄 수 있는 State

7. L1

  • L0s보다 L0로의 복귀 속도는 느리지만, 더 큰 전력을 절약할 수 있는 State
  • 다음과 같은 방법으로 진입 가능
    • ASPM(Active State Power Management) : PCIe 연결로 접속된 장치가 사용중이지 않을 때, Link를 저전력 상태로 변경하는 정책입니다.
    • Power Managemet Software : PM Sw는 장치를 저전력 상태(D1, D2, D3hot, D3cold)로 바꿀 수 있고, 장치의 저전력은 Link도 저전력으로 보낼 수 있습니다.

8. L2

  • L2는 최대전력절약을 위해서 device가 turn off 된 상태입니다.

9. Disable

  • 아래와 같은 역할을 수행하기 위한 State
    • Recevier가 low impedance state 상태일 때, Transmitter를 Electrical Idle 상태로 만듭니다.
    • TS1의 TC(Training Control) disable bit -> 1로 set 상태로 16개를 보냅니다.

10. Loopback

  • 테스트를 위한 State이며, TS1에 Loopback bit가 1로 set 되어 있어야 합니다. 이 경우, Receiver는 받은 패킷을 모두 echo(동일하게 재전송)합니다.

11. Hot Reset

  • Bridge Control Register의 Secondary Bus Reset bit을 1로 set하여, link를 reset 할 수 있습니다.
  • TS1의 TC(Training Control) Hot reset bit -> 1로 set 상태로 보냅니다.