學術專區 關於NI NI活動訊息 NI Developer Zone 技術支援服務 使用者解決方案 產品與服務 連絡NI MyNI

檔案類型: 線上教學
接受 NI 支援: 是
發表日期: May 27, 2009


意見反應




相關目錄

相關連結 - Developer Zone

相關連結 - Products and Services

高速資料串流:程式設計與比較基準

0 評分 | 0.00 之 5
閱讀語言 | 列印 | PDF

概觀

PXI Express 正改變著工程師設計系統的方式。此份白皮書將討論高速資料串流的技術、最大化系統效能的應用,還有 Stream-to-Disk 與 Stream-to-Memory 應用的資料傳輸率比較基準。

介紹

串流,是以高傳輸率從儀器傳輸資料,或傳輸資料至儀器的動作,以維持連續性的擷取或產生作業。此意謂任何串流應用的效能,均將受限於傳輸資料的速度或大小。許多工程師雖針對多種應用利用「串流」技術,卻無法達到所需的產生與擷取速度。在這種情況下,工程師只得透過匯流排傳輸資料,並妥協於較低的取樣率;或以儀器內建記憶體所能處理的短時間中,以所需的高速度進行取樣。此2 種方式均無法達到所需的效能。

如示波器、邏輯分析器,與任意波形產生器的傳統桌上型儀控系統,均已建置了有限的資料串流功能。雖然許多儀器具有極高的取樣率與高頻寬,但卻忽略了介接至電腦並回傳資料的匯流排。匯流排可大幅增加整體的測試時間。舉例來說,大部分以獨立示波器所執行的擷取作業均屬有限。擷取時間是由示波器內建的總記憶體所決定 (獨立的任意波形產生器亦具有相同限制;為進行產生所下載至內建記憶體的波形除外)。在完成擷取之後,透過乙太網路或更普遍的 GPIB,將資料傳輸至控制的 PC。以事件觸發之後 1GS/s 取樣率的資料為例,如果裝置每通道內建 256 MB 記憶體,則所有記憶體約於 250 ms 後塞滿擷取資料。若以 GPIB 匯流排 (具有約 1 MB/s 頻寬) 介接儀器,使用者則必須等待約 4 分半鐘 (250 秒),讓資料傳輸至電腦以進行分析。現在相較於具有相同取樣率與內建記憶體的 NI 示波器,則將透過 80 倍以上頻寬的 PCI/PXI 匯流排,於 3 秒之內進行資料傳輸。PCI Express/PXI Express 匯流排可達到更快的資料傳輸率。

串流技術

PXI Express 是以 PCI Express 技術為基礎,針對每儀器提供專屬頻寬。PCI Express 提供 1 倍、4 倍、8 倍,與 16 倍的連結,以極低的潛時提供每通道 (Lane) 250 MB/s 輸出率。1 倍與 4 倍為儀器層級硬體的最普遍選擇,提供 250 MB/s 與 1 GB/s (4 個通道為 250 MB/s) 的專屬輸出率。因此,當機箱中的儀器數量增加,總系統輸出率亦將跟著增加。下方圖表顯示多種匯流排頻寬與其潛時之間的關係。潛時 (Latency) 代表所有資料傳輸中發生的延遲,並常常於系統設計階段即遭到忽略。許多人僅要求較高的頻寬,卻沒想到高潛時亦為測試時間的決定性要素;並應於系統設計時即納入考量。

 

http://zone.ni.com/cms/images/devzone/tut/BW

1. 常見儀器匯流排的頻寬與潛時

由於 PXI 平台是以高頻寬的 PCI 與 PCI Express 匯流排為基礎,因此可讓儀器串流入或串流出相關資料,並達到高於裝置內建記憶體的效能。由於高頻寬的匯流排可於最高 1 GB/s 傳輸率,即時傳輸資料至電腦記憶體,因此 PXI/PXI Express 示波器可透過高取樣率進行連續擷取;意謂裝置記憶體中的資料遭到覆寫之前,即可進行讀取。

