피어 투 피어 (P2P) 스트리밍 소개

내용

피어 투 피어 (P2P) 스트리밍 소개

NI 피어 투 피어 (P2P) 스트리밍 기술은 호스트 프로세서 또는 메모리를 통해 데이터를 전송하지 않고 PCI Express를 사용하여 여러 계측기간 직접 포인트 투 포인트 전송을 구현합니다. 따라서 시스템의 디바이스는 다른 시스템 리소스에 영향을 주지 않고 정보를 공유합니다. NI P2P 기술은 PXI Express NI FlexRIO FPGA 모듈 (NI PXIe-7961R, PXIe-7962R, PXIe-7965R), PXI Express 디지타이저 및 벡터 신호 분석기 (NI PXIe-5122, PXIe-5622, PXIe-5663 등)에서 지원됩니다.

그림 1의 시스템에서 NI PXIe-1075 섀시의 NI PXIe-5622 디지타이저는 피어 투 피어 (P2P) 스트리밍을 사용하여 NI PXIe-7965R NI FlexRIO FPGA 모듈로 데이터를 직접 전송합니다. 그 후 FPGA 모듈은 추가 처리를 위해 데이터를 다른 FPGA 모듈로 보냅니다. 섀시 백플레인 스위치는 모듈이 탑재된 슬롯에 직접 링크를 제공하므로, 사용자는 호스트 컨트롤러를 통해 데이터를 전송하거나 CPU 또는 호스트 메모리와 같은 시스템 리소스로 데이터를 전송할 필요가 없습니다.

그림 1. NI PXIe-5622 디지타이저는 데이터를 두 개의 PXI Express NI FlexRIO FPGA 모듈로 스트리밍합니다.

어플리케이션 예제

RF 어플리케이션에 공통적으로 필요한 요소는 실시간 주파수 도메인 트리거입니다. 대부분의 RF 계측기의 트리거는 전력 레벨이지만 본 트리거는 주파수와 별도입니다. 그러나 NI LabVIEW FPGA Module을 사용하여 피어 투 피어 (P2P) 데이터 스트리밍과 처리를 진행할 때 주파수 도메인 트리거를 구축할 수 있습니다. 그림 2의 어플리케이션에서 NI PXIe-5663 벡터 신호 분석기는 피어 투 피어 (P2P) 스트리밍을 사용하여 데이터를 NI FlexRIO FPGA 모듈로 전송하며, 여기에서 데이터는 윈도윙되고 주파수 도메인으로 변환된 후 마스크와 비교됩니다. 데이터가 본 마스크를 상회하면, FPGA 모듈은 디지털 트리거를 PXI 백플레인에 보냅니다. NI PXIe-5663이 트리거를 수신하면, 일반 수집 메모리를 사용하여 이전 트리거 (pretrigger) 샘플을 포함한 데이터 기록을 캡쳐합니다. 그 후 사용자는 추가 처리 또는 저장을 위해 NI-RFSA 드라이버를 통해 호스트에서 기록에 접근할 수 있습니다.

그림 2. 본 어플리케이션에서 NI FlexRIO FPGA Module은 NI PXIe-5663 벡터 신호 분석기에 주파수 도메인 트리거를 추가합니다.

피어 투 피어 (P2P) 시스템 프로그래밍

피어 투 피어 데이터 (P2P) 스트리밍 프로그래밍은 NI-P2P 드라이버를 사용하면 매우 간단합니다. 그림 3의 어플리케이션에서 FPGA No. 1은 데이터를 FPGA No. 2로 보냅니다. LabVIEW FPGA에서 간단한 피어 투 피어 리더 및 라이터 노드는 데이터 교환을 위해 FIFO 기반 인터페이스를 제공합니다. 본 노드는 DMA 및 로컬 FPGA FIFO와 유사합니다. 데이터 교환이 가능하기 전에, 호스트는 반드시 FPGA No. 1의 라이터 스트림을 호스트 (그림 3)의 NI-RIO와 NI-P2P API를 통해 FPGA No. 2의 리더 스트림으로 연결해야 합니다. 구성에 따라, 데이터 교환을 위해 피어 투 피어 스트림을 연결하는 하나 또는 두 개의 VI가 필요합니다.

그림 3. 두 개의 NI FlexRIO FPGA Module과 관련 소프트웨어 간의 피어 투 피어 스트리밍

피어 투 피어 시스템 벤치마크

