検索
連載

低速読み出しフラッシュメモリでも、CPUが高速動作できる工夫とは?Q&Aで学ぶマイコン講座(109)(1/3 ページ)

マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「低速読み出しフラッシュメモリでも、CPUが高速動作できる工夫とは?」についてです。

Share
Tweet
LINE
Hatena

過去の質問一覧はこちら

 素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。

 今回は、初級者から多く寄せられる質問です。

質問です

 マイコンの説明書を見ると、フラッシュメモリの読み出し速度が20〜30MHzなのに、命令演算速度は100MHz以上になっています。命令を実行する速度に対してフラッシュの読み出しが間に合わないように思いますが、どのような仕組みで、低速のフラッシュメモリから高速演算ができるのでしょうか?

回答です

 製造プロセスにもよりますが、一般的なマイコンの高速動作に対応できるフラッシュメモリは技術的に実現可能です。しかし、製造コストが高くなり、さらに消費電流も大きくなります。そこで、なるべく低速のフラッシュメモリを使って、できるだけ高速で命令を実行するために、マイコンメーカーではさまざまな工夫をしています。

 最も基本的な方法として、FIFO(First-In First-Out)構成のプリフェッチバッファーがあります。

 内蔵のフラッシュメモリから、命令長のビット数の整数倍のビットを読み出し、プリフェッチバッファーに格納します。CPUはプリフェッチバッファーから順次1命令ずつ読み出して実行します。図1に32ビット命令のマイコンで、フラッシュメモリから128ビット同時読み出しを行う場合を示します。フラッシュメモリの読み出し速度は25MHzとします。CPUは100MHzで動作します。フラッシュメモリからは4命令分の128ビットを同時に読み出してプリフェッチバッファーに格納します。CPUは、プリフェッチバッファーから1命令ずつ実行します。100MHzで4命令を実行してる間に、フラッシュメモリから次の128ビットを読み出して、プリフェッチバッファーに格納すれば、命令の読み出しが途切れることなくCPUは100MHzの速度で命令を実行できます。

<strong>図1:プリフェッチバッファー(32ビット命令、128ビット同時読み出しの場合)</strong>
図1:プリフェッチバッファー(32ビット命令、128ビット同時読み出しの場合)[クリックで拡大]

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る