《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 解決方案 > TI全新TMS320C66x定點(diǎn)與浮點(diǎn)DSP內(nèi)核成功挑戰(zhàn)速度極限

TI全新TMS320C66x定點(diǎn)與浮點(diǎn)DSP內(nèi)核成功挑戰(zhàn)速度極限

2011-08-18
作者:Arnon Friedmann TI戰(zhàn)略營銷總監(jiān)

序言

    德州儀器 (TI) 全新 TMS320C66x 數(shù)字信號(hào)處理器 (DSP) 內(nèi)核不僅為屢獲殊榮的 C64x+™ 指令集架構(gòu) (ISA) 帶來了顯著的性能提升,同時(shí)還在同一處理內(nèi)核中高度集成了針對(duì)浮點(diǎn)運(yùn)算的支持。浮點(diǎn)處理技術(shù)首次能夠用于傳統(tǒng)上僅能滿足定點(diǎn)處理運(yùn)行速度要求的處理器中。該 C66x DSP 的 ISA 同時(shí)支持單精度和雙精度浮點(diǎn)操作,并全面兼容 IEEE 754 標(biāo)準(zhǔn)。這一完美組合造就了無與倫比的DSP,能夠在完全無損定點(diǎn)或浮點(diǎn)功能的情況下將浮點(diǎn)優(yōu)勢(shì)引入高速嵌入式架構(gòu)中。與其它很多可提供浮點(diǎn)協(xié)作單元的嵌入式處理器不同,TI 最新 C66x DSP 內(nèi)核直接將浮點(diǎn)指令集嵌入到C64x 定點(diǎn)指令集中。在C66x CPU上,用戶可以選擇逐條執(zhí)行浮點(diǎn)、定點(diǎn)指令,因?yàn)樵?C66x 中浮點(diǎn)與定點(diǎn)運(yùn)算能力已經(jīng)被完全集成在一起。正是由于這樣,到底使用定點(diǎn) DSP 還是浮點(diǎn) DSP 已不再是設(shè)計(jì)上的挑戰(zhàn),因?yàn)?C66x DSP 做到了雙全其美。
 
    在同一 DSP 內(nèi)核中集成定點(diǎn)與浮點(diǎn)功能將使嵌入式系統(tǒng)算法的開發(fā)與部署方式發(fā)生根本性變革。這聽起來似乎有點(diǎn)夸大其辭,不過事實(shí)的確如此。在定點(diǎn)數(shù)字系統(tǒng)中實(shí)施算法所付出的艱辛是不可估量的。但充分滿足對(duì)速度的需求又使這一工作勢(shì)在必行,因?yàn)榈侥壳盀橹故忻嫔线€沒有任何可供使用的快速浮點(diǎn)DSP。我們能夠輕松、便捷地將采用 Matlab 等浮點(diǎn)運(yùn)算工具開發(fā)的算法移植到 DSP 中,而無需費(fèi)力轉(zhuǎn)換為定點(diǎn)方式處理。借助 TI 新型 C66x DSP 的浮點(diǎn)計(jì)算能力,大多數(shù)轉(zhuǎn)換工作已顯得沒有任何必要。
 
對(duì)二進(jìn)制數(shù)字表示的回顧
 
    包含 TI DSP 等在內(nèi)的所有數(shù)字處理器均采用帶比特串(0 和 1 組成)的二進(jìn)制形式表示數(shù)字。數(shù)字表示精度取決于所使用的比特位數(shù)和表示格式兩個(gè)方面。
 
    定點(diǎn)系統(tǒng)使用比特表示一個(gè)固定取值范圍,這些值既可以是整數(shù),也可以是具有固定數(shù)量的整數(shù)及小數(shù)位的數(shù)字。動(dòng)態(tài)取值范圍因而顯得十分有限,而且超出設(shè)定范圍的值必須達(dá)到端點(diǎn)。 
 
     定點(diǎn)處理器通常采用每秒乘法計(jì)算次數(shù)表示其 16 位運(yùn)算性能。為了充分利用處理器的處理能力(例如,為獲得其宣稱的全部性能),為這些處理器開發(fā)的算法不得不在一系列預(yù)先確定范圍的數(shù)字上進(jìn)行操作。在定點(diǎn)實(shí)施過程中無法高效執(zhí)行難以預(yù)知范圍或變化幅度大的數(shù)據(jù)集。
 
     浮點(diǎn)表示通過采用科學(xué)計(jì)數(shù)法來提供更廣的動(dòng)態(tài)范圍,從而可使用尾數(shù)(或叫有效數(shù)字)及指數(shù)進(jìn)行表示。C66x 內(nèi)核可對(duì) 32 個(gè)比特位表示的數(shù)值實(shí)施單精度浮點(diǎn)運(yùn)算,其采用的表示形式如下:(−1)5 × M × 2(N−127),其中 S 表示符號(hào)位,M 表示尾數(shù)或有效數(shù)字位,而 N 則表示指數(shù)。S 只有一個(gè)比特位,N 有 8 個(gè)比特位,而 M 以 23 個(gè)比特位表示。 這樣,數(shù)字表示范圍為 2−127 − 2128,并具有 24 比特精度的有效位。相比而言,16 比特位的定點(diǎn)算法僅能表示 216 個(gè)數(shù)值(從 0 到 65535),故其內(nèi)在數(shù)字表示的可變范圍要小很多。所以當(dāng)數(shù)據(jù)集或工作在該數(shù)據(jù)集上的算法不可預(yù)知、動(dòng)態(tài)變化幅度很大的情況下,浮點(diǎn)數(shù)字表示法更受青睞。另外很重要的一點(diǎn)是,有效數(shù)字始終以‘1’作為第一個(gè)數(shù)字,因此其數(shù)值始終保持 24 位精度。

