新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 高速數(shù)據(jù)流盤處理:編程與標(biāo)定

高速數(shù)據(jù)流盤處理:編程與標(biāo)定

作者: 時間:2009-04-13 來源:網(wǎng)絡(luò) 收藏

數(shù)據(jù)流盤應(yīng)用的最優(yōu)方法

應(yīng)用從單線程到多線程架構(gòu)的演進被廣泛認為是重大的編程挑戰(zhàn)。LabVIEW為多核處理器提供了一個理想的編程環(huán)境,因為LabVIEW應(yīng)用在本質(zhì)上是多線程的。因而,LabVIEW編程人員通過幾乎很少甚至無需額外的編碼,便可以從多核處理器獲益。多線程應(yīng)用程序非常適用于并行測試和數(shù)據(jù)流盤應(yīng)用,而且,在流處理應(yīng)用中運用適當(dāng)?shù)木幊碳夹g(shù),可以使 儀器發(fā)揮最大性能,這是通過代碼的并行化完成的。

同樣,并行機制還可以應(yīng)用于創(chuàng)建數(shù)據(jù)流盤應(yīng)用或從計算機處理器獲取最大性能。在流盤應(yīng)用中,兩個主要占用總線和處理器的任務(wù)是:1)從數(shù)字化儀采集數(shù)據(jù),和2)將數(shù)據(jù)寫入到文件中。由于這一點是事先知道的,所以進程可以劃分為多個循環(huán)。利用LabVIEW隊列機構(gòu),每個循環(huán)間實現(xiàn)了數(shù)據(jù)共享。通常,這被稱為一個生產(chǎn)者-消費者算法結(jié)構(gòu)。



圖2:帶有隊列結(jié)構(gòu)的生產(chǎn)者/消費者循環(huán)架構(gòu)。

在上例中,上面的循環(huán)(生產(chǎn)者)從一個高速數(shù)字化儀中采集數(shù)據(jù),并將其傳遞至一個隊列。下面的循環(huán)(消費者)從隊列中讀取數(shù)據(jù)并將其寫入到磁盤。在后臺,LabVIEW為隊列在PC中分配一個存儲塊。該存儲器模塊被用作兩個循環(huán)間數(shù)據(jù)傳遞的臨時存儲FIFO。對于大多數(shù)編程語言,多個進程間的存儲器共享要求不菲的編程開銷。然而,LabVIEW處理了所有的存儲器訪問,以確保讀-寫競爭狀況不會發(fā)生。隊列結(jié)構(gòu)的執(zhí)行可以通過下圖可視化展示:


圖3:對列結(jié)構(gòu)的數(shù)據(jù)流編程模型。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