0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

浮點處理器相對于定點處理器有何不同

電子設(shè)計 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-03-07 08:57 ? 次閱讀

C28x+FPU架構(gòu)的C2000微處理器在原有的C28x定點CPU的基礎(chǔ)上加入了一些寄存器和指令,來支持IEEE 單精度浮點數(shù)的運算。對于在定點微處理器上編寫的程序,浮點C2000也完全兼容,不需要對程序做出改動。浮點處理器相對于定點處理器有如下好處:

編程更簡單

性能更優(yōu),比如除法,開方,F(xiàn)FT和IIR濾波等算法運算效率更高。

程序魯棒性更強。

一、IEEE754格式的浮點數(shù)

C28x+FPU的單精度浮點數(shù)遵循IEEE754格式。它包括:

尾數(shù)

表1:IEEE單精度浮點數(shù)


(1)非規(guī)格化數(shù)值非常小,計算公式為(-1)sx2(E-126)x0.M

(2)正常范圍數(shù)值計算公式為(-1)sx2(E-127)x1.M

正常范圍數(shù)值落在± ~1.7 x 10 -38 to ± ~3.4 x 10 +38范圍內(nèi)。從表1可以看出,IEEE754標準包括:

標準數(shù)據(jù)格式和特殊值,比如非數(shù)值(NaN)和無窮大

標準舍入模式和浮點運算

多平臺支持,包括德州儀器C67x系列芯片。

C2000對該標準作了一些簡化:

狀態(tài)標志位和比較運算不區(qū)分正0和負0

非規(guī)格化數(shù)值被認為是0

對非數(shù)值(NaN)處理方式和無窮大一樣。

IEEE754標準有5種舍入模式,C28x+FPU只支持其中兩種:

--截斷:小數(shù)位不管大小全部舍去

--就近舍入向偶舍入:這種模式下如果小數(shù)位小于5就舍去,大于5就進位,如果小數(shù)位為5,則舍入到最近的偶數(shù)。

表2展示了不同的舍入模式對數(shù)據(jù)的影響。C28x+FPU編譯器默認將微處理器配置為就近舍入向偶舍入模式[1]。

表2:不同舍入模式示例


??

二、浮點C2000芯片運算技巧和注意點

浮點數(shù)的精度由尾數(shù)位決定,絕大多數(shù)的數(shù)在用浮點數(shù)表示時都會有誤差,這些誤差很小,多數(shù)情況下可以忽略,但是在經(jīng)過多次計算后這個誤差可能會大到無法接受。

下面用實例來進行說明,下面一段代碼定義float類型變量,分別在TI最新的Delfino芯片F(xiàn)28379D的CPU1和CLA1上,將11.7加20001次。

float CLATMPDATA=0;

int index=20001;

while(index--)

{

CLATMPDATA=CLATMPDATA+11.7;

}

得到如下結(jié)果:

其中CLATMPDATA1是在CLA中將11.7加20001次得到的結(jié)果,CLATMPDATA2是在CPU中將11.7加20001次得到的結(jié)果??梢钥闯鰞烧咚玫降慕Y(jié)果不同,并且都和正確結(jié)果234011.7有較大差距。

為何CPU和CLA計算結(jié)果不同?

CPU和CLA運算結(jié)果的不同是由于其對浮點數(shù)的舍入模式的不同造成的,前文已經(jīng)說過,C28x+FPU 編譯器默認將CPU配置為就近舍入向偶舍入模式。而CLA不同,CLA默認為截斷舍入模式[2]。在CLA的代碼中,我們可以通過增加下述代碼:

__asm(" MSETFLG RNDF32=1");//1為就近舍入向偶舍入,0為截斷舍入

將CLA的舍入模式更改為就近舍入向偶舍入模式,然后再運行代碼,可以得到和CPU同樣的結(jié)果。

2. 為何CPU和CLA計算結(jié)果都有較大誤差?如何解決?

11.7在用IEEE754格式的浮點數(shù)表示時為0x413b3333,其對應(yīng)的實際值為11.69999980926513671875,可以看出誤差很小,但是經(jīng)過多次累加多次舍入后得到的結(jié)果誤差較大,對此,我們可以將CLATMPDATA定義為long double型變量(64位),再次運行相同的代碼,可以得到如下結(jié)果,可以看到誤差很小可以忽略。