TI 如何創(chuàng)造性地在同一內(nèi)核中同時(shí)集成浮點(diǎn)與定點(diǎn)技術(shù)

    最新 C66x DSP 內(nèi)核 —— 圖 1 顯示的 C64x+ DSP 是 TI 最新 C66x DSP 的前代產(chǎn)品。該內(nèi)核由兩個(gè)對(duì)稱的部分 (A & B) 組成,每部分具有四個(gè)功能單元。一個(gè) .M 單元包含 4 個(gè) 16 位乘法器。
 
TI C64x+ DSP
圖 1 - TI C64x+ DSP
 
   圖 2 所示的 TI 最新 C66x 內(nèi)核具有同 C64x+ 內(nèi)核相同的基本 A & B 結(jié)構(gòu)。請(qǐng)注意,.M 單元的 16 位乘法器已增至每個(gè)功能單元 16 個(gè),從而實(shí)現(xiàn)內(nèi)核原始計(jì)算能力提升 4 倍。C66x DSP 實(shí)現(xiàn)的突破性創(chuàng)新使得由 4 個(gè)乘法器組成的各群集可協(xié)同工作以實(shí)施單精度浮點(diǎn)乘法運(yùn)算。
TI 最新 C66x DSP 內(nèi)核
 圖 2 - TI 最新 C66x DSP 內(nèi)核
 
 
    C66x DSP 內(nèi)核可同時(shí)運(yùn)行多達(dá)八項(xiàng)浮點(diǎn)乘法運(yùn)算,加之高達(dá) 1.25 GHz 的時(shí)鐘頻率,使其當(dāng)之無愧地成為市場上性能最高的浮點(diǎn) DSP。將多個(gè) C66x DSP 內(nèi)核進(jìn)行完美整合,即可創(chuàng)建出具有出眾性能的多內(nèi)核片上系統(tǒng) (SoC) 設(shè)備。

浮點(diǎn)技術(shù)的成本
 
    為使定點(diǎn)與浮點(diǎn)組件都能同時(shí)實(shí)現(xiàn)最佳性能,TI 專為該款最新的 C66x 內(nèi)核開發(fā)了全新的浮點(diǎn)與定點(diǎn)指令,所有這些都對(duì)實(shí)現(xiàn)高效率的無線信號(hào)處理至關(guān)重要。由于采用浮點(diǎn)符號(hào)會(huì)帶來額外的計(jì)算復(fù)雜度,從而導(dǎo)致了定點(diǎn)與浮點(diǎn)處理器“分庭抗禮”的局面。在定點(diǎn)運(yùn)算情況下,加法、乘法等基本操作簡單易行,但在浮點(diǎn)運(yùn)算情況下,這些基本操作需要做更多工作量。比如兩個(gè)浮點(diǎn)數(shù)相乘的情形:
 
    請(qǐng)注意,指數(shù)需要相加操作,尾數(shù)則需要相乘操作。然后,最終 (M1×M2) 值需調(diào)整成 23 位的表示形式,這可能需要對(duì)指數(shù)的值也作更改。使用浮點(diǎn)技術(shù)進(jìn)行所有基本運(yùn)算時(shí)將需要很多額外的操作。
 
     浮點(diǎn)計(jì)算帶來的額外復(fù)雜度恰好說明了眾多算法僅采用定點(diǎn)表示數(shù)和定點(diǎn)運(yùn)算的原因。嵌入式處理器能夠更快地運(yùn)行定點(diǎn)運(yùn)算,并且在眾多情況下,只需要定點(diǎn)算法即可。例如,C66x DSP 內(nèi)核在每個(gè)周期內(nèi)都能執(zhí)行 16 項(xiàng)定點(diǎn)乘法運(yùn)算或者是 4 項(xiàng)浮點(diǎn)乘法運(yùn)算。為使定點(diǎn)和浮點(diǎn)組件都能同時(shí)實(shí)現(xiàn)最佳性能,TI 為該款最新的 C66x DSP 內(nèi)核開發(fā)了定點(diǎn)與浮點(diǎn)運(yùn)算指令,所有這些都對(duì)實(shí)現(xiàn)高效率的無線基站信號(hào)處理至關(guān)重要。浮點(diǎn)指令 FPi 包括:
