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.
您好!
我使用 TMS320F28069实现控制算法。 您能否指导我浮点除法需要多少个时钟周期?
谢谢!
您好!
您可以在以下文档中找到不同版本的周期计数。 您所指的器件支持 FPU32、因此您可以在 c2000ware 的以下文档中查看不同的例程及其周期。
...\ti\c2000Ware_3_03_00_00\libraries\math\FPUfastRTS\c28\docs\FASTRTS_SW_LIB_UG.pdf
我尝试查找浮点变量除法的执行时间、因为即使在优化时、它也要花费大约5us。 我还包含了示例代码2806xfpu_hardware 中所需的所有库。 在该文档中、我可以在本文档的第46页找到时间。 这些时间用于不同的器件、它们是否也适用于这里?
谢谢、
您好!
指令的周期计数将在各个器件之间保持一致。 您能否与文档中的数字共享指令所需的周期数?
-Shantanu
我不确定我应该从文档中考虑什么数字。 即使经过优化、计算一个除法运算也要花费2.7us。 在第46页的文档中、除法的周期为222、转换为2.5us。 但是、在前几页的同一文档中、除法周期为24。 您能否澄清哪个数字是准确的?
第47页上的周期是 fid_ui64byui32为35、 ui32byui32为23的周期。 ui64byui64的最大周期数为53 (第47页)。 我不确定您从哪里获得222号号码。 根据每个参数的数据类型、您可以找到不同的周期数(16位、32位、用于除数或除数的64位)。
我从可执行文件表函数 div_F32.out 的第46页中得到了222。 如果是这种情况、那么我不确定为什么它需要220个周期来执行1除法计算。
您好!
您引用的220个周期数是 来自标准 RTS 库的__c28xabi_divf 函数,该函数使用 Newton-Raphson 方法。 这是在软件中完成的、这会导致高周期计数。 如果在启用处理器选项和 TMU 支持(如文档中指定)的同时使用 FASTRTTS 库、您将看到周期计数低于42。'
-Shantanu
我现在明白了、谢谢。 但是、通过优化、我也无法缩短执行时间。 请帮帮我。
您好!
除非使用优化重建标准 RTS 库、否则不会看到任何更改。 如果您尝试使用 FPU 优化方法、它不会产生任何更改、因为 FPU 指令需要固定数量的周期。