序言
德州儀器 (TI) 全新 TMS320C66x 數字信號處理器 (DSP) 內核不僅為屢獲殊榮的 C64x+™ 指令集架構 (ISA) 帶來了顯著的性能提升,同時還在同一處理內核中高度集成了針對浮點運算的支持。浮點處理技術首次能夠用于傳統上僅能滿足定點處理運行速度要求的處理器中。該 C66x DSP 的 ISA 同時支持單精度和雙精度浮點操作,并全面兼容 IEEE 754 標準。這一完美組合造就了無與倫比的DSP,能夠在完全無損定點或浮點功能的情況下將浮點優勢引入高速嵌入式架構中。與其它很多可提供浮點協作單元的嵌入式處理器不同,TI 最新 C66x DSP 內核直接將浮點指令集嵌入到C64x 定點指令集中。在C66x CPU上,用戶可以選擇逐條執行浮點、定點指令,因為在 C66x 中浮點與定點運算能力已經被完全集成在一起。正是由于這樣,到底使用定點 DSP 還是浮點 DSP 已不再是設計上的挑戰,因為 C66x DSP 做到了雙全其美。
在同一 DSP 內核中集成定點與浮點功能將使嵌入式系統算法的開發與部署方式發生根本性變革。這聽起來似乎有點夸大其辭,不過事實的確如此。在定點數字系統中實施算法所付出的艱辛是不可估量的。但充分滿足對速度的需求又使這一工作勢在必行,因為到目前為止市面上還沒有任何可供使用的快速浮點DSP。我們能夠輕松、便捷地將采用 Matlab 等浮點運算工具開發的算法移植到 DSP 中,而無需費力轉換為定點方式處理。借助 TI 新型 C66x DSP 的浮點計算能力,大多數轉換工作已顯得沒有任何必要。
對二進制數字表示的回顧
包含 TI DSP 等在內的所有數字處理器均采用帶比特串(0 和 1 組成)的二進制形式表示數字。數字表示精度取決于所使用的比特位數和表示格式兩個方面。
定點系統使用比特表示一個固定取值范圍,這些值既可以是整數,也可以是具有固定數量的整數及小數位的數字。動態取值范圍因而顯得十分有限,而且超出設定范圍的值必須達到端點。
定點處理器通常采用每秒乘法計算次數表示其 16 位運算性能。為了充分利用處理器的處理能力(例如,為獲得其宣稱的全部性能),為這些處理器開發的算法不得不在一系列預先確定范圍的數字上進行操作。在定點實施過程中無法高效執行難以預知范圍或變化幅度大的數據集。
浮點表示通過采用科學計數法來提供更廣的動態范圍,從而可使用尾數(或叫有效數字)及指數進行表示。C66x 內核可對 32 個比特位表示的數值實施單精度浮點運算,其采用的表示形式如下:(−1)5 × M × 2(N−127),其中 S 表示符號位,M 表示尾數或有效數字位,而 N 則表示指數。S 只有一個比特位,N 有 8 個比特位,而 M 以 23 個比特位表示。 這樣,數字表示范圍為 2−127 − 2128,并具有 24 比特精度的有效位。相比而言,16 比特位的定點算法僅能表示 216 個數值(從 0 到 65535),故其內在數字表示的可變范圍要小很多。所以當數據集或工作在該數據集上的算法不可預知、動態變化幅度很大的情況下,浮點數字表示法更受青睞。另外很重要的一點是,有效數字始終以‘1’作為第一個數字,因此其數值始終保持 24 位精度。
TI 如何創造性地在同一內核中同時集成浮點與定點技術
最新 C66x DSP 內核 —— 圖 1 顯示的 C64x+ DSP 是 TI 最新 C66x DSP 的前代產品。該內核由兩個對稱的部分 (A & B) 組成,每部分具有四個功能單元。一個 .M 單元包含 4 個 16 位乘法器。
圖 1 - TI C64x+ DSP
圖 2 所示的 TI 最新 C66x 內核具有同 C64x+ 內核相同的基本 A & B 結構。請注意,.M 單元的 16 位乘法器已增至每個功能單元 16 個,從而實現內核原始計算能力提升 4 倍。C66x DSP 實現的突破性創新使得由 4 個乘法器組成的各群集可協同工作以實施單精度浮點乘法運算。
圖 2 - TI 最新 C66x DSP 內核
C66x DSP 內核可同時運行多達八項浮點乘法運算,加之高達 1.25 GHz 的時鐘頻率,使其當之無愧地成為市場上性能最高的浮點 DSP。將多個 C66x DSP 內核進行完美整合,即可創建出具有出眾性能的多內核片上系統 (SoC) 設備。
浮點技術的成本
為使定點與浮點組件都能同時實現最佳性能,TI 專為該款最新的 C66x 內核開發了全新的浮點與定點指令,所有這些都對實現高效率的無線信號處理至關重要。由于采用浮點符號會帶來額外的計算復雜度,從而導致了定點與浮點處理器“分庭抗禮”的局面。在定點運算情況下,加法、乘法等基本操作簡單易行,但在浮點運算情況下,這些基本操作需要做更多工作量。比如兩個浮點數相乘的情形:
請注意,指數需要相加操作,尾數則需要相乘操作。然后,最終 (M1×M2) 值需調整成 23 位的表示形式,這可能需要對指數的值也作更改。使用浮點技術進行所有基本運算時將需要很多額外的操作。
浮點計算帶來的額外復雜度恰好說明了眾多算法僅采用定點表示數和定點運算的原因。嵌入式處理器能夠更快地運行定點運算,并且在眾多情況下,只需要定點算法即可。例如,C66x DSP 內核在每個周期內都能執行 16 項定點乘法運算或者是 4 項浮點乘法運算。為使定點和浮點組件都能同時實現最佳性能,TI 為該款最新的 C66x DSP 內核開發了定點與浮點運算指令,所有這些都對實現高效率的無線基站信號處理至關重要。浮點指令 FPi 包括:
1. 單精度復數乘法
2. 矢量乘法
3. 單精度矢量加減法
4. 單精度浮點-整數之間的矢量變換
5. 支持雙精度浮點算術運算(加、減、乘、除及與整數間的轉換)并且完全為管線式
最新定點指令可實現最佳的矢量信號處理 (VSPi),其中包括:
1. 復數矢量和矩陣乘法,諸如針對矢量的 DCMPY,以及針對矩陣乘法的CMATMPYR1
2. 實矢量乘法
3. 增強型點積計算
4. 矢量加減法
5. 矢量位移
6. 矢量比較
7. 矢量打包與拆包
部分應用采用定點技術的隱性成本
盡管與浮點處理相比,DSP 能夠實現更快的定點處理,但卻不得不為特定算法在開發時間方面相付出代價。通信系統典型的設計流程是首先基于計算機模型開發相應算法,然后再將這些算法用在初始系統部署中。隨著部署及應用范圍的不斷擴大,工程師便可將收集到的現實世界的數據帶回實驗室,以通過對算法的校正、調優提升系統性能。通常可使用 Matlab 或其他固有的浮點工具開發新的算法。接下來面臨的挑戰是如何在保持算法和系統性能的同時,將這些浮點算法轉換為定點算法。復雜拙劣的算法會占用大量系統資源,從而導致系統的整體性能下降。在需要用到復雜處理的情況下,將 Matlab 中的代碼移植到真實系統中就算耗費數周乃至數月的時間也不是什么罕見的現象。TI 最新架構具有原生浮點支持,從而使從浮點到定點的整個轉換過程變得毫無必要。通過在 C66x DSP 上使用浮點指令,可輕松將代碼從 Matlab 等工具中進行移植,并直接編譯至 TI 的 DSP 中,如圖 3 所示。
圖 3 - 浮點功能可大幅加速產品上市進程
浮點技術在 4G 基站中的重要作用
無線電話正不斷演進發展成為需要高數據量傳輸以支持視頻流和其他高寬帶應用的復雜媒體平臺。為了充分滿足這些需求,無線行業需要在基站中部署 WiMax 和 LTE 等最新的 4G 技術,力爭為終端用戶提供更高的數據吞吐量。這些 4G 基站利用多天線信號處理及 MIMO、Beamforming 等算法來提高其性能。通常情況下,這些算法會依賴本身易于量化和縮放與定點處理相關的問題的矩陣反演技術。采用浮點實施這些算法可進一步提高系統的速度及精確度,從而獲得更高性能,并最終為移動電話用戶帶來更精彩的體驗。
不斷增長、層出不窮的高性能應用亟需浮點運算功能
之前我們已經討論過,由于執行每個基本算術運算需要較長時間,所以浮點處理是很耗時的,但這種情況在當算法需要很大動態范圍操作時則不然。在 4G 處理的矩陣反轉操作中,由于沒有簡單可行的定點操作方法,因此算法雖然運行于定點處理器(無原生浮點支持)中,但基本還是被迫對浮點運算進行仿真。由于處理器沒有獲得定點功能的優勢,因而在與使用支持浮點運算的處理器運行時,這些算法的運行速度要慢很多。C66x DSP 自身支持浮點功能,所以消除了這種性能瓶頸。例如,C66x DSP 內核運行 MIMO 及其他關鍵的多天線信號處理算法比在 C64x+ DSP 上運行定點功能的相同算法整整快 4 倍。
在國防、公共安全基礎設施及航空電子設備等各種任務關鍵型應用領域,浮點功能不僅可簡化開發,同時還能大幅提高性能。由于能夠直接使用 MATLAB 中的代碼,浮點不僅能夠顯著縮短開發周期,并且與大型 FFT 等定點代碼相比,眾多算法的浮點實施也會占用更少的執行周期。例如,雷達、導航與制導系統會處理通過傳感器陣列獲取的據量。眾多傳感器組件的各種不同能源模式可提供與目標的跟蹤和定位相關的信息。這組數據必須通過線性方程組處理才能提取到所需信息。解決辦法包括矩陣反演、分解與自適應濾波等數學函數。對更高輸出精度與更大動態范圍的需求促使這些功能在諸如C66x 等 1.25GHz 浮點引擎上實現出眾的表現。另外,C66x 擁有的 SIMD 增強以及每周期定點能力高達 1.25GHz 32 MAC 的卓越性能,也為設計人員在選擇適合其應用的浮點與定點組合方面提供了極大的靈活性。
除機器視覺、工業自動化應用外,超聲波等用于醫療影像的影像識別也需要非常高的計算準確度,這些均可從浮點功能獲益匪淺。在進行超聲波檢查時,必須對聲源發出的信號進行定義和處理,才能創建可提供實用診斷信息的輸出影像。對于用戶而言,C66x ISA 提供的更高精度可使影像系統達到更高的分辨率和識別率。
浮點應用眾所周知的領域便是語音處理,其不僅需要嚴格的時延,同時還需要超高的采樣率,這些都會極度依賴浮點功能提供的更高計算精度和更大的動態可變范圍來適應濾波及其他降噪算法。此外,機器人設計也會考慮寬動態范圍。因為裝配線上也許會發生難以預料的事件。浮點 DSP 的寬動態范圍可確保機器人控制電路以可預知的形式處理不可預知的狀況。
結論
TI 最新的 C66x 內核催生了基于 DSP 的嵌入式處理器及SoCs 的創新類別,因而您無需再在定點處理器還是浮點處理器之間進行利弊權衡。這一革命性的進步將從根本上改變實時系統算法的設計與開發方式,從而使得系統開發人員能夠輕松而快速地構建極具差異化功能的全新解決方案。
更多詳細信息,敬請訪問 www.ti.com/c66multicore
本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。