10

26

コメント

キャッシュメモリとリアルタイム性

こんにちは。
ビーコンの菅原です。


キャッシュメモリが効いているマイコンシステムの注意点として、割り込みの応答時間に最悪の場合を想定しなければならないということがあります。

割り込みの図

図のように短い時間に連続して同じ割り込みが入る場合に、一回目だけ応答や処理に時間がかかることがあります。
このため一発目の割り込み処理を失敗するなどのバグがでます。

これはキャッシュがヒットしないためにメモリからノロノロと読み込んでいるためです。
割り込みの応答時間はキャッシュが効かなくても間に合う設計にしなくてはなりません。設計で計算しきれない場合には、デバッグ時にキャッシュコントローラーをオフにして割り込みの取りこぼしがないかとか、割り込み処理が時間内に終わるかを確認するという手もあります。

※キャッシュメモリのやり方はマイコンによって違いますので、どのシステムでも図のようなタイミングダイアグラムになるとは限りません。

10

24

コメント

キャッシュメモリなしでSDRAM

こんにちは。
ビーコンの菅原です。


ルネサステクノロジの SH2AにはSDRAMを接続できるものがあります。

注意しないといけないのがキャッシュメモリの有無です。

SH2Aシリーズの中にはSH7211などキャッシュメモリがないマイコンがあります。
おそらく安価なSDRAMで大容量メモリという要求があったのでしょうが、いくらSDRAMに供給するクロックが速くても、キャッシュコントローラなしではアクセスに時間がかかります。
速さが求められるところでは内蔵RAMを使い、多少時間がかかっても大量に記録したいところでは外部のSDRAMを使うという設計思想でしょうか。


SDRAM上にプログラムをおいてデバッグし、プログラムが完成したら内蔵ROMに書き込むということをすると、実行速度が全然違うのデバッグ時と運転時に挙動がちがう可能性もあります。(そもそも、そのようなプログラムは作ってはいけません)

同様に、SDRAM上にプログラムを配置して実行することはできますが、SH2A本来の実力からいうとかなり動作が遅くなります。

また、スタックは高速な内蔵RAM上に配置すべきです。


※前のブログより転載記事※

10

17

コメント

M16CのDMAについて 

こんにちは。
ビーコンの菅原です。


ルネサスのM16C内蔵のDMACはメモリ間転送に使えません。
簡単にいうとmemcpyの代わりには使えないということです。

ソフトウェアトリガでDMAをスタートすると、1サイクルDMAが実行されるだけです。また、転送元と転送先の転送方法もどちらか、あるいは両方固定番地にしなくてはならないという仕様となっています。これではメモリ間転送できません。残念。


M32C/80シリーズはDMAC?というのがあって、これはメモリ転送にも使えます。

※前ブログより転載※

プロフィール

ビーコン菅原

Author:ビーコン菅原
組み込み始めてそろそろ25年。マイコンとか電子回路が大好きなんですよー

メールフォーム

名前:
メール:
件名:
本文:

Twitter

カウンター(UV)

月別アーカイブ

07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  03  02  01  12  11  10  09  07  05  02  12  10  09  08  07  05  04  03  11  09  08  07  06  03  02  01  12  11  10  09  08  07  06  05  04  02  12  11  10  08  02  12 

QRコード

QRコード

Designed by

Ad