メディア
連載
» 2019年03月28日 11時00分 公開

Q&Aで学ぶマイコン講座(45):フラッシュメモリにはウェイトステートがなぜ必要なのか (2/4)

[STマイクロエレクトロニクス,EDN Japan]

一般的なメモリのデータ出力タイミング

 図2に一般的なメモリの読み出しタイミングを示します。メモリに接続される信号は製品でさまざまですが、ここでは必要最低限の信号だけ記載します。アドレス信号の他、メモリからのデータ出力機能を有効にするOE(出力イネーブル信号)、メモリモジュール(またはIC)が選択されていることを示すCS(チップセレクト信号)です。OEとCSはローアクティブ信号(ローレベルの時に有効)なので、文字の上にバー(オーバーライン)が付きます。

図2:メモリのデータ読み出しタイミング (クリックで拡大)

 一般的なメモリは、アドレスが確定し、OEとCSが有効になってから、出力データが確定するまでに、ある程度の時間が必要です。出力ラインは、それまでは不確定値(多くの場合は、H-Z[ハイインピーダンス]状態)になります。

汎用マイコンの場合

 汎用マイコンでウェイトステートの影響を受けるのは、主にフラッシュメモリから命令を読み出し、フェッチする動作です。マイコンに搭載されているフラッシュメモリなどの不揮発性メモリ(NVM:Non-Volatile Memory)も、図2で示した読み出し時間が必要です。図3にマイコンのフラッシュメモリの命令読み出しタイミングの例を示します。

図3:マイコンのフラッシュメモリからの命令読み出しタイミング (クリックで拡大)

 フラッシュメモリなどの不揮発性メモリからの読み出し動作はシステムクロックに同期しません。アナログ的な一定時間です。一方、システムクロックは、ユーザーがプログラムで選ぶことができます。そのため、フラッシュメモリの読み出しサイクルとユーザーが選択したシステムクロックサイクルが合っている場合(図3の命令フェッチケース1の場合)は、ウェイトステートは不要です。システムクロックサイクルがフラッシュメモリから命令を読み出すサイクルよりも短い場合(図3の命令フェッチケース2の場合)は、不確定な命令がフェッチされてしまい、ウェイトステートが必要になります。まとめると次のようになります。

  • 「システムクロックサイクルの1周期」≧「読み出し時間」であればウェイトステートは不要
  • 「システムクロックサイクルの1周期」<「読み出し時間」であればウェイトステートは必要

 次に、具体的な製品を使って詳しく解説します。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.