擷取或產生的瓶頸已不在於匯流排,而在於讀取或寫入資料至系統儲存裝置– 硬碟或RAID 陣列。同樣的,此意謂著工程師必須以所需的高取樣率,長時間擷取或產生資料;不需妥協於較差的取樣率或測試時間。舉例來說,若使用PXIe-5122 示波器與4 TB 容量的12 碟RAID 陣列,則可使用同步取樣的雙通道,以最高100 MS/s 取樣率進行超過  2.5 小時的擷取。

這代表什麼呢?由於許多應用挑戰均需要昂貴的系統,所以幾乎無法解決之前的挑戰。但是現在只要透過 PXI Express,這些挑戰即可迎刃而解。某些應用包含訊號情報 (Signal intelligence) 中串流的 RF/IF 資料、資料記錄與播放、影像感測器的數位視訊產生/串流和顯示面板測試,與其他高資料傳輸率的應用。

Stream-to-Disk 應用的最佳程式設計

普遍認為,從單執行緒到多執行緒架構的應用,實為重要的程式設計挑戰。由於 LabVIEW 應用本身即為多執行緒,正巧提供多核心處理器的理想程式設計環境。因此,LabVIEW 工程師僅須少量的程式碼,即可利用多核心處理器。針對平行測試與 Stream-to-Disk 應用,多執行緒應用提供了最大優勢。而且於串流應用中使用合適的程式設計,將讓 PXI Express 儀器達到最大效能。優勢最後即為平行化的程式碼。

平行機制的相同規則,則可套用至建立 Stream-data-to-Disk 應用,或達到電腦處理器的最高效能。在串流應用中,耗用大量匯流排效能與處理器效能的 2 個主要作業為:1) 自示波器擷取資料與 2) 寫入資料至檔案。依此 2 主要作業,可將程序分為多個迴圈。透過 LabVIEW 佇列架構,可於每迴圈之間共用資料;即為一般所稱 Producer-Consumer 運算式架構。


 
 
[+] 放大圖

2. 包含佇列結構的 Producer/Consumer 迴圈架構

 

在圖 2 範例中,上方迴圈 (Producer) 從高速示波器擷取資料,並將之傳送至佇列。下方迴圈 (Consumer) 則從佇列讀取資料,並將之寫入至硬碟。在背景中,LabVIEW 則處理佇列為分配 PC 記憶體的區塊。此記憶體區塊則為 2 個迴圈之間傳送資料的暫存 FIFO。在大多數的程式設計語言中,若要共用多重程序之間的記憶體,則需大量的耗用 (overhead) 程式設計。然而,LabVIEW 可處理所有的記憶體存取作業,確保不會發生 Read-Write Race 情況。執行佇列架構可用下方圖表顯示:

http://zone.ni.com/cms/images/devzone/tut/Queue 
圖 3. 佇列架構的資料流程式設計模型

 

當從示波器擷取資料,則將透過佇列架構 (element 0element 1…element N-1element N) 儲存至 FIFO 緩衝區的記憶體中。如同圖表所示,佇列可於多重迴圈之間傳送資料。移除佇列 (Dequeue) 的要素將存取相同的記憶體 FIFO,並於相同的階次 (開始於 element 0) 中將之取下 (Pull off)。LabVIEW 可針對 2 個 While 迴圈自動建立獨立的執行緒;由於完成單一作業並不會阻擋整個程式的執行,則 Stream-to-disk 應用將擁有此平行執行的優點。相對來說,若使用大部分均以文字程式語言佈署的序列模型,則將大幅降低效能。

在整體應用架構之外,Stream-to-DiskStream-from-Disk 的傳輸率將受到多種因素所影響。某些降低磁碟讀取或寫入速度的因素,可能為 Virus scan 的背景程式、硬碟格式化以收集資料的方法、使用系統回覆或資源垃圾桶、磁碟重組,甚至可能為檔案在硬碟中的位置。理想狀態來說,針對資料劃分專屬的硬碟 (或 RAID 陣列),將可大幅改善這些問題。

