(57)【特許請求の範囲】
【請求項１】
データ処理システムにおいてバスに接続するのに適合した許可コントローラであって、バス・アービタによって生成されるバス認可信号のうちの少なくとも１つを受け取るように構成され、前記認可信号は、バス・エージェントのセットのうちのいずれのバス・エージェントにバス・トランザクションを開始するための前記バスの支配権が認可されているかを示し、受け取った前記認可信号に応答して、前記トランザクションの宛先となる可能性のあるバス・エージェント夫々に対応する許可信号を送るように構成され、前記許可信号の夫々は、対応するバス・エージェントがバス支配権を認可されたバス・エージェントからのバス・トランザクションの宛先として許可されているか又は禁止されているかを表し、禁止されている事を表す許可信号を受け取ったバス・エージェントは、前記バスから切離されて前記バス・トランザクションを見ることができないようになる、許可コントローラ。
【請求項２】
前記コントローラが、許可テーブルを含む記憶域を含み、前記許可テーブルの内容はバス・エージェント開始側とバス・エージェント宛先との組合せが許可されているか又は禁止されているかを示す、請求項１に記載のコントローラ。
【請求項３】
前記許可テーブルの各行はバス・トランザクションの可能な開始側に対応し、各列はトランザクションの可能な宛先に対応し、前記テーブル内の各ビットによって対応する開始側／宛先対が許可されているか又は禁止されているかが示される、請求項２に記載のコントローラ。
【請求項４】
前記許可テーブルがプログラム可能である、請求項２または３に記載のコントローラ。
【請求項５】
前記許可テーブルが電源投入時にプログラムされる、請求項４記載のコントローラ。
【請求項６】
許可出力レジスタをさらに含み、前記コントローラが、アサートされた前記認可信号に対応する前記許可テーブル行の内容を前記許可出力レジスタに転送するように構成された、請求項２〜５のいずれか１項に記載のコントローラ。
【請求項７】
バスに接続された１組のバス・エージェントと、
前記バスに接続され、各前記バス・エージェントからバス要求信号を受け取り、それに応答して、前記認可信号を各前記バス・エージェントに送るように構成されたバス・アービタと、
請求項１〜６のいずれか１項記載の許可コントローラとを含むデータ処理システム。
【請求項８】
前記許可コントローラが前記アービタと統合されている、請求項７に記載のシステム。
【請求項９】
少なくとも１つの宛先バス・エージェントに関連づけられたゲート論理回路をさらに含み、前記ゲート論理回路が前記許可コントローラからの前記宛先バス・エージェントに対応する前記許可信号と、前記開始側バス・エージェントからのバス制御信号とを受け取るように構成され、前記許可信号が前記宛先バス・エージェントが宛先として禁止されていることを表す場合には、前記ゲート論理回路が前記宛先バス・エージェントの制御ピンを前記バス制御信号から分離する、請求項７または８記載のシステム。
【請求項１０】
前記ゲート論理回路が前記許可信号によって制御されるパス・トランジスタを含み、前記許可信号が前記宛先バス・エージェントが宛先として許可されていることを表す場合には前記パス・トランジスタが前記バス制御信号と前記宛先バス・エージェントとの間に低インピーダンス経路を設ける、請求項９に記載のシステム。
【請求項１１】
前記ゲート論理回路が、前記パス・トランジスタのゲートに接続され及び前記許可信号によって制御されるライン・ドライバをさらに含む、請求項９又は１０記載のシステム。
【請求項１２】
データ処理システムの共用バス上のバス・エージェントを選択的に宛先設定する方法であって、
前記共用バスに接続された複数のバス・エージェントのうちのいずれのバス・エージェントが前記バスの支配権を認可されているかを示す認可信号のうちの少なくとも１つに応答して、対応するバス・エージェントがバスの支配権を認可された前記バス・エージェントによって開始されたトランザクションの宛先として許可されているか又は禁止されているかを示す許可信号を送信するステップと、
少なくとも１つの前記許可信号に応答して、対応するバス・エージェントが認可された前記マスタによって開始されたバス・トランザクションを検出するか又は検出するのを防ぐステップとを含む方法。
【請求項１３】
前記データ処理システムが、前記許可信号を送信するコントローラを含み、
前記コントローラは許可テーブルを含む記憶域を含み、前記許可テーブルの内容がバス・エージェント開始側とバス・エージェント宛先との組合せが許可されているか又は禁止されているかを示す、請求項１２に記載の方法。
【請求項１４】
前記許可テーブルの各行はバス・トランザクションの可能な開始側に対応し、各列はトランザクションの可能な宛先に対応し、前記テーブル内の各ビットによって対応する開始側／宛先対が許可されているか又は禁止されているかが示される、請求項１３に記載の方法。
【請求項１５】
前記データ処理システムが、許可出力レジスタをさらに含み、前記コントローラがアサートされた前記認可信号に対応する前記許可テーブル行の内容を前記許可出力レジスタに転送するように構成された、請求項１３または１４に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にはデータ処理システムの分野に関し、より詳細には、共用バス上のトランザクションをバス上の選択された宛先に送達するデータ処理システムに関する。
【０００２】
【従来の技術】
データ処理システムの分野では、標準化周辺バスの使用がよく知られている。このようなバスの一般的に普及しているものとして、米国９７２２１オレゴン州ポートランド  ウエスト・ドライブ  サウス・ウェスト５４４０  スイート２１７のPCI Special Interest Groupから入手可能な「PCI Local Bus Specification 改訂2.2版」で指定されているＰＣＩ（Peripheral Components Interface）バスがある。ＰＣＩバスに接続された装置は、すべて共通の共用アドレス空間にマップされる。どのバス・マスタまたはトランザクション開始側でも、共用アドレス空間の宛先の部分を読取りまたは書込みするだけで、どの宛先装置にでもアクセスすることができる。宛先装置がトランザクションの開始側を判断することができないため、ＰＣＩトランザクションは匿名であると言える。ＰＣＩの共用性と匿名性は、ＣＰＵまたはＣＰＵの集合がバス・エージェントの１つであり、コンピュータ・システムの周辺装置が他のバス・エージェントである従来のＰＣＩ環境にとって、一般的に望ましい属性である。
【０００３】
図１を参照すると、従来の技術の典型的なデータ処理システム１００が図示されている。データ処理システム１００は、各プロセッサがシステム・バス１０３に接続された１つまたは複数のプロセッサ１０２を含む。プロセッサ１０２は、システム・バス１０３を介してシステム・メモリ１０４にアクセスすることができる。さらに、システム・バス１０３と周辺バス１０７との間にバス・ブリッジ／バス・アービタ１０６が接続されている。本明細書では、周辺バス１０７は一般にはＰＣＩローカル・バス仕様改訂２．２版に準拠しているものとする。周辺バス１０７には、１つまたは複数の周辺装置またはアダプタ１０８が接続されている。周辺装置１０８は、たとえば、ハード・ディスク・アダプタ、グラフィックス・アダプタ、オーディオ・アダプタ、高速ネットワーク・アダプタなど、任意の数の装置を含むことができる。バス１０７のアドレス空間は、周辺装置１０８間で分割されている。一般には、周辺バス１０７に結合された各周辺装置１０８は、バス上で発生するすべてのトランザクションを「見る」ことができる。具体的には、バス１０７上のすべての装置１０８は、同じデータ、アドレス、および制御信号を受け取る。したがって、バス１０７は共用バスであると言うことができる。さらに、バス１０７のデータ、アドレス、および制御信号は一般に、トランザクションを開始した装置を示す情報を含まないため、バス１０７上のトランザクションは匿名である。
【０００４】
共用の匿名バスは従来のマイクロプロセッサ・ベース設計の環境には適合していたが、ＰＣＩベースのマルチプロセッサ環境では望ましくない場合がある。本開示では、ＰＣＩベースの多重処理システムとは、ＣＰＵが単一のＰＣＩバスに接続されているコンピュータ・システムを指す。この環境では、選択されたプロセッサを他のプロセッサから分離または安全保護することが望ましいと考えられる。さらに、マルチプロセッサ・システムでは、プロセッサ間または１つもしくは複数のプロセッサと選択された周辺装置との間での「非公開の会話」が可能なことが望ましい場合がある。現在実施されているＰＣＩ標準の共用アドレス空間と匿名トランザクションでは、このような非公開または安全なトランザクションができないようになっている。したがって、他の装置が実質的に通信を見ることができないように、共用ＰＣＩバス上の個々の装置が非公開に通信することができるようにするシステムおよび方法を実現することが強く望まれるであろう。さらに、実現されたシステムが既存のＰＣＩ準拠装置の変更を必要とせず、ＰＣＩ仕様自体の変更または修正も必要としないことが望ましいであろう。また、実現された解決策が、既存のハードウェアの複雑な変更または大規模な変更を必要としないことが望ましいであろう。
【０００５】
【発明が解決しようとする課題】
主として、所望のバス・エージェントをバスから実質的に分離するようにバス信号が選択的に修正されるシステムによって、上記の問題に対処する。
【０００６】
【課題を解決するための手段】
バス信号の選択的修正は、許可および禁止されたバス・トランザクション開始側／宛先の対を示す記憶テーブル（許可テーブル）によって判断することができる。この許可テーブルは、プログラマブル・ロジック・アレイや特定用途向け集積回路などの専用装置に配置することができる。さらに、許可テーブルは、バス・アービタに統合することもできる。許可テーブルは、好ましい実施形態では動的に修正することができ、各バス・エージェントに固有の１ビット信号を与えるために使用することができる。この許可信号によって、対応するバス・エージェントが現行バス・マスタからトランザクションを受け取ることを許可されているかどうかを示すことができる。この許可ビットは、各バス・エージェントに関連づけられた外部ゲート回路に発送することができる。ゲート回路は、１つまたは複数のバス制御信号を受け取ることができ、許可ビットの状態に応じて制御信号を修正することができる。バスがＰＣＩバスである一実施形態では、ゲート回路は、各バス・エージェントのＦＲＡＭＥ＃信号やＧＮＴ＃信号などのバス制御信号を受け取ることができる。対応する許可信号がイナクティブまたはデアサートされ、それによって禁止開始側／宛先対を示している場合、ＦＲＡＭＥ＃信号と、場合によってはＧＮＴ＃信号が、バス・エージェントから分離され、ゲート回路はバス・エージェントのＦＲＡＭＥ＃ピンとＧＮＴ＃ピンをＶＣＣに維持し、それによってバス・エージェントがバス・トランザクションを認識しないようにする。
【０００７】
【発明の実施の形態】
本発明は、一般には、ＰＣＩバス上のエージェントが互いに秘密に通信することができ、トランザクションがバス上の選択された宛先にのみ送達されるシステムを企図する。トランザクションの選択的宛先設定の使用は、複数のプロセッサが共通の周辺バスに結合されたシステムで特に有用である。本発明は、データ処理システムにあまり複雑でない回路を組み込むことによって、共用バス上の選択された開始側と宛先との間で安全な通信を行うことができる。さらに、本発明は、このような選択的に宛先設定されたトランザクションを実現するのに必要なハードウェアの適切な実現により、トランザクションの開始側とそれらのトランザクションを見ることを許可された宛先との関係を動的に変更することができる。
【０００８】
図面を参照すると、図３には、本発明を実施するのに適合したシステムまたはデータ処理装置の組合せ３００の選択された機構が図示されている。図の組合せ３００の実施形態は、本明細書でローカルＰＣＩバス３０３と呼ぶＰＣＩバスを介して互いに接続された、複数のマイクロプロセッサ・ベースのデータ処理システム３０１ａ、３０１ｂ、３０１ｃ、３０１ｄ、３０１ｅ、および３０１ｆ（本明細書では、総称して、またはまとめて、データ処理システム３０１と呼ぶ）を含むＰＣＩベースのマルチプロセッサ・システムである。バス・ブリッジ３０４によって、ＰＣＩバックプレーン３０５と呼ぶ第２のＰＣＩバスに接続される。一実施形態では、ＰＣＩバックプレーン３０５は、データ処理システム３０１のセットによって共用される周辺装置を接続するのに適合したバスを設ける。組合せ３００は、たとえば、グラフィックス・アダプタを介してＰＣＩバックプレーン３０５に接続された共用表示装置（図示せず）を含むことができる。
【０００９】
図の組合せ３００はさらに、ローカルＰＣＩバス３０３へのアクセスを制御するアービタ３０２を含む。各データ処理システム３０１とバス・ブリッジ３０４は、ローカル・バス３０３の支配権を要求し、受け取ることができる。要求する装置は一般に、要求信号（ＲＥＱ＃）をアサートすることによってＰＣＩローカル・バス３０３の支配権を獲得する。固有のＲＥＱ＃信号が各システム３０１と、ローカルＰＣＩバス３０３のマスタとなる可能性のある他のいずれかのシステムの専用とされる。ＲＥＱ＃信号のセットがアービタ３０２に送られる。アービタ３０２は、バス・エージェントに対してローカルＰＣＩバス３０３の支配権を認可するのに適合したアービトレーション論理回路を含む。アービタ３０２は典型的には、各バス・エージェントに固有の認可信号（ＧＮＴ＃）を送る。アービトレーション論理回路は、着信ＲＥＱ＃信号の状態に基づいてＧＮＴ＃信号の１つをアサートするように構成されている。単一のＲＥＱ＃信号がアサートされた場合、アービタ３０２は、次の利用可能なバス・サイクルでそれに対応するエージェントにローカルＰＣＩバス３０３の支配権を認可する。同時に複数のＲＥＱ＃信号がアサートされた場合、アービタ３０２は、何らかの形の選択アルゴリズムまたは公平性アルゴリズムに基づいてそれらのアサートされた信号のうちから選択するように構成されている。アービタ３０２は、たとえば、最も古い未処理の要求を持つエージェントに支配権を認可する。他の実施形態では、支配権の認可は、バス・アービトレーションの分野で周知のいくつかの優先順位付けアルゴリズムのいずれかに従って優先順位付けすることができる。
【００１０】
図の実施形態では、アービタ３０２はさらに、本明細書で許可論理回路と呼ぶ、許可情報を生成する役割を果たす図の論理回路を含む。この許可情報を認可信号ＧＮＴ＃と共に使用して、ローカルＰＣＩバス３０３上のエージェントにトランザクションを受け取る選択的許可を与える。選択的許可は、開始側エージェント（バス・マスタ）の識別情報に基づく。図２に、アービタ３０２と、（参照番号３０１ａによって識別された）開始側バス・エージェントと、開始側バス・エージェントによって生成されたトランザクションの宛先となる可能性のある他のバス・エージェント３０１との間で受渡しされる信号を示す。前述のように、各開始側バス・マスタ３０１は、ＰＣＩ仕様の要求に従い、ＰＣＩ仕様に準拠して、固有のＲＥＱ＃信号をアービタ３０２に送り、固有のＧＮＴ＃信号をアービタ３０２から受け取る。しかし、本発明によると、アービタ３０２は、ＰＣＩトランザクションの宛先となる可能性のある各バス・エージェント３０１に、固有の信号である許可信号を送る。この許可信号のセットは、ローカルＰＣＩバス３０３上のバス・エージェント３０１にトランザクションを選択的に配信することができるようにする構造を備える。一実施形態では、各許可信号は、対応するバス・エージェントが現行バス・マスタからトランザクションを受け取ることを許可されているかどうかを示す単一ビット（単一線）信号である。特定の許可信号がデアサートされた場合、その許可信号に関連づけられたバス・エージェント３０１をローカルＰＣＩバス３０３から切り離し、それによってバス上で発生したトランザクションを見ることができないようにする。本発明は、一実施形態では、バス・エージェントが選択されたＰＣＩ制御信号のアサートを見ることができないようにすることによって、バス・エージェントがトランザクションを見ることができないようにする。ＰＣＩ準拠装置が新たなＰＣＩトランザクションの開始を示す適切な制御信号を受け取らない場合、その装置は実質的にそのトランザクションを認識することができなくなる。言い換えると、トランザクションを開始するバス・エージェントの識別情報に基づいてＰＣＩ制御信号を適切なバス・エージェントに対して選択的にゲート制御することによって、トランザクションをその所望のバス・エージェントに選択的に配信することができ、安全に他のエージェントに知らせないようにすることができる。このようにして、ＰＣＩベースのマルチプロセッサ・システムは、好ましくは構成装置のＰＣＩインタフェースに変更を加えずに、または取外し可能ＰＣＩ装置の場合はＰＣＩコネクタを変更することなく、安全なトランザクションを組み込むことができる。
【００１１】
図４を参照すると、図３のデータ処理システム３０１として使用するのに適合したシステムの選択された要素のブロック図が図示されている。図の実施形態では、各データ処理システム３０１は、内蔵システム・オン・チップ設計によって実現されている。このような実施形態の１つでは、データ処理システム３０１は、中央処理装置（ＣＰＵ）４０２と、統合メモリ管理装置（ＭＭＵ）４０４と、専用命令キャッシュ（Ｉキャッシュ）４０６と、データ・キャッシュ（Ｄキャッシュ）４０８とを含むコア４０１を備える。コア４０１は、５段階パイプラインＣＰＵがＭＭＵ、１６ＫＢの命令キャッシュ、および８ＫＢのデータ・キャッシュと統合された、ＩＢＭコーポレーションのＰｏｗｅｒＰＣ（登録商標）４０５Ｂ３ Ｅｍｂｅｄｄｅｄ  Ｃｏｒｅなどの縮小命令セット（ＲＩＳＣ）設計によって実現することができる。
【００１２】
コア４０１は、ＤＲＡＭコントローラ４１２、周辺装置コントローラ４１４、バス・マスタ・コントローラ４１６、およびＰＣＩインタフェース４１８を含む様々な統合装置が接続されたローカル・バス４１０と通信する。システム３０１のローカル・バス４１０は、バス・ブリッジ４２０を介して周辺バス４２０に接続されている。周辺バスによって、コア４０１は、１つまたは複数のシリアル・ポート（ＵＡＲＴ）４３０、１組の汎用入出力（ＧＰＩＯ）ポート４３２、Ｉ2Ｃインタフェース４３４、システム３０１が外部接続ネットワークと通信することができるようにするＥｔｈｅｒｎｅｔ（登録商標）ポート４３６を含む様々な統合周辺装置と通信することができる。システム４０１はさらに、割込みコントローラ４２８と、オンチップ（ＳＲＡＭ）４２４と、重要なコードおよびデータへの単一サイクル・アクセスを可能にする対応するコントローラ４２６とを含む。ＩＢＭコーポレーションのＰｏｗｅｒＰＣ（登録商標）４０５ＧＰ  Ｅｍｂｅｄｄｅｄ  Ｐｒｏｃｅｓｓｏｒは、図のデータ処理システム３０１の実施形態として使用するのに適合した装置である。この実施形態では、データ処理システム３０１は低電力（＜１．１Ｗ）で高パフォーマンスを示し、温度の影響を受けやすい環境における高密度用途に適合した単一パッケージ構成の高集積組込型プロセッサ装置であることが、当業者ならわかるであろう。
【００１３】
図５を参照すると、選択された宛先へのＰＣＩトランザクションの配信を可能にする本発明の機構を示すために、図３に図示したデータ処理システム３０１の組合せ３００の選択された要素のブロック図が示されている。図の実施形態では、組合せ３００は、バス・エージェント５０２ａ、５０２ｂ、５０２ｃ、および５０２ｄ（総称して、またはまとめてバス・エージェント５０２と呼ぶ）と通信する許可コントローラ５０１を含むものとして図示されている。バス・エージェント５０２は、図３のローカルＰＣＩバス３０３に接続され、ＰＣＩトランザクションの開始または受領が可能な任意の装置である。したがって、バス・エージェント５０２は、図３に示すデータ処理システム３０１の１つおよびバス・ブリッジ３０４か、またはバス３０３に接続され、バス・アドレス空間の一部が割り当てられた他の任意の周辺装置とすることができる。許可コントローラ５０１は、バス・アービタ３０２に統合するか、または独立型集積回路として実現することができる。独立型実施形態では、許可コントローラ５０１は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）またはその他の適合する特定用途向け集積回路（ＡＳＩＣ）を含むことができる。
【００１４】
許可コントローラ５０１は、アービタ３０２が発生したＧＮＴ＃信号を受け取る。許可コントローラ５０１は、これらの標準ＰＣＩ信号から、それに続くバス・トランザクションの開始側を識別することができる。共用バス上のトランザクションを選択された宛先だけに送達することを実現するために、許可コントローラ５０１の一実施形態は、各開始側ごとに許可されたバス・エージェント宛先を示すプログラマブル・テーブルを含む。次に図６を参照すると、許可コントローラ５０１で使用するのに適合した許可テーブル６０２（入出力メモリ許可テーブル６０２とも呼ぶ）の一実施形態が図示されている。図の実施形態では、許可テーブル６０２は、行と列のセットとして配列された記憶素子（メモリ）の配列を含む。許可テーブル６０２の各行は、バス・トランザクションの可能な開始側に対応し、各列はトランザクションの可能な宛先に対応する。許可テーブル６０２の各行と列の交差部に許可ビットがある。許可ビットは、その許可ビットの列アドレスに対応するバス・エージェントが、許可ビットの行アドレスに対応するバス・エージェントによって開始されたトランザクションを受け取ることを許可されているかどうかを示す。図の実施形態では、論理１許可ビットが、対応する宛先装置が対応する開始側からトランザクションを受け取ることを許可されていることを示す。許可テーブル６０２によって、許可された開始側／宛先対が示されるため、許可コントローラ５０１は各バス・エージェントからＲＥＱ＃信号を受け取る必要がない。特定のトランザクションの許可された宛先は、開始側（ＧＮＴ＃信号から判断される）と許可テーブル内の情報によってのみ判断され、それによって許可コントローラの論理回路が大幅に簡素化される。
【００１５】
好ましい実施形態では、許可された開始側／宛先対は、ユーザがプログラム式に修正することができる。一実施形態では、許可コントローラ５０１、具体的には許可テーブル６０２には、ＰＣＩバス上のアドレス空間が割り当てられ、それによって割当テーブルの動的な修正が可能になっている。ユーザは、許可テーブル６０２への適切な書込みによって、バス上のエージェント５０２を、所望の開始側のみからのトランザクションを認識するようにプログラム式に構成することができる。所望のセキュリティ・レベルを維持するために、信用マスタをトランザクションの唯一の許可された開始側として許可コントローラにアクセスすることができるように電源投入時に許可テーブルをプログラムするなどによって、許可コントローラ５０１へのアクセスを信用マスタ装置にのみ制限することができる。あるいは、許可コントローラ５０１をプライベート・バスを介して専用の管理プロセッサまたはサービス・プロセッサに接続することによって、許可テーブルのセキュリティを維持することができる。
【００１６】
許可テーブル６０２を対称的にプログラムする必要はない。言い換えると、第１のバス・エージェントが第２のバス・エージェントからトランザクションを受け取る場合に、第２のバス・エージェントを第１のバス・エージェントからトランザクションを受け取るようにプログラムする必要はない。実施態様によっては、一致許可ビット（すなわち、宛先と開始側が同じバス・エージェントである許可ビット）を論理「１」にプログラムする必要がある場合もある。
【００１７】
アービタ３０２が要求バス・エージェントにバスを認可すると、アービタはそのバス・エージェントに対応するＧＮＴ＃信号をアサートする。アサートされたＧＮＴ＃信号によって、いずれのバス・エージェントがトランザクションの開始側になろうとしているかが許可コントローラ５０１に示される。次に許可コントローラ５０１は、アサートされたＧＮＴ＃信号を使用して、バス支配権が認められたバス・エージェント（すなわち開始側バス・エージェント）に対応する、許可テーブル６０２の行を選択する。一実施形態では、許可コントローラ５０１は、許可テーブル６０２内の各列に対応するビットを有する許可出力レジスタ６０４を含む。アービタがＧＮＴ＃信号をアサートすると、アサートされたＧＮＴ＃信号によって、許可テーブル６０２の対応する行が選択される。ＰＣＩ遊休サイクル中に許可テーブルの行が選択された場合、選択された行の内容が許可出力レジスタ６０４に転送される。したがって、許可出力レジスタ６０４は、開始バス・エージェントからのトランザクションを認識することを許可された宛先に対応するビット位置に、１つまたは複数の論理１を保持することができ、開始バス・エージェントからのトランザクションを認識することを許可されていない宛先に対応するビット位置には１つまたは複数の論理０を保持することができる。
【００１８】
図７および図８を参照すると、各許可ビットが、トランザクションの宛先となり得る各バス・エージェント５０２に関連づけられた対応するゲート回路７０２（そのうちの１つが図７で参照番号７０２ａによって識別されている）に入力を提供する、本発明の一実施形態が図示されている。各ゲート回路７０２は、それに対応するバス・エージェント５０２の外部にあるハードウェアとして実現されることが好ましい。このようにすることで、バス・エージェント自体は、本発明により適切に機能するようにハードウェアまたはソフトウェアの変更を必要としない。各ゲート回路７０２は、それに対応するバス・エージェント５０２として同一のプリント回路板に装着することができる。各バス・エージェント５０２が単一の回路板に装着される一実施形態では、様々なゲート回路７０２を、対応するバス・エージェント５０２に近接して装着されることが好ましい１つまたは複数の個別チップで実現することができる。
【００１９】
図８に示すゲート回路７０２の実施形態は、バス制御信号（ＰＣＩ  ＦＲＡＭＥ＃信号など）およびバス・エージェント５０２に対応するＧＮＴ＃信号を受け取り、バス・エージェント５０２に関連づけられた許可ビットの状態に基づいて修正するように構成されている。具体的には、許可ビットは第１のパス・トランジスタ８０２および第２のパス・トランジスタ８０４と、第１および第２のトライステート・ドライバ８０６および８０８に制御入力を提供する。第１のパス・トランジスタ８０２は、開始側バス・エージェントが生成したＦＲＡＭＥ＃信号をゲート制御し、第２のパス・トランジスタ８０４はアービタ３０２からの適切なＧＮＴ＃信号をゲート制御する。許可ビットがアサート（論理「１」）されると、ドライバ８０６および８０８の出力がトライステートになり、トランジスタ８０２および８０４が、それぞれＦＲＡＭＥ＃信号およびＧＮＴ＃信号と宛先バス・エージェント５０２上のＦＲＡＭＥ＃ピンおよびＧＮＴ＃ピンとの間に低インピーダンス経路を設ける。許可ビットがデアサートされると、パス・トランジスタは、ＦＲＡＭＥ＃信号およびＧＮＴ＃信号がバス・エージェント５０２から分離されるように有効に開回路制御される。この場合、バス・エージェント５０２のＦＲＡＭＥ＃ピンおよびＧＮＴ＃ピンはそれぞれ、ＶＣＣに接続された入力端子を有するドライバ８０６および８０８によって論理ＨＩＧＨに維持される。
【００２０】
ゲート回路７０２は、（許可コントローラ５０１からの許可ビットに基づいて）トランザクションを受け取ることを許可されていないバス・エージェントがトランザクションを認識するのを実質的に防ぐように保証する。ＰＣＩ準拠装置は、トランザクションを検知するにはＦＲＡＭＥ＃信号のマイナスの遷移を検出しなければならないため、論理「０」許可ビットに対応するバス・エージェントはバス上のトランザクションを認識しない。開始側が、開始側が通信することを禁止されている宛先装置のアドレス空間に対応するアドレスを有するトランザクションを送った場合、宛先側はそのトランザクションを検出せず、開始側は最終的にアボートする。このようにして、選択された装置をバスから分離するこの方法は、バス・アドレス・マッピングとは独立している。
【００２１】
許可コントローラがバス・アービタ３０２の内蔵構成要素である実施形態では、ゲート回路７０２を簡略化することができる。この実施形態では、アービタ３０２は、許可ビットを使用して、ゲート回路７０２によるＧＮＴ＃信号のローカルな変更が不要になるようにして適切なＧＮＴ＃のアサートを防ぐことができる。したがって、ゲート回路７０２は、ＦＲＡＭＥ＃信号を修正するだけで済み、パス・トランジスタ８０４およびドライバ８０８を省くことによって簡略化することができる。
【００２２】
本発明の応用分野の１つには、障害バス・エージェントを使用禁止にすることが含まれる。特定のバス・エージェントが誤動作していると判断された場合、その障害バス・エージェントに関連づけられたすべての許可ビットを論理「０」に設定することによって、その障害バス・エージェントをトランザクションの宛先として全面的に禁止することができる。許可コントローラがアービタと統合されている一実施形態では、特定のバス・エージェントが許可された宛先を持たない場合にはそのバス・エージェントにバスの支配権を決して認可してはならないことを認識するように、アービタを構成することができる。このようにして、アービタは、障害装置がバス・サイクルを消費するのを防ぐことによってバスの処理容量が失われないようにすることができる。
【００２３】
本発明は、「パイプライン」ＰＣＩバス認可を実現する特定のシステムに作用を及ぼし得る。「パイプライン」バス認可は、アービタが、現行の開始側がバスを解放する前に新しいバス・エージェントに許可を与える場合に発生する。認可されたにもかかわらず、新しいバス・エージェントは、ＰＣＩバス上の遊休サイクルを待ってからトランザクションを開始しなければならない。実際に、アービタは、新しいバス・エージェントがそのトランザクションを実際に開始する前の任意の時点で新しいバス・エージェントから認可を取り消して、別のエージェントに認可を与えることさえ可能である。
【００２４】
具体的には、許可コントローラがＰＣＩバス・アービタと統合されている場合、アービタ論理回路の好ましい実施形態は、現在切り離されている（すなわちその許可ビットによりトランザクション受け取ることを禁止されている）バス・エージェントに対するバス認可をアービタがパイプライン化するを防ぐ。分離されたバス・エージェントは常にＦＲＡＭＥ＃のＨＩＧＨ（デアサート）を観察するため、パイプライン化されたＧＮＴ＃を受け取る分離エージェントは、（分離された装置がＨＩＧＨの（デアサートされた）ＰＣＩバス信号ＩＲＤＹ＃も観察する場合）偽の「バス遊休」条件を検知する可能性がある。このような状況では、分離された装置がトランザクションを開始し、そのトランザクションが誤って現行バス活動を妨害することになる。
【００２５】
本発明の一実施形態におけるＧＮＴ＃信号は、許可コントローラがＰＣＩバス・アービタとは分離されているかまたは十分に統合されておらず、ＰＣＩバス・アービタがバス認可をパイプライン化することがわかっているときにのみ、必要である。この場合、ＧＮＴ＃信号をＦＲＡＭＥ＃信号とともに分離することによって、許可コントローラは、分離されたバス・エージェントがそのエージェントが分離されている期間中はバス認可を決して認識しないように保証する。しかし、許可コントローラがアービタと十分に統合されている場合は、アービタ論理回路に簡単な変更を加えるだけで、分離されたバス・エージェントがパイプライン化された認可を受け取らないように保証される。
【００２６】
図９を参照すると、本発明の一実施形態の動作を示すタイミング図が示されている。ＣＬＫ、ＦＲＡＭＥ＃、およびＩＲＤＹ＃信号は、標準ＰＣＩバス信号である。ＰＥＲＭＩＳＳＩＯＮおよびＭＯＤＦＲＡＭＥ＃信号は、特定の宛先装置専用である。ＣＬＫ信号がＬＯＷからＨＩＧＨに移行する（サイクルの開始を合図する）ときにＦＲＡＭＥ＃およびＩＲＤＹ＃信号がＨＩＧＨになっている遊休サイクルが図示されている。この遊休サイクルの前に、宛先のＰＥＲＭＩＳＳＩＯＮ信号がＨＩＧＨであった（宛先がこの移行を観察することを許可されていた）ため、グローバルＦＲＡＭＥ＃信号の後にＭＯＤＦＲＡＭＥ＃信号が続いていた。遊休サイクル時に、許可コントローラは、宛先が現行バス認可を保持している開始側からのトランザクションを観察する許可を持っていないことを認識し、ＰＥＲＭＩＳＳＩＯＮ信号をＬＯＷにする。しかし、許可信号がＬＯＷに移行した後、ＭＯＤＦＲＡＭＥ＃信号（宛先のＦＲＡＭＥ＃ピンに接続されている信号）がＦＲＡＭＥ＃から分離され、論理ＨＩＧＨに保たれ、それによって宛先がバスから分離される。分離サイクルとして指定されたサイクル中に、アクティブＰＣＩサイクルがトリガされる（このサイクルの始めでＦＲＡＭＥ＃がＬＯＷでＩＲＤＹ＃がＨＩＧＨである）が、分離された装置はトランザクションを認識せず、トランザクションに反応しないことに留意されたい。トランザクションの終わりで、バスは遊休状態（ＦＲＡＭＥ＃がＨＩＧＨでＩＲＤＹ＃がＨＩＧＨ）に戻る。この時点で、宛先がトランザクションを受け取ることを許可されている開始側に対するバス認可に応答して許可信号が再びＨＩＧＨになる。許可信号がＨＩＧＨになると、ＭＯＤＦＲＡＭＥ＃信号がＦＲＡＭＥ＃信号を追跡し、宛先が「アクティブ」になり、したがってトランザクションを認識して応答することができる。
【００２７】
本発明は、１つのバス・エージェントにつき複数の許可信号を含むように拡張することができる。複数の許可信号を使用して、第１のタイプのバス・トランザクションに許可された開始側／宛先対の第１のセットを割り当て、第２のタイプのバス・トランザクションに許可された開始側／宛先対の第２のセットを割り当てることができるので有利である。たとえば、ＰＣＩバスの場合、許可コントローラ５０１は、入出力メモリ・トランザクションのための許可された開始側／宛先対を示す許可信号情報（すなわち許可ビット）を持つ第１の許可テーブルと、構成トランザクションのための許可された開始側／宛先対を示す許可信号情報を持つ第２の許可テーブルとを含むことができる。具体的には、構成許可を判断するための別個の許可テーブルを含む（または前述の許可テーブル６０２内の各セルに第２のビットを追加する）ことが望ましい場合がある。一実施形態では、この第２のテーブルを使用して、「タイプ０」ＰＣＩ構成トランザクションのための許可された宛先／開始側対を示すことができる（これに対して、ＰＣＩ間ブリッジ「タイプ１」構成トランザクション向けの「タイプ１」構成トランザクションは、前述の許可テーブルとＧＮＴ＃信号ゲート回路を使用して許可／禁止することができる）。
【００２８】
図１０を参照すると、図の許可コントローラ５０１の実施形態は、前述のような入出力／メモリ許可テーブル６０２と、構成許可テーブル６０３とを含む。入出力／メモリ許可テーブル６０２と同様に、構成許可テーブル６０３は、可能性のある各開始側に対応するＧＮＴ＃信号（そのうちの１つの信号のみが図示されている）をアービタから受け取る。アサートされたＧＮＴ＃信号によって、対応する許可テーブル６０３内の値のセット（たとえば１行の値）が選択され、選択された値のセット中の各ビットはバス／エージェント宛先に対応する。選択された値のセットの各ビットによって、対応する開始側／宛先対がタイプ０構成トランザクションのために許可されているかどうかが示される。選択された値のセットは、構成許可テーブル６０３から出力され、１つまたは複数のＰＣＩ制御信号を受け取る論理ブロック６０５に送ることができる。論理ブロック６０５は、構成許可テーブル６０３（および入出力／メモリ許可テーブル６０２）から出力された許可情報を適切なＰＣＩ装置に対してゲート制御する手段となる。たとえば、論理ブロック６０５は非遊休サイクル中に許可信号トランザクションを禁止することができる。
【００２９】
したがって、図１０に示す許可コントローラ５０１は、各宛先装置ごとに１対の許可信号を生成する。第１の許可信号は、対応する宛先が現行開始側から入出力／メモリ・トランザクションを受け取ることを許可されているかどうかを示し、第２の許可信号は、宛先が開始側から構成トランザクションを受け取ることができるかどうかを示す。このようにして、図１０に示す本発明の実施形態では、ユーザは入出力／メモリ・トランザクションのために許可された開始側／宛先対と構成トランザクションのために許可された開始側／宛先対とを区別することができる。
【００３０】
許可コントローラ５０１が発生した第１の許可信号（入出力／メモリ許可信号）は、前述のように対応する装置のＰＣＩ  ＦＲＡＭＥ＃信号のためのゲート信号の機能を果たすのに対し、第２の許可信号（構成許可信号）は、対応する装置のＩＤＳＥＬ信号のためのゲート信号の機能を果たす。このゲート制御を行うために、構成許可信号はＩＤＳＥＬゲート回路７０３に供給される。
【００３１】
次に図１１を参照すると、図のＩＤＳＥＬゲート回路７０３の実施形態は、前述のゲート回路７０２とほぼ類似している。ゲート回路７０３は、バス・エージェントに対応するＩＤＳＥＬ信号を受け取り、それをバス・エージェントに関連づけられた構成許可信号の状態に基づいて修正する。具体的には、構成許可信号は、パス・トランジスタ８０３とトライステート・ドライバ８０５に制御入力を提供する。パス・トランジスタ８０３は、開始側バス・エージェントが発生したＩＤＳＥＬ信号をゲート制御する。構成許可ビットがアサート（論理「１」）されると、ドライバ８０５の出力がトライステートになり、トランジスタ８０３がＩＤＳＥＬ信号と宛先バス・エージェント５０２上のＩＤＳＥＬピンとの間に低インピーダンス経路を設ける。許可ビットがデアサートされると、パス・トランジスタ８０３は実質的に開回路になり、それによってＩＤＳＥＬ信号がバス・エージェント５０２から分離される。この場合、接地に接続された入力端子を有するアクティブになったドライバ８０５によってバス・エージェント５０２のＩＤＳＥＬピンが論理ＬＯＷに保たれる。
【００３２】
本発明はＰＣＩバスなどの共用バスを介した選択的かつ安全なトランザクション・ルーティングを可能にするシステムおよび方法を企図していることが、本開示の便宜を受ける当業者なら、わかるであろう。詳細な説明と図面に示し、説明した本発明の態様は、単に現在のところ好ましい例であると受け取るべきであることを理解されたい。特許請求の範囲は、開示の好ましい実施形態のあらゆる変形態様を含むものと広く解釈されることを意図している。
【００３３】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３４】
（１）バスに接続された１組のバス・エージェントと、
前記バスに接続され、各前記バス・エージェントからバス要求信号を受け取り、それに応答して、いずれのバス・エージェントにバス・トランザクションを開始するための前記バスの支配権を認可するかを示す開始バス認可信号を各前記バス・エージェントに送るように構成されたバス・アービタと、
前記バス・アービタから前記バス認可信号のうちの少なくとも１つのバス認可信号を受け取り、それに応答して第１の許可信号を生成するように構成された許可コントローラであって、前記第１の許可信号の状態が、対応するバス・エージェントが開始側バス・エージェントから第１のタイプのバス・トランザクションの宛先として禁止されていることを示す許可コントローラとを含むデータ処理システム。
（２）前記許可コントローラが、所与の開始側／宛先対のための前記許可信号がアサートされるかどうかを制御するように動的に変更可能である、（１）に記載のシステム。
（３）前記許可コントローラが許可テーブルを含む記憶域を含み、前記許可テーブルの内容がバス・エージェント開始側とバス・エージェント宛先との許可された組合せを示す、（１）に記載のシステム。
（４）前記許可テーブルが可能性のある各開始側バス・エージェントとそれに関連づけられた認可信号に対応する行と、可能性のある各宛先バス・エージェントに対応する列とを含み、前記テーブル内の各ビットによって対応する開始側／宛先対が許可されているかどうかが示される、（３）に記載のシステム。
（５）前記許可コントローラが許可出力レジスタをさらに含み、前記許可コントローラがアサートされた前記認可信号に対応する許可テーブル行の内容を前記許可出力レジスタに転送するように構成された、（４）に記載のシステム。
（６）前記許可コントローラが、少なくとも１つの前記バス認可信号に応答する第２の許可信号を生成するようにさらに構成され、前記第２の許可信号の状態が、対応するバス・エージェントが前記開始側バス・エージェントからの第２のタイプのバス・トランザクションの宛先として禁止されていることを示す、（１）に記載のシステム。
（７）少なくとも１つの宛先バス・エージェントに関連づけられたゲート論理回路をさらに含み、前記ゲート論理回路が前記許可コントローラからの前記宛先バス・エージェントに対応する前記許可信号と、前記開始側バス・エージェントからのバス制御信号とを受け取るように構成され、前記許可信号がアサートされると前記ゲート論理回路が前記宛先バス・エージェントの制御ピンを前記バス制御信号から分離する、（１）に記載のシステム。
（８）前記ゲート論理回路が前記許可信号によって制御されるパス・トランジスタを含み、前記許可信号がアサートされると前記パス・トランジスタが前記制御信号と前記宛先バス・エージェントとの間に低インピーダンス経路を含む、（７）に記載のシステム。
（９）前記ゲート論理回路が、前記バス・エージェント宛先装置の制御ピンに接続された出力端子を有して、前記バス制御信号が前記宛先バス・エージェントから分離されるとライン・ドライバが前記制御ピンを所定の状態に駆動するように前記許可信号によって制御されるライン・ドライバをさらに含む、前記（８）に記載のシステム。
（１０）前記ゲート論理回路が前記宛先装置に関連づけられた前記認可信号を受け取り、前記許可信号の状態に応じて前記宛先装置から前記認可信号を分離するようにさらに構成された、（７）に記載のシステム。
（１１）前記許可コントローラが前記アービタの統合部分を含む、（１）に記載のシステム。
（１２）データ処理システムにおいてバスに接続するのに適合した許可コントローラであって、バス・アービタによって生成される、複数の認可信号を受け取るように構成され、前記認可信号が、対応するバス・エージェントのセットのうちのいずれのバス・エージェントが前記バスの支配権を認可されているかを示し、前記認可信号に応答し、対応するバス・エージェントが認可された前記バス・エージェントによって開始されたトランザクションの宛先として許可されているかどうかを示す少なくとも１つの許可信号を生成するようにさらに構成された許可制御論理回路を含む許可コントローラ。
（１３）前記コントローラが、選択された開始側／宛先対に対応する前記許可信号の状態を修正するように動的に変更することができる、（１２）に記載のコントローラ。
（１４）前記コントローラが選択されたバス・エージェントによってのみ変更可能である、（１３）に記載のコントローラ。
（１５）前記データ処理システムに電源投入されると選択された前記バス・エージェントが判断される、（１４）に記載のコントローラ。
（１６）前記コントローラが許可テーブルを含む記憶域を含み、前記許可テーブルの内容がバス・エージェント開始側とバス・エージェント宛先との許可された組合せを示す、（１２）に記載のコントローラ。
（１７）前記許可テーブルが可能性のある各開始側バス・エージェントとそれに関連づけられた認可信号に対応する行と、可能性のある各宛先バス・エージェントに対応する列とを含み、前記テーブル内の各ビットによって対応する開始側／宛先対が許可されているかどうかが示される、（１６）に記載のコントローラ。
（１８）許可出力レジスタをさらに含み、前記コントローラが、アサートされた前記認可信号に対応する前記許可テーブル行の内容を前記許可出力レジスタに転送するように構成された、（１７）に記載のコントローラ。
（１９）データ処理システムの共用バス上のバス・エージェントを選択的に宛先設定する方法であって、
前記共用バスに接続された複数のバス・エージェントのうちのいずれのバス・エージェントが前記バスの支配権を認可されているかを示す複数の認可信号に応答して、対応するバス・エージェントが認可された前記バス・エージェントによって開始されたトランザクションの宛先として禁止されていることを示す少なくとも１つの許可信号をアサートするステップと、
少なくとも１つの前記許可信号のアサートに応答して、対応するバス・エージェントが認可された前記マスタによって開始されたバス・トランザクションを検出するのを防ぐステップとを含む方法。
（２０）前記コントローラが許可テーブルを含む記憶域を含み、前記許可テーブルの内容がバス・エージェント開始側とバス・エージェント宛先との許可された組合せを示す、（１９）に記載の方法。
（２１）前記許可テーブルが可能性のある各開始側バス・エージェントとそれに関連づけられた認可信号に対応する行と、可能性のある各宛先バス・エージェントに対応する列とを含み、前記テーブル内の各ビットによって対応する開始側／宛先対が許可されているかどうかが示される、（２０）に記載の方法。
（２２）許可出力レジスタをさらに含み、前記コントローラがアサートされた前記認可信号に対応する前記許可テーブル行の内容を前記許可出力レジスタに転送するように構成された、（２１）に記載の方法。
【図面の簡単な説明】
【図１】従来の技術によるデータ処理システムの選択された要素を示すブロック図である。
【図２】本発明の一実施形態によるデータ処理システムの選択された構成要素を示すブロック図である。
【図３】単一のＰＣＩバスに複数のプロセッサが接続された本発明の一実施形態によるデータ処理システムの選択された構成要素を示すブロック図である。
【図４】図３のデータ処理システムにおいて使用するのに適したプロセッサの選択された機構を示すブロック図である。
【図５】本発明の一実施形態によるデータ処理システムの選択された構成要素と信号を示す図である。
【図６】本発明の一実施形態による許可テーブルとレジスタを示す図である。
【図７】対応するバス・エージェントに関連づけられたゲート回路を強調したシステムの選択された機構を示すブロック図である。
【図８】図７のゲート回路の一実施形態を示す回路図である。
【図９】本発明の動作を示すタイミング図である。
【図１０】複数のタイプのトランザクションを選択的に許可／禁止する、１つの宛先につき複数の許可信号を含むように拡張された本発明の一実施形態を示すブロック図である。
【図１１】図１０に図示した実施形態において使用するのに適したゲート回路を示す回路図である。
【符号の説明】
３０１  データ処理システム
３０３  ローカルＰＣＩバス
３０４  バス・ブリッジ
３０５  ＰＣＩバックプレーン
４０１  コア
４０２  中央処理装置
４０４  統合メモリ管理装置
４０６  命令キャッシュ
４０８  データ・キャッシュ
４１２  ＤＲＡＭコントローラ
４１４  周辺装置コントローラ
４１６  バス・マスタ・コントローラ
４１８  ＰＣＩインタフェース
４２０  ブリッジ
４２４  ＳＲＡＭ
４２６  ＳＲＡＭコントローラ
４２８  割込みコントローラ
４３０  シリアル・ポート
４３２  汎用入出力ポート
４３４  Ｉ2Ｃインタフェース
４３６  Ｅｔｈｅｒｎｅｔ（登録商標）ポート
５０１  許可コントローラ
５０２  バス・エージェント
６０２  許可テーブル
６０３  構成許可テーブル
６０５  論理ブロック
７０２  ゲート回路
７０３  ゲート回路
【図１】
0003790713.tif 000002
【図２】
0003790713.tif 000003
【図３】
0003790713.tif 000004
【図４】
0003790713.tif 000005
【図５】
0003790713.tif 000006
【図６】
0003790713.tif 000007
【図７】
0003790713.tif 000008
【図８】
0003790713.tif 000009
【図９】
0003790713.tif 000010
【図１０】
0003790713.tif 000011
【図１１】
0003790713.tif 000012