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.

TMS320F28384S: 32-bit vs 64-bit floating point support trade-off

Part Number: TMS320F28384S
Other Parts Discussed in Thread: C2000WARE

Our team uses floating point calculations to support some control algorithms. We're looking for any detailed information about the 28384S and the support it gives for CPU1, CM, and CLA in regards to floating point use.

If we move from 32-bit to 64-bit floating point support on CPU1, what would be the trade-off? Speed/size? I understand that finally numbers are application dependent, but what would the tradeoff be for a single calculation? Would enabling 64-bit floating point support cause any changes to calculations that only use 32-bit floats?

Also, the CLA documentation seems to indicate that only 32-bit is supported. Can it support 64-bit floating point calculations?

  • Hello Wesley,

    The size tradeoff is an intuitive one, you will have variables that take up twice the amount of space.

    Speed-wise, I know that based on some of the C2000Ware libraries such as the FFT library in DSP FPU, the FPU64 version does take longer to perform the same sort of calculations, but I don't know if there's an exact formula for this. I will check with another expert on this, as I could not find an instruction set regarding the FPU64 operations.

    Also, the CLA documentation seems to indicate that only 32-bit is supported. Can it support 64-bit floating point calculations?

    I will also ask another expert about this. It may take some time to get a response, so I will try to have an answer by the end of the week.

    Best regards,

    Omer Amir

  • It’s in Sec 3.3 of the C2000 Essential Guide spracn0.

     

    No, the CLA doesn’t have native double precision float hardware support. It will be handled by the compiler in SW.

     

    The only catch is if the output format is COFF – then there is ONLY 32-bit float support on the CLA. With EABI, there is 64b support.

    Thanks,

    Sira

  • Thank you Omer Amir!

  • Hi Sira,

    I'm looking for where EABI supports 64bit float on CLA. I don't see that in the sparcn0. Looking at our project options, I do see now that FPU64 is only supported for EABI. When we move to FPU64 will that automatically make both CPU and CLA utilize 64-bit floats?

    The sparcn0 document indicates that "While the C28x core is a more traditional processor, executing instructions and servicing interrupts, the CLA is a task driven state machine. The CLA is a 32-bit floating point architecture" seems to indicate that 64-bit calculations are not available.

    Also "The FPU64 module extends the computing capabilities of the C28x CPU by providing native hardware support
    for IEEE-754 single-precision and double-precision floating point operations" seems to indicate that the CLA is not affected by FPU64 module.

    Best regards,

    -Wes

  • Would the CLA be doing 64-bit calcs basically along the lines of Table 3-3 when the FPU64 is disabled? (i.e. 2222 cycles?)

    Thanks,

    -Wes

  • When we move to FPU64 will that automatically make both CPU and CLA utilize 64-bit floats?

    You can move the C28x FPU to 64-bit float independent of the CLA. Note that on an C28x FPU64 capable device, the C28x can still perform FPU32 operations.

    The CLA is a 32-bit floating point architecture" seems to indicate that 64-bit calculations are not available.

    The CLA does not have any native opcodes (CPU instructions) to support 64-bit float. Any 64-bit float operations use software and I would expect these calculations to be slow.

    "The FPU64 module extends the computing capabilities of the C28x CPU by providing native hardware support
    for IEEE-754 single-precision and double-precision floating point operations" seems to indicate that the CLA is not affected by FPU64 module.

    Correct. The FPU64 extends the instruction set of the C28x FPU32.  It does not impact the CLA.

    Would the CLA be doing 64-bit calcs basically along the lines of Table 3-3 when the FPU64 is disabled? (i.e. 2222 cycles?)

    Unfortunately I don't have any benchmark numbers, but yes - I expect any 64-bit calculations on the CLA to be slow.

    Regards,

    Lori