포스트

PCI Express

임베디드 시스템 엔지니어링 로드맵

인터페이스 & 프로토콜 파트 중 PCIe

1. PCI-e 개요


PCIe

  • 고속 직렬 컴퓨터 확장 버스 표준
  • 직렬 연결을 바탕으로 고속 데이터를 전송
  • LVDS(Low-Voltage Differential Signal)를 비롯한 다양한 물리 계층 기술을 사용
  • 기존의 PCI, PCI-X, AGP 표준을 대체하도록 설계된 고속 데이터 전송에 사용되는 연결 단자 표준. 줄여서 PCIe, PCI-e, PCIE로 표기한다
    • PCI(Peripheral Component Interconnect) : 32비트 또는 64비트의 고속 버스 방식에 대한 규격
      • 시스템에서 주변 장치 컴포넌트들을 구조화되고 제어 가능한 방법으로 어떻게 연결할 것인지 결정하는 표준
    • 기존의 PCI 시스템은 CPU와 메모리, 디스플레이의 발전 속도보다 느렸기 때문에, 고성능 그래픽 카드와 메모리 사이의 데이터를 빠르게 전송할 필요성이 대두됨
  • 2003년에 인텔, 델, HP, IBM이 합작하여 PCI의 후속 인터페이스로 발표하였고, 2004년부터 적용된 규격

특징 및 장점

1. 직렬 통신

  • 병렬 방식보다 신호 동기화나, 지연 문제가 적음
  • 병렬 방식은 고속화의 한계가 있어 직렬 방식을 사용

2. 레인(lane)

lane

  • 데이터를 송수신하는 통로
  • 두 개의 신호 쌍으로 구성되어, 데이터의 전송선(Transmit)과 수신선(Receive)선으로 구성됨
  • 각각의 레인은 전이중 방식으로 동작하여, 동시에 양방향으로 데이터를 송수신 가능
  • 레인은 개별적으로 작동할 수 있으며, PCIe장치는 x1, x4, x8, x16 등과 같이 여러개의 레인을 묶어 사용하여 데이터 전송 속도를 높일 수 있음

3. 쌍방향 통신

bandwidth

  • PCIe는 입출력 모두 동시에 가능한 풀듀플렉스 통신이기 때문에 실제 데이터 대역폭은 이론상 데이터 통신의 2배

4. 상호 호환성

  • 상위 버전의 PCIe를 사용하는 장치도 하위 버전의 슬롯에 장착할 수 있지만, 대역폭은 둘 중 더 낮은 쪽을 따라간다

5. 범용성

  • ISA와 레거시 PCI처럼 다양한 장치에도 사용 가능

단점

  1. 복잡한 설계
  2. 높은 비용
  3. 레인 수의 제한

2. PCIe 토폴로지


image

Root Complex
  • PICe 시스템에서 중앙 제어 역할을 수행하는 부분. 일반적으로 메인보드의 노스브릿지 칩셋에 해당함
  • PCIe 장치를 관리하고, 데이터 전송을 제어하는 역할을 함
PCIe Endpoint
  • 그래픽 카드, 사운드 카드, 카드 타입의 SSD 등의 PCIe를 호스트 인터페이스로 사용하는 각종 장치
Memory
  • 시스템 메인 메모리

3. PCIe operation


  • PCIe는 3개의 계층으로 구성됨
물리 계층(PHY, Physical layer)
  • 구리선을 통해 실제 신호를 보내는 역할
  • 이 과정에 8b/10b 인코딩(PCIe 1.0, 2.0), 128b/130b 인코딩(PCIe 3.0 이상) 과정도 포함됨
  • 위 단의 트랜잭션 계층에서 내려온 패킷(TLP, Transaction layer packets)들이 순서대로 잘 전송되도록 보장
  • 이를 위해 데이터 링크 계층은 전송하고자 하는 패킷들의 앞쪽에 헤더(Header)를 붙이고 그 안에 일련번호(Sequence ID)를 기입하여 DLLP(Data Link Layer Packet)을 만듬
  • 이 일련번호를 통해 중간에 누락된 패킷이 있는지 체크 가능
    • 연속적인 번호가 오지 않고 뒷 번호가 먼저 온다면 NAK 신호를 보냄
    • 에러 체크를 위한 ECRC(end to end CRC), LCRC 값을 전송하는데, 수신기에서 이를 검사하여 다시 보내게 할 수도 있음
