(57)【特許請求の範囲】
【請求項１】
バス・システムであって、
前記バス・システムは、複数の構成要素モジュールと、メモリと、メモリ制御手段と、前記構成要素モジュールを相互に結合すると共に前記構成要素モジュールを前記メモリ及び前記メモリ制御手段に結合するバスとを有するものであり、
前記構成要素モジュールの各々は、トランザクションをバス上で発行し受け取ることができるものであり、前記トランザクションは複数のタイプのいずれかに分類されるものであり、前記タイプが、トランザクションが前記バス上に置かれた時点で前記メモリのイメージに対してメモリのイメージを修正するかメモリのイメージをサンプリングするトランザクションである第１のトランザクション・タイプと、トランザクションが前記バス上に置かれた時点で前記メモリのイメージに対してメモリのイメージを修正せず、かつ、メモリのイメージをサンプリングしないトランザクションである第２のトランザクション・タイプとを有するものであり、
前記構成要素モジュールのうちの１つである第１の構成要素モジュールは、外部の信号に応じて、該第１の構成要素モジュールにより前記バス上に発行されるトランザクションのタイプを制限するための手段を備えており、
前記構成要素モジュールのうちの１つである第２の構成要素モジュールは、１つ又は複数のアトミック・トランザクションを発行する必要があることを示すアトミック信号を生成するための手段を備えており、
前記メモリ制御手段は、前記アトミック信号に応じてトランザクション・タイプ許可信号を生成し前記構成要素モジュールの全てに対して伝達するものであり、該トランザクション・タイプ許可信号が、前記第１の構成要素モジュールが前記第１のトランザクション・タイプのトランザクションを発行するのを防止すると共に、前記第１の構成要素モジュールが前記第２のトランザクション・タイプのトランザクションを発行するのを許可するものである、
ことを特徴とするバス・システム。
【請求項２】
前記構成要素モジュールが、前記トランザクション・タイプ許可信号に基づいて前記バスの制御を求める該構成要素モジュール自体間の調停を行うための手段を含むことを特徴とする請求項１に記載のバス・システム。
【請求項３】
前記構成要素モジュールのうちの２つがキャッシュ・メモリを含み、前記第２のトランザクション・タイプが前記２つの構成要素モジュール間でのキャッシュ間コピーを含むことを特徴とする請求項１に記載のバス・システム。
【請求項４】
前記トランザクション・タイプ許可信号が前記構成要素モジュールに伝達される前に発行されたトランザクションに応じてデータを返すトランザクションを前記第２のトランザクション・タイプが含むことを特徴とする請求項１に記載のバス・システム。
【請求項５】
前記第１のトランザクション・タイプが、前記メモリからデータを読み出すトランザクションを更に含むことを特徴とする請求項１に記載のバス・システム。
【請求項６】
少なくとも１つの構成要素モジュールが、キャッシュ・メモリを有し、前記第２のトランザクション・タイプが、該キャッシュ・メモリから前記メモリへのダーティ・データの書込み直しを含むことを特徴とする請求項１に記載のバス・システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、バスに関し、詳細には、コンピュータ・システムのメモリと入出力装置とその他の構成要素の間で情報を運ぶことができる共用バスの制御システムに関する。
【０００２】
【従来の技術】
コンピュータ・システムは一般に、プロセッサ、メモリ、入出力装置や、構成要素間で情報を転送するための共用バスなど複数の構成要素を備える。通常、構成要素には、１つまたは複数のプロセッサ、メモリ、及び／又は入出力装置を含むことができ、各々は、構成要素モジュールの形でバスに結合されている。入出力モジュールは、メイン・システム・バスと、１つまたは複数の入出力装置が結合された入出力バスとの間でインタフェースを提供する入出力アダプタから成ることが多い。
【０００３】
情報は、それぞれ、モジュールがバスの制御を有し、限られた量の情報をバス上で転送することを許可される期間である、バス「サイクル」中にシステム・バス上で構成要素モジュール間で送られる。モジュールは一般に、従来型の「読取り」トランザクションおよび「書込み」トランザクションなどの「トランザクション」をバス上で他のモジュールに送る。各トランザクションが完了するには一般に１サイクル以上かかる。所与のサイクル中にバスを制御する資格があるモジュールは一般に、初期の１サイクル又は複数サイクル中に行われるモジュール間の調停によって決定される。
【０００４】
多くの場合、モジュールは、１組の関連するトランザクションの実行中に他のトランザクションによってデータを修正されることなく、前記１組のトランザクションを連続的に実行することを要求される。言い換えると、モジュールは、ある数組のトランザクションのために一貫したメモリ・イメージを処理する必要がある。そのような数組のトランザクションを一般に、「アトミック動作」または「アトミックにリンクされたトランザクション」と呼ぶ。アトミック動作が必要なのは、たとえば２つ以上のモジュールが各々特定のメモリ・アドレスに関連するデータを読み取り、そのデータを処理し、次いで修正されたデータをそのメモリ・アドレスに書き込み直すことを要求される場合である。ソフトウェアは、これらの実行されねばならない数組のトランザクションの順序を命令する。もし、それらのトランザクションがアトミック動作として必要な順序で実行されない場合、誤った結果が得られる。
【０００５】
たとえば、プロセッサ・モジュールは、（たまたま値が「Ｘ」である）メモリ・アドレスに関連するデータを読み取ることと、データをクリアすることと、動作の結果（すなわち「０」）を同じアドレスに書き込むことから成るアトミック動作を実行することを要求される。入出力モジュールは、（現在、値が「０」である）データを同じメモリ・アドレスから読み取ることと、そのデータを１だけ増分することと，次いで結果（すなわち「１」）を同じアドレスに書き込むことから成るアトミック動作を順次実行することを要求される。したがって、これら２つの連続アトミック動作の結果として、関連するメモリ・アドレスに値「１」が記憶される。
【０００６】
しかし、正しい結果が得られるためには、入出力モジュールがデータを読み取る前にプロセッサ・モジュールがそのアトミック動作を完了しておくことが必要である。プロセッサ・モジュールがその書込みトランザクションを完了する前に入出力モジュールがデータを読み取った場合、書込みトランザクションが実行される順序にかかわらず誤った結果が得られる。具体的には、入出力モジュールは、値「Ｘ」を読み取り、そのデータを増分し、続いて値「Ｘ＋１」をそのメモリ・アドレスに書き込む。入出力モジュールがこの値を書き込むまでにプロセッサ・モジュールがすでにその書込みトランザクションを完了したと仮定すると、各モジュールがその動作を実行した後、関連するメモリ・アドレスに間違った値「Ｘ＋１」が残る。プロセッサは、その書込みトランザクションを完了しなかった場合、続いて、間違った値「０」をそのアドレスに書き込む。
【０００７】
多数の従来型のバス・システムでは、モジュールがバスを「ロック」できるようにする。すなわち、そのモジュールがアトミック動作を実行しなければならない間、他のモジュールがバスを使用するのを妨げるためである。したがって、モジュールは、アトミック動作を実行しなければならない場合、単純に、アトミックにリンクされたトランザクションをすべて完了するのに必要なサイクル数の間バスをロックし、その後その「ロック」を解除し、他のモジュールがバスを使用できるようにする。
【０００８】
複数のバスがリンクされ、トランザクションが複数のバスを介して情報を送ることを含む場合、一般に、アトミックにリンクされたトランザクションが実行されている間、すべてのバスをロックする必要がある。たとえば、ＥＩＳＡ（「拡張業界標準アーキテクチャ (Extended Industory Standard Architecture)」）バス上で情報を送るための従来型のＥＩＳＡカードは、アトミックにリンクされたトランザクションを最大で６４個まで発行することができる。ＥＩＳＡバスは、バス・アダプタを介して入出力バスに結合され、入出力バスは続いて、コンピュータのメイン・メモリに結合されたメイン・コンピュータ・バスに入出力バス・アダプタを介して結合される。したがって、このようなカードはＥＩＳＡバス、入出力バス、およびメイン・コンピュータ・バスを介してコンピュータのメイン・メモリとのインタフェースをとる。多数の従来型のシステムでは、入出力バスとメイン・コンピュータ・バスは共に、アトミックにリンクされた６４個のトランザクションに必要な全期間中だけロックされ、他のモジュールには、この期間中にコンピュータ・バスに関する調停に勝利する資格は与えられない。バスをロックすることの欠点は、バスがロックされる期間中に多数のバス・サイクルが「無駄になる」ことである。この理由は、アトミック的にロックされた各トランザクションが、バスが使用されない処理時間を含むためである。また、読取りトランザクション時のメモリの待ち時間は数バス・サイクルになることがある。
【０００９】
アトミック動作の処理は、特に、バスに結合された１つまたは複数のモジュールがキャッシュ・メモリを有する、「分割トランザクション」の場合に更に複雑である。分割トランザクション・バスは、最初に発行されたトランザクションの実行中にモジュールがトランザクションを発行できるようにすることによって、メモリ待ち時間に関連する遅延の影響を低減するように設計される。たとえば、分割トランザクション・バスでは、要求のすぐ後に読取りトランザクションに対する応答が続く必要はなく、バスは、要求されたデータが検索される期間中には他のトランザクションに使用されることができる。応答側モジュールは、要求されたデータを返す準備ができると、調停を行い、バスの制御を得て、次いで、要求されたデータを要求側モジュールに送る。したがって、分割トランザクション・バスは、一般にデータを求める要求が処理される間、バス・サイクルを「無駄にする」必要をなくす。
【００１０】
分割トランザクション・バスをロックすると、システムがデッドロック状態になる可能性がある。つまり、モジュールは、以前に発行された１つまたは複数の分割トランザクションが実行される（すなわち、応答されていない）間、バスをロックすることができる。アトミックにリンクされたトランザクションのうちの１つが、最初に発行されたトランザクションが完了するまで得ることができないデータを必要とすることがあるが、バスがロックされているので、最初に発行されたトランザクションを完了することはできない。
【００１１】
上述のようにシステムがデッドロック状態になる一例として、１つまたは複数のプロセッサがキャッシュ・メモリを有する共用メモリ・マルチプロセッサ・コンピュータ・システムのケースを検討するのは有用である。そのようなコンピュータでは、所与の時点で特定のメモリ・アドレスに関連する最新のデータを１つまたは複数のキャッシュ・メモリ及び／又はメイン・メモリ、あるいはその両方に記憶することができる。モジュールがあるメモリ・アドレスのデータを要求すると、従来型の「キャッシュ・コヒーレンシ方式」によって、現データを有するモジュールまたはメモリによって最新のデータが供給される。
【００１２】
しかし、ある入出力モジュールがアトミック動作のためにバスをロックすると仮定すると、アトミックにリンクされたトランザクションのうちの１つが、現在の値がプロセッサのキャッシュ・メモリにしか記憶されていないデータを要求することがある。バスがロックされているので、プロセッサはデータを返すためにバスの調停を行うことができず、システムはデッドロック状態になる。デッドロック状態を検出して、ロックを一時的に解除することは可能であるが、そのような設計はアトミシティに関するＥＩＳＡ規格を満たさない。さらに、ハードウェアを追加すると、システムのコストが増加する。
【００１３】
したがって、デッドロックを発生させずに分割トランザクションに対するアトミック動作に適応するための手段が必要である。
【００１４】
【発明が解決しようとする課題】
大まかには、本発明の一目的は、改良された分割トランザクション・バス・システムを提供することである。
【００１５】
本発明の他の目的は、デッドロックを発生させずに分割トランザクションに対するアトミック動作に適応するための手段を提供することである。
【００１６】
本発明の他の目的は、バスをロックすることによる不要な遅延なしでアトミック動作に適応するための手段を提供することである。
【００１７】
本発明のこれらのおよびその他の目的は、本発明および好適実施例の以下の詳細な説明、添付の図面、添付の特許請求の範囲から当業者に明らかになろう。
【００１８】
【課題を解決するための手段】
概括的に言うと、本発明は、１組の構成要素モジュールをメモリに結合するバス・システムである。各構成要素モジュールは、トランザクションをバス上で発行し受け取ることができる。バス上のトランザクションは２つ以上のタイプに分割される。それらは、第１のトランザクション・タイプのトランザクションがバス上に置かれた時点でのメモリのイメージに呼応してメモリのイメージを修正またはサンプリングする第１のトランザクション・タイプと、第２のトランザクション・タイプのトランザクションがバス上に置かれた時点で存在するメモリ・イメージを修正もサンプリングもしない第２のトランザクション・タイプを含む。
【００１９】
このバス・システムは、構成要素モジュールを相互に結合し、かつメモリに結合するバスを含む。各構成要素モジュールは、それによってバス上で発行されるトランザクションのタイプを制限するための外部信号に応答する。少なくとも１つのモジュールは、モジュールが１つまたは複数のアトミック・トランザクションを発行する必要があることを示すアトミック信号を生成するための手段も含む。
【００２０】
このバス・システムは、アトミック信号に応答して、構成要素モジュールへのトランザクション・タイプ許可信号を生成するバス制御手段も備える。トランザクション・タイプ許可信号は、構成要素モジュールが第１のトランザクション・タイプのトランザクションを発行するのを妨げる。
【００２１】
【実施例】
本発明は、コンピュータ・システムと共に使用できる分割トランザクション・バスを含み、バスをロックせずに、かつアトミック動作時のデッドロックの可能性なしで、アトミック動作に適応するものである。このコンピュータ・システムは、バスと、バス上で相互にトランザクションを送る構成要素モジュールと、任意の所与の時間にバス上で送ることができるトランザクションのタイプを指定するバス制御装置とを備える。
【００２２】
バス制御装置は、情報を記憶するために構成要素モジュールによって使用されるメイン・メモリに接続することが好ましい。１つまたは複数のモジュールは、ローカル・キャッシュ・メモリを備えることもできる。任意の所与の時間でのメモリの内容は、アドレスのリストおよび各アドレスに関連するデータ値とみなすことができる。一般に、メイン・メモリには、ある予め決められた範囲のアドレス中の各メモリ・アドレスに関連する１つの位置がある。このようなアドレスの１つに関連する最新のデータの位置は、メイン・メモリの中、またはいくつかの構成要素モジュールに位置するキャッシュ・メモリのうちの１つの中にある。時間ｔでのメモリ・イメージは、上述の範囲のアドレスのリストと、時間ｔでの各アドレスに関連するデータに関数的に等価である。都合上、時間ｔを、トランザクションがバス上に置かれる時間と定義する。
【００２３】
メモリ・イメージを時間ｔでの値から変更し、あるいはメモリ・イメージをサンプリングするものと、メモリ・イメージを変更することも、サンプリングすることもないものの２つのトランザクション・クラスを時間ｔに関して識別することができる。時間ｔよりも後に発行された入出力書込みトランザクションは、少なくとも１つのアドレスに関連するデータを修正するので、メモリ・イメージを変更する。読取りトランザクションは、メモリ・イメージをサンプリングする。これに対して、時間ｔよりも前に発行されたトランザクションに応答する、プロセッサへのデータのリターンや、キャッシュ間コピーでは、メモリ・イメージが修正されることも、サンプリングされることもない。データ・リターンでは、時間ｔよりも前の時間でのイメージに関連するデータが提供される。キャッシュ間コピー動作ではどんなデータ値も変更されない。なぜなら、そのようなトランザクションでは、あるアドレスに関連するデータが記憶される物理位置が変更されるだけだからである。同様に、プロセッサのキャッシュからメモリへの専用ダーティ・データの書込み直しでもデータ値は変更されない。なぜなら、このトランザクションではデータの物理位置がキャッシュからメイン・メモリへ変更されるだけだからである。
【００２４】
１つのモジュールがアトミック動作を実行しているとき、バス制御装置は、アトミック動作が開始された時点でのメモリ・イメージを変更しないものにトランザクションを制限する。しかし、バス制御装置は、応答もデータ・リターンもメモリ・イメージを修正しないと仮定し、応答およびデータ・リターンを許可する。
【００２５】
本発明による典型的なコンピュータ・システムのブロック図を図１の１０で示す。コンピュータ・システム１０は、バス１２と、バス１２に結合された複数の構成要素とを有するマルチプロセッサ・コンピュータである。これらの構成要素には、メイン・メモリ制御装置１４、入出力モジュール１６および１８、プロセッサ・モジュール２０および２２が含まれる。これらの構成要素は、トランザクションをバス１２上で送り、かつ受け取ることによって相互に通信する。これらの構成要素は、任意の従来型の調停方式を使用してバス１２の制御の調停を行うことができる。
【００２６】
バス１２は、高性能プロセッサ・メモリ入出力相互接続バスである。バス１２は、分割トランザクション・バスである。たとえば、バス１２上でＲＥＡＤトランザクションが発行された後、ＲＥＡＤを発行したモジュールはバスを放棄して、他のモジュールが他のトランザクションのためにバスを使用できるようにする。要求されたデータが利用可能であるとき、ＲＥＡＤに関する応答側モジュールはバスの調停を行い、次いでデータを送る。ＷＲＩＴＥトランザクションは分割されず、したがって、マスタはアドレス・サイクルの直後にＷＲＩＴＥデータを送る。
【００２７】
プロセッサ・モジュール２０および２２は、コンピュータ・システム１０用のメイン・プロセッサであり、システム用のソフトウェアはすべてのプロセッサ上で同時に実行される。
【００２８】
入出力モジュール１６および１８は、コンピュータ・システム１０と入出力装置の間のインタフェースとして働く。入出力モジュール１６および１８はそれぞれ、一般に入出力バスを介して、バス１２と入出力装置の間に結合された、少なくとも１つの入出力アダプタを含む。典型的な入出力バス３０および典型的な入出力装置３２は、入出力モジュール１８に結合されるものとして示されている。
【００２９】
入出力モジュール１６および１８はそれぞれ、ＳＴＯＰ＿ＭＯＳＴ線２６および２８を制御する。ＳＴＯＰ＿ＭＯＳＴ線は、入出力モジュールが、アトミック動作のためのメモリ・システムの有効な制御を得られるようにする。これはたとえば、他のモジュールが、関連するメモリ・アドレスからデータを読み取ることも、関連するメモリ・アドレスにデータを書き込むこともなしに、あるモジュールによっていくつかのメモリ動作を実行しなければならないときに有用である。入出力モジュールは、ＳＴＯＰ＿ＭＯＳＴをアサートすると、バス１２の「アトミック所有者」になる。以下でさらに説明するように、ＳＴＯＰ＿ＭＯＳＴがアサートされたとき、新しいトランザクションを発行することを許可されるのはアトミック所有者だけである。他のモジュールは、現メモリ・イメージを変更しないリターン・タイプまたは応答タイプのトランザクションを発行することしか許可されない。複数の入出力モジュールが同時にＳＴＯＰ＿ＭＯＳＴをアサートした場合、従来型の調停アルゴリズムを使用して、どの入出力モジュールがアトミック所有者になるかを決定することができる。
【００３０】
メイン・メモリ制御装置１４は、従来型の方法で、メイン・メモリ１５から情報を読み取り、メイン・メモリ１５に情報を記憶する責任を負う。また、メイン・メモリ制御装置１４は、クライアント・モジュールとみなすことができる残りのモジュールによってバス１２が使用される方法を指示するために「ホスト」モジュールまたは「バス制御装置」として働くことが好ましい。具体的には、メイン・メモリ制御装置１４は、各クライアント・モジュールに直接結合されたＣＬＩＥＮＴ＿ＯＰ線２４を制御する。メイン・メモリ制御装置１４は、次の利用可能なサイクル中にどんなタイプのトランザクションをバス１２上に置くことができるかを示す信号を、ＣＬＩＥＮＴ＿ＯＰ線２４上で各クライアント・モジュールに送る。ＣＬＩＥＮＴ＿ＯＰ線２４は、アトミック動作のためにＳＴＯＰ＿ＭＯＳＴがアサートされているときにバス上で発行されるトランザクションのタイプを制限するために使用される。ＣＬＩＥＮＴ＿ＯＰ線２４の使用法を、アトミック動作に適応するためのＣＬＩＥＮＴ＿ＯＰ線の使用法と共に、以下で詳細に説明する。
【００３１】
メイン・メモリだけでなく、あらゆるクライアント・モジュール（プロセッサ・モジュールと入出力モジュールの両方）は、最近使用されたデータを記憶するための従来型のキャッシュ・メモリを有することができる。通常、キャッシュ・メモリは、頻繁に使用されるデータと、このようなデータ項目がメイン・メモリに記憶されているアドレスを共に記憶する。プロセッサは、メモリ中のアドレスからデータを探し出すとき、そのデータに関連するアドレスを使用してキャッシュ・メモリにそのデータを要求する。キャッシュ・メモリは、それ自体がそのアドレスに関連するデータを保持しているかどうかを調べるための検査を行う。そうである場合、キャッシュ・メモリは、要求されたデータを直接プロセッサに返す。キャッシュ・メモリは、所望の情報を含んでいない（すなわち「キャッシュ・ミス」が発生した）場合、メイン・メモリにそのデータを要求し、そのデータを待っている間プロセッサを停止させる。キャッシュ・メモリはメインＲＡＭメモリよりも高速なので、この戦略の結果、システム性能が向上する。
【００３２】
コンピュータ・システム１０などの共用メモリ・マルチプロセッサ・コンピュータの場合、状況はいくぶんさらに複雑である。最新のデータは、１つまたは複数のキャッシュ・メモリに記憶することも、あるいはメイン・メモリに記憶することもできる。プロセッサ上で実行されるソフトウェアは、特定のアドレスに関連するデータに最新の値を使用しなければならない。したがって、特定のアドレス用のデータのコピーがすべて同じものになるように「キャッシュ・コヒーレンシ方式」を実施しなければならない。多数の従来型のキャッシュ・コヒーレンシ方式が利用可能であり、当技術分野で広く知られている。
【００３３】
典型的な書込み直しコヒーレンシ方式では、モジュールによってデータが要求されると、キャッシュ・メモリを有する各モジュールは、そのキャッシュ・メモリの「コヒーレンシ検査」を実行して、キャッシュ・メモリが、要求されたアドレスに関連するデータを有するかどうかを判定し、コヒーレンシ検査の結果を報告する。各モジュールは一般に、メイン・メモリおよび他のキャッシュ・メモリに記憶されているのと同じアドレスに関連するデータに対するモジュール自体のキャッシュ・メモリに記憶されているデータの状況も報告する。たとえば、モジュールは、そのデータが「専用」（すなわち、このデータ値を使用できるのはこのモジュールだけである）であり、あるいはデータが共用（すなわち、このデータは複数のキャッシュ・メモリに同時に存在することができる）であることを報告することができる。モジュールは、そのデータが「クリーン」（すなわち、メイン・メモリに記憶されているのと同じアドレスに関連するデータと同じものである）であり、あるいは「ダーティ」（すなわち、データが得られたあとに修正された）であることを報告することもできる。
【００３４】
各モジュールによって実行されたコヒーレンシ検査の結果は、選択されたプロセッサによって分析され、データを要求したモジュールに最新のデータが提供される。「コヒーレント・トランザクション」とは、あるメモリ・アドレスに関連するデータが他のキャッシュに記憶されているかどうかを調べ、あるいはそのデータが現データであることを検証するために、他のキャッシュを検査することを必要とするあらゆるトランザクションである。メモリとの間の大部分の読取りおよびいくつかの書込みはコヒーレント・トランザクションである。当業者は、従来型の読取り専用など多数のタイプのコヒーレント・トランザクションと、従来型の書込み直しなど非コヒーレント・トランザクションに精通している。
【００３５】
本発明の好適な実施例では、ＣＬＩＥＮＴ＿ＯＰバスは表１に示した信号をサポートする。
【００３６】
0003759193.tif 000002
【００３７】
ＡＴＯＭＩＣクライアント・オプション信号は、バスのアトミック制御に直接関係している。表１の他のＣＬＩＥＮＴ＿ＯＰ信号は、本発明によるバスのアトミック制御にとって重大なものではない。これらの他の信号は、ＡＴＯＭＩＣクライアント・オプション信号が使用されていない場合に、ＣＬＩＥＮＴ＿ＯＰバスが、所与のサイクル中に許可されるトランザクションを制限する他の可能な方法を示すために、例示のために含められている。これらの他のＣＬＩＥＮＴ＿ＯＰ信号についても簡単に説明する。
【００３８】
クライアント・オプション信号のＡＮＹ＿ＴＲＡＮＳは、次の利用可能なサイクルにはどんなトランザクションでも許可されることを示す。
【００３９】
「ＡＴＯＭＩＣ」クライアント・オプション信号は、クライアントがＳＴＯＰ＿ＭＯＳＴをアサートしたことに直接応答して生成される。ＡＴＯＭＩＣクライアント・オプション信号によって、ＳＴＯＰ＿ＭＯＳＴをアサートしているクライアントは、アトミックにリンクされたいくつかのトランザクションをバス１２上で実行することができる。ＡＴＯＭＩＣがアサートされると、他のすべてのクライアントは、最初に送られたトランザクションに応答し、あるいは以前に保持された専用ダーティ・キャッシュ線の書込み直しなど、メモリ・イメージを修正しないようにデータを送ることしか許可されない。クライアント・オプション信号のＡＴＯＭＩＣがアサートされている間は、キャッシュ間書込み、書込み直し、エラー通知トランザクション、入出力データ・リターン、メモリ・データ・リターンなどのタイプの従来型のトランザクションを許可することが好ましい。
【００４０】
上記のトランザクションがＡＴＯＭＩＣクライアント・オプション信号の間に許可されるのは、それらのトランザクションが、アトミック動作を実行する入出力装置から見たメモリのイメージを変更しないからである。言い換えると、あるメモリ・アドレスに関連する最新のデータはこのようなトランザクションでは修正されない。しかし、許可されたトランザクションは、コンピュータ・システム中の１つの位置（たとえば、キャッシュ・メモリ）から他の位置（たとえば、異なるキャッシュ・メモリまたはメイン・メモリ）へデータを移動することができる。しかし、このようにデータを移動しても、各メモリ・アドレスに関連する最新のデータ値は影響を受けず、したがって、入出力装置は、許可されたトランザクションがＡＴＯＭＩＣクライアント・オプション信号の間に実行されても、実行されなくても、一貫したメモリ・イメージを処理する。
【００４１】
新しい読取りでは、メモリがアトミック動作中にサンプリングされることになるので、ＡＴＯＭＩＣがアサートされている間、他のモジュールによって新しい読取りが許可されることはない。このため、関連するアトミック動作内のアトミックにリンクされた以後のトランザクションによって、読み取られたデータが修正された場合、誤ったデータ値が読み取られることがある。
【００４２】
ＲＥＴ＿ＯＮＬＹは、以前に保持された専用ダーティ・キャッシュ線のリターン（書込み直し）または以前のトランザクションに対する応答しか許可されないことを示す任意選択の典型的なクライアント・オプション信号である。たとえば、プロセッサ・モジュール２０が、プロセッサ２２のキャッシュに専用ダーティとして保持されているデータの読取りを発行した場合、プロセッサ２２は、従来型のキャッシュ間コピーでそのキャッシュ線を供給することができる。そのキャッシュ間コピー・トランザクションは、ＲＥＴ＿ＯＮＬＹクライアント・オプション信号の影響の下で開始することができる。なぜなら、キャッシュ間コピーは一般に、読取りに対する応答であり、モジュールが処理のための新しいトランザクションを受け入れることを必要としないからである。同様に、入出力モジュール１６は、ＲＥＴ＿ＯＮＬＹクライアント・オプション信号の影響の下で最初の入出力読取りトランザクションから得たデータを返すことができる。
【００４３】
アトミック所有者があるとき、そのアトミック所有者に有効なクライアント・オプション信号はＡＮＹ＿ＴＲＡＮＳであり、他のすべてのクライアントに有効なクライアント・オプション信号はＲＥＴ＿ＯＮＬＹであることが理解されよう。
【００４４】
本発明によれば、アトミック動作を実行する必要がある入出力モジュールは、メイン・メモリ制御装置１４および他の入出力モジュールに結合されたその入出力モジュール自体のＳＴＯＰ＿ＭＯＳＴ線をアサートする。これに応答して、メイン・メモリ制御装置１４は、クライアント・オプション信号をＡＴＯＭＩＣに変更する。複数の入出力モジュールがＳＴＯＰ＿ＭＯＳＴをアサートした場合、それらのモジュールは（任意の従来型の調停方式に従って）それら自体の間で調停を行い、どのモジュールがＡＴＯＭＩＣクライアント・オプション信号の間にアトミック動作を実行するかを決定する。
【００４５】
上述のように、ＡＴＯＭＩＣがアサートされると、他のどのモジュールも、メモリの状態を修正するトランザクションを実行することを許可されなくなる。すなわち、アトミック動作が開始された時点で現データであるデータの値を変更するトランザクションは許可されない。したがって、他のモジュールに影響を与えずにアトミック動作を有効に実行することができる。アトミック動作が完了すると、モジュールはそのＳＴＯＰ＿ＭＯＳＴ線をアサート解除する。
【００４６】
当業者には、メモリ制御装置１４が都合のためだけに、ホストまたはバス制御装置として働いており、ホスト機能とメモリ制御機能を２つ以上のモジュールとして分離できることが理解されよう。
【００４７】
「バス」と「線」の語は共に、この詳細な説明では、上記で詳細に説明した様々な組の１つまたは複数の電気経路を示すために使用された。当業者には、「バス」および「線」の語が、相互に排他的なものでも、その他の点でそれら自体を制限するものでもないことを理解されよう。たとえば、「ＣＬＩＥＮＴ＿ＯＰバス」および「ＣＬＩＥＮＴ＿ＯＰ線」は、上記で詳細に説明したように、ホストによってのみドライブされる１組のハードウェア線を示すために相互交換可能に使用された。
【００４８】
本発明の様々な修正は、上記の説明および添付の図面から当業者に明らかになろう。したがって、本発明は、特許請求の範囲によってのみ制限されるものである。
【００４９】
以上、本発明の実施例について詳述したが、以下、本発明を各実施態様毎に列挙する。
（１）．  複数の構成要素をメモリに結合するためのバス・システムにおいて、
各前記構成要素モジュールが、トランザクションをバス上で発行し受け取ることができ、前記トランザクションが複数のタイプに分割され、前記タイプが、第１のトランザクション・タイプのトランザクションが前記バス上に置かれた時点でのメモリのイメージに対して前記メモリのイメージを修正する第１のトランザクション・タイプと、第２のトランザクション・タイプのトランザクションが前記バス上に置かれた時点でのメモリのイメージに対して前記メモリのイメージを修正しない第２のトランザクション・タイプとを有し、
前記バス・システムが、
各前記構成要素モジュールが、それによって前記バス上で発行されるトランザクションのタイプを制限するための外部信号に応答し、少なくとも１つの前記構成要素モジュールがさらに、前記モジュールが１つまたは複数のアトミック・トランザクションを発行する必要があることを示すアトミック信号を生成するための手段を備える、前記構成要素モジュールを相互に結合し、かつ前記メモリに結合するバスと、
アトミック信号に応答して、少なくとも１つの前記構成要素モジュールが前記第１のトランザクション・タイプのトランザクションを発行するのを妨げる、前記構成要素モジュールへのトランザクション・タイプ許可の信号を生成するバス制御手段と
を有することを特徴とするバス・システム。
（２）．  前記モジュールが、前記トランザクション・タイプ許可信号に基づいて、バスの制御を求めるモジュール自体間の調停を行うための手段を有することを特徴とする（１）に記載のバス・システム。
（３）．  少なくとも２つのモジュールが、キャッシュ・メモリを有し、前記第２のトランザクション・タイプが前記モジュール間にキャッシュ間コピーを有することを特徴とする（１）に記載のバス・システム。
（４）．  前記第２のトランザクション・タイプが、前記トランザクション・タイプ許可信号が前記構成要素モジュールに結合される前に発行されたトランザクションに応答してデータを返すトランザクションを有することを特徴とする（１）に記載のバス・システム。
（５）．  前記第１のトランザクション・タイプが、メモリをサンプリングするトランザクションを有することを特徴とする（１）に記載のバス・システム。
（６）．  少なくとも１つのモジュールが、キャッシュ・メモリを有し、前記第２のトランザクション・タイプが、前記キャッシュ・メモリから前記メモリへのダーティ・データの書込み直しを有することを特徴とする（１）に記載のバス・システム。
【００５０】
【発明の効果】
以上のように、本発明を用いると、改良された分割トランザクション・バス・システムを提供することができ、デッドロックを発生させずに分割トランザクションに対するアトミック動作に適応するための手段を提供することができ、バスをロックすることによる不要な遅延なしでアトミック動作に適応するための手段を提供することができる。
【図面の簡単な説明】
【図１】  本発明によるアトミック動作制御機構を使用するバス・システムの好適実施例を示すブロック図である。
【符号の説明】
１０：コンピュータ・システム
１２：バス
１４：メイン・メモリ制御装置
１６：入出力モジュール
２０：プロセッサ・モジュール
２４：ＣＬＩＥＮＴ＿ＯＰ線
２６：ＳＴＯＰ＿ＭＯＳＴ線
３０：入出力バス
３２：入出力装置
【図１】
0003759193.tif 000003