P2P 스트리밍 소개

내용

P2P 스트리밍 소개

NI P2P(P2P) 스트리밍 기술은 호스트 프로세서 또는 메모리를 통해 데이터를 전송하지 않고 PCI Express를 사용하여 여러 계측 기간 직접 포인트 투 포인트 전송을 구현합니다. 따라서 시스템의 디바이스는 다른 시스템 리소스에 영향을 주지 않고 정보를 공유합니다. NI P2P 기술은 PXI Express FlexRIO FPGA 모듈, FlexRIO 코프로세서 모듈, 오실로스코프/디지타이저, 임의 웨이브폼 생성기, 벡터 신호 분석기, 벡터 신호 트랜시버, 고속 직렬 모듈, 및 R 시리즈 디바이스의 특정 모델에서 지원됩니다.

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

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

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

 

어플리케이션 예제

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

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

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

 

P2P 시스템 프로그래밍

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

두 개의 FlexRIO FPGA 모듈 및 관련 소프트웨어 간의 P2P 스트리밍

그림 3. 두 개의 FlexRIO FPGA 모듈 및 관련 소프트웨어 간의 P2P 스트리밍입니다.

 

P2P 시스템 벤치마킹

NI P2P 기술을 통해 한 방향에서 최대 7GB/s의 데이터 스트리밍 속도가 가능합니다.  최대 처리량은 스트리밍 모듈, 섀시, 컨트롤러, 및 컨트롤러(구성이 보증하는 경우)에 따라 달라집니다. 일반적으로, 가장 낮은 스트리밍 속도는 최상의 P2P 대역폭입니다.

P2P 전송은 매우 짧은 대기 시간을 갖도록 설계되었지만, 이는 시스템 구성에 따라 차이가 생길 수 있습니다.  FIFO와 PCIe 버스를 통해서만 스트리밍할 때 일반적인 대기 시간은 약 2-4μs이지만, 다른 버스 트래픽으로 인해 가끔 수십 μs로 급증할 가능성이 있습니다.  디지타이저에서 스트리밍할 경우 일반적으로 약 5μs의 대기 시간이 예상되며, 임의 웨이브폼 생성기로 스트리밍할 경우 온보드 버퍼링으로 인해 약 10~20μs의 대기 시간이 발생할 수 있습니다.

PXIe-5622 디지타이저와 같은 온보드 신호 처리가 있는 디바이스로 스트리밍할 경우, 추가 필터와 기타 처리 때문에 추가로 최대 수백 μs의 지연 시간이 발생할 수 있습니다.  마지막으로 시스템의 성능을 평가할 때 FlexRIO FPGA 모듈에서 작동하는 사용자 코드의 대기 시간도 중요하게 고려해야 합니다.

섀시

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

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

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

테이블 1은 섀시에 있는 PCI Express 스위치의 최고 대역폭입니다. 본 대역폭은 동일 스위치에 연결된 두 개 슬롯을 통해 얻을 수 있으며, 스위치당 여러 개의 연결이 주어진 속도에서 지원됩니다.  섀시 백플레인 아키텍처 및 대역폭은 각 스펙 문서에서 확인할 수 있습니다.

 

섀시

슬롯

최고 P2P 속도(단방향)

PXIe-1062Q

3-5

컨트롤러에 따라 달라짐

PXIe-1065/1066DC 7, 8

컨트롤러에 따라 달라짐

PXIe-1065/1066DC 9-14

800MB/s 이하

PXIe-1071

전부

컨트롤러에 따라 달라짐

PXIe-1073

전부

>200MB/s

PXIe-1075

전부

>800MB/s

PXIe-1078

2, 3, 4

컨트롤러에 따라 달라짐

PXIe-1078

5-9

>200MB/s

PXIe-1082Q

전부

>800MB/s

PXIe-1083 전체

460 MB/s

PXIe-1084

전부

500MB/s

PXIe-1085

전부

3.6GB/s

PXIe-1085 Gen 3

전부

7.2GB/s

PXIe-1086

전부

3.6GB/s

PXIe-1088

4,6,8

컨트롤러에 따라 달라짐

PXIe-1088

2,3,5,7,9

500MB/s

PXIe-1090 전체

895 MB/s