1. 單精度復(fù)數(shù)乘法
2. 矢量乘法
3. 單精度矢量加減法
4. 單精度浮點(diǎn)-整數(shù)之間的矢量變換
5. 支持雙精度浮點(diǎn)算術(shù)運(yùn)算(加、減、乘、除及與整數(shù)間的轉(zhuǎn)換)并且完全為管線式
 
最新定點(diǎn)指令可實(shí)現(xiàn)最佳的矢量信號(hào)處理 (VSPi),其中包括:
1. 復(fù)數(shù)矢量和矩陣乘法,諸如針對(duì)矢量的 DCMPY,以及針對(duì)矩陣乘法的CMATMPYR1
2. 實(shí)矢量乘法
3. 增強(qiáng)型點(diǎn)積計(jì)算
4. 矢量加減法
5. 矢量位移
6. 矢量比較
7. 矢量打包與拆包
 
部分應(yīng)用采用定點(diǎn)技術(shù)的隱性成本
 
     盡管與浮點(diǎn)處理相比,DSP 能夠?qū)崿F(xiàn)更快的定點(diǎn)處理,但卻不得不為特定算法在開發(fā)時(shí)間方面相付出代價(jià)。通信系統(tǒng)典型的設(shè)計(jì)流程是首先基于計(jì)算機(jī)模型開發(fā)相應(yīng)算法,然后再將這些算法用在初始系統(tǒng)部署中。隨著部署及應(yīng)用范圍的不斷擴(kuò)大,工程師便可將收集到的現(xiàn)實(shí)世界的數(shù)據(jù)帶回實(shí)驗(yàn)室,以通過對(duì)算法的校正、調(diào)優(yōu)提升系統(tǒng)性能。通??墒褂?Matlab 或其他固有的浮點(diǎn)工具開發(fā)新的算法。接下來面臨的挑戰(zhàn)是如何在保持算法和系統(tǒng)性能的同時(shí),將這些浮點(diǎn)算法轉(zhuǎn)換為定點(diǎn)算法。復(fù)雜拙劣的算法會(huì)占用大量系統(tǒng)資源,從而導(dǎo)致系統(tǒng)的整體性能下降。在需要用到復(fù)雜處理的情況下,將 Matlab 中的代碼移植到真實(shí)系統(tǒng)中就算耗費(fèi)數(shù)周乃至數(shù)月的時(shí)間也不是什么罕見的現(xiàn)象。TI 最新架構(gòu)具有原生浮點(diǎn)支持,從而使從浮點(diǎn)到定點(diǎn)的整個(gè)轉(zhuǎn)換過程變得毫無必要。通過在 C66x DSP 上使用浮點(diǎn)指令,可輕松將代碼從 Matlab 等工具中進(jìn)行移植,并直接編譯至 TI 的 DSP 中,如圖 3 所示。
浮點(diǎn)功能可大幅加速產(chǎn)品上市進(jìn)程
圖 3 - 浮點(diǎn)功能可大幅加速產(chǎn)品上市進(jìn)程
 
浮點(diǎn)技術(shù)在 4G 基站中的重要作用
 
    無線電話正不斷演進(jìn)發(fā)展成為需要高數(shù)據(jù)量傳輸以支持視頻流和其他高寬帶應(yīng)用的復(fù)雜媒體平臺(tái)。為了充分滿足這些需求,無線行業(yè)需要在基站中部署 WiMax 和 LTE 等最新的 4G 技術(shù),力爭為終端用戶提供更高的數(shù)據(jù)吞吐量。這些 4G 基站利用多天線信號(hào)處理及 MIMO、Beamforming 等算法來提高其性能。通常情況下,這些算法會(huì)依賴本身易于量化和縮放與定點(diǎn)處理相關(guān)的問題的矩陣反演技術(shù)。采用浮點(diǎn)實(shí)施這些算法可進(jìn)一步提高系統(tǒng)的速度及精確度,從而獲得更高性能,并最終為移動(dòng)電話用戶帶來更精彩的體驗(yàn)。
 
