(57)【特許請求の範囲】
【請求項１】
第１の回路と第２の回路とを同期モードまたは非同期モードで動作させるためのシステムであって、
第１の回路の出力に結合された第１の入力および第２の回路の出力に結合された第２の入力を有する第１の位相比較器と、
クロックソース発生器に結合された入力、第１の回路のクロック入力に結合された出力、および第１の位相比較器の出力に結合された制御入力を有する第１の位相ロックループ回路とを含み、
第１の位相比較器は、第１のモード、第２のモードまたは第３のモードのいずれかで選択可能に動作するよう構成され、第１の位相比較器は、第１の回路または第２の回路のいずれかから受信された同期要求に応じて第１のモードで動作するよう構成され、第２のモードで動作している間、第１の回路および第２の回路のうちの一方からの監視−同期要求信号に応じて第３のモードになるよう構成され、
第１のモードで動作している間、第１の位相比較器は、
第１の回路および第２の回路から出力された同期波形間の第１の位相差を決定し、
第１の位相差を示す第１の信号を第１の位相ロックループ回路の制御入力に出力し、
選択された値未満である第１の位相差に応じて、
第１の回路と第２の回路とが同期されていることを示す第２の信号を第１の回路および第２の回路に出力し、
第２のモードになり、
第２のモードで動作している間、第１の位相比較器は、
第１の入力および第２の入力によって受信される信号間の第２の位相差を決定し、
選択された値未満である第２の位相差に応じて、第１の回路と第２の回路とが同期されていることを示す第３の信号を第１の回路および第２の回路に出力し、
第３のモードで動作している間、第１の位相比較器は、第１の入力および第２の入力によって受信される信号を監視し、これら信号が非同期であるかどうかを第１の回路および第２の回路に通知する、システム。
【請求項２】
第１の位相比較器は起動時に第１の動作モードになる、請求項１に記載のシステム。
【請求項３】
第１のモードで動作している間、第１の位相比較器は、第１の回路および第２の回路に対して、それぞれの同期波形を出力するよう信号で合図する、請求項１または２に記載のシステム。
【請求項４】
第２のモードで動作している間、第１の位相比較器は、決定された第２の位相差を第１の位相ロックループ回路の制御入力に出力する、請求項１から３のいずれか１項に記載のシステム。
【請求項５】
第２のモードで動作している間、第１の位相比較器は、選択された値以上である第２の位相差に応じて第１のモードになる、請求項１から４のいずれか１項に記載のシステム。
【請求項６】
第３のモードで動作している間、第１の位相比較器は、回路のうちの１つからの同期−要求信号に応じて第１のモードになる、請求項１から５のいずれか１項に記載のシステム。
【請求項７】
第１の位相比較器は起動時に第３の動作モードになる、請求項１から６のいずれか１項に記載のシステム。
【請求項８】
第１の位相ロックループ回路は第１の回路内で実現される、請求項１から７のいずれか１項に記載のシステム。
【請求項９】
同期波形のうち特定の一波形は方形波である、請求項１から８のいずれか１項に記載のシステム。
【請求項１０】
同期波形のうち特定の一波形は、３よりも大きいバイナリ値を符号化するデジタル波形である、請求項１から９のいずれか１項に記載のシステム。
【請求項１１】
第２の回路の出力に結合された第１の入力、および、第３の回路の出力に結合された第２の入力を有する第２の位相比較器と、
第３の回路のクロック入力に結合された出力、および、第２の位相比較器の出力に結合された制御入力を有する第２の位相ロックループ回路とをさらに含み、
第２の位相比較器は、第１のモード、第２のモードまたは第３のモードのいずれかで選択可能に動作するよう構成され、第２の位相比較器はさらに、第２の回路または第３の回路のいずれかから受信された同期要求に応じて第１のモードで動作するよう構成され、第２のモードで動作している間、第２の回路または第３の回路のいずれかからの監視−同期要求信号に応じて第３のモードになるよう構成され、
第１のモードで動作している間、第２の位相比較器は、
第２の回路および第３の回路によって出力される同期波形間の第２の位相差を決定し、
第２の位相差を示す第４の信号を第２の位相ロックループ回路の制御入力に出力し、
選択された値未満である第２の位相差に応じて、
第２の回路と第３の回路とが同期されていることを示す第５の信号を第２の回路および第３の回路に出力し、
第２のモードになり、
第２のモードで動作している間、第２の位相比較器は、
第２の位相比較器の第１の入力および第２の入力によって受信される信号間の第３の位相差を決定し、
選択された値未満である第３の位相差に応じて、第２の回路と第３の回路とが同期されていることを示す第６の信号を第２の回路および第３の回路に出力し、
第３のモードで動作している間、第２の位相比較器は、第１の入力および第２の入力によって受信される信号を監視し、これら信号が非同期であるかどうかを第２の回路および第３の回路に通知する、請求項１から１０のいずれか１項に記載のシステム。
【請求項１２】
第１の回路と第２の回路とを同期モードまたは非同期モードで動作させる方法であって、
第１の回路または第２の回路のいずれかから受信された同期要求に応じて位相比較器を第１のモードで動作させるステップと、
第１のモードで動作している間、位相比較器は、
第１の回路および第２回路に対し、それぞれの同期波形出力を発生させるよう信号で合図するステップと、
第１の回路および第２の回路からの生成された波形出力間の第１の位相差を決定するステップと、
第１の位相差に対応する第１の量だけ第１の回路のクロック信号を調整するステップと、
第１の選択された値未満である第１の位相差に応じて、第１の回路および第２の回路に通常動作を開始するよう信号で合図し、第２のモードに移行させるステップとを含み、
第２の動作モードで動作している間、位相比較器は、
第１の回路および第２の回路からの出力間の第２の位相差を決定するステップと、
第２の選択された値未満である第２の位相差に応じて、第２の位相差に対応する第２の量だけ第１の回路のクロック信号を調整し、第１の回路と第２の回路とが同期されていることを第１の回路および第２の回路に信号で伝えるステップと、
第１の回路および第２の回路のうち一方からの監視−同期要求信号に応じて、第３のモードに移行するステップと、
第３のモードで動作している間、位相比較器は、第１の入力および第２の入力によって受信される信号を監視し、これら信号が非同期であるかどうかを第１の回路および第２の回路に通知するステップとを含む、方法。
【請求項１３】
位相比較器は起動時に第１の動作モードになる、請求項１２に記載の方法。
【請求項１４】
第２のモードで動作している間、位相比較器によって、決定された第２の位相差を位相ロックループ回路の制御入力に出力する、請求項１２または１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
この発明の実施例は概して同期回路に関する。
【背景技術】
【０００２】
背景
多くの処理システムは、互いに同期された動作を実行する別個の回路を必要とする。たとえば、高度の信頼性を必要とするシステムにおいては、冗長回路は、しばしば並列に動作するよう実現され、ロックステップの態様で同期される。ロックステップは、システムの動作を監視および検証するのに用いられる技術である。プロセッサのロックステップにおいては、システム起動中に２つのプロセッサが同じ状態に同期される。同期後、２つのプロセッサの状態は、クロックサイクル毎に同一となる。複数のプロセッサは、同一の状態で動作している間、ロックステップで動作していると言われる。これらプロセッサは同一の入力を受信し、各プロセッサの出力が監視および比較される。プロセッサ同士の出力間に差が生じた場合、エラーが検出され、緩和技術が採用され得る。
【０００３】
ロックステップは他の状況でも使用され得る。たとえば、共有メモリマルチプロセッサシステム・オン・チップ（Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐ：（ＳｏＣ））においては、２つ以上のプロセッサが共有メモリに記憶された共通のデータ集合で動作する。プロセッサを適切に作動させるために、一般にロックステップ同期を用いて共有メモリへのアクセスを制御する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロックステップ同期で生じる１つの問題として、２つ以上の同期された回路によって用いられるクロック信号の同期が挙げられる。同期された回路が別個のクロックを用いる場合、これらの回路を共通の状態に初期化するためにクロックを同期させなければならない。共通のクロックによって駆動された場合でさえ、生成された信号は、異なる長さの信号線、材料の欠陥、または温度、キャパシタンスおよびの中間装置のばらつきにより、時間の違いにより異なる成分に達する可能性がある。同期が達成された後でも、クロック信号は完全には安定せず、いくらかの時間が経過した後には異なる傾向がある。これはクロックドリフトとして知られている。クロックが同期された後でさえも、プロセッサの指示実行を同期させなければならない。このように、同期プロセスの一環として、プロセッサ命令を同期させなければならない。
【０００５】
集積回路において用いられるクロック信号周波数が高くなると、ロックステップを同期させて維持することがより困難になる。プロセッサがギガヘルツ範囲で動作し、ソース発振器が何分の一かのプロセッサ周波数で動作する場合、２つ以上のプロセッサをロックステップで整合させるのは困難である。プロセッサを物理的に隔てると、シリコンおよび基板の遅延によりこの問題が悪化するおそれがある。
【課題を解決するための手段】
【０００６】
この発明の１つ以上の実施例は、上述の問題のうち１つ以上に対処し得る。
要約
一実施例においては、第１の回路および第２の回路を同期させるためのシステムが提供される。当該システムは、第１の回路の出力に結合された第１の入力と、第２の回路の出力に結合された第２の入力とを有する第１位相比較器を含み得る。第１の位相ロックループ回路は、クロックソース発生器に結合された入力と、第１の回路のクロック入力に結合された出力と、位相比較器の出力に結合された制御入力とを有し得る。これらはシステムに含まれ得る。第１の位相比較器は、第１のモードと第２のモードとで選択可能に動作するよう構成することができる。この実施例においては、第１のモードで動作している間、第１の位相比較器は、第１の回路と第２回路とから出力される同期波形間の第１の位相差を決定することができ、第１の位相差を示す信号を第１の位相ロックループ回路の制御入力に出力することができる。選択された値未満である第１の位相差に応じて、第１の位相比較器は、第１の回路および第２の回路が同期されて第２のモードになったことを示す信号を第１の回路および第２の回路に出力することができる。第２のモードで動作している間、位相比較器は、第１の入力および第２の入力によって受信される信号間の第２の位相差を決定することができる。選択された値未満である第２の位相差に応じて、位相比較器は、第１の回路および第２の回路が同期されていることを示す信号を第１の回路および第２の回路に出力することができる。
【０００７】
この実施例においては、第１の位相比較器は、起動時に第１の動作モードになり得る。第１の位相比較器は、第１の回路または第２の回路のうちのいずれかから受信した同期要求に応じて第１の動作モードになり得る。第１のモードで動作している間、第１の位相比較器は、第１の回路および第２回路に対してそれぞれの同期波形を出力するよう信号で合図し得る。第２のモードで動作している間、第１の位相比較器は、決定された第２の位相差を第１の位相ロックループ回路の制御入力に出力することができる。第２のモードで動作している間、第１の位相比較器は、選択された値以上である第２の位相差に応じて第１のモードになり得る。
【０００８】
この実施例においては、第１の位相比較器はさらに、第３のモードで選択可能に動作するよう構成することができる。第２のモードで動作している間、第１の位相比較器は、回路のうちの１つからの監視−同期要求信号に応じて第３のモードになり得る。第３のモードで動作している間、第１の位相比較器は、回路のうちの１つからの同期−要求信号に応じて第１のモードになり得る。第１の位相比較器は、起動時に第３の動作モードになり得る。第１の位相ロックループ回路は第１の回路内で実現することができる。同期波形は方形波であってもよい。同期波形は、３よりも大きいバイナリ値を符号化するデジタル波形であってもよい。この実施例においては、第１の位相比較器は、位相ロックループ周波数をシフトさせる方向を決定し、決定された方向を第１の位相ロックループ回路の制御入力に出力するよう構成することができる。第２の回路は、クロックソース発生器または付加的なクロックソース発生器に結合されたクロック入力を有し得る。
【０００９】
この実施例においては、システムはさらに、第２の回路の出力に結合された第１の入力、および第３の回路の出力に結合された第２の入力を有する第２の位相比較器と、第３の回路のクロック入力に結合された出力、および第２の位相比較器の出力に結合された制御入力を有する第２の位相ロックループ回路とを含み得る。第２の位相比較器は、第１のモードまたは第２のモードのうちのいずれかで選択可能に動作するよう構成され得る。第１のモードで動作している間、第２の位相比較器は、第２の回路と第３の回路とによって出力される同期波形間の第２の位相差を決定し、第２の位相差を示す信号を第２の位相ロックループ回路の制御入力に出力し、選択された値未満である第２の位相差に応じて、第２の回路と第３の回路とが同期されていることを示す信号を第２の回路および第３の回路に出力し、第２のモードになる。この実施例においては、第２のモードで動作している間、第２の位相比較器は、第２の位相比較器の第１の入力および第２の入力によって受信される信号間の第３の位相差を決定し、選択された値未満である第３の位相差に応じて、第１の回路と第２の回路とが同期されていることを示す信号を第２の回路および第３の回路に出力する。
【００１０】
別の実施例においては、複数の回路を同期させるためのシステムが提供される。当該システムは、位相比較器、第１の回路および第２の回路を含み得る。第１の回路は、位相比較器の入力の第１のセットに結合された１つ以上の出力を含む複数の出力を有し得る。第２の回路は、位相比較器の入力の第２のセットに結合された１つ以上の出力を含む複数の出力を有し得る。システムはさらに、第１の回路の１つ以上の入力に結合されたタイミング調整回路を含み得る。位相比較器は、入力の第１のセットと入力の第２のセットとの間の時間オフセット差を決定することができる。位相比較器は、時間オフセット差をタイミング調整回路に出力することができる。タイミング調整回路は、位相差に応じて、信号出力を第１の回路の１つ以上の入力に合わせて調整することができる。
【００１１】
この実施例においては、タイミング調整回路は、第１の回路の１つ以上の入力に結合されたプログラム可能遅延回路の第１のセットを含み得る。位相比較器は、時間オフセット差を用いて、プログラム可能遅延回路の第１のセットの有する遅延パラメータを調整することができる。システムはさらに、第１の回路の１つ以上の出力に結合された出力プログラム可能遅延回路の第２のセットを含み得る。この場合、位相比較器は、時間オフセット差を用いて、プログラム可能遅延回路の第２のセットの有する遅延パラメータを調整することができる。第１のタイミング調整回路は、第１のクロックソース発生器に結合された入力と、第１の回路のクロック入力に結合された出力と、位相比較器の出力に結合された制御入力とを有する位相ロックループ回路であってもよく、位相ロックループは、時間オフセット差を用いて、クロック入力に出力されたクロック信号を調整することができる。
【００１２】
さらに別の実施例においては、第１の回路および第２の回路を同期させるための方法が提供される。第１の回路および第２の回路は、それぞれの波形出力を生成するよう信号で合図される。第１の回路および第２の回路からの生成された波形出力間で第１の位相差を決定することができる。第１の回路のクロック信号は、第１の位相差に対応する第１の量だけ調整することができる。しきい値未満である第１の位相差に応じて、第１の回路および第２の回路は、通常の動作を開始するよう信号で合図され得る。
【００１３】
この実施例においては、当該方法はさらに、第１の回路および第２の回路からの生成された波形出力間の第２の位相差を決定することによって、第１の回路および第２の回路を監視するステップと、第２の位相差に対応する第２の量だけ第１の回路のクロック信号を調整するステップとを含み得る。
【００１４】
他のさまざまな実施例を以下の詳細な説明および添付の特許請求の範囲において記載することが認識されるだろう。
【００１５】
図面の簡単な説明
本発明の１つ以上の実施例のさまざまな局面および利点が、以下の詳細な説明を検討し、添付の図面を参照するとより明らかになるだろう。
【図面の簡単な説明】
【００１６】
【図１】本発明のさまざまな実施例に従ってプロセッサおよび比較器回路によって実現される状態図の例を示すフローチャートである。
【図２】較正モードである間にプロセッサ同士を同期させるためのプロセスを示すフローチャートである。
【図３】本発明のさまざまな実施例に従って用いられ得る同期波形の例を示す図である。
【図４】本発明のさまざまな実施例に従ったプロセッサの同期のための回路を示す図である。
【図５】本発明のさまざまな実施例に従った、別個のクロック信号源によって駆動されるプロセッサの同期のための回路構成の例を示す図である。
【図６】各プロセッサに関連付けられる調整可能な位相ロックループとの同期のための回路構成の例を示す図である。
【図７】２つのプロセッサと１つの位相比較器との間の１つの信号伝達構成を例示する回路を示すブロック図である。
【図８】２つのプロセッサと１つの位相比較器との間の別の信号伝達構成を例示する回路を示すブロック図である。
【図９】２つのプロセッサと１つの位相比較器との間のさらに別の信号伝達構成を例示する回路を示すブロック図である。
【図１０】本発明のさまざまな実施例に従った、プロセッサを内部位相ロックループ回路と同期させるための回路構成を示す図である。
【図１１】本発明のさまざまな実施例に従った、図１０に示される内部位相ロックループ回路を備えたプロセッサをクロック信号調整のための外部位相ロックループ回路と同期させるための回路構成を示す図である。
【図１２】本発明のさまざまな実施例に従った、限界入力および出力上で遅延回路を用いてプロセッサ同士を同期させるための回路構成の例を示す図である。
【図１３】本発明のさまざまな実施例に従った３つのプロセッサを同期させるための回路のブロック図である。
【図１４】スター型構成に配置されたプロセッサ同期回路を示す図である。
【図１５】デイジーチェーン構成に配置されたプロセッサ同期回路を示す図である。
【図１６】本発明のさまざまな実施例に従った、位相比較および位相ロックループ回路を含むいくつかの構成要素を実現する際に用いられ得るプログラム可能な集積回路の例を示すブロック図である。
【図１７】この明細書中に記載されるプロセスが実現され得るコンピュータの構成の例を示すブロック図である。
【発明を実施するための形態】
【００１７】
詳細な説明
同期処理システムは、しばしば、複数の回路またはプロセッサをロックステップで動作させることを必要とする。ロックステップ動作は、各々の回路またはプロセッサによって用いられるクロックを初めに同期させることを必要とする。さらに、ロックステップ動作中、同期が維持されなければならない。本発明のさまざまな実施例は、同期させるべき２つの回路の１つ以上の出力を監視し、出力間の位相差を決定する。一実施例においては、位相比較器回路を用いて、同期させるべき２つのプロセッサの出力を比較し、これらプロセッサのうち一方または両方が用いるクロックを調整するのに用いられる位相差を決定する。
【００１８】
図１は、本発明のさまざまな実施例に従ったプロセッサおよび位相比較器回路によって実現される状態図の例を示すフローチャートである。起動１０２時に、プロセッサ１４０および位相比較器１０４は、それぞれの較正モード状態１４４および１０６になる。較正モードである間、プロセッサ１４０は同期波形を発生させる。位相比較器１０４は、各プロセッサの少なくとも１つの出力を受信し、比較して、プロセッサ出力間の位相差を決定する。位相比較器１０４は、位相差に基づいて、プロセッサのうちの１つが用いるクロック信号を調整して同期を行なう。同期されると、位相比較器１０４は、プロセッサ１４０同士が同期されていることをこれらプロセッサ１４０に通知し、ロックステップ維持状態１０８に移行する。
【００１９】
プロセッサ１４０が同期通知を受信した後、プロセッサは、ロックステップ動作状態１４６に移行する。状態１４６である間、プロセッサ１４０は、通常のロックステッププロセッサ動作を続ける。プロセッサ１４０が状態１４６で動作している間、位相比較器はロックステップ維持状態１０８で動作する。ロックステップ維持状態である間、位相比較器は、各プロセッサ１４０の少なくとも１つの出力を監視し、出力を比較して位相差を決定する。位相比較器１０４は、ロックステップ同期を維持するために、位相差に基づいてプロセッサのうちの１つが用いるクロック信号を調整する。
【００２０】
決定された位相差が選択された値よりも大きい場合、いくつかの実現例においては、位相比較器は、プロセッサ同士が非同期であることを示す信号をこれらプロセッサに送り、較正モード状態１０６に戻る。これにより、プロセッサ１４０も較正モード状態１４４に戻される。選択された値が、プロセッサまたは他のデジタル源からレジスタを介して予め設定され得るかまたは供給され得る。
【００２１】
いくつかの実施例においては、プロセッサ１４０は互いと位相比較器１０４とに対して信号送信することができ、この例においては、状態１５０および１５２によって示されるような監視−同期モードに移行することができる。監視−同期で動作させるための要求が位相比較器１０４によって受信されると、位相比較器は監視限定状態１１０になる。この状態では、位相比較器は出力を監視し続け、プロセッサに対し、これらプロセッサ同士が非同期になったかどうかを通知する。プロセッサは、非同期の通知を受信した場合、非同期状態１５２に移行する。
【００２２】
状態１５０または１５２である間にプロセッサ１４０のうちの１つが同期モードで動作する必要がある場合、プロセッサは同期要求を生成する。プロセッサ１４０が監視−ロックステップ非同期状態１５２である場合、プロセッサ１４０および位相比較器１０４は、それぞれの較正モード状態１４４および１０６に戻る。プロセッサ１４０が監視−ロックステップ同期状態１５０である場合、プロセッサ１４０および位相比較器１０４は、それぞれ、ロックステップ動作状態１４６およびロックステップ維持状態１０８に戻る。
【００２３】
いくつかの実現例においては、位相比較器は、プロセッサ同士が非同期になったと判断された後、監視を停止し、アイドル状態１１２で動作してもよい。いくつかの実施例においては、状態１１０および１１２は単一モードまたは単一状態と称される。
【００２４】
一実施例においては、位相比較器はロックステップ維持状態１０８からアイドル状態１１２になり、次いで、監視−同期要求が送信または受信されると、プロセッサ１４０は、監視−ロックステップ状態１５２になるだろう。
【００２５】
別の実施例においては、プロセッサ同士が同期された後、位相比較器１０４およびプロセッサ１４０は、それぞれ、較正モード状態１０６および１４０から監視限定状態１１０および監視−ロックステップ状態１５０になる。
【００２６】
別の実施例においては、プロセッサ同士が同期された後、位相比較器１０４およびプロセッサ１４０は、それぞれ、較正モード状態１０６および１４０からアイドル状態１１２および監視−ロックステップ状態１５２になる。
【００２７】
さらに別の実施例においては、位相比較器およびプロセッサは、それぞれ、起動状態１１４からアイドル状態１１２および監視−ロックステップ状態１５２になる。この実施例においては、プロセッサは、１つのプロセッサが同期要求を生成するまで、非同期で動作する。同期要求が生成されると、プロセッサ１４０および位相比較器１０４はそれぞれの較正モード状態１４４および１０６になる。
【００２８】
図２は、較正モードである間プロセッサ同士を同期させるためのプロセスの例を示すフローチャートである。プロセッサは、ステップ２０２において、選択された同期波形を生成および出力するよう信号で合図される。ステップ２０４において、位相差が同期波形間で決定される。判断ステップ２０８において、決定された差が選択された値未満であれば、プロセッサ同士は同期されたとみなされ、同期状態をプロセッサに通知する信号がステップ２１２において送信される。判断ステップ２０８において、決定された差が選択された値以上であれば、ステップ２１０において、プロセッサのうちの１つが用いるクロック信号が位相差に基づいて調整される。クロック信号の調整後、プロセッサ同士が同期されるまで、波形を発生させて位相を決定するプロセスが繰り返される。
【００２９】
プロセッサのうち１つ以上に入力されるクロック信号を生成する位相ロックループ（ＰＬＬ：phase-locked loop）回路の制御入力に位相差を出力することによって、調整が行われてもよい。いくつかの実現例においては、プロセッサは、プロセッサの制御入力を介して調整され得る内部位相ロックループを有し得る。
【００３０】
固有の同期波形を発生させて出力することによって、位相差はより容易に決定される。方形波またはバイナリ符号化された数字などのいくつかの異なる同期波形が用いられてもよい。図３は、同期のために本発明のさまざまな実施例に従って用いられ得る同期波形の例を示す。波形の例には、いくつかのサブ波形３３０、３３３、３３４、３３６、３３８、３４０および３４３が含まれる。各々のサブ波形は、高い部分または低い部分を有し、固有の数の単位周期の期間を有する。中心サブ波形３３６は、１つの単位周期期間をなす高い部分および低い部分を有する。一方の方向への波形の後、高い部分の期間が、３３８、３４０および３４３によって示されるように、後続のサブ波形毎に１単位ずつ延ばされる。他方の方向への波形の後、低い部分の期間が、３３４、３３３および３３０によって示されるように、後続のサブ波形毎に１単位ずつ延ばされる。中心サブ波形３３６からの距離は、サブ波形のうちの高い部分と低い部分との期間によって決定することができる。中心サブ波形３３６への最短方向は、延ばされた期間を有するサブ波形の部分（たとえば低い部分のうちの高い部分）によっても示される。
【００３１】
一実施例においては、同期波形を発生させることなく較正モード中に同期が達成される。この実施例においては、プロセッサの１つ以上のデータ出力を比較して位相差を決定する。比較および分析のためにデータ出力をバッファリングするのに、シフトレジスタおよび比較器が用いられてもよい。
【００３２】
図４は、この発明のさまざまな実施例に従ったプロセッサの同期のための回路を示す。この例においては、共通のクロック信号がクロックソース４０４によって生成され、プロセッサＡ  ４０６およびプロセッサＢ  ４０８に出力される。位相ロックループ４０２が、プロセッサＡ  ４０６へのクロック入力を調整するためにクロックソース４０４とプロセッサＡ  ４０６との間に設けられる。各プロセッサの出力は位相比較器回路４１０に入力される。位相比較器は、プロセッサ４０６および４０８によって生成される出力間の差を決定する。同期モードまたは非同期モードで動作させるための要求を伝えるための信号線４１２が設けられる。位相比較器４１０からプロセッサ４０６および４０８に同期状態を伝えるための第２の信号線４１４が設けられる。
【００３３】
一実施例においては、別個のクロックソースによって駆動されるプロセッサ同士が同期されてもよい。図５は、本発明のさまざまな実施例に従った、別個のクロックソースによって駆動されるプロセッサ同士の同期のための回路構成の例を示す。この例においては、クロックソースＡ  ５０２によって生成される第１のクロック信号およびクロックソースＢ  ５０４によって生成される第２のクロック信号は、それぞれ、プロセッサＡ  ５０８およびプロセッサＢ  ５１０を駆動するために用いられる。位相ロックループ５０６はプロセッサＡ  ５０８に入力されるクロックを調整するのに用いられる。各プロセッサの出力は位相比較器回路５１２に入力される。位相比較器は、プロセッサ５０８および５１０によって生成される出力間の差を決定し、決定された位相差を位相ロックループ５０６に出力する。同期モードまたは非同期モードで動作させるための要求を伝えるための信号線５１４が設けられる。位相比較器５１２からプロセッサ５０８および５１０に同期状態を伝えるための第２の信号線５１６が設けられる。
【００３４】
いくつかの実現例においては、プロセッサのうち一方のプロセッサのクロック信号周波数だけを調整して、調整がなされない他方のプロセッサと合わせるようする。
【００３５】
代替的には、２つの比較されたプロセッサは各々、調整可能であってもよい。このような実現例においては、どちらのプロセッサも、もう片方のプロセッサとロックステップになるよう調整することができる。一方のプロセッサが他方のプロセッサよりも遅れて、それ以上速く駆動させることができない場合、この他方のプロセッサの速度を落としてこれら２つのプロセッサを同期させることができる。
【００３６】
図６は、調整可能な位相ロックループが両方のプロセッサ上で実現されている構成を示す。この例においては、クロックソースＡ  ６０２によって生成される第１のクロック信号と、クロックソースＢ  ６０４によって生成される第２のクロック信号とは、それぞれ、プロセッサＡ  ６１０およびプロセッサＢ  ６１２を駆動するのに用いられる。位相ロックループＡ  ６０６およびＢ  ６０８は、それぞれ、プロセッサＡ  ６１０およびＢ  ６１２に入力されるクロック信号を調整するのに用いられる。各プロセッサの出力は位相比較器回路６１４に入力される。
【００３７】
位相比較器は、プロセッサ６１０および６１２によって生成される出力間の差を決定し、位相ロックループ回路６０６／６０８のうちのいずれか１つに位相差を出力する。いくつかの実現例においては、位相比較器は、より短い期間でプロセッサ同士を同期させるよう両方の位相ロックループ回路を調整してもよい。たとえば、位相比較器６１４がプロセッサ６１０および６１２の出力の位相差を決定した後、この位相比較器がこの差を分割し、これに応じて各々のプロセッサを調整してもよい。この態様では、１つのプロセッサしか調整できない場合、必要とされ得る時間の半分で同期させなければならない。
【００３８】
本発明のさまざまな実施例に従って、プロセッサによって生成される同期要求と位相比較器によって決定される同期状態とを伝えるのに、いくつかの異なる信号伝達構成を用いてもよい。たとえば、図７は、２つのプロセッサと１つの位相比較器との間の１つの信号伝達構成を例示する回路のブロック図を示す。プロセッサＡ  ７０２は信号線７１０でプロセッサＢ  ７０４に結合される。位相比較器７０６は、第２の信号線７１２でプロセッサＡ  ７０２およびＢ  ７０４に結合される。動作時に、信号線７１０を用いて、プロセッサ間の同期要求を伝えてもよい。たとえば、プロセッサＡ  ７０２が同期された動作を必要とすると判断した場合、線７１２上で信号を生成させることができる。その結果、プロセッサは、ロックステップ構成を支援するために同期波形を発生させる可能性がある。位相比較器は、プロセッサ同士が信号線７１２を介して同期されているかどうかを示すことができる。
【００３９】
図８は、２つのプロセッサと１つの位相比較器との間の別の信号伝達構成を例示する回路を示すブロック図である。この構成例においては、プロセッサＡ  ８０２およびＢ  ８０４が信号線８１４および８１２で位相比較器８０６に結合される。動作時に、信号線８１４を用いて、同期要求を個々に位相比較器８０６に伝えてもよい。位相比較器は、信号線８１２を介して同期波形を出力するようプロセッサＡ  ８０２およびＢ  ８０４に信号で合図することができる。信号線８１２を用いて、プロセッサ同士が同期されているかどうかを示すこともできる。
【００４０】
図９は、２つのプロセッサと１つの位相比較器との間のさらに別の信号伝達構成を例示する回路のブロック図を示す。この構成例においては、プロセッサＡ  ９０２およびＢ  ９０４は、信号線９１４および９１２で位相比較器９０６に結合される。この構成においては、双方向信号バス９１６を用いて、プロセッサＡ  ９０２およびプロセッサＢ  ９０４と位相比較器９０６との間で信号をやりとりすることができる。この構成は、生成された信号がプロセッサおよび位相比較器にとって可視となることを設計者が所望する場合には有用である。
【００４１】
本発明のいくつかの実施例は、同期用のプロセッサの内部にある位相ロックループ回路を利用する。多くのプロセッサは、プロセッサの動作速度を調節するために内部に位相ロックループ回路を含む。これらの多くのプロセッサにおいては、位相ロックループは外部にアクセス可能な制御ポートを介して調整することができる。
【００４２】
図１０は、本発明のさまざまな実施例に従った内部位相ロックループ回路でプロセッサ同士を同期させるための回路構成の例を示す。この例においては、クロックソースＡ  １００２によって生成される第１のクロック信号、およびクロックソースＢ  １００４によって生成される第２のクロック信号は、それぞれ、プロセッサＡ  １００６およびプロセッサＢ  １０１２を駆動するのに用いられる。プロセッサＡおよびＢは、プロセッサコア１０１０および１０１６をそれぞれ含み、位相ロックループ回路１００８および１０１４をそれぞれ含む。各々のプロセッサにおいては、クロック信号入力の周波数が位相ロックループ回路によって調整され、プロセッサコアに出力される。各プロセッサ１００６および１０１２の１つ以上の出力は位相比較器１０１８の入力に結合される。位相比較器１０１８は、プロセッサの１つ以上の出力間の位相差を決定し、１つまたは両方の位相ロックループ回路１００８および／または１０１４の制御入力に位相差を出力して、上述のさまざまな実施例において述べたようにプロセッサ速度を調整する。
【００４３】
いくつかのプロセッサにおいては、内部位相ロックループ回路が含まれ、これは外部制御によっては調整できない。このような場合、外部位相ロックループ回路を用いてプロセッサをロックステップにすることができる。図１１は、図１０に示される内部位相ロックループ回路を備えたプロセッサを、プロセッサＡ  １００６に入力されるクロック信号を調整するために追加された外部位相ロックループ回路１０２０と同期させるための回路構成を示す。この例においては、クロックソースＡ  １００２によって生成される第１のクロック信号は、位相ロックループ回路１０２０によって受信される。位相ロックループ回路１０２０は、位相比較器１０１８の出力に結合された制御入力を有する。位相ロックループ回路１０２０は、決定された位相差に基づいて、受信されたクロック信号を調整し、結果として生じるクロック信号をプロセッサＡ  １００６に出力する。
【００４４】
いくつかのプロセッサにおいては、内部位相ロックループ回路が含まれ、これは外部クロックソースによって容易に調整することはできない。これらのプロセッサにおいては、外部位相ロックループを備えたプロセッサに入力されるクロック信号を調整しても、プロセッサ速度を十分に制御して２つのプロセッサを同期させることはできないかもしれない。
【００４５】
本発明の一実施例においては、それぞれのプロセッサの速度を調整するために、限界入力上で調整可能な遅延回路を用いることによってプロセッサ同士を整合させることができる。別の実施例においては、調整可能な遅延回路を限界入力および限界出力上で用いて、プロセッサ速度を調整して同期を達成する。プロセッサ同士を同期させるために、遅延回路と共にセマフォ型メッセージ伝達が用いられてもよい。図１２は、本発明のさまざまな実施例に従って限界入力および出力上で遅延回路を用いてプロセッサ同士を同期させるための回路構成の例を示す。この例においては、クロックソース１２０６によって生成されるクロック信号は、プロセッサＡ  １２２０およびＢ  １２３０を駆動するために用いられる。
【００４６】
プロセッサＡおよびＢは、プロセッサコア１２２４および１２３４をそれぞれ含み、位相ロックループ回路１２２２および１２３２をそれぞれ含む。各々のプロセッサにおいては、クロックソース１２０６から入力されたクロック信号が位相ロックループ回路によって調整され、プロセッサコアに出力される。各々のプロセッサ１２２０および１２３０の１つ以上の出力が位相比較器１２４２の入力に結合される。位相比較器１２４２は、プロセッサの１つ以上の出力間の位相差を決定し、出力遅延回路１２４０および１２４４ならびに／または入力遅延回路１２０８および１２１４に位相差を出力する。決定された位相差は、遅延回路に入力されてもよく、図示のとおり直接、出力遅延回路１２４０および１２４４に入力されてもよい。代替的には、決定された位相差は、入力遅延回路１２０８および１２１４のクロック信号入力に結合された外部位相ロックループ回路１２１０および１２１２によって、図示のとおり、遅延回路に入力されるクロック信号を調整するために用いられてもよい。
【００４７】
この発明のさまざまな実施例は、主として、２つのプロセッサの同期に関して記載されているが、如何なる数のプロセッサを同期させるのにも用いられ得る。
【００４８】
たとえば、図１３は、本発明のさまざまな実施例に従って３つのプロセッサを同期させるための回路のブロック図を示す。回路は、３つのプロセッサＡ  １３０８、Ｂ  １３１０およびＣ  １３１２を含む。プロセッサＡ  １３０８およびプロセッサＢ  １３１０の出力は位相比較器Ａ  １３１４に出力される。位相比較器Ａ  １３１４は、プロセッサＡとプロセッサＢとの出力間の位相差を決定し、位相ロックループＡ  １３０４にこの差を出力する。同様に、プロセッサＢ  １３１０およびプロセッサＣ  １３１２の出力は各々、位相比較器Ｃ  １３１６に出力される。位相比較器Ｃ  １３１６は、プロセッサＢ  １３１０およびプロセッサＣ  １３１２の出力間の位相差を決定し、位相ロックループＣ  １３０６にこの差を出力する。
【００４９】
位相ロックループは、クロックソース１３０２から入力されるクロック信号を受信する。位相ロックループ１３０４および１３０６は、それぞれの位相比較器回路１３１４および１３１６から受信した位相差に基づき、クロックサイクル入力を調整する。調整されたクロック信号は、位相ロックループ１３０４および１３０６からプロセッサＡ  １３０８およびプロセッサＣ  １３１２にそれぞれ出力される。上述の態様でプロセッサと位相比較器回路との間で同期要求および信号をやりとりするための通信回線（図示せず）も含まれる。
【００５０】
４つ以上のプロセッサが同期されると、回路は、プロセッサ出力間の比較を行なうためにいくつかの態様で配置され得る。たとえば、一構成においては、３つ以上のプロセッサがスター型構成で第４のプロセッサと比較され同期されてもよい。図１４は、スター型構成に配置されたプロセッサ同期回路を示す。この構成においては、３つのプロセッサ１４０４、１４０６および１４０８が、それぞれの比較器１４１０、１４１２および１４１４を用いて、プロセッサ１４０２と比較され、同期される。
【００５１】
別の構成においては、プロセッサがデイジーチェーン構成に配置され得る。図１５は、デイジーチェーン構成に配置されたプロセッサ同期回路を示す。この例においては、プロセッサ１４０２は比較器１４１０を介してプロセッサ１４０４と比較される。比較器１４１０は位相差を決定し、これに応じてプロセッサ１４０４を調整する。プロセッサ１４０６は比較器１４１２を介してプロセッサ１４０４と「デイジーチェーン接続される」。比較器１４１０と同様に、比較器１４１２は、プロセッサ１４０４と１４０６との間の位相差を決定し、これに応じてプロセッサ１４０６を調整する。同様の態様で、プロセッサ１４０８は比較器１４１４を介してプロセッサ１４０６とデイジーチェーン接続される。
【００５２】
３つ以上のプロセッサが同期される場合、単相または多相の比較器回路が用いられてもよい。多相の比較器回路が含まれる場合、プロセッサのサブセットが同期されていることを、１つの位相比較器が、これらプロセッサのサブセットに信号で伝えるのが早すぎることのないよう注意しなければならない。実現可能な一実現例においては、プロセッサに同期状態を伝える出力信号線は、ＡＮＤゲートへの入力と、ＡＮＤゲートから各プロセッサへの出力とが可能である。別の実施例においては、位相比較器は、共通のバスを介して各々に状態メッセージを伝えることができ、この場合、各々の位相比較器の状態メッセージが互いの位相比較器にとって可視になっている。代替的には、各々のプロセッサはすべてのプロセッサがいつ同期されたかを判断するために互いと通信してもよい。
【００５３】
図１６は、本発明のさまざまな実施例に従って位相比較および位相ロックループ回路を含むいくつかの構成要素を実現するのに用いられ得るプログラム可能な集積回路の例を示すブロック図である。位相比較器回路は、プログラマブル論理で実現され、プログラム可能な集積回路のリソースを相互に接続し得る。
【００５４】
ＦＰＧＡは、いくつかの異なるタイプのプログラマブル論理ブロックをアレイに含み得る。たとえば、図１６は、多数のさまざまなプログラマブルタイルを含むＦＰＧＡアーキテクチャ（３２０）を示す。これらのプログラマブルタイルは、マルチギガビット・トランシーバ（ＭＧＴｓ  ３２１）、コンフィギュラブル論理ブロック（ＣＬＢｓ  ３２２）、ランダムアクセスメモリブロック（ＢＲＡＭｓ  ３２３）、入出力ブロック（ＩＯＢｓ  ３２４）、コンフィギュレーションおよびクロッキング論理（ＣＯＮＦＩＧ／ＣＬＯＣＫＳ  ３２５）、デジタル信号処理ブロック（ＤＳＰｓ  ３２６）、リコンフィギュレーションポート（ＲＥＣＯＮＦＩＧ  ３３６）、専用の入出力ブロック（Ｉ／Ｏ  ３２７）、たとえば、クロックポート、ならびに、他のプログラマブル論理３２８、たとえば、デジタルクロックマネージャ、アナログ・デジタルコンバータ、システム監視論理などを含む。いくつかのＦＰＧＡはまた、専用のプロセッサブロック（ＰＲＯＣ  ３３０）を含む。
【００５５】
いくつかのＦＰＧＡにおいては、各々のプログラマブルタイルは、各々の隣接するタイルにおいて対応する相互接続素子との標準化された接続を有するプログラマブル相互接続素子（ＩＮＴ  ３３１）を含む。したがって、ともに統合されたプログラマブル相互接続素子によって、図示されるＦＰＧＡのためのプログラマブル相互接続構造が実現される。プログラマブル相互接続素子ＩＮＴ  ３３１はまた、図１６の上部に含まれる例によって示されるのと同じタイル内にあるプログラマブル論理素子との接続を含む。
【００５６】
たとえば、ＣＬＢ  ３２２は、単一のプログラマブル相互接続素子ＩＮＴ  ３３１に加えて、ユーザ論理を実現するようプラグラム可能なコンフィギュラブル論理素子ＣＬＥ  ３３２を含み得る。ＢＲＡＭ  ３２３は、１つ以上のプログラマブル相互接続素子に加えて、ＢＲＡＭ論理素子（ＢＲＬ  ３３３）を含み得る。典型的には、タイルに含まれる相互接続素子の数はタイルの高さに依存する。図示される実施例においては、ＢＲＡＭタイルは、４つのＣＬＢと同じ高さを有しているが、他の数のもの（たとえば５）を用いることもできる。ＤＳＰタイル３２６は、適切な数のプログラマブル相互接続素子に加えて、ＤＳＰ論理素子（ＤＳＰＬ  ３３４）を含み得る。ＩＯＢ  ３２４は、たとえば、プログラマブル相互接続素子ＩＮＴ  ３３１の１つのインスタンスに加えて、入出力論理素子（ＩＯＬ  ３３５）の２つのインスタンスを含み得る。当業者に明らかになるように、たとえばＩ／Ｏ論理素子３３５に接続された実際のＩ／Ｏパッドは、図示されるさまざまな論理ブロック上方で層化された金属を用いて製造され、典型的には、入出力論理素子３３５の面積には限定されない。
【００５７】
図示される実施例においては、（図１６において網掛けして示される）ダイの中心付近の縦列状区域は、コンフィギュレーション、クロックおよび他の制御論理に用いられる。この縦列から延びる水平区域３２９は、ＦＰＧＡの幅にわたってクロックおよびコンフィギュレーション信号を分散させるのに用いられる。
【００５８】
図１６に示されるアーキテクチャを利用するいくつかのＦＰＧＡは、ＦＰＧＡの大部分を構成する規則的な縦列構造を乱す付加的な論理ブロックを含む。付加的な論理ブロックはプログラマブルブロックおよび／または専用の論理であり得る。たとえば、図１６に示されるプロセッサブロックＰＲＯＣ  ３３０は、ＣＬＢおよびＢＲＡＭのいくつかの縦列にまたがって存在する。
【００５９】
図１６が例示的なＦＰＧＡアーキテクチャだけを示すよう意図されていることに留意されたい。縦列における論理ブロックの数、縦列の相対的な幅、縦列の数および順序、縦列に含まれる論理ブロックのタイプ、論理ブロックの相対的寸法、ならびに相互接続／論理実現例は、図１６の上部に含まれているが、単に例示的なものにすぎない。たとえば、実際のＦＰＧＡにおいては、典型的には、ＣＬＢが現れている場合は常に、ユーザ論理を効率的に実現し易くするために、ＣＬＢのうち２つ以上の隣接する縦列が含まれる。
【００６０】
当業者であれば、１つ以上のプロセッサとプログラムコードで構成されるメモリ構成とを含むさまざまな代替的なコンピュータの構成が、この発明のさまざまな実施例のプロセスおよびデータ構造のホストとなるのに好適であり得ることを認識するだろう。
【００６１】
図１７は、この明細書中に記載されたプロセスが汎用のプロセッサを用いて実現され得るコンピュータの構成の例を示すブロック図である。当業者であれば、１つ以上のプロセッサとプログラムコードで構成されるメモリ構成とを含むさまざまな代替的なコンピュータの構成が、プロセスおよびデータ構造のホストとなり、この発明のさまざまな実施例のアルゴリズムを実現するのに好適であり得ることを認識するだろう。プロセッサが実行可能なフォーマットで符号化されるこの発明の実施例のプロセスを含むコンピュータコードは、磁気もしくは光学のディスクもしくはテープなどのさまざまなコンピュータ読取り可能記憶媒体もしくは搬送チャネル、電子記憶装置を介して、またはネットワークを介してアプリケーションサービスとして、格納および供給され得る。
【００６２】
プロセッサコンピュータの構成１７００は、ホストバス１７１２に結合された１つ以上のプロセッサ１７０２、クロック信号発生器１７０４、メモリ部１７０６、記憶部１７０８および入出力制御部１７１０を含む。構成１７００は、回路基板上の別個の構成要素で実現されてもよく、または、集積回路内において内部で実現されてもよい。集積回路内において内部で実現される場合、プロセッサコンピュータの構成は他の場合にはマイクロコントローラとして公知である。
【００６３】
コンピュータ構成のアーキテクチャは、当業者によって認識され得るように、実現例の要件に依存している。プロセッサ１７０２は、１つ以上の汎用プロセッサ、または、１つ以上の汎用プロセッサと好適なコプロセッサとの組合せ、または１つ以上の専用のプロセッサ（たとえばＲＩＳＣ、ＣＩＳＣ、パイプラインなど）であってもよい。
【００６４】
メモリ構成１７０６は、典型的には、複数のレベルのキャッシュメモリおよびメインメモリを含む。記憶構成１７０８は、磁気ディスク（図示せず）、フラッシュ、ＥＰＲＯＭまたは他の不揮発性データストレージによって提供されるようなローカルおよび／またはリモートの永続記憶装置を含み得る。記憶部は読取または読取／書込が可能であり得る。さらに、メモリ部１７０６および記憶部１７０８は単一の構成で組合わされてもよい。
【００６５】
プロセッサ構成１７０２は、記憶部１７０８および／またはメモリ部１７０６の構成でソフトウェアを実行し、記憶部１７０８および／またはメモリ部１７０６の構成からデータを読出し、記憶部１７０８および／またはメモリ部１７０６の構成にデータを格納し、入出力制御構成１７１０を介して外部装置と通信する。これらの機能はクロック信号発生器１７０４によって同期される。コンピュータ構成のリソースは、オペレーティングシステム（図示せず）またはハードウェア制御部（図示せず）によって管理されてもよい。
【００６６】
この発明の１つ以上の実施例は、同期回路を実現するさまざまなシステムに適用可能であると考えられる。この発明の他の局面および実施例は、この明細書中に開示される本発明の明細書およびその実施を検討することによって当業者に明らかになるだろう。明細書および例示される実施例が単に例としてしかみなされず、本発明の真の範囲および精神が添付の特許請求の範囲によって示されるよう意図されている。
【図３】
0005523623.tif 000002
【図１】
0005523623.tif 000003
【図２】
0005523623.tif 000004
【図４】
0005523623.tif 000005
【図５】
0005523623.tif 000006
【図６】
0005523623.tif 000007
【図７】
0005523623.tif 000008
【図８】
0005523623.tif 000009
【図９】
0005523623.tif 000010
【図１０】
0005523623.tif 000011
【図１１】
0005523623.tif 000012
【図１２】
0005523623.tif 000013
【図１３】
0005523623.tif 000014
【図１４】
0005523623.tif 000015
【図１５】
0005523623.tif 000016
【図１６】
0005523623.tif 000017
【図１７】
0005523623.tif 000018