(57)【要約】  異なる平均クロック周波数を要求するデータ処理モジュールをクロック制御するための、及び、モジュール間でデータを転送するための方法及び装置が提供される。これは、共通クロック信号をモジュールに供給するための手段を含む。各々のモジュールにより要求されるクロッキング周波数に基づいて、共通クロック信号から個々のモジュールへのクロック・パルスが削除される。クロック・パルスは、データ転送と一致したときに、データが転送されるモジュールに適用される。【選択図】図２
2010532124.tif 000002
【特許請求の範囲】
【請求項１】
異なる平均クロック周波数を要求するデータ処理モジュールをクロック制御するための、及び、前記モジュール間でデータを転送するための方法であって、共通クロック信号を全てのモジュールに供給し、各モジュールにより要求される前記クロッキング周波数に基づいて、前記共通クロック信号から個々のモジュールに供給されたクロック・パルスを削除し、実行されるデータ転送と一致したときに、データが転送されるモジュールにクロック・パルスを適用する、ステップを含むことを特徴とする方法。
【請求項２】
前記クロック・パルスは、データが転送されるモジュールのデータ・ソーシング機能及びデータ・シンキング機能と一致するときに、モジュールに適用されることを特徴とする、請求項１に記載の方法。
【請求項３】
前記クロック・パルスは、データ転送を実行するために、実質的に同期してモジュールに適用されることを特徴とする、請求項１及び請求項２に記載の方法。
【請求項４】
前記クロック・パルスは、データ転送を実行するために、異なる時間にモジュールに適用されることを特徴とする、請求項２に記載の方法。
【請求項５】
前記クロック・パルスは、前記データ転送に関連したインタフェース・プロトコル信号に応答して、データが転送されるモジュールに適用されることを特徴とする、請求項１に記載の方法。
【請求項６】
前記データ転送に関連した前記インタフェース・プロトコル信号に応答して適用されたクロック・パルス数に基づいて、後でモジュールに適用されるクロック・パルス数を調整するステップを含むことを特徴とする、請求項５に記載の方法。
【請求項７】
適用されるべきクロック・パルスを適用する前記ステップは、データを転送する準備ができていることを示す第１のモジュールからの信号を供給し、前記第１のモジュールからの前記信号に応答して前記データを受信するために、前記クロック・パルスを該第１のモジュール及び第２のモジュールに適用するステップを含むことを特徴とする、請求項１から請求項６のいずれかに記載の方法。
【請求項８】
前記クロック・パルスを前記第１のモジュール及び前記第２のモジュールに適用する前記ステップは、該クロック・パルスが該第１のモジュール及び該第２のモジュールに同期して供給されるように、前記削除ステップを制御するステップを含むことを特徴とする、請求項７に記載の方法。
【請求項９】
前記クロック・パルスを適用する前記ステップは、前記削除ステップが阻止される間全てのクロック・パルスが前記第１及び第２のモジュールに渡されるように、前記削除ステップを阻止するステップを含むことを特徴とする、請求項８に記載の方法。
【請求項１０】
データが転送されるモジュール間でハンドシェイク動作を実行するステップを含み、適切なパターンの前記クロック・パルスが使用可能でないときにデータ転送が阻止されるように、前記ハンドシェイク動作がゲート制御されることを特徴とする、請求項１から請求項６のいずれかに記載の方法。
【請求項１１】
前記ハンドシェイク動作は、データを転送する準備ができていることを示す第１のモジュールからの第１の信号と、前記データを受信できることを示す第２のモジュールからの第２の信号とを供給し、該第１及び第２のモジュールに適用された適切なクロック信号に応答して、該ハンドシェイク動作において前記第１の信号を該第２のモジュールに、及び、前記第２の信号を該第１のモジュールに渡すステップを含むことを特徴とする、請求項１０に記載の方法。
【請求項１２】
前記クロック信号は、前記第１のモジュール及び前記第２のモジュールについてのそれぞれのクロック・ゲーティング回路に適用された同時クロック・ゲーティング制御信号に応答して、該第１及び第２のモジュールに適用されることを特徴とする、請求項１１に記載の方法。
【請求項１３】
前記クロック・ゲーティング回路は、前記削除ステップを実行することを特徴とする、請求項１２に記載の方法。
【請求項１４】
各モジュールによって要求される前記クロック周波数を動的に変更するステップを含むことを特徴とする、前記請求項のいずれかに記載の方法。
【請求項１５】
メトリックを監視して、モジュールのクロッキング周波数に対する何らかの調整を必要とするかどうかを判断するステップを含むことを特徴とする、前記請求項のいずれかに記載の方法。
【請求項１６】
異なる平均クロック周波数を要求するデータ処理モジュールをクロック制御するための、及び、前記モジュール間でデータを転送するための装置であって、共通のクロック信号を全てのモジュールに供給するための手段と、各モジュールにより要求されるクロッキング周波数に基づいて、前記共通クロック信号から個々のモジュールに供給されたクロック・パルスを削除するための手段と、実行されるデータ転送と一致したときに、クロック・パルスを、データが転送されるモジュールに適用するための手段とを含むことを特徴とする装置。
【請求項１７】
前記クロック・パルスは、データが転送されるモジュールのデータ・ソーシング機能及びデータ・シンキング機能と一致するときに、モジュールに適用されることを特徴とする、請求項１６に記載の装置。
【請求項１８】
前記クロック・パルスをモジュールに与えることを可能にするための前記手段は、データ転送を実行するために該クロック・パルスを、実質的に同期して適用できるようにすることを特徴とする、請求項１６又は請求項１７に記載の装置。
【請求項１９】
前記クロック・パルスをモジュールに適用することを可能にするための前記手段は、該クロック・パルスのモジュールへの適用が異なる時間に起こることを可能にすることを特徴とする、請求項１７に記載の装置。
【請求項２０】
前記クロック・パルスを前記モジュールに適用することを可能にするための前記手段は、前記データ転送に関連したインタフェース・プロトコル信号に応答して、該クロック・パルスのモジュールへの適用を可能にすることを特徴とする、請求項１６に記載の装置。
【請求項２１】
前記データ転送に関連した前記インタフェース・プロトコル信号に応答して適用されたクロック・パルス数に基づいて、後でモジュールに適用さられるクロック・パルス数を調整するための手段を含むことを特徴とする、請求項２０に記載の装置。
【請求項２２】
前記クロック・パルスをモジュールに適用することを可能にするための前記手段は、データを転送する準備ができていることを示す第１のモジュールからの信号を供給するための手段と、前記モジュールからの前記信号に応答して前記データを受信するために、前記クロック・パルスを前記第１のモジュール及び第２のモジュールに適用するための手段とを含むことを特徴とする、請求項１６から請求項２１のいずれかに記載の装置。
【請求項２３】
前記クロック・パルスを前記第１のモジュール及び前記第２のモジュールに適用するための前記手段は、クロック・パルスが該第１及び第２のモジュールに連続的に供給されるように、前記削除ステップを制御するための手段を含むことを特徴とする、請求項２２に記載の装置。
【請求項２４】
前記クロック・パルスを適用するための前記手段は、前記削除手段が阻止される間、全てのクロック・パルスが前記第１及び第２のモジュールに渡されるように、前記削除手段を阻止するための手段を含むことを特徴とする、請求項２３に記載の装置。
【請求項２５】
データ転送されるモジュール間でハンドシェイク動作を実行するための手段と、適切なパターンの前記クロック・パルスが使用可能でないときにデータ転送が阻止されるように、前記ハンドシェイク動作をゲート制御するための手段とを含むことを特徴とする、請求項１６から請求項２１のいずれかに記載の装置。
【請求項２６】
前記ハンドシェイク動作を実行するための前記手段は、データを転送する準備ができていることを示す前記第１のモジュールからの第１の信号と、前記データを受信できることを示す前記第２のモジュールからの第２の信号とを供給するための手段と、該第１及び第２のモジュールに適用された適切なクロック信号に応答して、該ハンドシェイク動作において前記第１の信号を該第２のモジュールに、及び、前記第２の信号を該第１のモジュールに渡すための手段とを含むことを特徴とする、請求項２５に記載の装置。
【請求項２７】
前記クロック信号を前記第１及び第２のモジュールに適用するための前記手段は、該第１及び第２のモジュールについてのそれぞれのゲーティング回路に適用された同時ゲーティング制御信号に応答して、前記クロック信号を該第１及び第２のモジュールに適用することを特徴とする、請求項２６に記載の装置。
【請求項２８】
前記削除手段は、前記クロック・ゲーティング回路を含むことを特徴とする、請求項２７に記載の装置。
【請求項２９】
前記各モジュールによって要求された前記クロック周波数を動的に変更するための手段を含むことを特徴とする、請求項１６から請求項２８のいずれかに記載の装置。
【請求項３０】
メトリックを監視して、モジュールのクロッキング周波数に対する何らかの調整を必要とするかどうかを判断するための手段を含むことを特徴とする、請求項１６から請求項２９のいずれかに記載の装置。
【請求項３１】
異なる平均クロック周波数を要求するデータ処理モジュールをクロック制御するための、及び、前記モジュール間でデータを転送するための方法であって、共通クロック信号を全てのモジュールに供給し、各モジュールにより要求される前記クロッキング周波数に基づいて、前記共通クロック信号から個々のモジュールに供給されたクロック・パルスを削除し、データが転送されるモジュール間でハンドシェイク動作を実行し、前記２つのモジュールに適用された適切なパターンのクロック・パルスの存在下においてのみデータ転送が生じるように前記ハンドシェイク動作を制御する、ステップを含むことを特徴とする方法。
【請求項３２】
異なる平均クロック周波数を要求するデータ処理モジュールをクロック制御するための、及び、前記モジュール間でデータを転送するための装置であって、共通クロック信号を全てのモジュールに供給するための手段と、各モジュールにより要求される前記クロッキング周波数に基づいて、前記共通クロック信号から個々のモジュールに供給されたクロック・パルスを削除するための手段と、データが転送されるモジュール間でハンドシェイク動作を実行するための手段と、前記２つのモジュールに適用された適切なパターンのクロック・パルスの存在下においてのみデータ転送が生じるように前記ハンドシェイク動作を制御するための手段とを含むことを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体デバイスのためのクロック周波数調整に関し、より具体的には、異なる速度でクロック制御される複数のモジュールに関し、最も典型的にはシステム・オン・チップ（ＳｏＣ）上に設けられた多重処理要素を含む半導体デバイスのためのクロック周波数の調整に関する。
【背景技術】
【０００２】
半導体デバイスがますます小型化するのに伴い、システム・オン・チップ・デバイスは、ますます多くの異なる処理要素を同じチップ上に統合して製造されるようになっている。これらの処理要素は、以前は、別々の半導体デバイスとして与えられていた。
【０００３】
半導体デバイスは、クロック信号に応答してその機能を実行し、このクロック信号は、デバイスへの１つ又はそれ以上の入力で供給され、分割されて、種々の処理要素に内部で分散される。異なる処理要素が同じシステムの部分を形成し、信号がそれらの間で転送される場合、共通クロックが通常用いられる。種々の処理要素が異なるクロック周波数要件を有する場合には、それらのモジュール間でデータがどのように転送されるべきかについて、いくつかの検討が必要になる。モジュールが、互いに対して整数のクロック比でクロック制御される場合、データ転送は、単純なままにしておくことができる。しかしながら、任意のクロック比が要求される場合には、より費用のかかる複雑な同期化が必要になり、これはデータ転送の際の待ち時間の増加という不利益をもたらす可能性があることが分かる。
【０００４】
典型的な例示的ＳｏＣデバイスを図１に示す。これは、複数のモジュール２、４及び６を含む。これらは、クロックによって駆動されるＳｏＣが必要とする、中央処理装置、コプロセッサ、インタフェース、調停ユニット、又はその他の回路の任意の組み合わせとすることもできる。
【０００５】
マスター・クロック信号８が、位相ロック・ループ（ＰＬＬ）１０に供給される。モジュール１は、ＰＬＬ１０からクロック１としてクロック信号を取得し、このクロッキング速度でその機能を実行する。
【０００６】
モジュール２及びモジュール３は、モジュール１に供給されるクロック１の周波数ほど高速で動作する必要はない。したがって、モジュール２へのクロック信号（クロック２）は、Ｎ除算ユニット１２を通り、モジュール３へのクロック入力（クロック３）は、Ｍ除算ユニット１４を通る。この場合、Ｎ及びＭは整数の量である。モジュール２及びモジュール３を低速でクロック制御することにより、これらのモジュールによる電力消費が最小になる。
【０００７】
Ｍ及びＮが単純な整数比に保たれ、３つクロック全てが注意深く同期されれば、モジュール間のデータ転送は、比較的単純なままにしておくことができることが理解されるであろう。例えば、モジュール１は、Ｎクロック・サイクル毎においてのみ、モジュール２への出力を更新し、モジュール２からの入力を読み取るように構成することができる。同様に、モジュール１は、Ｍクロック・サイクル毎に１回のみ、モジュール３にデータを転送し、モジュール３からの入力を読み取る。
【０００８】
Ｍ及びＮの他の比率（即ち、非整数値）を用いる場合、モジュール間のデータ転送は、より複雑になる可能性があり、先入れ先出しバッファ（ＦＩＦＯ）、又は、図１においてモジュール２とモジュール３との間に示されるような何らかの特別な同期化論理１６を挿入することが必要となり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
いくつかの処理システムは、動的に変化する処理要件を有する。したがって、、図１のような回路は、モジュール２がどのような処理も実行する前に、モジュール１を用いてかなりの量の処理を実行することができる。モジュール２が、モジュール１と同じ速度でクロック制御された場合には、プロセスの第１段階で、モジュール２による無用な電力消費がある。モジュール２がより低いクロック周波数で動作される場合には、プロセスの第２の部分は、第１の部分よりも低速で実行される。クロック速度の動的変動は、こうした状況で最適な処理速度を与えることが望ましいが、とりわけ、異なるクロック周波数で動作しているモジュール間でデータを転送する要件がある場合には、実現するのは困難である。
【課題を解決するための手段】
【００１０】
本発明の好ましい実施形態は、どのようなモジュールの実効クロック速度も微調整することができるシステムを提供する。これは、ＳｏＣ内の各モジュールに、同期されたクロック信号を供給することによって実現され、各クロック信号は同じ基本速度で流れている。モジュールのためのクロッキング速度を落とすために、クロック・ゲーティング・セルが、クロック入力ラインに設けられる。これは、明らかに低いクロック速度又は可変クロック速度を実現するために、要求されないクロック・パルスを削除するようにクロック・ゲーティング・セルを制御するクロック削除制御ユニットの制御下にある。
【００１１】
好ましくは、クロック削除制御ユニットは、設定された期間内で、どのような任意の数のクロック・パルスもマスター・クロック信号から削除して、要求された実効クロック周波数を実現するように設置することができる。さらに、クロック削除制御ユニットは、処理要素又はモジュール上で流れるアルゴリズムによる要件に応じて、実効クロック周波数を調節するように修正することができる。この制御は、レジスタ設定によるものとすることができ、場合によっては、ＳｏＣ上で稼働するソフトウェアによって修正可能であり、又は代替的には、クロック・パルスが供給されるモジュール内部で流れるアルゴリズム内で生成されたメトリックによって最適値に動的に設定することができる。
【００１２】
ＳｏＣ内の各モジュールは、それ専用のクロック削除制御ユニット及びクロック・ゲーティング・セルを有することができ、各々は、異なるクロッキング速度で稼働させることができる。転送されるデータがあるときに、クロック・パルスを送信側モジュール及び受信側モジュールに強制的に与えるか、又は、既存の２ウェイ・ハンドシェイクを利用して、適切なクロック・パルスが送信側モジュール及び受信側モジュールの両方に生じるまで、データの転送を意図的にストールするかのいずれかによって、異なるクロッキング速度で稼働するモジュール間での安全なデータ転送が行われる。これらの方法の組み合わせも用いることができる。
【図面の簡単な説明】
【００１３】
【図１】上記で参照された従来技術のシステムである。
【図２】本発明の実施形態による、クロック・ゲーティング・セル及びクロック削除制御ユニットを示す。
【図３】非ストール（有効のみ）プロトコルのタイミング波形を示す。
【図４】特有の２ウェイ・ハンドシェイク（有効−イネーブル・プロトコル）を用いるモジュール間のデータ転送のためのタイミング波形を示す。
【図５】正確なデータ転送を確保するために、クロック・パルスがモジュールに強制的に与えられた、本発明の実施形態を示す。
【図６】正確なデータ転送を確保するために、２ウェイ・ハンドシェイク・プロトコルが修正された、本発明の実施形態を示す。
【図７】実施形態で用いるためのクロッキング構成の１つの配置を示す。
【図８】図６のモジュール１とモジュール２との間での転送のための最適化されたクロッキング構成を示す。
【発明を実施するための形態】
【００１４】
ここで、本発明の実施形態が、添付の図面を参照して、一例としてより詳細に説明されるであろう。
【００１５】
本発明の好ましい実施形態において、図１のＮ除算ユニット１２及びＭ除算ユニット１４は、図２のクロック削除ユニットに置き換えられる。これは、クロックとモジュールへのクロック入力との間に配置されるクロック・ゲーティング・セル２０を含む。このクロック・ゲーティング・セル２０はまた、クロック削除制御ユニット２２からの入力を受信する。このクロック削除制御ユニット２２も、クロック・ゲーティング・セルと同じクロック入力を受信する。さらに、クロック削除制御ユニットは、当該モジュールに与えられるべき、要求されたクロッキング速度に関するデータを含む制御入力２４を受信する。制御入力２４に応答して、クロック削除制御ユニット２２は一連のパルスを生成し、これは、クロック・ゲーティング・セル２０に与えられ、これは次いで、クロック・パルスがモジュールにおいて生成されるようにする。
【００１６】
したがって、図２のクロック削除制御ユニットは、設定されたクロック周期内のマスター・クロック信号から、いずれかの任意のクロック・パルスを削除して、いずれかの任意の順序で要求される実効クロック周波数を実現するように設定することができる。さらに、制御入力２４は、モジュール上で実行されるアルゴリズムによって必要とされるように、実効クロック周波数を変更するように、いつでも修正することができる。
【００１７】
好ましい実施形態において、図１のＮ除算ユニット１２及びＭ除算ユニット１４の各々が、図２に示される形式のクロック削除ユニットに置き換えられる。実際は、図１の３つのモジュールの各々にクロック削除ユニットを設け、これにより、各々をさまざまな速度で制御できることを確実にすることが好ましく、それによって、特定の時間に処理を実行することを必要としないいずれのモジュールも、そのクロッキング・パルスをクロック削除ユニットによって除去することができる。
【００１８】
ＳｏＣが動作中であるとき、２つ又はそれ以上のモジュール間でデータを転送することが、時々に必要になるであろう。これが必要である場合は、モジュールが適切な時間にクロック制御されることを確実にする必要がある。これは、下記を含む多くの方法で実現することができる。すなわち、
１．転送する有効データがあるときには、適切な時間に、クロック・パルスを両方のモジュールに強制的に与えることによって実現するか、又は、
２．転送が両方の側で認識される場合、既存の２ウェイ・ハンドシェイク線を利用して、一方のモジュールから他方のモジュールへのデータ・フローを自然に制御することによって実現される。ハンドシェイク信号の使用は、同時クロック・パルスが両方のモジュール上に生じているときに、データだけが流れるのを可能にするように覆される。
【００１９】
例示のために本明細書で用いられる２ウェイ・ハンドシェイク・プロトコルは、「有効−イネーブル」と名づけられ、これは、同じクロック上の１つのモジュールから次のモジュールへのデータ転送を認識する。
【００２０】
異なるクロック上の転送を認識する２ウェイ・ハンドシェイク・プロトコルに対応することも可能である。これらは、データ転送のためのインタフェース・プロトコルを基にして設計された異なる特有の論理を必要とする。
【００２１】
本発明の実施形態で用いることができるモジュール間でデータを転送する２つの方法の例をここで説明する。特に、異なる実効速度でクロック制御されるモジュール間でデータを転送するための方法を示す。両方の技術は、いずれの数の実効クロック速度で実行されるいずれの数のモジュール間でも、同じＳｏＣ上で用いることができる。選択された方法についての最適な選択肢は、１ウェイ又は２ウェイのハンドシェイク・プロトコルが利用可能であるかどうかによって決まる。これはまた、選択されたインタフェースによるデータ転送の予測される特性によっても決まる。
【００２２】
第１の例は、適切なモジュール・インタフェースにおいて用いることができる、非ストール（ここでは、「有効のみ」として知られる）・プロトコルである。データ転送に用いられる信号を図３に示す。図から分かるように、クロック信号が、一番上のラインに示される。二番目のラインは、「有効」というハンドシェイク線を表し、これは、高いときに、「データ」線が転送される値を有することを示す。転送される有効データは、図３においてＤ１、Ｄ２、Ｄ３及びＤ４として示される。
【００２３】
両方のモジュールが同じクロックによって駆動される場合には、「有効のみ」プロトコルは、問題なく機能する。しかしながら、モジュールが、異なるクロック制御設定の異なる速度で駆動される場合には、有効データが消失するか、又は、有効データの単一の語が多数の語として間違って解釈される可能性がある。こうした出来事を回避するために、有効信号を取得し、それをクロック制御ユニットの各々からのクロック・ゲーティング信号と組み合わせ、転送される有効データがあるときはいつでも、クロック・パルスを各モジュールに強制的に与える。
【００２４】
具体的な実施形態が図５に示される。これは、データが転送される準備ができたときに、同時クロック・パルスが、送信側モジュール及び受信側モジュールの両方に強制的に与えられるシステムである。図５は、それぞれのクロック削除回路によって、異なる実効クロック速度でクロック制御することができる２つのモジュールを示す。２つのモジュールは、モジュール１及びモジュール２である。モジュール１は、クロック制御１を受信するクロック削除制御ユニット４２を有する。モジュール２は、その制御入力においてクロック制御２を受信するクロック削除制御ユニット４４を有する。
【００２５】
クロック削除制御ユニット４２及び４４の各々は、それぞれのＯＲゲート４８を介して、それぞれのクロック・ゲーティング・セル４６に制御信号を供給する。同じクロック信号５０が、各々のクロック削除制御ユニット４２及び４４、並びに２つのクッロック・ゲーティング・セル４６に供給される。
【００２６】
モジュール１は、データをモジュール２に転送しなくてはならない。モジュール１が、そのデータを転送する準備ができたとき、モジュール１は、モジュール２に与えられ、かつ、ＯＲゲート４８の各々の第２の入力にも適用される、有効信号５２を生成する。これには、各ＯＲゲート４８の出力を、クロック削除制御ユニットの出力にかかわりなくイネーブルにするという効果がある。
【００２７】
したがって、ＯＲゲート４８は、それぞれのクロック削除制御ユニット４２及び４４の出力の有効信号５２に応答して、イネーブル信号をそれぞれのクロック・ゲーティング回路４６に与え、それぞれのＯＲゲート４８の出力がイネーブルにされたときに、クロック信号５０が、それぞれのクロック・ゲーティング・セル４６を通るようにする。
【００２８】
高度な実装は、余分なパルスを後で削除することにより付加的なパルスを明らかにするので、全体のクロック・カウントが、ある期間にわたって必要とする速度と一致する。
【００２９】
受信側モジュールがデータ転送のストールを可能にするハンドシェイク機構が存在する場合、代替的な機構が用いられ、モジュールが異なる実効速度でクロック制御されるときに正確なデータ転送を確実にする。説明のために用いられる例示的なプロトコルは、ここでは、２ウェイ・ハンドシェイク・プロトコルである有効−イネーブル転送として知られる。プロトコルは、図４に示される。一番目のラインは、クロック信号を示す。二番目のラインは、送信側モジュールから発信される「有効」信号を示し、データ線上の値が関心あるものであり、受信側モジュールに送信されることを示す。三番目のラインは、受信側モジュールから発信される「イネーブル信号」を示し、モジュールがデータを受信する準備ができていることを示す。有効信号及びイネーブル信号の両方が高いとき、Ｄ１、Ｄ２、Ｄ３、及びＤ４として図４に示されるデータは、送信側モジュールから受信側モジュールに転送される。特別な処理を行わなければ送信側モジュール及び受信側モジュールが異なる実効クロック速度によってクロック制御された場合、このプロトコルもまた不正確なデータ転送に悩まされる。これを回避するために、ハンドシェイク信号自体を利用して、両方のモジュール上に適切なクロックがある場合、データの転送を試みるだけであることを確実にする。
【００３０】
システム・オン・チップ内のモジュール間でデータを転送するためのこの代替的な配置の具体的な実施形態を、図６を参照して示す。この形式の配置は、１つの処理要素が、データ転送を行いたいと望む別の処理要素をストールバックすることができる２ウェイ・ハンドシェイクをモジュール間で用いる。これには、送信側モジュール及び受信側モジュールの両方に適用される同時クロック・パルスが発生したときのみ、データ転送が可能であることを保証するという効果がある。
【００３１】
この配置において、モジュール１は、ＡＮＤゲート６０の出力に応答してアサートされるイネーブル入力を有する。これに対応して、モジュール２は、ＡＮＤゲート６２の出力によってアサートされる有効入力を有する。モジュール１へのイネーブル入力は、データをモジュール２に送ることを可能にし、モジュール２の有効入力は、これがモジュール１からデータを受信することを可能にする。
【００３２】
ＡＮＤゲート６０の第１の入力は、データをモジュール１から受信する準備ができている状態にあるときに、モジュール２によって生成されたイネーブル信号である。ＡＮＤゲート６２の第１の入力は、データをモジュール２に送信するのが可能であるときに生成された、モジュール１からの有効出力である。ＡＮＤゲート６０及び６２のそれぞれの第２の入力は、クロッキング回路６４によって与えられる。
【００３３】
クロッキング回路６４は、クロック入力６６を有する。このクロッキング信号は、図２を参照して説明される形式の２つのクロック・ゲーティング回路に送られる。モジュール１は、そのクロック制御入力においてクロック制御信号１を受信するクロック削除制御ユニット４２を含むクロック・ゲーティング・ユニットを有する。これの出力及びクロック信号６６は、そのクロック・ゲーティング・セル４８に供給され、これはクロック信号をモジュール１に供給する。
【００３４】
これに対応して、モジュール２に関しては、クロック削除制御ユニット４４は、その制御入力においてクロック制御信号を受信し、出力をそのクロック・ゲーティング・セル４８に供給し、次いで、クロッキング信号をモジュール２に供給する。
【００３５】
２つのクロック削除制御ユニット４２及び４４の出力は、更に別のＡＮＤゲート６８にも供給される。これの出力は、２つのＡＮＤゲート６０及び６２への第２の入力を形成する。したがって、２つのクロック制御信号により、それぞれのクロック削除制御ユニット４２及び４４がイネーブリング・パルスを各々のクロック・ゲーティング・セル４８に供給するときに、ＡＮＤゲート６８の出力がアサートされ、これにより、モジュール１がその有効出力ライン上に有効信号を生成し、モジュール２がそのイネーブル・ライン上にイネーブル信号を生成する場合、即ち、モジュール１がデータを送信する準備ができ、モジュール２もデータを受信する準備ができたときに、データがモジュール１からモジュール２に渡されることを可能にする。この場合、データは、それぞれのクロック・ゲーティング・セルによってそれぞれのクロック入力で供給されるクロック信号に応答して、モジュール１からモジュール２に送られる。
【００３６】
この配置は、クロック削除回路がそれらの間に最大数の同時クロック・パルスを有するときに最も効果的に機能し、したがって、一方のモジュールが、他方のモジュールへとの間のデータ転送を待機している間に不必要にストールされる機会が最小になる。図６の２つのクロック削除制御ユニットの間には点線が示され、これは、何らかの同期化を与え、これにより最大数の同時クロック・パルスを確実にする、２つのクロック制御入力間のリンケージを表わす。
【００３７】
本発明のこれらの実施形態においては、クロック制御信号がクロック速度の制御を必要としない場合には、一定のものに有線接続されてもよい。代替的に、プロセッサ上で実行されるソフトウェアによってクロック速度を制御できるように、クロック制御信号を接続することもできる。代替的に、クロックが制御されているモジュールによって、又は、実際に他のモジュールのクロッキング速度の制御を担う他のいずれかのモジュールによって、制御信号を動的に調整することもできる。
【００３８】
動的な制御の場合、メトリックを用いて、クロック制御されているモジュールがそのリアルタイム要件を満たす際に正確に動作しているかどうか、又は、クロッキング速度に対する何らかの調整を必要とするかどうかを表示することができる。このメトリックは、例えば、適切なＦＩＦＯ（先入れ先出しバッファ）の完全性、又は、モジュールの働きの過不足の程度についての表示を与えるように構築できる他のハードウェアを用いて、生成することができる。次に、このメトリックをフィードバックし、好適なスケーリング及びオフセットを介してクロック制御信号を直接駆動することができる。
【００３９】
複数のモジュールの各々が、いずれかの所定の期間に、最小可能数のクロック・パルスでクロック制御されることが好ましい。一般に、各モジュールがそのタスクを動作させるためにクロック制御する必要がある最小クロック周波数を計算又は推定することが可能である。クロッキングは、無活動周期及びクロッキングが動作しているシステム内のデータの流れが、これを必要とすることを示す場合には、より高い周波数でのクロッキング周期を有するように、ある期間内で制御することができる。
【００４０】
モジュール間の同時発生クロック・パルス数を最大にすることは好ましいので、データは、利用可能になる限り、待機しなければならず、場合によってはシステムの動きを鈍くするよりも、モジュール間で転送される可能性が高い。例えば、システムは、クロック１、クロック２及びクロック３によって駆動される又は共通のマスター・クロックにより駆動される３つのモジュールを有することができる。クロック１、クロック２、及びクロック３に必要な新しいクロック速度は、それぞれ１６クロック周期毎に、４、８及び３パルスであると推定することができる。このための可能な構成を、クロック１、クロック２及びクロック３に必要なクロック・パルスと共に、図７に示す。この例では、それぞれの最小クロック・サイクル数について、全てのクロック・パルスが１６周期サイクルの初めに生じ、同時発生クロック・パルス数を最大にする。
【００４１】
モジュールがデータを生成又は受信する予測される速度を考慮に入れて、クロッキング・パターンを適切に修正することも望ましい。例えば、モジュール１が、２クロック・パルス毎に平均して１語で、データをモジュール２に送る場合には、モジュール２は、受信する各語を処理するために４クロック・パルスを必要とし、図７に示すクロック・パルスの配置は適切ではない。こうした状況のために、モジュール間のＦＩＦＯバッファが、円滑なデータ・フローを維持するために必要とされる。代替的に、図８に示すように、この要件は、波形を異なった配置にすることにより排除することができる。ここでは、クロック１に与えられたクロック・パルスが広がって、モジュール２がモジュール１からデータを受信したときに、モジュール２がこのデータを処理することを可能にする。
【００４２】
図８に示すような特性をもつ波形を生成するために、クロック削除制御ユニットは、特定のサイクルが再開する前に、クロック周期の数に対応するフレーム長で構成する必要がある。また、アクティブなサイクルの数、即ち、クロック・パルスが生成されるフレーム内のクロック周期数、及び出力パルス間のクロック周期数を知ることも必要である。次いで、このことは、そのクロック・パルスを変更して、モジュール間のデータの最適なフローを確実にすることを可能にする。
【図１】
2010532124.tif 000003
【図２】
2010532124.tif 000004
【図３】
2010532124.tif 000005
【図４】
2010532124.tif 000006
【図５】
2010532124.tif 000007
【図６】
2010532124.tif 000008
2010532124.tif 000009
【図７】
2010532124.tif 000010
【図８】
2010532124.tif 000011
【国際調査報告】
2010532124.tif 000012
2010532124.tif 000013
2010532124.tif 000014