クロックとは
クロックとは、回路のあちこちに「いま値を取り込んでよい」と一斉に伝える、規則正しく上下する信号です。 命令を実行する時間を定める信号で、単位は周波数(Hz)で表せます1。クロックの役目は回路を速く走らせることより、値をいつ読み取るかを決めることにあります。周期の下限は回路の中でいちばん遅い計算が決め、周波数を上げるほど消費電流は大きくなります。
クロックは、組合せ回路が落ち着いた後の値だけを次の段へ渡す
Section titled “クロックは、組合せ回路が落ち着いた後の値だけを次の段へ渡す”マイコンを動かすにはクロック信号が要り、マイコン内の回路はほぼすべてがこの信号に同期して動きます2。たくさんの計算が同時に進むデジタル回路で、それぞれが済み次第かってに動きはじめると、いまどの値が正しいのかがあいまいなまま次へ進みます。クロックはその足並みをそろえる合図です。
計算の途中経過は汚れています。組み合わせ回路の中では信号の伝わる時間がわずかにずれ、出力にグリッチと呼ばれるごく短い信号が混じることがあります3。グリッチは論理回路の誤動作を招くので、避ける手立てとしてクロック同期回路を使います。
クロック同期回路は、組み合わせ回路をフリップフロップで前後から挟んだ構造です3。グリッチは出力が落ち着くまでの短い間にしか出ないので、落ち着いてからクロックを変化させ、その値をフリップフロップに保持すれば誤動作を避けられます。次の段へ渡るのは、落ち着いた後の値だけです。
読み取る瞬間の決め方にも段階があります。ラッチはクロックが1の側にある間ずっと入力を受けつけてしまうため、一度のクロックパルスで状態の切り替わりを一度きりに保つようパルスの幅に上限を設ける必要があり、そのぶん回路の設計が難しくなります4。この難しさを解いた記憶素子がフリップフロップで、なかでもエッジトリガ型は、入力の読み込みも出力の変化もクロックの立ち上がりか立ち下がりのどちらか一方の瞬間だけで済ませます。Dフリップフロップは、信号がLからHへ変わる立ち上がりか、HからLへ変わる立ち下がりの瞬間に入力の状態を保持し、出力を変えます3。
周期の下限は、いちばん遅い経路が決める
Section titled “周期の下限は、いちばん遅い経路が決める”過去の入力にも出力が左右される回路を順序回路と呼びます。内部の状態がクロックの合図で一斉に切り替わるものが同期式順序回路、クロック信号を使わずに動くものが非同期式順序回路です4。同期式順序回路では、時刻tに入力と現状態が組合せ回路部へ与えられて出力と次状態が計算され、次のクロックパルス、すなわち時刻t+1にその値が記憶回路に記憶されます。そのため、組合せ回路部での計算時間をクロックパルスの時間間隔より短く収める必要があります。
周期は回路の中でいちばん遅い計算より長く取る必要があります。周期を縮める道は、いちばん遅い1本を短くすることだけで、ほかの経路をどれだけ速くしても周期はそのままです。この「いちばん遅い1本」の代表格が加算器の桁上げです。桁上げは下の桁から上の桁へ順に伝わるため、桁数が増えるほど鎖が長くなり、加算器の作り方が何種類もあるのはこの鎖を短くするためです。
速さは、周波数と1命令あたりの周期数の両方で決まります。プロセッサの性能を表す量には、クロック周波数、CPI(Cycles Per Instruction)、MIPSなどがあり5、1秒あたり何回刻むかと、1命令が何周期を使うかは別の量です。マイコンのCPUが比較命令CMPを実行する時間はマイコンによって異なり、ロームが挙げる幅では、遅くても100マイクロ秒程度、速いものでは数十ナノ秒です1。この速度を決めているのがクロックです。
クロック源は、発振をどこで起こすかで三つに分かれる
Section titled “クロック源は、発振をどこで起こすかで三つに分かれる”マイコンが使えるクロックを起こす回路は、大きく三つあります2。内蔵発振回路はマイコンの中だけでクロックを起こすので、外に部品を足さずに手軽にクロックを得られます。振動子発振回路は、水晶やセラミックスの振動子をマイコンにつなぎ、内部の発振インバータと組ませてクロックを作ります。振動子の性質にもよるものの高い精度の発振周波数を得られ、なかでも水晶を使った発振は精度が正確で、時計の用途にも回されます2。外部クロック回路は発振をマイコンの外に任せ、できあがったクロックを受け取る形で、外側のクロック源には水晶発振器などが使われます。
水晶発振器は、水晶振動子と発振回路を一つのパッケージに収めた電子部品で、安定した周波数を発生させて規則正しい基準信号を作ります6。水晶振動子は、水晶に力が加わると電気が生じる圧電現象を使って決まった周波数を生む素子です。振り子時計でいえば振り子にあたり、それ単体では動かないので、振り子を揺らし続ける役のICなどと組み合わせて使います。
用途は、周波数標準や時刻の基準に加えて、通信機器・産業機器・車載機器などの周波数信号源、時計のタイミングクロック、デジタル回路のクロック源です。エプソン水晶デバイスの製品群では、精度の目安が、温度補償と温度制御を省いたSPXOで一般的に±20〜±100ppm(温度範囲により変化)、温度補償回路を設けたTCXOで数ppmレベルとされています6。
クロックの精度は、配る途中の部品とノイズでも削られる
Section titled “クロックの精度は、配る途中の部品とノイズでも削られる”Texas Instrumentsは、差動信号を使わない限り、伝送線路に入ったノイズは信号の性能にそのまま響くとしています7。外付けの回路についても、部品はどれも限られた許容差で作られているので規定値からずれを持ち、その誤差は必ずクロック信号の精度に響く8という立場です。
同社のクロックドライバCDC85xでは、駆動するクロックの振幅が2.5 Vなら抵抗R1、R2とコンデンサC1の入力回路は要らず、単純な線路の終端で足りるとしています8。
周波数を上げれば消費電流が増え、下げれば仕事量が減る
Section titled “周波数を上げれば消費電流が増え、下げれば仕事量が減る”チップ内のクロックが速くなるほど消費電流の値は大きくなり、クロックが遅ければ、CPUが同じ時間でこなせる仕事の量は減ります2。そこでセイコーエプソンは、作る製品と、そこでCPUにやらせたい仕事に合わせて動作クロックの周波数を選ぶことを、いちばん重要な判断だとしています。込み入った計算を回す場面では周波数を上げ、何かが起きるまで待っているだけの場面では周波数を下げ、状況によってはクロックの供給を停止させることまで検討します。
この選び分けをチップの中で切り替えられるようにした例が、同社のS1C31W65です。先の三種類にあたるIOSC、OSC1とOSC3、EXOSCを一つのチップに載せ、用途に応じて使うクロック源をその場で選び替えられる仕様です。
クロックは、性能と消費電力を同時に動かすつまみです。組み込み機器の設計で動作周波数の話が必ず出てくるのは、この一本が仕事量と消費電流の両方を動かすためです。
非同期式は時計を配らず、事象の因果関係で動く
Section titled “非同期式は時計を配らず、事象の因果関係で動く”非同期式回路は、全体へ配る時計を持たず、ある事象が起きたという因果関係そのものを駆動の原理とする回路です4。前の段の計算が済んだという事実がそのまま次の段を起こす合図になるため、チップ全体へ時計を配る手間は省けます。設計では、論理ゲートや配線で遅れがどれだけ揺らぐかをどう見積もるか、その遅延の仮定が要になります。レジスタからレジスタへ値を送るという回路の基本動作についても、束データ方式や2線2相式といった実現方法が提案されています。
それでも、実務の設計解説は同期式を前提に書かれています。電子情報通信学会の『知識の森』の順序回路の章は、状態の移り変わりをクロックの刻みに合わせて行う同期式順序回路を先に据えて設計手順を示し、ルネサス エレクトロニクスもセイコーエプソンも、解説をクロック同期の前提で書いています。全体へ時計を配る手間を払ってでも、設計を単純にできることの価値が大きい、という見立てです。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”クロックとは何ですか?
命令を実行する時間を定める信号で、単位は周波数(Hz)で表せます。チップ内の回路は、ほぼすべてがこの信号に歩調を合わせて動きます。
なぜ、わざわざ足並みをそろえるのですか?
計算の途中経過が汚いためです。組み合わせ回路では信号の伝わる時間がわずかにずれ、グリッチと呼ばれるごく短い信号が出力に混じることがあります。それが誤動作を招くため、出力が落ち着いてから値を取り込むクロック同期回路を使います。
クロックを上げれば、いくらでも速くなりますか?
上限があります。同期式順序回路では、組合せ回路の側で計算に要する時間が、クロックの刻みの間隔の中に収まっている必要があります。周期は、回路の中でいちばん遅い経路に合わせることになります。
クロックはどこで作られるのですか?
マイコンが使えるクロックを起こす回路は、内蔵発振回路、振動子発振回路、外部クロック回路の三つに大別できます。違いは、発振をマイコンの中で起こすか、外の部品に任せるかです。
水晶がよく使われるのはなぜですか?
水晶やセラミックスの振動子をマイコンにつなぐ振動子発振回路は高い精度の発振周波数を得られ、なかでも水晶を使った発振は精度が正確で時計の用途にも回されます。水晶発振器の用途には、周波数標準や時刻の基準、デジタル回路のクロック源があります。
クロックを上げると、何と引き換えになりますか?
消費電流です。チップ内のクロックが速くなるほど消費電流の値は大きくなります。逆にクロックが遅いと、CPUが同じ時間でこなせる仕事の量が減ります。
クロックを使わずに動く回路もありますか?
あります。順序回路は同期式と非同期式に大別でき、非同期式順序回路は全体へ配る時計を持たず、ある事象が起きたという因果関係そのものを駆動の原理とする回路です。
比較・違いを学ぶ
Section titled “比較・違いを学ぶ”8件を表示
- 1ローム:マイコンの構成rohm.co.jp ab
- 2セイコーエプソン:マイコンの動作クロック、消費電力、電源についてepson.jp abcd
- 3ルネサス エレクトロニクス:エンジニアスクール 順序回路、フリップフロップrenesas.com abc
- 4電子情報通信学会:知識の森 1群8編3章 有限状態機械と順序回路ieice-hbkb.org abc
- 5
- 6エプソン水晶デバイス:水晶発振器とは?epsondevice.com ab
- 7
- 8