需要指出的是,現(xiàn)有的C28x CPU只支持單精度(32位)的硬件浮點運算,對于64位雙精度浮點數(shù)的運算都是通過軟件實現(xiàn)的,所以其運算速率會慢很多。另外CLA不支持64位數(shù)。

在這個實例中,我們可以分別觀察float類型變量和long double類型變量的匯編代碼如下:

C code: CLATMPDATA2=CLATMPDATA2+11.7;

如果CLATMPDATA2是float型變量,則相應(yīng)的匯編代碼為:

00c08d: E80209D8 MOVIZ R0, #0x413b 1cycle

00c08f: E2AF0112 MOV32 R1H, @0x12, UNCF 1cycle

00c091: E8099998 MOVXI R0H, #0x3333 1cycle

00c093: E7100040 ADDF32 R0H, R0H, R1H 2cycle

00c095: 7700 NOP 1cycle

00c096: E2030012 MOV32 @0x12, R0H 1cycle

如果CLATMPDATA2是long double型變量,則相應(yīng)的匯編代碼為:

00c08b: 7680005A MOVL XAR6, #0x00005a 1cycle

00c08d: 8F00005A MOVL XAR4, #0x00005a 1cycle

00c08f: 8F40C26A MOVL XAR5, #0x00c26a 1cycle

00c091: FF69 SPM #0 1cycle

00c092: 7640C0C9 LCR FD$$ADD 4cycle(跳轉(zhuǎn)耗時)

+25cycle(FD$$ADD函數(shù)內(nèi)部需要25cycle)

可以看出CPU對float類型數(shù)執(zhí)行一次加法耗時7個cycle,對long double類型數(shù)執(zhí)行一次加法耗時33個cycle。

三、結(jié)論

1. C2000的CPU和CLA默認的舍入模式不同,在計算浮點數(shù)時可能會得到不同的結(jié)果,但是我們可以通過代碼改變其舍入模式得到相同的結(jié)果。

2. 單精度浮點數(shù)經(jīng)過多次計算后可能會有較大誤差,可以通過將變量定義為64位long double型解決精度問題。

