chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

C2000浮點(diǎn)運(yùn)算注意事項(xiàng)之CPU和CLA的差異及誤差處理技巧

電子設(shè)計(jì) ? 來(lái)源:德州儀器 ? 作者:德州儀器 ? 2021-12-10 10:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

編程更簡(jiǎn)單

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

程序魯棒性更強(qiáng)。

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

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

1位符號(hào)位:0表示正數(shù),1表示負(fù)數(shù)。

8位階碼

23位尾數(shù)

31 30 23 22 0
符號(hào)位 階碼 尾數(shù)

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

符號(hào)位S 階碼E 尾數(shù)M
0 0 0 正0
1 0 0 負(fù)0
0或1 0 非0 非規(guī)格化數(shù)(1)
0 1-254 0x00000-0x7FFFF 正常范圍正數(shù)(2)
1 1-254 0x00000-0x7FFFF 正常范圍負(fù)數(shù)(2)
0 255 0 正無(wú)窮大
1 255 0 負(fù)無(wú)窮大
0或1 255 非0 非數(shù)值(NaN)

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

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

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

標(biāo)準(zhǔn)數(shù)據(jù)格式和特殊值,比如非數(shù)值(NaN)和無(wú)窮大

標(biāo)準(zhǔn)舍入模式和浮點(diǎn)運(yùn)算

多平臺(tái)支持,包括德州儀器C67x系列芯片。

C2000對(duì)該標(biāo)準(zhǔn)作了一些簡(jiǎn)化:

狀態(tài)標(biāo)志位和比較運(yùn)算不區(qū)分正0和負(fù)0

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

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

IEEE754標(biāo)準(zhǔn)有5種舍入模式,C28x+FPU只支持其中兩種:

--截?cái)啵盒?shù)位不管大小全部舍去

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

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

表2:不同舍入模式示例

模式/實(shí)際值 +11.5 +12.5 ?11.5 ?12.5
就近舍入向偶舍入 +12.0 +12.0 ?12.0 ?12.0
就近舍入遠(yuǎn)離0舍入 +12.0 +13.0 ?12.0 ?13.0
截?cái)?/td> +11.0 +12.0 ?11.0 ?12.0
向上舍入 +12.0 +13.0 ?11.0 ?12.0
向下舍入 +11.0 +12.0 ?12.0 ?13.0

二、浮點(diǎn)C2000芯片運(yùn)算技巧和注意點(diǎn)

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

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

floatCLATMPDATA=0;

intindex=20001;

while(index--)

{

CLATMPDATA=CLATMPDATA+11.7;

}

得到如下結(jié)果:

其中CLATMPDATA1是在CLA中將11.7加20001次得到的結(jié)果,CLATMPDATA2是在CPU中將11.7加20001次得到的結(jié)果。可以看出兩者所得到的結(jié)果不同,并且都和正確結(jié)果234011.7有較大差距。

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

CPU和CLA運(yùn)算結(jié)果的不同是由于其對(duì)浮點(diǎn)數(shù)的舍入模式的不同造成的,前文已經(jīng)說(shuō)過(guò),C28x+FPU 編譯器默認(rèn)將CPU配置為就近舍入向偶舍入模式。而CLA不同,CLA默認(rèn)為截?cái)嗌崛肽J絒2]。在CLA的代碼中,我們可以通過(guò)增加下述代碼:

__asm(" MSETFLG RNDF32=1");//1為就近舍入向偶舍入,0為截?cái)嗌崛?/p>

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

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

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

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

在這個(gè)實(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)耗時(shí))

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

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

三、結(jié)論

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

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

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

