[Interconnection] PCIe 성능

PCI Express (Peripheral Component Interconnect Express) 또는 PCIe는 point-to-point interconnection architecture이다. PCIe는 기존 PCI/PCI-X bus를 대체하기 위해 제안되었다. 컴퓨터 조립할때 GPU, SSD 등을 PCIe를 사용하여 CPU, host mempry등과 연결한다. 그림1은 PCIe, CPU, Memory가 root complex를 사용하여 연결한 그림이다.

ns_attach_image_6571479869139197

그림 1: Root complex를 사용하여 PCIe, CPU, Memory가 연결된 그림

기존 PCI는 shared parallel bus architecture를 사용하였다고 한다. 모든 PCI host와 device들이 공통된 address, data, control이라 라인을 공유하였다. 반면 PCIe는 point-to-point interconnection으로 host와 device 간에 독립적으로 연결되어 있다고 한다.

PCIe를 연결할 때 lane의 개수가 device와 host 간의 연결 속도를 결정한다. 1개의 lane부터 총 32개의 lane을 사용하여 device와 host 간 연결이 가능하다. 정확히 말하면 1개, 2개, 4개, 8개, 12개, 16개, 32개의 lane을 사용하여 device와 host 연결이 가능하다. 4개 lane을 사용하면 1개의 lane을 사용할 때 보다 최대 4배의 성능이 나온다. lane 개수에 따라 linear하게 성능이 증가한다고 한다. 요즘 GPU의 경우 8개 또는 16개 lane을 사용하여 host와 연결한다. x8, x16가 lane의 개수를 의미한다.

ns_attach_image_6721479869447548

그림 2: PCIe를 사용하여 device를 연결한 그림

그림 2는 device 간에 여러 lane을 사용하여 연결한 그림을 묘사한 것이다. 한 link는 여러 개의 lane을 사용할 수 있다. 예를 들어 최신 GPU는 16개 lane을 사용한다 (x16). 그리고 lane은 총 4개의 wire(?)를 가지고 있다고 한다.

PCIe 성능은 버전마다 차이가 있다. 버전이 올라갈 때 마다 대략 2배의 성능 향상이 있다고 이야기한다. PCIe 1.0 (또는 1.1)의 경우 최대 2.5 Gigatransfers per Second (GT/s)의 통신이 가능하다. PCIe 2.0은 최대 5GT/s, PCIe 3.0은 최대 8GT/s 정도의 성능으로 통신할 수 있다. Gigatransfers은 gigabits와 같은 의미라고 한다. 결과적으로 2.5 GT/s는 2.5 Gb/s와 동일하다. 위의 수치는 이론적인 최대 성능이다. 이론적인 최대 성능은 2.0은 1.0보다 2개 빠르지만 3.0은 2.0보다 60% 정도 빠르다. 하지만 측정 데이터 이동 대여폭은 거의 2배씩 증가한다.

PCIe 1.0과 2.0의 경우 8b/10b encoding 방법을 사용한다. 정확한 8b/10b encoding에 대해서는 공부가 필요하다. 8b/10b encoding 방법을 사용하면 이론적이 최대 성능의 80% 정도의 데이터 대여폭이 나온다고 한다. 결과적으로 PCIe 1.0, 2.0의 성능은 아래와 같다. (8은 bit를 byte로 변경하기 위해서 나눈 값이다)

  • PCIe 1.0: (2.5Gbit/s * 0.8)/8 = 0.25GB/s (250MB/s)
  • PCIe 2.0: (5.0Gbit/s * 0.8)/8 = 0.5GB/s (500MB/s)
PCIe 3.0의 경우 128b/130b encoding 방법을 사용한다. 이 방법은 대략 1.54%의 데이터 손실률이 발생한다고 한다. 다시 말해 이론상 성능의 98.46%의 대여폭이 나온다고 한다. 결과적으로 PCIe 3.0의 성능은 아래와 같다.
  • PCIe 3.0: (8.0Gbit/s * 0.9846)/8 = 0.9846GB/s (984.6MB/s)

결과적으로 이론상 PCIe 3.0의 이론상 수치는 대략 60% 증가하였지만, encoding 방법의 차이로 인해서 PCIe 버전 3.0의 데이터 대역폭 성능은 버전 2.0대비 2배 (정확히 1.96배) 증가하였다.

출처

  1. http://www.tested.com/tech/457440-theoretical-vs-actual-bandwidth-pci-express-and-thunderbolt/
  2. https://en.wikipedia.org/wiki/PCI_Express

Leave a Comment