아카데믹 회사 소개 행사 및 세미나 NI Developer Zone 기술 지원 솔루션 제품 및 서비스 문의 MyNI

문서 타입: 튜토리얼
NI 제공: 예
작성일: 2008. 1. 28


피드백


아니오

관련 링크 - Developer Zone

관련 링크 - Products and Services

NI Signal Streaming: USB에서 고속 데이터 스트리밍 구현하기

평가 0 건 | 5 중 0.00
언어 선택 | 인쇄

개요

내쇼날인스트루먼트는 USB (Universal Serial Bus) 사용을 최적화하고 고성능 데이터 수집을 구현하기 위해서 NI Signal Streaming 기술을 개발하였습니다. NI Signal Streaming은 세 가지의 혁신적인 하드웨어 및 소프트웨어 레벨의 디자인 요소를 통합하여 USB에서 지속적인 고속의 양방향 데이터 스트리밍을 구현합니다. 따라서 엔지니어들은 이 새로운 기술로, 종전에는 PCI와 같은 내부 버스에서만 가능했었지만 이제는 USB에서 고성능 어플리케이션을 개발할 수 있게 되었습니다. 본 기술백서에서는 USB에서 고속 데이터 수집과 관련된 문제를 짚어보고, NI Signal Streaming 기술이 모든 USB 데이터 수집 (DAQ) 디바이스에 필수 불가결한 이유에 대해 살펴보겠습니다.

 

소개

1993년 PCI 버스가 처음으로 소개된 이래로 PC 기반의 데이터 수집 기술을 채택하고 사용하는 빈도가 천문학적으로 높아져, 2006년 내쇼날인스트루먼트를 통해서만 약 6백만개 이상의 새로운 측정 채널이 판매되었습니다. 더욱더 많은 엔지니어들이 외장형, 휴대용, 사용이 편리한 USB 버스에 기반하여 데이터 수집 시스템을 구축하는 것을 선호함에 따라 USB (Universal Serial Bus)는 전 세계적으로 약 20억개 이상의 포트가 판매되었으며(usb.org 참조), 데이터 수집의 판도를 급격하게 바꾸어놓았습니다. USB 기반의 테스트, 측정 및 컨트롤 제품을 초기에 채택하여 사용한 결과를 비추어 볼 때 USB 디바이스와 PCI 디바이스 간에는 현격한 성능 차이가 존재합니다.

PCI와 USB DAQ 제품간 성능 차이는 USB DAQ 디바이스에 고성능 컴포넌트를 탑재할 수 없기 때문이 아니라, 단지 USB의 특성에 기인하는 것입니다. USB는 대역폭이 낮고, 대기 시간이 느리며, 호스트 실행 (host-initiated) 데이터 전송의 특징이 있습니다. 이러한 문제점으로 인해, 초기의 USB 기반 어플리케이션은 데이터 저장, 기본 데이터 수집 및 인스트루먼트 컨트롤에서 GPIB 및 시리얼의 대용으로만 그 사용이 한정되었습니다.

내쇼날인스트루먼트는 USB (Universal Serial Bus)의 사용을 최적화하고 고성능 데이터 수집을 구현하기 위해서 NI Signal Streaming 기술을 개발하였습니다. NI Signal Streaming은 세 가지의 혁신적인 하드웨어 및 소프트웨어 레벨의 디자인 요소를 통합하여 USB에서 지속적인 고속의 양방향 데이터 스트리밍을 구현합니다. 따라서 엔지니어들은 이 새로운 기술로, 종전에는 PCI와 같은 내부 버스에서만 가능했었지만 이제는 USB에서 고성능 어플리케이션을 개발할 수 있게 되었습니다.

 

NI Signal Streaming 개발 이전 USB 데이터 수집의 문제점