PXIe-1092

전부

7.2GB/s

PXIe-1095

전부

7.2GB/s

테이블 1. PXI Express 섀시 P2P 대역폭

컨트롤러

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

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

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

테이블 2는 PCI Express 스위치 또는 특정 컨트롤러 칩셋의 최대 대역폭을 목록으로 나타낸 것입니다. 참고로 본 수치는 컨트롤러 내외로의 특정한 부분을 통한 총 대역폭을 나타냅니다. 여러 개의 P2P 스트림이 동일한 부분에 존재한다면, 반드시 대역폭을 공유해야 합니다. 또한 섀시 PCIe 생성 및 레인 수도 최대 대역폭에 영향을 미칩니다. 아래 값은 섀시가 컨트롤러와 동일한 PCIe 세대이거나 더 최신 버전이라고 가정합니다.

컨트롤러 스위치간 최대 속도 노트
PXIe-8135 3.4GB/s  
PXIe-8133 1.6GB/s  
PXIe-8130 >600MB/s 칩셋에 의해 제한됨
PXIe-8106 >800MB/s 4번째 링크는 지원되지 않음(NI PXIe-1075 및 NI PXIe-1082 섀시의 최우측 스위치로/부터)
PXIe-8105 800MB/s 이하 스위치에 의해 제한됨
PXIe-8101/8102/8108 지원하지 않음 스위치 뒤의 P2P는 여전히 작동함
PXIe-8301 6.4GB/s(Gen 3 x8)
3.2GB/s(Gen 3 x4)
 
PXIe-8360/8370 800MB/s 이하 스위치에 의해 제한됨
PXIe-8375 >800MB/s  
PXIe-8381 3.2GB/s(Gen 2 x8)
1.6GB/s(Gen 2 x4)
 
PXIe-8398/8399 6.4GB/s(Gen 3 x8)
3.2GB/s(Gen 3 x4)
 
PXIe-8821 500MB/s  
PXIe-8840 2GB/s  
PXIe-8861 6.4GB/s(Gen 3 x8)
3.2GB/s(Gen 3 x4)
 
PXIe-8880/8881 6GB/s(Gen 3 x8)
3GB/s(Gen 3 x4)
 

테이블 2. PXI Express 컨트롤러 P2P 대역폭

모듈

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

PXIe-7976R, PXIe-7975R, PXIe-7972R, PXIe-7971R FlexRIO FPGA 모듈: 이 PXI Express FlexRIO FPGA 모듈은 1.5GB/s의 속도로 모듈 내부 또는 외부로 데이터를 스트리밍할 수 있습니다. 스트림의 개수 및 대역폭은 디바이스 FPGA의 구성 및 프로그래밍에 의해 결정됩니다. PXIe-7976은 PCIe Gen 2 x8 인터페이스를 사용하여 최대 3.2GB/s의 속도로 모듈 내부 또는 외부로 스트리밍할 수 있습니다.

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

PXIe-5622 IF 디지타이저: PXIe-5622는 최고 300MB/s의 데이터를 생성하는 150MS/s, 16비트 디지타이저입니다. P2P 스트리밍을 위해, 디지타이저에는 온보드 메모리로의 병렬 데이터 경로에 위치한 한 개의 발신자 끝포인트가 있습니다. 수집된 데이터를 끝포인트에서 작성하여 FPGA 타겟으로 스트리밍하거나 온보드 메모리를 통해 호스트로 보낼 수 있습니다. PXIe-5622의 주요 기능은 75MS/s 또는 150MB/s에서 복합 I/Q 데이터 형태로 최대 60MHz의 IF 대역폭을 제공하는 구적 디지털 다운변환(DDC)이 있는 내장 신호 처리(OSP)입니다. 이 모드에서 샘플은 P2P 스트림에 샘플별로 끼워 넣어지고 I 샘플이 Q 샘플 다음으로 이어집니다.

PXIe-5622 IF 디지타이저로 P2P 스트리밍

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

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

PXIe-5122 고분해능 디지타이저로 P2P 스트리밍

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

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

유효한 스트리밍 구성

테이블 3. 유효한 스트리밍 구성

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

