(57)【特許請求の範囲】
【請求項１】
チップ上に設けられた同期型デジタルシステムであって、
前記同期型デジタルシステムは：
一次クロック信号を使用して動作するよう構成された、同期型デジタル論理；
前記同期型デジタルシステムが受信した外部クロック信号とは独立して第２のクロック信号を生成するよう構成された、オンチップクロック信号生成器；及び
前記一次クロック信号として使用するために複数のクロック信号の中からの選択を行うよう構成された、クロック信号セレクタ回路構成
を備え、
前記複数のクロック信号は、前記第２のクロック信号と、前記外部クロック信号に依存する第１のクロック信号とを含み、
前記クロック信号セレクタ回路構成は更に：
クロック選択オーバライド信号が通常動作を示している場合に、ソフトウェア設定可能レジスタの内容に少なくとも部分的に基づいて、前記複数のクロック信号の中からの選択を行い；
前記クロック選択オーバライド信号が、前記一次クロック信号として使用するためのオンチップで生成されたクロック信号の選択を必要とする条件を示している場合に、前記第２のクロック信号を選択する
よう構成され、
電力節約状態に入るという決定に応じて、前記オンチップクロック信号生成器及び前記クロック信号セレクタ回路構成が含まれるクロック生成回路構成は、前記第２のクロック信号が前記一次クロック信号として使用されるように構成され、
前記クロック選択オーバライド信号は、改ざん検出信号を含み、
前記一次クロック信号として使用するための前記オンチップで生成されたクロック信号の選択を必要とする前記条件を示す前記クロック選択オーバライド信号は、前記同期型デジタルシステムに起こり得る改ざんを示す前記改ざん検出信号を含む、同期型デジタルシステム。
【請求項２】
前記同期型デジタル論理は、前記同期型デジタルシステムに起こり得る改ざんを示す前記改ざん検出信号に応じて、連続クロック信号を必要とする安全対策を実施するよう構成され、
前記第２のクロック信号を選択することにより、前記外部クロック信号が停止されているかどうかに関わらず、前記安全対策を実施できるようにすることができる、請求項１に記載の同期型デジタルシステム。
【請求項３】
前記安全対策は、前記同期型デジタル論理の状態情報をクリアすることを含む、請求項２に記載の同期型デジタルシステム。
【請求項４】
前記オンチップクロック信号生成器はリング発振器を備える、請求項１に記載の同期型デジタルシステム。
【請求項５】
前記クロック信号セレクタ回路構成は、前記同期型デジタルシステム内でクロック誘発性のエラーを発生させることなく、前記複数のクロック信号の中からの選択をプログラムに従って行うよう構成される、請求項１に記載の同期型デジタルシステム。
【請求項６】
前記クロック信号セレクタ回路構成は、前記一次クロック信号として使用するために前記複数のクロック信号の中からの選択を行うよう構成された、デグリッチクロック多重化装置を備える、請求項１に記載の同期型デジタルシステム。
【請求項７】
チップ上に設けられた同期型デジタルシステム内でクロック信号エラーを回避する方法であって、
前記方法は：
前記同期型デジタルシステムが受信した外部クロック信号に依存するものである第１のクロック信号を、前記同期型デジタルシステムのための一次クロック信号として提供するステップ；
前記一次クロック信号として使用するためのオンチップで生成されたクロック信号の選択を必要とする条件を示すクロック選択オーバライド信号を受信するステップ；及び
前記受信に応じて、クロック信号セレクタ回路構成によって、第２のクロック信号を前記一次クロック信号として選択するステップ
を含み、
前記第２のクロック信号は、前記外部クロック信号と独立してオンチップクロック信号生成器によって生成され、
電力節約状態に入るという決定に応じて、前記オンチップクロック信号生成器と前記クロック信号セレクタ回路構成が含まれるクロック生成回路構成は、前記第２のクロック信号を前記一次クロック信号として使用し、
前記クロック選択オーバライド信号の受信は、前記同期型デジタルシステムに起こり得る改ざんを示す改ざん検出信号を含む、方法。
【請求項８】
前記同期型デジタルシステムに起こり得る改ざんを示す前記改ざん検出信号に応じて、連続クロック信号を必要とする安全対策を実施するステップを更に含み、
前記第２のクロック信号を選択することにより、前記外部クロック信号が停止されているかどうかに関わらず、前記安全対策を実施できるようにすることができる、請求項７に記載の方法。
【請求項９】
前記安全対策の実施は、前記同期型デジタルシステムの状態情報をクリアするための複数のステップを実行するステップを含み、
前記第２のクロック信号は、前記実行中、前記一次クロック信号として使用される、請求項８に記載の方法。
【請求項１０】
前記オンチップクロック信号生成器はリング発振器を備える、請求項７に記載の方法。
【請求項１１】
前記一次クロック信号として前記第２のクロック信号を選択することは、前記同期型デジタルシステム内でクロック誘発性のエラーを発生させることなく実施される、請求項７に記載の方法。
【請求項１２】
前記一次クロック信号として前記第２のクロック信号を選択することは、１つ又は複数のデグリッチクロック多重化装置によって実施される、請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は電子システムに関し、より詳細には、デジタル電子システム内クロック信号分配ネットワーク、特に多数の処理ユニットを含む集積回路（ＩＣ）チップ内におけるクロック分配に関する。
【背景技術】
【０００２】
大型で高価なコンピュータシステムに関して、経済的事情からこれらコンピュータシステムは常にビジー状態になってしまう。性能は従来、１秒あたりの計算量として測定されていた。小型で安価なコンピュータに関して、連続的な高速動作は不要であり、これはバッテリ駆動式デバイスにとっては障害でさえある。コンピュータ及びデジタル信号プロセッサ（ＤＳＰ）の性能は、１ワットあたりの１秒あたりの計算量、又は１ジュールの使用エネルギあたりの計算量として測定されるようになってきている。
【０００３】
１回に数時間も高性能動作が必要とされる、エンターテインメント分野での応用が存在する一方で、小型コンピュータのほとんどの使用は、１分未満の突発的な高性能の発揮を必要とするものである。実際には、小型組み込み型コンピュータ又はデジタル信号プロセッサ（ＤＳＰ）が低速で良好に動作できる場合、多数の時間間隔が存在する。マイクロコンピュータのための回路技術は、計算速度に比例して電力を消費するため、低速で動作する機会は、電力消費を低下させてバッテリ残量を温存する機会となる。このような機会は個人用電子デバイス（ｐｅｒｓｏｎａｌ  ｅｌｅｃｔｒｏｎｉｃ  ｄｅｖｉｃｅｓ：ＰＥＤ）に関して最も多くなり得、ここで世間の関心及び注目は、マイクロコンピュータ及びマイクロコンピュータに埋め込まれたＤＳＰに対する要求が大幅に変動する点に置かれる。
【０００４】
単一のプロセッサシステム
１つの処理ユニットのみを備えるコンピュータでは、プロセッサは、システムクロック信号を生成する特別な回路に書き込むことによって、プロセッサ自体の速度を調整できる。これを用いて、平均的な仕事量にシステムクロック周波数を適合させることができる。しかしながら、システムクロック周波数（又はレート）を低下させると、オペレーティングシステムソフトウェアのレジデントカーネル及びその応答時間も遅くなる。実装形態によっては、ユーザは、機械が、１秒あたりの計算量としての性能を上昇させるためにより高速なクロックレートへとアップシフトする必要がある場合に、ポーズを知覚することがある。
【０００５】
単一プロセッサコンピュータ及びその制御ソフトウェアはまた、ユーザ調整可能なタイムアウトを有することが多い。ハードウェアが電力低下モードになればなるほど、システムはその電力使用を、コンピュータの実際の需要に更に精密に適合させることができる。例えばプロセッサは、初期タイムアウトの後に低速かつ低供給電圧状態への切り替えを実施し、比較的長いタイムアウトの後にクロック停止状態への切り替えを実施し、更に長いタイムアウトの後に定電圧スリープ状態への切り替えを実施してよい。これら定電圧状態は、揮発性メモリ内にデータを保持し、これは迅速な再起動のために有利である。プロセッサの電力を完全にオフにしてしまうと、プロセッサの揮発性メモリ内のデータは失われてしまい、プロセッサを再起動するとすぐに、データを不揮発性メモリから再ロードする必要がある。
【０００６】
多重プロセッサシステム
大型の多重プロセッサシステムは、１秒あたりの計算量を改善するための多くの技術を開拓したが、電力管理には比較的積極的でなかった。多数の処理ユニットを含む安価なＩＣチップを用いたＰＥＤの出現により、エネルギ効率に関する要求は大幅に高まっている。
【０００７】
多重処理の利点としては、並列実行のために変換されたアルゴリズムのための計算スループットがはるかに高速となること、異なるプロセッサ及びメモリに処理を分割することによって信頼性及び安全性が向上することが挙げられる。多重プロセッサシステムでは、上記システム自体のプロセッサ上で実行される監視プロセスが、他のプロセッサ上で実行されるアプリケーションプロセスによって遅延することになる可能性が大幅に低下する。
【０００８】
アプリケーション内において、外部イベントに応じていくつかのプロセッサが低速化し、その他のプロセッサが加速し得る。例えばビデオデータを表示するためのビデオプロセッサの性能は、データの種類及びユーザアクティビティに左右され得る。（この例ではビデオプロセッサはビデオ専用の単一のユニットであってよく、又はビデオを並列処理するようプログラムされた複数の処理素子の群であってよい。）ユーザがビデオを編集する際、運動の表示に頻繁なポーズが発生し得る。ポーズ中、ビデオプロセッサを休止速度まで低下させることができ、ここでビデオプロセッサは応答準備状態ではあるが最高速度時より電力の放散が少ない。その一方で、ユーザインタラクションに最適化された異なるプロセッサによってユーザインタフェースを操作できる。
【０００９】
多重プロセッサシステムにおいて電力を温存するための別の方法は、多重プロセッサを、計算の限界経路のための高速クロック、及びその他の部分のためのより低速のクロックという様々なクロック周波数で動作するよう構成することである。電力を節約する機会はアプリケーションソフトウェアに大きく左右されるため、クロック分配ハードウェアを設定可能とする、好ましくはアプリケーションソフトウェアから迅速に設定可能とするべきである。
【００１０】
コンピュータやデジタル信号プロセッサ（ＤＳＰ）等のデジタル電子システムは、１つ又は複数の多重プロセッサアレイ（ｍｕｌｔｉ−ｐｒｏｃｅｓｓｏｒ  ａｒｒａｙ：ＭＰＡ）をますます利用するようになっている。ＭＰＡは、複数の処理素子（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ：ＰＥ）、補助メモリ（ｓｕｐｐｏｒｔｉｎｇ  ｍｅｍｏｒｙ：ＳＭ）、高帯域相互接続ネットワーク（ｉｎｔｅｒｃｏｎｎｅｃｔ  ｎｅｔｗｏｒｋ：ＩＮ）としておおまかに定義できる。本明細書で使用される用語「処理素子（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）」は、プロセッサ若しくはＣＰＵ（中央演算処理装置）、マイクロプロセッサ又はプロセッサコアを指す。ＭＰＡの中の単語「アレイ（ａｒｒａｙ）」は、円形次元（ループ又はリング）を含む１、２、３又はそれ以上の次元で利用可能な接続を備えるネットワークによって相互接続された、複数の計算ユニット（これらはそれぞれ処理及び／又はメモリリソースを含んでよい）を意味するものとして、最も広い意味で使用される。なお、製造用媒体が高い配線密度をサポートしていれば、次元が高いＭＰＡをより低い次元の製造用媒体上にマッピングできる。例えば４次元（４Ｄ）超立方体の形状を有するＭＰＡは、シリコン集積回路（ＩＣを）チップの積層体上に、又は単一の２Ｄチップ上に、又は計算ユニットの１Ｄの線上にさえ、マッピングできる。次元が低いＭＰＡをより高い次元の媒体にマッピングすることもできる。例えば計算ユニットの１Ｄの線を、ＩＣチップの２Ｄ平面上に曲がりくねった形状で展開でき、又はチップの３Ｄ積層体へと巻くことができる。ＭＰＡは複数の種類の計算ユニットと、プロセッサ及びメモリが散在する構成とを含んでよい。広い意味でのＭＰＡは、ＭＰＡの階層又は入れ子構成、特に相互接続されたＩＣチップからなるＭＰＡも含まれ、この場合ＩＣがチップが１つ又は複数のＭＰＡを含み、これらＭＰＡもまた更に深い階層構造を有する。
【００１１】
ＭＰＡ内又は異なる種類のＭＰＡ間に、１つ又は複数の相互接続ネットワーク（ＩＮ）が存在してよい。ＭＰＡ内の相互接続ネットワークの目的は、データ、命令、状態、構成又は制御情報をＰＥ、ＳＭ、Ｉ／Ｏ間で移動させることである。一次相互接続ネットワーク（ｐｒｉｍａｒｙ  ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ  ｎｅｔｗｏｒｋ：ＰＩＮ）は、レイテンシ（ソースと移動先との間のデータ送達に関わる時間遅延）が良好ではあるが極めて低いわけではない、高帯域データ移動のために設計されている。データ移動先に、データを他の種類の情報にトランスレートできるハードウェア又はソフトウェアがある場合、ＰＩＮによって移動されたデータは、上記他の種類の情報にカプセル化される。ＭＰＡは他の、二次ＩＮを有してもよく、これらはより低い又はより高いレイテンシを示してよいが、一般にはるかに低い帯域を有する。
【００１２】
１つのＩＮは、複数のリンク及び複数のノードからなる。リンクは典型的には、回路基板又はＩＣ上の導電性経路（トラック又はトレース）として実装される、複数の平行な「ワイヤ」のセットからなる。ノードは、これらリンクへの連結のためのポートを含み、これはリンク上で信号を送受信するためのトランスミッタ回路及びレシーバ回路を含む。ノードは、ＰＥ又はＳＭとの通信のための他のポートを有してよい。ノードは、ポートを互いに対して接続するためのデータ経路及びスイッチを含むルータと、１つ又は複数のプロトコルに従ってポートを選択的に接続するためのルータ制御機構とを有する。
【００１３】
高帯域を達成するために、ＰＩＮの各リンクは多数の平行なワイヤを含んでよい。ノード間の距離が小さければ、リンクは短く、標準ＣＭＯＳバイナリ信号伝達スキームを使用できる。これは、電源のハイ側の付近の定常信号電圧を、論理１を表す信号状態（Ｈ）とし、電源のロー（又はグランド）側の付近の定常信号電圧を他のバイナリ状態（Ｌ）とし、論理０を表すものとするものである。この信号伝達スキームでは、１つのワイヤは１ビットの情報を符号化する。例えばＩＣチップ間又は回路基板間等、リンクの長さが長い場合、高速を維持してノイズを除去するには、異なる信号伝達スキームがより適している場合がある。
【００１４】
リンク内の平行なワイヤは、データ又はクロック信号を搬送できる。クロック信号の目的は、伝送回路がデータ信号を変更できる時点、及び受信回路がデータ信号をサンプリングできる時点をマークすることである。適切に設計された回路では、サンプリング時間は、変化したデータ信号が定常値に落ち着いた後で発生する。トランスミッタはクロック信号を用いて、信号状態Ｈ又はＬへのラインを駆動する際にトリガを行うことができ、レシーバ回路はクロック信号を用いて、データ信号をレジスタにラッチできる。レシーバはクロック信号の立ち上がり（０から１への）遷移においてデータをラッチし、トランスミッタはクロック信号の立ち下がり（１から０への）遷移においてその出力をアップデートするのが従来の一般的な様式である。このような信号状態の遷移の完了までには有限量の時間がかかるが、立ち上がり及び立ち下がり期間が、１ビットを表すために使用される期間と比べて短い場合、遷移は「エッジ（ｅｄｇｅ）」とも呼ばれ得る。
【００１５】
クロック信号を多数のトランスミッタ及びレシーバ間で共有する場合、これらトランスミッタ及びレシーバは同期されていると言い表され、データ伝送は一般に「同期型（ｓｙｎｃｈｒｏｎｏｕｓ）」データ伝送と呼ばれる。「非同期型（ａｓｙｎｃｈｒｏｎｏｕｓ）」データ伝送は単に、共通のクロック信号を用いずにデータ信号を伝送及び受信できるいずれのスキームである。非同期型レシーバは、データ信号のサンプリングに関して同期型レシーバよりも柔軟である。特に、非同期型レシーバは、そのローカルクロック信号とは全く異なる時点においてデータをサンプリング及びラッチできる。いくつかの非同期型レシーバは、入力をオーバサンプリングすることによってデータ信号を得るよう動作する。より単純な非同期型レシーバは、トランスミッタに由来しデータと共に搬送されるクロック（又はストローブ）入力信号を受信し、ストローブ入力は、レシーバの前端部においてデータをラッチし、その後バッファリングされ、同期型出力のためにリタイミングされる。
【００１６】
リンク上でのデータフローを、トランスミッタ又はレシーバによって妨害する必要がある場合がある。トランスミッタが送信するべき新規のデータを一時的に有していない場合、レシーバは、トランスミッタから非準備信号を受信しない限り、データの最後のビットを誤って読み続けることがある。同様に、レシーバがデータを配置するべき場所を一時的に有していない場合、レシーバは、トランスミッタに送信の停止を指示できない限り、到着するデータを誤って無視してしまうことがある。相互接続ネットワークは、これら信号が状態を変化させた場合にノードが何を行うと想定されるかに関するフロー制御及びプロトコル専用の特別な信号を有してよい。これら特別な信号は、リンク自体のワイヤであってよく、又はワイヤのセットのコードパターンであってよい。プロトコルは単純な状態機械を用いて実装される。
【００１７】
典型的なマイクロプロセッサＩＣチップでは、データ伝送は同期型である。しかしながら、より高い性能（１秒あたりの計算）を追求することにより、クロック周波数は更に高く押し上げられてきた（現在約２ＧＨｚ）。このような高いクロック周波数は、ワイヤが物理的に短いＩＣの内部では妥当であるが、チップＩ／Ｏ及びチップ間リンクに関しては管理が困難である。
【００１８】
信号は極めて高速（１ナノ秒あたり４〜６インチ程度）で回路基板上を伝播するが、回路基板上の微細なワイヤ「トレース」により、トランスミッタは、立ち上がり及び立ち下がり時間を１ナノ秒より短い時間にまで進化させることができる。十分に短い立ち上がり及び立ち下がり時間により、複数のクロック／データ遷移（又はエッジ）は、いずれの所定の瞬間にＩＣチップ間の信号ワイヤ上において遷移中となり得る。
【００１９】
略全てのマイクロプロセッサＩＣチップにおいて、チップＩ／Ｏ回路と共に用いられるクロック信号は、コアで使用されるクロック信号ほど高くない。回路基板上の近接したチップ間の、１秒あたり４ギガワード（各ワード１６ビット）程度の高帯域は、平行なワイヤ、低電圧差動信号（ｌｏｗ−ｖｏｌｔａｇｅ  ｄｉｆｆｅｒｅｎｔｉａｌ  ｓｉｇｎａｌｉｎｇ：ＬＶＤＳ）、及び同期型データ伝送によって得られる。回路基板間では、高帯域は平行なワイヤ又は光ファイバと同期型又は非同期型データ伝送を用いて得られる。一般的なダブルデータレート（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ：ＤＤＲ）の一連のインタフェースといった、外部メモリチップを備えた特殊化された回路及びコントローラを使用する。また、シリアライザ／デシリアライザ（ｓｅｒｉａｌｉｚｅｒ  ＆  ｄｅｓｅｒｉａｌｉｚｅｒ：ＳＥＲＤＥＳ）回路等の高速ビットシリアル通信のために特殊化された回路を使用する。
【００２０】
複数のＶＬＳＩチップ及び同期型並列チップ間通信からなる大型システムを構築するために、ＩＯクロックは好ましくは、複数のＩＣチップに亘って同期されるように生成される。これは典型的には、各チップ内の位相ロックループ（ｐｈａｓｅ−ｌｏｃｋｅｄ  ｌｏｏｐ：ＰＬＬ）によって達成される。ＰＬＬは、外部で生成されたクロック基準信号とチップ内部のクロック信号との間の一定の平均位相関係を維持する。基準クロック周波数は典型的には、帯域を制限して基準クロック信号に導入されるノイズを制限するため、及び／又は石英制御型発振器の出力を使用するために、内部クロック周波数より大幅に小さい。
【００２１】
多重周波数クロック
ＭＰＡのためのＰＥ、ＳＭ、ＩＮ、クロック分配ネットワークは、従来のマイクロプロセッサよりも、１つのプロセッサあたりの電力効率が高くなければならない。というのは単に、各ＭＰＡ  ＩＣチップ内には１０〜１００倍のプロセッサが存在し、合理的なチップサイズ及びそのためのパッケージは、熱を放散させるための性能が制限されているためである。
【００２２】
プロセッサの数が増えると、これらプロセッサの動作に関する瞬間的な要求の変動がより大きくなるため、ＭＰＡクロック分配及びその制御機構はまた、より柔軟なものである必要もある。
【００２３】
多重プロセッサシステムでは、プロセッサは、全体としての電力放散を温存することを目的として、供給電圧と、他のプロセッサのクロック周波数とを制御するよう構成できる。単純なアプローチは、一時的に不要となったプロセッサへのクロックをオフにし、更に長い時間間隔に関してはこれらプロセッサの電源をオフにすることである。より洗練されたアプローチは、低速時のプロセッサを高速時に使用するために準備することである。
【００２４】
プロセッサ及びメモリに関して、電力を再びオンにして処理を再開することは、電力をオフにするよりもはるかに複雑である。電力がオンになると、プロセッサはランダム状態となり、回路のリセットとそれに続くクロックのオンが必要となる。そして、プロセッサを既知の準備状態とするため、補助メモリの再ロードのため、及びアプリケーションソフトウェアの実行のために、初期化シーケンスが必要となる。
【００２５】
これら全てに必要な時間がアプリケーションにとって長すぎる場合、僅か数マイクロ秒の事前通知によって最高速度動作を再開できるように、低いクロック周波数で（電力を温存しながら）プロセッサを準備すると有益となり得る。
【００２６】
電力消費
並列計算によってどのようにしてエネルギを温存できるかを理解するために、デジタルＣＭＯＳ回路が電力を使用する方法について概観する。平均電力使用は基本的に、供給電圧及びクロック周波数に左右される。
【００２７】
ＣＭＯＳデジタル回路では、論理１及び０は、信号ライン上の高電圧レベル及び低電圧レベルによって表される。信号ラインの状態はハイ又はローである。電力は各信号の状態を変化させる（又は切り替える）ために使用され、そうでない場合回路は、放散電力が漏れ電流のみに由来しており極めて少ない静止状態となる。信号ラインをハイからロー又はローからハイに切り替えるために必要なエネルギは、ライン及びラインに接続されたトランジスタの総静電容量Ｃに略比例する。トランジスタが信号ラインを切り替えるために必要な電力供給電流は、キャパシタを充電するためのスイッチを通る電流とほとんど同様に、初めは上昇しその後減衰する。切り替えイベントのためにトランジスタを通る、統合された電流（アンペア×秒）は、総静電容量Ｃにおける電荷Ｑの変化に等しい。キャパシタの物理的性質から、Ｑ＝Ｃ×Ｖであり、ここでＣはファラッド、Ｖはボルトである。充電と放電とをある程度の周波数ｆで反復することにより、平均切り替え電力：
Ｐａｖｇ＝Ｉ×Ｖ＝ｆ×Ｃ×Ｖ×Ｖ＝ｆ×Ｃ×Ｖ2
が得られる。
【００２８】
周波数に対する電力消費のこのような線形の関係は、様々な大きさで広範囲に亘って保持される。極めて低い周波数では電力の底が存在し、ここではＤＣ漏れ電流が全体の電力消費の主な原因となる。極めて高い周波数では、トランジスタは信号ラインを完全に切り替えられる十分な速度を有さず、これによりビットエラーや過剰供給電流が引き起こされる。ビットエラーは、供給されるＶを上昇させることによって抑制できる場合もあるが、これによって、回路が過熱によって損傷するまで電力が二次関数的に上昇してしまう。
【００２９】
ＣＭＯＳ回路を迅速に動作させる必要がない場合、比較的低い周波数での動作によりＰａｖｇを低下させることができ、供給電圧を低下させることによってＰａｖｇを更に低下させることができる。しかしながら、比較的低い電圧での動作により、トランジスタ１つあたりの充電／放電電流が少なくなる。閾値電圧Ｖｔｈを下回ると、トランジスタは（微小な閾下電流を除いて）オフになる。
【００３０】
並列計算に関するエネルギ節約の機会
並列計算に関する上記機会は、統一型プロセッサを用いる場合よりも単位エネルギあたりの計算が小さくなることである。なぜそうなるかを理解するために、１０9回の操作を必要とする計算について考える。これには、１ＧＨｚの単一プロセッサでは、例えば１００Ｗ（２Ｖにおいて平均５００ｍＡ）の電力供給又は約１００ジュールのエネルギにおいて、約１秒かかり得る。同じタイプの１００個のプロセッサを同一の電力供給で使用すると、計算時間は、理想的にはプロセッサの数だけ短縮できるが、通信オーバヘッドにより、２０ｍｓへの５０倍の短縮が現実的である。１００倍ものプロセッサが１／５０の時間間隔で動作するため、必要なエネルギは倍増している。しかしながら、プロセッサの速度を２０ＭＨｚへと５０倍遅くして、元の１秒間隔での固定計算を完了することもできる。これにより、プロセッサ１つあたりの電力放散は２Ｗまで低下する。
【００３１】
しかしながらここでは、トランジスタは静電容量をそれほど迅速に充放電する必要がないため、供給電圧を低下させることができる。
【００３２】
実際のＩＣチップは、最大供給電圧仕様の１／２に比較的近い最小供給電圧仕様を有してよく、これは内部回路が高速用に設計されていることによるものである場合が多い。
【００３３】
一般化：Ｎ倍ものプロセッサを大きな計算において動作させ、これを同一時間で完了することにより、クロック周波数Ｆを、控えめに見積もって〜２／Ｎだけ低下させることができ、またＶｓｕｐｐｌｙを約２倍に低下させることができ、ここで１０＜Ｎ＜１００である。プロセッサ１つあたりの平均動的電力は、（Ｆｐ／Ｆｓ）×（Ｖｐ／Ｖｓ）＾２だけ低下し、ここで下付き文字ｐは並列計算（ｐａｒａｌｌｅｌ  ｃｏｍｐｕｔａｔｉｏｎ）を表し、下付き文字ｓは単一プロセッサによる計算（ｓｉｎｇｌｅ  ｐｒｏｃｅｓｓｏｒ  ｃｏｍｐｕｔａｔｉｏｎ）を表す。従ってＮ個のプロセッサに関して、単一の迅速なプロセッサと比較した典型的な動的電力低下は：
Ｐｐ／Ｐｓ＝Ｎ×２／Ｎ×（１／２）＾２＝１／２
である。
【００３４】
また、漏れ電流による静止電力消費もまた、供給電圧をより低くすることによって低下させることができる。
【００３５】
当然のことながら、この戦略には物理的限界がある。トランジスタ−ターンオン電圧（Ｖｔｈ）より数十分の１ボルト大きいＶｄｄにより、Ｖｔｈの統計的ばらつきは制限因子となる。製造技術の更なる改良により、Ｖｔｈのばらつきを低減できる。
【００３６】
ＭＰＡにおいて、アレイの離間した部分間のクロックスキューに関する要件を緩和できれば、クロック分配ネットワーク自体において更なる電力の節約が可能となる。これは、ほとんどの信号経路が短く、近接した回路ブロックにのみ接続されているＭＰＡにおいて可能である。例えばＨｙｐｅｒＸアーキテクチャ（特許文献１参照）は、信号経路が極めて高い割合で短いという上記特性を有する。
【００３７】
例示的な多重プロセッサＩＣ
図１は、本出願のある実施形態が対処するクロック分配ネットワークの設計に関する論点／問題を明示する目的で、多重プロセッサＩＣのある実施形態を図示する。図１に示すように、例示的なｈｘ３１００Ａ多重プロセッサＩＣはＭＰＡを備え、これは入力としてクロック信号ＣＬＫ１及び同期信号ＳＹＮＣを受信する。ＣＬＫ１信号、ＳＹＮＣ信号は、ＣＬＫ１＋ＳＹＮＣ生成器によって生成される。ＣＬＫ１＋ＳＹＮＣ生成器は入力として、クロック基準信号ＣＬＫＲＥＦ、クロックバイパス信号Ｂｙｐａｓｓ、システム同期信号ＳＹＮＣＩＮを受信する。ｈｘ３１００Ａ多重プロセッサＩＣにおいて存在する他の入力及び他の構成部品は図示されていない。クロック基準信号ＣＬＫＲＥＦは、異なるチップ間の動作を同期させるために使用できるシステム基準クロックであり、図１では発振器ＯＳＣ１によって生成されるものとして示されている。この図及びその他の図において、構成部品の縮尺は正確ではない。
【００３８】
ｈｘ３１００Ａ多重プロセッサＩＣのＭＰＡは、相互接続ネットワーク（ＩＮ）のノードの１１×１１メッシュ内に散在するＰＥの１０×１０アレイを有する。各ＩＮノードは、隣接する４つのＰＥをサポートするための共有データメモリ（ｄａｔａ  ｍｅｍｏｒｙ：ＤＭ）を含み、各ＰＥは、該ＰＥを取り囲む４つの隣接するノードの共有ＤＭにアクセスできる。各ＰＥはプライベート命令メモリ（ｉｎｓｔｒｕｃｔｉｏｎ  ｍｅｍｏｒｙ：ＩＭ）を有する。
【００３９】
チップは、内部ＤＣ電源分配のために４つの象限に分割され、電力分配ネットワークの正極側は、外部電源に別個に連結できる４つの「ボルテージアイランド（ｖｏｌｔａｇｅ  ｉｓｌａｎｄ）」に分割される。分配ネットワークの負極側は、システムゼロ基準「グランド（ｇｒｏｕｎｄ）」に連結される。
【００４０】
象限間の境界を横断する回路は、同一電圧の隣接するボルテージアイランドによって動作するよう、かつ１つのボルテージアイランドがオフに切り替えられた場合に自己保護を行うよう、単純に設計できる。上記境界を横断する回路は更に、レベルシフト回路を追加することによって、異なる非ゼロ電圧の隣接するボルテージアイランドによって動作できるようにすることもできる。レベルシフト回路は当該技術分野では公知であり、容易に追加されるが、これらは追加の電力放散及び信号遅延をもたらし得る。
【００４１】
ｈｘ３１００Ａチップのためのクロック分配ネットワークは、全体として同期されたアレイを維持しながら、プロセッサ及びその補助メモリ（ＳＭ）素子と相互接続ネットワーク（ＩＮ）との間の適度に大きい（１６×）周波数差をサポートする。全てのプロセッサメモリアクセス及びコアアレイにおけるデータ伝送は、グローバルクロック信号に合わせて発生する。
【００４２】
ｈｘ３１００は、分散型再生成器アーキテクチャを有するクロックツリーを有する。これは、ＰＥとローカルノードとの間のクロックスキューを制限しつつ、比較的低い電力放散でクロック信号をチップの至る所に分配する。Ｈツリーも考えられたが、これは選択されたツリーよりも多くの再生成器を有することになり、従ってより多くの電力を放散させることになる。Ｈツリーと比較してこのツリーの欠点は、中央領域が、複数のステップにおいてチップの外周に対してスキューが発生した（位相が前進した）クロック信号を有する点である。しかしながら、そのために上記ツリーが設計される多重プロセッサアーキテクチャは、最も近接したチップへのリンク及び接続の大部分が短く、従ってステップ間のスキューに対する耐性が良好である。
【００４３】
図２は、マクロセルの碁盤目状にチップが分割されている様子を示し、各マクロセルは、再生成器の出力によって供給を受け、均一なクロック信号位相及び内部同期動作を有する。
【００４４】
同心円状のウィンドウフレーム型タイムゾーンの概念において、中央に位置するゾーンは、その根により近接したクロックネットワークをタップオフする。全体の効果は、Ｈツリーに対して必要な再生成器が少ないことである。図中の円は再生成器を表す。各再生成器は、他の再生成器及び／又はマクロセル（碁盤目の正方形）を駆動するための１つ又は複数の出力を有する。マクロセルへの各出力は、設定可能な分割及び遅延セル（図示せず）を有する。グローバルクロック信号ＣＬＫ１及び同期信号ＳＹＮＣは、ＣＬＫ１＋ＳＹＮＣ生成器によってチップのエッジにおいて生成され、中央クロック再生成器へと通信される。
【００４５】
中央クロック再生成器は、チップの４つの象限それぞれ及び各象限内の追加の再生成器へとクロック及びＳＹＮＣを４方向に分配する。チップの外周に向かうツリーの延伸部として、更なる分岐を追加する。中央クロック再生成器を除いて、再生成器セルはローカルマクロセルのための出力を有する。ツリーは、同心円状のウィンドウフレームと略同様の形状の一連のタイムゾーンを構成するが、各フレームは正確に長方形の境界を有している必要はなく、又は完全なループを形成する必要はない。
【００４６】
ｈｘ３１００Ａチップ上では、マクロセルは１つのＰＥ及び１つのＩＮノードで構成でき、ＩＮノードはＤＭ及びルータを含み、データメモリルータ（ｄａｔａ−ｍｅｍｏｒｙ  ｒｏｕｔｅｒ：ＤＭＲ）とも呼ばれる。その他のタイプのチップ上では、マクロセルはこれらの要素を上記とは異なる数だけ含んでよい。
【００４７】
ｈｘ３１００Ａクロック分配ネットワークは、ＤＭＲのための均一な高周波数を維持しながら、各ＰＥのためのクロック周波数の選択を提供する。個々のＰＥは、再生成器内に配置されたクロック分割器を用いて、低減されたクロック周波数で動作するよう構成できる。
【００４８】
２の冪乗の分数である周波数（１／（２＾Ｎ））は、図３に示すようにＮビットの長さのバイナリカウンタを用いて容易に生成される。ｈｘ３１００Ａチップ再生成器は４ビットカウンタ及び出力セレクタを用いて、１／２、１／４、１／８、１／１６の分数をサポートする。カウンタが（更に幅広い周波数範囲をカバーするために）過剰に長い場合、これは過剰なシリコンのリアルエステートを吸収し始め、これを漏れ電流放散に追加する。
【００４９】
ＳＹＮＣ信号はクロックではなく、ＣＬＫ１のサイクル１６回毎にＣＬＫ１と共に一斉通信される、１つのＣＬＫ１区間の幅のパルスであり、図４の波形において示すように、再生成器内のＰＥクロック分割器を同期させるために使用される。図３に示すように、ＳＹＮＣは１６サイクル毎にカウンタをリセットするために使用される。ＳＹＮＣ信号を用いなければ、各分割器が異なる時点において計数を開始する場合があり、従ってＣＬＫ１サイクルの増大によって、異なるカウンタの位相が互いに対してずれる場合がある。ＲｅｇＰは再生成器のための構成レジスタであり、これはアプリケーションソフトウェアによってアクセス可能である。ＲｅｇＰの出力のアップデートはＳＹＮＣ信号に対して整列される。
【００５０】
データ及びアドレスバッファはＰＥとＤＭＲとの間及びＤＭＲ間に位置し、これにより機能停止期間中にデータを保持できる。同一の機構は元々データフローを制御するために使用されているが、低速のＰＥを最高速度のＤＭＲにインタフェース接続する補助となる。
【００５１】
相互接続ネットワークの帯域幅を維持するために、ＤＭＲは低速では動作しないが、これらは一時停止する（クロック入力を休止する）ことができる。ＤＭＲの電力放散は通常、要求レートによっても変動し、隣接した低速のＰＥがより低速のレートの要求を行うと、ＤＭＲの電力放散も低下することになる。
【００５２】
図５は、ｈｘ３１００Ａ上で使用されるグローバルＣＬＫ１及びＳＹＮＣ信号を生成する方法を示す。ＰＬＬはチップ入力で構成される。ＰＬＬを起動すると、ＰＬＬは多数のサイクルの後に平均周波数及び矩形波であるチップ入力ＣＬＫＲＥＦの位相への位相ロックを実施する。ＰＬＬの出力は最高周波数クロック（ｈｉｇｈｅｓｔ  ｆｒｅｑｕｅｎｃｙ  ｃｌｏｃｋ：ＨＦＣ）として示されており、これもまた矩形波であり、これは構成に応じて、典型的にはＣＬＫＲＥＦの８〜１２８倍高い周波数を有してよい。
【００５３】
Ｌｏｇｉｃ１を通してソフトウェアアクセス可能なＲｅｇ０によって構成された多重化装置Ｍ１は、ＨＦＣ又はＣＬＫＲＥＦ入力を選択し、クロック分割器ＤＩＶ１に連結されるＣＬＫ０信号を出力する。クロック分割器ＤＩＶ１は、Ｌｏｇｉｃ１を通して、同一の又は低下した周波数ＣＬＫ１を生成するよう構成され、上記ＣＬＫ１はコアアレイに送信される最高周波数のクロック信号である。カウンタ、ＣＮＴ０、論理ゲート、ＮＯＲ１を使用してＳＹＮＣ信号を生成してよい。
【００５４】
カウンタＣＮＴ０は、チップ入力信号ＳＹＮＣＩＮによって周期的にリセットできる。多重チップシステムでは、１つのｈｘ３１００Ａを選択してマスターＣＮＴ０としてよく、マスターＣＮＴを０によって生成されたＳＹＮＣＯＵＴ信号からＳＹＮＣＩＮ信号を受信することによって、他のｈｘ３１００Ａチップをそのスレーブとしてよい。しかしながら、高いクロックレートにおいて、チップ間ＳＹＮＣ信号の位相を整列させ、ＣＬＫＲＦＥに位相ロックされたクロック上を走るＣＮＴ０を適切にリセットするのは困難である。また１以外のいずれのＤＩＶ１  Ｉ／Ｏ周波数比により、ＨＦＣサイクルの倍数のチップの内部ＳＹＮＣ信号間に可能な位相のオフセットが発生する。
【００５５】
大半の多重チップシステムでは、チップ間の相互接続は、オンチップ相互接続が動作するよりも低いレートでのデータ伝送のために動作する。これは信号の整合性及び電力放散の両方のために実施される。両チップ上のＣＬＫ１が、チップ間接続が歪みなしにサポートできるレートまで下方調整された場合、チップ間の信頼性の高い同期通信を開始できる。しかしながらこれはチップのコアにおけるＰＥ及びＤＭＲの速度を制限し、従って応用範囲を制限する。よってＣＬＫ１に比べてＩ／Ｏセルのクロックを低速化する必要がある。低速のＩ／Ｏセルの利点は、約１０００未満の低速化レートに関して、その電力放散が上記低速化レートに略比例して低下し、データパルス幅が増大するにつれてタイミングのマージンが向上することである。
【００５６】
ｈｘ３１００Ａチップでは、Ｉ／Ｏセルは、クロック分配分岐内の最後の再生成器から、及びＩ／Ｏセルの位置に配置されていたＰＥへと向かう出力からクロック信号を受信する。再生成器はＣＬＫ１及びＳＹＮＣ入力を受けるクロック分割器を含む。従ってＩ／ＯセルクロックレートはＰＥクロックレートと同一の様式で構成でき、またチップ間接続にとって望ましいように、ＣＬＫ１より低速のクロックレートに構成できる。チップの内側では、上述のようにクロック信号を受信するＩ／Ｏセルは、最も近接したＤＭＲとの、そしてオンチップネットワーク（ＩＮ）を通したチップ内の残りのＤＭＲとの及びＰＥへの同期通信を維持する。Ｉ／ＯセルとＤＭＲとの間のフローの制御により、データの損失又は二重化を防止するが、低速のＩ／Ｏセルに、このセルが処理できるよりも高いレートでデータが送信されると、データのジャムが発生し得る。
【００５７】
２つのチップのＰＬＬへの共有クロック基準信号（ＣＬＫＲＥＦ）の入力によって、ＣＬＫ１位相安定性及び２つのチップのＳＹＮＣ信号間の位相安定性がもたらされている間、両方のチップのＣＮＴ０カウンタのＳＹＮＣ生成器は、２つのチップのＳＹＮＣ信号を正確に整列させるために、ＣＬＫ１と正確に同一のサイクルでリセットされなければならない。１つのリセット信号が他に対して、ＣＬＫ１のサイクルのわずか半分程度でも遅延する（即ち「スキューが発生する」）と、２つのＣＮＴ０カウンタはスキューが発生したＣＬＫ１のサイクル全体をＳＹＮＣ信号間にロックでき、これはチップ間の信号に関するタイミングのマージンを損なう。一般にリセット信号の間隔ｔのスキューは、ＳＹＮＣ信号においてｎサイクルのＣＬＫ１のスキューにつながり、ここでｎは、ｔ／ｔｐｅｒを最も近い整数値ｎに丸めたものであり、ｔｐｅｒはＣＬＫ１の周期である。従って新規のアプローチが望まれている。
【先行技術文献】
【特許文献】
【００５８】
【特許文献１】米国特許第７４１５５９４号
【発明の概要】
【発明が解決しようとする課題】
【００５９】
クロック及び選択信号を同期型デジタルシステム全体に分配できる方法及び回路の様々な実施形態を開示する。
【課題を解決するための手段】
【００６０】
一実施形態では、同期型デジタルシステムのクロック分配ネットワーク内のクロック生成回路構成を再構成するための方法が開示される。第１のクロック信号を一次クロックとして生成及び選択してよい。次に第２のクロック信号を、同期型デジタルシステム内でクロック誘発性のエラーを発生させることなく、一次クロックとしての第１のクロックと置換してよい。そして、第２のクロック信号が一次クロックとして作用している間に、クロック生成回路構成を再構成してよい。その後クロック生成回路構成が安定化した後で、同期型デジタルシステム内でクロック誘発性のエラーを発生させることなく、第１のクロック信号を再び一次クロックとして選択してよい。
【００６１】
いくつかの実施形態では、第２のクロック信号は外部クロック信号であってよい。同期型デジタルシステムがチップ上に設けられている他の実施形態では、第２のクロック信号は、外部クロック信号とは独立したオンチップ発振器によって生成してよい。このような実施形態では、オンチップで生成されたクロック信号を一次クロックとして選択することを必要とする条件を検出できる。そしてこの検出に応答して、第２のクロック信号を選択してよい。いくつかの実施形態では、オンチップで生成されたクロック信号の選択を必要とする条件は、同期型デジタルシステムに起こり得る改ざんを示す信号を含んでよい。
【００６２】
いくつかの実施形態では、クロック生成回路構成の再構成は、クロック生成回路構成が異なるレートで電力を放散するように、クロック生成回路構成の少なくとも１つの設定を変更することを含んでよい。いくつかの実施形態では、上記再構成は、クロック生成回路構成の電力を低下させて、クロック生成回路構成をオフ状態とし、その後クロック生成回路構成の電力を上昇させて、クロック生成回路構成をオン状態に戻すことを含んでよい。他の実施形態では、上記再構成は、クロック生成回路構成からクロック入力を除去し、その後クロック生成回路構成へのクロック入力を再開することを含んでよい。更に他の実施形態では、上記再構成は、クロック生成回路構成の標的周波数を変更することを含んでよい。
【００６３】
いくつかの実施形態では、クロック生成回路構成を再構成した後、クロック生成回路構成が安定化されたかどうかを決定してよい。クロック生成回路構成が安定化した後で第１のクロック信号を一次クロックとして選択することは、少なくとも部分的に上記決定に応じて実施してよい。
【００６４】
いくつかの実施形態では、クロック生成回路構成は位相ロックループ（ＰＬＬ）を備えてよい。クロック生成回路構成が安定化されたかどうかの決定は、ＰＬＬが位相ロックを達成したかどうかの決定を含んでよい。
【００６５】
いくつかの実施形態では、クロック生成回路構成の再構成後、所定の時間を経過させることができる。クロック生成回路構成が安定化した後で第１のクロック信号を一次クロックとして選択することは、上記所定の時間だけ待機した後で実施してよい。
【００６６】
一実施形態では、同期型デジタルシステムが開示される。同期型デジタルシステムのクロック生成回路構成は、受信した外部クロック信号に少なくとも部分的に基づいて第１のクロック信号を生成するよう、かつ構成設定をプログラムに従って受信するよう、構成してよい。同期型デジタルシステムのクロック信号セレクタ回路構成は、同期型デジタルシステム内でクロック誘発性のエラーを発生させることなく、一次クロック信号として使用するために複数のクロック信号の中からの選択をプログラムに従って行うよう構成してよい。上記複数のクロック信号は、第１のクロック信号及び外部クロック信号を含んでよい。一次クロック信号を使用して動作するよう構成される同期型デジタルシステムの同期型デジタル論理は、クロック信号セレクタ回路構成に第１のクロック信号を選択させるよう構成してよい。そして同期型デジタル論理は、第１のクロック信号を選択した後、クロック信号セレクタ回路構成に、複数のクロック信号のうち第１のクロック信号以外の１つを選択させてよい。続いて同期型デジタル論理はクロック生成回路構成を再構成してよい。その後同期型デジタル論理は、クロック生成回路構成の再構成に続いてクロック生成回路構成が安定した後、クロック信号セレクタ回路構成に第１のクロック信号を選択させてよい。
【００６７】
いくつかの実施形態では、クロック生成回路構成を再構成するにあたって、同期型デジタル論理は、クロック生成回路構成が異なるレートで電力を放散するように、クロック生成回路構成の少なくとも１つの設定を変更するよう構成してよい。いくつかの実施形態では、同期型デジタル論理は、クロック生成回路構成の電力を低下させて、クロック生成回路構成をオフ状態とし、その後クロック生成回路構成の電力を上昇させて、クロック生成回路構成をオン状態に戻すことができる。他の実施形態では、同期型デジタル論理は、クロック生成回路構成から外部クロック信号を除去し、その後クロック生成回路構成へのクロック入力を再開できる。更に他の実施形態では、同期型デジタル論理は、クロック生成回路構成の標的周波数を変更できる。
【００６８】
いくつかの実施形態では、同期型デジタル論理は、クロック生成回路構成が再構成された後、クロック生成回路構成が安定化されたかどうかを決定する。クロック生成回路構成が安定化した後でクロック信号セレクタ回路構成に第１のクロック信号を選択させることは、少なくとも部分的に上記決定に応じて実施してよい。いくつかの実施形態では、クロック生成回路構成は位相ロックループ（ＰＬＬ）を備えてよい。クロック生成回路構成が安定化されたかどうかの決定において、同期型デジタル論理は、ＰＬＬが位相ロックを達成したかどうかを決定するよう構成してよい。他の実施形態では、同期型デジタル論理は、クロック生成回路構成の再構成後、所定の時間だけ待機するよう構成される。クロック生成回路構成が安定化した後でクロック信号セレクタ回路構成に第１のクロック信号を選択させることは、上記所定の時間だけ待機した後で実施してよい。
【００６９】
同期型デジタルシステムがチップ上に設けられているいくつかの実施形態では、オンチップクロック信号生成器は、第２のクロック信号を外部クロック信号とは独立して生成するよう構成してよい。上記複数のクロック信号は更に、この第２のクロック信号を含んでよい。いくつかの実施形態では、オンチップクロック信号生成器はリング発振器を備える。いくつかの実施形態では、クロック信号セレクタ回路構成は、オンチップで生成されたクロック信号を一次クロックとして選択する必要がある条件に応じて、第２のクロック信号を選択するよう構成してよい。いくつかの実施形態では、上記条件は同期型デジタルシステムに起こり得る改ざんを示す信号を含んでよい。
【００７０】
一実施形態では、チップ上に設けられた同期型デジタルシステムが開示される。同期型デジタルシステムの同期型デジタル論理は、一次クロック信号を用いて動作するよう構成してよい。同期型デジタルシステムのオンチップクロック信号生成器は、同期型デジタルシステムが受信した外部クロック信号とは独立して第１のクロック信号を生成するよう構成してよい。同期型デジタルシステムのクロック信号セレクタ回路構成は、一次クロック信号として使用するために複数のクロック信号の中からの選択を行うよう構成してよい。上記複数のクロック信号は、第１のクロック信号と、外部クロック信号に左右される信号とを含んでよい。クロック信号セレクタ回路構成は更に、クロック選択オーバライド信号が通常動作を示している場合に、ソフトウェア設定可能レジスタの内容に少なくとも部分的に基づいて、複数のクロック信号の中からの選択を行うよう構成してよい。クロック選択オーバライド信号が、一次クロック信号として使用するためのオンチップで生成されたクロック信号の選択を必要とする条件を示している場合、クロック信号セレクタ回路構成は第１のクロック信号を選択してよい。
【００７１】
いくつかの実施形態では、クロック選択オーバライド信号は、改ざん検出信号を含んでよい。一次クロック信号として使用するためのオンチップで生成されたクロック信号の選択を必要とする条件を示すクロック選択オーバライド信号は、同期型デジタルシステムに起こり得る改ざんを示す改ざん検出信号を含んでよい。いくつかの実施形態では、同期型デジタル論理は、改ざん検出信号に応じて、連続クロック信号を必要とする安全対策を実施するよう構成してよい。第１のクロック信号を選択することにより、外部クロック信号が停止されているかどうかに関わらず、安全対策を実施できるようにすることができる。いくつかの実施形態では、安全対策は、同期型デジタル論理の状態情報をクリアすることを含んでよい。
【００７２】
いくつかの実施形態では、クロック選択オーバライド信号はクロック損失信号を含む。一次クロック信号として使用するためのオンチップで生成されたクロック信号の選択を必要とする条件を示すクロック選択オーバライド信号は、外部クロック信号の損失が予想されることを示すクロック損失信号を含む。
【００７３】
いくつかの実施形態では、オンチップクロック信号生成器はリング発振器を備えてよい。
【００７４】
いくつかの実施形態では、クロック信号セレクタ回路構成は、同期型デジタルシステム内でクロック誘発性のエラーを発生させることなく、複数のクロック信号の中からの選択をプログラムに従って行うよう構成してよい。
【００７５】
一実施形態では、チップ上に設けられた同期型デジタルシステム内でクロック信号エラーを回避する方法が開示される。第１のクロック信号は、同期型デジタルシステムのための一次クロックとして提供してよい。第１のクロック信号は、同期型デジタルシステムが受信した外部クロック信号に左右されるものであってよい。クロック選択オーバライド信号を受信してよく、これは、一次クロック信号として使用するためのオンチップで生成されたクロック信号の選択を必要とする条件を示す。上記受信に応じて、第２のクロック信号を一次クロックとして選択してよい。第２のクロック信号は、外部クロック信号と独立してオンチップクロック信号生成器によって生成してよい。
【００７６】
いくつかの実施形態では、クロック選択オーバライド信号の受信は、同期型デジタルシステムに起こり得る改ざんを示す改ざん検出信号の受信を含んでよい。いくつかの実施形態では、改ざん検出信号に応じて、連続クロック信号を必要とする安全対策を実施してよい。従って第１のクロック信号を選択することにより、外部クロック信号が停止されているかどうかに関わらず、安全対策を実施できるようにすることができる。いくつかの実施形態では、安全対策の実施は、同期型デジタルシステムの状態情報をクリアするためのステップの実行を含んでよい。上記ステップの実行中、第２のクロック信号を一次クロックとして使用してよい。他の実施形態では、クロック選択オーバライド信号の受信は、外部クロック信号の損失が予想されることを示すクロック損失信号の受信を含んでよい。
【００７７】
いくつかの実施形態では、オンチップクロック信号生成器はリング発振器を備えてよい。
【００７８】
いくつかの実施形態では、同期型デジタルシステム内でクロック誘発性のエラーを発生させることなく、第２のクロック信号が一次クロックとして選択される。
【００７９】
一実施形態では、ある装置が開示される。この装置の基準クロック生成器は、基準クロック信号を生成するよう構成してよい。本装置の複数の集積回路チップはそれぞれ、基準クロック生成器に連結される入力ポートを備えてよい。入力ポートは基準クロック信号を受信するよう構成してよい。各チップはまた、基準クロック信号に応じて一次クロック信号を生成するよう構成されたクロック生成回路構成を備えてよい。各チップはまた、一次クロック信号に対してエッジ整列され、かつ基準クロック信号に対して位相整列された同期信号を生成するよう構成された、同期信号生成回路構成を備えてよい。複数のチップの各同期信号は、これらを共通して基準クロック信号に位相整列した結果として位相整列される。各チップはまた、一次クロック信号及び同期信号を受信するよう構成されたクロック分割器回路構成を備えてよい。各チップのクロック分割器回路構成は、一次クロック信号の周波数より低い周波数を有する周波数分割クロック信号を生成してよい。周波数分割クロック信号は同期信号に位相整列してよい。各チップはまた、周波数分割クロック信号をクロック入力として受信するよう構成された入力／出力（Ｉ／Ｏ）回路構成を備えてよい。各チップのＩ／Ｏは、複数のチップのうちの別のチップの各Ｉ／Ｏ回路構成と通信できる。あるチップの周波数分割クロック信号の周波数は、他のチップの周波数分割クロック信号の各周波数と同一であり、あるチップの周波数分割クロック信号は、他のチップの各周波数分割クロック信号と位相整列される。
【００８０】
いくつかの実施形態では、各チップに関して、クロック生成回路構成は、基準クロック信号を受信して、基準クロック信号の周波数よりはるかに高い周波数を有する高周波数クロック信号を生成するよう構成された位相ロックループ（ＰＬＬ）を備えてよい。
【００８１】
いくつかの実施形態では、各チップのＩ／Ｏ回路構成は複数のＩ／Ｏセルを備えてよい。各チップは更に、クロック及び同期信号分配ネットワークを備えてよい。各チップの分配ネットワークは、一次クロック信号を受信するよう構成された供給点を備えてよい。各チップの分配ネットワークはまた、供給点に接続されたファンアウト回路構成を備えてよい。ファンアウト回路構成は、供給点と複数のＩ／Ｏセルのうちの各Ｉ／Ｏセルとの間に均一な遅延が得られるように、供給点からＩ／Ｏ回路構成へと一次クロック信号を伝播させるよう構成してよい。各チップの分配ネットワークはまた、ファンアウト回路構成全体に亘って位置決めされた複数の再生成器を備えてよい。
【００８２】
いくつかのこのような実施形態では、各チップのクロック生成回路構成はＰＬＬを備える。各ＰＬＬは、基準クロック信号を受信し、高周波数クロック信号出力を生成し、上記高周波数クロック信号の遅延したコピーであるフィードバック信号を受信するよう構成してよい。フィードバック信号は基準クロック信号に位相ロックされる。各チップのクロック生成回路構成はまた、ＰＬＬのためのフィードバック経路を備えてもよい。このフィードバック経路は、クロック及び同期信号分配ネットワークを通して、高周波数クロック出力から、ＰＬＬの近傍に位置するＩ／Ｏセルのうちの１つに対して供給を行う再生成器への一次クロックと平行であってよい。フィードバック経路はＰＬＬのフィードバック入力まで設けられる。
【００８３】
いくつかの実施形態では、各チップの同期信号生成回路構成は、基準クロック信号のクロックエッジを検出するよう構成されたエッジ検出器と、カウンタとを備えてよい。各カウンタは、一次クロック信号に基づいて計数値をアップデートし、エッジ検出器の出力に基づいて計数値をリセットし、計数値が特定の値に一致した場合に１パルスの同期信号を出力するよう構成してよい。
【００８４】
いくつかの実施形態では、基準クロック生成器と、複数のチップのうち第１のチップとの間の基準クロック信号の伝播遅延は、基準クロック生成器と、複数のチップのうち第２のチップとの間の基準クロック信号の伝播遅延と略等しい。従って、第１のチップが受信する基準クロック信号と第２のチップが受信する基準クロック信号との間のクロックスキューは最小化される。
【００８５】
いくつかの実施形態では、複数のチップのうち第１のチップのクロック生成回路構成と、この第１のチップのクロック分割器回路構成との間の各一次クロック信号の伝播遅延は、複数のチップのうち第２のチップのクロック生成回路構成と、この第２のチップのクロック分割器回路構成との間の各一次クロック信号の伝播遅延と略等しい。
【００８６】
一実施形態では、第１のチップと第２のチップとの間のデジタル通信を同期するための方法が開示される。各チップにおいて外部基準クロック信号を受信してよい。次に各チップは、基準クロックの周波数の設定可能な倍数である周波数を有する高周波数クロック信号をそれぞれ生成してよい。続いて各チップは、外部基準クロック信号に応じて同期信号をそれぞれ生成してよい。第１のチップ及び第２のチップそれぞれの同期信号は、これらが共に外部基準クロック信号に左右される結果として位相整列されている。各チップは、チップ上に設けられた各同期型デジタルシステムに対して、各高周波数クロック信号に応じた一次クロック信号をそれぞれ分配してよい。チップの複数のＩ／Ｏセルそれぞれにおける一次クロック信号は、各高周波数クロック信号に対して均一に遅延してよい。各チップは各一次クロック信号を周波数分割して、各一次クロック信号よりも低い周波数を有する周波数分割クロック信号をそれぞれ生成してよい。上記周波数分割は、第１のチップの周波数分割クロック信号と第２のチップの周波数分割クロック信号とがエッジ整列されるよう、各同期信号を用いてよい。第１のチップの第１のＩ／Ｏセルと第２のチップの第２のＩ／Ｏセルとの間でデジタル通信を実施してよく、第１のＩ／Ｏセルは、第１のチップの周波数分割クロック信号をクロック入力として使用し、第２のＩ／Ｏセルは、第２のチップの周波数分割クロック信号をクロック入力として使用する。
【００８７】
いくつかの実施形態では、各同期信号の生成は、外部基準クロック信号のエッジの決定と、外部基準クロック信号のエッジの決定に応じた同期信号のパルスの生成とを含む。いくつかの実施形態では、同期信号のパルスの生成は、特定のカウンタ値に達したらすぐにパルスを出力するよう構成されたカウンタをリセットすることを含んでよい。カウンタはクロック入力として一次クロック信号を使用してよい。
【００８８】
いくつかの実施形態では、各高周波数クロック信号の生成は、位相ロックループ（ＰＬＬ）からの高周波数クロック信号の出力を含んでよい。いくつかの実施形態では、各高周波数クロック信号の生成は更に、ＰＬＬへのフィードバック信号の提供を含んでよい。フィードバック信号の経路は、供給点からチップのＩ／Ｏセルへの一次クロック信号の経路と平行であってよい。
【図面の簡単な説明】
【００８９】
【図１】図１は、従来技術によるシステムのある実施形態を示すブロック図である。
【図２】図２は、従来技術によるシステムのクロック分配ネットワークのある実施形態を示すブロック図である。
【図３】図３は、従来技術によるシステムのクロック分割器のある実施形態のブロック図である。
【図４】図４は、従来技術によるシステムの例示的なクロック分割器波形を示す。
【図５】図５は、従来技術によるシステムのクロック及びＳＹＮＣ信号生成器のある実施形態のブロック図である。
【図６】図６は、同期型デジタルシステムのある実施形態を示すブロック図である。
【図７】図７は、クロック及びＳＹＮＣ信号生成器のある実施形態を示すブロック図である。
【図８】図８は、従来技術による単純な２入力多重化装置のある実施形態のブロック図である。
【図９】図９は、従来技術による多重化装置の動作から得られる例示的な波形を示す。
【図１０】図１０は、デグリッチ強化を有する単純な２入力多重化装置のある実施形態のブロック図である。
【図１１】図１１は、図１０の多重化装置が含む状態機械の動作を示す状態図である。
【図１２】図１２は、図１０の多重化装置が含む別の状態機械の動作を示す状態図である。
【図１３】図１３は、図１０の多重化装置の動作から得られる例示的な波形を示す。
【図１４】図１４は、下流の回路構成においてクロック誘発性のエラーを発生させることなくクロック生成回路構成を再構成するための方法のある実施形態を示すフローチャートである。
【図１５】図１５は、チップ上に設けられた同期型デジタルシステム内でのクロック信号のエラーを回避するための方法のある実施形態を示すフローチャートである。
【図１６】図１６は、２つの集積回路（ＩＣ）チップ間の入力／出力（Ｉ／Ｏ）通信を示すブロック図である。
【図１７】図１７は、図７のＰＬＬのためのフィードバック経路のある実施形態を示すブロック図である。
【図１８】図１８は、第１のＩＣチップと第２のＩＣチップとの間のデジタル通信を同期させるための方法のある実施形態を示すフローチャートである。
【発明を実施するための形態】
【００９０】
本発明は様々な修正及び代替形態を許容するものであるが、その具体的な実施形態を例として図面に示し、また本明細書で詳細に説明する。しかしながら、上記具体的実施形態の図及び詳細な説明は、図示されている特定の形態に開示を限定することを意図したものではなく、反対に、添付の請求項によって定義されるような本開示の精神及び範囲内にある全ての修正例、均等物及び代替例を包含することを意図したものであることを理解されたい。本明細書において使用されている見出しは、単に組織化を目的としたものであり、これらの使用は本説明の範囲の限定を意味しない。本出願全体を通して使用される単語「してよい／し得る／できる（ｍａｙ）」は、許容の意味で（即ち「可能性がある」ことを意味して）使用されており、強制の意味で（即ち「しなければならない」ことを意味して）使用されるものではない。同様に、単語「含む（ｉｎｃｌｕｄｅ／ｉｎｃｌｕｄｉｎｇ／ｉｎｃｌｕｄｅｓ）」は、ある対象を含むもののそれに限定されないことを意味する。
【００９１】
フローチャートは、例示的実施形態を例示するために提供されるものであり、図示されている特定のステップに本開示を限定することを意図したものではない。様々な実施形態において、図示されている方法の要素のうちのいくつかを同時に実施してよく、図示したものと異なる順序で実施してよく、又は省略してよい。必要に応じて追加の方法要素を実施してもよい。
【００９２】
様々なユニット、回路又はその他の構成部品は、１つ又は複数のタスクを実施する「よう構成される（ｃｏｎｆｉｇｕｒｅｄ  ｔｏ）」として記載され得る。このような文脈において「よう構成される」は、動作中に上記１つ又は複数のタスクを実施する「回路構成を有する」ことを一般に意味する、構造の広範な説明である。従ってユニット／回路／構成部品は、ユニット／回路／構成部品が現在オンでなくても上記タスクを実施するよう構成できる。一般に「よう構成される」に対応する構造を形成する回路構成は、ハードウェア回路を含んでよい。同様に、記載を簡略化するために、様々なユニット／回路／構成部品は、１つ又は複数のタスクを実施するとして記載され得る。このような記載は「よう構成される」という語句を含むものとして解釈されるものとする。１つ又は複数のタスクを実施するよう構成されるユニット／回路／構成部品の列挙は、これらユニット／回路／構成部品に関して米国特許法第１１２条第６段落の解釈を援用しないことを明示的に意図したものである。より一般には、いずれの要素の列挙は、「…のための手段（ｍｅａｎｓ  ｆｏｒ）」又は「…のためのステップ（ｓｔｅｐ  ｆｏｒ）」という語句が具体的に使用されていない限り、上記要素に関して米国特許法第１１２条第６段落の解釈を援用しないことを明示的に意図したものである。
【００９３】
参照による援用
Ｍｉｃｈａｅｌ  Ｂ．Ｄｏｅｒｒ、Ｗｉｌｌｉａｍ  Ｈ．Ｈａｌｌｉｄｙ、Ｄａｖｉｄ  Ａ．Ｇｉｂｓｏｎ、Ｃｒａｉｇ  Ｍ．Ｃｈａｓｅを発明者とする、発明の名称「Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍ  Ｗｉｔｈ  Ｉｎｔｅｒｓｐｅｒｓｅｄ  Ｓｔａｌｌ  Ｐｒｏｐａｇａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒｓ  Ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｅｌｅｍｅｎｔｓ」の米国特許第７４１５５９４号は、その全体を参照することにより、本明細書においてその全体が完全に論述されているかのように、本明細書に援用されるものとする。
【００９４】
Ｍｉｃｈａｅｌ  Ｂ．Ｄｏｅｒｒ、Ｃａｒｌ  Ｓ．Ｄｏｂｂｓ、Ｍｉｃｈａｅｌ  Ｂ．Ｓｏｌｋａ、Ｍｉｃｈａｅｌ  Ｒ  Ｔｒｏｃｉｎｏ、Ｄａｖｉｄ  Ａ．Ｇｉｂｓｏｎを発明者とする、２０１１年１０月１４日出願の、発明の名称「Ｄｉｓａｂｌｉｎｇ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｉｎ  ａ  Ｍｕｌｔｉｐｒｏｃｅｓｓｏｒ  Ｓｙｓｔｅｍ」の米国特許出願第１３／２７４１３８号は、その全体を参照することにより、本明細書においてその全体が完全に論述されているかのように、本明細書に援用されるものとする。
【００９５】
用語
ハードウェア構成プログラム：例えば集積回路等のハードウェアをプログラム又は構成するために使用できる、バイナリイメージにコンパイルできるソーステキストからなるプログラム。
【００９６】
コンピュータシステム：パーソナルコンピュータシステム（ＰＣ）、メインフレームコンピュータシステム、ワークステーション、ネットワーク家電、インターネット家電、パーソナルデジタルアシスタント（ＰＤＡ）、テレビジョンシステム、グリッドコンピューティングシステム若しくはその他のデバイス又はデバイスの組み合わせを含む、様々なタイプの計算又は処理システムのいずれか。一般に、用語「コンピュータシステム」は、メモリ媒体からの命令を実行する少なくとも１つのプロセッサを有するいずれのデバイス（又は複数のデバイスの組み合わせ）を包含するものとして広く定義できる。
【００９７】
自動的に（ａｕｔｏｍａｔｉｃａｌｌｙ）：その動作又は操作を直接指定又は実施するユーザ入力を必要とせずに、コンピュータシステムが実施する動作又は操作（例えばコンピュータシステムが実行するソフトウェア）について用いる。従って用語「自動的に」は、ユーザが手動で実施又は指定する操作（ここでユーザが操作を直接実施するために入力を提供する）と対照的なものである。自動処理は、ユーザが提供する入力によって開始される場合があるが、これに続く「自動的に」実施される動作は、ユーザが指定するものではなく、即ち「手動で」実施される（ユーザが各動作の実施を指定する）ものではない。例えばユーザが、各フィールドを選択し、（例えば情報をタイピングすることによって、チェックボックスを選択することによって、無線選択によって等で）情報を指定する入力を提供することによって、電子フォームを埋める場合、仮にコンピュータシステムがユーザの動作に応答して上記フォームを更新しなければならないとしても、これは上記フォームを手動で埋めたことになる。このようなフォームはコンピュータシステムによって自動で埋めることができ、この場合コンピュータシステム（例えばコンピュータシステム上で実行されるソフトウェア）は、フォームのフィールドを分析して、フィールドへの回答を指定するいずれのユーザ入力を必要とせずにフォームを埋める。上述のように、ユーザはフォームを自動で埋める動作を発動する場合はあるが、実際にフォームを埋める動作には関わらない（例えばユーザはフィールドへの回答を手動で指定せず、回答は自動的に完了する）。本明細書は、ユーザが行う動作に応答して自動的に実施される操作の様々な例を提供する。
【００９８】
例示的な同期型デジタルシステム
図６は、クロック分配ネットワークを備える同期型デジタルシステムのある実施形態を示す。この図の実施形態は１つのチップ上に設けられているものとして図示されているが、他の実施形態は複数のチップ及び追加の構成部品を備えてよい。あるいは複数の同期型デジタルシステムを単一のチップ上に設けてよい。本開示のシステムは同期型デジタルシステムと呼ばれるが、このシステムの特定の構成部品は非同期的に動作し得る。例えば同期型デジタルシステムは、システムのその他の部分とは非同期的に動作するリング発振器を備えてよい。同様にこのシステムはアナログ構成部品を備えてよい。このシステムを「同期型デジタルシステム（ｓｙｎｃｈｒｏｎｏｕｓ  ｄｉｇｉｔａｌ  ｓｙｓｔｅｍ）」と呼ぶ意味は、システムの少なくとも大部分が、共通のクロック又は複数の関連するクロックに基づいて動作するデジタル論理を含むことを示唆することのみである。
【００９９】
図６に示すように、同期型デジタルシステムはデジタル論理のセクションを備える。いくつかの実施形態では、デジタル論理は多重プロセッサアレイ（ＭＰＡ）を備えてよい。デジタル論理は入力として、クロック信号ＣＬＫ１及び同期信号ＳＹＮＣを受信する。ＣＬＫ１及びＳＹＮＣ信号は、ＣＬＫ１＋ＳＹＮＣ生成器によって生成される。ＣＬＫ１＋ＳＹＮＣ生成器は入力として、クロック基準信号ＣＬＫＲＥＦ、クロックバイパス信号Ｂｙｐａｓｓ、信号ＣｌｏｃｋＯｖｅｒｒｉｄｅを受信する。他の実施形態では、他の多数の入力が可能である。図６に示すように、入力は、チップの入力ピンからＣＬＫ１＋ＳＹＮＣ生成器に供給されるものとして示されている。しかしながら他の実施形態では、これら信号はオンチップで生成してよい。クロック基準信号ＣＬＫＲＥＦは、異なるチップ間の動作を同期させるために使用できるシステム基準クロックであり、従って図６の実施形態では、同期型デジタルシステムの外部で発振器ＯＳＣ１によって生成されるものとして示されている。
【０１００】
図７は、ＣＬＫ１＋ＳＹＮＣ生成器のある実施形態を更に詳細に示す。図示したように、ＣＬＫ１＋ＳＹＮＣ生成器は入力としてＣＬＫＲＥＦ信号、ＢＹＰＡＳＳ信号、ＣｌｏｃｋＯｖｅｒｒｉｄｅ信号を得て、出力としてＣＬＫ１信号、ＳＹＮＣ信号を供給する。ＣＬＫ１＋ＳＹＮＣ生成器はまた、ソフトウェアからデータを受信できるレジスタＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｇ０と、ソフトウェアから取得できる状態情報を保存できるレジスタＳｔａｔｕｓＲｅｇ１とを備える。上記状態情報は例えば、ＰＬＬロック状態、クロック入力信号の損失を含んでよい。
【０１０１】
図７では、ＣＬＫ１生成器部分は位相ロックループ（ＰＬＬ）、リング発振器、３つの多重化装置、何らかの論理、構成レジスタ、状態レジスタからなる。
【０１０２】
入力信号ＣＬＫＲＥＦはＰＬＬに提供され、ＰＬＬは出力としてシステムの最高周波数クロック信号（ｈｉｇｈｅｓｔ  ｆｒｅｑｕｅｎｃｙ  ｃｌｏｃｋ  ｓｉｇｎａｌ：ＨＦＣ）を提供する。図７のＰＬＬは、様々な設定可能なクロック分割器、選択論理、クロック信号を構成するための当該技術分野で公知のその他の構成部品を備えてよい。他の実施形態では、ＰＬＬは、デジタル位相ロックループ（ｄｉｇｉｔａｌ  ｐｈａｓｅ−ｌｏｃｋｅｄ  ｌｏｏｐ：ＤＰＬＬ）、遅延ロックループ（ｄｅｌａｙ−ｌｏｃｋｅｄ  ｌｏｏｐ）又はその他のクロック生成回路構成で置換してよい。
【０１０３】
入力信号ＣＬＫＲＥＦ、クロック信号ＨＦＣは共に入力として多重化装置Ｍ１に提供され、これは入力信号ＢＹＰＡＳＳによって、及び論理ブロックＬｏｇｉｃ１からの信号によって制御でき、論理ブロックＬｏｇｉｃ１はＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｇ０及びＰＬＬからの入力を受信する。多重化装置Ｍ１はクロック信号ＣＬＫ０を出力する。
【０１０４】
リング発振器ＲｉｎｇＯｓｃ．は出力としてクロック信号ＣＬＫＲＯを提供し、これはＣＬＫＲＥＦに、又は同期型デジタルシステムが受信する他のいずれのクロック信号に左右されない。クロック信号ＣＬＫ０、ＣＬＫＲＯは入力として多重化装置Ｍ２に提供され、これは論理ブロックＬｏｇｉｃ１からの信号によって制御できる。
【０１０５】
クロック信号ＣＬＫＲＯ及び多重化装置Ｍ２の出力クロック信号は入力として多重化装置Ｍ３に提供され、これは入力信号ＣｌｏｃｋＯｖｅｒｒｉｄｅによって制御できる。多重化装置Ｍ３は出力信号ＣＬＫ１を出力し、これはＣＬＫ１＋ＳＹＮＣ生成器を出る前にバッファリングできる。
【０１０６】
いくつかの実施形態では、追加のクロック分割器又は他の回路構成を多重化装置Ｍ１〜Ｍ３間及び／又は多重化装置Ｍ１〜Ｍ３の後に点在させてよい。
【０１０７】
図７では、ＳＹＮＣ生成器部分はデータフリップフロップ（ＤＦ１、ＤＦ２）、カウンタ（ＣＮＴ０）、いくつかの論理ゲートからなる。クロック信号ＣＬＫ１はインバータに提供され、反転されたクロック信号はＣｌｏｃｋ入力としてカウンタＣＮＴ０に提供される。カウンタＣＮＴ０の複数の出力は論理「ｎｏｒ」ゲートに供給され、これは出力として同期信号ＳＹＮＣを提供する。よって図示したように、ＳＹＮＣは、ＣＮＴ０の全ての出力が低い場合、即ちＣＮＴ０の計数がゼロの場合にのみ高くなる。しかしながら他の実施形態では、ＣＮＴ０の出力は更に、ＮＯＲ１に提供される前に、当該技術分野で公知であるように、ＣＮＴ０の出力が他の値に対応する場合にＳＹＮＣが高くなるように構成してよい。ＣＮＴ０は４ビットカウンタとして示されているが、他の実施形態はその他のサイズのカウンタ又は可変サイズのカウンタを利用してよい。出力信号ＳＹＮＣは、ＣＬＫ１＋ＳＹＮＣ生成器を出る前にバッファリングできる。
【０１０８】
入力信号ＣＬＫＲＥＦはエッジ検出器に提供され、これはＤＦ１、ＤＦ２を備える立ち上がりエッジ検出器として図示されており、ＤＦ１、ＤＦ２はＣＬＫ１及び論理「ａｎｄ」ゲートＡＮＤ１によってクロック供給される。他の実施形態では、低下したレートで同期的に通信する必要がある全てのチップが同一のエッジを使用する限りにおいて、立ち下がりエッジ検出器を含む他のエッジ検出器を使用してよい。エッジ検出器の出力は信号ＣＬＫＲＥＦｒｉｓｉｎｇであり、これはカウンタＣＮＴ０のＲｅｓｅｔ入力に提供される。
【０１０９】
ＣＬＫ１＋ＳＹＮＣ生成器の機能について、図８〜１８を参照して更に完全に説明する。
【０１１０】
デグリッチされたクロック信号の選択
図７に示すように、多重化装置Ｍ１〜Ｍ３により、クロック信号ＣＬＫ１として使用するために様々なクロック信号を選択できる。多重化装置Ｍ１〜Ｍ２は、基準クロック信号ＣＬＫＲＥＦからクロック信号源を、ＰＬＬからクロック信号ＨＦＣを、又はオンチップリング発振器ＲｉｎｇＯｓｃ．からクロック信号ＣＬＫＲＯを選択するよう設定できるソフトウェアである。多重化装置をあるクロック信号源から別のクロック信号源へと切り替えると、多重化装置は歪み及びノイズをその出力信号に導入してしまう場合があり、これは下流の回路の障害を引き起こし得る。クロック分配の前端におけるグリッチはチップ全体に亘って伝播でき、その経路に沿ったいずれの場所において機能的エラーを引き起こし得る。グリッチはまた、タイミングマージンを減少させるため望ましくない。従来技術では典型的には、新規のクロック信号源の選択の後に下流の回路のリセットが続き、これは下流の回路を再開始のための既知の状態として、グリッチのいずれの悪影響を除去する。
【０１１１】
「オンザフライ（ｏｎ  ｔｈｅ  ｆｌｙ）」クロック信号源を、第１のクロック源から第１のクロック源と同期していない第２のクロック源に切り替えると、多重化装置が入力クロックパルスを遮断し、短いパルスを放出するか又は比較的長いパルスにノッチを発生させる。これら短いパルスはまとめてグリッチと呼ばれる。
【０１１２】
多重化装置Ｍ１〜Ｍ３からの出力にグリッチが発生する可能性を削減するために、多重化装置Ｍ１〜Ｍ３のうちの１つ又は複数はデグリッチ回路によって強化できる。
【０１１３】
従来の多重化装置は、複数の信号入力からの選択を行うために使用される複数のゲートの単なる組み合わせである。基本的な２入力多重化装置（２−ｉｎ  ｍｕｘ）の概略図を図８に示す。選択入力信号ＳＥＬが変化する４つのケースに関して、典型的な波形を図９に示す。クロック信号ＣＬＫ０、ＣＬＫ１の波形は単なる例であり、多数のその他の周波数又は位相ミスマッチが可能である。図示した各ケースに関して、ＯＵＴ信号においてグリッチが観察され、円で囲んで示されている。図示したように、ハイ方向又はロー方向に小さなグリッチ及び大きなグリッチが発生し得る。
【０１１４】
図１０は、デグリッチ強化を有する単純な２入力多重化装置のある実施形態のブロック図である。この実施形態の強化は状態機械のペアを備え、これらはそれぞれ、ＳＥＬ、ＣＬＫ０、ＣＬＫ１入力からの入力、及び互いからの入力を受け取ることができる。しかしながら他の実施形態では、ここで図示した２つの状態機械の機能と同様の機能を有する１つ又は複数の状態機械を利用してよいことは、当業者であれば理解できるだろう。
【０１１５】
図１１の状態図は、状態機械ＳＭ０の動作を説明している。リセット時、ＳＭ０は状態ＳＭ０＿ＯＦＦに設定される。状態ＳＭ０＿ＯＦＦでは、選択信号ＳＥＬ０は論理０に設定される。選択信号ＳＥＬが論理０に設定されていることを検出すると、ＳＭ０は状態ＳＭ０＿ＷＡＩＴに遷移する。状態ＳＭ０＿ＷＡＩＴでは、ＳＥＬ０は０に設定されたままである。ＳＭ０が状態ＳＭ０＿ＷＡＩＴである間にＳＥＬが論理１に変化すると、ＳＭ０は状態ＳＭ０＿ＯＦＦに戻るように遷移する。あるいはＳＭ０が状態ＳＭ０＿ＷＡＩＴである間に、ＳＥＬが０のままでありＳＭ１が状態ＳＭ１＿ＯＦＦであることをＳＭ０が検出すると、ＳＭ０は状態ＳＭ０＿ＯＮに遷移する。状態ＳＭ０＿ＯＮでは、ＳＥＬ０は１に設定される。ＳＥＬが１であることが検出されると、ＳＭ０は状態ＳＭ０＿ＯＦＦに戻るように遷移する。
【０１１６】
図１２の状態図は、状態機械ＳＭ１の動作を説明している。リセット時、ＳＭ１は状態ＳＭ１＿ＯＦＦに設定される。状態ＳＭ１＿ＯＦＦでは、選択信号ＳＥＬ１は論理０に設定される。選択信号ＳＥＬが論理１に設定されていることを検出すると、ＳＭ１は状態ＳＭ１＿ＷＡＩＴに遷移する。状態ＳＭ１＿ＷＡＩＴでは、ＳＥＬ１は０に設定されたままである。ＳＭ１が状態ＳＭ１＿ＷＡＩＴである間にＳＥＬが論理０に変化すると、ＳＭ１は状態ＳＭ１＿ＯＦＦに戻るように遷移する。あるいはＳＭ１が状態ＳＭ１＿ＷＡＩＴである間に、ＳＥＬが１のままでありＳＭ０が状態ＳＭ０＿ＯＦＦであることをＳＭ１が検出すると、ＳＭ１は状態ＳＭ１＿ＯＮに遷移する。状態ＳＭ１＿ＯＮでは、ＳＥＬ１は１に設定される。ＳＥＬが０であることが検出されると、ＳＭ１は状態ＳＭ１＿ＯＦＦに戻るように遷移する。
【０１１７】
図１３は、図９に示すもの同じ４つのケースに関する波形を示し、図１０のデグリッチされた多重化装置の出力信号ＤＧＯＵＴが追加されている。図１３の波形は、状態機械ＳＭ０がその入力をクロック信号ＣＬＫ０の立ち下がりエッジにおいてサンプリングし、ＳＭ１がその入力をクロック信号ＣＬＫ１の立ち下がりエッジにおいてサンプリングするものと仮定している。図１３に示すように、デグリッチ強化を、ＣＬＫ０入力とＣＬＫ１入力との間の位相差及び周波数差の様々な組み合わせにおいて、短いパルスを防止する。
【０１１８】
図７の多重化装置Ｍ１〜Ｍ３のうちの１つ又は複数として、デグリッチ強化を有する多重化装置を利用することにより、ＣＬＫ１として使用するために選択されたクロック信号を、同期型デジタルシステムの下流においてクロック誘発性エラーを発生させることなく、「オンザフライ」状態へと切り替えることができる。
【０１１９】
クロック生成回路構成の再構成
図７の例示的実施形態等のシステムでは、ソフトウェア制御を介する等して、ＰＬＬ又は同様のクロック生成回路構成を動的に再構成すると有利であり得る。例えば、同期型デジタルシステム全体が利用されていない場合に電力を節約するためのソフトウェア命令によって、ＰＬＬ出力ＨＦＣの周波数を一時的に低下させてよい。あるいは入力基準信号ＣＬＫＲＥＦの信号源が切り替えられ、ＰＬＬ内の位相ロックの損失が引き起こされ得る。このような場合、ＰＬＬはグリッチを生成し得、安定化にある程度の時間がかかることになる。
【０１２０】
この期間中、適切な代替クロック信号を、同期型デジタルシステムに提供される一次クロック信号として使用するために選択してよく、これによって下流の回路の連続的な動作が可能となる。しかしながら、クロック信号間の切り替えによって一次クロック信号に追加のグリッチが発生しないことを保証するために注意を払う必要がある。
【０１２１】
図１４は、下流の回路構成においてクロック誘発性のエラーを発生させることなく、クロック生成回路構成を再構成するための方法のある実施形態を示すフローチャートである。図１４に示す方法は、とりわけ図６〜７の例示的なシステムと組み合わせて使用してよい。
【０１２２】
ステップ１４０２では、クロック生成回路構成を用いて第１のクロック信号を生成してよい。図７の例示的実施形態に示すように、クロック生成回路構成はＰＬＬを備えてよく、第１のクロック信号はクロック信号ＨＦＣであってよい。クロック生成回路構成の他の非限定的な例は、ＤＰＬＬ又はＤＬＬを含んでよい。あるいはクロック生成回路構成は、図７のＲｉｎｇＯｓｃ．等のリング発振器を備えてよい。
【０１２３】
ステップ１４０４では、同期型デジタルシステムのための一次クロックとして第１のクロック信号を選択してよい。図６〜７の例示的実施形態では、同期型デジタルシステムのための一次クロックはＣＬＫ１として標識されている。いくつかの実施形態では、第１のクロック信号は、通常動作中の同期型デジタルシステムのための一次クロックとして使用してよい。
【０１２４】
図７の例示的実施形態では、一次クロック信号としての第１のクロック信号の選択は、多重化装置Ｍ１〜Ｍ３によって実施してよい。多重化装置Ｍ１、Ｍ２は、レジスタＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｇ０、論理ブロックＬｏｇｉｃ１を介して、ソフトウェア構成に基づいて制御してよい。これにより、一次クロックの選択に対するソフトウェア制御が可能となる。従っていくつかの実施形態では、ステップ１４０４は、ソフトウェアコマンドに応答して実施されてよい。あるいは、一次クロックとしての第１のクロック信号の選択は自動であってよい。多重化装置Ｍ１はまた、入力信号ＢＹＰＡＳＳに基づいて制御してよい。多重化装置Ｍ３は入力信号ＣｌｏｃｋＯｖｅｒｒｉｄｅに基づいて制御してよく、これについては以下に更に詳細に説明する。
【０１２５】
この文脈において、同期型デジタルシステムのための一次クロック「としての（ａｓ）」クロック信号の選択は、システムの回路構成によって特定のクロック信号が同期型デジタルシステムの少なくとも大部分へと伝播することを示している。これは、選択されたクロック信号が選択回路構成、バッファ、その他の回路構成を通過できる実施形態を包含することを意図している。例えば図７の実施形態では、多重化装置Ｍ１がＨＦＣを選択するよう構成され、多重化装置Ｍ２がＣＬＫ０を選択するよう構成され、多重化装置Ｍ３が多重化装置Ｍ２の出力を選択するよう構成されている同期型デジタルシステムのための一次クロックとして、クロック信号ＨＦＣが選択される。これはまた、一次クロックがローカルクロック再生成器回路構成に提供される実施形態を包含することを意図しており、各ローカルクロック再生成器回路構成は、一次クロックの周波数及び／又はスキューが調整されたバージョンであるローカルクロック信号をローカル論理要素に送達できる。
【０１２６】
ステップ１４０６では、一次クロックとして第２のクロック信号を選択してよい。従って第２のクロックは、一次クロックとしての第１のクロックを置換する。一次クロック信号にグリッチが発生するのを防止するために、図１０〜１２の多重化装置等の、デグリッチ強化を含む１つ又は複数の多重化装置を用いて選択を実施してよい。あるいは当該技術分野で公知のその他のデグリッチ多重化装置を使用してよい。
【０１２７】
図７の例示的実施形態では、一次クロック信号としての第２のクロック信号の選択は、多重化装置Ｍ１〜Ｍ３によって実施してよい。例えば第２のクロック信号は、クロック基準信号ＣＬＫＲＥＦ又はクロック信号ＣＬＫＲＯであってよい。いくつかの実施形態では、ステップ１４０６はソフトウェアコマンドに応答して実施されてよい。あるいは、一次クロックとしての第２のクロック信号の選択は自動であってよい。例えば一実施形態では、論理ブロックＬｏｇｉｃ１は、レジスタＲｅｇ０がＰＬＬを再構成するためのコマンドを受信するのに応答して、ＨＦＣの選択からＣＬＫＲＥＦの選択への切り替えを実施するように多重化装置Ｍ１を自動的に構成してよい。
【０１２８】
ステップ１４０８では、第２のクロック信号が一次クロックとして作用している間に、クロック生成回路構成を再構成してよい。第１のクロック信号が一次クロックとして作用していないため、クロック生成回路構成の再構成の結果として第１のクロック信号に発生するいずれのグリッジは、同期型デジタルシステムの下流の回路構成に影響しない。
【０１２９】
一実施形態では、クロック生成回路構成の再構成は、クロック生成回路構成が様々なレートで電力を放散するようにクロック生成回路構成の少なくとも１つの設定を変更することを含んでよい。例えばクロック生成回路構成は、同期型デジタルシステム全体が利用されていない場合に、比較的少ない電力しか放散されないようにするために、比較的低い周波数で動作するよう再構成してよい。クロック生成回路構成はその後、図１４の方法の別の実行時に、同期型デジタルシステムの利用が増加した場合に比較的高い周波数で動作するよう再構成してよい。一実施形態では、クロック生成回路構成の再構成は、クロック生成回路構成の電力を低下させて動作を防止すること、その後クロック生成回路構成の電力を上昇させることを含んでよい。同様に別の実施形態では、クロック生成回路構成の再構成は、クロック生成回路構成へのクロック信号入力を除去して動作を防止すること、その後クロック生成回路構成へのクロック入力を再アサートすることを含んでよい。これらの実施形態では、これらの方法のいずれかでクロック生成回路構成の動作を防止することによって電力を節約してよい。いくつかの実施形態では、上述の再構成はプログラムによって、即ちソフトウェア制御によって実施してよい。
【０１３０】
ステップ１４１０では、一次クロックとして再び第１のクロックを選択してよい。一次クロック信号にグリッチが発生するのを防止するために、図１０〜１２の多重化装置等の、デグリッチ強化を含む１つ又は複数の多重化装置を用いて選択を実施してよい。あるいは当該技術分野で公知であるその他のデグリッチ多重化装置を使用してよい。クロック生成回路構成を再構成した後、安定化にある程度の時間が必要となり得る。従って、一次クロックとしての第１のクロックの再選択は、クロック生成回路構成が安定化した後で実施してよい。この文脈において用語「安定化した（ｓｔａｂｉｌｉｚｅｄ）」は、クロック生成回路構成の出力の異常が、下流の回路構成におけるクロック誘発性のエラーを回避できる程度に十分に小さいことを示す。
【０１３１】
一実施形態では、クロック生成回路構成が安定化した後の第１のクロックの選択は、クロック生成回路構成の再構成が完了した後、第１のクロックを選択する前に所定の時間が経過するのを待つことを含んでよい。この所定の時間は、クロック生成回路構成を安定化できるよう十分に長い必要がある。
【０１３２】
別の実施形態では、クロック生成回路構成が安定化した後の第１のクロックの選択は、クロック生成回路構成が安定化されたかどうかを決定すること、上記決定に少なくとも部分的に応じて一次クロックとして第１のクロックを選択することを含んでよい。例えば図７の実施形態では、ＰＬＬは、ＰＬＬが再構成後に位相ロックを達成したかどうかを示す状態信号を提供してよい。一実施形態では、論理ブロックＬｏｇｉｃ１は、ＰＬＬが位相ロックを達成したことを示すＰＬＬからの状態信号の受信に応じてＨＦＣを選択するよう、多重化装置Ｍ１を自動的に再構成してよい。別の実施形態では、レジスタＳｔａｔｕｓＲｅｇ１は、ＰＬＬが位相ロックを達成したことを示す状態信号を、ソフトウェアによって読み取るために保存してよい。そしてソフトウェアは、レジスタＣｏｎｆｉｇｕｒａｔｉｏｎＲｅｇ０、論理ブロックＬｏｇｉｃ１を介して、レジスタＳｔａｔｕｓＲｅｇ１の読み取りに少なくとも部分的に応じてＨＦＣを選択するための命令を多重化装置Ｍ１に提供してよい。
【０１３３】
オンチップ発振器の自動的な選択
いくつかの状況において、いずれの外部クロック信号と独立して、同期型デジタルシステムを備えるチップ上で生成された信号を一次クロックとして自動的に選択すると有利であり得る。具体的には、クロック信号エラーをこのようにして回避できる様々な状況が存在する。
【０１３４】
図１５は、チップ上に設けられた同期型デジタルシステムにおいてクロック信号エラーを回避するための方法のある実施形態を示すフローチャートである。図１５に示す方法は、とりわけ図６〜７の例示的なシステムと組み合わせて使用してよい。
【０１３５】
ステップ１５０２では、同期型デジタルシステムのための一次クロックとして第１のクロック信号を提供してよい。第１のクロック信号は、同期型デジタルシステムが受信した外部クロック信号に左右される。図７の例示的実施形態において示したように、第１のクロック信号をＰＬＬによって生成してよく、第１のクロック信号はクロック信号ＨＦＣであってよく、クロック信号ＨＦＣは入力クロック基準信号ＣＬＫＲＥＦに左右される。図６〜７の例示的実施形態では、同期型デジタルシステムのための一次クロックはＣＬＫ１として標識される。
【０１３６】
同期型デジタルシステムの通常動作中、一次クロックを、第１のクロック信号を含む複数の利用可能なクロック信号から選択してよい。例えば図７の実施形態では、多重化装置Ｍ１、Ｍ２を用いて、ＣＬＫ１を利用可能なクロック信号ＨＦＣ、ＣＬＫＲＥＦ、ＣＬＫＲＯから選択してよい。上述のように、多重化装置Ｍ１、Ｍ２の制御は自動であってよく、又はソフトウェアによって制御してよい。
【０１３７】
ステップ１５０４では、クロック選択オーバライド信号を受信してよい。クロック選択オーバライド信号は、オンチップで生成されたクロック信号を一次クロックとして選択することを必要とする条件を示してよい。図７の例示的実施形態では、クロック選択オーバライド信号は、入力信号ＣｌｏｃｋＯｖｅｒｒｉｄｅとして図示されている。
【０１３８】
クロック選択オーバライド信号は、様々な実施形態において多様な状況を示し得る。例えば一実施形態では、クロック選択オーバライド信号は、同期型デジタルシステムに起こり得る又は実際に起こった改ざんを示す改ざん検出信号を含んでよい。このような改ざんは、同期型デジタルシステムのハードウェア又はソフトウェアの非認証アクセスを含んでよい。改ざん検出信号は、１つ若しくは複数のセンサ又は改ざんを検出するよう構成されたその他の設備からの信号を含んでよい。このようなセンサ又はその他の設備は、同期型デジタルシステムに備えられていてもいなくてもよく、チップ上に存在してもしなくてもよい。改ざんを検出するための方法及び設備の例は、米国特許出願第１３／２７４１３８号において確認でき、上記文献は上述のように本出願に援用される。
【０１３９】
別の実施形態では、クロック選択オーバライド信号は、外部クロック信号の損失又は不安定化が予想されることを示すクロック損失信号を含んでよい。例えばクロック損失信号は、入力クロック基準信号ＣＬＫＲＥＦの信号源が変更されたかリセットされたか若しくは中断されたこと、又は上記信号源が変更されるかリセットされるか若しくは中断されようとしていることを示してよい。
【０１４０】
ステップ１５０６では、選択オーバライド信号に応じて第２のクロック信号を一次クロックとして選択してよい。従って第２のクロックは、一次クロックとしての第１のクロックを置換する。第２のクロック信号はオンチップ信号生成器によって、外部クロック信号とは独立して生成される。第２のクロック信号はいずれの外部クロック信号とは独立して生成されるが、いくつかの実施形態は、外部構成信号によってオンチップ信号生成器を構成できる場合がある。
【０１４１】
図７の例示的実施形態では、一次クロック信号としての第２のクロック信号の選択は、多重化装置Ｍ３によって実施してよい。例えば第２のクロック信号は、入力クロック基準信号ＣＬＫＲＥＦとは独立してリング発振器ＲｉｎｇＯｓｃ．によって生成されるクロック信号ＣＬＫＲＯであってよい。従って入力信号ＣｌｏｃｋＯｖｅｒｒｉｄｅに応じたＣＬＫＲＯの選択は、多重化装置Ｍ１〜Ｍ２を通して定義できるその他の自動的な又はソフトウェアによって定義されたクロック選択に優先する。
【０１４２】
一次クロックにおけるグリッチの発生を防止するために、図１０〜１２の多重化装置等の、デグリッチ強化を含む１つ又は複数の多重化装置を用いて選択を実施してよい。あるいは当該技術分野で公知のその他のデグリッチ多重化装置を使用してよい。他の実施形態では、デグリッチ強化は不要であり得る。
【０１４３】
ステップ１５０８では、連続クロック信号を必要とする安全対策を実施してよい。このような安全対策は、クロック選択オーバライド信号が改ざん検出信号を含む実施形態において適切であり得る。例えばチップを改ざんしようとするハッカー又はその他の人物は、同期型デジタルシステムの内部レジスタの状態情報を読み出そうとする場合がある。外部からの改ざんを検出するとすぐにレジスタをクリアする等、レジスタが読み出されるのを防止する様々な方法が提案されている。従って内部レジスタの状態を保存するために、ハッカーはシステム基準クロック（ＣＬＫＲＥＦ）を停止させて、同期型デジタルシステムの内部レジスタ内の動作をフリーズさせ得る。よって一実施形態では、同期型デジタルシステムの状態情報のクリア等の安全対策は、改ざん検出信号に応じて実施してよい。一次クロックとして第２クロック信号が選択されているため、状態情報のクリア等の安全対策は、ＣＬＫＲＥＦが停止したかどうかに関わらず進めることができる。可能な安全対策の更なる例は米国特許出願第１３／２７４１３８号において確認でき、上記文献は本出願に援用される。
【０１４４】
チップ間通信
図１６は、２つの集積回路（ＩＣ）チップ間の入力／出力（Ｉ／Ｏ）を示すブロック図である。図１６に示すように、第１のチップ及び第２のチップはそれぞれ、図６に示すような同期型デジタルシステムを備える。各チップに関して、一次クロック信号ＣＬＫ１はそれぞれのＣＬＫ１＋ＳＹＮＣ生成器によってデジタル論理ブロックの中央クロック再生成器に提供される。よって一次クロック信号ＣＬＫ１は、クロック分配ネットワークを通して伝播するにつれて更なるクロック再生成器を通過できる。Ｉ／Ｏセルは、クロック分配分岐内の最後の再生成器からクロック信号を受信できる。
【０１４５】
多重チップシステムでは、チップ間の同期通信は、共通の基準クロック信号を共有して、各チップ上のＰＬＬによってＩ／Ｏ回路間の位相関係を安定化できるようにすることによって達成してよい。これは、ＳＹＮＣ信号が必要ない、図１７に図示されているような非分割クロックの場合に良好に機能する。
【０１４６】
図１７は、図７のＰＬＬのためのフィードバック経路のある実施形態を示すブロック図である。リング発振器及びＰＬＬ、並びに信号ＣＬＫＲＥＦ、ＣＬＫＲＯ、ＨＦＣは、図７中の同一の名称の構成部品及び信号に相当し得る。図１７の選択及び構成回路構成は、図７の多重化装置Ｍ１〜Ｍ３に相当し得る。他の実施形態では、選択及び構成回路構成は他の回路構成を含んでよい。
【０１４７】
図１７のフィードバック経路はＰＬＬのＨＦＣ出力から始まり、分配ネットワークを通る一次クロックを、ＰＬＬの近傍のＩ／Ｏセルに供給を行う再生成器に対して平行にする。図１６は、Ｉ／Ｏセル１への一次クロックの例示的な経路を示し、上記Ｉ／Ｏセル１はＣＬＫ１＋ＳＹＮＣ生成器の近傍にあり、上記ＣＬＫ１＋ＳＹＮＣ生成器はＰＬＬを含んでよい。図１７のフィードバック経路は、分配ネットワークを通る一次クロックの経路において再生成器によって引き起こされるバッファ遅延に適合するバッファ遅延を含む。伝播遅延もまた適合される。結果として得られた、フィードバック経路の端部において発生する高周波数クロック出力の遅延したバージョンである信号ＦＥＥＤＢＡＣＫ＿ＩＮＰＵＴは、ＰＬＬフィードバック入力に提供される。このフィードバックは、Ｉ／Ｏセルにおける一次クロック信号ＣＬＫ１の位相をＰＬＬにおける入力クロック基準信号ＣＬＫＲＥＦに対して整列させる効果を有する。これにより、Ｉ／Ｏセルにおける一次クロック信号の位相に対する、再生成器の遅延及び製造、供給電圧、動作温度によるその変動の影響が最小化される。従って、第１のチップのＰＬＬにおいて受信されたクロック基準信号ＣＬＫＲＥＦが、第２のチップのＰＬＬにおいて受信されたクロック基準信号ＣＬＫＲＥＦに対してエッジ整列されている場合、第１のチップのＩ／Ｏセルにおける各一次クロック信号ＣＬＫ１は、第２のチップのＩ／Ｏセルにおける各一次クロック信号ＣＬＫ１に対してエッジ整列されることになる。
【０１４８】
チップ間のデータ信号は多くの様式で遅延して歪んでよく、このような問題を解決するための最も簡単な解決法の１つは、データレートを低下させることであり、これは各Ｉ／Ｏ回路の電力放散も低下させる。一実施形態では、Ｉ／Ｏ回路は図３に示すもののような関連するクロック分割器を有してよい。データレートは、Ｉ／Ｏ回路のためのクロック分割器に関する構成レジスタＲｅｇＰをアップデートすることにより、Ｉ／Ｏ回路のプログラム制御下で低下させることができる。しかしながら、２つのチップの分割されたクロックそれぞれの位相をＣＬＫ１の最も近いサイクルに整列させるには２つのチップのＳＹＮＣ信号それぞれを、ＣＬＫ１によってＩ／Ｏ回路のためのクロック分割器に分配すること、そして更に各ＳＹＮＣ信号をチップ間で同期させることが必要である。
【０１４９】
図５に示す従来技術では、ＣＮＴ０のＲｅｓｅｔ入力にはチップピン（ＳＹＮＣ−ＩＮ）から入力してよく、これにより、あるチップがＳＹＮＣ−ＯＵＴ信号を提供する別のチップのスレーブとなることが望まれる。しかしながら、チップ間のＳＹＮＣ信号遅延及び歪みにより、これは困難である。よって、Ｉ／Ｏ回路のクロック分割器によって提供される比較的低いクロックレートでのチップ間通信のために、分割器のリセットをチップ間で更に効果的に同期させる必要がある。
【０１５０】
クロック分割器は無制限の範囲（これは無制限の電力放散を必要とし得る）を有するものではない。低電力の応用例には、２＾４＝１６の範囲が有用である。クロック分割器の範囲の制限により、図７の例示的実施形態に関して言及する以下の分析に見られるようにＰＬＬクロック多重化係数も制限される。
【０１５１】
ＣＬＫ１の周波数をｆｃｌｋ１、ＣＬＫＲＥＦの周波数をｆｃｌｋｒｅｆとする。
【０１５２】
ｆｃｌｋ１＝Ｍ＊ｆｃｌｋｒｅｆであり、ここでＭはＰＬＬ多重化係数であり、典型的には２＾ｉ（ｉは整数）である。
【０１５３】
ＣＬＫＲＥＦを、ＣＬＫ１によってクロック供給されるＣＮＴ０のリセット入力に導入することにより、ＳＹＮＣの最小周波数はｆｓｙｎｃ＝ｆｃｌｋｒｅｆとなる。
【０１５４】
ｆｃｌｋ１がｆｃｌｋｒｅｆ／２以下である場合、ＣＮＴ０はリセットされるより早く計数されず、従って００００状態を超えて効果的に計数されない。
【０１５５】
Ｍ＝２＾ｉである場合、これはｉ＝０において最小となり、最小のＭは１である。
【０１５６】
Ｄ０＝２＾ｊ０をＣＮＴ０のロールオーバカウントとすると、ｉ＝０〜ｊ０に関してｆｓｙｎｃ＝ｆｃｌｋｒｅｆであり、ｉ＞ｊ０に関してｆｓｙｎｃ＝ｆｃｌｋｒｅｆＭ／Ｄ０である。
【０１５７】
例えばＣＮＴ０を４ビットで固定すると、これはＣＬＫ１の１６パルス毎にロールオーバを発生させ、ＳＹＮＣパルスが放出される。例えばＭが３２である場合、ＳＹＮＣ周波数はｆｃｌｋｒｅｆの２倍となるが、周期的なリセット入力によりこれはＣＬＫＲＥＦに対して位相整列されたままとなる。
【０１５８】
一実施形態では、ｊ０の値を４に固定してよく、ＰＬＬ多重化装置をｉ＝４（Ｍ＝１６）に固定してよく、これによってＣＮＴ０にクロック供給する。更に下流では、別の分割器（図示せず）が信号ＣＬＫ１を、チップの残りの部分への経路において２＾ｋ（０＜ｋ＜４）によって分割してよい。これによりＣＮＴ０のクロック供給に影響を及ぼすことなく、（例えばチップ電力放散を低下させるために）チップの残りの部分に対するＣＬＫ１を低下させることができる。
【０１５９】
上述のように、各Ｉ／Ｏ回路はクロック分割器を備えるクロック再生成器によって供給を受け、これにより、図３に示すようにＩ／Ｏ回路への入力クロックを、周波数ｆｉｏを有する分割されたクロック信号とすることができる。即ちｆｉｏ＝ｆｃｌｋ１／Ｄｉｏであり、ここでＤｉｏは分割器の比であり、典型的には２＾ｊ（０＜ｊ＜ｊｍａｘ）である。
【０１６０】
ｆｃｌｋ１＝Ｍｉｏ＊ｆｃｌｋｒｅｆに代入すると、ｆｉｏの従属性を理解できる。即ちｆｉｏ＝ｆｃｌｋｒｅｆ＊Ｍｉｏ／Ｄｉｏであり、ここでＭｉｏはＩ／Ｏ回路構成に供給を行う再生成器における比ｆｃｌｋ１／ｆｃｌｋｒｅｆである。
【０１６１】
それぞれ１、２の番号を付された２つのチップのＩ／Ｏ回路間の確実なデータ転送のために、伝送クロックレートと受信クロックレートとは同一でなければならない。即ちｆｉｏ１＝ｆｉｏ２である。
【０１６２】
代入及びｆｃｌｋｒｅｆでの等号の両側の除算により、規則１：Ｍｉｏ１／Ｄｉｏ１＝Ｍｉｏ２／Ｄｉｏ２が得られる。
【０１６３】
クロック分割器がＳＹＮＣ入力を適切に使用するために、各ｆｉｏはｆｓｙｎｃ以上でなければならない。
【０１６４】
対称性の設定の例は以下のとおりである：Ｍｉｏ１＝１６、Ｄｉｏ１＝２、Ｍｉｏ２＝１６、Ｄｉｏ２＝２。
【０１６５】
非対称性の設定の例は以下のとおりである：Ｍｉｏ１＝１６、Ｄｉｏ１＝４、Ｍｉｏ２＝８、Ｄｉｏ２＝２。
【０１６６】
これは、異なるコアＣＬＫ１レートで動作する２つのチップが、規則１と、Ｍｉｏ、Ｄｉｏ、ｆｉｏの最大値及び最小値に関する上述の制限とに、これらチップの通信Ｉ／Ｏクロック分割器を適合させることによって通信できることを意味している。
【０１６７】
図１８は、第１のＩＣチップと第２のＩＣチップとの間のデジタル通信を同期するための方法のある実施形態を示すフローチャートである。図１８に示す方法は、とりわけ図６〜７、１６〜１７の例示的なシステムと組み合わせて使用してよい。いくつかの実施形態では、更に多数のチップ間のデジタル通信を同期するために、同様の方法を適用してよい。
【０１６８】
ステップ１８０２では、第１のＩＣチップ、第２のＩＣチップのそれぞれが外部基準クロック信号を受信してよい。例えば図１６の実施形態では、発振器ＯＳＣ１が生成した外部基準クロック信号は、各チップのＣＬＫＲＥＦ入力ピンによって受信される。いくつかの実施形態では、ＯＳＣ１と、２つのチップのＣＬＫＲＥＦ入力ピンそれぞれとの間の伝播遅延は近接するように適合され、これにより２つのチップのＣＬＫＲＥＦ信号間のクロックスキューは最小化される。
【０１６９】
ステップ１８０４では、各チップは、外部基準クロック信号に左右される高周波数クロック信号をそれぞれ生成してよい。例えばいくつかの実施形態では、高周波数クロック信号は、基準クロックの周波数の設定可能な倍数である周波数を有してよい。図７の例示的実施形態では、高周波数クロック信号ＨＦＣはＰＬＬによって生成され、ＰＬＬは入力として外部基準クロック信号ＣＬＫＲＥＦを受信する。ＰＬＬは、当該技術分野において公知であるように、ＣＬＫＲＥＦの周波数の設定可能な倍数である周波数を有する信号ＨＦＣを出力してよい。
【０１７０】
ステップ１８０６では、各チップは、外部基準クロック信号に左右される同期信号をそれぞれ生成してよく、第１のチップ及び第２のチップそれぞれの同期信号が、外部基準クロック信号に対する共通の従属性を有するために位相整列される。例えば図７の実施形態では、チップは同期信号ＳＹＮＣを生成し、これは外部基準クロック信号ＣＬＫＲＥＦに左右される。具体的には図７に示すように、ＳＹＮＣは、カウンタＣＮＴ０がゼロのカウントを出力する際の、一次クロック信号ＣＬＫ１の１回のクロックサイクルに対して高くなる。ＣＮＴ０は一次クロック信号ＣＬＫ１によってクロック供給されているため、ＳＹＮＣはＣＬＫ１とエッジ整列される。この文脈において、２つの信号の遷移区間が時間的に重複している場合、これらは「エッジ整列」されている。ＣＬＫＲＥＦの立ち上がりエッジに応じて、ＣＮＴ０は信号ＣＬＫＲＥＦｒｉｓｉｎｇによってゼロのカウントにリセットされるため、２つのチップそれぞれのＳＹＮＣ信号は、２つのチップのＣＬＫＲＥＦ信号間のスキューが最小化される場合に、これらが共通してＣＬＫＲＥＦと位相整列されていることにより、互いに対して位相整列されることになる。この文脈において、２つの信号の遷移が一次クロック信号の同一のクロックサイクル内で発生する場合、これらは「位相整列」されている。
【０１７１】
ステップ１８０８では、各チップは、チップの各高周波数クロック信号に左右される各一次クロック信号を、チップ上に設けられた各同期型デジタルシステムに分配してよい。一次クロック信号は、図２に示すクロック分配ネットワークのような同期型デジタルシステムのクロック分配ネットワークを介して分配される。
【０１７２】
図１６の例示的実施形態において図示したように、チップは複数のＩ／Ｏセルを含んでよい。一次クロック信号がクロック分配ネットワークを通してＩ／Ｏセルへと分配される際、一次クロック信号は、伝播遅延、及びバッファ又は他の回路構成によって発生する遅延を被ることになる。いくつかの実施形態では、クロック分配ネットワークは、各Ｉ／Ｏセルが受信した一次クロックの遅延したバージョン間のクロックスキューを最小化するために、高周波クロック信号と各Ｉ／Ｏセルとの間に均一な遅延をもたらすよう構成してよい。各Ｉ／Ｏセルが受信した一次クロックの遅延したバージョンは、最適には互いに対してエッジ整列される。均一な遅延は同様に同期信号にも与えてよい。
【０１７３】
ステップ１８１０では、各チップは、チップの各同期信号を用いて、各一次クロック信号を周波数分割してよい。周波数分割クロック信号は、チップの一次クロック信号の周波数よりも低い周波数を有してよい。図３は、ステップ１８１０で使用できるクロック分割器の例示的実施形態のブロック図を示す。図３に示すように、カウンタの出力ビットのいずれかを用いてクロックパルスを生成してよい。カウンタは信号ＳＹＮＣを同期させることによってリセットされる。２つのチップの各ＳＹＮＣ信号が互いに対して位相整列されているため、２つのチップの周波数分割クロック信号は互いに対して位相整列されることになる。
【０１７４】
ステップ１８１２では、第１のチップの第１のＩ／Ｏセルと第２のチップの第２のＩ／Ｏセルとの間のデジタル通信を実施してよい。図１６の例示的実施形態に示すように、第１のＩ／Ｏセルはクロックとして第１のチップの周波数分割クロック信号を使用してよく、第２のＩ／Ｏセルはクロックとして第２のチップの周波数分割クロック信号を使用してよい。２つのチップの周波数分割クロック信号は少なくとも位相整列されているため、２つのチップの周波数分割クロック信号が同一の周波数を共有している場合、２つのＩ／Ｏセル間のデジタル通信は同期通信であると見做すことができる。
【０１７５】
いくつかの実施形態では、図１７に示したもののようなフィードバック経路を有するＰＬＬを使用して、２つのチップの周波数分割クロック信号を更に整列させてよい。例えば各チップ上のフィードバック経路は、ＰＬＬのＨＦＣ出力からの各一次クロック信号を、各一次クロック信号を周波数分割するクロック分割器に対して平行にすることができる。このクロック分割器は、チップのＩ／Ｏセルの近傍に配置してよい。上述のようにこれにより、第１のチップのＩ／Ｏセルにおける各一次クロック信号ＣＬＫ１を、第２のチップのＩ／Ｏセルにおける各一次クロック信号ＣＬＫ１に対してエッジ整列できる。２つのチップの各一次クロック信号は互いに対してエッジ整列されることになるため、最適には、２つのチップの周波数分割クロック信号も互いに対してエッジ整列されることになる。
【０１７６】
ＳＹＮＣはクロックではなく、クロック分割器のためのリセット信号であるため、これは、ＨＦＣの１回のサイクル内に全てのＩ／Ｏ回路それぞれのためのクロック分割器を同期状態に維持する以外は、Ｉ／Ｏ回路構成のクロックスキューに影響しない。
【０１７７】
好ましい実施形態との関連で以上の実施形態について説明したが、本明細書に記載した具体的形態に上記好ましい実施形態を限定することは意図されておらず、反対に、添付の請求項によって定義されるような本発明の実施形態の精神及び範囲内に合理的に含まれ得るような代替例、修正例、均等物を上記好ましい実施形態が包含することが意図されている。
【図１】
0006801959.tif 000002
【図２】
0006801959.tif 000003
【図３】
0006801959.tif 000004
【図４】
0006801959.tif 000005
【図５】
0006801959.tif 000006
【図６】
0006801959.tif 000007
【図７】
0006801959.tif 000008
【図８】
0006801959.tif 000009
【図９】
0006801959.tif 000010
【図１０】
0006801959.tif 000011
【図１１】
0006801959.tif 000012
【図１２】
0006801959.tif 000013
【図１３】
0006801959.tif 000014
【図１４】
0006801959.tif 000015
【図１５】
0006801959.tif 000016
【図１６】
0006801959.tif 000017
【図１７】
0006801959.tif 000018
【図１８】
0006801959.tif 000019