3. C28x CPU只支持單精度(32位)的硬件浮點運算,對于64位雙精度浮點數(shù)的運算都是通過軟件實現(xiàn)的,所以其運算速率會慢很多。在下一代的C2000產(chǎn)品中我們會實現(xiàn)對64位雙精度浮點數(shù)運算的硬件支持。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10772

    瀏覽量

    210438
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2231

    瀏覽量

    82204
  • C2000 c
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    10234
收藏 人收藏

    評論

    相關(guān)推薦

    用FPGA 嵌入式處理器實現(xiàn)高性能浮點元算

    APU 接口與處理器的緊密結(jié)合可讓浮點運算單元直接執(zhí)行原生 PowerPC 浮點指令,這相對軟件仿真而言,速度一般可提高 6 倍。除少數(shù)情況外,賽靈思 PowerPC FPU 一般符
    發(fā)表于 08-03 11:15

    請問定點處理器處理浮點數(shù)精度多高?

    最近接觸到了DSP處理器,關(guān)于定點處理器處理浮點運算兩個疑問,我是用C語言開發(fā)的,16位
    發(fā)表于 05-13 01:09

    dsp33EP256mu810是定點處理器還是浮點處理器?

    我怎么知道?我想做的網(wǎng)格接口PLL。我是否去FordSP33 EP256MU810系列?ISDSP33 EP256MU810是浮點處理器。
    發(fā)表于 04-27 06:09

    定點處理器浮點處理器的選擇

    浮點處理器的優(yōu)點眾所周知。毫無疑問,許多算法的浮點實現(xiàn)執(zhí)行起來比定點代碼占用更少的周期(當然,假設(shè)定點代碼提供相同的精度)。
    發(fā)表于 08-25 17:31 ?0次下載

    ARM處理器浮點運算單元

      Float Point Unit,浮點運算單元是專用于浮點運算的協(xié)處理器,在計算領(lǐng)域,例如三角函數(shù)以及時域頻域變換通常會用到浮點運算。
    發(fā)表于 09-16 11:28 ?6次下載

    SHARC處理器滿足一高二低的浮點設(shè)計需求

    DSP的比較優(yōu)勢是浮點算法擁躉者們在浮點定點之爭的話題中常提及的,也為大多數(shù)嵌入式設(shè)計工程師所熟知。 然而,由于電路復(fù)雜性和制造工藝上的原因,浮點處理器
    發(fā)表于 11-02 11:26 ?0次下載
    SHARC<b class='flag-5'>處理器</b>滿足一高二低的<b class='flag-5'>浮點</b>設(shè)計需求

    讓新型SHARC處理器滿足“一高二低”的浮點設(shè)計需求

    DSP的比較優(yōu)勢是浮點算法擁躉者們在浮點定點之爭的話題中常提及的,也為大多數(shù)嵌入式設(shè)計工程師所熟知。 然而,由于電路復(fù)雜性和制造工藝上的原因,浮點處理器
    發(fā)表于 11-02 11:46 ?0次下載
    讓新型SHARC<b class='flag-5'>處理器</b>滿足“一高二低”的<b class='flag-5'>浮點</b>設(shè)計需求

    TMS320C6654定點浮點數(shù)字信號處理器詳細資料概述

    本文的主要內(nèi)容介紹的是TI的產(chǎn)品TMS320C6654定點浮點數(shù)字信號處理器的詳細資料概述
    發(fā)表于 04-27 08:59 ?9次下載
    TMS320C6654<b class='flag-5'>定點</b>和<b class='flag-5'>浮點</b>數(shù)字信號<b class='flag-5'>處理器</b>詳細資料概述

    FPGA簡單入門和邏輯塊與相對于處理器的并行操作

    4分鐘的FPGA簡單入門介紹,主要介紹了邏輯塊、相對于處理器的并行操作。搬運于YouTube,字幕自制。
    的頭像 發(fā)表于 08-29 06:05 ?2484次閱讀

    基于TI TMS320C6748定點/浮點DSP C674x處理器

      TI TMS320C6748定點/浮點DSP C674x處理器提供語音、算法、圖像、視頻等多種類型實驗提供教學實驗指導(dǎo)手冊和完整的實驗代碼。
    的頭像 發(fā)表于 11-10 10:20 ?3059次閱讀
    基于TI TMS320C6748<b class='flag-5'>定點</b>/<b class='flag-5'>浮點</b>DSP C674x<b class='flag-5'>處理器</b>

    定點處理器TMS320C2000的IQmath庫解決方案

    DSP數(shù)字信號處理器分為定點浮點兩種基本類型,它們之間最大差異在于浮點DSP比定點DSP具有更強大的計算能力和更大范圍的動態(tài)精度。
    發(fā)表于 08-10 16:54 ?2151次閱讀

    C2000浮點運算注意事項:CPU和CLA的差異及誤差處理技巧

    C28x+FPU架構(gòu)的C2000微處理器在原有的C28x定點CPU的基礎(chǔ)上加入了一些寄存和指令,來支持IEEE 單精度浮點數(shù)的運算。對于
    的頭像 發(fā)表于 04-06 10:30 ?1788次閱讀

    TMS320C6671定點浮點數(shù)字信號處理器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TMS320C6671定點浮點數(shù)字信號處理器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-05 11:17 ?0次下載
    TMS320C6671<b class='flag-5'>定點</b>和<b class='flag-5'>浮點</b>數(shù)字信號<b class='flag-5'>處理器</b>數(shù)據(jù)表

    TMS320C6743定點浮點數(shù)字信號處理器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TMS320C6743定點浮點數(shù)字信號處理器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-07 11:37 ?0次下載
    TMS320C6743<b class='flag-5'>定點</b>和<b class='flag-5'>浮點</b>數(shù)字信號<b class='flag-5'>處理器</b>數(shù)據(jù)表

    TMS320C6654定點浮點數(shù)字信號處理器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TMS320C6654定點浮點數(shù)字信號處理器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-07 10:11 ?0次下載
    TMS320C6654<b class='flag-5'>定點</b>和<b class='flag-5'>浮點</b>數(shù)字信號<b class='flag-5'>處理器</b>數(shù)據(jù)表