Stream to/from Disk 比較基準

在較早的討論中所提,傳統儀控系統的資料串流速度,受限於能通過匯流排的資料總數。而 PXI/PXI Express 的高頻寬則完全改變了瓶頸 – 儲存系統的讀取與寫入速度,則成為新的限制要素。在大部分的 PXI 控制器中,硬碟可達約 40 MB/s 的速度。但可透過外部的 ExpressCard 或 PXI Express RAID-0硬碟設定,大幅提升此磁碟速率。RAID (Random Array of Inexpensive Disks) 技術可輕鬆整合多個硬碟,以達較快的磁碟速度。目前的 RAID-0 硬碟設定,針對 ExpressCard 系統可達最高 140 MB/s;針對 4 倍的 PCI Express 連線設定可達最高 600 MB/s。

當計算儀器的 Stream-to-DiskStream-to-Memory 輸出率時,可使用下列方程式:
輸出率(Throughput) = 取樣率(Sampling rate) x Bytes/Sample x 通道數

針對 NI PXIe-5122 高速示波器來說,此模組具有 1x4 接頭、雙 14 位元通道可達最高 100 MS/s 取樣率,透過匯流排編譯為 400 MB/s 的資料。在 x4 PCI Express 的限制頻寬中,此表現算是相當不錯。因此可使用 RAID-0 硬碟設定,進行 Stream-to-Disk 的應用。使用 PXIe-5122 高速率波器,則可得出下列 Stream-to-Disk 應用的基準點:
 

                  
[+] 放大圖

4. PXIe-5122 高速示波器的最高 Stream-to-Disk 傳輸率

針對上方的 PXIe-5122 基準點,與下方的 PXIe-6537 基準點,均為 PXI Express 雙核心控制器搭配使用 x4 PXI Express RAID-0 硬碟設定。最高的硬碟寫入速度為 650 MB/s,而擷取檔案大小的測試結果為 40 GB。此測試中的 PXIe-5122 裝置則搭配 256 MB 的內建記憶體。

NI PXIe-6537 高速數位 I/O 模組則搭配 x1 接頭,全部 32 個通道可達最高 50 MHz 取樣時脈,並透過匯流排編譯為 200 MB/s 的資料。PXIe-6537 高速數位 I/O 模組搭配使用 RAID-0 硬碟設定,則可達到下列 Stream-to-DiskStream-from-Disk 應用的基準點:
 


[+] 放大圖

  圖 5. PXIe-6537 高速數位I/O 的最高 Stream-to/from-Disk 傳輸率

需要解釋的其中 1 個數字,即為 32 個或更多通道 Streaming-from-Disk (產生) 的輸出率。較低的輸出率並非 PXI Express 頻寬的限制,而實際上為控制器晶片組所允許的最大封包傳輸尺寸。


[+] 放大圖

圖 6. 針對 NI PXIe-6537 而使用 NI PXIe-1065 與 NI PXIe-8130 所達到的最高 Stream-to/from-Disk 速率

因控制器晶片組的關係,若於 NI PXIe-1065 的 Slot 7 與 8,還有 NI PXIe-1062Q 的 Slot 3 與 5 中使用 NI PXIe-6537,將可能拖慢最大輸出率。NI 建議可於 NI PXIe-1065 的 Slot 9 ~ 14,或於 NI PXIe-1062Q 的 Slot 4 中使用 NI PXIe-6537,以達最高的產生效能。


[+] 放大圖 

圖 7. 於 PXIe-1062Q 與 PXIe-8130 中使用 PXIe-6537 高速數位 I/O,以達最高 Stream-to/from-Disk 速率

 

