NI 2900/2901 디바이스에서 예상보다 낮은 스트리밍 속도가 나타나는 이유는 무엇입니까?

업데이트 됨 Mar 12, 2021

해당 제품

하드웨어

  • USRP-2901
  • USRP-2900

문의사항

290x 장치에서 예상보다 낮은 스트리밍 속도를 얻고 있습니다. 내 애플리케이션에 필요한 속도로 스트리밍 할 때 언더플로/오버플로가 나타납니다. 어떻게 해결할 수 있습니까?

해결책

애플리케이션 요구 사항을 충족하기 위해 스트리밍 속도를 높이려면 아래 옵션 목록을 아래로 내려가는 것이 좋습니다. 전반적으로 예상보다 낮은 스트리밍 속도를 경험할 수 있는 여러가지 이유가 있습니다. 이러한 이유는 가장 큰 차이를 만드는 순서대로 다음과 같습니다.
  1. USB 2.0 vs. USB 3.0
    스트리밍 처리량을 최대화하려면 USB 3.0/USB (SS)와 함께 290x를 사용하고 있는지 확인하십시오. NI USRP 구성 유틸리티를 열고 디바이스가 USB 3.0을 통해 연결되었다고 표시하면 이를 확인할 수 있습니다.
  2. 데이터 스트림과 동일한 스레드의 모든 처리
    데이터를 스트리밍 할 때 LabVIEW의 생산자 소비자 아키텍처를 따르는 것이 가장 좋습니다. LabVIEW의 생산자/소비자 아키텍처
  3. PC에서 실행되는 기타 프로세스
    USB는 호스트 기반 프로토콜이므로 PC에서 실행되는 다른 프로세스는 스트리밍 처리량을 느리게 할 수 있습니다. 바이러스 백신 스캐너와 같은 중요하지 않은 프로세스를 종료하십시오.
  4. 다중 채널 스트리밍
    각 스트림에는 추가 오버헤드가 있으므로 여러 채널의 처리량은 이상적으로 최대 1개 채널을 2개(최대 2개 채널의 경우 2개, 3개 채널의 경우 3개 등)로 나눈 값보다 적습니다. 스트림을 애플리케이션에 필요한 최소량으로 유지하면 처리량이 극대화됩니다.
  5. 전반적인 PC 성능 (프로세서 전력, RAM 속도, 디스크 쓰기 속도)
    더 빠른 PC를 사용하면 호스트 기반 프로토콜의 특성으로 인해 스트리밍 처리량이 증가하는 것으로 입증되었습니다.
  6. USB 컨트롤러
    특정 USB 컨트롤러는 290x와 더 잘 호환됩니다. Intel Series 7, 8 및 9 USB 컨트롤러를 권장합니다. 자세한 내용은 이 페이지를 참조하십시오. 외부 링크: USB 3.0, USB 2.0에서 예상되는 샘플 속도는 얼마입니까?

추가 정보

USB 스트리밍을 사용하려면 장치가 동시에 여러 스트림을 처리하고 PC 메모리로부터 데이터를 빠르게 이동할 수 있어야 합니다. PCI 및 PCI Express는 이러한 버스가 높은 대역폭, 낮은 대기 시간, 버스 마스터 링 및 DMA 채널을 제공하여 데이터를 PC 메모리로 직접 스트리밍하기 때문에 데이터 수집 설계에 이상적입니다. USB 및 기타 외부 버스는 내부 버스의 대역폭 및 대기 시간 사양이 부족하기 때문에 종종 성능이 낮은 것으로 간주됩니다.

PCI 설계와 달리 USB, 이더넷 및 무선 데이터 수집 장치는 DMA 채널이 없는 호스트 기반 프로토콜로 제한됩니다. OS는 장치로 또는 장치에서 데이터를 전송하기 위한 모든 요청을 시작해야 합니다. 이는 장치가 더 이상 버스를 제어하고 CPU 상호 작용 없이 데이터를 전송할 수 없기 때문에 데이터 전송에 상당한 오버헤드를 추가합니다. 또한 장치에서 PC 메모리로 이동하는 데이터는 컴퓨터 프로세서에 의해 제어되므로 상당한 통신 오버헤드가 추가됩니다.