クロック分配系

一般にプロセサのクロックは、外部の発振器から供給される基準クロックの整数倍の周波数のクロックが用いられる。

図2.7 クロック生成回路の構成

一般にクロック生成には図2.7に示すPhase Locked Loop(PLL)と呼ばれる回路が用いられる。PLLは、入力電圧によって周波数を変えることができる発振器VCO(Voltage Controlled Oscillator)を持ち、VCOの出力がプロセサコアのクロックとなる。Phase Detectorは入力信号の位相差に比例する電圧を出力する回路であり、この出力をローパスフィルタを通してVCOの制御電圧を作る。そして、このVCOの出力をカウンタで1/Nに分周してPhase Detectorで外部から供給される基準クロックとの位相の比較を行う。

1/N分周されたVCOの出力が基準クロックより低い場合にはPhase DetectorとローパスフィルタはVCOの発振周波数を上げる方向の電圧を出力し、逆の場合にはVCOの発振周波数を下げる方向の電圧を出力するので、結果としてVCOの発振周波数を1/N分周した信号と基準クロック信号の周波数が一致した点で安定する。つまり、VCOの発振周波数は基準クロックのN倍となる。Intelのx86プロセサでは133.33MHzの信号を基準クロックとして用いているので、その15倍の2.0GHz、17倍の2.27GHz、20倍の2.66GHzというようなクロック周波数のプロセサ製品が作られることになる。

このVCOで生成されたクロックを10万から20万個という大量のFFのクロック端子に分配する必要がある。前述のように、信号の送端と受端のFFのクロックのタイミングのずれは直接サイクルタイムのオーバヘッドとなるので、クロックSkewを極力少なくする必要があり、設計方針にもよるが、一般的にはサイクルタイムの5~10%以内のずれを達成することが求められる。2.66GHzクロックの場合サイクルタイムは376psであり、 5%とすると、これはFFのクロック信号を±9.4psのずれの範囲で供給する必要がある。

32nmプロセスのLogical Effortの単位遅延時間は2~3psでありElectrical Effortが4のインバータの遅延時間は10~15psとなるので、このインバータ1個の遅延時間より小さい時間のずれで10~20万個のFFにクロック配ることが要求される。