NI 피어 투 피어 (P2P) 기술을 통해 800 MB/s 이상의 데이터 스트리밍 속도가 가능합니다. 최대 전송량은 스트리밍 모듈, 섀시, 컨트롤러 및 컨트롤러에 따라 달라집니다. 일반적으로 가장 낮은 스트리밍 속도는 최상의 P2P 대역폭입니다.

섀시

모든 데이터는 하나의 모듈에서 다른 모듈로 스트리밍을 위해 섀시를 거쳐야 하므로 섀시는 대역폭을 결정하는 중요한 역할을 합니다. 섀시 백플레인의 PCI Express 스위치는 섀시를 통해 데이터를 라우팅하며 피어 투 피어 데이터 스트리밍을 구현하는 고대역폭 포인트 투 포인트 연결을 제공합니다. 모듈이 동일한 PCI Express 스위치에 직접 연결된 섀시 슬롯에 있다면 그림 4처럼 대역폭은 스위치에 의존합니다.

그림 4. 섀시에 배치된 모듈은 단일 PCI Express 스위치를 통해 모든 데이터를 라우팅합니다.

표 1은 섀시에 있는 PCI Express 스위치의 최고 대역폭입니다. 본 대역폭은 동일 스위치에 연결된 두 개 슬롯을 통해 얻을 수 있으며, 스위치당 여러 개의 연결이 주어진 속도에서 지원됩니다.

 

섀시 슬롯 최고 피어 투 피어 (P2P) 속도
NI PXIe-1075 전체 >800 MB/s
NI PXIe-1082Q 전체 >800 MB/s
NI PXIe-1065 7, 8 컨트롤러에 따라 달라짐
NI PXIe-1065 9-14 800 MB/s 이하
NI PXIe-1062Q 3-5 컨트롤러에 따라 달라짐

표 1. PXI Express 섀시 P2P 대역폭

컨트롤러

P2P 스트리밍 시스템의 모듈이 섀시 백플레인의 동일한 PCI Express 스위치에 연결되어 있지 않다면 데이터는 CPU 또는 메모리가 아닌 호스트 컨트롤러의 온보드 스위치 또는 칩셋을 통해 반드시 전달되어야 합니다. 본 구성은 그림 5에 설명되어 있습니다.

그림 5. 섀시에 배치된 모듈은 호스트 컨트롤러를 통해 데이터를 라우팅합니다.

표 2는 PCI Express 스위치 또는 특정 컨트롤러 칩셋의 최대 대역폭을 목록으로 나타낸 것입니다. 참고로 본 수치는 컨트롤러 내외로의 특정한 부분을 통한 총 대역폭을 나타냅니다. 여러 개의 P2P 스트림이 동일한 부분에 존재한다면 반드시 대역폭을 공유해야 합니다.

 

컨트롤러 스위치간 최대 속도 참고
NI PXIe-8130 >600 MB/s 칩셋에 의해 제한됨
NI PXIe-8106 >800 MB/s 4번째 링크는 지원되지 않음 (NI PXIe-1075와 NI PXIe-1082 섀시의 최우측 스위치로/부터)
NI PXIe-8105 800 MB/s 이하 스위치에 의해 제한됨
NI PXIe-8101/02/08 지원되지 않음 스위치 배후의 P2P는 여전히 작동함
NI PXIe-8370 800 MB/s 이하 스위치에 의해 제한됨
NI PXIe-8375 >800 MB/s  

표 2. PXI Express 컨트롤러 P2P 대역폭

모듈

섀시와 컨트롤러 구성이 특정 대역폭을 지원한다면, PXI Express 모듈은 얻을 수 있는 최고의 대역폭을 스스로 결정합니다. 아래는 다양한 P2P 가능 디바이스에 대한 벤치마크와 구성 세부사항입니다.

NI PXIe-7965R, PXIe-7962R, PXIe-7961R NI FlexRIO FPGA Modules: 본 PXI Express NI FlexRIO FPGA 모듈은 모듈 내외로 800 MB/s 이상의 데이터 스트리밍이 가능합니다. 양 방향 동시 스트리밍시 FPGA 모듈은 방향당 700 MB/s 이상의 속도 또는 1.4 GB/s 이상의 총 데이터 속도를 낼 수 있습니다. 본 데이터는 단일 스트림 또는 최대 16개 개별 스트림으로 구성되며, 디바이스 각 DMA 채널당 하나의 스트림입니다. 스트림의 개수와 대역폭은 디바이스 FPGA의 구성과 프로그래밍에 의해 결정됩니다.

