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

고속 데이터 스트리밍: 프로그래밍과 벤치마크

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

개요

PXI Express는 엔지니어들이 시스템을 디자인하는 방식에 변화를 불러왔습니다. 본 문서는 고속 데이터 스트리밍을 구현 가능하게 한 기술, 시스템 스트리밍 성능을 극대화하는 어플리케이션 설계, 디스크 스트리밍 및 메모리 스트리밍 어플리케이션에서 얻을 수 있는 데이터 속도 벤치마크에 대해 설명합니다.

소개

엔지니어들은 "스트리밍"을 활용하지만, 여러 어플리케이션에서 만족할 만한 속도로 데이터를 생성하거나 수집하지 못하고 있습니다. 이러한 상황에서 엔지니어들은 버스에서 데이터를 전송할 때 더욱 낮은 샘플링 속도를 사용하거나 온보드 계측기 메모리가 허용하는 짧은 시간동안 고속으로 샘플링을 수행함으로써 절충해야 합니다. 그렇지만 이 두 가지 중 어느 하나도 요구사항을 만족시킬 수 없습니다.

일반적으로, 오실로스코프, 로직 분석기, 임의 파형 발생기 등 벤치탑 계측 시스템은 제한된 데이터 스트리밍을 실행했습니다. 비록 여러 계측기가 극도로 빠른 샘플링 속도와 높은 대역폭을 가지고 있는 것이 사실이지만, 사용자에게 데이터를 반환하기 위해 PC와 인터페이스하는 버스는 간과하고 있습니다. 그러나 사실상, 버스는 전체 테스트 시간을 대폭 향상시킵니다. 예를 들어, 독립형 오실로스코프로 수행되는 대부분의 수집은 한정적입니다. 수집 기간은 오실로스코프에서 사용가능한 온보드 메모리의 양에 따라 결정됩니다. (독립형 임의 파형 발생기는 파형이 온보드 디바이스 메모리에 다운로드된다는 것을 제외하고는 동일한 제약을 갖고 있습니다.) 수집이 완료되면 데이터는 이더넷 또는 더욱 일반적으로 GPIB를 통해 컨트롤 PC로 전송됩니다. 이벤트가 트리거링된 이후에 데이터가 1GS/s로 샘플링되는 경우를 생각해 보십시오. 디바이스가 채널당 256 MB의 온보드 메모리를 보유하고 있다면 메모리는 약 250 ms 후에 꽉 차서 수집을 종료하게 됩니다. 계측기가 GPIB 버스를 사용하여 인터페이스하는 경우, (약 1 MB/s의 대역폭 보유) 사용자는 데이터가 컴퓨터로 전송되어 분석을 하기까지 약 4.5 ½분 (250 초)을 대기해야 합니다. 이제 동일한 샘플링 속도와 온보드 메모리를 가진 NI 디지타이저/오실로스코프와 비교해 보겠습니다. 동일한 데이터 전송은 고대역폭 PCI/PXI 버스에서 3초 미만이 소요되며 이는 80배 이상이 향상된 결과입니다. PCI Express/PXI Express 버스는 더욱 신속한 데이터 전송을 가능하게 합니다.

스트리밍 기술

PCI Express 기술로 구축된 PXI Express는 계측기 당 전용 대역폭을 제공합니다. PCI Express는 x1, x4, x8, x16 링크 (“by 1,” “by 4,” 라고 함.)로 사용가능하며, 매우 낮은 대기시간으로 레인당 250 MB/s 처리량을 제공합니다. x1 및 x4 옵션은 계측기 수준의 하드웨어에 일반적으로 사용되며, 250 MB/s 및 1 GB/s (250 MB/s의 4개 레인)의 전용 처리량을 각각 제공합니다. 결과적으로, 섀시의 계측기 수가 증가함에 따라 총 시스템 처리량도 증대됩니다. 아래의 수치는 다양한 버스의 대역폭과 대기 시간을 설명합니다. 대기 시간은 데이터 전송시에 나타나는 지연을 의미하며 시스템 설계시에 간과되기 쉬운 부분입니다. 대부분의 엔지니어들은 높은 대역폭을 선호하지만, 높은 대기시간은 테스트 시간에 치명적인 영향을 미칠 수 있으므로 시스템 설계시에 고려해야 한다는 점을 잘 인식하고 있습니다.


