(57)【特許請求の範囲】
【請求項１】
クロック信号の第１の部分中に、第２のバス（Ａ）が利用可能か否かに基づいて、リクエストを発した第１のエージェントに対して第１のバス（Ｓ）へのアクセスを許可するよう構成された第１のアービタ（Ｓ４４）と、
クロック信号の第２の部分中に、第２のバスが利用可能か否かに基づいて、リクエストを発した第２のエージェントに対して第２のバス（Ａ）へのアクセスを許可するよう構成された第２のアービタ（Ａ４６）とを含み、リクエストを発する第１のエージェントは、第１および第２のバスへの同時アクセスを要求する、調停システム（１０）。
【請求項２】
第１のアービタは、第１のバスと第２のバスとが同時に利用可能か否かを示す第１のバスフリー信号（Ｓ  ＦＲＥＥ）を、第２のアービタに送信するよう構成される、請求項１に記載の調停システム。
【請求項３】
第２のアービタは、第２のバスが利用可能か否かを示す第２のバスフリー信号（Ａ  ＦＲＥＥ）を第１のアービタに送信するよう構成される、請求項２に記載の調停システム。
【請求項４】
第１のアービタは、第１のバスおよび第２のバスの双方がフリーであるときに限り、リクエストを発した第１のエージェントに対して第１のバスへの前記アクセスを許可するよう構成され、リクエストを発した第１のエージェントは、第１のバスへの前記アクセスが許可されたことに応答して、前記第１のバスおよび前記第２のバス上でデータを転送する、請求項２に記載の調停システム。
【請求項５】
第２のアービタは、前記第１のバスフリー信号に基づいて、リクエストを発した第２のエージェントに対して第２のバスへの前記アクセスを許可するよう構成され、リクエストを発した第２のエージェントは、第２のバスへの前記アクセスが許可されたことに応答して、前記第２のバス上でデータを転送する、請求項２に記載の調停システム。
【発明の詳細な説明】
【０００１】
【技術分野】
この発明は、調停に関し、より特定的には、ネットワークインタフェースと、ネットワークインタフェースにデータを送りかつそれからデータを受取るホストコンピュータとの間の、バスの競合問題を避けるためのバス調停に関する。
【０００２】
ここに開示する実施例は、ネットワーク接続されたコンピュータおよびネットワーク制御システム内の、インタフェースデバイスおよびバス調停コントローラに適用が可能である。
【０００３】
【背景技術】
現代のコンピュータシステムはしばしば、コントローラ、プロセッサ、メモリおよび周辺装置を含む。データはしばしば、これらのコンポーネントを接続するバス上を伝送されねばならない。このようなシステムの一例がローカルエリアネットワークであり、これは多数のネットワークステーションを含む。ネットワークステーションは典型的に、ＰＣＩ（peripheral cmponent interconnect）インタフェースを介してホストプロセッサとデータを送受信する、媒体アクセス制御（ＭＡＣ）層ネットワークインタフェースを含む。
【０００４】
ネットワークインタフェースには、ＰＣＩインタフェースとＭＡＣ送信および受信ＦＩＦＯとの間でデータをバッファするための拡張バスインタフェースを含むものがある。具体的には、このインタフェースは、付加的な送信および受信データを記憶するための共有外部メモリにアクセスするのに使用され得る。しかし、送信データまたは受信データの記憶または検索のために拡張バスインタフェースにアクセスする試みは、独立して発生すると考えられる。したがって、同時に同じ資源にアクセスが試みられることで、バスの競合問題またはバスのデッドロック問題が生じる。なぜなら、それら２つの独立した動作が、同じバスを介して同じ資源へのアクセスを試みるためである。
【０００５】
【発明の概要】
同じ資源へのリクエストが同時に起こる際に、共有資源に対するリクエストを調停する構成が必要とされる。
【０００６】
リクエストのうちいくつかが２つ以上の資源へのアクセスを要求する際の、共有資源へのリクエストを調停する構成もまた必要とされる。
【０００７】
これらおよび他の必要は、本発明によって達成される。すなわち、本発明では、第１および第２のアービタが、クロック信号のそれぞれ排他的な部分の間に、第１のバスまたは第２のバスへのアクセス要求を許可する。
【０００８】
この発明の一局面に従えば、バスへのアクセス要求を調停するためのシステムは、第１および第２のアービタを含む。第１のアービタは、クロック信号の第１の部分の間に、第２のバスが利用可能かどうかに基づいて、第１のバスへのアクセスをリクエストを発した第１のエージェントに許可する。リクエストを発した第１のエージェントが、第１および第２のバスへのアクセスを要求する場合、第２のアービタは、クロック信号の第２の部分の間に、第２のバスが利用可能かどうかに基づいて、リクエストを発した第２のエージェントに対して第２のバスへのアクセスを許可する。クロック信号のそれぞれの部分の間に第１および第２のアービタがアクセスを許可するので、それらのアービタが、共有資源へのアクセスを許可しようとする際に、デッドロックまたは競合状態に陥ることはなくなる。さらに、クロック信号の異なる部分を使用するので、最小限の論理で確実な調停が保証される。
【０００９】
この発明の別の局面によれば、データコントローラ内において、第１および第２のバスのうち少なくとも一方のバスへのアクセスを調停するための方法が提供される。この方法は、クロック信号を少なくとも２つの排他的部分に分割するステップと、第１のバスが利用可能かどうかと、第１および第２のバスが同時に利用可能かどうかとをそれぞれ示す、第１および第２の信号を生成するステップと、クロック信号の第１の排他的部分の間に第２の信号に基づいて、第１のバスへのアクセスを要求する動作にアクセスを許可するステップとを含む。第２のバスへのアクセスは、クロック信号の第２の排他的部分の間に、第２のバスが利用可能かどうかおよび第１の信号に基づいて、第１および第２のバスへのアクセスを要求する第２の動作に対して許可される。クロック信号の排他的部分を使用することで、データコントローラは、多数のリクエストを同時に受取った場合にも、１または複数のバスへのアクセスを要求することが考えられる特定の動作のために、選択的にアクセスを許可することができるようになる。
【００１０】
この発明の他の目的および利点は、以下の詳細な説明から、当業者には容易に明らかとなろう。示されかつ説明される実施例は、この発明を実行するために考えられるベストモードを示すものである。この発明は、種々の明らかな点で修正を加えることが可能であり、それらはすべてこの発明から離れることはない。したがって、図面および説明は、例示のためのものであって、限定的なものではないと見なされるべきである。
【００１１】
【図示された実施例の詳細な説明】
図１は、ネットワークステーション内の、この発明の調停方法を使用するシステムの一例を示すブロック図である。しかし、この発明が資源の調停を必要とする他のいかなるシステムにも適用可能であることは明らかであろう。
【００１２】
図１は、データコントローラ１０を含む。データコントローラ１０は、ネットワークステーション内の、ネットワークインタフェースとホストコントローラとの間のデータ転送を制御する。このシステムは、ＰＣＩ（peripheral component interconnect ）インタフェース１２を含み、これは、「Ａバス」と称される第１のデータバスを介する、ＰＣＩバスとデータコントローラ１０との間の通信をサポートする。媒体アクセス制御（ＭＡＣ）ネットワークインタフェース１６は、「Ｍバス」と称される第２のデータバスを介して、データコントローラ１０間でデータを転送する。ＭＡＣネットワークインタフェース１６は、イーサネット（ＩＥＥＥ８０２．３）ネットワーク等のネットワーク上に、データコントローラ１０から供給されるデータを搬送するデータパケットを出力する。このシステムはまた、好ましくはスタチックＲＡＭ（ＳＲＡＭ）として実現される外部メモリ１４を含み、これは、「Ｓバス」と称されるデータバスを介してデータコントローラ１０間でデータを転送する。外部メモリ１４は、ホストコントローラと、接続されるワークステーションとの間で、ネットワークを介して転送されるデータを一時的に記憶して、ＰＣＩインタフェース１２およびＭＡＣ１６内の内部バッファを補う。
【００１３】
図２は、データコントローラ１０によって実行される４つのエージェントを示すデータ流れ図である。これらエージェントは、送信直接メモリアクセス（ＴｘＤＭＡ）エージェント２６、受信直接メモリアクセス（Ｒｘ  ＤＭＡ）エージェント２８、送信ＭＡＣ（Ｔｘ  ＭＡＣ）エージェント３０および受信ＭＡＣ（Ｒｘ  ＭＡＣ）エージェント３２を含む。これらエージェントはたとえば、論理状態マシンとして実現され得る。エージェント２６および３０は、ＳＲＡＭ１４を介するＰＣＩインタフェース１２からＭＡＣ１６へのデータの転送（すなわち、データ流れ）を（すなわち、送信データ経路を）制御し、エージェント２８および３２は、ＭＡＣ１６からＰＣＩインタフェース１２へのデータの転送（すなわち、受信経路）を制御する。したがって、送信データ経路と受信データ経路とは、ＳＲＡＭ１４を共有する。上述のように、データコントローラ１０は、ＳＲＡＭ１４にアクセスするよう競合する４つのエージェントのための機構を提供する。
【００１４】
送信ＤＭＡエージェント２６は、ＰＣＩインタフェース１２からＳＲＡＭ１４にフレームを移動させるための動作のすべてを調整する。これらの動作は、ディスクリプタの読出し、ＰＣＩバスからＳＲＡＭ１４へのデータ転送、状態の書込み、および、上記ＤＭＡの動作に必要とされるすべての初期化を含む。
【００１５】
Ｔｘ  ＤＭＡエージェント２６は、ＡバスおよびＳバスを介して、ＰＣＩインタフェース入力ＦＩＦＯ１８からＳＲＡＭ１４へとフレームを移動させる。ＳＲＡＭ１４において完全な送信フレームが受信されると、Ｔｘ  ＭＡＣエージェント３０がデータをＳバスを介してＭＡＣ送信ＦＩＦＯ２２に移動させる。具体的には、送信ＭＡＣエージェント３０がＭＡＣ送信ＦＩＦＯ２２の準備が整った状態を検出すると、送信ＭＡＣエージェント３０がＳＲＡＭ１４内の完全な送信フレームをチェックして、アービタに対してリクエスト信号をアサートする。これを下に説明する。これに代えて、送信ＭＡＣエージェント３０は、送信ＦＩＦＯ記憶容量が所定のしきい値に達したかどうかをチェックしてもよい。アービタから許可信号を受取った後に、送信ＭＡＣエージェント３０は低レベルモジュールを呼出して、ＭＡＣ送信ＦＩＦＯ２２への最高８ワードまでのデータ転送を行なう。
【００１６】
受信ＭＡＣエージェント３２は、Ｓバスを介して、ＭＡＣ受信ＦＩＦＯ２４からＳＲＡＭ１４にフレームを移動させる。ＳＲＡＭ１４は、受信オーバフローを引き起こすことなく最高６４フレームを保持するよう構成された、待ち行列機構を含む。６４×３２ビット長のキューは、ＭＡＣ１６から受け取られた各ノーマルフレームのためのフレーム長および受信状態情報を保持する。
【００１７】
受信ＭＡＣエージェント３２は、最初に、受信フレームの廃棄および受信ＦＩＦＯのフラッシュを引き起こすおそれのある例外的な条件が存在するかどうかをチェックする。もしそのような状態が存在すれば、受信ＭＡＣエージェント３２はＳＲＡＭ１４をフラッシュする。データが受信ＦＩＦＯ２４から入手可能である場合、受信ＭＡＣエージェント３２はアービタにリクエストを送って許可を待つ。受信ＭＡＣエージェント３２はその後、低レベルモジュールを呼出して、ＭＡＣ受信ＦＩＦＯ２４からＳＲＡＭ１４への最高８ワードの転送を行なう。
【００１８】
受信ＤＭＡエージェント２８は、ＳＲＡＭ１４からＰＣＩバスにフレームを移動させるためのすべての動作を調整する。これらの動作は、ディスクリプタの読出し、ＳＲＡＭ１４からＰＣＩバスへのデータ転送、状態の書込み、および、上記ＤＭＡ動作に必要なすべての初期化を含む。
【００１９】
すべてのＤＭＡ動作は、対応するＤＭＡエージェント２６または２８による、以下のステップの実行を伴う：
−  アービタ（図示せず）にリクエスト信号を送り、そのアービタからの許可信号を待つステップ、
−  ディスクリプタ読出しの場合には、低レベルモジュールを呼出して、ディスクリプタをＰＣＩバスから内部ディスクリプタ保持レジスタに移動させるステップ、
−  データ読出しの場合には、低レベルモジュールを呼出して、ＰＣＩバスからＳＲＡＭ１４へと８ワードを移動させるステップ、
−  データ書込みの場合には、低レベルモジュールを呼出して、ＳＲＡＭ１４からＰＣＩバスへと８ワードを移動させるステップ、
−  状態書込みの場合には、低レベルモジュールを呼出して、内部状態保持レジスタからＰＣＩバスへと状態を移動させるステップ、および、
−  アービタへのリクエスト信号をデアサートするステップ、である。
【００２０】
ディスクリプタコントローラは、データコントローラ１０内に含まれる。ディスクリプタコントローラの動作は、受信状態書込み（Ｒｘ  Ｓｔａｔ  Ｗｒ）、送信状態書込み（Ｔｘ  Ｓｔａｔ  Ｗｒ）、受信ディスクリプタ読出し（ＲｘＤｅｓｃ  Ｒｄ）および送信ディスクリプタ読出し（Ｔｘ  Ｄｅｓｃ  Ｒｄ）を含む。スレーブコントローラもまたデータコントローラ１０に含まれる。スレーブコントローラの動作は、スレーブ読出し／書込み（Ｓｌｖ  ＲＷ）を含む。ディスクリプタコントローラおよびスレーブコントローラのこれらすべての動作は、Ａバスへのアクセスを要求する。
【００２１】
図３は、この発明の一実施例に従ったデータコントローラ１０を示すブロック図である。上述のように、データコントローラ１０は、特定の動作を行なうための実行可能エージェントを含む。上述のように、エージェントの第１のグループ（２６、２８、３０および３２）はＳＲＡＭ１４へのアクセスを共有し、したがって、Ｓバスへのアクセスを共有せねばならない。ＤＭＡエージェント２６および２８はまた、ＰＣＩインタフェース１２とＳＲＡＭ１４との間の転送のために、ＡバスおよびＳバスの双方への並行の（すなわち、同時の）アクセスを要求する。エージェントの第２のグループ（Ｓｌｖ  ＲＷ３４、Ｒｘ  Ｓｔａｔ  Ｗｒ３６、Ｔｘ  Ｓｔａｔ  Ｗｒ３８、Ｒｘ  Ｄｅｓｃ  Ｒｄ４０、およびＴｘ  Ｄｅｓｃ  Ｒｄ４２）は、Ａバスへのアクセスを共有する。各グループ内のエージェントは順次にスケジュールされているわけではないので、データコントローラ１０はバスＳおよびバスＡへのアクセスをそれぞれ制御する、アービタＳ４４およびアービタＡ４６を含む。アービタ４４および４６は、リクエスト（ＲＥＱ）および許可（ＧＮＴ）ハンドシェイク信号、バスフリー信号、およびクロック信号を使用して、調停を行なう。
【００２２】
たとえば、送信ＭＡＣリクエスト（ＴＸ  ＭＡＣ  ＲＥＱ）は、Ｓバスへのアクセスのために、送信ＭＡＣエージェント３０によってアービタＳ４４に対して生成されるリクエストである。アービタＳ４４はこのリクエストを受取って、送信ＭＡＣ許可（ＴＸ  ＭＡＣ  ＧＮＤ）信号を送信ＭＡＣエージェント３０に送ることによって、送信ＭＡＣエージェント３０にアクセスを許可する。同様に、アービタＳ４４およびＡ４６への他のアクセスリクエストはそれぞれ、同じ方法で行なわれる。所与のいかなる時にも、１つのエージェントしか、共有資源（たとえばＡバス）へのアクセスを許可されない。
【００２３】
上述のように、送信ＤＭＡ２６および受信ＤＭＡ２８は、ＡバスおよびＳバスへのアクセスを同時に要求して、ＰＣＩバスとＳＲＡＭ１４との間でデータを転送する。これら２つのエージェントがアクセスを要求する際にＡバスおよびＳバスの双方が確実に利用可能となるように、アービタＡ４６およびアービタＳ４４は、信号Ａ  ＦＲＥＥおよびＳ  ＦＲＥＥで、それらのそれぞれのバスの状態を通信する。
【００２４】
Ａバスが利用可能なときには、アービタＡ４６が信号Ａ  ＦＲＥＥを生成してアービタＳ４４に送信する。同様に、アービタＳ４４はＳ  ＦＲＥＥを生成してアービタＡ４６に送信する。信号Ｓ  ＦＲＥＥは通常アサートされているが、アービタＳ４４がＳバスおよびＡバスの双方へのアクセスのための許可を送信ＤＭＡエージェント２６または受信ＤＭＡエージェント２８のいずれかに与えようとするときにデアサートされる。したがって、Ｓ  ＦＲＥＥは、ＳバスおよびＡバスが双方とも利用不可能な場合に限り、デアサートされる。信号Ａ  ＦＲＥＥは通常アサートされているが、アービタＡ４６が第２のグループ内のエージェントのうちいずれか１つに許可を与えようとする際にデアサートされる。Ａ  ＦＲＥＥがアサートされていない限り、アービタＳ４４によって送信ＤＭＡエージェント２６または受信ＤＭＡエージェント２８に対して許可が与えられることはないが、これは、これら２つのエージェントがＡバスばかりでなくＳバスへもアクセスを要求するためである。同様に、Ｓ  ＦＲＥＥがアサートされていない限り、アービタＡ４６によって第２のグループ内のエージェントのうち１つに許可が与えられることはない。
【００２５】
図４は、この発明の調停構成が使用されない場合に、図３の調停機構において起こり得る問題を図示する。図４において、ＲＥＱ  Ｓは、ＳバスおよびＡバスへのアクセスを要求する、送信ＤＭＡエージェント２６または受信ＤＭＡエージェント２８によって生成されるリクエストを表わし、ＲＥＱ  Ａは、Ａバスへのアクセスを要求する、第２のグループからのエージェントのうち１つ（たとえば、エージェント３４、３６、３８、４０または４２）によって生成されるリクエストを表わす。ＧＮＴ  Ｓは、送信ＤＭＡエージェント２６または受信ＤＭＡエージェント２８のいずれかへの１つのみの許可を表わし、ＧＮＤ  Ａは、第２のグループからのエージェントのうち１つへの１つのみの許可を表わす。
【００２６】
事象６２でＲＥＱ  Ｓがアサートされたことに応答して、アービタＳ４４は事象６６においてＳ  ＦＲＥＥをデアサートして、第２のクロック時に、アービタＡ４６に対して、Ｓバスがもはや利用可能ではないことを知らせる。第３のクロック時には、もしＡ  ＦＲＥＥがアサートされていれば、ＧＮＴ  Ｓがアサートされる。アービタＡ４６は、ＲＥＱ  Ａに対して、同じ時間に同じように動作する。すなわち、アービタＡ４６は事象６０におけるＲＥＱ  Ａに応答して事象６４でＡ  ＦＲＥＥをデアサートし、第２のクロック時に、アービタＳ４４に対して、ＳバスおよびＡバスがもはや利用可能ではないことを知らせる。第３のクロック時に、Ｓ  ＦＲＥＥがアサートされている場合には、ＧＮＴ  Ａがアサートされる。この例では、第３のクロックサイクル時にデッドロックが生じる。これは、各アービタ４４および４６が、共有Ａバスがビジーであって、事象６８および６９においていずれの許可信号もアサートされないと考えるためである。したがって、Ａバスへのアクセスを要求しているエージェントはアクセスを拒否され、Ｓバスへのアクセスを要求しているエージェントもまたアクセスを拒否される。
【００２７】
図５は、この発明の調停構成が使用されない場合に図３の調停機構に生じ得る別の問題を図示する。図５において、事象８２でＲＥＱ  Ｓがアサートされたことに応答して、アービタＳ４４は、事象８６においてＳ  ＦＲＥＥをデアサートして、事象８９においてＧＮＴ  ＳをアサートすることでＳバスおよびＡバスへのアクセスを許可することによって、アービタＡ４６に対して、ＳバスおよびＡバスの双方が第２のクロック時に利用可能ではないことを知らせる。アービタＡ４６は事象８０におけるＲＥＱ  Ａに応答して、事象８４においてＡ  ＦＲＥＥをデアサートして、事象８８においてＧＮＴ  ＡをアサートすることでＡバスへのアクセスを許可することによって、アービタＳ４４に対して、Ａバスが第２のクロック時に利用可能ではないことを知らせる。したがって、事象８８および８９においてＧＮＴ  ＡおよびＧＮＴ  Ｓの双方がアサートされるために、第２のクロック時に共有Ａバスに関して競合が生じ、それにより、２つのエージェントが同時に同じＡバスへのアクセスを要求する結果となる。これは、ＧＮＴ  Ｓが、第２のグループの１エージェントがＡバスにアクセスしているのと同時に、送信ＤＭＡエージェント２６または受信ＤＭＡエージェント２８のいずれかがＳバスとＡバスとにアクセスするという結果をもたらすためである。
【００２８】
以上のような競合／デッドロックの問題を解決するために、時分割多重化された調停機構が使用される。
【００２９】
図７は、この発明の一実施例に従った、アクセスを調停するための方法を示すフロー図である。開示される方法は、並列で（たとえば、状態マシンとして）実現することが可能である。この方法は、ステップ２０１において、クロックをＮ個の部分に分割することによって開始する。ここで、Ｎは、共有資源、この場合Ａバスを求めて競合するアービタの数に対応する。この場合、アービタ４４および４６を含むので、Ｎ＝２である。図６を参照して、データコントローラ１０はシステムクロックＣＬＫから導出された２分周クロックとしてＰＨＡＳＥ信号を生成する。１０１、１０３、１０５、１０７および１０９におけるハイの位相（ＰＨＡ）は、アービタＡ４６のための、システムのクロック信号の第１の排他的部分として予約される。これに対し、１００、１０２、１０４、１０６、１０８および１１０におけるローの位相（ＰＨＳ）は、アービタＳ４４のための、第２の排他的部分として予約される。例示のシステム内のシステムクロックＣＬＫは、３３ＭＨｚの水晶基準クロックであるが、安定したクロック信号を供給する信号であれば、いかなる公知の基準信号を使用することも可能である。また、基準クロックから導出される２分周クロックを生成する際の詳細は、この発明には必要ではない。入力クロック信号を受取って、基準クロックを２分周した形である新しいクロック信号を生成する、当該技術分野で知られているいかなる典型的なデバイスも、この発明で使用するのに適している。
【００３０】
この発明の時分割多重化調停機構において、アービタＡ４６は、ステップ２０２におけるＲＥＱ  Ａに応答して、対応する排他的部分ＰＨＡ中に限り、Ａ  ＦＲＥＥをデアサートしてＧＮＴ  Ａをアサートする。アービタＳ４４は、ステップ２０３内のＲＥＱ  Ｓに応答して、対応する排他的部分ＰＨＳ中に限り、ＳＦＲＥＥをデアサートしてＧＮＴ  Ｓをアサートする。しかし、クロックがどちらの位相にあるかにかかわらず、いずれかのリクエストが許可されるには、ＳＦＲＥＥとＡ  ＦＲＥＥ  との双方がアサートされていなければならない（すなわち、Ａバスがフリーでなければならない）。アービタＡ４６とアービタＳ４４は、決して同じ位相では決定を下さないため、デッドロックおよび競合状態が回避される。
【００３１】
図６を参照して、事象１１２でＲＥＱ  Ａがアサートされる際には、信号ＡＦＲＥＥおよびＳ  ＦＲＥＥの双方がアサートされている。したがって、アービタＡ４６はステップ２０４においてＳ  ＦＲＥＥとＡ  ＦＲＥＥとの双方がアサートされているかをチェックして、ステップ２０５および２０６において、排他的部分ＰＨＡ中に、事象１２４においてＧＮＴ  Ａをアサートして、事象１１８においてＡ  ＦＲＥＥをデアサートする。したがって、Ａバスへのアクセスは、Ａバスへのアクセスを要求している第２のグループ内のエージェント（たとえば、エージェント３４、３６、３８、４０または４２）に許可される。この期間中に、アービタＳはステップ２０４においてリクエストを拒否する。事象１１４でＲＥＱ  Ａがデアサートされると、Ａ  ＦＲＥＥが事象１２０で再びアサートされる。ＲＥＱ  Ｓ、Ｓ  ＦＲＥＥおよびＡ  ＦＲＥＥがサイクル１０７でアサートされているのに応答して、アービタＳはステップ２０７および２０８において、事象１２８でＰＨＳの際にＧＮＴ  Ｓをアサートし、事象１２２においてＳＦＲＥＥをデアサートする。したがって、ＳバスおよびＡバスへのアクセスは、送信ＤＭＡエージェント２６または受信ＤＭＡエージェント２８のいずれかに許可される。アービタＳ４４とアービタＡ４６とが同じ位相中にＡ  ＦＲＥＥおよびＳ  ＦＲＥＥをデアサートすることは決してないため、このシステムの資源に対するリクエストは、デッドロックの問題および競合の問題をいずれも回避する。
【００３２】
例示の実施例において説明した時分割多重化調停システムは、２つのアービタを使用して、クロック信号を各アービタにつき１位相の、２つの位相に分割するが、この多重化調停システムは、３個以上のアービタを含むシステムにも等しく適用できる。たとえば、システムは３つの別個のバスへのアクセスを調停するために３つのアービタを利用することが可能である。このようなシステムにおいては、もし複数の動作のうちの１つがそれら３つのバスの各々へのアクセスを要求する場合、または、複数の動作のうち２つ以上の動作がバスのうち２つ以上のバスへのアクセスを要求する場合に、クロック信号は、各アービタにつき１位相である、３つの位相に分割される。このようにして、第１の位相は第１の動作にアクセスを許可するのに用いられ、第２の位相は第２の動作のために、また第３の位相は第３の動作のために利用される。同様に、４つのアービタを有する状況においては、クロックは４つの位相に分割される。
【００３３】
この時分割多重化調停システムの例示の実施例はまた、クロックの位相が等しい期間を有するものと仮定するが、これに代えて、この発明は、クロックサイクルの異なる部分、すなわちタイムスライスを、異なるアービタに割当てることも可能である。たとえば、第１の動作が第２の動作よりもより頻繁に起こることがわかっている場合には、クロックサイクルの第１の部分がクロックサイクルの第２の部分よりもより長い期間を有してもよい。この方法により、第１の動作からのリクエストは、いかなる所与の時間にも、許可されやすくなる。なぜなら、第１のアービタがリクエストを許可することのできる時間期間が、第２のアービタがリクエストを許可することのできる時間期間よりも長いためである。
【００３４】
この発明の例示の実施例はまた、バスがチップの外部に位置する場合を示すが、この発明は、バスがチップ内の内部バスであるようなシステムにおいても使用することが可能である。さらに、開示された構成は、多重バスを共有する多数のアービタを使用するシステムにも適用が可能である。したがって、種々のアービタおよびバスを使用することが可能である。
【００３５】
以上のように、デッドロックおよび競合を回避することのできる時分割多重化調停のためのシステムおよび方法を開示したが、この発明の利点は、調停機構によって、システムが、データをどのように転送するかを判定する複雑な調停アルゴリズムを必要とすることなく、データ転送を適時処理することが可能となることである。この発明の別の利点は、使用される調停機構が、資源の競合を解決するためにアービタの階層構造を必要としないことである。これは、処理時間を節約し、さらに、アービタが複雑な論理を排除することによってチップスペースを節約することを可能にする。
【００３６】
この開示においては、この発明の好ましい実施例のみを示しかつ説明したが、上に述べたように、この発明がさまざまな他の組合せおよび環境において使用することが可能であって、ここに説明した発明の概念の範囲内で変更または修正が可能であることを理解されたい。
【図面の簡単な説明】
【図１】この発明の一実施例に従った、ネットワークインタフェースとホストプロセッサとの間でデータを転送するための構成を示すブロック図である。
【図２】図１のネットワークインタフェースとＰＣＩインタフェースとの間の、データ流れを示すブロック図である。
【図３】図１のデータコントローラを示すブロック図である。
【図４】この発明の調停構成が使用されない場合のデッドロック状況を示すタイミング図である。
【図５】この発明の調停構成が使用されない場合の、競合状況を示す別のタイミング図である。
【図６】図１のシステムのための、時分割多重化調停機構を示すタイミング図である。
【図７】この発明の一実施例に従った、アクセスを調停するための方法のフロー図である。
【符号の説明】
１０  データコントローラ
１２  ＰＣＩインタフェース
１４  ＳＲＡＭ
１６  ＭＡＣ
２６  送信ＤＭＡエージェント
２８  受信ＤＭＡエージェント
３０  送信ＭＡＣエージェント
３２  受信ＭＡＣエージェント
４４  アービタ
４６  アービタ
【図１】
0004625549.tif 000002
【図２】
0004625549.tif 000003
【図３】
0004625549.tif 000004
【図４】
0004625549.tif 000005
【図５】
0004625549.tif 000006
【図６】
0004625549.tif 000007
【図７】
0004625549.tif 000008