모듈 모델 최고 P2P 속도  
임의 웨이브폼 생성기
  PXIe-5450(Rev. C 이상) >800MB/s
  PXIe-5451 >800MB/s
  PXIe-5745 7GB/s
스코프/디지타이저
  PXIe-5122** 800MB/s
  PXIe-5160 800MB/s
  PXIe-5162 800MB/s
  PXIe-5164*** 3.2GB/s
  PXIe-5170*** 3.2GB/s
  PXIe-5171*** 3.2GB/s
  PXIe-5172*** 3.2GB/s
  PXIe-5622** 800MB/s
  PXIe-5624 3.2GB/s
  PXIe-5763 7GB/s
  PXIe-5764 7GB/s
  PXIe-5774 7GB/s
  PXIe-5775 7GB/s
RF 신호 분석기
  PXIe-5663*  
  PXIe-5663E*  
  PXIe-5665*  
  PXIe-5667  
  PXIe-5668R  
RF 신호 생성기
  PXIe-5673*  
  PXIe-5673E*  
RF 벡터 시그널 트랜시버
  PXIe-5644R***  
  PXIe-5645R***  
  PXIe-5646R***  
  PXIe-5840***  
FLEXRIO FPGA 모듈
  PXIe-7961R >800MB/s
  PXIe-7962R >800MB/s
  PXIe-7965R >800MB/s
  PXIe-7966R >800MB/s
  PXIe-7971R 1.5GB/s
  PXIe-7972R 1.5GB/s
  PXIe-7975R 1.5GB/s
  PXIe-7976R 3.2GB/s
FlexRIO 코프로세서 모듈
  PXIe-7911 7GB/s
  PXIe-7912 7GB/s
  PXIe-7915 7GB/s
고속 시리얼 모듈
  PXIe-6591R 3.2GB/s
  PXIe-6592R 3.2GB/s
  PXIe-7902 3.2GB/s
NI R 시리즈 디바이스
  PXIe-7820R 500MB/s
  PXIe-7821R 500MB/s
  PXIe-7822R 500MB/s
  PXIe-7846R 500MB/s
  PXIe-7847R 500MB/s
  PXIe-7856R 500MB/s
  PXIe-7857R 500MB/s
  PXIe-7858R 500MB/s
  PXIe-7861 500MB/s
  PXIe-7862 500MB/s
  PXIe-7865 500MB/s
  PXIe-7866 500MB/s
  PXIe-7867 500MB/s
  PXIe-7868 500MB/s
IF 송수신기
  PXIe-5785 7GB/s

 

테이블 4. 지원되는 PXI Express 모듈의 최대 P2P 대역폭입니다.

 

* 위에서 언급한 RF 신호 분석기는 RF 다운컨버터, 로컬 오실레이터 및 디지타이저의 세 가지 요소로 구성됩니다. 디지타이저는 P2P 스트리밍을 수행하는 구성 요소입니다. 이러한 RF 신호 분석기에 사용되는 디지타이저는 PXIe-5622입니다. 마찬가지로 임의 웨이브폼 생성기는 RF 신호 생성기에 대해 P2P 스트리밍을 수행합니다.

 

** PXIe-5122 및 PXIe-5622에는 NI-SCOPE 3.6에서 활성화된 P2P 스트리밍을 활성화하기 위한 최신 펌웨어 버전이 필요합니다. PXIe-5122 또는 PXIe-5622 디바이스의 펌웨어를 업데이트하는 방법은 NI-SCOPE 3.6 Readme의 단계를 따라주십시오.

 

*** 소프트웨어 설계 인스트루먼트는 인스트루먼트 드라이버에서 P2P 스트리밍을 지원하지 않을 수도 있습니다. 그러나 이 기능은 인스트루먼트 드라이버 FPGA의 확장을 통해 또는 디바이스의 인스트루먼트 설계 라이브러리를 사용하여 프로그래밍할 때 사용할 수 있습니다. 자세한 내용은 디바이스별 문서를 참조하십시오.

교정

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

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

참고: 최대 및 최소 바이너리 값은 사용자가 ±10V를 지정하더라도 NI-SCOPE 프로그래밍된 수직 범위(예: ±11V)에 걸쳐 있습니다. 이는 사용자가 범위를 오버슛보다 작게 설정해도 오버슛을 캡처하기 위한 것입니다.

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

 