그림 1. 보편적인 인스트루먼트 버스의 대역폭과 대기시간의 관계

PXI 플랫폼은 고대역폭 PCI 및 PCI Express 버스를 기반으로 하므로 계측기는 온보드 디바이스 메모리가 아닌 소스로(부터) 데이터를 스트리밍합니다. PXI/PXI Express 디지타이저/오실로스코프는 버스의 고대역폭이 PC 메모리 또는 디스크로 최대 1 GB/s의 지속적인 실시간 데이터 전송을 허용하므로 높은 샘플링 속도에서 지속적으로 데이터를 수집할 수 있습니다. 다시 말해, 데이터는 디바이스 메모리에 덮어쓰기되기 전에 패치됩니다.

수집 또는 생성에 대한 병목 현상은 버스 때문이 아니라 실제로 데이터를 시스템 스토리지에 쓰거나 읽는 것 즉, 하드 드라이브 또는 RAID 어레이에 기인합니다. 여기서 다시 한번, 엔지니어들은 샘플링 속도 또는 테스트 시간을 절충하지 않고도 필요로 하는 높은 샘플링 속도로 장시간 동안 데이터를 수집하거나 생성할 수 있게 됩니다. 예를 들어, PXIe-5122 디지타이저와 12-드라이브 RAID 어레이(4 TB 용량)를 사용하면, 두 개의 동시 샘플링 채널에서 2시간 반 이상의 시간동안 최고 100 MS/s 속도로 데이터를 수집할 수 있습니다.

이것이 의미하는 바는 무엇일까요? 여러 어플리케이션 관련 문제는 어플리케이션이 매우 고가의 독자 (proprietary) 시스템을 요구했으므로 해결되지 못했습니다. 그러나 상용 PXI Express를 사용하면 문제를 쉽게 해결할 수 있습니다. 일부 어플리케이션으로는 신호 정보 RF/IF 데이터 스트리밍, 데이터 기록 및 재생, 이미지 센서 및 디스플레이 패널 테스트를 위한 디지털 비디오 생성/스트리밍, 기타 높은 데이터 처리량 어플리케이션 등이 있습니다.

디스크 스트리밍 어플리케이션을 위한 최상의 프로그래밍 사례

단일 스레드에서 멀티 스레드 아키텍처로의 어플리케이션 발전은 매우 까다로운 프로그래밍이라는 문제가 수반되는 것으로 널리 알려져 있습니다. LabVIEW는 그 자체가 멀티 스레드이기 때문에 멀티코어 프로세서를 위한 이상적인 프로그래밍 환경을 제공합니다. 결과적으로, LabVIEW 프로그래머들은 추가적인 코드 필요없이(혹은 최소의 코드만으로) 멀티코어 프로세서의 장점을 얻을 수 있습니다. 멀티 스레드 어플리케이션은 병렬 테스트 및 디스크 스트리밍 어플리케이션에 최상의 이점을 제공하며, 스트리밍 어플리케이션에서 적절한 프로그래밍을 사용하면 PXI Express 계측기의 극대화된 성능을 누릴 수 있습니다. 이 모든 것은 코드 병렬을 통해 이루어집니다.

병렬성의 동일한 규칙이 디스크 스트리밍 어플리케이션 구축에도 적용되며 또한 컴퓨터 프로세서로부터 최상의 성능을 확보하는 데에도 적용됩니다. 스트리밍 어플리케이션에 있어 두 가지의 버스 집약 및 프로세서 집약적인 작업으로는 1) 디지타이저로부터 데이터 수집 2) 파일에 데이터 쓰기가 있습니다. 프로세서 리소스를 더욱 잘 활용하기 위해서 사용자들은 프로세서를 여러 개의 루프로 나눌 수 있습니다. 데이터는 LabVIEW 큐 구조 사용으로 각 루프간에 공유됩니다. 이는 생산자-소비자 알고리즘 구조로 흔히 알려져 있습니다.


