버스 성능을 결정하는 것은 무엇입니까?

개요

유닛 처리량이 중요한 새로운 테스트 시스템을 설계하고 있습니다. GPIB, USB, 이더넷 또는 PCI/PXI Express (PXIe)를 사용하는 여러 인스트루먼트를 평가합니다. 어떤 인스트루먼트 버스가 충분한 시스템 성능을 제공하는지 어떻게 알 수 있습니까? 각 버스 옵션의 이론적 대역폭은 성능 평가를 시작하기에 적합하지만, 평가에 더 깊이 있어야 하는 경우가 많습니다. 이 문서는 버스 대역폭, 지연, 제조업체 특정 드라이버 구현, 어플리케이션과 같은 인스트루먼트 버스 선택에 영향을 주는 4가지 주요 요인을 살펴봅니다.

내용

테스트 시스템의 단순화된 모델

테스트 시스템의 단순화된 모델(그림 1)에서도 버스 성능에 영향을 줄 수 있는 하드웨어 및 소프트웨어 구성요소가 많이 있습니다. 호스트 PC에서 소프트웨어 어플리케이션, OS, CPU/RAM 조합, 얼타임 OS 지원, 멀티코어 CPU 최적화, 소프트웨어 스택, 드라이버, 하드웨어 인터페이스가 버스 성능에 영향을 미칩니다. 인스트루먼트 측면에서는 I/O 하드웨어와 펌웨어, CPU/RAM 조합, 측정 속도가 버스 성능에 영향을 미칩니다. 이러한 구성요소 중 하나를 변경하면 버스 성능이 변경될 수 있으며, 버스를 다른 버스로 변경하면 전체 시스템 성능에 영향을 미칠 수 있습니다. 이러한 구성요소는 버스 성능에 영향을 주는 4가지 주요 요소 중 하나로 분류할 수 있습니다. 대부분의 버스 성능 비교는 버스 대역폭에만 중점을 두고 실제 버스 성능에 영향을 미치는 다른 하드웨어 및 소프트웨어 구성요소를 무시합니다. 시스템 설계자는 버스의 이론적 성능뿐만 아니라 해당 버스의 특정 디바이스가 전체 시스템에서 어떻게 작동하는지 평가해야 합니다.

 
 
그림 1. 호스트 PC 및 인스트루먼트 시스템 구성요소


앞서 언급한 바와 같이 버스 성능에 영향을 주는 네 가지 주요 요소는 버스 대역폭, 지연, 공급업체별 드라이버/펌웨어 구현, 어플리케이션입니다. 대역폭은 데이터 속도입니다. 이는 보통 초당 백만 비트(Mbit/s)로 측정됩니다. 지연은 전송 시간입니다. 이는 일반적으로 초 단위로 측정됩니다. 예를 들어 이더넷 전송에서 대규모 데이터는 소형 세그먼트로 쪼개져 여러 패킷으로 전송됩니다. 지연 시간은 이러한 패킷 하나를 전송하는 데 걸리는 시간입니다. 시스템은 버스의 지연 시간보다 더 빠르게 데이터에 응답할 수 없습니다. 버스 드라이버 소프트웨어, 펌웨어, 하드웨어의 구현은 성능을 좌우합니다.

모든 인스트루먼트가 같지 않은 경우도 있습니다. 멀티코어 프로세서 또는 리얼타임 OS (RTOS)로 구현된 PC와 더 많은 RAM은 더 느린 프로세서와 더 적은 RAM을 가진 PC보다 더 높은 성능을 제공합니다. 인스트루먼트에서도 마찬가지입니다. PXIe 모듈러 인스트루먼트 또는 기존 인스트루먼트와 상관없이 인스트루먼트 설계자의 구현 단점은 인스트루먼트 성능에 영향을 미칩니다. PXI Express 인스트루먼트의 주요 장점 중 하나는 최종 사용자가 최적의 구현 단점을 결정할 수 있도록 소프트웨어로 정의된다는 점입니다. 일부는 또한 프로그래밍 가능한 FPGA 구조를 갖추고 있어 타이밍 결정성이 높은 성능과 다른 시스템 리소스에 영향을 주지 않고 인스트루먼트에서 사용자 정의된 처리를 수행할 수 있습니다.

버스 성능에 영향을 주는 마지막 주요 인자는 어플리케이션 또는 인스트루먼트의 사용 방식입니다. 일부 어플리케이션에서는 측정 서브시스템이 병목이고 다른 어플리케이션에서는 병목이 프로세서 서브시스템입니다. 어떤 서브시스템이 병목인지 이해하면 성능을 향상시킬 수 있습니다. 중요한 점은 특정 버스의 성능이 충분히 높아지려면 어플리케이션 요구사항을 충족하거나 초과해야 한다는 점입니다. 각 주요 요소를 보다 자세히 고려하면 사용자가 더 잘 이해할 수 있습니다.

 

