« 作業服作りました | トップページ | RX62Nにファイルシステムを移植 »

2011.04.29

RX62NのSDRAMパフォーマンス測定

CPUに内蔵のタイマカウンタを使って、関数の実行時間を測定できるようにしてみました。
6MHzのクロックでカウントアップさせているので、166nsの間隔で測定できます。
わかりやすいように、カウント値を6で割って、μ秒単位で測る事にしました。

このタイマカウンタで、SDRAMのメモリ操作に関する時間を計ったところ、
memset関数で16MBytesを埋めたときの時間は、0.44秒でした。
また、memcpy関数でSDRAMからSDRAM上へコピーしたときの時間は、約2倍かかっています。CPUのバスサイクルを考えると、この所要時間は至極妥当なものでした。

Rx62n_sdram_performance

何度やっても同じ数字がでるし、μ秒の単位まで全く同じ数字が出ることもありますので、正確に測れているのでしょう。
ためしに、リフレッシュの頻度や、CASレイテンシなどを変化させてみると、この時間が微妙に変化するので、可愛らしいです。

for文でSDRAMの16MB全域を書き換えても1秒以内なので、データ用メモリとして扱う分には、許容範囲といえるかと思います。

ところで、SDRAM上にプログラムをロードして実行してみると、実行速度はどうなるでしょうか? どんなコードを実行するかでも変わってきますが、答えをここに書くのは、差し控えます。SDRAM上での実行速度が気になる方は、メールでお問い合わせください。

このCPUが外部バスから命令をフェッチするときにどのように動作するのか、ということを突き詰めて考えていくと、興味深い結果なのだと思います。

|

« 作業服作りました | トップページ | RX62Nにファイルシステムを移植 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 作業服作りました | トップページ | RX62Nにファイルシステムを移植 »