이론상의 53 MB/s로, Hi-Speed USB의 대역폭은 대부분의 데이터 수집 어플리케이션에 충분한 수준입니다. 그러나, 기존의 USB DAQ 하드웨어 및 소프트웨어 디자인은 제공되는 대역폭을 활용할 수 없습니다. 데이터 수집을 위해서는 종종 아날로그 입력, 아날로그 출력, 디지털 입력, 디지털 출력 및 여러 개의 카운터/타이머 등의 여러 개의 I/O 태스크가 필요합니다. 이러한 모든 태스크를 동시에 운영하기 위해서 데이터 수집 디바이스는 반드시 동시에 여러 스트림을 처리해야 하며 PC 메모리로/부터 데이터를 신속하게 이동할 수 있어야 합니다. PCI 및 PCI Express는 PC 메모리로 직접 데이터를 스트리밍하기 위한 높은 대역폭, 낮은 대기 시간, 버스 마스터링 및 DMA 채널을 제공하기 때문에 데이터 수집 설계에 이상적입니다. USB 및 다른 외부 버스 (이더넷 등)는 상기와 같은 기능이 결여되어 있으므로 플러그인 버스에 비해 성능면에서 뒤집니다.

PCI 디자인과는 달리, USB DAQ 디바이스는 DMA 채널이 없는 호스트 구동 (host-driven) 시리얼 프로토콜에 의해 제한됩니다. 운영 시스템은 반드시 디바이스로(부터) 데이터 전송 요청을 시작해야 합니다. 이는 디바이스가 CPU 상호 작용 없이 버스를 컨트롤할 수 없고 데이터를 전송할 수 없기 때문에 데이터 전송에 막대한 오버헤드를 추가하게 됩니다. 또한, 디바이스로(부터) PC 메모리로 이동하는 데이터는 컴퓨터 프로세서에 의해 컨트롤되므로 상당한 통신 오버헤드를 추가하게 됩니다.

이러한 제약을 해결하기 위해 과거에는 데이터 수집 설계자들은 두 가지 옵션 즉, 제약을 상쇄하는 방법을 사용하거나 무시하는 방법을 택했습니다. 설계자들은 디바이스 상에 다량의 고가 메모리를 설치함으로써 제약을 상쇄하고자 하였습니다. 추가의 메모리는 CPU가 데이터 추출을 위해 적절한 과정을 처리하기 이전에 디바이스 상에 데이터가 머무를 공간을 제공하였습니다. 이로 인해 제한된 시간 동안 버퍼 오버플로우를 경감시키는 데에는 도움이 되었으나, 사용되지 않는 장소에 대량의 메모리가 쌓이게 됨으로써 대기 시간이 증가하는 결과가 발생했습니다. 제약을 무시한다는 것은 고속 I/O 태스크 (다시 말해, 정적 아날로그 출력 및 디지털 I/O와 결합한 클럭된 아날로그 입력)의 단 하나의 유형만이 가능한 데이터 수집 디바이스를 설계하는 것을 의미했습니다. 그러나 이러한 솔루션은 디바이스의 가격 상승을 부추기는 동시에 PCI 기반 설계시의 성능을 구현할 수 없었으므로 이상적인 솔루션이라고 볼 수 없습니다.

NI Signal Streaming 기술은 USB에서 지속적인 고속 및 양방향 데이터 스트리밍을 구현함으로써 상기의 문제를 새로운 방식으로 해결합니다. NI Signal Streaming을 이해하기 위해 우선 USB 통신 및 예전의 USB DAQ 디자인에 대해 짚어보아야 합니다.

 

USB 통신 개요

USB는 주소, 요청 및 확인 등의 데이터 패킷을 전송하는 시리얼 프로토콜로써, 모든 디바이스에서 사용가능한 대역폭을 공유합니다. USB 시스템은 (1) 호스트 (일반적으로 PC 또는 노트북), (2) USB 디바이스, (3) USB 케이블의 세 가지 요소를 통합합니다. USB 호스트는 USB 디바이스로 모든 데이터 전송을 시작하여, 따라서 간단한 작업 (호스트 요청, 데이터 전송 및 호스트 확인)을 위해 세 개 또는 그 이상의 패킷의 전송을 요구합니다.

