マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。45回目は、初心者の方からよく質問される「フラッシュメモリのウェイトステート」についてです。
素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。
今回は、初心者から多く寄せられる質問です。
マイコンの説明書を読むと「フラッシュメモリのアクセス時間にウェイトステート(または、ウェイトサイクル)が必要」と書かれていますが、「ウェイトステート」とは何ですか? 必ず要るものですか? もし設定しないと何が起きますか? その他、ウェイトステートに関連した注意点があれば教えてください。
一般的に、メモリは読み出し信号(出力イネーブル信号)を受け取ってから、実際の出力データが確定するまでには時間(以下、読み出し時間)がかかります。もし、データを取り込むタイミングがメモリの読み出し時間よりも早い場合は、不確定なデータが取り込まれてしまいます。そこで、読み出し時間が経過するまで、データの取り込みを待ちます。この待ち時間を「ウェイトステート」または「ウェイトサイクル」と呼びます。
マイコンの場合は、フラッシュメモリが該当します。フラッシュメモリからは命令が出力されて、それをフェッチして、CPUが実行します。フェッチするタイミングが、読み出し時間よりも早い場合は、不確定な命令をフェッチしてしまい、マイコンの誤動作(フォールト*1))を引き起こします。そのため、この場合もウェイトステートを挿入して、確定した命令を取り込むようにします。
また、マイコンに内蔵されているRAMでも命令実行可能*2)ですが、一般的にRAMの場合は、読み出し時間が短いので、ウェイトステートは必要ありません。
*1)Q&Aで学ぶマイコン講座(44):フォールト(Fault)って何? 〜 種類と解析方法
*2)Q&Aで学ぶマイコン講座(34):RAMで命令を実行する方法
Copyright © ITmedia, Inc. All Rights Reserved.