[+] 크게 보기
그림 2. 큐 구조를 가진 생산자/소비자 루프 아키텍처

위의 예제에서 최상위 루프 (생산자)는 고속 디지타이저에서 데이터를 수집하고 데이터를 큐로 전달합니다. 하단 루프 (소비자)는 큐로부터 데이터를 읽고 데이터를 하드 디스크에 작성합니다. 알려진 바와 같이 LabVIEW는 PC 메모리의 블록으로 큐를 관리합니다. 본 메모리 블록은 두 개의 루프간 데이터 전달을 위해 임시 저장 FIFO로 사용됩니다. 대부분의 프로그래밍 언어에서, 여러 프로세스 간에 메모리를 공유하는 데에는 엄청난 오버헤드 프로그래밍이 필요합니다. 그러나, LabVIEW는 모든 메모리 액세스를 관리함으로써 읽기-쓰기 경합 조건이 발생하지 않도록 확인합니다. 큐 구조의 실행은 하단의 다이어그램에 도식화되어 있습니다.


그림 3. 큐 구조의 데이터 흐름 프로그래밍 모델

데이터가 디지타이저에서 수집되면 데이터는 큐 구조 (원소 0, 원소 1…원소 n-1, 원소 n)를 사용하여 FIFO 버퍼에 있는 메모리에 위치하게 됩니다. 그림에서처럼 큐는 여러 루프간에 데이터를 전달합니다. 데큐(dequeue) 요소는 동일한 메모리 FIFO에 액세스하여, 동일한 순서로 (원소 0부터 시작) 시작됩니다. LabVIEW는 두 개의 while 루프를 위한 독립적인 실행 스레드를 자동 생성하고, 디스크 스트리밍 어플리케이션은 본 병렬 실행의 혜택을 얻습니다. 그 이유는 하나의 태스크 완성이 전체 프로그래밍 실행에 영향을 미치지 않기 때문입니다. 그러나 이와 대조적으로 대부분의 텍스트 기반 프로그래밍 언어가 사용하고 있는 시퀀스 모델을 사용하면 성능이 현저하게 떨어집니다.

전반적인 어플리케이션 아키텍처 이외에도, 디스크로 스트리밍 또는 디스트로부터 스트리밍을 수행할 때 다음 요소의 영향을 받을 수 있습니다.

  • 바이러스 스캔과 같은 프로그램 실행
  • 하드 드라이브가 그룹 데이터로 포맷된 방식
  • 시스템 복원 또는 휴지통 사용
  • 디스크 조각모음
  • 하드 드라이브상의 파일 위치

이상적인 방법으로, 데이터의 경우 개별 하드 드라이브 (또는 RAID 어레이)를 설정하는 것이 여러 문제 방지에 큰 도움이 됩니다.

디스크로/부터 스트리밍 벤치마크

지금까지 기존 계측 시스템에서 데이터 스트리밍 속도가 버스를 통해 나오는 데이터의 양에 의해 제한받는 것에 대해 설명하였습니다. PXI/PXI Express의 높은 대역폭은 병목 현상을 완전히 해소합니다. 즉, 스토리지 시스템의 읽기 및 쓰기 속도가 새로운 제약의 요소가 되었습니다. 대부분의 PXI 컨트롤러에서 하드 디스크는 약 40 MB/s의 속도를 처리합니다. 그러나 이러한 디스크 속도는 외부 ExpressCard 또는 PXI Express RAID-0 하드 드라이브 구성을 사용하면 대폭 증가될 수 있습니다. RAID (Random Array of Inexpensive Disks) 기술은 빠른 디스크 속도를 위해 여러 하드 디스크 드라이브를 통합하는 편리한 방법입니다. 현재의 RAID-0 하드 디스크 구성은 ExpressCard 시스템에서 최고 140 MB/s, x4 케이블 연결된 PCI Express 구성에서 600 MB/s를 구현합니다.