트랜잭션 계층(Transcation layer)
  • 일정한 포멧에 맞추어 패킷을 구성하고, 이를 해석하는 역할
  • 메모리에 읽기/쓰기, 입출력 주소에 읽기/쓰기, PCIe 기기의 설정값을 읽거나 변경하는 일

동작 방식

packetflow

1
2
3
4
5
6
7
8
9
1. 트랜잭션 요청 : 장치로부터 데이터를 읽거나, 쓰기를 위한 요청을 보냄
2. 트랜잭션 패킷 생성 : 트랜잭션 계층에서 패킷을 생성하여 데이터링크 계층으로 전송 
3. 데이터 링크 계층의 패킷 준비 : 데이터 링크 계층 패킷(DLLP)으로 변환
4. 물리 계층으로 전송 : DLLP를 물리 계층으로 전송
5. 장치로 데이터 전송 : 직렬 방식으로 레인을 통해 데이터를 전송
6. 데이터 검증 및 패킷 처리 :CRC 무결성 검증
7. 트랜잭션 완료 및 응답 : 응답 패킷을 생성하여 전송
8. 호스트의 데이터 처리 : 받은 데이터를 처리함
9. 전력 관리 및 대기 상태 : 트랜잭션 완료 후, PCIe는 전력 관리 모드로 들어가거나 대기 상태로 전환

4. PCIe 종류


  • 주로 세대별 속도 향상과 레인 구성을 통해 구분됨
  • 또한, 폼팩터(카드 유형)에 따라서도 구분됨

세대

세대출시 년도레인당 속도 (GB/s)주요 특징
PCIe 1.020030.25PCI의 후속으로 등장, 저속 장치에 주로 사용
PCIe 2.020070.5속도 2배 향상, 데이터센터 및 고성능 컴퓨팅 시스템에 채택
PCIe 3.020101데이터 인코딩 개선, 대역폭 효율 향상, 일반 PC에 널리 사용
PCIe 4.020172속도 2배 향상, 고성능 그래픽 카드 및 SSD에 적용
PCIe 5.020194속도 2배 향상, 차세대 데이터센터 및 고성능 컴퓨팅 시스템에 채택
PCIe 6.020228속도 2배 향상, 더 높은 대역폭 요구하는 차세대 시스템에 대비

레인 구성

  • x1 : 가장 기본적인 구성. 1개의 레인으로 통신. 저속 장치에 사용함
  • x4 : 중간급 성능 제공, 보통 SSD와 같은 장치에 사용
  • x8 : 고성능 장치(서버용 RAID 컨트롤러 등)에 사용
  • x16 : 가장 고속의 데이터 전송을 제공. 그래픽 카드와 같은 데이터 처리장치에 사용함

폼팩터

PCIe

  • PCI Express Standard : 흔히 PCIe 확장 카드에 사용되는 그 폼팩터. 데스크톱용 그래픽 카드도 이 폼팩터에 해당
  • PCI Express Mini Card : Mini PCI Express, Mini PCIe, Mini PCI-E, mPCIe, PEM라고도 불렀던 파생 폼팩터로, 한때 무선랜 카드에 많이 보였던 폼팩터였다. 현재는 M.2로 대체되어서 구형 제품이나 임베디드 시스템이 아닌 한 찾아보기 힘들어졌다. Full Size와 Half Size로 나뉨
  • PCI Express External Cabling : 외부 확장 케이블용 폼팩터. External PCI Express, Cabled PCI Express, ePCIe라고도 부르는 편
  • PCI Express M.2 : 현재 고속 SSD와 무선랜 카드에 주로 사용되고 있는 폼팩터
  • PCI Express OCuLink : 광학 구리 케이블용 폼팩터

참조


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.