ホーム フォーラム Texas Instruments マイコン C2000 演算処理速度について

このトピックには1件の返信が含まれ、2人の参加者がいます。6 年、 1 ヶ月前Yojiro Yojiro さんが最後の更新を行いました。

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿
  • #3606 返信

    tora
    参加者

    演算処理速度について

    デバイス型番:F28M35H52C1

    下記演算の処理速度を教えてください。
    1)float + float
    2)float – float
    3)float * float
    4)float / float
    5)sin(float)
    6)cos(float)
    7)int + int
    8)int – int
    9)int * int
    10)int / int

    #3643 返信
    Yojiro
    Yojiro
    従業員

    各演算については、高級言語では時間の定義がされておりませんので、アセンブラ命令レベルでの実行サイクルについて、説明いたします。
    なお、数値につきましては、純粋な命令の実行サイクルとなっており、レジスタへのコピーなどのサイクル数は含まれません。

    F28M35H52C1には、FPUが搭載されておりますので、浮動小数点の加減乗算につきましては、以下の通りとなります。
    1)float + float : 1 cycle
    2)float – float : 2 cycle
    3)float * float : 2 cycle
    これらの命令の実行前には、各命令で使用するレジスタへ値が反映されるまでに4cycleの遅延が必要となります。
    参考資料)TMS320C28x Extended Instruction Sets Technical Reference Manual

    浮動小数点の除算および三角関数演算につきましては、ソフトウェアライブラリにて実行されます。
    コンパイラにて自動的にライブラリ(Run time support library:RTSライブラリ)の呼び出しが行われますが、RTSライブラリの実行速度については、定義されておりません。
    標準ライブラリのほかに、FPU搭載C2000デバイス向けに三角関数および除算を高速化したライブラリ(fastRTS Library)が用意されており、このライブラリでは、以下のように実行サイクル数が定義されております。
    4)float / float : 24 cycle
    5)sin(float) : 41 cycle
    6)cos(float) : 42 cycle
    参考資料)C28x Floating Point Unit fastRTS Library

    整数の演算につきましては、浮動小数点と同様にアセンブラ命令の実行サイクルは以下のとおりです。
    7)int + int : 1 cycle
    8)int – int : 1 cycle
    9)int * int : 1 cycle
    参考資料)TMS320C28x CPU and Instruction Set Reference Guide

    整数の除算につきましては、RTSライブラリが使用されるため、浮動小数点の除算と同様に具体的な数値はありませんでした。

    情報として不足しているものもございますが、ご査収のほど、よろしくお願いいたします。

2件の投稿を表示中 - 1 - 2件目 (全2件中)