This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28377D:TMU 支持:注释"可能略有不同"意味着什么?

Guru**** 2463330 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1499759/tms320f28377d-tmu-support-what-does-the-note-may-differ-slightly-mean

器件型号:TMS320F28377D

工具/软件:

在编译器文档 SPRU514中、
对于"--fp_mode"选项
存在:
"请注意、TMU 硬件指令和库例程之间存在算法差异、因此运算结果可能略有不同。"

 "可能略有不同"是什么意思?

我们需要清楚地描述可以安全依赖的 TMU 性能。

是否有一个精确的描述"轻微的差异"?

是否有方法来衡量差异?
针对2^64可能性(除法的两个32位单通道)进行系统测试是不切实际的。

此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Pierre,

    请参阅以下内容。  

    时间

    TMU

    精度(带浮点)

    输入范围限制

    浮点周期

    固定点周期(假设转换为浮点、计算、然后转换回固定点)

    部门

    1 ULP (最低精度单位)

    -

    5.

    9.

    取平方根

    1 ULP

    -

    5.

    9.

    余弦

    2.6822 x 10^-7

    -

    6.

    10.

    反正切(atan2 (y、x))

    1.036096 x 10^-8

    -

    10.

    14

    反正切(atan (x))

    1.036096 x 10^-8

    [-1、1]

    6.

    10.

    指数

    最大值(7 ULP、2^-20)

    6.

    10.

    自然对数

    最大值(1 ULP、2^-23)

    -

    6.

    10.

    一个问题区域是指数、当 基址或指数变大时、精度开始下降。

    输入=1.6324520、RTS 输出=5.1164045334、黄金输出=5.1164045334、RTS 错误= 0.000000

    输入= 1.6324520、TMU 输出= 5.1164054871、黄金输出= 5.1164045334、TMU 误差= 0.0000009537

    输入= 2.3451440、RTS 输出= 10.4347753525、黄金输出= 10.4347753525、RTS 错误= 0.0000000000

    输入=2.3451440、TMU 输出=10.4347734451、黄金输出=10.4347753525、TMU 错误=-0.0000019073

    输入=3.2344100、RTS 输出=25.3913879395、黄金输出=25.3913879395、RTS 错误= 0.0000000000

    输入= 3.2344100、TMU 输出= 25.3913345337、Golden 输出= 25.3913879395、TMU 误差=-0.0000534058

    Input=6.4230309、RTS Output=615.8668823242、Golden Output=615.8668823242、RTS Error = 0.0000000000

    输入= 6.4230309、TMU 输出= 615.8727416992、黄金输出= 615.8668823242、TMU 误差= 0.0058593750

    输入= 9.2389936、RTS 输出= 10290.6777343750、黄金输出= 10290.6777343750、RTS 误差= 0.0000000000

    输入= 9.2389936、TMU 输出= 10290.5507812500、黄金输出= 10290.6777343750、TMU 误差=-0.1269531250

    Input=13.86100001、RTS Output=1046540.0000000000、Golden Output=1046540.000000、RTS Error = 0.0000000000

    输入= 13.86100001、TMU 输出= 1850481.3750000000、黄金输出= 1046540.000000、TMU 误差= 803941.37500

     

    谢谢、

    Sira

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢您的回答。

    然而,有两件事我不明白:

    1.  反正切的精度似乎可疑:
      32位 IEEE754浮点的最大精度在3E-8和6E-8之间
      (ULP 相对于编码值的一半)。
      精密度如何达到 1.036096E-8?

    2.  指数的精度:最大值(7 ULP、2^-20)
      与示例不一致
      输入= 13.861、TMU 输出= 1850481.375、TMU 误差= 803941.375
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pierre:

    1.让我进一步研究一下。  

    2.是的,它是一个 Max 函数,而对于浮点数, ULP 会随着数字的增大而增大。

    谢谢、

    Sira