マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「マイコンのクロック」についてです。
素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。
今回は、初心者から多く寄せられる質問です。
マイコンには、必ず発振回路が内蔵されていて、そこで生成されたクロックで動作していますが、クロックはなぜ必要なのでしょうか? 例えば、論理回路の演算器の場合、演算したい値を入力すれば論理的に演算結果が出力されるので、クロックが無くても結果が得られると思います。マイコンの内部でクロックはどんな働きをしているのでしょうか?
確かに、論理回路に演算したい値を入力すると、論理回路が演算してくれて、その結果が出力されます。入力値を変更すれば演算結果も変わります。しかし、演算したい値を入力するタイミングと、演算結果が出力されるタイミングが合っていないと、次段の演算回路に正確な演算結果が伝搬されません。マイコン内部では、演算のタイミングをクロックに同期して行うことにより、正確に演算結果を伝搬するようになっています。
多くの場合、クロックの1サイクル(周期)を1ステップとして、1つの演算を完結させます。その演算結果を次のサイクルで新たに演算することによって、演算を次段に進めていきます。
例えば、STマイクロエレクトロニクス(以下、ST)の汎用32ビットマイコン「STM32ファミリー」*1)に搭載されているCortex-M33プロセッサは、3段パイプラインを採用しています。1段目はフェッチ、2段目はデコード、3段目は演算です。各ステップは、内部クロックに同期しており、内部クロックの1サイクルごとに演算結果を出力して、次段の処理につなげています(図1(a))。もし、クロックでタイミングを合わせずに各処理が行われると、各演算結果が次段へ正確に伝搬されません(図1(b))
クロックの役割は、音楽を演奏する際にメトロノームでタイミングを合わせながら演奏するのに似ています。
このようにクロックは、マイコン内部の演算処理を同期させるために必要不可欠なものです。
*1)STM32ファミリー
Copyright © ITmedia, Inc. All Rights Reserved.