Renesas Synergy™

FAQ 107331 : R8Cファミリで命令実行サイクル数を正確に確認する方法を教えてください。

Q: 質問

R8Cファミリで命令実行サイクル数を正確に確認する方法を教えてください。


A: 回答

命令実行サイクル数の基本的な計算方法は「R8C/Tinyシリーズソフトウェアマニュアル」にてご確認いただけます。

まずは「第4章 命令コード/サイクル数」をご参照ください。
ここに示す値は、命令キューバッファに命令コードが揃っており、メモリに対し8ビットのデータをソフトウェアウェイトなしに読み書きする場合のサイクル数です。
この値は「R8Cファミリ用シミュレータデバッガ V.1.03 Release 00」で計測されるサイクル数と一致しています。

しかし、ソフトウェアマニュアル「第6章 サイクル数の計算」に示すとおり、実際の実行サイクル数は下記の要因により「第4章」の値より増加します。

  • 命令キューバッファにCPUが必要とする命令コードが揃っていない。
  • ソフトウェアウェイトサイクルが存在する領域にデータを読み書きする。
  • 16ビットのデータをSFRもしくは内部メモリに対して読み書きする。

更に、同一タイミングでプリフェッチとデータアクセスが発生した場合、データアクセスが優先されます。
また、命令キューバッファ内に命令コードが3バイト以上存在するときは、命令キューバッファに空きがないと判断してプリフェッチを行いません。

これらを加味した実測値により近い命令実行サイクル数を計測するために、「M16Cシリーズ, R8Cファミリ用シミュレータデバッガ V.1.04 Release 00」をご使用ください。
詳細は以下を参照お願いします。
https://www.renesas.com/ja-jp/products/software-tools/tools/simulator/m3t-pd30sim-for-m16c-and-r8c.html#documents

「M16Cシリーズ, R8Cファミリ用シミュレータデバッガ V.1.04 Release 00」をご使用いただいた場合、「第4章」に示す値より実測値に近い命令実行サイクル数を計測することが可能となります。

ただし、実際の命令実行サイクル数を正確に確認したい場合は、コンパクトエミュレータもしくはフルスペックエミュレータをご使用いただく必要があります。

 

適用製品

M16C, R8C/Tinyシリーズ用シミュレータデバッガ [M3T-PD30SIM]
M16Cシリーズ,R8Cファミリ用シミュレータデバッガ [High-performance Embedded Workshop対応]
他にご質問がございましたら、リクエストを送信してください