(57)【特許請求の範囲】
【請求項１】
バスインターフェースによって接続されるローカルバス及び中央バスを有するコンピュータシステムにおいて、前記ローカルバス上のプロセッサにより前記中央バス上に生じる順序でバストランザクションを記録する方法であって、
（ａ）前記プロセッサが前記ローカルバス上で開始したバストランザクションを前記バスインターフェースによって前記中央バスに転送するステップと、
（ｂ）ステップ（ａ）で前記バスインターフェースによって前記中央バスに転送されたバストランザクションを含む前記中央バス上に生じる前記バストランザクションを、前記バスインターフェースによって前記ローカルバス上に転送するステップと、
（ｃ）ステップ（ｂ）で前記バスインターフェースによって前記ローカルバスに転送されるバストランザクションを前記プロセッサによって記録することにより、前記バストランザクションが前記中央バス上に生じる前記順序で前記バストランザクションを記録するステップと
を含んでなることを特徴とする方法。
【請求項２】
ステップ（ｃ）において、前記プロセッサによって記録される前記バストランザクションがキューに記録されることを特徴とする請求項１に記載の方法。
【請求項３】
ステップ（ｃ）において、前記バスインターフェースによってステップ（ｂ）で前記ローカルバスに転送されたバストランザクションのみを前記プロセッサによって記録することを特徴とする請求項１に記載の方法。
【請求項４】
前記ローカルバス及び前記中央バスが、多層バスシステムの一部であることを特徴とする請求項１に記載の方法。
【請求項５】
バスインターフェースによって接続されるローカルバス及び中央バスを有するコンピュータシステムにおいて、前記ローカルバス上の複数のプロセッサにより前記中央バス上に生じる順序でバストランザクションを記録する方法であって、
（ａ）前記複数のプロセッサのいずれかの前記ローカルバス上で開始されるバストランザクションを、前記バスインターフェースによって前記中央バスに転送するステップと、
（ｂ）ステップ（ａ）で前記バスインターフェースによって前記中央バスに転送されるバストランザクションを含む前記中央バス上に生じるバストランザクションを、前記バスインターフェースによって前記ローカルバス上に転送するステップと、
（ｃ）ステップ（ｂ）で前記バスインターフェースによって前記ローカルバスに転送されるバストランザクションを前記複数のプロセッサの各々によって記録することにより、前記バストランザクションが前記中央バスに生じる前記順序で前記バストランザクションを記録するステップと
を含んでなることを特徴とする方法。
【請求項６】
ステップ（ｃ）において、前記バスインターフェースによってステップ（ｂ）で前記ローカルバスに転送されたバストランザクションのみを前記複数のプロセッサの各々によって記録することを特徴とする請求項５に記載の方法。
【請求項７】
ステップ（ｃ）において、前記複数のプロセッサの各々によって記録される前記バストランザクションを前記プロセッサ内のキューに記録することを特徴とする請求項５に記載の方法。
【請求項８】
前記ローカルバス及び前記中央バスが多層バスシステムの一部であることを特徴とする請求項５に記載の方法。
【請求項９】
ローカルバスと、
中央バスと、
前記ローカルバスに結合されるプロセッサと、
前記ローカルバスと前記中央バスとに結合されるバスインターフェースとを含んでなり、前記バスインターフェースは、
前記ローカルバスと前記中央バスとに結合され、前記プロセッサが前記ローカルバス上で開始するバストランザクションを前記中央バスに転送する第１の転送手段と、
前記ローカルバスと前記中央バスとに結合され、前記中央バスに前記第１の転送手段によって転送されるバストランザクションを含む前記中央バスに生じるバストランザクションを、前記ローカルバスに転送する第２の転送手段とを含み、
前記プロセッサが、第２の転送手段によって前記ローカルバスに転送されるバストランザクションを記録する記録手段を含み、それによって前記中央バスにバストランザクションが生じる順序でバストランザクションを記録することを特徴とするコンピュータシステム。
【請求項１０】
前記プロセッサが、キューと、該キューに前記バストランザクションを記録する前記記録手段をさらに含んでいることを特徴とする請求項９に記載のコンピュータシステム。
【請求項１１】
前記ローカルバスに結合される第２のプロセッサをさらに含み、該第２のプロセッサが第２の転送手段によって前記ローカルバスに転送されるバストランザクションを記録する第２の記録手段を含んでいることを特徴とする請求項９に記載のコンピュータシステム。
【請求項１２】
前記第２のプロセッサが第２のキューをさらに含み、前記第２の記録手段が前記第２のキューに前記バストランザクションを記録することを特徴とする請求項１１に記載のコンピュータシステム。
【請求項１３】
前記記録手段及び前記第２の記録手段が、前記第２の転送手段によって前記ローカルバスに転送されるバストランザクションのみを記録することを特徴とする請求項１１に記載のコンピュータシステム。
【請求項１４】
前記記録手段が、前記第２の転送手段によって前記ローカルバスに転送されるバストランザクションのみを記録することを特徴とする請求項９に記載のコンピュータシステム。
【請求項１５】
前記ローカルバス及び前記中央バスが多層バスシステムの一部であることを特徴とする請求項９に記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、多層バスシステムのバストランザクションの該システム内での統一性のある順序付けに関する。
【０００２】
【従来の技術】
最新のコンピュータシステムの大部分は、中央処理装置（ＣＰＵ）及びメインメモリを含んでいる。性能を向上させるために、単一のＣＰＵは、例えば、高バンド幅メモリシステムに対する高速アクセスを有する多くのプロセッサによって置き換えられることがある。一つのシステムでは、高マルチプロセッサ性能は、高バンド幅コヒーレントバスに配置された密結合対称多重処理ＲＩＳＣ（Reduced  Instruction  Set  Computer)プロセッサを使用することによって達成される。例えば、ケイ・チャン(K.Chan)、ティー・アレクサンダー(T.Alexander)、シー・ヒュー(C.Hu)、デー・ラーソン(D.Larson)、エヌ・ノーデン(N.Noordeen)、ワイ・ブァナッタ(Y,VanAtta)、ティー・ウェレガラ(T.Wylegala)、エス・ジアイ(S.Ziai)著「ＨＰ社のビジネスサーバーのマルチプロセッサ機能（Multiprocessor Features of the HP Coporate Business Servers)」、IEEE Compon Digest of Papers,February 1993,pp336-337を参照。
【０００３】
上記で引用した論文に記載されているシステムでは、各プロセッサがキャッシュ及び変換索引バッファ（ＴＬＢ）のコヒーレンシーの目的のためにバス上のバストランザクションを監視することが必要である。バストランザクションを監視するとき、各プロセッサがバストランザクションそれ自体と同様にバストランザクションの順序を追跡することが重要である。これは、例えば、バストランザクションキューによって行われる。各プロセッサはバスを監視する。プロセッサそれ自体によるバストランザクションを含むバストランザクションがバス上で発生されるときはいつでも、プロセッサはこのバストランザクションをキューに配置する。したがって、バストランザクションは、バストランザクションがバス上で発生される順序でキューにリストされる。
【０００４】
システムプロセッサが単一のプロセッサのメモリバスを使用しているシステムがバストランザクションの経過を追跡するためにキューを使用することが可能であるが、多層バスシステムがバストランザクション順序を追跡することが必要であるとき問題点が生じる。特に、多層バスシステムでは、一般にバスインターフェースの一部の種類は各バス層間で使用される。このようなバスインターフェースは、バストランザクションが一方のバスから他方のバスに中継されるとき、著しい遅延量を加え得る。さらに、各バスは独立にかつ同時に作動することが望ましい。
【０００５】
このような場合、各バス上の全てのバストランザクションは全ての他のバスにエコーされ得る。これにより、各システムプロセッサは自分が接続されるバスに関係なくコンピュータシステムで実行される各バストランザクションを確実に観察できる。しかしながら、システムプロセッサによって観察されるバストランザクションの順序は、システムプロセッサが接続される特定のバスに依存する。
【０００６】
観察されたバストランザクション順序がコンピュータシステムの全てのバスに対して同一であることを確実にする一つの方法は、異なるバス上の異なるバストランザクションを同時に実行するコンピュータシステム能力を停止することにある。すなわち、第１のバストランザクションが一方のバス上で生じるときは常に、他方のバス上の新しいバストランザクションは、第１のバストランザクションが他方のバスに伝搬してしまうまで停止される。しかしながら、このようなバスアクティビティの停止はコンピュータシステムの性能を著しく削ぐ傾向がある。
したがって、各バスが他のバスによるバスバストランザクションの実行と同時に自己のバスバストランザクションを実行し、かつ多層バスシステムの各システムプロセッサが同一のバストランザクション順序を観察し遵守できる多層バスを実現することが望ましい。
【０００７】
【課題を解決するための手段】
本発明の好ましい実施例によれば、多層バスシステムを有するコンピュータシステムが提示される。多層バスシステムは１つ以上のローカルバス及びバスインターフェースによって各ローカルバスに接続される中央バスを含んでいる。各ローカルバス上のプロセッサは、バスバストランザクションが中央バス上に生じる順序でバストランザクションを記録する。バスインターフェースは、複数のプロセッサのどれかがローカルバス上で開始するバストランザクションを中央バスに転送する。この中央バス上に生じるバストランザクションは、バスインターフェースによって中央バスに転送されるバストランザクションを含んでいる。各プロセッサは、バスインターフェースによってローカルバスに転送されるバストランザクションを記録する。好ましい実施例では、プロセッサはバスインターフェースによって転送されるバストランザクションのみを記録する。また、好ましい実施例では、プロセッサのそれぞれはプロセッサ内のキューにバストランザクションを記録する。
【０００８】
好ましい実施例では、たとえばバストランザクションがローカルバス上に最初に生じるときプロセッサがそのバストランザクションを記録せず、バストランザクションがバスインタフェースによって中央バスからエコーバックされるまではバストランザクションの記録をしないで待つ点が従来技術と異なる。この例では多層バスシステムを使用して互いに接続されたすべてのプロセッサに対してバストランザクションの同一記録を提供する。各プロセッサによって記録されるバストランザクション（各プロセッサ自身のバストランザクションも含む）の順序は、バストランザクションが中央バス上に生じる順序である。
【０００９】
【実施例】
図１は、本発明の好ましい実施例に従ってコンピュータシステム内の多層バスシステムの簡略ブロック図を示す。バスインターフェースであるプロセッサ・メモリインターフェース（ＰＭＩ）11及びプロセッサ・メモリインターフェース（ＰＭＩ）12は、中央バス10に接続される。ＰＭＩ11は、中央バス10をローカルバス20にインターフェースする。ＰＭＩ12は、中央バス10をローカルバス25にインターフェースする。プロセッサ（ＰＲＯＣ）21及びプロセッサ22は、ローカルバス20に接続される。プロセッサ（ＰＲＯＣ）26及びプロセッサ（ＰＲＯＣ）27は、ローカルバス25に接続される。
【００１０】
好ましい実施例では、プロセッサ21、プロセッサ22、プロセッサ26及びプロセッサ27のそれぞれは、キャッシュ及び変換索引バッファ（ＴＬＢ）のコヒーレンシーの目的のために多層バスシステム上のバストランザクション（ＴＲあるいトランザクション）を監視する。これは、例えば、キュー（ＱＵＥＵＥ：待ち行列）を使用して行われ得る。各プロセッサは、そのキューに配置されるバストランザクションの相対順序によってバストランザクション順序を決定する。好ましい実施例はキューを使用しているが、各プロセッサが多層バスシステム内のトランザクショ
ンの相対順序を決定する手段を持つ限りでは、キューは使用されないことが当該技術で良く理解されるだろう。
【００１１】
図２はプロセッサ21内のキュー（ＱＵＥＵＥ）32を示している。好ましい実施例では、プロセッサ21はキュー32に配置されたバストランザクションの相対順序によってバストランザクション順序を決定する。ＰＭＩ１１の内部の転送ロジック31は、中央バス10とローカルバス25間でバストランザクションを転送する。
【００１２】
好ましい実施例では、バストランザクション順序が多層システム中で同一であることを確実にするために、多層システムに対するバストランザクション順序は、中央バス10上のバストランザクション順序であるように決定される。したがって、転送ロジック31は、ローカルバス20上で実行される全てのバストランザクションを中央バス10に転送する。同様に、転送ロジック31は、中央バス10上で実行される全てのバストランザクションをローカルバス20に転送する。
【００１３】
図３は、本発明の好ましい実施例に従ってキュー32にバストランザクションを配置するための方法を示すフローチャートである。ステップ41では、プロセッサはローカルバス上のバストランザクションを監視する。ローカルバス上の監視されたバストランザクションは、ＰＭＩと同様に監視を実行するプロセッサを含むローカルバス上の全てのプロセッサによって発生されたバストランザクションを含んでいる。バストランザクションが検出されるとき、ステップ42では、バストランザクションがＰＭＩから生じるかかどうかに関する決定が行われる。バストランザクションがＰＭＩから生じるならば、バストランザクションはステップ43でキューに記録される。バストランザクションがＰＭＩから生じないならば、バストランザクションはキューに記録されない。次に、プロセッサは、ローカルバス上の次のバストランザクションを待つローカルバス上のバストランザクションの監視を再開する。
【００１４】
図４は、それによって本発明の好ましい実施例に従ってＰＭＩが中央バス10とローカルバス間でバストランザクションを転送する方法を示すフローチャートである。ステップ51では、ＰＭＩは、中央バス10とローカルバスの両方上のバストランザクションを監視する。ローカルバス上の監視されたバストランザクションは、ローカルバス上の全てのプロセッサによって発生されたバストランザクションを含んでいる。ローカルバス上のＰＭＩから生じるバストランザクションは監視されない。中央バス上10上の監視されたバストランザクションは、全てのプロセッサ及び監視を実行するＰＭＩを含む中央バス10に接続されるＰＭＩを含んでいる。バストランザクションが検出されるとき、バストランザクションが中央バス10上にあるかどうかに関する決定が行われる。バストランザクションが中央バス10上にあるならば、ステップ53では、バストランザクションはローカルバスに転送される。バストランザクションが中央バス上にないならば、すなわち、それがローカルバス上にあるならば、バストランザクションは中央バス10に転送される。次に、ＰＭＩは、バス10上及び次のバストランザクションを待つローカルバス上のバストランザクションの監視を再開する。ローカルバス20から中央バス10に転送されるバストランザクションは、ＰＭＩ11によってローカルバス20にエコーバックされる。しかしながら、中央バス10からローカルバス20に転送されるバストランザクションは中央バス10にエコーバックされない。
【００１５】
好ましい実施例による多層バスの動作を、いかにしてプロセッサ21がバストランザクションをキュー32に加えるかを観察することで説明する。例えば、図５では、時刻１において、メッセージ61によって表されるバストランザクションＡが、中央バス10上に配置される。図６では、時刻２において、図４に示されるフローチャートに従って、メッセージ62によって表されるようにローカルバス20に転送されるバストランザクションＡを有する。また同時刻２において、メッセージ63によって表されるバストランザクションＢが中央バス10上に配置される。
【００１６】
図７では、時刻３において、図３に示されたフローチャートに従って、プロセッサ21はキュー32にバストランザクションＡ（ＴＲ  Ａ）を記録している。プロセッサ21はまた、メッセージ64によって表されるようにローカルバス20上のバストランザクションＴ（ＴＲ  Ｔ）を開始している。図３に示されたフローチャートに従って、プロセッサ21は、バストランザクションＴがＰＭＩによって発生されなかっため、プロセッサ21はキュー32にバストランザクションＴを記録していない。同時刻３において、ＰＭＩ１１は、メッセージ65によって表されるようなローカルバス20をアクセスする機会を待つバストランザクション65を記憶している。
【００１７】
図８では、時刻４において、図４に示されるフローチャートに従って、プロセッサ11は、メッセージ66によって表されるようにローカルバス20にバストランザクションＢ（ＴＲ  Ｂ）を転送している。また同時刻４において、図４に示されるフローチャートに従って、プロセッサ１１は、メッセージ67によって表されるように中央バス10にバストランザクションＴを転送している。
【００１８】
図９では、時刻５において、図３に示されるフローチャートに従って、プロセッサ21は、キュー32にバストランザクションＢを記録している。また同時刻５においてＰＭＩ11は、図４に示されたフローチャートに従ってメッセージ68によって表されるようにローカルバス20にバストランザクションＴをエコーしている。また、同じく時刻５にメッセージ69によって表されるバストランザクションＣ（ＴＲ  Ｃ）が中央バス10上に配置される。
【００１９】
図10では、時刻６に、図３に示されたフローチャートに従って、プロセッサ21はキュー32にバストランザクションＴを記録している。また、同時刻６に、ＰＭＩ11は、図４に示されるフローチャートに従って、メッセージ70によって表されるようにローカルバス20にバストランザクションＣを転送している。バストランザクションＴがＰＭＩ１１によってエコーバックされるまでバストランザクションＴがキュー32に記録されていないことに注目することが重要である。
【００２０】
図11では、図３に示されたフローチャートに従って、時刻７において、プロセッサ21はキュー32にバストランザクションＣを記録している。キュー32の最終値は、バストランザクションが中央バス10上に生じた順序を反映し、バストランザクションがローカルバス上に生じた順序を必ずしも反映しない。
【００２１】
前述の検討は本発明の単なる例示的な方法及び実施例を開示及び記載する。当業者によって理解されるように、本発明はその精神又は本質的特性から逸脱しないで他の特定形態で実施されることができる。したがって、本発明の開示は本発明の範囲の例示であることを意図されているが、特許請求の範囲に明かにされる本発明の範囲を限定することを意図されていない。
【００２２】
【発明の効果】
好ましい実施例において、階層バスシステムに接続された各プロセッサにより記録され処理されるバストランザクション（各プロセッサ自身のバストランザクションも含む）の順序は、バストランザクションが中央バス上に生じる順序に統一された。このように全プロセッサのバストランザクションの順序を統一的に記録することにより、各バスが他のバスによるバストランザクションの実行と同時にバストランザクションを実行し、かつ多層バスシステムの各システムプロセッサが同一のバストランザクション順序を観察し遵守できる多層バスシステムが実現される。
【図面の簡単な説明】
【図１】本発明の好ましい実施例に従う多層バスシステムの簡略ブロック図を示している。
【図２】本発明の好ましい実施例に従って図１に示されている多層バスシステム内のプロセッサの中のキューとプロセッサ・メモリインターフェース内の転送ロジックとを説明するための図である。
【図３】本発明の好ましい実施例に従ってバストランザクションをキューに配置する方法を示すプロセッサの動作のフローチャートである。
【図４】本発明の好ましい実施例に従ってバストランザクションをバス間で転送するための方法を示すプロセッサ・メモリインターフェースの動作のフローチャートである。
【図５】本発明の好ましい実施例に従ってバストランザクションをキューに配置する方法を説明するための図である。
【図６】本発明の好ましい実施例に従ってバストランザクションをキューに配置する方法を説明するための図である。
【図７】本発明の好ましい実施例に従ってバストランザクションをキューに配置する方法を説明するための図である。
【図８】本発明の好ましい実施例に従ってバストランザクションをキューに配置する方法を説明するための図である。
【図９】本発明の好ましい実施例に従ってバストランザクションをキューに配置する方法を説明するための図である。
【図１０】本発明の好ましい実施例に従ってバストランザクションをキューに配置する方法を説明するための図である。
【図１１】本発明の好ましい実施例に従ってバストランザクションをキューに配置する方法を説明するための図である。
【符号の説明】
10 :  中央バス
11、12:  プロセッサ・メモリインターフェース(PMI)
20:  ローカルバス
21、22 、26、27: プロセッサ（ＰＲＯＣ）
31:  転送ロジック
32:  キュー（ＱＵＥＵＥ）
【図１】
0003698458.tif 000002
【図２】
0003698458.tif 000003
【図３】
0003698458.tif 000004
【図４】
0003698458.tif 000005
【図５】
0003698458.tif 000006
【図６】
0003698458.tif 000007
【図７】
0003698458.tif 000008
【図８】
0003698458.tif 000009
【図９】
0003698458.tif 000010
【図１０】
0003698458.tif 000011
【図１１】
0003698458.tif 000012