不斷增長、層出不窮的高性能應(yīng)用亟需浮點(diǎn)運(yùn)算功能
 
    之前我們已經(jīng)討論過,由于執(zhí)行每個(gè)基本算術(shù)運(yùn)算需要較長時(shí)間,所以浮點(diǎn)處理是很耗時(shí)的,但這種情況在當(dāng)算法需要很大動(dòng)態(tài)范圍操作時(shí)則不然。在 4G 處理的矩陣反轉(zhuǎn)操作中,由于沒有簡單可行的定點(diǎn)操作方法,因此算法雖然運(yùn)行于定點(diǎn)處理器(無原生浮點(diǎn)支持)中,但基本還是被迫對(duì)浮點(diǎn)運(yùn)算進(jìn)行仿真。由于處理器沒有獲得定點(diǎn)功能的優(yōu)勢(shì),因而在與使用支持浮點(diǎn)運(yùn)算的處理器運(yùn)行時(shí),這些算法的運(yùn)行速度要慢很多。C66x DSP 自身支持浮點(diǎn)功能,所以消除了這種性能瓶頸。例如,C66x DSP 內(nèi)核運(yùn)行 MIMO 及其他關(guān)鍵的多天線信號(hào)處理算法比在 C64x+ DSP 上運(yùn)行定點(diǎn)功能的相同算法整整快 4 倍。
 
    在國防、公共安全基礎(chǔ)設(shè)施及航空電子設(shè)備等各種任務(wù)關(guān)鍵型應(yīng)用領(lǐng)域,浮點(diǎn)功能不僅可簡化開發(fā),同時(shí)還能大幅提高性能。由于能夠直接使用 MATLAB 中的代碼,浮點(diǎn)不僅能夠顯著縮短開發(fā)周期,并且與大型 FFT 等定點(diǎn)代碼相比,眾多算法的浮點(diǎn)實(shí)施也會(huì)占用更少的執(zhí)行周期。例如,雷達(dá)、導(dǎo)航與制導(dǎo)系統(tǒng)會(huì)處理通過傳感器陣列獲取的據(jù)量。眾多傳感器組件的各種不同能源模式可提供與目標(biāo)的跟蹤和定位相關(guān)的信息。這組數(shù)據(jù)必須通過線性方程組處理才能提取到所需信息。解決辦法包括矩陣反演、分解與自適應(yīng)濾波等數(shù)學(xué)函數(shù)。對(duì)更高輸出精度與更大動(dòng)態(tài)范圍的需求促使這些功能在諸如C66x 等 1.25GHz 浮點(diǎn)引擎上實(shí)現(xiàn)出眾的表現(xiàn)。另外,C66x 擁有的 SIMD 增強(qiáng)以及每周期定點(diǎn)能力高達(dá) 1.25GHz 32 MAC 的卓越性能,也為設(shè)計(jì)人員在選擇適合其應(yīng)用的浮點(diǎn)與定點(diǎn)組合方面提供了極大的靈活性。
 
    除機(jī)器視覺、工業(yè)自動(dòng)化應(yīng)用外,超聲波等用于醫(yī)療影像的影像識(shí)別也需要非常高的計(jì)算準(zhǔn)確度,這些均可從浮點(diǎn)功能獲益匪淺。在進(jìn)行超聲波檢查時(shí),必須對(duì)聲源發(fā)出的信號(hào)進(jìn)行定義和處理,才能創(chuàng)建可提供實(shí)用診斷信息的輸出影像。對(duì)于用戶而言,C66x ISA 提供的更高精度可使影像系統(tǒng)達(dá)到更高的分辨率和識(shí)別率。
 
    浮點(diǎn)應(yīng)用眾所周知的領(lǐng)域便是語音處理,其不僅需要嚴(yán)格的時(shí)延,同時(shí)還需要超高的采樣率,這些都會(huì)極度依賴浮點(diǎn)功能提供的更高計(jì)算精度和更大的動(dòng)態(tài)可變范圍來適應(yīng)濾波及其他降噪算法。此外,機(jī)器人設(shè)計(jì)也會(huì)考慮寬動(dòng)態(tài)范圍。因?yàn)檠b配線上也許會(huì)發(fā)生難以預(yù)料的事件。浮點(diǎn) DSP 的寬動(dòng)態(tài)范圍可確保機(jī)器人控制電路以可預(yù)知的形式處理不可預(yù)知的狀況。

結(jié)論
    TI 最新的 C66x 內(nèi)核催生了基于 DSP 的嵌入式處理器及SoCs 的創(chuàng)新類別,因而您無需再在定點(diǎn)處理器還是浮點(diǎn)處理器之間進(jìn)行利弊權(quán)衡。這一革命性的進(jìn)步將從根本上改變實(shí)時(shí)系統(tǒng)算法的設(shè)計(jì)與開發(fā)方式,從而使得系統(tǒng)開發(fā)人員能夠輕松而快速地構(gòu)建極具差異化功能的全新解決方案。
 
更多詳細(xì)信息,敬請(qǐng)?jiān)L問 www.ti.com/c66multicore
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。