マイコミジャーナルサイトにコンピュータアーキテクチャの話というコラムが連載されています。
▼【コラム】コンピュータアーキテクチャの話(マイコミジャーナル)
http://journal.mycom.co.jp/column/architecture/index.html
ここ数回の話題は、メモリアクセスとキャッシュについてです。
▼第135回 メモリのアクセス時間とローカルメモリ
http://journal.mycom.co.jp/column/architecture/135/index.html
▼第136回 ローカルメモリの2つの方法
http://journal.mycom.co.jp/column/architecture/136/index.html
▼第137回 キャッシュの仕組み
http://journal.mycom.co.jp/column/architecture/137/index.html
▼第138回 キャッシュアクセスの2つの考え方
http://journal.mycom.co.jp/column/architecture/138/index.html
コラムでは、マイクロプロセッサのクロックの例を2.5GHzとしているので、ここではパソコン用のマイクロプロセッサを想定しているようです。
組み込み用のマイコンでは、クロックはもっと低い場合がほとんどですが、メモリアクセスとキャッシュの考え方は同じように考えて差し支えありません。
マイコンシステムのリアルタイム性能は、CPUの内部クロックだけでなく、インストラクション(命令コード)格納用メモリと、データ格納用メモリのアクセス時間に大きな影響を受けます。
メモリアクセスが1クロックで行われるのが理想的ですが、高速なメモリはコストがかかるので、内部クロックが高速になればなるほど、メモリアクセスサイクルとの乖離が大きくなる傾向が発生します。
その乖離の緩衝役を担うのがキャッシュです。
逆に言うと、クロックが低くて、1サイクルでアクセスできるメモリが用意できる場合はキャッシュは必要ありません。
内部クロックが数十MHz程度のワンチップマイコンの場合は、1サイクルでアクセスできるROMやRAMを内蔵している場合が多いですね。
内部クロックが100MHz以上の場合は、現在のテクノロジだと、特にROMは1サイクルでアクセスできるものを内蔵することが難しくなってきます。
私が扱ったマイコンの例だと、NECのV850E/ME2(最大動作周波数150MHz)は、1サイクルでアクセスできる内蔵命令RAMと、内蔵データRAMを持っていました。
ROMは外付けとし、そこに格納した命令コードを内蔵命令RAMに転送して実行することで、命令コードの読み出しを1サイクルで行えるようにしていました。
ルネサステクノロジのSH7211(最大動作周波数160MHz)の場合は、内蔵RAMは1サイクルアクセスでしたが、内蔵ROMは1サイクルではなく(ROMのアクセスサイクル数はデータシートに未記載)、内蔵ROM+内蔵キャッシュで1サイクルアクセスとほぼ同等の性能を実現しているとのことでした。
SH7211のニュースリリースには下記のように記載されていました。
(1) 独自のフラッシュメモリや回路の技術により、160MHz の高速動作を実現本製品は、512K バイトの大容量フラッシュメモリを搭載しています。
CPU コア等のロジック回路は160MHz の高速動作が可能ですが、
一般的に、フラッシュメモリはロジック回路にくらべて
原理的に動作速度が遅く、高速化が困難です。
しかし、本製品では、当社がこれまで培ってきた
独自のフラッシュメモリ技術ならびにフラッシュメモリの
キャッシュ回路等の新回路方式を採用し、
160MHz で1 サイクルアクセスを行う場合と
ほぼ同等の性能を実現しています。
▼写真はSH7211を搭載した市販のマイコンボード
>>ハードウェア資源の有効活用
>>リアルタイム制御
>>多軸同期制御.COMのサービス
>>お問い合わせフォーム