지원 디바이스

다음 NI 하드웨어 목록은 P2P 스트리밍을 지원합니다.

섀시
  PXIe-1062Q
  PXIe-1065/1066DC
  PXIe-1071
  PXIe-1073
  PXIe-1075
  PXIe-1078
  PXIe-1082
  PXIe-1083
  PXIe-1084
  PXIe-1085
  PXIe-1085 Gen 3
  PXIe-1086
  PXIe-1088
  PXIe-1090
  PXIe-1092
  PXIe-1095
컨트롤러
  PXIe-8105
  PXIe-8106
  PXIe-8130
  PXIe-8133
  PXIe-8135
  PXIe-8821
  PXIe-8840
  PXIe-8861
  PXIe-8880/8881
원격 컨트롤러
  PXIe-8301
  PXIe-8360 (PCIe-8361/8362)
  PXIe-8370 (PCIe-8371/8372)
  PXIe-PCIe-8375
  PXIe-PCIe 8381
  PXIe-PCIe 8398/8399
임의 웨이브폼 생성기
  PXIe-5450(Rev. C 이상)
  PXIe-5451
  PXIe-5745
스코프/디지타이저
  PXIe-5122**
  PXIe-5160
  PXIe-5162
  PXIe-5164***
  PXIe-5170***
  PXIe-5171***
  PXIe-5172***
  PXIe-5622**
  PXIe-5624R
  PXIe-5763
  PXIe-5764
  PXIe-5774
  PXIe-5775
RF 신호 분석기
  PXIe-5663*
  PXIe-5663E*
  PXIe-5665*
  PXIe-5667
  PXIe-5668R
RF 신호 생성기
  PXIe-5673*
  PXIe-5673E*
RF 벡터 시그널 트랜시버
  PXIe-5644R***
  PXIe-5645R***
  PXIe-5646R***
  PXIe-5840***
NI FlexRIO FPGA 모듈
  PXIe-7961R
  PXIe-7962R
  PXIe-7965R
  PXIe-7966R
  PXIe-7971R
  PXIe-7972R
  PXIe-7975R
  PXIe-7976R
NI FlexRIO 코프로세서 모듈
  PXIe-7911
  PXIe-7912
  PXIe-7915
NI 고속 시리얼 모듈
  PXIe-6591R
  PXIe-6592R
  PXIe-7902
NI R 시리즈 디바이스
  PXIe-7820R
  PXIe-7821R
  PXIe-7822R
  PXIe-7846R
  PXIe-7847R
  PXIe-7856R
  PXIe-7857R
  PXIe-7858R
  PXIe-7861
  PXIe-7862
  PXIe-7865
  PXIe-7866
  PXIe-7867
  PXIe-7868
IF 송수신기
  PXIe-5785

테이블 5.  NI P2P 지원 하드웨어

 

* 위에서 언급한 RF 신호 분석기는 RF 다운컨버터, 로컬 오실레이터 및 디지타이저의 세 가지 요소로 구성됩니다.  디지타이저는 P2P 스트리밍을 수행하는 구성 요소입니다.  이러한 RF 신호 분석기에 사용되는 디지타이저는 PXIe-5622입니다.  마찬가지로 임의 웨이브폼 생성기는 RF 신호 생성기에 대해 P2P 스트리밍을 수행합니다.
 

** PXIe-5122 및 PXIe-5622에는 NI-SCOPE 3.6에서 활성화된 P2P 스트리밍을 활성화하기 위한 최신 펌웨어 버전이 필요합니다. PXIe-5122 또는 PXIe-5622 디바이스의 펌웨어를 업데이트하는 방법은 NI-SCOPE 3.6 Readme의 단계를 따라주십시오.
 

*** 소프트웨어 설계 인스트루먼트는 인스트루먼트 드라이버에서 P2P 스트리밍을 지원하지 않을 수도 있습니다. 그러나 이 기능은 인스트루먼트 드라이버 FPGA의 확장을 통해 또는 디바이스의 인스트루먼트 설계 라이브러리를 사용하여 프로그래밍할 때 사용할 수 있습니다. 자세한 내용은 디바이스별 문서를 참조하십시오.