계측기에 대한 디스크 스트리밍 또는 메모리 스트리밍 처리량을 계산할 때 다음의 등식을 사용합니다.
처리량 = 샘플링 속도 x Bytes/Sample x 채널 개수

NI PXIe-5122 고속 디지타이저 (x4 커넥터)의 경우, 두 개의 14 비트 채널에서의 최대 샘플링 속도 100 MS/s는 버스에서 400 MB/s로 환산됩니다. 이 수치는 x4 PCI Express의 대역폭 한계치 내에 있으므로 우리는 RAID-0 하드 드라이브 구성을 사용하여 디스크 스트리밍 어플리메이션을 처리할 수 있습니다. PXIe-5122 고속 디지타이저를 사용하면, 디스크 스트리밍 어플리케이션을 위한 다음의 벤치마크가 가능하였습니다:


[+] 크게 보기
그림 4. PXIe-5122의 최대 디스크 스트리밍 속도

위의 표에서 살펴본 NI PXIe-5122 벤치마크와 다음의 NI PXIe-6537 및 NI PXIe-5442 벤치마크에 대해, PXI Express 듀얼 코어 컨트롤러는 x4 PXI Express RAID-0 하드 드라이브 구성으로 사용되었습니다. 최대 하드웨어 드라이브 읽기 및 쓰기 속도는 600 MB/s 이상에서 테스트되었고, 위에서 살펴본 테스트 결과에 대한 수집 크기는 40 GB였습니다. 본 테스트에 사용된 NI PXIe-5122 디바이스에는 256 MB 온보드 메모리가 포함되며 PXIe-5442 디바이스에는 512 MB 온보드 메모리가 있습니다.

NI PXIe-6537 고속 디지털 I/O 모듈 (x1 커넥터)의 경우, 32개 모든 채널에서의 최고 클럭 속도 50 MHz의 최대 클럭 속도에서 샘플링은 버스에서 200 MB/s 데이터로 환산됩니다. PXIe-6537 (RAID-0 하드 드라이브 구성)을 사용하면 디스크 스트리밍 및 디스크로부터 스트리밍 어플리케이션을 위한 다음의 벤치마크 결과를 얻을 수 있습니다.


[+] 크게 보기
그림 5. PXIe-6537의 최대 디스크 스트리밍 속도

설명이 필요한 하나의 숫자는 32 또는 그 이상의 채널 디스크 스트리밍 (생성)을 위한 처리량입니다. 낮은 처리량은 PXI Express 대역폭 때문이 아니며 실제로는 컨트롤러 칩셋이 허용하는 최대로 허용가능한 패킷 전송 속도 때문입니다.


[+] 크게 보기
그림 6. NI PXIe-1065와 NI PXIe-8130을 사용한 최대 디스크 스트리밍 속도

컨트롤러 칩셋의 결과로, NI PXIe-1065의 슬롯 7, 8 및 NI PXIe-1062Q의 슬롯 3, 5에서 NI PXIe-6537을 사용하여 데이터를 생성하면 더욱 낮은 최대 출력 속도를 얻을 수 있습니다. NI는 최대한의 생성 성능을 위해 NI PXIe-6537을 NI PXIe-1065의 슬롯 9~14에서 사용하고 NI PXIe-1062Q를 슬롯 4에 사용할 것을 권장합니다.


[+] 크게 보기
그림 7. PXIe-1062Q와 PXIe-8130을 사용한 PXIe-6537 고속 디지털 I/O의 최대 디스크로/부터 스트리밍 속도