정보는 endpoint를 통해서 USB 디바이스로(부터) 전송됩니다. Endpoint는 데이터가 USB 디바이스에 출입하기 위해 반드시 거쳐야 하는 게이트와 같은 역할입니다. Endpoint는 데이터를 오직 한 방향으로만 전송하기 때문에, 입력 및 출력 기능을 위해 디바이스는 여러 개의 endpoint를 갖추어야 합니다. 데이터는 디바이스 endpoint의 안팎에서 호스트 컨트롤러로 전송되며, 이 때 USB 버스 컨트롤용 1개 방식과 데이터 전송용 3가지 방식의 총 4가지 기본 전송 방식을 사용합니다.

  • 인터럽트 데이터 전송은 소량의 데이터를 적절한 시간에 안정적으로 전송합니다. 흔히 키보드 또는 마우스와 같은 주변기기 디바이스를 위해 사용됩니다.
  • 등시성 (Isochronous) 데이터 전송은 데이터 손실을 감안한 미리 조정된 대역폭을 제공합니다. 이는 오디오 및 비디오 스트리밍 처럼 시간에 맞게 데이터를 전송하는 것이 데이터 정확도 보다 중요할 경우에 주로 사용됩니다.
  • 대량의 데이터 전송은 데이터 손실없이 대량의 데이터를 전송하며, 외장 하드 드라이브와 같이 많은 데이터가 데이터 손실없이 전송되어야 하는 어플리케이션에 주로 사용됩니다.

내장된 오류 확인 및 대규모 데이터 전송 기능이 있는 대량의 데이터 전송은 USB 데이터 수집을 위한 현명한 선택입니다. 그러나 실제로 대량 전송은 단지 단일의 데이터 스트림이 USB 포트를 통해 전송될 경우에만 빠른 성능을 확보할 수 있습니다. 모든 추가의 스트림은 전송이 특히 양방향으로 진행될 경우, 전송 속도가 현저하게 감소될 수 있습니다.

 

종전 방식

고성능 데이터 수집을 위해 기대되는 처리량 및 대기 시간을 확보하지 못하는 데에는 세 가지의 기술적인 문제가 있습니다. 첫 번째 문제는 데이터 관리를 위한 프로세서를 비효율적으로 사용하는 것입니다. 데이터수집 프론트 엔드 및 USB endpoint간의 데이터 관리를 위한 현재 표준은 느린 속도의 상용 (COTS) 프로세서입니다. 적절한 정보를 각 개별 USB endpoint에 전달하는 것이 그 목적입니다. 맞춤식 설계와 비교하여 상대적으로 편리하게 실행할 수 있으며 저렴한 솔루션입니다.


[+] 크게 보기

그림 1. 종전 USB DAQ 아키텍처는 저성능 프로세서를 사용하여
DAQ 프론트엔드를 USB endpoints에 연결합니다.

이러한 프로세서는 지시에 기반한 실리콘의 단일 스레드 조각으로 스위치식의 동작을 발생합니다. 주어진 시간에 하나의 지시만을 실행할 수 있으므로 모든 일반 USB DAQ 디바이스의 병목 현상을 일으킵니다. 호스트로부터 컨트롤 요청 처리 등의 높은 우선 순위를 가진 태스크는 프로세서의 데이터 전송 처리를 지연시킬 수 있으며 따라서 낮은 처리량 및 버퍼 언더플로우 오버플로우(underflow/overflow) 에러를 유발합니다. 프로세서는 그 아키텍처 때문에 동시에 여러 데이터 스트림을 처리하거나 유입되는 컨트롤 요청을 처리할 수 없으므로 고성능 데이터 수집을 불가능하게 합니다. 다시 말해, USB는 PCI DMA식의 여러 I/O 유형을 동시에 스트리밍하는 성능을 구현하지 못합니다.

다른 문제는 대기 시간입니다. 대기 시간은 데이터를 요청한 시간과 실제 데이터 전송이 시작되는 시간 사이에 지연되는 시간을 정의됩니다. USB는 OS 기반의 액세스 및 시리얼의 특성으로 인해 PCI 보다 지연 시간이 더 높습니다. 일반적인 단일 포인트 전압 수집은 수 십개의 레지스터 레벨의 지시가 필요하며, 1 ms의 지연 시간으로 곱하면 그 수치는 수용 불가능합니다.

따라서, 데이터 처리량과 대기 시간은 서로 절충되어야 합니다. 신속한 데이터 처리량 속도를 위해서는 엔지니어들은 매 전송시 많은 양의 데이터 세트를 이동시켜야 합니다. 그렇게 함으로써 시스템의 반응도가 떨어지며 시스템 대기 시간을 늘어나게 되어 다량의 데이터 전송시에 디바이스가 반응하지 않게 됩니다.

