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.

FLOPS of the MSP430

Other Parts Discussed in Thread: MSP430F1232, MSP430F47186

If we are asked about FLOPS (Floating-point Operation Per Second) of the MSP430, how can we calculate?

I would like to know the FLOPS of the MSP430F47186 and MSP430F1232.

Thanks in advance.

  • Some devices have MPY unit, hardware (executed in few cycles) unsigned/signed multiply with integer or fractional numbers. It deepens on target device, so you can check datasheet for two devices you are interested in. General/standard support for floating-point operation can be done in software but than FLOPS is related to quality of final algorithm implementation.

  • Thank you for your reply, zrno soli.

    With the keyword 'MPY' you suggested and "floating point" etc, I found the following page.

    The MSP430F47186 has MPY unit. And according to the above page, it takes 12 cycles for both of addition and multiplication.
    So, I guess that 
    16 MHz / ( 2 * 12) = 0.66 MFLOPS
    is the upper bound of the FLOPS for MSP430F47186.
  • Check MPY for MSP430F4xx family user guide http://www.ti.com/litv/pdf/slau056l

    Also, check this thread http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/158093.aspx

    And for complete floating point support check this http://www.ti.com/tool/mspmathlib

  • Thank you very much for the further information.

  • OKY said:

    http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/18561.aspx

    The MSP430F47186 has MPY unit. And according to the above page, it takes 12 cycles for both of addition and multiplication.
    So, I guess that 
    16 MHz / ( 2 * 12) = 0.66 MFLOPS

     Hi MPY processing take time from last operand load and execute before next operation, so 12 cycles from examples you mentioned if you reread OCY postings is from complex operand load and store not MPY unit. Also OCY say some time are required to convert from Float to Fix Point so you assumption sound wrong, this is twice the time needed to get operand from memory and store to MPY register, after that MAC is executed one cycle later, when you read result no wait to.

     Again Floating point speed is highly dependant from calculus, elementary operation can be converted to Fixed. In case of pure FP compiler library dictate the efficiency of calculus, if fast FP is needed C2xxx series or TIVA TM4C perform better at similar processor prices.

    At end remember all timing is dependent from what is in your mind when applied to coding and your question was too generic to exactly compute.

  • Thank you very much, Roberto Romano

    Roberto Romano said:
    Hi MPY processing take time from last operand load and execute before next operation, so 12 cycles from examples you mentioned if you reread OCY postings is from complex operand load and store not MPY unit. Also OCY say some time are required to convert from Float to Fix Point so you assumption sound wrong, this is twice the time needed to get operand from memory and store to MPY register, after that MAC is executed one cycle later, when you read result no wait to.

    Thank you for the indication of my mistake. 

    Roberto Romano said:
     Again Floating point speed is highly dependant from calculus, elementary operation can be converted to Fixed. In case of pure FP compiler library dictate the efficiency of calculus, if fast FP is needed C2xxx series or TIVA TM4C perform better at similar processor prices.

    Thank you for the recommendation. However, I do not need fast FP currently. I would rather like to roughly estimate the FLOPS of MSP430.

    Roberto Romano said:
    At end remember all timing is dependent from what is in your mind when applied to coding and your question was too generic to exactly compute.

    I see. This question is more complicate than I thought.

  • OKY said:
    If we are asked about FLOPS (Floating-point Operation Per Second) of the MSP430, how can we calculate?

    You cannot. The MSP430 has not hardware FPU, so any floating point performance depends on compiler brand, compiler settings, and the skill of the coder of the FP (software) functions.

    FLOPS can only be specified if the device has a hardware FPU which provides a fixed timing of the floating point operations.

  • Thank you very much for your reply, Jens-Michael Gross.

    Jens-Michael Gross said:
    You cannot. The MSP430 has not hardware FPU, so any floating point performance depends on compiler brand, compiler settings, and the skill of the coder of the FP (software) functions.

    I see. 

    Jens-Michael Gross said:
    FLOPS can only be specified if the device has a hardware FPU which provides a fixed timing of the floating point operations.

    I was not familiar with FLOPS. This time, I learned a lot from what you (and other people) replied.

    Thank you.

**Attention** This is a public forum