クロックスキュー(英: Clock skew)とは、クロック同期型の電子回路において、クロック回路から送られるクロック信号が、回路の異なる部分に異なったタイミングで到着する現象である。この現象は、中間経路に存在する回路、容量性カップリング、材料的な欠陥、クロックに対する入力容量などの様々な要因から発生しうる。クロックの周波数が高まると、タイミングはより重要になり、回路の正常動作に許容される到着時間の変動幅は小さくなる。スキューには、負のスキューと正のスキューの二種類がある。正のスキューはクロックがあるレジスタが別のレジスタに対してデータを送る際、受信側より先に送信側にクロックが到着するケースで、負のスキューはその逆である。

有害なスキュー クロックスキューによって二種類の問題が生じうる。一つはクロックがレジスタ同士のデータ転送より遅く到着する場合で、データが同じクロック内で二つのデータにいるか、取得されたデータが正常なものでない可能性がある。これは、送信先のフリップフロップにクロックが届くまで、以前のデータが十分な時間ホールドされなかったということで、ホールド時間違反と呼ばれる。もう一つの問題は、送信先のフリップフロップが送信元より早くクロックを受信する場合である。この場合にはデータの信号が送信先のフリップフロップに到達するのに時間が短すぎる。新しいデータが、次のクロック信号が到達する前に十分安定した状態になっていないため、セットアップ時間違反が発生する。ホールド時間違反はセットアップ時間より深刻で、クロックの周期を長くしても解決できない。正のスキューも負のスキューも、単独でセットアップ時間やホールド時間に悪影響を与えるわけではない(下の不等式を参照)。

有益なスキュー クロックスキューは電子回路が正常に動作可能なクロックの周期を短くすることができる場合もある。パスで連結された送信元・送信先のレジスタについて、下記の不等式が成立する。

ここで T クロックの周期 reg 受信レジスタのクロックから Q までの遅延 送信元から送信先へのパスの中で、最も遅延が大きいもの S 送信先レジスタのセットアップ時間 送信元から送信先へのパスの中で、最も遅延が小さいもの H 送信先レジスタのホールド時間 は送信元から送信先のレジスタへのクロックスキューを示す 送信先レジスタに対するクロックスキュー 送信元レジスタに対するクロックスキュー である。従って、不等式 2. の範囲ではクロックスキューを大きくすることでクロックの周期を短くすることができる(もちろんクロックを共有する全ての送受信レジスタについて同式を成立させる必要がある)。

関連項目 Clock drift

参考文献

Friedman, E.G., ed., Clock Distribution Networks in VLSI Circuits and Systems, IEEE Press, 1995. Maheshwari, N., and Sapatnekar, S.S., Timing Analysis and Optimization of Sequential Circuits, Kluwer, 1999. Tam, S., Limaye, D.L., and Desai, U.N., "Clock Generation and Distribution for the 130-nm Itanium 2 Processor with 6-MB On-Die L3 Cache", in IEEE Journal of Solid-State Circuits, Vol. 39, No. 4, April 2004.