(57)【特許請求の範囲】
【請求項１】
データソースおよびデータ受信器を含むクロックフォワードＩ／Ｏシステム内で前記データ受信器のコアクロック信号を開始および停止するための装置であって、前記装置は、
前記データソースからの入来データを受信するように結合されるバッファを含み、前記バッファは、前記データソースが提供する第１のクロック信号によってクロックされ、前記バッファは、前記第１のクロック信号に応答して複数のシーケンシャルラインに前記入来データを記憶するように構成され、
前記バッファは、複数の占有ビットレジスタに複数のビットを記憶するように構成され、前記複数の占有ビットレジスタの各々は、データが前記バッファ内の対応するシーケンシャルライン内に存在することを示し、
前記バッファは、前記コアクロック信号によってクロックされるアンロードポインタを用いてデータをアンロードするようにさらに構成され、前記コアクロック信号は、前記データ受信器内の前記バッファ以外の他の論理を動作するためのクロックドメインを含み、前記装置はさらに、
前記バッファに結合され、かつ前記データ受信器の前記コアクロック信号を、基準クロック信号およびゲーティング信号から生成するように構成されたクロックゲート回路を含み、
前記クロックゲート回路は、有効データが前記バッファ内に存在する場合、または前記データ受信器を有する前記論理が前記コアクロック信号を要求する場合のいずれかの場合には前記コアクロック信号を開始し、前記バッファ内にデータが存在せずかつ前記データ受信器を有する前記論理が前記コアクロック信号を要求しない場合には前記コアクロック信号を停止するように構成される、装置。
【請求項２】
前記バッファに結合される複数のシンクロナイザーをさらに含み、前記複数のシンクロナイザーの各々は、前記複数の占有ビットレジスタのうちの対応するものの出力をラッチするように構成される、請求項１に記載の装置。
【請求項３】
前記複数のシンクロナイザーに結合され、かつ前記複数のシンクロナイザーのうちの１つの出力を提供するように構成される占有ビットマルチプレクサをさらに含む、請求項２に記載の装置。
【請求項４】
前記占有ビットマルチプレクサはさらに、前記アンロードポインタによって指示される入力を選択するように構成される、請求項３に記載の装置。
【請求項５】
前記複数のシンクロナイザーのうちの１つの前記出力は、前記バッファ内の前記対応するシーケンシャルライン内のデータが有効であるかを示す、請求項３に記載の装置。
【請求項６】
前記バッファはさらに、先入れ先出しバッファとして構成される、請求項１に記載の装置。
【請求項７】
前記複数の占有ビットレジスタの前記各々はさらに、前記バッファ内の対応するシーケンシャルライン内に存在する前記データがアクセスされた後に、さらには有効なリセット信号の受信に応答して、リセットするように構成される、請求項１に記載の装置。
【請求項８】
前記複数のシンクロナイザーの各々は、１対のフリップフロップを含む、請求項２に記載の装置。
【請求項９】
データソースおよびデータ受信器を含むクロックフォワードＩ／Ｏシステム内で前記データ受信器のコアクロック信号を開始および停止するための装置であって、前記装置は、
前記データソースからの入来データを受信するように結合されるバッファを含み、前記バッファは、前記データソースが提供する第１のクロック信号によってクロックされ、前記バッファは、前記第１のクロック信号に応答して複数のシーケンシャルラインに前記入来データを記憶するように構成され、
前記バッファは、複数の占有ビットレジスタに複数のビットを記憶するように構成され、前記複数の占有ビットレジスタの各々は、データが前記バッファ内の対応するシーケンシャルライン内に存在することを示し、
前記バッファは、前記コアクロック信号によってクロックされるアンロードポインタを用いてデータをアンロードするようにさらに構成され、前記コアクロック信号は、前記データ受信器内の前記バッファ以外の他の論理を動作するためのクロックドメインを含み、前記装置はさらに、
前記バッファに結合され、かつ前記データ受信器の前記コアクロック信号を、基準クロック信号およびゲーティング信号から生成するように構成されたクロックゲート回路を含み、
前記クロックゲート回路は、有効データが前記バッファ内に存在する場合、または前記データ受信器を有する前記論理が前記コアクロック信号を要求する場合のいずれかの場合には前記コアクロック信号を開始し、前記バッファ内にデータが存在せずかつ前記データ受信器を有する前記論理が前記コアクロック信号を要求しない場合には前記コアクロック信号を停止するように構成され、前記装置はさらに、
前記バッファに結合される複数のシンクロナイザーをさらに含み、前記複数のシンクロナイザーの各々は、前記複数の占有ビットレジスタのうちの対応するものの出力をラッチするように構成され、
前記複数のシンクロナイザーのうちの１つの前記出力は、前記バッファ内の前記対応するシーケンシャルライン内のデータが有効であるかを示す、装置。
【請求項１０】
前記複数のシンクロナイザーに結合され、かつ前記複数のシンクロナイザーのうちの１つの出力を提供するように構成される占有ビットマルチプレクサをさらに含む、請求項９に記載の装置。
【請求項１１】
前記占有ビットマルチプレクサはさらに、前記アンロードポインタによって指示される入力を選択するように構成される、請求項１０に記載の装置。
【請求項１２】
前記バッファはさらに、先入れ先出しバッファとして構成される、請求項９に記載の装置。
【請求項１３】
前記複数の占有ビットレジスタの前記各々はさらに、前記バッファ内の対応するシーケンシャルライン内に存在する前記データがアクセスされた後に、さらには有効なリセット信号の受信に応答して、リセットするように構成される、請求項９に記載の装置。
【請求項１４】
前記複数のシンクロナイザーの各々は、１対のフリップフロップを含む、請求項９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】  この発明は、コンピュータシステムに関し、より具体的には、クロックフォワードサブシステムおよび電力管理に関する。
【背景技術】
【０００２】
【背景技術】
ＵＳ−Ａ−５  ９７４  ５１６は、ＦＩＦＯバッファ、データグループサイズレジスタ、書込制御回路、および読出制御回路を含むＦＩＦＯ記憶回路を開示する。ＦＩＦＯ記憶回路は、データバス上で送信されたデータを１つ以上のデータユニットを有するデータグループに記憶する。送信されるデータグループの各々には、データサイズ情報が伴い、書込制御回路は、データサイズ情報を受信し、ＦＩＦＯバッファ内でいくつかの連続する記憶場所を割り当てて、入来データグループの記憶を可能にする。データグループの各ユニットは、連続する記憶場所内の各ユニットに共通したデータタグとともに記憶される。次に記憶されるデータグループには、新しいデータタグが割り当てられる。読出制御回路は、最後の読出のためのデータタグを追跡し、データタグの順序で記憶場所から読出す。
コンピュータシステムは、通常、実行中に１つ以上のプログラムまたはアプリケーションからのいくつかの命令の処理を行なう（「マイクロプロセッサ」とも呼ばれる）少なくとも１つのプロセッサを典型的に含む。その処理動作の一部として、プロセッサは、必要とされるデータ転送のために、いくつかのシステムバスにアクセスする必要があり得る。たとえば、マルチメディアアプリケーションは、プロセッサが特定のデータを別個のビデオプロセッサに転送し、処理された情報を専用のビデオバスを通してビデオプロセッサから取出すことを必要とし得る。さらに、プロセッサは、別個のＩ／Ｏバスを通して１つ以上のＩ／Ｏ装置と通信を行ない得、専用のメモリバスを通して１つ以上のシステムメモリと通信を行ない得る。コンピュータシステムを構成する種々の電子装置間の相互接続のレベルおよびシステム装置の複雑性に基づいて、追加のバスがコンピュータシステム内に存在し得る。【０００３】  コンピュータシステムはまた、バスブリッジを含んで、プロセッサと１つ以上のシステムバスとの間のバイナリ情報トラフィックを効率的に管理し得る。バスブリッジはまた、プロセッサおよび１つ以上のＩ／Ｏ装置による独立したメモリアクセスの可能性のゆえに、システム内でのキャッシュコヒーレントデータ転送を促進し得る。種々のシステム構成要素が、バスブリッジを介してプロセッサに結合され得る。言い換えると、バスブリッジは、プロセッサに直接接続され得、したがって、プロセッサからすべてのアドレスおよびデータ情報を直接受信し得る。バスブリッジは次に、受信した情報を適切なシステムバスを介して適切なシステム装置に分配し得る。同様に、異なるシステムバスを通して１つ以上のシステム装置から受信される情報は、体系化された様態でバスブリッジを介してプロセッサへとルーティングされ得る。【０００４】  ２つの装置間で体系的にデータを交換するために、装置は、高帯域幅データ転送のためのクロックフォワードインターフェイスを介して接続され得る。クロックフォワードインターフェイスは、送信側に、送信データを受信側でラッチするフォワードクロックを受信側へと提供させることによって、バイナリ情報のポイントツーポイント転送を達成する。次に、受信側は、その内部クロックを用いて受信されたバイナリ情報をサンプリングする。送信側は、送信側が送信するアドレスおよび／またはデータをフォワードクロックに同期させる。【０００５】  典型的な半導体装置は、動作中に電力を損失する（つまり、電気エネルギを熱エネルギに変換する）。半導体装置が損失する電力は、半導体装置が実行時間中に動作する速度（または周波数）に比例する。半導体装置の動作周波数が高ければ高いほど、半導体装置による熱エネルギの発生はより大きい。電力要件が重要である応用では、不必要な電力消費は許容され得ない。したがって、電力消費を減じるために、いくつかの装置はアイドル状態に入り得る。【０００６】  加えて、半導体装置によって生成されるノイズの量は、いずれかの時点で切換わるデジタル論理の量に比例する。クロックフォワードＩ／Ｏ装置内のノイズおよび電力消費を減じるために、一旦データが受信側でラッチされると、送信クロック���オフにされ得る。装置の受信側は、フォワードクロックが停止した後、受信データを処理し続ける。いくつかの事例では、送信側がデータおよびフォワードクロックの送信を始めるときに同期性を維持するために、たとえ受信するデータが存在しなくなった後でさえも、受信側の論理クロックは動作し続け得る。【０００７】  クロックフォワードＩ／Ｏ装置では、処理するべきデータが存在しない場合、受信装置が低電力状態に入り得ることが望ましい。したがって、送信側からのフォワードクロックと受信側の内部受信論理クロックとの間での必要な同期性を保証しながら、受信側がその低電力状態に入り、さらにはそこから出ることを可能にすることが望まれ得る。
【発明の開示】
【０００８】  上述の問題は、クロックフォワードシステムＩ／Ｏのための効率的なクロック停止および開始装置によってほぼ解決され得る。１つの実施例では、装置は、データソースからの入来データを受信するように結合されるバッファを含み得る。バッファは、データソースが提供する第１のクロック信号によってクロックされる。バッファは、入来データを第１のクロック信号に応答して複数のシーケンシャルラインに記憶するように構成される。バッファはさらに、複数のビットを複数の占有ビットレジスタに記憶するように構成され得る。複数の占有ビットレジスタの各々は、データがバッファ内の対応するシーケンシャルライン内に存在することを示す。
【０００９】  装置はさらに、バッファに結合され、かつ第２のクロック信号を提供するように構成されたクロックゲート回路を含み得る。クロックゲート回路はさらに、有効なデータがバッファ内に存在する場合には第２のクロック信号を開始するように、データがバッファ内に存在しない場合には第２のクロック信号を停止するように、構成され得る。
【００１０】  １つの実施例では、装置は複数のシンクロナイザーを含み得るが、これらはバッファに結合される。複数のシンクロナイザーの各々は、複数の占有ビットレジスタのうちの対応するものの出力をラッチするように構成され得る。複数の占有ビットレジスタの各々はさらに、バッファ内の対応するシーケンシャルライン内に存在するデータがアクセスされた後、さらには有効なリセット信号の受信に応答して、リセットするように構成され得る。
【００１１】  上述の装置は、有利なことには、処理するべきデータが存在しない場合、クロックフォワードＩ／Ｏシステム内でデータを受信している装置がその内部受信論理クロックを遮断することを可能にすることにより、装置のノイズおよび電力消費を減じ得る。さらに、装置はまた、データが受信され、処理される準備が整った時に、クロックフォワードＩ／Ｏシステム内でデータを受信している装置がその内部受信論理クロックを開始することを可能にし得る。
【００１２】  この発明の他の目的および利点は、以下の詳細な説明を読み、添付の図を参照することによって明らかとなるであろう。
【００１３】  この発明には種々の変形例および代替の形が可能であるが、その具体的な実施例は、図において例として示され、ここで詳細に説明される。しかし、図およびその詳細な説明は、この発明を開示された特定の形に限定することを意図するのではなく、逆に、その意図は、添付の請求項によって規定されるこの発明の思想および範囲内に入るすべての変形例、均等物、および代替物を包含することであることが理解されるべきである。
【発明の実施の態様】
【００１４】  図１を参照して、クロックフォワードを採用する送信装置および受信装置の１つの実施例のブロック図である。送信装置１００は、１対の接続部によって受信装置１２０に結合される。送信装置１００は、１つの接続部を通して受信装置１２０にデータ１０５を送信する。データ１０５は、アドレス情報またはデータ情報もしくは両方を含み得る。データ１０５の情報を同期させたままで維持するために、送信装置１００はまた、データ１０５に同期される送信クロック１１０を第２の接続部を介して送信する。受信装置１２０は、送信クロック１１０を用いてデータをラッチする受信側の論理装置２００を含む。受信装置１２０はまた、位相同期ループ（ＰＬＬ）クロック１３０等のクロックソースを含み、これは、受信装置１２０に主要なクロックを提供する。ＰＬＬクロック１３０は、受信装置１２０および受信側の論理装置２００の内部論理にクロック信号を提供する。典型的には、ＰＬＬクロック１３０は、電力が受信装置１２０に与えられるときに連続的に動作する。以下でより詳細に説明されるように、受信側の論理装置２００は、クロックが論理の一部に対して停止することを可能にするクロックゲート回路を含み、したがって、受信装置１２０のノイズ発生および電力消費を減じる。１対の接続部を考察したが、送信装置１００と受信装置１２０との間にはより多くの接続部が存在してもよいことが注目される。１対の接続部のみが考察されるのは、説明をわかりやすくするためである。
【００１５】  図２を参照して、クロック開始および停止装置を含む受信側の論理装置の１つの実施例のブロック図である。わかりやすくするために、図１で示される回路構成要素に対応する回路構成要素には、同じ番号がつけられる。図２の受信側の論理装置２００は、データ入力１０５および送信クロック１１０からの入来データを受信するように結合されるデータバッファ２０５を含む。データバッファ２０５は、Ｎの占有ビットレジスタ２０６を含む。受信側の論理装置２００はまた、Ｎから１のデータ出力マルチプレクサ２１５に結合されるアンロードポインタ２２０を含む。シンクロナイザー２２５がデータバッファ２０５に結合される。シンクロナイザー２２５はまた、Ｎから１の占有ビットマルチプレクサ２３０に結合される。クロックゲート回路２５０が、Ｎから１の占有ビットマルチプレクサ２３０および有効ストローブフリップフロップ２４０に結合される。
【００１６】  典型的なクロックゲート回路は、イネーブル信号またはディセーブル信号によって論理ブロックに対してクロックソースをゲートするか、または停止するように構成される論理を含む。クロックゲート回路２５０は、コアクロック２４５を提供することによって新しいクロックドメインを生成し、これは、以下で説明されるように、受信側の論理装置２００内の論理によって用いられる。ＰＬＬクロック１３０が、ＡＮＤゲート２５３の一方の入力部に提供され、ゲート信号２５４が、ＡＮＤゲート２５３への他方の入力部に提供される。ＡＮＤゲート２５３の出力はコアクロック２４５である。ゲート信号２５４は、負エッジ、アンチグリッチフリップフロップ２５５を用いて生成される。アンチグリッチフリップフロップ２５５は、ＰＬＬクロック１３０を反転させるインバータ２５２のために、ＯＲゲート２５１の出力をＰＬＬクロック１３０の立下がりエッジ上でラッチする。アンチグリッチフリップフロップ２５５への入力をＰＬＬクロック１３０の立下がりエッジ上でラッチすることによって、入力データが安定することが保証される。なぜならば、他のすべての論理は立上がりエッジ上でクロックされるためであり、したがって、アンチグリッチフリップフロップ２５５の出力内でのグリッチを防ぐ。クロックゲート回路２５０は、２つの信号、コア使用中２６０信号またはコア実行２６１信号のいずれかによってゲートされる。いずれかの信号が論理１であるならば、コアクロック２４５は実行モードにある。そうでない場合には、コアクロック２４５は停止される。コア使用中２６０信号は、コアクロック２４５が動作していることを必要とする受信側の論理装置２００の内部のいずれかのソースから得られ得るが、さらには説明されない。コア実行２６１信号の生成は、以下でさらに説明される。
【００１７】  データバッファ２０５は、図２のデータ入力１０５を通して、図１の送信装置１００等の別の装置または回路からの入来データを受信する。データバッファ２０５は、受信されたデータを送信クロック１１０の立上がりエッジ上でラッチする。ロードポインタ２１０が、次の利用可能な場所を指し、データバッファ２０５内の場所を順次進む。データバッファ２０５は、データが先入れ先出し構成で記憶され得る一連の記憶場所から構成される。各記憶場所は、対応する占有ビットレジスタ２０６を含み、これは、設定時に、新しいデータが記憶場所に記憶されたことを示す。一旦ある特定の場所のデータがアクセスされると、対応する占有ビットレジスタ２０６はリセットされ、その場所が今、新しいデータにとって利用可能であることを示す。
【００１８】  データがデータバッファ２０５内の場所に記憶され、占有ビットレジスタ２０６が設定されると、シンクロナイザー２２５は、占有ビットレジスタ２０６内の値をラッチする。シンクロナイザー２２５は、各占有ビットレジスタに対して１対のフリップフロップから構成され得る。１対のフリップフロップを用いることにより、占有ビットレジスタ２０６内の値をラッチするにはＰＬＬクロック１３０の２クロックサイクルがかかる。シンクロナイザー２２５内の各フリップフロップ対の出力は、Ｎから１の占有ビットマルチプレクサへの１つの入力である。
【００１９】  アンロードポインタ２２０は、ロードポインタ２１０の開始場所と同じ場所にリセット時に初期設定される。アンロードポインタは、コアクロック２４５によってクロックされ、ロードポインタ２１０は、送信クロック１１０によってクロックされる。このクロック方式によって、独立したロード動作およびアンロード動作が可能となる。アンロードポインタ２２０は、データ出力マルチプレクサ２１５およびＮから１の占有ビットマルチプレクサ２３０上の選択線を制御し、したがって、データとその対応する占有ビットとの両方を同時に指す。アンロードポインタ２２０は、有効ストローブ２４１信号およびアクティブコアクロック２４５によって増分される。Ｎから１の占有ビットマルチプレクサ２３０を通され、かつ有効ストローブフリップフロップ２４０によってラッチされる設定された占有ビットは、有効ストローブ２４１を生成する。有効ストローブ２４１信号を用いて、アクセスされたデータ場所に対応するデータバッファ２０５内の占有ビットレジスタ２０６をリセットする。新しいデータを含むデータバッファ２０５内の各場所は、設定される対応の占有ビットレジスタを有する。Ｎから１の占有ビットマルチプレクサ２３０の出力は、コア実行２６１信号である。アクティブコア実行２６１信号によって、コアクロック２４５が動作することが可能となる。データバッファ２０５内に新しいデータが存在する限り、コアクロック２４５は動作する。コアクロック２４５はまた、コア使用中２６０信号によってイネーブルされると、動作し続け得る。送信クロック１１０は、すべてのデータがデータバッファ２０５に一旦記憶されると、停止し得る。しかし、データバッファ２０５は独立してデータを記憶およびアクセスできるため、データバッファ２０５内のすべてのデータがアクセスされるまで、コアクロック２４５は動作し続け、データはアクセスされ続ける。
【００２０】  ＰＬＬクロック１３０が少なくとも送信クロック１１０と同じ速さの周波数で動作していると仮定すると、送信クロックドメイン論理は、データバッファ２０５内に常に余裕があると仮定し得る。上述のように、２つのフリップフロップのシンクロナイザーを用いることは、占有ビットをラッチするためには２クロックサイクルがかかることを意味する。データバッファ２０５の出力切換時間がコアクロック２４５の周期よりもずっと少ないことも仮定すると、占有ビットがシンクロナイザー２２５の第２のフリップフロップの出力部にくるとすぐに、データはアクセスされ得る。したがって、データバッファ２０５がオーバフローしないことを保証するために、それは、占有ビットを同期させ、かつコアクロック２４５を開始するためにかかる時間量に到着し得るデータを記憶するのに十分な記憶場所を含まなければならない。
【００２１】  一旦上の開示が完全に理解されると、多くの変更例および変形例が当業者には明らかとなるであろう。前掲の請求項は、このようなすべての変更例および変形例を包含すると解釈されることが意図される。
【産業上の利用可能性】
【００２２】  この発明は、クロックフォワードサブシステムに適用可能である。
【図面の簡単な説明】
【図１】  クロックフォワードを採用する送信装置および受信装置の１つの実施例を示すブロック図である。
【図２Ａ】  クロック開始および停止装置を含む受信側の論理装置の１つの実施例を示すブロック図である。
【図２Ｂ】  クロック開始および停止装置を含む受信側の論理装置の１つの実施例を示す、図２Ａの続きのブロック図である。
【図１】
0005230887.tif 000002
【図２Ａ】
0005230887.tif 000003
【図２Ｂ】
0005230887.tif 000004