讓嵌入式控制系統更加環保的浮點數位訊號控制器 智慧應用 影音
台灣玳能
DTechforum

讓嵌入式控制系統更加環保的浮點數位訊號控制器

在F283X字元當中的32位元有8個被當作指數之用。F283X數位訊號控制器的32位元浮點運算字元。
在F283X字元當中的32位元有8個被當作指數之用。F283X數位訊號控制器的32位元浮點運算字元。

前言:
數位訊號控制器(Digital signal controllers,DSCs) 可提供高階嵌入式系統最先進的單晶片控制處理方式。具備浮點運算架構的數位訊號控制器不僅所需的處理週期及程式記憶體較少,且能以更先進的運算方式節省電源消耗,並同時延伸系統能力。浮點運算程式作業較定點運算快,且透過系統單晶片的整合能有效節省基板空間、零件數目和整體系統成本。

本文:
隨著嵌入式系統執行的工作日益複雜,無論是節省能源或是執行如車輛導航等新功能,嵌入式系統都需從控制處理器取得更強大的效能。而現今節省能源的需求已影響我們所使用的各種設施,包括非消費者所熟悉的工業裝置等。

F28335 浮點運算DSC 包含一個六通道的DMA 控制器能提供卸載數據傳輸。TI

F28335 浮點運算DSC 包含一個六通道的DMA 控制器能提供卸載數據傳輸。TI

嵌入式系統相對於ICT系統,功耗相對比較低。但是在嵌入式系統的功能與用途越來越多元與強大,應用範圍亦深入生活周邊的現況下,系統本身的功耗即逐漸上升,加上多半需要長時間執行作業,累積的功耗相當可觀。因此節能這股在ICT的重要趨勢,亦成為嵌入式產品研發時相當重要的因素。嵌入式系統降低功耗的方式相當多,而其中最為立竿見影的方式,即為採用功耗較低的元件,當然這塊低功耗嵌入式元件領域,也成為相關廠商的兵家必爭之地。

嵌入式系統相對於ICT系統,功耗相對比較低。但是在嵌入式系統的功能與用途越來越多元與強大,應用範圍亦深入生活周邊的現況下,系統本身的功耗即逐漸上升,加上多半需要長時間執行作業,累積的功耗相當可觀。因此節能這股在ICT的重要趨勢,亦成為嵌入式產品研發時相當重要的因素。嵌入式系統降低功耗的方式相當多,而其中最為立竿見影的方式,即為採用功耗較低的元件,當然這塊低功耗嵌入式元件領域,也成為相關廠商的兵家必爭之地。

浮點架構為數位訊號控制器的效能所帶來的優勢

浮點架構為數位訊號控制器的效能所帶來的優勢

舉例而言,根據能源及自動化技術供應商ABB集團表示,工業用馬達所消耗的能源可佔工業用電的三分之二。多數的馬達都能透過可變動的速度控制增加運作效率,然而,每20台馬達只有1台具備數位控制的電機裝置。

即使如此,相對於定速馬達,可變速馬達每年能為10個發電廠節省近6千8百萬噸的溫室氣體排放量。因此,先進的馬達控制對於節省能源和環境保護的貢獻是顯而易見的。

增加多重控制可節省能源

可再生的能源來源,如太陽能面板及風力渦輪機,是控制裝置可發揮其功效,進一步產生「綠色能源」的其他機會。這些能源集中裝置與馬達相同,也需要先進的數位控制以達到其效率。

為了將來自面板或渦輪機的原始電壓即時轉換成可供電池儲存或在裝置上運作的電壓,控制工作是相當必要的。日照和風力的變化需要複雜的運算才能使電力輸出保持最大化,此外由於許多可再生的能源系統也被整合到電力網格上,因此也需要即時控制以保護這些能源系統。

舉例而言,TI的F283x 浮點數位訊號控制器可提供各式嵌入式應用,如馬達和移動控制、汽車雷達系統、以及來自太陽能陣列和風力發電等來源的可再生能源發電裝置等高效能及簡易的軟體開發。這個32位元的DSC產品系列的執行速度最高可達150 MHz且每秒最多可執行300百萬個浮點運算(million floating-point operations per second,MFLOPS)。

此一浮點架構較TMS320F28x的定點數位訊號控制器增加百分之五十以上的效能。此裝置包含一個可自處理核心卸載資料傳輸管理的6通道DMA控制器,以及便於透過相同來源開發浮點及定點運算程式碼的軟體創新。

浮點運算數學分析

F283x數位訊號控制器系列大部分的優勢來自其數值的格式,因其能夠簡化程式運作、節省執行週期並減少程式碼的規模。使用於其他數位訊號控制器及數位訊號處理器的定點數值格式僅為整數,即不含小數點的正數及負數,因此必須採用額外的記號以處理分數的狀況。