그림 2. 주류 T&M 버스의 이론적 대역폭 대 지연 시간

 

 

지연 및 대역폭



앞서 언급한 것처럼, 지연은 데이터 전송의 크기에 따라 버스 성능에 심각한 영향을 미칩니다. 메인스트림 인스트루먼트 컨트롤 버스의 이론적 대역폭과 지연 시간(그림 2)은 버스 성능과 전송 크기의 관계에 대해 설명합니다. 예를 들어, 두 개의 통신 버스를 살펴보겠습니다. 빠른 이더넷(100M 이더넷)의 대역폭은 100 Mbit/s이며, 이는 고속 GPIB의 64 Mbit/s 대역폭보다 높습니다. 그러나 빠른 이더넷의 지연은 밀리초 범위에서 수십 마이크로초 범위인 고속 GPIB 지연보다 훨씬 느립니다. 그림 3은 같은 인스트루먼트에 있는 여러 버스의 버스 성능, 즉 실제 전송 속도를 보여줍니다. 8 Kbytes보다 작은 데이터 전송의 경우, 고속 GPIB는 더 높은 성능을 제공합니다. 그러나 8 Kbytes보다 큰 전송 크기의 경우, 이더넷은 더 좋은 성능을 제공합니다.

 

 
그림 3. 노이즈 범위를 사용하여 여러 패킷 크기의 HS-488 및 이더넷 성능 비교



많은 엔지니어들은 GPIB 또는 이전 이더넷 인터페이스가 있는 오래된 인스트루먼트에 여전히 의존하며, 기존 시스템의 유지보수를 위해 성능 특성을 이해하는 것이 중요합니다. 그러나 PXI와 같은 현대적인 플랫폼은 처리량을 크게 향상시키고, 지연 시간을 줄이고, 변화하는 아키텍처와 요구사항과 간단하게 통합할 수 있습니다. 또한 이러한 업그레이드를 통해 테스트 시스템은 기술이 지속적으로 발전하여 장기적인 유지 관리 복잡성을 줄일 수 있도록 지원됩니다.

대역폭과 지연이 모두 영향을 주는 버스 성능의 원리는 통신 버스와 시스템 버스를 비교할 때에도 적용됩니다. GPIB, USB, LAN과 같은 통신 버스는 일반적으로 PC 외부에서 주변 장치를 연결하는데 사용되며, 지연 시간이 길고 대역폭이 낮습니다. PCI 및 PCI Express와 같은 시스템 버스는 일반적으로 PC 내부에서 사용되며, 훨씬 높은 대역폭에서 더 좋은 지연 시간을 가지며, 작은 전송 크기와 큰 전송 크기 모두에서 최고의 성능을 제공합니다. 이는 여러 통신 버스의 데이터가 호스트 CPU가 처리하기 위해 시스템 버스에 집계되기 때문입니다.


또 다른 관점은 통신 버스의 주요 가치는 성능이 아니라 다른 요인이라는 점입니다. 예를 들어, USB를 사용하면 외부 디바이스를 쉽게 연결할 수 있으며, LAN은 장거리 측정값을 배포하는데 유용합니다. 그러나 이러한 두 버스는 PCI Express와 같이 더 높은 대역폭과 더 낮은 지연 시간 시스템 버스로 인해 CPU와 RAM에 연결됩니다.

 
 
그림 4. 동일한 버스의 구현 차이점은 두 개의 오실로스코프의 성능에 영향을 미침

구현

구현은 버스 성능에 영향을 주는 세 번째 주요 요인입니다. 예를 들어, 버스 인터페이스 칩의 선택, 인스트루먼트 펌웨어 또는 인스트루먼트 드라이버 코딩, CPU 및 RAM의 크기 조정은 버스 성능에 영향을 미칩니다. 두 개의 다른 제조업체의 영역에서 표준 GPIB 및 이더넷 버스 구현의 예를 생각해 봅니다. 그림 4의 결과는 구현 선택이 버스 성능에 미치는 영향을 보여줍니다. 첫 번째 영역은 표준 GPIB 및 이더넷의 대부분의 전송 크기에 대해 성능을 향상시킵니다. 이 벤치마크는 같은 GPIB 케이블이 있는 같은 PC에서 SCPI 명령을 사용했습니다. 유일한 차이점은 GPIB 인터페이스의 인스트루먼트 구현입니다. (이 같은 비교는 오래된 인스트루먼테이션을 기반으로 하며, 구현의 차이가 같은 버스 타입을 사용하는 경우에도 처리량에 미치는 영향을 보여주는데 유용합니다.)

