(57)【要約】ハンドシェーク抑制によりデータ転送帯域幅を制限するための装置（６２）は、第１のリセット信号を発生し、第１のリセット信号を発生してから所定数のクロック・サイクル後に第２のリセット信号を発生し、第１のリセット信号の受信と第２のリセット信号の間で第１のレディ・ツー・センド（ＲＴＳ：Ｒｅａｄｙ  Ｔｏ  Ｓｅｎｄ）ハンドシェーク信号および第１のレディ・ツー・レシーブ（ＲＴＲ：Ｒｅａｄｙ  Ｔｏ  Ｒｅｃｅｉｖｅ）ハンドシェーク信号を受け取った数を表すハンドシェーク・カウントを発生し、ハンドシェーク・カウントと最大値との比較に基づいて第２のＲＴＲハンドシェーク信号および第１のＲＴＳハンドシェーク信号を非作動化するように構成される。
2005506015.tif 000002
【特許請求の範囲】
【請求項１】
ハンドシェーク抑制によりデータ転送帯域幅を制限するための装置であって、
複数のクロック・サイクルを受け取るように構成され、更に、第１のリセット信号を発生するように構成され、更に、前記第１のリセット信号を発生してから所定数のクロック・サイクル後に第２のリセット信号を発生するように構成された第１の装置（１５０）と、
前記第１の装置（１５０）に結合されて前記第１の装置（１５０）から前記リセット信号を受け取る第２の装置（１００）であって、前記リセット信号を受け取るように構成され、更に、第１のレディ・ツー・センド（Ｒｅａｄｙ  Ｔｏ  Ｓｅｎｄ）（「ＲＴＳ」）ハンドシェーク信号および第１のレディ・ツー・レシーブ（Ｒｅａｄｙ  Ｔｏ  Ｒｅｃｅｉｖｅ）（「ＲＴＲ」）ハンドシェーク信号を受け取るように構成され、更に、前記第１のリセット信号の受信と前記第２のリセット信号の受信との間で前記第１のＲＴＳハンドシェーク信号および前記第１のＲＴＲハンドシェーク信号を受け取った数を表すハンドシェーク・カウントを発生するように構成された第２の装置（１００）と、
前記第２の装置（１００）に結合されて前記第２の装置（１００）から前記ハンドシェーク・カウントを受け取る第３の装置（２００）であって、前記ハンドシェーク・カウントと最大値との比較に基づいて非作動化信号を発生するように構成された第３の装置（２００）と、
前記第３の装置（２００）に結合されて前記第３の装置（２００）から前記非作動化信号を受け取る第４の装置（２５０）であって、前記非作動化信号に応答して、第２のＲＴＲハンドシェーク信号および前記第１のＲＴＳハンドシェーク信号を非作動化するように構成された第４の装置（２５０）とを備える装置。
【請求項２】
前記第３の装置（２００）が、前記最大値を制御するように構成されたコントローラ（２０４）を備える、請求項１に記載の装置。
【請求項３】
前記第１の装置（１５０）が第１のアンド・ゲート（１７０）および第１のカウンタ（１５４）を備え、前記第２の装置（１００）が第２のカウンタ（１２０）および第２のアンド・ゲート（１０４）を備え、前記第３の装置（２００）が比較器（２１２）およびＤ型フリップフロップ（２２８）を備え、前記第４の装置（２５０）が第３のアンド・ゲート（２５４）および第４のアンド・ゲート（２７０）を備える、請求項１に記載の装置。
【請求項４】
前記第２のカウンタ（１２０）が２進カウンタを含む、請求項３に記載の装置。
【請求項５】
前記第１の装置（１５０）が実質的に第１のアンド・ゲート（１７０）および第１の２進カウンタ（１５４）からなり、前記第２の装置（１００）が実質的に第２の２進カウンタ（１２０）および第２のアンド・ゲート（１０４）からなり、前記第３の装置（２００）が実質的にコントローラ（２０４）、比較器（２１２）、およびＤ型フリップフロップ（２２８）からなり、前記第４の装置（２５０）が実質的に第３のアンド・ゲート（２５４）および第４のアンド・ゲート（２７０）からなる、請求項３に記載の装置。
【請求項６】
ハンドシェーク抑制によりデータ転送帯域幅を制限する方法であって、
第１のクロック・サイクル数を計数するステップ（４４０）と、
第１のレディ・ツー・センド（「ＲＴＳ」）ハンドシェーク信号および第１のレディ・ツー・レシーブ（「ＲＴＲ」）ハンドシェーク信号の第１の発生数を計数するステップ（４８０）と、
前記第１のクロック・サイクル数、並びに前記第１のＲＴＳハンドシェーク信号および前記第１のＲＴＲハンドシェーク信号の前記第１の発生数に基づいて、第２のＲＴＳハンドシェーク信号および第２のＲＴＲハンドシェーク信号を抑制するステップ（５１０）とを含む方法。
【請求項７】
前記第１のクロック・サイクル数、並びに前記第１のＲＴＳハンドシェーク信号および前記第１のＲＴＲハンドシェーク信号の前記第１の発生数に基づいて、前記第２のＲＴＳハンドシェーク信号および前記第２のＲＴＲハンドシェーク信号を抑制する前記ステップ（５１０）が、前記第１のＲＴＳハンドシェーク信号および前記第１のＲＴＲハンドシェーク信号の前記第１の発生数を第１の最大値と比較すること（４９０）を含む、請求項６に記載の方法。
【請求項８】
第２のクロック・サイクル数を計数するステップ（４４０）と、
前記第１のＲＴＳハンドシェーク信号および前記第１のＲＴＲハンドシェーク信号の第２の発生数を計数するステップ（４８０）と、
前記第２のクロック・サイクル数、並びに前記第１のＲＴＳハンドシェーク信号および前記第１のＲＴＲハンドシェーク信号の第２の発生数に基づいて、前記第２のＲＴＳハンドシェーク信号および前記第２のＲＴＲハンドシェーク信号を抑制するステップ（５１０）とを更に含み、
前記第２のクロック・サイクル数、並びに前記第１のＲＴＳハンドシェーク信号および前記第１のＲＴＲハンドシェーク信号の前記第２の発生数に基づいて、前記第２のＲＴＳハンドシェーク信号および前記第２のＲＴＲハンドシェーク信号を抑制する前記ステップ（５１０）が、前記第１のＲＴＳハンドシェーク信号および前記第１のＲＴＲハンドシェーク信号の前記第２の発生数を第２の最大値と比較すること（４９０）を含む、請求項７に記載の方法。
【請求項９】
ハンドシェーク抑制によりデータ転送帯域幅を制限するための装置であって、
クロック・サイクル数を計数する第１の手段（１５０）と、
第１のレディ・ツー・センド（「ＲＴＳ」）ハンドシェーク信号および第１のレディ・ツー・レシーブ（「ＲＴＲ」）ハンドシェーク信号の発生数を計数する第２の手段（１００）と、
前記第１の手段（１５０）および前記第２の手段（１００）に結合されており、前記第１の手段（１５０）により計数された前記クロック・サイクル数が第１の値に達したとき前記第２の手段の計数をリセットする第３の手段（２００）と、
前記第２の手段（１００）に結合されており、前記第２の手段（１００）により計数された前記第１のＲＴＳハンドシェーク信号および前記第１のＲＴＲハンドシェーク信号の前記発生数が第２の値に達したとき、第２のＲＴＲハンドシェーク信号および前記第１のＲＴＳハンドシェーク信号を抑制する第４の手段（２５０）とを備える装置。
【請求項１０】
前記第４の手段（２５０）が、前記第２の値を受け取る手段を備える、請求項９に記載の装置。
【請求項１１】
前記第４の手段（２５０）に結合されており前記第２の値を制御する第５の手段を更に備える、請求項１０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ処理システムにおけるデータ転送に関する。
【背景技術】
【０００２】
本出願は、２００１年９月１９日に出願された「ハンドシェーク抑制を用いるプログラム可能な帯域幅リミッタ装置（ＰＲＯＧＲＡＭＭＡＢＬＥ  ＢＡＮＤＷＩＤＴＨ  ＬＩＭＩＴＥＲ  ＵＳＩＮＧ  ＨＡＮＤＳＨＡＫＥ  ＳＵＰＰＲＥＳＳＩＯＮ）」という名称の米国仮特許出願６０／３２３,２７２号の利益を主張するものである。
【０００３】
通常、統一メモリ・アーキテクチャ（Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ＵＭＡ）を利用するビデオ処理システムでは、システム・コストを最小限に抑えるために、多くのプロセスがメモリ資源を共有する。各プロセスは、メモリから入力データを受け取るための経路またはパイプラインを有し、且つ／或いは、様々なタスクを完了するように設計されたサブルーチン間またはブロック間で動作が進行するのに伴って、メモリを介して中間データを移動または転送するための経路またはパイプラインを有する。通常、ハンドシェーク（ｈａｎｄｓｈａｋｅ：システムを構成する要素間で信号の伝送に先立ってなされる制御情報の交換）信号がブロック間のデータ・フロー（流れ）を管理する。
【０００４】
図１（従来技術）は、例示的な従来の同期レディ・ツー・センド（ＲＴＳ：Ｒｅａｄｙ  Ｔｏ  Ｓｅｎｄ：送信準備完了）およびレディ・ツー・レシーブ（ＲＴＲ：Ｒｅａｄｙ  Ｔｏ  Ｒｅｃｅｉｖｅ：受信準備完了）（「ＲＴＳ／ＲＴＲ」）ハンドシェーク方式１０のブロック図である。従来の方式１０では、第１のハンドシェーク・チャネル１４が、アップストリーム・ブロック１８をダウンストリーム・ブロック２２に結合する。第１のハンドシェーク・チャネル１４は、レディ・ツー・センド（「ＲＴＳ」）ハンドシェーク信号を伝送するように構成され、このＲＴＳハンドシェーク信号は、アクティブ（ａｃｔｉｖｅ：作動状態）で、アップストリーム・ブロック１８がデータ・バス２６を介して少なくとも１ワードのデータをダウンストリーム・ブロック２２に送る準備ができていることを示す。一方、第２のハンドシェーク・チャネル３０が更に、アップストリーム・ブロック１８をダウンストリーム・ブロック２２に結合する。第２のハンドシェーク・チャネル３０は、レディ・ツー・レシーブ（「ＲＴＲ」）ハンドシェーク信号を伝送するように構成され、このＲＴＲハンドシェーク信号は、アクティブで、ダウンストリーム・ブロック２２がデータ・バス２６を介して少なくとも１ワードのデータをアップストリーム・ブロック１８から受け取る準備ができていることを示す。コントローラ（図示せず）がクロック・サイクル中に両方のハンドシェーク信号を検出したとき、ハンドシェークが発生したと見做される。ハンドシェークが発生した各クロック・サイクル中に、コントローラは、１ワードのデータがアップストリーム・ブロック１８からデータ・バス２６を介してダウンストリーム・ブロック２２に送られるようにする。
【０００５】
統一メモリ・アーキテクチャ（ＵＭＡ）を利用して、限られたメモリ資源帯域幅を様々なプロセス間で分配することは、問題となる場合がある。一般に、総システム帯域幅（主にメモリ装置のタイプにより決まる）は、すべてのプロセスの帯域幅の合計以上でなければならない。ただし、任意のプロセスのピーク帯域幅（データがバーストで転送される場合）が、優先度のより低い何れかのプロセスを「欠乏させる（ｓｔａｒｖｅ）」こと（即ち、優先度のより低いプロセスが耐えられるよりも多くの待ち時間（ｌａｔｅｎｃｙ）をデータ・バースト間で生じさせること）があってはならない。ＲＴＳ／ＲＴＲハンドシェークを採用する幾つかのシステムでは、データ・パイプラインを一杯にして他のプロセスを欠乏させる高ピーク帯域幅を有するプロセスがある可能性がある。
【０００６】
本発明は、この問題を解決することを対象とする。
【発明の開示】
【０００７】
（発明概要）
ハンドシェークを抑制することによりデータ転送帯域幅を制限するための装置は、第１の構成を備え、この第１の構成は、複数のクロック・サイクルを受け取るように構成され、更に、第１のリセット信号を発生するように構成され、更に、第１のリセット信号を発生してから所定数のクロック・サイクル後に第２のリセット信号を発生するように構成される。また、この装置は、第１の構成に結合され、第１の構成からリセット信号を受け取る第２の構成も備えている。第２の構成は、リセット信号を受け取るように構成され、更に、第１のレディ・ツー・センド（「ＲＴＳ」）ハンドシェーク信号および第１のレディ・ツー・レシーブ（「ＲＴＲ」）ハンドシェーク信号を受け取るように構成され、更に、第１のリセット信号の受信と第２のリセット信号の受信との間で第１のＲＴＳハンドシェーク信号と第１のＲＴＲハンドシェーク信号を同時に受け取った数を表すハンドシェーク・カウントを発生するように構成される。更に、この装置は、第２の構成に結合されて第２の構成からハンドシェーク・カウントを受け取る第３の構成も備えている。第３の構成は、ハンドシェーク・カウントと最大値との比較に基づいて非作動化信号を発生するように構成される。また、この装置は、第３の構成に結合されて第３の構成から非作動化信号を受け取る第４の構成も備えている。第４の構成は、非作動化信号に応答して、第２のＲＴＲハンドシェーク信号および第１のＲＴＳハンドシェーク信号を非作動化するように構成される。
【０００８】
ハンドシェーク抑制によりデータ転送帯域幅を制限する方法は、第１のクロック・サイクル数を計数すること、第１のＲＴＳハンドシェーク信号と第１のＲＴＲハンドシェーク信号との第１の同時発生数を計数すること、並びに、第１のクロック・サイクル数、および第１のＲＴＳハンドシェーク信号と第１のＲＴＲハンドシェーク信号との第１の同時発生数に基づいて、第２のＲＴＳハンドシェーク信号および第２のＲＴＲハンドシェーク信号を抑制することを含んでいる。
【０００９】
ハンドシェーク抑制によりデータ転送帯域幅を制限するための装置は、クロック・サイクル数を計数する第１の手段と、第１のＲＴＳハンドシェーク信号と第１のＲＴＲハンドシェーク信号との同時発生数を計数する第２の手段と、第１および第２の手段に結合されており、第１の手段により計数されたクロック・サイクル数が第１の値に達したとき、第２の手段の計数をリセットする第３の手段と、第２の手段に結合されており、第２の手段により計数された第１のＲＴＳハンドシェーク信号と第１のＲＴＲハンドシェーク信号との同時発生数が第２の値に達したとき、第２のＲＴＲハンドシェーク信号および第１のＲＴＳハンドシェーク信号を抑制する第４の手段とを備えている。
【発明を実施するための最良の形態】
【００１０】
本発明の特徴および利点は、一例として説明する以下の記述からより明らかになるであろう。
【００１１】
図２は、本発明による例示的な帯域幅制限ＲＴＳ／ＲＴＲハンドシェーク方式５０のブロック図である。ハンドシェーク方式５０では、第１のハンドシェーク・チャネル５４が、ハンドシェーク抑制を用いるプログラム可能な帯域幅リミッタ装置（回路）（「ＰＢＬＵＳ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｂａｎｄｗｉｄｔｈ  Ｌｉｍｉｔｅｒ  Ｕｓｉｎｇ  ｈａｎｄｓｈａｋｅ  Ｓｕｐｐｒｅｓｓｉｏｎ」）６２に、アップストリーム・ブロック５８を結合する。第１のハンドシェーク・チャネル５４は、アップストリーム・レディ・ツー・センド（「ＲＴＳ」）ハンドシェーク信号を伝送するように構成される。このアップストリームＲＴＳハンドシェーク信号は、アクティブ（ａｃｔｉｖｅ：作動状態）のとき、アップストリーム・ブロック５８がデータ・バス６６を介して少なくとも１ワードのデータをダウンストリーム・ブロック７０に送る準備ができていることを示す。第２のハンドシェーク・チャネル７４が、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２をダウンストリーム・ブロック７０に結合する。第２のハンドシェーク・チャネル７４は、ダウンストリームＲＴＳ信号を伝送するように構成される。プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は、後で更に詳細に述べるように、ダウンストリームＲＴＳ信号を使用して、アップストリーム・ブロック５８からダウンストリーム・ブロック７０へのデータ転送の帯域幅を制限する。一方、第３のハンドシェーク・チャネル７８が更に、ダウンストリーム・ブロック７０をプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２に結合する。第３のハンドシェーク・チャネル７８は、ダウンストリーム・レディ・ツー・レシーブ（「ＲＴＲ」）ハンドシェーク信号を伝送するように構成される。このダウンストリームＲＴＲハンドシェーク信号は、アクティブのとき、ダウンストリーム・ブロック７０がデータ・バス６６を介して少なくとも１ワードのデータをアップストリーム・ブロック５８から受け取る準備ができていることを示す。加えて、第４のハンドシェーク・チャネル８２が更に、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２をアップストリーム・ブロック５８に結合する。第４のハンドシェーク・チャネル８２は、アップストリームＲＴＲ信号を伝送するように構成される。プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は、後で更に詳細に述べるように、アップストリームＲＴＲ信号を使用して、アップストリーム・ブロック５８からダウンストリーム・ブロック７０へのデータ転送の帯域幅を制限する。
【００１２】
図３は、図２の例示的な、ハンドシェーク抑制を用いるプログラム可能な帯域幅リミッタ装置（「ＰＢＬＵＳ」）６２のブロック図である。この例示的な実施例では、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は、本明細書で述べる同期ディジタル論理回路により実現される。ただし、他の実施例では、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は、その他任意の適当なハードウェア、ソフトウェア、またはこれらの組合せにより実現することができることに留意されたい。説明を明確にするために、第１のハンドシェーク・チャネル５４、アップストリーム・ブロック５８、データ・バス６６、ダウンストリーム・ブロック７０、第２のハンドシェーク・チャネル７４、第３のハンドシェーク・チャネル７８、第４のハンドシェーク・チャネル８２（図２参照）を、図３にも再度示す。
【００１３】
プログラム可能な帯域幅リミッタ（ＰＢＬＵＳ）６２は、電子的構成（装置、回路）１００を備えている。構成１００は、アンド・ゲート１０４を備えている。アンド（ＡＮＤ）ゲート１０４は、第２のハンドシェーク・チャネル７４に結合された入力１０８と、第３のハンドシェーク・チャネル７８に結合された入力１１２を有する。アンド・ゲート１０４は出力１１６も有する。構成１００は更に、Ｎビット２進カウンタ（即ち、ｍｏｄ‐２Ｎカウンタ）１２０を備え、このカウンタ１２０は、Ｎ個の出力１２４でＮ個のカウント（計数）ビットを発生するように構成される。数Ｎについては後で更に述べる。更に、カウンタ１２０は、アンド・ゲート１０４の出力１１６に結合された作動化（ｅｎａｂｌｅ：イネーブル）入力１２８を備えている。また、カウンタ１２０は、クロック入力１３２およびリセット入力１３６も備えている。
【００１４】
更に、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は、電子的構成１５０を備えている。構成１５０は、Ｎビット２進カウンタ１５４を備え、このカウンタ１５４は、Ｎ個の出力１５８でＮ個のカウント・ビットを発生するように構成される。また、カウンタ１５４は、論理‘１’に結合された（即ち、動作中は常に作動化される）作動化（ｅｎａｂｌｅ：イネーブル）入力１６２も備え、更に、クロック入力１６６も備えている。更に、構成１５０は、Ｎ個の入力１７４を有するアンド・ゲート１７０を備え、入力１７４はそれぞれ、カウンタ１５４の出力１５８の１つに結合されている。また、アンド・ゲート１７０は、カウンタ１２０のリセット入力１３６に結合された出力１７８も備えている。
【００１５】
更に、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ６２）は、電子的構成２００を備えている。構成２００は、Ｎ個の出力２０８を有するコントローラ２０４を備えている。コントローラ２０４は、出力２０８を変更または制御して、最大値（「ＰＲＯＧカウント（ＰＲＯＧ  ＣＯＵＮＴ））を示す２進数をこれらの出力上に発生するように構成される。これについては後で更に述べる。更に、構成２００はディジタル比較器２１２を備え、このディジタル比較器２１２は、Ｎ個の入力の第１セット２１６と、Ｎ個の入力の第２セット２２０と、出力２２４とを有する。第１の入力セット２１６は、コントローラ２０４の出力２０８に結合され、第２の入力セット２２０は、カウンタ１２０の出力１２４に結合されている。比較器２１２は、Ｎ個の入力の第１セット２１６で受け取った第１の２進数がＮ個の入力の第２セット２２０で受け取った第２の２進数よりも大きいときは論理‘１’を出力２２４で発生し、そうでないときは論理‘０’を出力２２４で発生するように構成される。構成２００は、Ｄ型フリップフロップ２２８も備え、このＤ型フリップフロップ２２８は、比較器２１２の出力２２４に結合されたＤ（Ｄａｔａ：データ）入力２３２を有する。更に、Ｄ型フリップフロップ２２８は、クロック（ｃｌｏｃｋ）入力２３６およびＱ出力２４０も備えている。
【００１６】
更に、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は、電子的構成２５０を備えている。構成２５０は、アンド・ゲート２５４を備えている。アンド・ゲート２５４は、Ｄ型フリップフロップ２２８のＱ出力２４０に結合された入力２５８と、第３のハンドシェーク・チャネル７８に結合された（従って、アンド・ゲート１０４の入力１１２にも結合された）入力２６２と、第４のハンドシェーク・チャネル８２に結合された出力２６６を有する。更に、構成２５０は、アンド・ゲート２７０を備えている。アンド・ゲート２７０は、第１のハンドシェーク・チャネル５４に結合された入力２７４と、アンド・ゲート２５４の入力２５８に結合された（従って、Ｄ型フリップフロップ２２８のＱ出力２４０にも結合された）入力２７８と、第２のハンドシェーク・チャネル７４に結合された出力２８２を有する。
【００１７】
システム・クロック３００は、クロック信号（「クロック（ｃｌｏｃｋ）」）を出力３０４で発生する。出力３０４は、クロック入力１３２、クロック入力１６６、およびクロック入力２３６に結合されている。この例示的な実施例では、カウンタ１２０、カウンタ１５４、アンド・ゲート１７０、および比較器２１２はそれぞれ、前述のビット数および／または入力ライン数および／または出力ライン数Ｎで実現され、それぞれ４に等しい。Ｎは、後で更に述べるように、帯域幅制限期間および所望の分解能を定める。他の実施例では、その他任意の適当なＮでプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２を構成して、異なる帯域幅制限期間、および、より大きいまたは小さい分解能を達成することもできる。
【００１８】
図４は、図３のプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２の例示的な動作の流れ図である。システム・クロック３００からのクロック信号がプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２の様々な構成要素を同期させながら駆動するとき、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は、クロックの各サイクルまたはパルスごとに、以下に述べる様々な動作の反復の１つを実行する。従って、図４の流れ図は、クロック・サイクルからクロック・サイクルへの動作の性質の一例にすぎず、各クロック・サイクル中の動作の特定のシーケンスまたは順序を意味するものではないことを理解されたい。
【００１９】
ステップ４００で、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２（図３参照）は適切な初期化動作（ｉｎｉｔｉａｌｉｚａｔｉｏｎ  ｏｐｅｒａｔｉｏｎ）を実行する。この例示的な実施例では、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は、電源投入時にこれらの動作を実行する。ただし、他の実施例では、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は、外部装置からのリセット信号に応答してステップ４００を実行することもできることを理解されたい。ステップ４００の動作は、出力１２４（即ち、ハンドシェーク・カウント（ｃｏｕｎｔ：計数値））および出力１５８（即ち、サイクル・カウント（計数値））を周知の方式で論理‘０’にし、出力２４０（即ち、イネーブル／ディセーブル）を周知の方式で論理‘１’にし、コントローラ２０８が初期ＰＲＯＧカウント（０よりも大きい）を比較器２１２の入力２１６に送ることを含んでいる。ステップ４００の動作の後、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は自動的にステップ４１０に進む。
【００２０】
ステップ４１０で、Ｄ型フリップフロップ２２８は、その出力２４０の論理‘１’を、アンド・ゲート２５４の入力２５８およびアンド・ゲート２７０の入力２７８に送る。その場合、ステップ４１０の動作により、アップストリームＲＴＳの状態をアップストリーム・ブロック５８からアンド・ゲート２７０を介してダウンストリームＲＴＳに（従って、ダウンストリーム・ブロック７０に）渡すことができ、ダウンストリームＲＴＲの状態をダウンストリーム・ブロック７０からアンド・ゲート２５４を介してアップストリームＲＴＲに（従って、アップストリーム・ブロック５８に）渡すことができることを理解されたい。言い換えれば、ステップ４１０の動作は、アップストリーム・ブロック５８とダウンストリーム・ブロック７０との間のＲＴＳ／ＲＴＲハンドシェーク機能を作動化する。ステップ４１０の動作の後、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は自動的にステップ４２０に進む。
【００２１】
ステップ４２０で、コントローラ２０４は、ＰＲＯＧカウントを変更または制御する。ＰＲＯＧカウント（計数値）は、帯域幅制限期間の間にアップストリーム・ブロック５８とダウンストリーム・ブロック７０との間でプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２により許容されるＲＴＳ／ＲＴＲハンドシェークの最大数を表す。本明細書では、「帯域幅制限期間（ｂａｎｄｗｉｄｔｈ  ｌｉｍｉｔｉｎｇ  ｉｎｔｅｒｖａｌ）」という用語は、システム・クロック３００から発生されるクロック信号の２Ｎサイクルで定められる期間を意味し、Ｎは、カウンタ１５４のビットまたは出力ライン１５８の数である（これはカウンタ１２０のビットまたは出力ライン１２４の数と等しく、コントローラ２０４のビットまたは出力ライン２０８の数と等しく、従ってＰＲＯＧカウント信号のビット数とも等しい）。従って、この例示的な実施例（Ｎ＝４）では、１６個のクロック・サイクルの帯域幅制限期間がもたらされる。帯域幅制限期間内でアップストリーム・ブロック５８とダウンストリーム・ブロック７０との間のＲＴＳ／ＲＴＲハンドシェークの数を制限することにより、ブロック間のデータ転送帯域幅が実質的に制限されることを理解されたい。コントローラ２０４は、競合するプロセスをモニターし、ＰＲＯＧカウントを制御して、優先度のより低いプロセスの欠乏を最小限に抑えながら高スループットとなるようにデータ転送帯域幅を最適化する。これにより、様々な動作モード中にデータ・バス６６の抑制が過度に大きくまたは小さくなる場合を減少させる。ＰＲＯＧカウントを介して、コントローラ２０４は、各モードの必要に合う所望の帯域幅を指示する。この例示的な実施例では、１／２ＮのＰＲＯＧカウント分解能がもたらされることを理解されたい（Ｎが４に等しいときは６．２５％の分解能になる）。ステップ４２０の動作の後、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は自動的にステップ４３０に進む。
【００２２】
ステップ４３０で、カウンタ１２０、カウンタ１５４、およびＤ型フリップフロップ２２８は、システム・クロック３００から同期クロック信号パルスを受け取る。ステップ４３０の動作の後、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は自動的にステップ４４０に進む。
【００２３】
ステップ４４０で、カウンタ１５４は、クロック・パルスに応答して、出力１５８のサイクル・カウントを増分する。カウンタ１５４は、その最大値から増分するとき「ロールオーバー（ｒｏｌｌ  ｏｖｅｒ：巡回）」することに留意されたい。即ち、カウンタ１５４がクロック・パルスを受け取る直前に出力１５８のそれぞれが論理‘１’であったとき、カウンタ１５４は、クロック・パルスを受け取ると、出力１５８のそれぞれが論理‘０’に変化するようにする。ステップ４４０の動作の後、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は自動的にステップ４５０に進む。
【００２４】
ステップ４５０で、アンド・ゲート１７０は、カウンタ１５４がその最高値に達したかどうかを判断することにより（即ち、入力１７４のそれぞれが論理‘１’を受け取ったかどうかを判断することにより）、現在の帯域幅制限期間が終了したかどうかを判断する。終了した場合は、アンド・ゲート１７０は出力１７８で論理‘１’を発生し、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は自動的にステップ４６０に進む。そうでない場合は、アンド・ゲート１７０は出力１７８で論理‘０’を維持し、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は自動的にステップ４７０に進む。
【００２５】
ステップ４６０で、カウンタ１２０は、入力１３６でアンド・ゲート１７０から論理‘１’を受け取り（上に述べたステップ４５０参照）、カウンタ１２０はそれに応答してリセットする。これにより、各帯域幅制限期間の終了時にハンドシェーク・カウントが実質的にリセットされ、従ってカウンタ１２０は各帯域幅制限期間ごとに新たにハンドシェークを計数（カウント）することを理解されたい（以下に述べるステップ４７０および４８０も参照されたい）。ステップ４６０の動作の後、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は自動的にステップ４１０に戻る。
【００２６】
ステップ４７０で、アンド・ゲート１０４は、入力１０８と入力１１２のそれぞれに論理‘１’があるかどうかを判断することにより、アップストリーム・ブロック５８とダウンストリーム・ブロック７０がＲＴＳ／ＲＴＲハンドシェークを行ったかどうかを検出する。行った場合は、アンド・ゲート１０４は出力１１６で論理‘１’を発生し、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は自動的にステップ４８０に進む。そうでない場合は、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２はステップ４３０に戻る。
【００２７】
ステップ４８０で、カウンタ１２０は、入力１２８でアンド・ゲート１０４から論理‘１’を受け取る。この場合も、アンド・ゲート１０４からの論理‘１’は、ＲＴＳ／ＲＴＲハンドシェークが発生したこと（即ち、ＲＴＳ信号および対応するＲＴＲ信号がアップストリーム・ブロック５８とダウンストリーム・ブロック７０との間で送られたこと）を示す。これにより、カウンタ１２０が作動化され、従ってカウンタ１２０は、クロック・パルスに応答して、出力１２４のハンドシェーク・カウントを増分する。カウンタ１２０は、その最大値から増分するとき「ロールオーバー（巡回）」することに留意されたい。即ち、カウンタ１２０がクロック・パルスを受け取る直前に出力１２４のそれぞれが論理‘１’であったとき、カウンタ１２０は、クロック・パルスを受け取ると、出力１２４のそれぞれが論理‘０’に変化するようにする。ステップ４８０の動作の後、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は自動的にステップ４９０に進む。
【００２８】
ステップ４９０で、比較器２１２は、入力２１６のＰＲＯＧカウントが入力２２０のハンドシェーク・カウントよりも大きいかどうかを判断し、それに従って出力２２４でリミット信号を発生する。ＰＲＯＧカウントがもはやハンドシェーク・カウントよりも大きくないときは、現在の帯域幅制限期間の間に許容されるＲＴＳ／ＲＴＲハンドシェークの最大数に達していることを理解されたい。ＰＲＯＧカウントがハンドシェーク・カウントよりも大きい場合は、比較器２１２はリミット信号を論理‘１’に維持し、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２はステップ４３０に戻る。そうでない場合は、比較器２１２はリミット信号を論理‘０’にし、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２はステップ５００に進む。
【００２９】
ステップ５００で、Ｄ型フリップフロップ２２８は、入力２３２で比較器２１２から論理‘０’を受け取り（上に述べたステップ４９０参照）、それに従って出力２４０でイネーブル（ｅｎａｂｌｅ：作動化）／ディセーブル（ｄｉｓａｂｌｅ：非作動化）信号を発生する。イネーブル／ディセーブル信号がすでに論理‘０’である場合は、アップストリーム・ブロック５８とダウンストリーム・ブロック７０との間のＲＴＳ／ＲＴＲハンドシェークはすでに非作動化されている。なぜならば、アンド・ゲート２５４およびアンド・ゲート２７０がそれぞれすでに入力２５８および入力２７８で論理‘０’を受け取っているからである（これにより、ダウンストリームＲＴＳおよびアップストリームＲＴＲは、アップストリームＲＴＳおよびダウンストリームＲＴＲの状態に関わらずそれぞれ論理‘０’になる）。そしてプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２はステップ４３０に戻る。そうでない場合は、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２はステップ５１０に進み、Ｄ型フリップフロップ２２８の出力２４０は、イネーブル／ディセーブルを論理‘１’から論理‘０’に変更する。このため、アンド・ゲート２５４およびアンド・ゲート２７０がダウンストリームＲＴＳおよびアップストリームＲＴＲを、アップストリームＲＴＳおよびダウンストリームＲＴＲの状態に関わらずそれぞれ論理‘０’にするようにすることにより、アップストリーム・ブロック５８とダウンストリーム・ブロック７０との間のＲＴＳ／ＲＴＲハンドシェークは非作動化される。ステップ５１０の動作の後、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２はステップ４３０に戻る。
【００３０】
このように、動作時にプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は、ダウンストリームＲＴＳハンドシェーク信号およびアップストリームＲＴＲ信号を自動的に作動化および非作動化し、それによりブロック間のデータ・フローを抑制することにより、アップストリーム・ブロック５８とダウンストリーム・ブロック７０との間のデータ転送レート（従って、帯域幅）を制限することを理解されたい。いつハンドシェーク信号を非作動化するかを判断するために、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２は、現在期間の間に完了したＲＴＳ／ＲＴＲハンドシェークの数を計数し、これを制御可能な最大値と比較する。最大値に達したときは、現在期間の残りについてダウンストリームＲＴＳおよびアップストリームＲＴＲを非作動化し、次いで、新しい期間の最初に再作動化する。
【００３１】
表１〜表５に、図３のプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２について、第１の仮想の帯域幅制限サイクル、第２の仮想の帯域幅制限サイクル、第３の仮想の帯域幅制限サイクル、第４の仮想の帯域幅制限サイクル、第５の仮想の帯域幅制限サイクルの場合の信号状態をそれぞれリストする。各表の第１列には、連続的なクロック・サイクルの番号が振ってある（１０進数）。クロック・サイクル０番は、電源投入時の初期化に対応する。クロック・サイクル１番〜１６番は、第１の仮想の帯域幅制限サイクルに対応し、クロック・サイクル１７番〜３２番は、第２の仮想の帯域幅制限サイクルに対応し、クロック・サイクル３３番〜４８番は、第３の仮想の帯域幅制限サイクルに対応し、クロック・サイクル４９番〜６４番は、第４の仮想の帯域幅制限サイクルに対応し、クロック・サイクル６５番〜８０番は、第５の仮想の帯域幅制限サイクルに対応する。列「ＰＲＯＧカウント」、「Ｓ１」、「Ｓ２」、「Ｓ３」、「Ｓ４」、「Ｓ５」、「Ｑ１」、「Ｑ２」、「ＲＳＴ」、「Ｑ３」、「Ｑ４」にはそれぞれ、各クロック・サイクルでの、ＰＲＯＧカウント（１６進数）、アップストリームＲＴＳ（２進数）、ダウンストリームＲＴＳ（２進数）、ダウンストリームＲＴＲ（２進数）、アップストリームＲＴＲ（２進数）、出力１１６（２進数）、出力１２４（１６進数）、出力１５８（１６進数）、入力１３６（２進数）、出力２２４（２進数）、出力２４０（２進数）の例示的な状態をリストする（上に述べた図３を参照されたい）。コントローラ２０４は、上に述べたようにＰＲＯＧカウントを時々制御する。Ｑ４が１のときは、アップストリーム・ブロック５８とダウンストリーム・ブロック７０との間のＲＴＳ／ＲＴＲハンドシェークは作動化され、Ｑ４が０のときは、アップストリーム・ブロック５８とダウンストリーム・ブロック７０との間のＲＴＳ／ＲＴＲハンドシェークは非作動化される。Ｓ１（アップストリームＲＴＳ）およびＳ３（ダウンストリームＲＴＲ）について示す状態は、それぞれアップストリーム・ブロック５８およびダウンストリーム・ブロック７０により設定された（且つプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２により制御されない）仮想の状態にすぎないことを理解されたい。更に、表１〜表５の仮想の帯域幅制限サイクルは単なる一例であり、プログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２には他の多くの動作手順が可能であることも理解されたい。
【００３２】
本発明を好ましい実施例に関して述べたが、特許請求の範囲により定める本発明の趣旨および範囲を逸脱すること無く、様々な変更をこの実施例に加えることができることは明らかである。
【図面の簡単な説明】
【００３３】
【図１】例示的な従来の同期レディ・ツー・センドおよびレディ・ツー・レシーブ（「ＲＴＳ／ＲＴＲ」）ハンドシェーク方式のブロック図である。
【図２】本発明による例示的な帯域幅制限ＲＴＳ／ＲＴＲハンドシェーク方式のブロック図である。
【図３】図２の例示的な、ハンドシェーク抑制を用いるプログラム可能な帯域幅リミッタ装置（「ＰＢＬＵＳ」）のブロック図である。
【図４】図３のプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）の例示的な動作の流れ図である。
【図５】図３のプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２について、第１の仮想の帯域幅制限サイクルの場合の信号状態をリストした表である。
【図６】図３のプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２について、第２の仮想の帯域幅制限サイクルの場合の信号状態をリストした表である。
【図７】図３のプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２について、第３の仮想の帯域幅制限サイクルの場合の信号状態をそれぞれリストした表である。
【図８】図３のプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２について、第４の仮想の帯域幅制限サイクルの場合の信号状態をリストした表である。
【図９】図３のプログラム可能な帯域幅リミッタ装置（ＰＢＬＵＳ）６２について、第５の仮想の帯域幅制限サイクルの場合の信号状態をリストした表である。
【図１】
2005506015.tif 000003
【図２】
2005506015.tif 000004
【図３】
2005506015.tif 000005
【図４】
2005506015.tif 000006
【図５】
2005506015.tif 000007
【図６】
2005506015.tif 000008
【図７】
2005506015.tif 000009
【図８】
2005506015.tif 000010
【図９】
2005506015.tif 000011
【国際公開パンフレット】
2005506015.tif 000012
2005506015.tif 000013
2005506015.tif 000014
2005506015.tif 000015
2005506015.tif 000016
2005506015.tif 000017
2005506015.tif 000018
2005506015.tif 000019
2005506015.tif 000020
2005506015.tif 000021
2005506015.tif 000022
2005506015.tif 000023
2005506015.tif 000024
2005506015.tif 000025
2005506015.tif 000026
2005506015.tif 000027
2005506015.tif 000028
2005506015.tif 000029
2005506015.tif 000030
2005506015.tif 000031
2005506015.tif 000032
2005506015.tif 000033
2005506015.tif 000034
2005506015.tif 000035
【国際調査報告】
2005506015.tif 000036
2005506015.tif 000037
2005506015.tif 000038
2005506015.tif 000039