編輯:金巧

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

    關(guān)注

    68

    文章

    11320

    瀏覽量

    225832
  • 嵌入式處理
    +關(guān)注

    關(guān)注

    0

    文章

    341

    瀏覽量

    10532
  • Cla
    Cla
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    11054
  • FPU
    FPU
    +關(guān)注

    關(guān)注

    0

    文章

    46

    瀏覽量

    22977
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    不同產(chǎn)品做 METI 備案的注意事項(xiàng)

    METI 備案是日本《電氣用品安全法(DENAN)》下的強(qiáng)制性行政申報(bào)。但在實(shí)際操作中,并不是所有產(chǎn)品都“按同一套邏輯”備案。不同產(chǎn)品類別,在資料、責(zé)任劃分、平臺(tái)審核重點(diǎn)上差異明顯。本文將從產(chǎn)品類型維度,系統(tǒng)梳理 METI 備案的關(guān)鍵注意事項(xiàng),幫助企業(yè)避免反復(fù)補(bǔ)資料和合規(guī)
    的頭像 發(fā)表于 02-10 12:00 ?237次閱讀
    不同產(chǎn)品做 METI 備案的<b class='flag-5'>注意事項(xiàng)</b>

    請(qǐng)問(wèn)CW32F030的硬件注意事項(xiàng)有哪些?

    CW32F030的硬件注意事項(xiàng)有哪些
    發(fā)表于 12-25 08:20

    請(qǐng)問(wèn)IAP功能升級(jí)流程中有哪些注意事項(xiàng)?

    IAP 功能升級(jí)流程中有哪些注意事項(xiàng)
    發(fā)表于 12-23 07:55

    迅為RK3588開(kāi)發(fā)板Android系統(tǒng)燒寫(xiě)及注意事項(xiàng)

    迅為RK3588開(kāi)發(fā)板Android系統(tǒng)燒寫(xiě)及注意事項(xiàng)
    的頭像 發(fā)表于 12-03 15:17 ?7357次閱讀
    迅為RK3588開(kāi)發(fā)板Android系統(tǒng)燒寫(xiě)及<b class='flag-5'>注意事項(xiàng)</b>

    驅(qū)動(dòng)板PCB布線的注意事項(xiàng)

    PCB Layout 注意事項(xiàng) 1)布局注意事項(xiàng): ●● 整體布局遵循功率回路與小信號(hào)控制回路分開(kāi)布局原則,功率部分和控制部分的 GND 分開(kāi)回流到輸入 GND。 ●● 芯片的放置方向優(yōu)先考慮驅(qū)動(dòng)
    發(fā)表于 12-02 07:40

    CW32F030在使用中的注意事項(xiàng)有哪些?

    CW32F030在使用中的注意事項(xiàng)有哪些?
    發(fā)表于 11-18 06:20

    浮點(diǎn)運(yùn)算單元的設(shè)計(jì)和優(yōu)化

    的,和整數(shù)長(zhǎng)度一致。 2.浮點(diǎn)運(yùn)算指令實(shí)現(xiàn):蜂鳥(niǎo)E203可以通過(guò)在EXU內(nèi)添加一個(gè)與ALU平行的模塊:浮點(diǎn)處理單元(float point unit),專用于
    發(fā)表于 10-22 07:04

    emWin AppWizard 開(kāi)發(fā)注意事項(xiàng)有哪些?

    emWin AppWizard 開(kāi)發(fā)注意事項(xiàng)
    發(fā)表于 09-04 06:18

    別讓這些細(xì)節(jié)毀了PCBA!焊接注意事項(xiàng)清單

    一站式PCBA加工廠家今天為大家講講PCBA加工中電子元器件焊接注意事項(xiàng)有哪些?PCBA加工中電子元器件焊接注意事項(xiàng)。 電子元器件焊接關(guān)鍵注意事項(xiàng) 在PCBA加工中,焊接工藝直接影響電路板的可靠性
    的頭像 發(fā)表于 07-23 09:26 ?1456次閱讀

    CCG2 type-c to DP 在layout時(shí)的注意事項(xiàng)是什么,差分線阻抗多少歐?

    我想問(wèn)下CCG2type-c to DP 在layout時(shí)的注意事項(xiàng)是什么,差分線阻抗多少歐。
    發(fā)表于 05-30 07:23

    CYPD5225-96BZXI設(shè)計(jì)需要哪些注意事項(xiàng)?

    時(shí), TBT4 type-c接上USB外設(shè),主板就不啟動(dòng),而拔掉USB外設(shè),主板能正常啟動(dòng); 所以想了解下, 1、CYPD5225-96BZXI設(shè)計(jì)需要哪些注意事項(xiàng); 2、CYPD5225-96BZXI
    發(fā)表于 05-23 08:03

    美國(guó)Odyssey奧德賽電池充電注意事項(xiàng)全解析

    Odyssey奧德賽電池充電注意事項(xiàng)全解析 奧德賽電池作為高性能的深循環(huán)鉛酸電池,廣泛應(yīng)用于汽車啟動(dòng)、摩托車、船舶以及備用電源系統(tǒng)中。正確的充電方法不僅能夠延長(zhǎng)電池壽命,還能保障其性能穩(wěn)定發(fā)揮
    的頭像 發(fā)表于 05-19 16:31 ?1263次閱讀
    美國(guó)Odyssey奧德賽電池充電<b class='flag-5'>注意事項(xiàng)</b>全解析

    IGBT器件的防靜電注意事項(xiàng)

    IGBT作為功率半導(dǎo)體器件,對(duì)靜電極為敏感。我將從其靜電敏感性原理入手,詳細(xì)闡述使用過(guò)程中防靜電的具體注意事項(xiàng)與防護(hù)措施,確保其安全穩(wěn)定運(yùn)行。
    的頭像 發(fā)表于 05-15 14:55 ?2127次閱讀

    設(shè)置射頻網(wǎng)絡(luò)分析儀的測(cè)試條件有哪些注意事項(xiàng)

    幅度/相位精度)。 優(yōu)化建議: 記錄驗(yàn)證數(shù)據(jù),并與歷史數(shù)據(jù)對(duì)比(如幅度誤差應(yīng)≤±0.05dB)。 3. 數(shù)據(jù)處理 注意事項(xiàng): 測(cè)試數(shù)據(jù)需進(jìn)行平滑處理(如移動(dòng)平均)以降低隨機(jī)噪聲(如
    發(fā)表于 05-06 16:02

    16 位 ADC 的 汽車類與非汽車類C2000? 32 位 MCU(TMS320F28377DPTPS TMS320F28377SPTPQ)微控制器

    前言 C2000? 32 位微控制器針對(duì)處理、感應(yīng)和驅(qū)動(dòng)進(jìn)行了優(yōu)化,可提高實(shí)時(shí)控制應(yīng)用(如工業(yè)電機(jī)驅(qū)動(dòng)器、光伏逆變器和數(shù)字電源、電動(dòng)汽車和運(yùn)輸、電機(jī)控制以及感應(yīng)和信號(hào)處理)的閉環(huán)性能。C200
    發(fā)表于 04-30 14:11