図2に一般的なメモリの読み出しタイミングを示します。メモリに接続される信号は製品でさまざまですが、ここでは必要最低限の信号だけ記載します。アドレス信号の他、メモリからのデータ出力機能を有効にするOE(出力イネーブル信号)、メモリモジュール(またはIC)が選択されていることを示すCS(チップセレクト信号)です。OEとCSはローアクティブ信号(ローレベルの時に有効)なので、文字の上にバー(オーバーライン)が付きます。
一般的なメモリは、アドレスが確定し、OEとCSが有効になってから、出力データが確定するまでに、ある程度の時間が必要です。出力ラインは、それまでは不確定値(多くの場合は、H-Z[ハイインピーダンス]状態)になります。
汎用マイコンでウェイトステートの影響を受けるのは、主にフラッシュメモリから命令を読み出し、フェッチする動作です。マイコンに搭載されているフラッシュメモリなどの不揮発性メモリ(NVM:Non-Volatile Memory)も、図2で示した読み出し時間が必要です。図3にマイコンのフラッシュメモリの命令読み出しタイミングの例を示します。
フラッシュメモリなどの不揮発性メモリからの読み出し動作はシステムクロックに同期しません。アナログ的な一定時間です。一方、システムクロックは、ユーザーがプログラムで選ぶことができます。そのため、フラッシュメモリの読み出しサイクルとユーザーが選択したシステムクロックサイクルが合っている場合(図3の命令フェッチケース1の場合)は、ウェイトステートは不要です。システムクロックサイクルがフラッシュメモリから命令を読み出すサイクルよりも短い場合(図3の命令フェッチケース2の場合)は、不確定な命令がフェッチされてしまい、ウェイトステートが必要になります。まとめると次のようになります。
次に、具体的な製品を使って詳しく解説します。
Copyright © ITmedia, Inc. All Rights Reserved.