PCI Express
1. 개요
2003년에 인텔, 델, HP, IBM이 합작하여 PCI 의 후속 인터페이스로 발표하였고, 2004년부터 적용된 규격이다. 줄여서 PCI-E 또는 PCIE 또는 PCIe로도 표기한다.
2. 상세 내용
2.1. 특징
- 직렬 통신
일반적으로 병렬 방식이 직렬 방식보다 빠르지만, 신호 동기화나 지연 등의 문제로 병렬 방식은 고속화가 한계가 있기 때문에 현재 컴퓨터 쪽에서 병렬 인터페이스는 사장되어 가고 직렬 인터페이스를 고속화하는 것이 추세이다. 외부 인터페이스는 USB, IEEE1394 등 전부 직렬 방식으로 대체되었고, 저장소 인터페이스 역시 병렬 방식에서 직렬 방식인 SATA, SAS로 변경되었다.
- 레인 (lane)
비트(bit) 대신 레인(lane)이라는 독특한 방식의 단위를 사용하는데, 기존의 확장부 인터페이스는 전부 병렬 방식이지만 PCIe는 직렬 방식을 사용한다. 본래 단위 명칭은 레인이지만 ×로 줄여서 표기하는 하는데, 그 대신 × 앞이 아닌 (2×, 4×, 8×) 뒤에 표기하는 것으로 (×1, ×2, ×4, ×8, ×16) 구분하고 있다. × 앞의 숫자 표기는 변수의 2배를 의미하는 2x같은 배수 개념으로, × 뒤에 숫자 표기는 배수 개념보다는 개수 개념으로 더 많이 쓰이기 때문. 최초 버전 기준으로 모두 레인당 대역폭이 250 MiB/s으로 (Half-Duplex) 그래픽 카드에 사용되는 PCIe ×16 단자의 경우 250×16 = 4 GiB/s (Half-Duplex)의 대역폭으로 동작한다. 즉, PCIe ×16은 PCIe 인터페이스가 16개의 레인으로 할당되었다는 뜻이다. PCIe 장치와 호스트는 통신을 시작할 때 최대 지원 속도 정보를 주고받아서 필요한 만큼의 레인을 가져갈 수 있다.
- 상호 호환성
상위 버전의 PCIe를 사용하는 장치도 하위 버전의 슬롯에 장착할 수 있지만, 대역폭은 둘 중 더 낮은 쪽을 따라간다. 예를 들어 PCIe 1.0 ×16 슬롯에 PCIe 3.0 ×16을 지원하는 그래픽 카드를 장착할 경우 최대 성능이 안 나올 수도 있다. 요즘 고사양 게임들은 PCIe 1.0 ×16의 대역폭보다 높은 데이터 대역폭을 요구하기 때문. 물론, 네이티브 PCIe 1.0 ×16 슬롯인 메인보드가 인텔 CPU 기준으로 LGA 775 세대이기 때문에 CPU 성능 병목까지 영향을 많이 받으므로, 최소한 해당 그래픽 카드와 같은 세대의 상위 CPU를 장착할 수 있는 메인보드와 조합해서 PCIe 1.0 ×16과 동급의 스케일링으로 맞추고 테스트해야 제대로 확인할 수 있다.
- 범용성
2.2. 토폴로지
[image]
PCI Express의 토폴로지는 대략적으로 위의 다이어그램처럼 구성되어 있다. Root Complex는 메인보드의 노스브리지 칩셋, PCIe Endpoint가 그래픽 카드, 사운드 카드, 카드 타입의 SSD 등의 PCIe를 호스트 인터페이스로 사용하는 각종 장치에 대응되고, Memory는 시스템 메인 메모리에 대응된다. 그림에는 대응되는 다이어그램이 보이지 않지만 PCIe Bridge to PCI/PCI-X는 굳이 따지자면 사우스브리지에 대응할 수 있다.
Root Complex에서 다른 곳을 거치지 않고 곧바로 PCIe Endpoint에 도착하는 경우는 대표적으로 그래픽 카드가 있다. 다른 장치들보다도 대역폭에 더 민감한 제품이기 때문. 대역폭에 덜 민감한 제품들은 상대적으로 저속 버스들을 제어하는 사우스브리지를 거치는 방식을 이용한다. 상대적이라고 부르는 것은 PCI도 한때는 ISA를 능가하는 고속 버스로 취급받았으나, PCI Express가 등장한 이후로 상대적으로 저속 규격이 되어버렸기 때문.
Switch 다이어그램은 노스브리지가 지원하는 최대 PCIe 레인 개수가 한정되어 있기 때문에 메인보드가 이를 초과하는 PCIe 기반 슬롯들이 탑재되어 있을 경우 메인보드가 지원하는 모든 슬롯에 다 장착해서 동시에 사용할 수 없는 문제가 발생할 수밖에 없다. Switch를 통해 장착되어 사용하는 슬롯은 활성화하고, 장착되지 않거나 장착되었다 하더라도 사용하지 않는 슬롯은 비활성화하는 식으로 선택적으로 제어해주며, 노스브리지의 PCIe 레인 개수가 충분히 넉넉하다면 Switch가 필요없이 메인보드에서 제공하는 모든 슬롯들을 다 사용할 수 있다.
2000년대 말부터 노스브리지가 CPU에 내장되기 시작하면서 Root Complex는 사실상 CPU 내부의 각종 I/O 컨트롤러를 가리키게 되었다.
2.3. 속도 및 레인 개수별 커넥터 규격
[image]
분류
[image]
출처: Wikimedia Foundation
위에서부터 4레인, 16레인, 1레인, 16레인, 레거시 PCI 슬롯이다.
한 슬롯에 최대 75W 전력을 공급할 수 있어서, 해당 전력 이상의 전력을 소비하는 확장카드는 별도의 추가 전원이 필요하다. PCIe 4.0 규격부터는 한 슬롯에서 최대 300W 까지 공급 가능하다고 알려 젔지만[1] 이는 오보로 밝혀졌다#
외부 출력 단자도 있으나, 디지털 영사기 등 특수 분야에서 많이 사용하며 주변에서 쉽게 찾아볼 수 있는 제품 사이에는 델 에일리언웨어 노트북 중 일부에 장착되는 외장형 그래픽 카드 커넥터가 있다. 커넥터 형태는 독자 규격이지만 전기 신호는 PCIe 신호를 그대로 사용한다. 이것이 달려 있지 않은 노트북 사용자들을 위해서 ExpressCard나 남는 mPCIe 슬롯에서 PCIe 레인을 끌어와 '''노트북에 그래픽 카드를 꽂을 수 있도록 해주는 제품'''도 있다. 다만 해당 포트가 그래픽 카드를 연결하기 위해 설계된 게 아닌 만큼 이런 식의 연결로는 대역폭이 충분하지 못해 그래픽카드의 성능을 100퍼센트 뽑아내지 못할 수 있다. eGPU와 http://www.hwtools.net/eGPU.html 참조.
메인보드에 따라 16레인 슬롯 형태만 만들어 놓고 실제 접점은 4레인이나 8레인까지만 채워 둔 슬롯이 있을 수 있다. 반대 경우도 존재해서, 1x, 4x, 8x 등의 레인 슬롯의 끝 부분을 열어 놔서 장치 쪽 레인에 상관 없이 끼울 수 있게 한 슬롯도 있다. 위 두 경우 모두 다 슬롯과 장치가 전기적으로 연결된 레인으로만 작동한다. 2000년대 중반 모 컴퓨터 회사에서 서버 컴퓨터를 20만 원에 떨이했을 때, 메인보드에 PCIe 16레인 슬롯이 없어서 슬롯 끝이나 그래픽 카드를 잘라내는 개조가 유행한 적이 있다. 메인보드를 개조하면 아무 장치나 꽂을 수 있지만 메인보드 보증이 날아가고, 그래픽 카드 쪽을 건드리면 그래픽 카드 보증이 날아간다. 이런 메인보드의 경우 성능란에 PCIe 3.0 ×16 (×4) PCIe 3.0 ×16 running at ×4 등으로 표기된다. 둘 다 슬롯 형태는 x16이지만 접점은 4레인 까지밖에 없음을 의미한다. 그리고 최근 발매되는 프로세서는 PCIe 컨트롤러를 내장하는 경우가 많아서 메인보드 칩셋에서 제공하는 레인 말고 프로세서에서 제공하는 PCIe 16레인을 그래픽 카드에 사용하는 경우가 대부분이다.
장치에 따라 16레인은 주로 그래픽 카드에, 4레인이나 2레인은 주로 M.2 형태 PCIe SSD에, 1레인은 사운드 카드, 랜 카드 등 나머지 용도에 주로 사용된다.
PCI-SIG 공식 홈페이지에 명시된 PCI Express 호환 장치들의 규격 목록
2.4. 폼팩터
- PCI Express Standard (2004년 이후) : 흔히 PCIe 확장 카드에 사용되는 그 폼팩터이다. 데스크톱용 그래픽 카드도 이 폼팩터에 해당한다.
- PCI Express Mini Card (2005~2013년) : 한때 무선랜 카드에 많이 보는 폼팩터였다. 현재는 M.2로 대체되어서 구형 제품이 아닌 한 찾아보기 힘들어졌다.
- PCI Express External Cabling (2007년 이후)
- PCI Express M.2 (2013년 이후) : 현재 NVMe M.2 기반의 SSD와 M.2 기반의 무선랜 카드에 주로 사용되고 있는 폼팩터.
- PCI Express OCuLink (2015년 이후)
2.5. PCI Express를 이용한 파생 규격
- 인텔 Direct Media Interface (2004년 이후)
915 칩셋부터 도입된 규격. 노스브리지(Input Output Hub)와 사우스브리지(Input Output Controller Hub) 칩셋이 따로 존재했을 초기에는 '노스브리지 ↔ 사우스브리지'의 인터커넥트로 사용되었다가, 2009년 린필드 프로세서 계열의 1세대 코어 i7, i5와 P55 칩셋부터 노스브리지가 CPU에 내장되고 사우스브리지가 PCH로 계승되면서 'CPU ↔ PCH'의 인터커넥트로 사용되고 있다.
- DMI (2004~2010년): PCI Express 1.0 4레인을 이용한 초기 버전.
- DMI 2.0 (2011~2014년): PCI Express 2.0 4레인을 이용한 두 번째 버전.
- DMI 3.0 (2015년 이후): PCI Express 3.0 4레인을 이용한 최신 버전.
- VIA Ultra V-Link (2004~2010년)
VIA에서 개발된 인터커넥트 규격. PCI Express 1.0 4레인을 이용하여 노스브리지 ↔ 사우스브리지에 사용되었다.
- AMD A-Link Express (2004~2011년)
AMD한테 인수되기 전 ATi가 메인보드 칩셋을 개발했을 시절에는 2004년 11월 RS480 칩셋부터, ATi 인수 후 AMD에서는 2006년 10월 580X, 480X 칩셋부터 도입된 규격. 기본적인 특징은 인텔의 DMI와 유사하지만, 마지막 세대까지 노스브리지와 사우스브리지가 따로 존재하는 형태로 유지되었다.
- A-Link Express (2004~2005년): PCI Express 1.0 4레인을 이용한 초기 버전.
- A-Link Express II (2005~2009년): PCI Express 1.1 4레인을 이용한 두 번째 버전.
- A-Link Express III (2010~2011년): PCI Express 2.0 4레인을 이용한 마지막 버전.
- AMD Unified Media Interface (2011~2016년)
AMD 1세대 A 시리즈(라노) APU와 함께 발표된 인터커넥트 규격으로, 인텔의 CPU ↔ PCH처럼 따로 존재했던 노스브리지와 사우스브리지 구성에서 노스브리지가 APU에 통합되고 남은 사우스브리지가 FCH로 계승되면서 APU ↔ FCH로 사용되었다. 모바일용 칩셋은 PCI Express 1.1 4레인을, 데스크톱용 및 임베디드용 칩셋은 PCI Express 2.0 4레인을 이용했으며, 해당 PCI Express 대역폭은 2세대 라이젠 시리즈와 함께 등장한 400 시리즈(X470, B450) 칩셋까지 유지되었다.
- NVM Express (2011년 이후)
- SATA Express (2013~2018년)
- Compute Express Link (2019년 이후)
2019년에 데이터 센서 규모에 적합한 고속 CPU ↔ I/O 장치 및 CPU ↔ 메모리, 캐시 일관성을 보장하기 위해 DELL EMC, 마이크로소프트, 시스코, 알리바바, 인텔, 페이스북, 구글, HP, 화웨이가 연합해서 개발한 개방형 표준 인터커넥트 규격. PCI Express 5.0을 이용했으며, 이후에 AMD, NVIDIA, 에즈락, GIGABYTE, ARM Holdings, 마이크론 테크놀로지를 비롯하여 수많은 업체들이 CXL 연합에 가입한 상태이다.
- Apple MPX (2019년 이후)
애플에 의해 개발되어 맥 프로 2019에 탑재된 독자 확장 규격. '인텔 CPU의 PCIe 4.0 미지원 문제'와 'PCIe 3.0의 대역폭 한계' 등을 극복하기 위해 도입되었으며, 기존 PCIe 3.0과도 호환 가능하다. E-ISA처럼 기존의 PCIe x16 슬롯에 별도의 특수한 슬롯을 추가한 형태다.
2.6. PCI Express를 이용한 주요 장치
2.6.1. PCI Express Graphics (그래픽 카드)
업계에서는 PCI Express를 이용한 그래픽 카드를 PCI Express Graphics, 줄여서 PEG라고 부르고 있다. 그래픽 카드가 PCI Express를 이용하는 장치들 중에서도 흔하게 볼 수 있는 장치이기 때문.
CPU와 직결 통신하는 그래픽 카드라서 메인보드의 칩셋에서 지원하는 PCIe 버전이 그래픽 카드의 PCIe 버전과 무관한 것으로 알고 있는 사람들이 많은데, 엄밀히 따지면 그렇지 않다. 그래픽 카드의 PCIe 버전을 제대로 이용하려면 노스브리지가 이를 지원해줘야 하고, CPU 내부에 노스브리지 기능이 탑재된 요즘에도 CPU 내부에 있을 뿐 본질적인 제약 조건은 똑같다. 인텔 X38, P55 칩셋처럼 노스브리지 ↔ 사우스브리지(現 PCH)가 지원하는 PCIe 버전과 노스브리지 ↔ 그래픽 카드가 지원하는 PCIe 버전이 서로 다른 경우가 있었기 때문에[2] 이를 보고 무관하다는 말이 나타났던 것이다.
또한, 노스브리지 기능이 내장된 CPU만 지원하면 장땡인 것이 아니라 메인보드에서도 BIOS 차원에서 막혀있지 않아야 제대로 이용할 수 있다. AMD의 3세대 라이젠 CPU가 PCIe 4.0을 지원한다고 해서 칩셋 차원이 PCIe 2.0, PEG가 PCIe 3.0을 지원하는 X470, B450 칩셋의 메인보드에 장착하면 PCIe 4.0을 지원하는 라데온 RX 5000 시리즈 그래픽 카드가 PCIe 4.0으로 동작하지 않는 것은 메인보드가 BIOS 차원에서 PCIe 4.0 전송 모드가 막혀있기 때문이다. B450이 PCIe 4.0까지 염두에 둬서 설계된 칩셋이 아닐 뿐더러 PCIe 4.0 동작을 보증하려면 추가 테스트와 인증 비용까지 발생하게 되므로, 보드 제조사들이 이런 저런 이유로 막아둔 것.
따라서, 그래픽 카드가 지원하는 PCIe 스펙을 온전하게 이용하려면 CPU 내부에 있는 노스브리지의 PCIe 컨트롤러, 메인보드 칩셋의 PEG PCIe 스펙, 메인보드 BIOS 차원에서의 활성화까지 모두 충족되어야 이용할 수 있다.
2.6.1.1. 역대 과도기
- ISA → PCI (1992~1994년)
1992년 PCI 규격이 등장한지 얼마 안 되었을 무렵, 그래픽 카드를 필두로 널리 적용되기 시작했다. 그래픽 카드가 그나마 빨리 갈아탄 편이었고, 다른 장치들은 2000년대에 들어서야 ISA가 특수 산업 분야 말고는 대부분 퇴출되었다.
- PCI → AGP (1997~1999년)
1997년 AGP 규격이 등장한지 얼마 안 되어서 그래픽 카드에 일찍 적용되기 시작했으며, 초기에는 무늬만 AGP일 뿐 대역폭은 기존 레거시 PCI와 다를 바 없을만큼 널리 채택하지 않았다. 1998년부터 레거시 PCI의 2배인 본래의 AGP 1.0(2×)대역폭을 활용하기 시작하고, 1999년 레거시 PCI 대비 4배의 대역폭인 AGP 2.0(4×)이 도입되면서 주류로 자리잡았다. 규격 이름에도 쓰여있다시피 오직 그래픽 카드만을 위해 개발된 규격이기 때문에, 다른 곳에는 AGP를 활용하지 못 하고 여전히 레거시 PCI를 이용하고 있었다. 그래도 그래픽 카드만큼은 레거시 PCI 대역폭의 한계가 빨리 찾아왔기 때문에 이를 해결하기 위한 방법으로써 등장한 것이고, 다른 장치들은 레거시 PCI를 이용해도 큰 문제가 없었기에 그래픽 카드는 AGP, 나머지는 PCI로 구성된 방식을 고수해왔다.
- AGP → PCI Express (2004~2006년)
PCIe가 도입된 초기에 엔비디아는 PCIe-AGP 양방향 변환이 가능한 브리지 칩인 BR02(HSI라고도 불림)를 개발했고, ATI는 "우린 PCIe 네이티브다"라는 생각으로 라데온 9000 시리즈의 인터페이스를 PCIe로 바꾼 라데온 X300~X600 시리즈를 개발했다. 엔비디아는 GeForce 4, FX 시기에 브리지 칩을 써서 인터페이스만 PCIe로 바꾼 지포스 PCX 시리즈를 출시했으나, 안 그래도 욕 많이 먹은 FX 시리즈 기반이었기 때문에 큰 재미를 보지는 못했다. GeForce 6, 7 시리즈에는 네이티브 AGP/PCIe 칩셋이 섞여 있고, 다른 종류의 인터페이스가 필요하다면 브리지 칩으로 지원했다. GeForce 8 시리즈부터는 모두 네이티브 PCIe로 가면서 동시에 브리지 칩 지원을 중단했다. 반면 ATI는 예상보다 AGP 시장이 오래 버텼기 때문에 PCIe-AGP 단방향 변환만 가능한 브리지 칩인 Rialto를 개발했고, 라데온 X700 시리즈부터 AMD한테 인수된 HD 4000 시리즈까지 일부 모델의 AGP 버전을 만드는 데 이걸 잘 써먹었다. 결국, AMD도 HD 5000 시리즈부터는 더 이상 AGP 타입을 채택하지 않게 되었다. PCIe, 그것도 상위 버전으로 갈아타고 있는 지금은 모두 옛날 이야기.
- PCIe 구버전 → 신버전 (2007년, 2012년, 2019~2020년)
AGP → PCIe 과도기에는 슬롯이라는 커넥터 규격조차 서로 달랐기 때문에 서로 다른 규격의 장치를 보유했을 때 해결 방법이 난감했다. 그에 비하면 PCIe 버전 간 과도기는 슬롯의 레인 개수 호환만 충족하면 어떻게든 동작할 수 있어서 훨씬 낫다. 과거 AGP 버전 간 호환 문제에 단, 속도 제한이 어느 쪽이든 하위 버전에 동기화되기 때문에 혹시라도 고사양 게임을 플레이하려고 한다면 제성능이 안 나올 수 있음을 감안해야 한다. 지금도 PCIe 규격을 널리 채용되고 있으므로 버전 바뀌는 시기가 매번 올 때마다 겪어보게될 문제라고 볼 수 있다.
2.6.1.2. 대역폭과 게임 성능에 따른 오해
- TECHPOWERUP AMD Radeon HD 5870 PCI-Express Scaling Review
- TECHPOWERUP GeForce GTX 480 PCI-Express Scaling Review
- TECHPOWERUP Ivy Bridge PCI-Express Scaling with HD 7970 and GTX 680 Review
- TECHPOWERUP GeForce GTX 980 PCI-Express Scaling
- TECHPOWERUP AMD Radeon Fury X PCI-Express Scaling
- TECHPOWERUP NVIDIA GeForce GTX 1080 PCI-Express Scaling
- TECHPOWERUP NVIDIA GeForce RTX 2080 Ti PCI-Express Scaling
- TECHPOWERUP PCI-Express 4.0 Performance Scaling with Radeon RX 5700 XT
- ComputerBase PCI-E 3.0 vs. PCI-E 4.0: Was bringt PCI-Express 4.0 mit einer RX 5500 XT wirklich?
- PC Games Hardware PCIe 3.0 vs. 4.0 in Spielen: Alles eine Frage des Grafikkarten-Speichers
- TECHPOWERUP NVIDIA GeForce RTX 3080 PCI-Express Scaling
- 2016년 6월 22일, Gamers Nexus PCIe 3.0 x8 vs. x16: Does It Impact GPU Performance?
- 2019년 12월 23일, Hardware Unboxed 5500 XT PCIe 3.0 vs. PCIe 4.0, Hamstrung by PCIe Bandwidth?
- 2020년 8월 24일, Hardware Unboxed 5700 XT PCIe 4.0 vs 3.0 + RTX 2080 Ti PCIe Scaling
- 2020년 9월 18일, Gamers Nexus NVIDIA RTX 3080 PCIe 3.0 vs. PCIe 4.0 x16 Benchmarks (& Intel vs. AMD for 3080 Discussion)
- 2020년 9월 23일, Hardware Unboxed RTX 3080, PCI Express 4.0 vs. 3.0 Benchmark
현행 기준으로 CPU와 그래픽 카드는 일반적으로 PCIe 규격 기반에 다른 곳을 거치지 않고 'CPU ↔ 그래픽 카드'로 직결된 구조를 취하고 있다. 좀 더 자세히 살펴보면 CPU 내부에 노스브리지 역할을 담당하는 각종 입출력 컨트롤러와 내부 버스로 구성되어 있기 때문에 정확히는 'CPU 내부 코어 ↔ CPU 내부 인터커넥트 ↔ CPU 내부 PCIe 기반 장치 컨트롤러 ↔ PCIe 기반의 외부(메인보드) 시스템 버스 ↔ 그래픽 카드 PCIe 호스트 인터페이스 ↔ 그래픽 카드 내부 GPU'로 연결되어 있다. 아무리 직결이라고 해도 거쳐가야 할 곳은 거쳐야 하기 때문에 생각보다 복잡해 보일 수도 있다. 더불어, 게임을 실행하기 위해서 메모리와의 데이터 통신은 사실상 필수이기 때문에 메모리와의 PCIe 연결 구조도 살펴보자면 시스템 메인 메모리는 CPU와 따로 직결되어 있고, 그래픽 카드의 그래픽 메모리는 GPU와 따로 직결되어 있다.
이러한 연결 통로로 구성하는 이유는 단순하다. 명령어를 비롯한 데이터를 잘 전송시키는 것. 그 중에 데이터 전송 속도도 포함되는 조건으로, 이는 곧 PCIe 규격의 데이터 전송 처리 능력 → 대역폭이 된다. 물론, 속도가 핵심인 게임 성능이 CPU ↔ GPU의 PCIe 대역폭에서만 나타나는 것이 아니고, 시스템 메인 메모리의 대역폭과 용량, 그래픽 메모리의 대역폭과 용량에 따라서도 크게 좌우되므로 성능 측정 결과가 다양하게 나타날 수 있다. 메모리 용량을 예로 들자면, 그래픽 메모리 용량이 부족해지면 시스템 메인 메모리에 빌려 쓰는 상황이 발생하는데, 이는 시스템 메인 메모리와 통신할 일이 빈번해지며, PCIe 대역폭의 중요성 커짐과 동시에 의존도가 엄청 높아지게 된다. 안 그래도 PCIe 대역폭 자체가 게임 성능의 영향을 주는데 그래픽 메모리 용량의 부족으로 없던 할 일이 더 생겨서 전체적인 지연 시간이 추가 → 병목 현상 심화 → 게임 성능 저하 심화로 이어질 수 있다. 한술 더 떠서 시스템 메인 메모리 용량까지 부족해지면 게임 실행 자체가 제대로 돌아가지 못 할 수 있다.
하드웨어 사양뿐만 아니라 게임 특성까지 모두 고려해야 하는데, 특정 하드웨어 구성일 때 특정 게임으로 실행시 PCIe 대역폭 스케일에 따라 구체적으로 얼만큼의 게임 성능 격차가 나타날지는 실측하지 않는 한 가늠하기가 매우 어려울 수밖에 없다. 비록, 컴퓨터 이론만으로는 정도의 차이만 정확히 알기 어렵지만 개념만큼은 동일하므로 PCIe 스케일링 테스트 자료를 논리적으로 이해하는데 도움이 될 수 있다.
PCIe 대역폭에 따른 게임 성능에 대해 논할 때 TECHPOWERUP 사이트의 PCIe 스케일링 테스트가 가장 많이 인용되는 편인데, 문제는 TECHPOWERUP의 PCIe 스케일링 테스트의 테스트 베드가 대체로 고성능 GPU와 대용량 그래픽 메모리가 탑재된 고사양 그래픽 카드 위주에다가 당대 최신 고사양 게임 위주가 아닌 당대조차 몇 년 지난 옛날 게임들이 테스트에 많이 활용되었다는 점, 각각의 게임에서 측정된 프레임 레이트도 전체 평균 프레임 레이트만 기재하고 하위 1% 평균 프레임 레이트가 기재되어 있지 않다는 점이다.
물론, 당대 고사양 게임 위주로만 테스트하는 것이 편향적이고, 옛날 게임과 최신 게임들 골고루 선정해서 테스트하는 것이 게임 사양별로도 한꺼번에 확인할 수 있으니 공평하다고 생각할 수도 있으며, 독자 입장에서 보기 편하게 여러 게임들의 전체 평균 프레임 레이트 기준 상대적 성능 격차를 하나의 그래프로 요약해서 제공하는 것만큼은 TECHPOWERUP 사이트 리뷰의 장점이 될 수 있지만, 오히려 그로 인해 장문의 테스트 내용과 필자의 주장이 담긴 결론을 정독할 시간이 없다는 핑계로 귀찮아 하면서 간추린 내용만 추구하는 사람들이 속단할 여지가 다분하다는 것이다.
PCIe 스케일링 테스트에 있어서 하위 1% 평균 프레임 레이트 값이 왜 필요할까? 하위 1% 평균 프레임 레이트는 마이크로스터터링까지 정밀하고 완벽하게 발견할 수 있는 지표는 아니지만, 정밀하게 모니터링하는 것이 아님에도 프레임 드랍 유무를 통한 프레임 출렁임 정도를 대략적으로 판별하는데 도움이 되기 때문에 수 많은 리뷰어들이 성능 벤치마크할 때 자주 이용되는 지표이다. 이러한 지표가 PCIe 스케일링 테스트에서도 유의미한 정보를 제공해주는데 전체 평균 프레임 레이트보다는 '''하위 1% 평균 프레임 레이트의 성능 격차가 더 두드러지는 경우가 많기 때문.''' (항상 더 두드러진다는 것이 아니므로 유의할 것.) 전체 평균 값만 측정된 자료로는 오차 범위로 오해하기 딱 좋을 수밖에 없다. 전체 평균 값의 맹점이 그것이다. 프레임 레이트 방어는 CPU가 책임지는 것으로 흔하게 알려져 있지만, PCIe 대역폭도 마찬가지이다.
하위 1% 평균 프레임 레이트 뿐만 아니라, 고해상도보다는 '''저해상도의 게임 성능 변별력이 더 큰 경향을 보여준다.''' (이 역시 항상 더 두드러진다는 것이 아니다.) 프레임 레이트가 높다는 것은 그만큼 PCIe 버스를 지나가는 데이터가 빈번하다는 뜻이기도 해서, 결국엔 PCIe 대역폭의 영향력이 커지는 환경이 되기 때문이다.
다행히 TECHPOWERUP의 PCIe 스케일링 테스트도 그래픽 카드를 당대 하이엔드 위주로 채택하는 점, 상대적으로 저사양이 된 옛날 게임들을 다수 채택하는 것, 하위 1% 평균 프레임 레이트를 측정하지 않은 것에 대해 논란이 생길 여지가 있을 뿐이지, 어찌 되었든 하나하나 측정한 실측치를 조작할만큼의 막장 테스트는 아니다. 어느 리뷰나 마찬가지이지만, 리뷰 자료를 인용해서 주장하려면 테스트 베드를 잘 확인하는 것이 좋다. 그 리뷰를 보고 판단해서 주장하는 것은 판만 깔아준 리뷰 사이트의 작성자가 아니라 독자이기 때문이다. 그리고 하나의 리뷰만 보고 판단하지 말고 테스트 베드가 다른 여러 리뷰를 보고 교차검증 하는 것이 주장에 대한 근거의 객관성을 뒷받침할 수 있다.
현황을 살펴보자면, 2016년 중반 당시엔 PCIe 3.0 ×16 규격에 그래픽 메모리 용량이 8 GB인 지포스 GTX 1080이 PCIe 3.0 ×8 대역폭 대비 1% 정도의 성능 차이를 보였으며, 이 정도면 당장 PCIe 4.0을 지원해도 성능 향상은 사실상 없을 것이다가 주류였다. 그러다가 2018년 이후에는 게임의 요구 대역폭이 나날이 높아짐에 따라 비로소 PCIe 3.0 ×8과 ×16에 의한 성능 차이가 점점 커지기 시작하고, 2019년 이후 4 GB와 8 GB 두 가지로 출시된 라데온 RX 5500 XT를 통해 그래픽 메모리 용량에 따라 PCIe 대역폭의 의존도가 달라져 성능 차이를 드러내는 것으로 밝혀졌으며, 2020년에 들어서는 라데온 RX 5700 XT를 통해 PCIe 4.0 ×16 대역폭과 PCIe 3.0 ×16 대역폭의 성능 차이가 작년까지 출시된 게임들의 경우는 큰 차이 없었지만, 최신 고사양 게임들은 PCIe 3.0 ×16급의 대역폭조차 더 이상 남아도는 대역폭이라고 보기 어려울 정도로 게임 성능 차이가 두드러지게 나타나고 있다. 앞으로 출시될 고사양 게임들을 생각하면 PCIe 4.0 ×16 대역폭이 부질 없는 정도가 아니라 요구 사양이 된 셈이다.
특히, 라데온 RX 5500 XT는 GPU 성능 자체가 당대 하이엔드가 아닌데다 4 GB, 8 GB 해서 2가지 종류로 판매된 라인이기 때문에 '''PCIe 대역폭과 그래픽 메모리 용량의 관계'''를 파악할 수 있는 특이한 벤치마크이다. 하지만 안타깝게도, 해당 벤치마크가 보여주는 복합적인 특성 때문인지 PCIe 대역폭을 무시하고 그냥 그래픽 메모리 용량에 따른 성능 격차로 오해하는 사람들이 많다.
앞에서 이론적인 내용에 서술했듯이 하드웨어적인 특징 말고도 소프트웨어적인 특징도 있다. 개인이 사용하는 그래픽 카드에서 카드가 지니는 PCIe 대역폭을 전부 다 써서 눈에 확 띄는 성능 격차를 확인하려면 이를 활용하는 '''게임이 그래픽 카드가 지원하는 PCIe 대역폭 이상을 요구'''해야 하는데, 그런 경우는 당대 고사양 게임들 중에도 일부 구간 한정이라서 경우에 따라서는 막대 그래프로 작성된 벤치마크 자료로 보면 체감하기 어려울 뿐더러, 장치 종류와 상관없이 대역폭을 체감할 수 있는 것이라고는 옵테인 메모리 정도 뿐이라서 그렇다.
2.6.2. PCI Express 카드 타입의 SSD
그래픽 카드처럼 PCI Express 확장 카드 형태의 SSD도 2007년 8월에 바이올린 메모리의 바이올린 1010 SSD를 통해 처음 등장했다. 지금처럼 표준 프로토콜도 따로 없고 일반 가정에서는 구경하기 힘든 SSD였으나, PCIe를 이용한 SSD는 M.2 커넥터 규격과 NVMe 프로토콜이 등장한 이후에 들어서야 일반 가정에서도 접할 수 있게 되었다.
M.2 타입의 SSD는 기존 SATA 타입의 SSD 대비 비싼 가격대라도 사이즈가 매우 작은 폼팩터라는 확실한 강점이 있어서 점유율이 꾸준히 높아지고 있지만, PCIe 카드 타입의 SSD는 10년 넘게 지난 지금도 일반 가정용 시장에 힘을 쓰지 못 하고 있다. 가격은 둘째치고 공간적인 문제, 메인보드의 슬롯 지원과 케이스의 여유 공간에 따른 탑재 가용성 문제, CPU와 메인보드 칩셋의 PCIe 레인 개수 부족 문제 등이 산재되어 있기 때문.
2.6.3. PCI Express 사운드 카드
PCI Express를 이용한 사운드 카드는 그래픽 카드보다도 훨씬 늦은 2008년 11월에 ASUS XONAR HDAV 1.3 Deluxe를 통해 등장했다. 그래픽 카드에 비해 대체로 요구 대역폭이 낮은 편이라서 고대역폭 규격의 필요성이 약했기 때문.
그런 이유에서였는지, 여러 제품을 잘 살펴보면 네이티브 PCI-Express 방식이 아닌 내부에서 컨버팅을 통해 동작되는 사운드카드가 꽤 있는 편이다. PCI 컨버터 칩셋인 ASM1083을 탑재한 ASUS XONAR DSX가 있으며, 그외에도 ASM1083을 탑재하여 PCI로 컨버팅 후 구형 칩셋인 CMI8738를 물린 탑재한 싸구려 사운드카드가 매우 흔하다.
2.7. 수요 증가와 비용 및 인증 문제
PCIe의 범용성답게 그래픽 카드 뿐만 아니라 보조 연산장치, 저장장치(NVMe 등), 이더넷 카드(10기가비트 이더넷), USB4 등 높은 대역폭을 요구하는 주변기기들이 늘어나면서 급속도로 발전하고 있다. 그러나 대역폭이 높아지면서 PCIe 규격 역시 높은 수준의 차폐와 슬롯을 요구하기 때문에 그만큼 가격도 비싸져서 개인용 시장에서 도입이 늦어지고 있다.
그래픽 카드에 있어서 PCIe 버전은 이론적으로 CPU 차원에서 지원하는 것이지만, 메인보드 칩셋 차원에서 PEG(PCI Express Graphics)도 지원해야 제대로 동작할 수 있다. 다행히 메인보드 회로의 구성은 동일하기 때문에 PCIe 3.0 지원 메인보드도 바이오스 업데이트로 PEG 한해서 PCIe 4.0으로 동작 가능 했으나 얼마 지나지 않아 메인보드의 바이오스 업데이트로 막히기도 하였다. 이는 PCIe 4.0의 공식 지원을 위해서는 PCI-SIG의 인증을 받아야 하기 때문이다. 결국 개인용 장비에서 PCIe 4.0의 공식 지원은 AMD 500 시리즈 칩셋의 AM4 소켓 호환 메인보드부터 해당된다. 같은 시기에 서버 장비들은 이미 PCIe 5.0이 출시되고, PCIe 6.0 규격을 정하는(#) 단계에 들어간 것과 대조적이다. 또한 개인용 시장에서는 PCIe 4.0으로 바뀌면서 큰 성능향상을 기대할 수 없는[3] 반면에 여러 개의 딥러닝용 GPGPU를 사용해야 하는 하이엔드 서버 시장에서는 의미있는 성능 향상이 예측된다. PCIe 4.0 발표 후 POWER(마이크로프로세서) 같은 대형 서버 제품군에서 바로 지원이 시작되고 PCIe 5.0도 POWER(마이크로프로세서)에서 먼저 적용된것도 이런 용도 때문이다.[4]
3. 관련 문서
[1] 이는 2010년대 대다수의 그래픽 카드를 보조전원 없이 슬롯에서 공급받는 전원으로 구동시킬 수 있는 수준이다.[2] X38 칩셋의 경우 노스브리지 ↔ 사우스브리지는 여전히 PCIe 1.0 기반의 DMI이지만, 노스브리지에 PCIe 2.0 컨트롤러가 있으며, P55 칩셋의 경우 CPU ↔ PCH는 PCIe 1.0 기반의 DMI이지만, 이와 호환되는 CPU는 PCIe 2.0 컨트롤러가 내장되어 있다.[3] 발표 당시 일부 NVMe 기반 SSD를 제외하면 큰 성능 향상폭이 없었다.[4] 그래서 인텔도 로드맵 상에서 PCIe 4.0과 PCIe 5.0을 서버용 인텔 제온 시리즈에 적용한다고 밝혔다.