따라서 데이터 전송의 스트리밍 능력과 100 퍼센트 무에러 벌크 전송을 모두 사용하는 데이터 전송 방식이 절실하게 필요한 것입니다. 이러한 요구를 해결하기 위해서 내쇼날인스트루먼트는 혁신적인 특허 출원중인 USB 데이터 스트리밍 기술인 NI Signal Streaming을 개발하였습니다.

 

USB DAQ을 위한 NI Signal Streaming 방식

NI는 NI Signal Streaming에 다음의 주요 세 가지를 구현하였습니다. (1) USB를 통하여 다량의 데이터 세트를 신속하게 전송하는 능력, (2) 최적화된 메시지 기반 지시, (3) USB 디바이스에 지능을 추가하여 응답성 향상

 

빠른 데이터 전송

USB를 통해 다량의 데이터를 신속하게 전송하기 위한 두 가지 요구 사항이 있습니다. 첫째, USB는 호스트 실행 (host-initiated) 통신 프로토콜이기 때문에 소프트웨어 드라이버는 데이터 요청을 연속적으로 매우 신속하게 전송해야 합니다. 그 후 디바이스 측면에서, 유입되는 호스트 요청을 신속하게 처리하기 위해서 데이터는 가능한 신속하게 USB endpoint에 사용할 수 있어야 합니다.

호스트 측면에서 NI-DAQmx 드라이버 소프트웨어는 데이터 요청의 연속적인 공급을 보장합니다. 요청은 큐에 쌓이고 USB 호스트로부터 전송 준비가 완료됩니다. 그런 후 바로 들어오는 데이터를 프로세싱하고 받게 됩니다.

디바이스 측에서, NI Signal Streaming은 NI Signal Streaming Controller(여러 태스크를 동시에 실행하고 USB endpoint에 데이터 스트림을 직접 맵핑)를 사용함으로써 프로세서 기반한 스위치식 동작을 배제합니다. NI Signal Sreaming을 NI-STC 2 시스템 타이밍 컨트롤러와 함께 작동하면 4개의 온보드, 고속 DMA 채널을 4개의 USB endpoint로 직접 전달합니다. 따라서 프로세서가 메시지 전환과 같은 태스크 업무를 진행하는 데 필요한 리소스를 덜어줍니다. 온보드 DMA 전송은 데이터가 USB endpoint에서 항상 읽히거나 작성될 준비가 되어 있음을 확인합니다.

그림 2. NI Signal Streaming에 추가된 NI Signal Streaming Controller로,
DAQ 프론트 엔드에서 USB endpoint로 온보드 DMA 전송을 제공하므로
온보드 프로세서에 의해 발생하는 오버헤드를 줄입니다.

 

메시지 기반 지시

앞에서 언급된 바와 같이 USB는 PCI보다 대기 시간이 높습니다. 단일 포인트 전압 측정에서 수 십개의 레지스터 레벨 명령이 요구되는 경우에는 이러한 지연 시간이 더욱 배가됩니다. NI Signal Streaming은 메시지 기반의 통신을 제공하여 시간이 오래 걸리는 전송을 피할 수 있습니다. (호스트는 USB를 통해 “acquire.commit”와 같은 단일의 하이 레벨 메시지만을 전송해야 합니다.) 그 후 디바이스 프로세서는 메시지를 시스템 타이밍 컨트롤러를 적절하게 셋업하는 데에 필요한 수 십개의 레지스터 레벨의 명령으로 변환합니다.

그림 3. 메시지 기반의 지시를 사용함으로써
수 십개의 레지스터 레벨 명령을 배제할 수 있습니다.

 

디바이스 측 통신 지능

결과적으로, NI Signal Streaming은 데이터 처리량과 대기 시간 사이에서 절충해야 할 필요를 없애줍니다. 빠른 데이터 처리량을 위해, 큰 데이터 세트는 연속적으로 전달되고 수행하기 불가능한 작은 데이터 세트에 대한 요청을 남겨둡니다. 기존의 USB DAQ 디바이스의 경우, USB 호스트는 데이터를 사용자에게 보내기 이전에 대형 데이터 전송이 완료될 때까지 대기합니다.

NI Signal Sreaming이 있는 디바이스의 경우에는, 디바이스에 추가된 지능이 있어 대형 데이터 세트 전송을 미리 정지시켜 USB로 조기 완료 알림 메시지를 보내며 이 때에 데이터 무결성을 유지합니다. 따라서 디바이스가 신속하게 요청에 응답하며 필요시에는 데이터 세트를 전송하는 과정이 효율적으로 이루어집니다.

 