이러한 영향은 대부분의 인스트루먼트 제조업체가 인스트루먼트의 버스 성능을 지정하지 않기 때문에 특히 문제가 됩니다. 또한 인스트루먼트 프로세서 유형과 속도, 메모리 깊이, OS, 펌웨어 및 사용자 인터페이스 소프트웨어는 버스 성능에 영향을 미칩니다. 즉, 시스템 설계자는 최종 인스트루먼트 선택이 완료되기 전에 버스 성능을 벤치마크해야 하며, 특히 더 이상 사용되지 않는 시스템이나 명확한 처리량 스펙이 없는 경우에 사용해야 합니다.

버스 성능에 구현의 또 다른 큰 영향은 인스트루먼트 드라이버가 요구하는 호스트 오버헤드입니다. PCI/PXI, PCI Express/PXI Express와 같은 시스템 버스를 사용하는 인스트루먼트는 호스트 CPU의 최소한의 간섭 없이 직접 메모리 접근(DMA)을 사용하여 시스템 메모리로 데이터를 이동할 수 있습니다. 이러한 경우, CPU의 역할은 주로 데이터 스트림과 해당 예약된 메모리의 설정과 관련됩니다. 반면, 통신 버스를 사용하는 인스트루먼트 드라이버 메모리 입력과 메모리 밖으로 전송될 때마다 호스트 CPU에 의한 집중적인 관리가 필요합니다. 이러한 드라이버 소프트웨어 스택은 데이터 전송 타이밍에 지연과 지터를 추가하기 때문에 추가적인 처리가 필요하며 OS 우선순위가 적용됩니다. 필요한 처리량에 따라 드라이버 소프트웨어 스택은 프로세서 용량의 상당 부분을 소비하거나 데이터 스트림의 병목이 될 수도 있습니다.

어플리케이션

버스를 고성능으로 만드는 마지막 중요한 요소는 시스템에 있는 인스트루먼트의 어플리케이션입니다. 일부 어플리케이션은 FFT 계산이나 대용량 웨이브폼 전송과 같이 많은 데이터 처리가 필요한 반면, 최솟값이나 최댓값을 찾는 것처럼 처리 요구가 적은 경우도 있습니다. 그러나 다른 시스템은 측정이 완료된 후 오프라인으로 처리되기 때문에 처리 요구사항에 전혀 민감하지 않을 수 있습니다. 어플리케이션이 계산 집약적이고 지연 시간에 민감할수록 프로세서가 더 많은 병목이 될 수 있습니다.

이러한 어플리케이션에서, PCI/PXI 및 PCI Express/PXI Express와 같은 시스템 버스에 기반한 인스트루먼트는 DMA 기반 전송을 지원하고 더 낮은 지연과 더 높은 대역폭을 제공하기 때문에 더 나은 솔루션을 제공합니다(그림 3 참조). 반면, 처리량이 낮고 지연이 허용되는 어플리케이션의 경우, 버스가 가능한 경우가 많습니다. 이러한 경우, 측정 속도, 정확도, 정밀도, 거리, 비용, 견고성 또는 크기와 같은 다른 기준으로 인스트루먼트를 선택할 수 있습니다.

결론

버스 대역폭, 버스 지연, 제조업체별 구현, 어플리케이션과 같은 성능에 영향을 주는 4가지 주요 요인에 대한 분석을 통해 고려해야 할 몇 가지 시스템 설계 권장사항이 있습니다. 먼저 성능을 최대화하려면, 측정값을 CPU에 최대한 가깝게 유지하거나 PXI가 있는 시스템의 일부로 유지합니다. 이렇게 하면 DMA가 있는 고성능 드라이버와 낮은 시스템 버스 지연이 가능하며 측정 타이밍과 프로세서의 로드에 대한 추가 지연을 줄일 수 있습니다. 마지막으로, 같은 버스 내에서 같은 측정 타입을 사용하더라도, 서로 다른 인스트루먼트와 드라이버는 처리량 성능과 CPU 사용량에 따라 다릅니다. 따라서 명확한 스펙을 찾지 못하는 경우, 최종 선택을 하기 전에 잠재적인 인스트루먼트의 버스 성능을 벤치마크해야 할 수도 있습니다.

버스 성능이 중요한 경우, PXI Express는 최고 수준의 대역폭, 낮은 지연 시간, 소프트웨어 투명성을 확장성과 결합하여 전체 테스트 시스템을 다시 설계하지 않고 요구사항이 변화함에 따라 성능을 업그레이드하고 기능을 추가할 수 있습니다.