PCI 익스프레스(PCI Express)는 2002년 PCI SIG가 책정한 입출력을 위한 직렬 구조의 인터페이스이며 인텔 주도하에 만들어졌다. 공식적인 약어로 PCIe로 표기한다. 옛 PCI, PCI-X와 AGP버스를 대체하기 위하여 개발되었다. PCIe는 앞서 언급한 버스 표준들과 비교하여 높은 시스템 버스 대역폭, 적은 I/O 핀 수, 적은 물리적 면적, 버스 장치들에게 더 뛰어난 성능 확장성, 상세한 오류 검출 및 보고 구조(Advanced Error Reporting (AER)[1]), 네이티브 핫-플러그 기능 등 여러 장점을 가지고 있다. 최근에는 하드웨어 I/O 가상화도 지원한다.
PCI 익스프레스 전기 인터페이스는 동시 레인 수로 측정된다. (레인은 양방향으로 하나의 차선이 있는 "1차선 도로"와 유사한 단일 데이터 전송/수신 라인이다.) 인터페이스는 또한 다양한 다른 표준, 특히 노트북 확장 카드에서 사용된다. 익스프레스카드라는 인터페이스이다. SATA 익스프레스, U.2(SFF-8639) 및 M.2의 스토리지 인터페이스에도 사용된다.
포맷 사양은 기존 PCI 사양도 유지 관리하는 900개 이상의 회사로 구성된 그룹인 PCI-SIG(PCI Special Interest Group)에서 유지 관리하고 개발한다.
아키텍처
개념적으로 PCI 익스프레스 버스는 기존 PCI/PCI-X 버스를 고속 직렬로 대체한 것이다. PCI 익스프레스 버스와 이전 PCI의 주요 차이점 중 하나는 버스 토폴로지이다. PCI는 PCI 호스트와 모든 장치가 공통 주소, 데이터 및 제어 라인 세트를 공유하는 공유 병렬 버스 아키텍처를 사용한다. 이와 대조적으로 PCI 익스프레스는 모든 장치를 루트 컴플렉스(호스트)에 연결하는 별도의 직렬 링크가 있는 지점 간 토폴로지를 기반으로 한다. 공유 버스 토폴로지로 인해 이전 PCI 버스에 대한 접근이 통제되고(마스터가 여러 개인 경우) 단일 방향으로 한 번에 하나의 마스터로 제한된다. 또한 이전 PCI 클러킹 방식은 버스 클록을 버스에서 가장 느린 주변 장치로 제한한다(버스 트랜잭션에 관련된 장치에 관계 없음). 이와 대조적으로 PCI 익스프레스 버스 링크는 여러 끝점 간의 동시 접근에 대한 본질적인 제한 없이 두 끝점 간의 전이중 통신을 지원한다.
버스 프로토콜 측면에서 PCI 익스프레스 통신은 패킷으로 캡슐화된다. 데이터와 상태 메시지 트래픽을 패킷화하고 패킷 해제하는 작업은 PCI 익스프레스 포트의 트랜잭션 계층에서 처리된다. 전기 신호 및 버스 프로토콜의 급격한 차이로 인해 다른 기계적 폼 팩터 및 확장 커넥터(따라서 새 마더보드 및 새 어댑터 보드)를 사용해야 한다. PCI 슬롯과 PCI 익스프레스 슬롯은 서로 바꿔 사용할 수 없다. 소프트웨어 수준에서 PCI 익스프레스는 PCI와의 하위 호환성을 유지한다. 레거시 PCI 시스템 소프트웨어는 PCI 익스프레스 표준에 대한 명시적인 지원 없이 최신 PCI 익스프레스 장치를 감지하고 구성할 수 있지만 새로운 PCI 익스프레스 기능에는 접근할 수 없다.
두 장치 간의 PCI 익스프레스 링크 크기는 1레인부터 16레인까지 다양하다. 다중 레인 링크에서 패킷 데이터는 레인 전체에 걸쳐 스트라이프되며 최대 데이터 처리량은 전체 링크 폭에 따라 확장된다. 레인 수는 장치 초기화 중에 자동으로 협상되며 두 끝점 중 하나에서 제한될 수 있다. 예를 들어, 단일 레인 PCI 익스프레스(x1) 카드를 다중 레인 슬롯(x4, x8 등)에 삽입할 수 있으며 초기화 주기는 상호 지원되는 가장 높은 레인 수를 자동 협상한다. 링크는 더 적은 수의 레인을 사용하도록 자체적으로 동적으로 하향 구성할 수 있으므로 불량하거나 신뢰할 수 없는 레인이 있는 경우 오류 허용 범위를 제공한다. PCI 익스프레스 표준은 x1, x2, x4, x8 및 x16의 링크 너비를 정의한다. 최대 PCIe 5.0, x12 및 x32 링크도 정의되었지만 사용되지 않았다. 이를 통해 PCI 익스프레스 버스는 높은 처리량이 필요하지 않은 비용에 민감한 애플리케이션과 3D 그래픽, 네트워킹(10기가비트 이더넷 또는 멀티포트 기가비트 이더넷) 및 엔터프라이즈 스토리지(SAS 또는 파이버 채널)와 같은 성능이 중요한 애플리케이션 모두에 서비스를 제공할 수 있다. 슬롯과 커넥터는 이러한 너비의 하위 집합에 대해서만 정의되며, 그 사이에는 다음으로 더 큰 물리적 슬롯 크기를 사용하는 링크 너비가 있다.
참고로 PCI-X(133MHz 64비트) 장치와 4개 레인(x4)을 사용하는 PCI 익스프레스 1.0 장치의 최대 단방향 전송 속도는 대략 1064MB/s로 동일하다. PCI 익스프레스 버스는 여러 장치가 동시에 데이터를 전송하는 경우 또는 PCI 익스프레스 주변 장치와의 통신이 양방향인 경우 PCI-X 버스보다 더 나은 성능을 발휘할 수 있다.
폼 팩터
PCI 익스프레스 (표준)
PCI 익스프레스 카드는 물리적 크기 이상(x16이 사용되는 최대 크기)의 슬롯에 맞지만 더 작은 PCI 익스프레스 슬롯에는 맞지 않을 수 있다. 예를 들어 x16 카드는 x4 또는 x8 슬롯에 맞지 않을 수 있다. 일부 슬롯은 개방형 소켓을 사용하여 물리적으로 더 긴 카드를 허용하고 사용 가능한 최상의 전기적 및 논리적 연결을 협상한다.
슬롯에 실제로 연결되는 레인의 개수도 물리적 슬롯 크기에서 지원하는 개수보다 적을 수 있다. 예를 들어 x4에서 실행되는 x16 슬롯은 x1, x2, x4, x8 또는 x16 카드를 수용하지만 4개의 레인만 제공한다. 사양은 "x16 (x4 모드)"로 읽을 수 있지만 "mechanical @ Electrical" 표기법(예: "x16 @ x4")도 일반적이다. 장점은 이러한 슬롯이 전체 전송 속도를 지원하는 마더보드 하드웨어 없이도 더 넓은 범위의 PCI 익스프레스 카드를 수용할 수 있다는 것이다. 표준 기계적 크기는 x1, x4, x8 및 x16이다. 표준 기계적 크기 이외의 여러 레인을 사용하는 카드는 물리적으로 다음으로 큰 기계적 크기에 맞아야 한다(예: x2 카드는 x4 크기를 사용하거나 x12 카드는 x16 크기를 사용함).
카드 자체는 다양한 크기로 디자인되고 제조된다. 예를 들어, PCI 익스프레스 카드 형태로 제공되는 SSD(솔리드 스테이트 드라이브)는 카드의 물리적 크기를 설명하기 위해 HHHL(절반 높이, 절반 길이) 및 FHHL(전체 높이, 절반 길이)을 사용하는 경우가 많다.
PCI 카드 유형
높이 × 길이 × 너비, 최대
(mm)
(in)
전체(Full)
111.15 × 312.00 × 20.32
4.376 × 12.283 × 0.8
절반(Half)
111.15 × 167.65 × 20.32
4.376 × 06.600 × 0.8
LP(로우 프로파일)/슬림
068.90 × 167.65 × 20.32
2.731 × 06.600 × 0.8
핀 배치
다음 표에서는 PCI 익스프레스 카드의 가장자리 커넥터 각 측면에 있는 도체를 식별한다. 인쇄 회로 기판(PCB)의 납땜 면은 사이드 A이고 부품 면은 사이드 B이다. PRSNT1# 및 PRSNT2# 핀은 핫 플러그 카드가 완전히 삽입되도록 나머지 핀보다 약간 짧아야 한다. WAKE# 핀은 컴퓨터를 깨우기 위해 전체 전압을 사용하지만, 카드가 깨울 수 있음을 나타내려면 대기 전원에서 높게 끌어와야 한다.
PCI 익스프레스 미니 카드 (미니 PCI 익스프레스, 미니 PCIe, 미니 PCI-E로도 불림)는 미니 PCI 폼 팩터를 대체한다. 이것은 PCI-SIG가 개발한 것이다. 호스트 장치는 PCI 익스프레스와 USB 2.0 연결을 둘 다 지원한다. 2005년 뒤에 제조된 대부분의 노트북 컴퓨터는 PCI 익스프레스에 기반을 두며 미니 카드 슬롯도 몇 개 포함되어 있다.
크기
PCI 익스프레스 미니 카드의 크기는 30x50.95 밀리미터이다. 두께는 1.0 mm (외부 부품 크기는 제외)이다.
M.2는 mSATA 표준과 미니 PCIe를 대체한다. M.2 단자를 통해 제공되는 컴퓨터 버스 인터페이스는 PCI 익스프레스 3.0(최대 4개 레인), 시리얼 ATA 3.0 및 USB 3.0(나중 두 개 각각에 대한 단일 논리 포트)이다. 원하는 호스트 지원 수준과 장치 유형에 따라 지원할 인터페이스를 선택하는 것은 M.2 호스트 또는 장치 제조업체의 몫이다.
PCI 익스프레스 외부 케이블 연결
PCI 익스프레스 외부 케이블링(외부 PCI 익스프레스, 케이블형 PCI 익스프레스 또는 ePCIe로도 호칭) 사양은 2007년 2월 PCI-SIG에서 발표되었다.
표준 케이블 및 커넥터는 x1, x4, x8 및 x16 링크 폭에 대해 정의되었으며 전송 속도는 레인당 250MB/s이다. PCI-SIG는 또한 표준이 PCI 익스프레스 2.0에서와 같이 500MB/s에 도달할 것으로 예상하고 있다. 케이블형 PCI 익스프레스의 사용 예는 다수의 PCIe 슬롯과 PCIe-ePCIe 어댑터 회로를 포함하는 금속 인클로저(enclosure)이다. 이 장치는 ePCIe 사양이 아니었다면 불가능했을 것이다.
PCI 익스프레스 오큘링크
오큘링크(OCuLink, 여기서 Cu는 구리의 화학 기호이므로 "광-구리 링크"를 나타냄)는 "PCI 익스프레스 케이블 버전"의 확장이다. 2015년 10월에 출시된 OCuLink 버전 1.0은 구리 케이블을 통해 최대 4개의 PCIe 3.0 레인(3.9GB/s)을 지원한다. 광섬유 버전은 미래에 등장할 수 있다.
OCuLink의 최신 버전인 OCuLink-2는 최대 16GB/s(PCIe 4.0 x8)를 지원하며 USB 4 케이블의 최대 대역폭은 10GB/s이다.
처음에는 강력한 외부 GPU 상자를 연결하기 위해 노트북에 사용하도록 고안되었지만 OCuLink의 인기는 주로 더 널리 사용되는 애플리케이션인 서버의 PCIe 상호 연결에 사용된다는 점에 있다.
Advanced eXpress I/O Module (AXIOM) 그래픽스 모듈 디자인은 ATI 테크놀로지스사가 승인함.
역사
개발 기간 동안에 PCIe는 HSI (High Speed Interconnect)로 불렸으며 PCI-SIG가 이름을 PCI 익스프레스로 최종 결정하기 전까지 3GIO (3세대 입출력)라는 이름을 가지기도 했다. 인텔 설계팀으로만 구성된 아라파호 워크 그룹(Arapaho Work Group)이라는 기술 그룹이 처음 기본 틀을 설계하였다.
PCIe는 꾸준한 개발과 개선을 거쳐온 기술이다. 현재의 PCI 익스프레스는 버전 6.0이다.
↑ 가나In each direction (each lane is a dual simplex channel).
↑Transfer rate refers to the encoded serial bit rate; 2.5 GT/s means 2.5 Gbit/s serial data rate.
↑Throughput indicates the unencoded bandwidth (without 8b/10b, 128b/130b, or 242B/256B encoding overhead). The PCIe 1.0 transfer rate of 2.5 GT/s per lane means a 2.5 Gbit/s serial bit rate corresponding to a throughput of 2.0 Gbit/s or 250 MB/s prior to 8b/10b encoding.
PCI 익스프레스 1.0
2004년에 인텔이 초당 250MB의 데이터 속도와 초당 2.5 GT의 전송 속도를 지닌 PCIe 1.0을 도입하였다. 최대 전송 속도는 2.5GT의 16배인 40 GT이며, 이는 실제로는 대역폭의 개념에 가깝다. 그래서 x16을 16배속이라고 부르는 표현은 엄밀히 말해 올바르지 않고, 16배폭이라고 부르는 쪽이 더 정확하다.
PCI 익스프레스 2.0
PCI-SIG는 2007년 1월 15일에 2.0 규격을 이용할 수 있다고 발표하였다.[5] 이 리비전은 PCIe 1.0 표준의 초당 250MB 속도를 500MB로 두 배 늘린 것이다. 32 레인(lane) PCI 단자 (x32)가 초당 16 GB의 출력을 지원한다는 뜻이다. 초기 버전은 2.5 GT로 동작하였으나 PCIe 2.0은 5.0GT의 기본 클럭 속도로 동작한다.
PCI 익스프레스 2.1
PCI 익스프레스 3.0에 완전히 추가할 계획이었던 관리, 지원, 문제 해결 시스템의 상당 부분을 지원한다. 그러나 속도는 이전의 PCI 익스프레스 2.0과 같다. 대부분의 메인보드가 PCI 익스프레스 2.0 단자를 달고 판매되고 있다.
PCI 익스프레스 3.0
PCI 익스프레스 3.0 기본 규격 리비전 3.0은 여러 번 연기되다가 2010년 11월에 발표 되었다. 2007년 8월에 PCI-SIG는 PCI 익스프레스 3.0이 초당 8 GT의 비트레이트를 지원할 것이라고 발표하였다. 기존의 PCIe와 하위 호환된다.[6]
PCI Express 3.0은 인코딩 방식을 이전 8b/10b 인코딩에서 128b/130b으로 개선하였다. 이것으로 대역폭의 오버헤드를 PCI Express 2.0의 20%에서 약 1.54% (= 2/130)로 줄였다. PCI Express 3.0의 8 GT/s 비트율은 이전 세대인 PCI Express 2.0보다 2배 빠른 레인(lane)당 985 MB/s의 대역폭을 제공한다.[4]
2010년 11월 18일에 PCI-SIG는 공식적으로 PCI Express 3.0 최종 규격을 PCI-SIG 구성원들에게 발표하여 이 새로운 규격에 맞춰 장치들을 개발할 수 있도록 하였다.[7]
PCI 익스프레스 4.0
2011년 11월 29일에 PCI-SIG는 구리 기술 기반의 16 GT/s를 지원하는 PCI Express 4.0 규격을 발표하였다. 동적 및 유휴 전력 최적화 방법들이 추가되었으며 최종 사양은 2017년에 발표될 것으로 예상한다.[8]
상기 4.0의 규격 발표와 동시에 5.0은 2019년 2분기(2Q) 목표로 하고 있음을 게시함. (4.0의 링크 참조) 2019년 1월 버전 0.9를 발표. (영문 사이트 원본은 아니고, 한글 벤치마크 사이트에서 링크.[10]
PCI 익스프레스 6.0
2022년 1월에 PCI 익스프레스 6.0 표준이 발표되었다. PCI 익스프레스 6.0의 특징으로는 물리 계층에서 PAM-4(Pulse Amplitude Modulation with 4 level) 방식을 채택해서, 한번의 클럭에 2비트를 동시에 전송할 수 있도록 개선함으로써 링크 당 64GT/s를 지원하게 되었다는 점을 들 수 있다. 이로 인해 x16 구성을 채용하는 경우 최대 256GB/s를 지원한다는 특징을 가진다. 트랜젝션 계층에서는 향상된 플릿(flit; flow control unit) 모드를 지원함으로써, 에러 제어를 빠르게 처리할 수 있다는 특징을 가지게 되었다. 참고로, CXL3.0 스펙은 PCI 익스프레스 6.0을 물리 계층으로 기반으로 상위 프로토콜을 정의한 것이라 할 수 있다.[11]