接著我們使用 1 組 x4 接頭測試 NI PXIe-5442 任意波形產生器。若要透過儀器的單一 16 位元類比輸出通道,以最高速率 100 MS/s 進行產生作業,則每通道必須達到 200 MB/s 的取樣率。若要從 RAID 陣列進行串流,則最多有 3 個通道可全速進行產生作業。若有另外 1 個通道超過硬碟頻寬,仍可達到 75 MS/s 的速率串流各組裝置。

圖 8. NI PXIe-5442 的最高 Stream-from-Disk 速率

Stream to/from Memory 比較基準

由於 Stream-to-Disk 應用的多樣化,亦可將資料從高速示波器串流至 PXI 控制器的內建記憶體。此方案大致顯示前個範例的平衡點,匯流排未限制輸出率,RAID-0 陣列的磁碟寫入速度成為瓶頸。在此實驗中,擷取資料的尺寸則是受限於可用的電腦記憶體。因此可達到下方 PXIe-5122 高速示波器的 Stream-to-Memory 應用效能:


[+] 放大圖 

圖 9. PXIe-5122 高速示波器的最高 Stream-to-Memory 傳輸率

 

在上方測試中,PXI Express 雙核心控制器使用 2 GB 的內建記憶體。擷取長度為每通道 100,000,000 樣本,4 個通道將需要 800 MB 的電腦記憶體 (每樣本 2 bytes)。此測試使用 PXIe-5122 裝置搭配 256 MB 內建記憶體。再搭配 PXIe-6537 高速數位 I/O 模組,則可進行簡易測試:

 
[+] 放大圖
 
10. PXIe-6537 高速數位I/O 的最高 Stream-to/from-Memory 傳輸率

PXIe-6537 儀器進行Streaming-from-Disk 的上述相同理由,輸出率受限於控制器晶片,而非PXI Express 的頻寬。從這些Stream-to/from-Memory 基準點得知最重要的一點即為:系統輸出率隨著RAID 陣列的寫入速度而增加,而不僅僅受到匯流排輸出率的影響;匯流排以不再是瓶頸。Stream-to-DiskStream-to-Memory 應用,均可於PXI Express 中達到如此高輸出率的原因,即是因為透過高頻寬與低潛時的資料匯流排– PCI Express

圖 11. NI PXIe-5442 的最高 Stream-from-Memory 速率

這些 Stream-to/from-memory 比較標準最重要的 1 點,即為系統傳輸率必須超過 RAID 陣列的寫入速度。意即匯流排的傳輸率正不斷提升,將不再是技術瓶頸。Stream-to/from-disk 與 Stream-to/from-memory 應用,均可於PXI Express 中達到此種傳輸率水準的原因,即必須使用高頻寬且低潛時的資料匯流排:PCI Express。

結論

PXIPXI Express 均可讓工程師將系統提升至下一個層次。PXI 平台所使用的 PCI 匯流排頻寬,將可同時達到高取樣率與長時間擷取。將 PCI Express 技術整合至平台後,亦可達到最高 1 GB/s 的資料傳輸率。好的應用設計可最大化系統的串流效能,而目前有數個 PXI Express 儀器可透過該最大取樣率,串流至/自電腦記憶體或磁碟,以進行整個資料集的處理或分析。

若需了解更多相關資訊,請參看:LabVIEW;或至產品與服務頁面,直接參考所需的 PXI、PXIe 產品系列。

相關連結:
適用於 PCI Express 與 PXI Express 的模組化儀器
PXI 系統的資料串流架構
NI-SCOPE Stream to Disk 範例
NI-HSDIO Stream to Disk 範例
NI-HSDIO Stream from Disk 範例
為測試、量測,與控制系統選擇合適的硬碟

0 評分 | 0.00 之 5
閱讀語言 | 列印 | PDF

合法
此教學由美商國家儀器 (以下簡稱 NI) 開發。此教學受 NI 技術支援,但未經完整測試及檢驗。NI 不保證品質,亦不為其更新版本、相關產品及驅動程式等後續支援負責。此教學不具任何形式保證,且不受任何特定用途規範。(http://ni.com/legal/termsofuse/unitedstates/us/)