이전 시간에는 CoaXPress, GigE Vision과 같은 머신비전 표준에 관한 인터페이스를 알아보았는데요, 이번 시간에는 이러한 인터페이스가 최적의 성능을 발휘하기 위해 필요한 PCI 대역폭 확인 방법에 대해 알아보고자 합니다.
PCI / PCIe란 무엇일까?
Peripheral Component Interconnect Express의 약자로 CPU와 주변 장치를 연결하는 로컬 버스 규격을 의미하며 PCI 또는 PCIe라 부르는데요, 아래와 같은 무빙워크를 떠올리시면 이해가 편하실 겁니다.
무빙워크가 넓고 속도가 빠를수록 단위 시간당 더 많은 사람을 이동시킬 수 있듯, PCI도 너비와 속도에 따라 CPU와 주변 장치 간의 데이터 전송량이 달라집니다. 즉, PCI 대역폭은 PCI 속도와 너비에 따라 결정되고 속도와 너비는 아래 대역폭 테이블에서 각각 버전과 레인을 의미합니다.
버전 | 1레인 (x1) | 2레인 (x2) | 4레인 (x4) | 8레인 (x8) | 16레인 (x16) |
1.0 | 250 MB/s | 500 MB/s | 1 GB/s | 2 GB/s | 4 GB/s |
2.0 | 500 MB/s | 1 GB/s | 2 GB/s | 4 GB/s | 8 GB/s |
3.0 | 984.6 MB/s | 1.97 GB/s | 3.94 GB/s | 7.88 GB/s | 15.75 GB/s |
4.0 | 1.969 GB/s | 3.94 GB/s | 7.88 GB/s | 15.75 GB/s | 31.51 GB/s |
NIC나 Frame Grabber를 메인보드에 삽입할 때 아래 노란색 부분인 PCI slot에 삽입하게 되는데, PCI slot의 지원 정보를 확인하고 적절한 슬롯에 위치시켜야 최적의 성능을 발휘할 수 있습니다.
윈도우에서 PCI 대역폭 을 확인해보자!
이제 PCI가 무엇인지 알았으니 본격적으로 PCI 대역폭을 확인해볼까요?
1. 제어판에서 장치 관리자를 실행합니다.
2. 네트워크 어댑터 하단의 원하는 장치를 우클릭 후 속성을 선택합니다.
3. 자세히 탭 클릭 후 속성에서 PCI 현재 링크 속도와 너비를 확인합니다.
- PCI 현재 링크 속도 : PCIe 버전을 의미합니다. 1은 PCIe 1.0 버전이며 250MB/s이고, 2는 PCIe 2.0 버전으로 500MB/s입니다.
- PCI 현재 링크 너비 : 배속을 의미합니다. 1은 1배속, 4는 4배속, 8은 8배속입니다.
- PCI 대역폭 = PCI 현재 링크 속도 x PCI 현재 링크 너비
위 스크린 샷의 경우 TN9710P 제품의 PCI 현재 링크 너비와 PCI 현재 링크 속도를 확인한 값이며, TN9710P는 10GigE Vision 카메라를 위한 NIC로 주어진 정보를 활용해 PCI 대역폭을 산출하면 다음과 같습니다.
PCI 현재 링크 속도(2=PCIe v2.0=500MB/s) x PCI 현재 링크 너비(4) = PCI 대역폭(2000MB/s)
TN9710P는 1개의 포트를 가지고 있고 10Gigabit/s의 대역폭을 사용합니다. 이를 환산하면 10Gigabit/s = 10 x 125Mbyte/s = 1250MB/s의 대역폭을 필요로 합니다. (GigE의 대역폭에 관한 게시물은 여기를 클릭하시면 확인할 수 있습니다.) 이는 앞서 확인한 PCIe 대역폭인 2000MB/s보다 작으므로 아래 스크린 샷과 같이 정상적인 출력이 가능합니다.
PCI 대역폭이 부족하다면?
그럼 PCI 대역폭이 부족하면 어떤 현상이 일어나는지도 확인해볼까요? 사람 수에 비해 무빙워크가 좁거나 느리면 이동에 제한이 있듯, PCI도 대역폭이 부족하면 데이터 전송에 문제가 있겠죠? 위에서 확인했던 10GigE를 위한 NIC인 TN9710P의 버전을 아래와 같이 1.0으로 낮추고 대역폭을 산출해보도록 하겠습니다.
PCI 버전이 1.0인 경우 PCI 대역폭을 산출하면 아래와 같습니다.
PCI 현재 링크 속도(1=PCIe v1.0=250MB/s) x PCI 현재 링크 너비(4) = PCI 대역폭(1000MB/s)
위에서 언급하였듯이 10GigE는 1250MB/s 이상의 대역폭을 필요로 하지만 PCI 대역폭이 1000MB/s이기 때문에 아래 스크린 샷과 같이 Corrupted packet 현상을 확인할 수 있습니다.
이처럼 머신비전 인터페이스의 대역폭이 크더라도 PCI 대역폭이 작으면 위와 같이 출력에 문제가 발생할 수 있으므로 최적의 성능을 위해서는 PCI 대역폭이 머신비전 인터페이스의 대역폭을 감당할 수 있는지 고려해야 합니다.
이제 영상 출력의 문제 원인 중 하나인 PCI 대역폭에 대해 알아보았으니 문제가 발생하면 PCI 대역폭을 먼저 확인해볼까요~?
Comments are closed.