PCI Express
인터페이스 & 프로토콜 파트 중 PCIe
1. PCI-e 개요
- 고속 직렬 컴퓨터 확장 버스 표준
- 직렬 연결을 바탕으로 고속 데이터를 전송
- LVDS(Low-Voltage Differential Signal)를 비롯한 다양한 물리 계층 기술을 사용
- 기존의 PCI, PCI-X, AGP 표준을 대체하도록 설계된 고속 데이터 전송에 사용되는 연결 단자 표준. 줄여서 PCIe, PCI-e, PCIE로 표기한다
- PCI(Peripheral Component Interconnect) : 32비트 또는 64비트의 고속 버스 방식에 대한 규격
- 시스템에서 주변 장치 컴포넌트들을 구조화되고 제어 가능한 방법으로 어떻게 연결할 것인지 결정하는 표준
- 기존의 PCI 시스템은 CPU와 메모리, 디스플레이의 발전 속도보다 느렸기 때문에, 고성능 그래픽 카드와 메모리 사이의 데이터를 빠르게 전송할 필요성이 대두됨
- PCI(Peripheral Component Interconnect) : 32비트 또는 64비트의 고속 버스 방식에 대한 규격
- 2003년에 인텔, 델, HP, IBM이 합작하여 PCI의 후속 인터페이스로 발표하였고, 2004년부터 적용된 규격
특징 및 장점
1. 직렬 통신
- 병렬 방식보다 신호 동기화나, 지연 문제가 적음
- 병렬 방식은 고속화의 한계가 있어 직렬 방식을 사용
2. 레인(lane)
- 데이터를 송수신하는 통로
- 두 개의 신호 쌍으로 구성되어, 데이터의 전송선(Transmit)과 수신선(Receive)선으로 구성됨
- 각각의 레인은 전이중 방식으로 동작하여, 동시에 양방향으로 데이터를 송수신 가능
- 레인은 개별적으로 작동할 수 있으며, PCIe장치는 x1, x4, x8, x16 등과 같이 여러개의 레인을 묶어 사용하여 데이터 전송 속도를 높일 수 있음
3. 쌍방향 통신
- PCIe는 입출력 모두 동시에 가능한 풀듀플렉스 통신이기 때문에 실제 데이터 대역폭은 이론상 데이터 통신의 2배
4. 상호 호환성
- 상위 버전의 PCIe를 사용하는 장치도 하위 버전의 슬롯에 장착할 수 있지만, 대역폭은 둘 중 더 낮은 쪽을 따라간다
5. 범용성
- ISA와 레거시 PCI처럼 다양한 장치에도 사용 가능
단점
- 복잡한 설계
- 높은 비용
- 레인 수의 제한
2. PCIe 토폴로지
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 이상) 과정도 포함됨
데이터 링크 계층(Data Link layer)
- 위 단의 트랜잭션 계층에서 내려온 패킷(TLP, Transaction layer packets)들이 순서대로 잘 전송되도록 보장
- 이를 위해 데이터 링크 계층은 전송하고자 하는 패킷들의 앞쪽에 헤더(Header)를 붙이고 그 안에 일련번호(Sequence ID)를 기입하여 DLLP(Data Link Layer Packet)을 만듬
- 이 일련번호를 통해 중간에 누락된 패킷이 있는지 체크 가능
- 연속적인 번호가 오지 않고 뒷 번호가 먼저 온다면 NAK 신호를 보냄
- 에러 체크를 위한 ECRC(end to end CRC), LCRC 값을 전송하는데, 수신기에서 이를 검사하여 다시 보내게 할 수도 있음
트랜잭션 계층(Transcation layer)
- 일정한 포멧에 맞추어 패킷을 구성하고, 이를 해석하는 역할
- 메모리에 읽기/쓰기, 입출력 주소에 읽기/쓰기, PCIe 기기의 설정값을 읽거나 변경하는 일
동작 방식
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.0 | 2003 | 0.25 | PCI의 후속으로 등장, 저속 장치에 주로 사용 |
PCIe 2.0 | 2007 | 0.5 | 속도 2배 향상, 데이터센터 및 고성능 컴퓨팅 시스템에 채택 |
PCIe 3.0 | 2010 | 1 | 데이터 인코딩 개선, 대역폭 효율 향상, 일반 PC에 널리 사용 |
PCIe 4.0 | 2017 | 2 | 속도 2배 향상, 고성능 그래픽 카드 및 SSD에 적용 |
PCIe 5.0 | 2019 | 4 | 속도 2배 향상, 차세대 데이터센터 및 고성능 컴퓨팅 시스템에 채택 |
PCIe 6.0 | 2022 | 8 | 속도 2배 향상, 더 높은 대역폭 요구하는 차세대 시스템에 대비 |
레인 구성
- x1 : 가장 기본적인 구성. 1개의 레인으로 통신. 저속 장치에 사용함
- x4 : 중간급 성능 제공, 보통 SSD와 같은 장치에 사용
- x8 : 고성능 장치(서버용 RAID 컨트롤러 등)에 사용
- x16 : 가장 고속의 데이터 전송을 제공. 그래픽 카드와 같은 데이터 처리장치에 사용함
폼팩터
- 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 라이센스를 따릅니다.