NI PXIe-5622 IF 디지타이저: NI PXIe-5622는 최고 300 MB/s의 데이터를 생성하는 150 MS/s, 16-비트 디지타이저입니다. P2P 스트리밍을 위해 디지타이저에는 온보드 메모리로의 병렬 데이터 경로에 위치한 단일 라이터 엔드포인트가 있습니다. 수집된 데이터를 엔드포인트에서 작성하여 FPGA 타겟으로 스트리밍하거나 온보드 메모리를 통해 호스트로 보낼 수 있습니다. NI PXIe-5622의 주요 기능은 구적 디지털 다운변환 (DDC)가 있는 온보드 신호 처리 (OSP)로써 75 MS/s 또는 250 MB/s에서 복합 I/Q 형태로 최고 60 MHz의 IF를 제공합니다. 본 모드에서 샘플은 P2P 스트림에서 샘플에 의해 인터리브되고 I 샘플 후에 Q 샘플이 뒤따릅니다.

그림 6. NI PXIe-5622 IF 디지타이저로 P2P 스트리밍

피어 투 피어 (P2P) 데이터 스트림은 확대 또는 교정을 포함하지 않은 원시 2진 포맷입니다. 정규화 계수는 NI-SCOPE에 의해 쿼리되며, 볼트로 확대없이 2진 데이터 교정을 위해 적용됩니다. 정규화된 데이터는 다음의 조건을 따르므로 사용자는 후에 2진 정보를 해독하거나 이를 볼트로 확대할 수 있습니다.

  • 최대 (+) 2진 값은 수직 범위의 최대 (+) 전압으로 맵핑됩니다.
  • 최대 (-) 2진 값은 수직 범위의 최대 (-) 전압으로 맵핑됩니다.
  • 수직 범위는 가능한 2진 값에서 균일하게 배분됩니다.

또는 데이터를 단일 단계로 교정하고 확대하기 위해 확대 계수를 쿼리하고 적용할 수 있습니다. 자세한 내용은 고속 디지타이저 도움말을 참조하십시오.

NI PXIe-5122 고해상도 디지타이저: NI PXIe-5122는 스트림당 채널별 최고 200 MB/s로 데이터를 생성하는 100 MS/s의 2-채널 14-비트 디지타이저입니다. P2P 스트리밍을 위해 디지타이저에는 온보드 메모리로의 병렬 데이터 경로에 위치한 두 개의 라이터 엔드포인트가 있습니다. 수집된 데이터를 엔드포인트에 작성하거나 이를 온보드 메모리를 통해 호스트로 보낼 수 있습니다.

그림 7. NI PXIe-5122 고해상도 디지타이저로 P2P 스트리밍

표 3은 유효한 스트리밍 구성의 예입니다.

표 3. 유효한 스트리밍 구성

참고로 PXI Express x4 버스 대역폭을 초과하는 속도로 데이터를 생성하도록 모듈을 구성할 수도 있는데, 이 때 데이터 오버플로우가 발생합니다. 예를 들어, 표 3의 마지막 구성은 풀 속도 (총 800 MB/s)로 샘플링할 때 스트림당 400 MB/s입니다. 또한 데이터를 호스트 PC로 보낼 경우, 버스 대역폭을 초과합니다. 디지타이저 샘플링 속도를 줄이면 데이터 오버플로우를 방지할 수 있습니다.

피어 투 피어 (P2P) 데이터 스트림은 확대 또는 교정을 포함하지 않은 원시 2진 형태입니다. 정규화 계수는 NI-SCOPE에 의해 쿼리되며, 볼트로 확대없이 2진 데이터 교정을 위해 적용됩니다. 정규화된 데이터는 다음의 조건을 따르므로, 사용자는 후에 2진 정보를 해독하거나 이를 전압으로 확대할 수 있습니다.

  • 최대 (+) 2진 값은 수직 범위의 최대 (+) 전압으로 맵핑됩니다.
  • 최대 (-) 2진 값은 수직 범위의 최대 (-) 전압으로 맵핑됩니다.
  • 수직 범위는 가능한 2진 값에서 균일하게 배분됩니다.

또는 데이터를 단일 단계로 교정하고 스케일링하기 위해 스케일링 계수를 쿼리하고 적용할 수 있습니다. 자세한 내용은 고속 디지타이저 도움말을 참조하십시오.