相較之下,浮點運算的數值格式為涵蓋較大範圍的實數,即包含小數點的正數及負數。內部小數點表示法及廣泛的數值範圍代表如乘法、除法和三角函數等在控制運算中常見的進位作業,能夠更有效地被執行。

以1個32位元定點架構為例,透過一個符號位元代表從 -2 31至231-1的整數。雖然此為一個很大的範圍,當整個系統在執行大量進位作業時,仍會很快被用完,使得數值的成長超過32位元,並導致登錄器的超載。程式可透過約略估算及進位方式處理此一被視為飽和(saturation)的問題,但如此一來便將犧牲數值的精確。

另一方面,該程式也能將較長的數值切割成較短數值,然後每次以32位元逐步加以運算。 在後者的情形下,數值的精確性將被完整保留,但由於處理器會忙於移動及儲存數值資料,因此執行效能會較差。該程式的規模也會隨著額外的指令增加而成長。

此時,浮點架構便能顯示出其價值。在F283x字元的32位元中有8個被當作指數之用,另外留下23個位元供對數的尾數所用,還有1個位元當做符號之用。雖然沒有1個符號位元讓指數所使用,一個常態化的偏差是被加入運算中所儲存的指數裡,如此一來便產生一群具有正負值的指數。

可儲存於32位元浮點運算字元的數值,其常態化範圍為±1.738至±3.438,比起32位元定點運算字元的數值範圍增加許多。由於負數指數代表著分數,此範圍可從很小的數值涵蓋到很大的數值。此廣大範圍代表飽和發生的機率較小,因此程式可避免透過約略估算或進位方式以犧牲數值精確性,或是犧牲效能及儲存空間,透過額外運作週期與指令以進行其他較常數值運算等兩難狀況發生。

增加處理器的效能

浮點架構為數位訊號控制器的效能所帶來的優勢。附表的第1欄列出常於控制系統中被使用的4個運算與三角函數,及2個運算(快速傅立葉轉換和無限脈衝系統)。

第二欄顯示出一個定點數位訊號控制器所需的作業週期,第三欄為1個浮點數位訊號控制器所需的作業週期。最後1欄為第2欄的數據除以第3欄的數據的結果,用來顯示兩者間的相對效能。浮點裝置在所有被列出來的數學運算中都較定點裝置快2到3倍。在此範圍中的FFT及IIR雖然較慢,但還是較定點運算快速。

一般來說,控制運算較訊號處理運算更有效,因為控制程式碼執行基本的數學運作,因此只需定點的數值範圍及飽和的操作。即使如此,浮點架構於電路板的作業週期數目仍較小,並較所有訊號處理的標竿測試,平均增加百分之五十的效能。在應用方面,這些和其他標竿測試結果便成為多種優勢,並可為機器人及電腦數值控制器進行微調與多層面控制。

資料來源:德州儀器、DIGITIMES整理,2009/06。

軟體開發的優勢

浮點運算格式能簡化寫入和除錯的程式碼。浮點運算數值表示方式較定點更適合數學運算,且更容易被高階語言支援。一旦程式碼被寫入且經過除錯驗證,便能夠輕易地被匯入浮點運算數位訊號控制器,以供進一步測試及最終運作。

相較之下,開發定點控制器程式碼的方法,須先將程式碼寫於一台個人電腦中,並於其中進行程式除錯的驗證,然後利用硬體本身所具備的更嚴格的定點運算表示方法,進行沉悶的程式碼改寫作業。此種方式顯著地增加開發週期,且一旦決定轉換之後,整個過程無法加以逆轉。

通常,不同程式碼的定點運算及浮點運算版本須加以維護,如此一來便會造成兩者不一致的風險。F283x 控制器只需浮點運算程式碼的開發,因此可簡化整個作業程序,節省時間並增加軟體可靠性。

成本的限制有時讓廠商選擇採用浮點運算控制器,做為開發產品原型及加速產品上市的開發平台,而到量產階段時再轉換為定點運算控制器。由於C 語言編譯器及IQ Math 可輕易地將相同樣原始碼進行浮點與定點運算的編譯,使其能支持前述的轉換策略。

F283x數位訊號控制器為第一個整合系統單晶片的浮點運算控制器,因此具備經濟效益。由於從定點運算跨越至浮點運算的轉換成本相當龐大,因此許多進階系統為節省成本,而不願有所改變。此外,現今的浮點運算架構可提供較高效能及更便易的開發方式,因此,也變得更容易為廣大應用裝置所採用,同時也代表嵌入式系統控制領域進一步的創新發展。(本文作者Andrew Soukup為TI全球C2000市場行銷經理。)