아래에 x4 커넥터가 있는 NI PXIe-5442 임의 파형 발생기에 대한 벤치마크가 있습니다. 단일 16 비트 아날로그 출력 채널에서 계측기의 최대 속도인 100 MS/s로 생성할 경우 채널당 200 MB/s가 필요합니다. RAID 어레이로부터 스트리밍할 때, 최대 3개 채널 (full rate)까지 생성할 수 있습니다. 다른 채널을 추가하면 하드 디스크의 대역폭을 능가하게 되지만, 디바이스당 75 MS/s로 스트리밍할 수 있습니다.


[+] 크게 보기
그림 8. NI PXIe-5442의 최대 디스크 스트리밍 속도2

메모리로/부터 스트리밍 벤치마크

디스크 스트리밍 어플리케이션의 변형으로, 고속 디지타이저에서 PXI 컨트롤러의 온보드 메모리로 데이터를 스트리밍할 수 있습니다. 앞서 본 예제 뿐 아니라 이번 시나리오를 통해서 분명히 알 수 있는 사실은 버스가 처리량의 제약 요소가 아니라 RAID-0 어레이의 디스크 쓰기 속도가 병목 현상의 원인이라는 것입니다. 본 실험에서 수집 크기는 사용가능한 PC 메모리의 양에 의해 제한됩니다. 결과적으로 NI PXIe-5122 고속 디지타이저를 사용한 메모리 스트리밍 어플리케이션에서 다음 성능을 얻을 수 있습니다.


[+] 크게 보기
그림 9. PXIe-5122의 최대 메모리 스트리밍 속도

위의 테스트에서, PXI Express 듀얼 코어 컨트롤러 (2 GB 온보드 메모리)가 사용되었습니다. 수집 길이는 채널당 100,000,000 샘플로써 4개 채널에 800 MB의 PC 메모리가 필요합니다. (샘플당 2 바이트) 본 테스트에서 사용된 NI PXIe-5122 디바이스는 256 MB의 온보드 메모리였습니다. 유사한 테스트가 NI PXIe-6537 고속 디지털 I/O 모듈을 통해서도 실행됩니다.


[+] 크게 보기
그림 10. NI PXIe-6537의 최대 메모리 스트리밍 속도

위에서 설명된 것과 동일한 이유로, NI PXIe-6537로 디스크 스트리밍을 할 때 처리량은 PXI Express 대역폭이 아닌 컨트롤 칩셋에 의해 제한됩니다. 디지타이저 테스트와 동일한 설정을 사용하여 채널당 200 MB/s로 NI PXIe-5442에 스트리밍할 수 있습니다. 아래에서 보듯이, 풀 디바이스 샘플 속도로 최대 4개 채널에서 메모리로부터 생성을 수행할 수 있습니다.

결론

PXI 및 PXI Express로 인해 엔지니어들은 시스템의 한계를 극복할 수 있습니다. PXI 플랫폼에서 사용되는 PCI 버스의 고대역폭은 높은 샘플링 속도와 긴 수집 시간을 동시에 가능하게 합니다. PCI Express 기술을 플랫폼에 통합함으로써 최고 1 GB/s 데이터 속도의 훨씬 높은 성능을 구현할 수 있습니다. 잘 짜여진 어플리케이션 디자인은 시스템의 스트리밍 성능을 극대화하는 데에 도움이 되며, 여러 PXI Express 계측기는 PC 메모리 또는 디스크로(부터) 최대 샘플링 속도로 스트리밍할 수 있습니다. 따라서 그 후 전체 데이터 세트를 처리하거나 분석할 수 있게 됩니다.


관련 링크:
PCI Express와 PXI Express용 모듈형 계측기
PXI 시스템에서의 데이터 스트리밍 아키텍쳐
NI-SCOPE 디스크 스트리밍 예제
NI-HSDIO 디스크 스트리밍 예제
NI-HSDIO 디스크 스트리밍 예제
테스트, 측정 및 컨트롤 시스템을 위한 하드 드라이브 선택하기

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

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