3. デバイス設計・回路8 / 10ページ

時刻をそろえる:クロックとタイミング

公開日:作成者:hysd(SemiCompass運営者)

このページの目次
  1. 回路は、共通の合図で動く
  2. 記憶素子と、組み合わせの回路
  3. 次の切り替わりまでに、間に合うか
  4. 速すぎても、問題が起きる
  5. クロックを、全体に配る
  6. タイミングを確かめる
  7. このページのまとめ
  8. 関係する工程と用語
  9. 次に読む
  10. 理解度チェック

チップの中の回路が、クロックという共通の合図で動作をそろえる仕組みを説明する。記憶素子の間を信号が届く時間、動かせる速さの上限を決める最も遅い経路、クロックのずれと、タイミングを確かめる設計を扱う。

記憶素子の間の計算と、経路の長さ(模式図)

  1. 記憶計算の回路記憶共通の合図(クロック)計算に時間がかかるクロックで動く回路次のクロックまでに結果が届く
  2. 所要時間短い経路中くらい最も遅い経路クロックの間隔最も遅い経路より長くする経路の長さ最も遅い経路が上限を決める
図:左は、クロックで動く回路。記憶素子から出た値が計算の回路を通り、次のクロックで次の記憶素子に取り込まれる。右は、経路ごとの所要時間。最も遅い経路が、クロックの間隔の下限を決める。目盛りのない模式図、本サイトで作成

回路は、共通の合図で動く

プロセッサーのような大きな回路では、非常に多くの部分が、順番を守って動く。もし各部分が、ばらばらの時刻で動くと、まだ計算が終わっていない値を、次の部分が読んでしまう。

そこで、多くのチップは、共通の合図を使って、動く時刻をそろえる。この合図が、クロックである。クロックは、一定の間隔で、入り切りを繰り返す信号である。このページでは、クロックを使って回路をそろえる仕組みと、そこで生じる制約を見ていく。

記憶素子と、組み合わせの回路

クロックで動く回路は、二つの部品からなる。一つは、値を覚える記憶素子である。記憶素子は、クロックが切り替わる瞬間に、入ってきた値を取り込み、次の切り替わりまで保つ。もう一つは、論理ゲートを組み合わせた、計算をする回路である。

動き方はこうである。クロックが切り替わると、記憶素子が値を取り込んで出力する。その値が、計算の回路を通って、結果が次の記憶素子の入口に届く。次にクロックが切り替わったとき、その結果が取り込まれる。これを繰り返して、計算が進む。

次の切り替わりまでに、間に合うか

ここで大事なのは、計算の回路を信号が通り抜けるのに、時間がかかることである。論理ゲートを通るたびに、少し遅れる。配線を伝わるのにも、時間がかかる。

結果が、次のクロックの切り替わりまでに、記憶素子の入口に届かなければ、間違った値を取り込んでしまう。したがって、クロックの間隔は、計算の回路で最も時間のかかる経路よりも、長くなければならない。この最も遅い経路を、クリティカルパスと呼ぶ。チップの速さの上限は、クリティカルパスが決める。速く動かしたければ、この経路を短くする設計が必要になる。

速すぎても、問題が起きる

逆に、信号が速く届きすぎても、問題が起きる。取り込みの直後に、次の値が届いてしまうと、取り込もうとしている値が壊れる。値を取り込んだあと、一定の時間は、入口の値が変わらないようにしておく必要がある。

つまり、信号の到着は、遅すぎても、速すぎても、いけない。設計では、どちらの条件も確かめる。速すぎる経路には、わざと遅らせる部品を入れて、間に合わせる場合がある。

クロックを、全体に配る

クロックの信号は、チップのあらゆる記憶素子に、同じ時刻に届くのが理想である。しかし、場所によって、配線の長さや、部品の性質が違うので、届く時刻には、わずかなずれが生じる。これを、クロックのずれと呼ぶ。

ずれを小さくするために、クロックの信号を、木の枝のように、均等に分けて配る構造が使われる。配線の長さをそろえ、途中に信号を強める部品を入れる。チップの上でクロックを配る作業は、設計の中でも、電力と時間に大きく関わる部分である。

タイミングを確かめる

配置と配線が決まると、設計の道具が、すべての経路について、信号が届く時刻を計算する。間に合わない経路や、速すぎる経路が見つかれば、部品の大きさを変えたり、配線をやり直したりして直す。

このページのまとめ

チップの回路は、クロックという共通の合図で、動く時刻をそろえる。計算の結果は、次のクロックまでに、次の記憶素子へ届かなければならない。最も遅い経路が、チップの速さの上限を決める。速すぎても問題が起きるので、設計では、どちらも確かめる。

理解度チェック

本文の内容から答えられる問いです。答えを選ぶと、正しいかどうかと解説が出ます。

問1

チップの動かせる速さの上限を決めるものはどれか。

答えと解説を見る

答え:1. 最も時間のかかる経路(クリティカルパス)

クロックの間隔は、最も時間のかかる経路より長くなければならない。この経路が速さの上限を決める。

問2

信号の到着について、正しい説明はどれか。

答えと解説を見る

答え:1. 遅すぎても、速すぎても、問題が起きる

遅いと次のクロックに間に合わず、速すぎると取り込み中の値が壊れる。どちらも確かめる。