USB에서 고성능 DAQ

신속한 데이터 전송 및 메시지 기반 지시는 높은 데이터 전송량을 구현하며, 메시지 기반 지시와 통합된 추가의 디바이스 측 지능은 대기 시간을 낮추는 역할을 합니다. 이로 인해 단일 포인트 수집의 성능은 아날로그 입력의 경우 최고 1,600 퍼센트, 아날로그 출력의 경우 최고 250 퍼센트 증대됩니다.

그림 4. 단일 포인트 아날로그 입력 및 아날로그 출력 성능 차트

내쇼날인스트루먼트는 Hi-Speed USB와 NI Signal Sreaming 기술이 통합된 새로운 USB DAQ 설계를 사용함으로써, 고성능 버스로써의 USB를 십분 활용하여 업계 최고의 NI M 시리즈 및 NI CompactDAQ 디바이스를 선보였습니다. M 시리즈 USB 디바이스는 PCI를 능가하는 성능의 통합된 신호 연결을 제공합니다. M 시리즈는 bus-powered(USB 버스에 파워 내장) 및 wall-powered(콘센트 형식으로 외장 어댑터가 필요) 형태로 모두 제공됩니다.

NI CompactDAQ은 통합된 신호 컨디셔닝 및 핫 스왑가능한 C 시리즈 모듈이 있는 확장가능한 데이터 수집 시스템입니다. 양쪽 플랫폼 모두는 고성능 및 고정밀도 데이터 수집을 위해 개발된 업계 최고인 NI 기술이 적용되어 있습니다. NI Signal Sreaming이 적용된 모든 USB DAQ 디바이스에는 USB에서 동시에 4개의 고속 작업을 스트리밍할 수 있는 4개의 DMA식 채널이 있습니다.


[+] 크게 보기

그림 5. NI 업계 최상의 USB 데이터 수집 플랫폼

 

요약

USB는 마우스 및 키보드와 같은 액세서리용 저속 주변기기 버스에서 데이터 집약적인 어플리케이션을 충족시키는 고속 버스로 발전하였습니다. USB 고유의 오류 수정, 노이즈 감소, 전력 관리, 전력 분배 기능과 통합된 NI Signal Sreaming은 측정 및 컨트롤 제품에서 사용할 수 있는 강력하고 안전하며 신뢰할 수 있는 USB 버스를 구현합니다.

NI Signal Sreaming 기술 도입과 동시에 USB 디바이스는 이제 사용자들이 플러그인 버스에서 기대했던 성능을 능가하는 성능을 전달합니다. 빠른 데이터 전송, 통신 오버헤드 감소, 디바이스 응답성 증대를 달성하기 위한 문제점을 해결해주는 NI Signal Sreaming은 모든 USB DAQ 디바이스에 있어 필수적인 기술입니다. 메가헤르츠 범위에서 여러 측정 유형을 스트리밍하거나 헤르츠 레벨에서 센서 데이터를 로깅하거나, NI Signal Sreaming은 항상 USB DAQ 어플리케이션에 요구되는 성능을 제공합니다.

NI USB 제품의 향상된 성능에 대해 더 알아보고 싶으십니까?
지금 고성능 USB E-Kit를 다운로드하십시오.

관련 링크:
NI USB 데이터 수집 제품
NI CompactDAQ

평가 0 건 | 5 중 0.00
언어 선택 | 인쇄

법적 정보
"이 튜토리얼 (이 ""튜토리얼"")은 내쇼날인스트루먼트 (""NI"")가 개발한 것 입니다. 이 튜토리얼에 대한 내쇼날인스트루먼트의 기술 지원이 가능하더라도, 이 튜토리얼의 내용은 완전하게 테스트 및 검증되지 않을 수 있으며, NI는 어떠한 방식으로도 품질 또는 관련 제품 및 드라이버의 새로운 버전에 따른 컨텐츠의 지속적인 지원을 보장하지 않습니다. 이 튜토리얼은 어떠한 종류의 보증 및 NI.COM의 이용 약관에 명시된 특정한 제약 규정에 대한 전제 없이 있는 그대로 제공됩니다. (http://ni.com/legal/termsofuse/unitedstates/us/)