(57)【要約】  情報単位を変更するシステム及び方法である。当該方法は、（ｉ）第１のバスを介して、メモリ・モジュールの第１のアドレスに配置された少なくとも１つの情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを開始する要求を受け取るステップと、（ｉｉ）当該情報単位を第１のバスを介して与えるステップと、（ｉｉｉ）更新された情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを完了しようと試みるステップと、（ｉｖ）受け取るステップ、与えるステップ及び試みるステップのうちの少なくとも１つのステップ中に、第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、当該アトミック・オペレーションを失敗したアトミック・オペレーションとして定義するステップとを含む。
2008511890.tif 000002
【特許請求の範囲】
【請求項１】
アトミック・オペレーションを用いて、情報単位を変更する方法であって、
第１のバスを介して、メモリ・モジュールの第１のアドレスに配置された少なくとも１つの情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを開始する要求を受け取るステップと、
前記情報単位を前記第１のバスを介して与えるステップと、
更新された情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを完了しようと試みるステップと、
前記受け取るステップ、前記与えるステップ及び前記試みるステップ中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、前記スヌーピング・タイプのアトミック・オペレーションを失敗したアトミック・オペレーションとして定義するステップと
を備える方法。
【請求項２】
前記受け取るステップが、スヌーピング・タイプのアトミック読み出しオペレーションを実行する要求を受け取るステップを備える請求項１記載の方法。
【請求項３】
前記完了しようと試みるステップが、更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行しようと試みるステップを備える請求項１記載の方法。
【請求項４】
前記ロッキング・タイプのアトミック・オペレーションを開始する要求が、第２のバスを介して与えられる請求項１記載の方法。
【請求項５】
前記情報単位が、セマフォーを備える請求項１記載の方法。
【請求項６】
前記試みるステップが、更新された情報単位を前記第１のバスを介して与えるステップを備える請求項１記載の方法。
【請求項７】
首尾良いスヌーピング・タイプのアトミック・オペレーションを完了するまで、前記受け取るステップ、前記与えるステップ、及び前記試みるステップを繰り返すステップを更に備える請求項１記載の方法。
【請求項８】
前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック読み出しオペレーションである請求項１記載の方法。
【請求項９】
前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック書き込みオペレーションである請求項１記載の方法。
【請求項１０】
前記第１のアドレスに配置された情報単位のスヌーピング・タイプのアトミック・オペレーションを開始する別の要求を受け取り、前記スヌーピング・タイプのアトミック・オペレーション同士間を調停するステップを更に備える請求項１記載の方法。
【請求項１１】
情報単位を変更する方法であって、
第１のバスを介して、メモリ・モジュールの第１のアドレスに配置された情報単位のアトミック読み出しオペレーションを実行する要求を受け取るステップと、
前記情報単位を前記第１のバスを介して与えるステップと、
前記受け取るステップと前記与えるステップとのうちの少なくとも１つのステップ中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされない場合、更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行するよう試みるステップと
を備える方法。
【請求項１２】
前記ロッキング・タイプのアトミック・オペレーションを開始する要求が、第２のバスを介して与えられる請求項１１記載の方法。
【請求項１３】
前記情報単位が、セマフォーを備える請求項１１記載の方法。
【請求項１４】
前記試みるステップが、更新された情報単位を前記第１のバスを介して与えるステップを備える請求項１１記載の方法。
【請求項１５】
首尾良いスヌーピング・タイプのアトミック・オペレーションを完了するまで、前記受け取るステップ、前記与えるステップ、及び前記試みるステップを繰り返すステップを更に備える請求項１１記載の方法。
【請求項１６】
前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック読み出しオペレーションである請求項１１記載の方法。
【請求項１７】
前記第１のアドレスに配置された情報単位のスヌーピング・タイプのアトミック読み出しオペレーションを実行する別の要求を受け取り、前記スヌーピング・タイプのアトミック読み出しオペレーション同士間を調停するステップを更に備える請求項１１記載の方法。
【請求項１８】
アトミック・オペレーションを用いて、情報単位を変更する装置であって、
情報単位を第１のアドレスに格納するよう適合されたメモリ・モジュールと、
第１のバス及び前記メモリ・モジュールに結合されたコントローラと、を備え、
前記コントローラが、
メモリ・モジュールの第１のアドレスに配置された少なくとも１つの情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを開始する要求を受け取り、
前記情報単位を前記第１のバスを介して与え、
更新された情報単位の前記スヌーピング・タイプのアトミック・オペレーションを完了しようと試み、
前記受け取ること、前記与えること、及び前記試みることのうちの少なくとも１つの段階中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、前記アトミック・オペレーションを失敗したアトミック・オペレーションとして定義するよう適合されている、装置。
【請求項１９】
前記ロッキング・タイプのアトミック・オペレーションを開始する要求が、第２のバスを介して与えられる請求項１８記載の装置。
【請求項２０】
前記情報単位が、セマフォーを備える請求項１８記載の装置。
【請求項２１】
前記コントローラが更に、失敗したアトミック・オペレーションを前記第１のバスを介して送るよう適合されている請求項１８記載の装置。
【請求項２２】
前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック読み出しオペレーションである請求項１８記載の装置。
【請求項２３】
前記第１のバスに結合された第１のプロセッサと、前記第２のバスに結合された第２のプロセッサとを更に備える請求項１８記載の装置。
【請求項２４】
情報単位を変更する装置であって、
第１のバスを介して、メモリ・モジュールの第１のアドレスに配置された情報単位のアトミック読み出しオペレーションを実行する要求を送るよう適合された第１の要求構成要素と、
前記情報単位を前記第１のバスを介して与えることを促進するよう構成されたコントローラと、を備え、
前記第１の要求構成要素が更に、受け取ることと与えることとのうちの少なくとも１つの段階中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされない場合、更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行するよう試みるよう適合されている、装置。
【請求項２５】
前記コントローラが更に、失敗したアトミック・オペレーションを前記第１のバスを介して送るよう適合されている請求項２４記載の装置。
【請求項２６】
前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック読み出しオペレーションである請求項２４記載の装置。
【請求項２７】
前記ロッキング・タイプのアトミック・オペレーションを開始するよう適合された第２の要求構成要素を更に備える請求項２４記載の装置。
【請求項２８】
前記第１の要求構成要素が、プロセッサである請求項２４記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、異なるタイプのアトミック・オペレーションを促進する環境内で、アトミック・オペレーションを用いて情報単位を変更する方法及び装置に関する。
【背景技術】
【０００２】
首尾良いアトミック・オペレーションは、無中断の一連のオペレーションを含む。アトミック・オペレーションは、上記一連のオペレーションが完了しなかった場合、失敗したアトミック・オペレーションとみなす。典型的なアトミック・オペレーションは、「読み出し−変更−書き込み」オペレーションを含む。
【０００３】
多くの最新のデバイスは、マイクロプロセッサ、直接メモリ・アクセス・ユニット、マイクロコントローラ、及び類似のもののような複数の半導体部品を含む。これらのますます複雑なデバイスのコストを低減するため、複数の部品が、同じシステム資源を共用する。共用される資源（以下「共用資源」と記す。）は、典型的には、メモリ・バンク、バス、周辺装置、及び類似のものである。
【０００４】
衝突を避けるため、共用資源は、その時点に唯一つのマスタ構成要素によって制御される。典型的な制御スキームは、従属（スレーブ）された構成要素（以下、「スレーブ構成要素」と記す。）を制御することを試みる前に共用資源のアベイラビリティを決定することを含む。発明の名称が「コンピュータ・システムの複数のバス・マスタ間の通信のための自己変更同期化メモリ・アドレス空間及びプロトコル（Ｓｅｌｆ−ｍｏｄｉｆｙｉｎｇ  ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｍｅｍｏｒｙ  ａｄｄｒｅｓｓ  ｓｐａｃｅ  ａｎｄ  ｐｒｏｔｏｃｏｌ  ｆｏｒ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｂｅｔｗｅｅｎ  ｍｕｌｔｉｐｌｅ  ｂｕｓ  ｍａｓｔｅｒｓ  ｏｆ  ａ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ）」であるＭｏｒｉａｒｔｙ他の米国特許Ｎｏ．６，４４６，１４９は、本明細書に援用されているが、当該米国特許は、共用資源を管理する方法を記載する。
【０００５】
共用資源のアベイラビリティは、通常、セマフォーにより表される。セマフォーは、様々な構成要素によりアクセスされることができるフラグ又はステータス・インジケータである。それは、通常、所定のメモリ・アドレスに常駐し、そしてその値は、共用資源が使用可能か否かを表す。
【０００６】
「読み出し−変更−書き込み」アトミック・オペレーションを用いてセマフォーを更新することは一般的に行われている。セマフォーを更新するための２つの一般的な方法がある。第１の方法は、セマフォー更新手順が完了するまでセマフォーを格納するメモリ・モジュールをロックすることを含む。一部の従来技術システムにおいては、メモリ・モジュール、及び任意であるが、１又はそれより多いバスが、セマフォー更新手順中にロックされる。ロッキング・タイプのセマフォー更新手順は、通常、（ｉ）メモリ・モジュールをロックし、そして任意であるが、１又はそれより多いバスをロックするステップと、（ｉｉ）要求する構成要素によりセマフォーを読み出すステップと、（ｉｉｉ）共用資源が使用可能である場合、セマフォーの値に応答して決定するステップと、（ｉｖ）セマフォー値が共用資源が使用可能であることを指示する場合、セマフォーを変えて、共用資源が要求する構成要素により用いられるべくスケジューリングされ、その他の場合には、共用されるエンティティが使用可能でないことを決定するステップと、（ｖ）前にロックされたメモリ及び１又はそれより多いバスのロックを解除するステップとを含む。この方法は、バス及びメモリ性能の著しい劣化を引き起こす。
【０００７】
第２の方法は、アドレス・スヌーピングを含む。この方法では、メモリ・モジュール、及び任意であるが、１又はそれより多いバスは、全体のプロセス中にロックされない。要求する構成要素は、他の構成要素がメモリ・モジュールにアクセスするのを防止しないで、そのメモリ・モジュールをモニタリングして、セマフォーが読み出し段階と予期された変更段階との間で変更されたかどうかを決定する。そのような変更が起きた場合、アトミック・オペレーションは、失敗したアトミック・オペレーションとしてフラグが立てられ、そして要求する構成要素は、アトミック・オペレーションを繰り返すべきかどうかを判断することができる。
【０００８】
スヌーピング・タイプのアトミック・オペレーションは、ロッキング・タイプのアトミック・オペレーションより帯域幅に関してより実効的であるが、しかし後者より複雑である。発明の名称が「データ処理システムにおいてアトミック・アクセスを実行するための方法及び装置（Ｍｅｔｈｏｄ  ａｎｄ  ａｐｐａｒａｔｕｓ  ｆｏｒ  ｐｅｒｆｏｒｍｉｎｇ  ａｔｏｍｉｃ  ａｃｃｅｓｓｅｓ  ｉｎ  ａ  ｄａｔａ  ｐｒｏｃｅｓｓｉｎｇ  ｓｙｓｔｅｍ）」であるＥｉｆｆｅｒｔの米国特許Ｎｏ．５，７２７，１７２は、本明細書に援用されているが、当該米国特許は、アドレス・スヌーピング方法を記載する。それは、複数のバス・マスタをサポートするためスヌープ論理を必要とする。
【０００９】
多くの最新の半導体部品の複雑さ、特にマイクロプロセッサの複雑さに起因して、大部分の半導体デバイスの設計は、前に開発された構成要素に基づいている。一部のケースでは、資源を共用する様々な半導体部品が、異なるタイプのアトミック・オペレーションを使用する。
【００１０】
発明の名称が「互換性のないバス・ロッキング・アーキテクチャ間のセマフォー通信方法（Ｍｅｔｈｏｄ  ｆｏｒ  ｓｅｍａｐｈｏｒｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｂｅｔｗｅｅｎ  ｉｎｃｏｍｐａｔｉｂｌｅ  ｂｕｓ  ｌｏｃｋｉｎｇ  ａｒｃｈｉｔｅｃｔｕｒｅｓ）」であるＫｒｅｉｎの米国特許Ｎｏ．５，５４８，７８０は、本明細書に援用されているが、当該米国特許は、アトミック・オペレーションを異なるバス間で伝搬させるための複数のバス・ブリッジを含むマルチプル・バス・アーキテクチャを記載する。この方法は、セマフォーが共用資源のアベイラビリティを指示することになっている或る一定の所定値を有することを必要とする。
【００１１】
発明の名称が「混合型アーキテクチャを用いてバス・ロッキングを実現するための機構（Ｍｅｃｈａｎｉｓｍ  ｆｏｒ  ｉｍｐｌｅｍｅｎｔｉｎｇ  ｂｕｓ  ｌｏｃｋｉｎｇ  ｗｉｔｈ  ａ  ｍｉｘｅｄ  ａｒｃｈｉｔｅｃｔｕｒｅ）」であるＭｏｒｒｉｓｏｎ他の米国特許Ｎｏ．６，３８１，６６３は、本明細書に援用されているが、当該米国特許は、アトミック・オペレーションをサポートするバスとアトミック・オペレーションをサポートしない別のバスとの間をブリッジするための装置及び方法を記載する。この解法は、性能に関して非常にコストがかかる。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
異なるタイプのアトミック・トランザクションを効率的に処理することができる装置及び方法を与える必要性が存在する。
【課題を解決するための手段】
【００１３】
情報単位を変更する方法は、（ｉ）第１のバスを介して、メモリ・モジュールの第１のアドレスに配置された少なくとも１つの情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを開始する要求を受け取るステップと、（ｉｉ）前記情報単位を前記第１のバスを介して与えるステップと、（ｉｉｉ）更新された情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを完了しようと試みるステップと、（ｉｖ）前記受け取るステップ、前記与えるステップ及び前記試みるステップ中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、前記スヌーピング・タイプのアトミック・オペレーションを失敗したアトミック・オペレーションとして定義するステップとを含む。
【００１４】
情報単位を変更する方法は、（ｉ）第１のバスを介して、メモリ・モジュールの第１のアドレスに配置された情報単位のアトミック読み出しオペレーションを実行する要求を受け取るステップと、（ｉｉ）前記情報単位を前記第１のバスを介して与えるステップと、（ｉｉｉ）前記受け取るステップと前記与えるステップとのうちの少なくとも１つのステップ中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされない場合、更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行するよう試みるステップとを含む。
【００１５】
情報単位を変更する方法は、（ｉ）第１のバスを介して、メモリ・モジュールの第１のアドレスに配置された情報単位のスヌーピング・タイプのアトミック読み出しオペレーションを実行する要求を受け取るステップと、（ｉｉ）前記情報単位を前記第１のバスを介して与えるステップと、（ｉｉｉ）更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行するよう試みるステップと、（ｉｖ）前記受け取るステップ、前記与えるステップ及び前記試みるステップ中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、前記スヌーピング・タイプのアトミック書き込みオペレーションを含むアトミック・オペレーションを失敗したアトミック・オペレーションとして定義するステップとを含む。
【００１６】
本発明は、情報単位を変更する装置であって、（ｉ）情報単位を第１のアドレスに格納するよう適合されたメモリ・モジュールと、（ｉｉ）第１及び第２のバス及び前記メモリ・モジュールに接続されたコントローラとを備え、前記コントローラが、（ａ）第１のバスを介して、アトミック読み出しオペレーションを実行する要求を受け取り、（ｂ）受け取ること及び与えることの段階中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックさされない場合、更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行する試みを促進する適合されている、装置を提供する。
【００１７】
本発明は、情報単位を変更する装置であって、プロセッサ、コントローラ及び類似のものに限定されないが、これらのプロセッサ、コントローラ及び類似のもののような第１の要求構成要素であって、第１のバスを介して、メモリ・モジュールの第１のアドレスに配置された情報単位のアトミック読み出しオペレーションを実行する要求を送るよう適合された前記第１の要求構成要素と、前記情報単位を前記第１のバスを介して与えることを促進するよう構成されたコントローラとを備え、前記第１の要求構成要素が更に、受け取ることと与えることとのうちの少なくとも１つの段階中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされない場合、更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行するよう試みるよう適合されている、前記装置を提供する。
【００１８】
本発明は、図面と関係した以下の詳細な説明からより完全に理解され且つ認められるであろう。
【発明を実施するための最良の形態】
【００１９】
以下の詳細な説明は、本発明の様々な実施形態の無限定の例を含む。採用されている特定の用語及び表現、及び詳細な説明及び添付図面に開示されている特定の構造及び動作の詳細は、例示の目的のためのみであり、添付の特許請求の範囲に記載された発明の範囲をいずれにせよ限定する意図ではない。
【００２０】
本方法及びシステムは、事前定義されたセマフォー値を利用することと関連した問題を解決するものである。
【００２１】
図１は、本発明の一実施形態に従った装置１０を示す。装置１０は、サブシステム１００を含み、次いで当該サブシステム１００は、第１のプロセッサ１１０のような第１の要求する構成要素を含み、そしてまた共用されるメモリ・モジュール（以下「共用メモリ・モジュール」と記す。）（図２において参照番号３７０により示す。）を含む。装置１０は更に、システム・バス６０を含み、当該システム・バス６０は、（ｉ）第２のプロセッサ２０のような第２の要求するエンティティ、（ｉｉ）高レベル・メモリ・モジュール５０、（ｉｉｉ）サブシステム１００、（ｉｖ）周辺装置７０、及び（ｖ）外部システムＩ／Ｆ８０に接続されている。
【００２２】
高レベル・メモリ・モジュール５０は、通常、装置１０のメイン・メモリ・モジュールである。それは、通常、様々なプロセッサのためのプログラム及びデータを格納する。それはまた、オフチップ・メモリをサポートする第２レベルのキャッシュ・メモリ・モジュールであることができるが、しかしこのことは、必ずしもそうであるわけではない。
【００２３】
システム・バス６０は、サブシステム１００にガスケット（これはまたインターフェースと呼ばれる。）３８０を介して接続される。インターフェース３８０は、データ・チャネル（図２において参照番号１３０により示す。）及び命令チャネル（図２において参照番号３４０により示す。）を含むサブシステム１００内の様々な構成要素に接続される。インターフェース３８０は、バス・プロトコル変換を実行し、そしてデータ転送と命令転送との間を調停する調停能力を有する。
【００２４】
装置１０はまた、ＤＭＡシステム・バス９０を含み、当該ＤＭＡシステム・バス９０は、ＤＭＡコントローラ３０、複数の周辺装置４０、及び共用メモリ・モジュール３７０にＤＭＡインターフェース３８２を介して接続される。ＤＭＡシステム・バス９０は、プロセッサ２０のような外部の構成要素により共用メモリ・モジュール３７０にアクセスするため用いられることができる。
【００２５】
一方では、共用メモリ・モジュール３７０は、ＤＭＡシステム・バス９０に接続され、当該ＤＭＡシステム・バス９０は、ロッキング・タイプのアトミック・オペレーションを促進するよう適合されている。他方で、共用メモリ・モジュール３７０は、２つのデータ・バスＸＡ１２２及びＸＢ１２４に接続され、当該２つのデータ・バスＸＡ１２２及びＸＢ１２４は、スヌーピング・タイプのアトミック・オペレーションを促進する。
【００２６】
図２は、本発明の一実施形態に従った装置１０のサブシステム１００を示す。サブシステム１００は、プロセッサ１１０、データ・チャネル１３０、メモリ管理ユニット（ＭＭＵ）３００、命令チャネル３４０、共用メモリ・モジュール３７０、及びインターフェース・ユニット３８０を含む。共用メモリ・モジュール３７０は、レベル１のＲＡＭメモリ・モジュールであることができるが、しかしこれは、必ずしもそうであるわけではない。
【００２７】
プロセッサ１１０及び命令チャネル３４０は、単一のプログラム・バス１２０に接続されている。
【００２８】
プロセッサ１１０は、第１のデータ・ポート１１６及び第２のデータ・ポート１１８を有する。第１のデータ・ポート１１６は、第１のデータ・バス（ＸＡ）１２２を介してデータ・チャネル１３０の第１のポート１３２、ＭＭＵ３００、及び共用メモリ・モジュール３７０に接続される。第２のデータ・ポート１１８は、第２のデータ・バス（ＸＢ）１２４を介してデータ・チャネル１３０の第２のポート１３４、ＭＭＵ３００、及び共用メモリ・モジュール３７０に接続される。
【００２９】
データ・チャネル１３０は、データ・フェッチ・バス１２６を介してインターフェース３８０に接続され、次いでインターフェース３８０は、高レベル・メモリ・モジュール５０のような１又はそれより多い追加のメモリに接続される。
【００３０】
共用メモリ・モジュール３７０は、それぞれのバンクが複数のメモリ・バンク及びコントローラを含む２グループのメモリ・バンクに仕切られていることが都合良い。
【００３１】
共用メモリ・モジュール３７０は、ステータス情報、及び特にアトミック・オペレーションに関連する情報を含む様々な制御信号を受け取る。これらの信号の一部が、図３に示されている。
【００３２】
プロセッサ１１０は、第１のデータ・バスＸＡ１２２と関連した３つの制御信号を共用メモリ・モジュール３７０に送る。これらの信号は、ＡＴＯＭＩＣ＿Ａ信号５００（アトミック＿Ａ信号５００）、ＲＥＡＤ＿Ａ信号５０２（読み出し＿Ａ信号５０２）、及びＷＲＩＴＥ＿Ａ信号５０４（書き込み＿Ａ信号５０４）である。プロセッサ１１０は、第１のデータ・バスＸＡ１２２を介してプロセッサ１１０により開始されたスヌーピング・タイプのアトミック・オペレーションが失敗したか又は成功したかを指示するＡＴＯＭＩＣ＿ＲＥＳＵＬＴ＿Ａ信号５０６（アトミック結果＿Ａ信号５０６）を共用メモリ・モジュール３７０から受け取る。プロセッサ１１０は、ひとたびプロセッサ１１０がアトミック・オペレーションを第１のデータ・バスＸＡ１２２を介して開始するとＡＴＯＭＩＣ＿Ａ信号５００をアサートし、そしてひとたびアトミック・オペレーションが終わるとこの信号をニゲートすると仮定する。プロセッサ１１０は、ＲＥＡＤ＿Ａ信号５０２を読み出し動作中に第１のデータ・バスＸＡ１２２を介してアサートし、そしてＷＲＩＴＥ＿Ａ信号５０４を書き込み動作中に第１のデータ・バスＸＡ１２２を介してアサートする。
【００３３】
プロセッサ１１０は、第２のデータ・バスＸＢ１２４と関連した３つの制御信号を共用メモリ・モジュール３７０に送る。これらの信号は、ＡＴＯＭＩＣ＿Ｂ信号５１０（アトミック＿Ｂ信号５１０）、ＲＥＡＤ＿Ｂ信号５１２（読み出し＿Ｂ信号５１２）及びＷＲＩＴＥ＿Ｂ信号５１４（書き込み＿Ｂ信号５１４）である。プロセッサ１１０は、第２のデータ・バスＸＢ１２４を介してプロセッサ１１０により開始されたスヌーピング・タイプのアトミック・オペレーションが失敗したか又は成功したかを指示するＡＴＯＭＩＣ＿ＲＥＳＵＬＴ＿Ｂ信号５１６（アトミック結果＿Ｂ信号５１６）を共用メモリ・モジュール３７０から受け取る。プロセッサ１１０は、ひとたびプロセッサ１１０がアトミック・オペレーションを第２のデータ・バスＸＢ１２４を介して開始するとＡＴＯＭＩＣ＿Ｂ信号５１０をアサートし、そしてひとたびアトミック・オペレーションが終わるとこの信号をニゲートすると仮定する。プロセッサ１１０は、ＲＥＡＤ＿Ｂ信号５１２を読み出し動作中に第２のデータ・バスＸＢ１２４を介してアサートし、そしてＷＲＩＴＥ＿Ｂ信号５１４を書き込み動作中に第２のデータ・バスＸＢ１２４を介してアサートする。
【００３４】
プロセッサ２０は、共用メモリ・モジュール３７０に、ＬＯＣＫ信号５２０（ロック信号５２０）、ＲＥＡＤ／ＷＲＩＴＥ信号５２２（読み出し／書き込み信号５２２）及びＴＲＡＮＳＡＣＴＩＯＮ＿ＲＥＱＵＥＳＴ信号５２４（トランザクション要求＿Ａ信号５２４）を送る。それは、共用メモリ・モジュール３７０からＲＥＱＵＥＳＴ＿ＡＣＫ信号５２６（要求受領確認信号５２６）を受け取る。プロセッサ２０は、トランザクション（例えば、読み出しオペレーション又は書き込みオペレーションのようなもの）をＤＭＡバス３８４を介して要求するためのＴＲＡＮＳＡＣＴＩＯＮ＿ＲＥＱＵＥＳＴ信号５２４をアサートし、そしてトランザクションは、アサートされたＲＥＱＵＥＳＴ＿ＡＣＫ信号５２６に応答して行われる。ＬＯＣＫ信号５２０が、全体のロッキング・タイプ・アトミック・オペレーション中にアサートされ、そしてＲＥＡＤ／ＷＲＩＴＥ信号５２２が、読み出し動作を指示するようアサートされ、そして書き込み動作を指示するようニゲートされる。
【００３５】
共用メモリ・モジュール３７０は、周辺装置４０（１）のような或る一定の周辺装置がプロセッサ２０により制御されるか又はプロセッサ１１０により制御されるかを指示するセマフォー３７１を格納する。通常、共用メモリ・モジュール３７０は、複数の周辺装置のアベイラビリティを表す複数のセマフォーを格納するが、しかし唯１つのセマフォーが、説明を簡単にするため示されている。
【００３６】
図４は、本発明の一実施形態に従って情報単位を変更する方法６００を示すフロー・チャートである。情報単位は、データ、アドレス、ステータス及び類似のものを表す複数の信号を含む。情報単位がセマフォーであることが都合良い。
【００３７】
方法６００は、メモリ・モジュールの第１のアドレスに配置された少なくとも１つの情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを開始する要求を第１のバスを介して受け取るステップ６１０により開始する。その要求は、スヌーピング・タイプのアトミック読み出しオペレーションを開始する要求であることが都合良い。図３に示される例を参照し、そしてスヌーピング・タイプのアトミック・オペレーションが第１のデータ・バスＸＡ１２２と関連付けられていると仮定すると、プロセッサ１１０は、ＡＴＯＭＩＣ＿Ａ信号５００をアサートし、そしてＲＥＡＤ＿Ａ信号５０２をアサートする。
【００３８】
本発明の一実施形態に従って、プロセッサ１１０はまた、第２のデータ・バスＸＢ１２４と関連しているスヌーピング・タイプのアトミック・オペレーションを開始することができ、そして共用メモリ・モジュール３７０のそれぞれが、これらの要求間を調停することができる。本発明の別の実施形態に従って、プロセッサ１１０は、１つのアトミック・オペレーションを（バスＸＡ１２２を介してか又はバスＸＢ１２４を介して）一時に開始することが可能であり、そしてそのような調停は、要求されない。
【００３９】
ステップ６１０には、情報単位を第１のバスを介して与えるステッ６２０が続く。図３に示す例を参照し、そして更に情報単位が第１のグループのメモリ・バンク内に配置されていると仮定すると、第１のグループ・コントローラは、要求されたデータ単位を第１のデータ・バスＸＡ１２２を介してプロセッサ１１０に送ることを可能にする。
【００４０】
ステップ６２０には、情報単位を読み出し、そして情報単位が変更されて、変更された情報単位を与えるべきかどうかを決定するステップ６３０が続く。その答えが肯定である場合、ステップ６３０には、ステップ６４０が続き、そしてその答えが否定である場合、ステップ６３０には、アトミック・トランザクションを終えるステップ６６０が続く。図３に示す例を参照して、情報単位が周辺装置４０（１）のアベイラビリティを表すセマフォー３７１であると仮定する。セマフォー３７１が周辺装置４０（１）が使用可能でないことを指示する場合、プロセッサ１１０は、セマフォー３７１を更新しないと判断し、そしてアトミック・オペレーションを終了することができる。セマフォー３７１が周辺装置４０（１）が使用可能であることを指示する場合、プロセッサ１１０は、セマフォー３７１を更新することを試みて、プロセッサ１１０が周辺装置４０（１）を制御しようとしていることを指示することができる。
【００４１】
ステップ６４０は、スヌーピング・タイプのアトミック・オペレーションを完了することを試みることを含む。この完了は、前に変更された情報単位のアトミック書き込みオペレーションを含む。図３に示す例を参照すると、プロセッサ１１０は、それがそのような変更が適切であると判断した場合、変更されたセマフォー３７１を第１のデータ・バスＸＡ１２２を介して送る。
【００４２】
ステップ６５０は、受け取るステップ、与えるステップ及び試みるステップのうちの少なくとも１つのステップ中に第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、スヌーピング・タイプのアトミック・オペレーションを失敗したアトミック・オペレーションと定義するステップを含む。図３に示す例を参照すると、ステップ６２０−６４０からの１又はそれより多いステップ中に共用メモリ・モジュール３７０がセマフォー３７１と関連したロッキング・タイプのアトミック・オペレーションに参加する場合、プロセッサ１１０により開始されたスヌーピング・タイプのアトミック・オペレーションは終わる。
【００４３】
プロセッサ１１０は、それが周辺装置４０（１）を首尾良く制御するまでスヌーピング・タイプのアトミック・オペレーションを実行することを試みるが、しかしこれは、必ずしもそうであるわけではない。例えば、プロセッサ１１０は、このセッションを所定量の反復の間繰り返してもよい。
【００４４】
図５は、本発明の一実施形態に従った首尾良いスヌーピング・タイプのアトミック・オペレーションのタイミング図である。このタイミング図は、クロック信号ＣＬＫ５５５、第１のデータ・バスＸＡ１２２と関連した２４ビット・アドレス・バス５２４、ＲＥＡＤ＿Ａ信号５０２（読み出し＿Ａ信号５０２）、ＷＲＩＴＥ＿Ａ信号５０４（書き込み＿信号）、ＡＴＯＭＩＣ＿Ａ信号５００（アトミック＿Ａ信号５００）及びＡＴＯＭＩＣ＿ＲＥＳＵＬＴ＿Ａ信号（アトミック結果＿Ａ信号）５０６（アトミック＿Ａ信号（５０６）を示す。
【００４５】
クロックの第１のサイクル（Ｔ１）で、プロセッサ１１０は、セマフォー３７１の２４ビット・アドレス（ＳＥＭ＿ＡＤＤ）を第１のデータ・バスＸＡ１２２を介して送り、そしてＲＥＡＤ＿Ａ信号５０２並びにＡＴＯＭＩＣ＿Ａ信号５００をアサートする。ＲＥＡＤ＿Ａは、１クロック・サイクル後にニゲートされる。
【００４６】
第２のクロック・サイクル（Ｔ２）で、セマフォー３７１は、プロセッサ１１０へ第１のデータ・バスＸＡ１２２を介して送られると仮定する。
【００４７】
次のクロック・サイクル（Ｔ３）中に、プロセッサ１１０は、セマフォー３７１を更新し、そしてその更新されたセマフォーを共用メモリ・モジュール３７０に書き込むことを試みるよう準備済みとなる。
【００４８】
次のクロック・サイクル（Ｔ４）で、プロセッサ１１０は、ＷＲＩＴＥ＿Ａ信号５０４をアサートし、そしてまたセマフォー３７１の２４ビット・アドレスを第１のデータ・バスＸＡ１２２を介して送る。
【００４９】
次のクロック・サイクル（Ｔ５）で、プロセッサ１１０は、ＷＲＩＴＥ＿Ａ信号５０４並びにＡＴＯＭＩＣ＿Ａ信号５００をニゲートする。プロセッサ１１０が変更されたセマフォー３７１を書き込むのに成功したと仮定すると、第１のグループのプロセッサ３７４は、ＡＴＯＭＩＣ＿ＲＥＳＵＬＴ＿Ａ信号５０６をアサートする。
【００５０】
本発明の一実施形態に従って、図６は、コントローラにより実行される第１のプロセス７００を示し、図７は、第１のグループのプロセッサ３７４に限定されるわけではないが、第１のグループのプロセッサ３７４のようなコントローラにより実行される別のプロセス８００を示す。
【００５１】
第１のプロセス７００は、ＤＭＡバス３８４に限定されるわけではないがＤＭＡバス３８４のようなバスをサポートするロッキング・タイプのアトミック・オペレーションをモニタリングするステップを含み、一方、別のプロセス８００は、第１のデータ・バスＸＡ１２２及び第２のデータ・バスＸＢ１２４のようなバスをサポートするスヌーピング・タイプのアトミック・オペレーションをモニタリングするステップを含む。説明を簡単にするため、第１のデータ・バスＸＡ１２２のモニタリングのみを説明する。プロセス８００の結果は、プロセス７００の結果に依存する。
【００５２】
プロセス７００は、アトミック読み出しオペレーションのようなアトミック・オペレーションが検出されるまでロッキング・タイプのアトミック・オペレーションをサポートする第１のバスをモニタリングするステップ７１０により開始する。このモニタリングは、ＬＯＣＫ信号５２０のような様々な制御信号を受け取ってそれらを検査することを含むが、しかし必ずしもそうであるわけではない。
【００５３】
ひとたびそのようなアトミック・オペレーションが検出されると、ステップ７１０には、アトミック・オペレーションによりアクセスされるメモリ・アドレスを格納するステップ７２０が続く。このアドレスは、ロッキング・タイプのアトミック・オペレーション中にロックされる。
【００５４】
ステップ７２０には、第１のバスをモニタリングして、アトミック・オペレーションが終わった（例えば、アトミック・オペレーションを終えるアトミック書き込みオペレーションが終わった）ことを検出するステップ７３０が続く。ひとたびそれが終わると、ステップ７３０には、前に格納されたアドレスを消去するか又はさもなければそれがロックされていないことを指示するステップ７４０が続く。ステップ７４０には、ステップ７１０が続く。
【００５５】
プロセス８００は、アトミック読み出しオペレーションのようなアトミック・オペレーションが検出されるまでスヌーピング・タイプのアトミック・オペレーションをサポートする第２のバスをモニタリングするステップ８１０により開始する。そのようなオペレーションは、ＡＴＯＭＩＣ＿Ａ信号５００のような様々な制御信号をモニタリングすることにより検出されることができるが、しかしこれは、必ずしもそうであるわけではない。
【００５６】
ひとたびそのようなアトミック・オペレーションが検出されると、ステップ８１０には、アトミック・オペレーションがロックされたアドレスと関連付けられているかどうかを決定するステップ８２０により開始する。このロックされたアドレスは、通常、プロセス７００によりロックされているアドレスである。
【００５７】
アドレスがロックされている場合、アトミック・オペレーションは、ステップ８３０中に、失敗であるとしてフラグを立てる。失敗されたアトミック・オペレーションは、終わることができるが、しかし通常、プロセスは、たとえアトミック・オペレーションが失敗しとしてもステップ８５０に進む。
【００５８】
アドレスがロックされていない場合、アトミック・オペレーションは、ステップ８４０中に、成功したアトミック・オペレーションとしてフラグを立てる。
【００５９】
ステップ８４０には、第２のバスをスヌーピングして、スヌーピング・タイプのアトミック・オペレーションが終わる前にアドレスがロックされているかどうかを決定するステップ８５０が続く。その答えが肯定である場合、アトミック・オペレーションは、ステップ８６０中に失敗であるとしてフラグが立てられ、さもなければステップ８５０には、アトミック・オペレーションを成功したアトミック・オペレーションとしてフラグが立てられステップ８７０が続く。アトミック・オペレーションがステップ８３０中に失敗したとしてフラグが立てられた場合、そのアトミック・オペレーションは、ステップ８７０中に成功したアトミック・オペレーションとしてフラグが立てられないであろうことに注目されたい。ステップ８７０及びステップ８６０には、ステップ８１０が続く。
【００６０】
本明細書で説明されたものの変化、変更及び他の実施形態が、特許請求の範囲に記載された発明の趣旨及び範囲から逸脱すること無しに、当業者により行われるであろう。従って、本発明は、上記の例示的説明により定義されるものではなく、代わりに添付の特許請求の範囲の趣旨及び範囲により定義されるべきものである。
【図面の簡単な説明】
【００６１】
【図１】図１は、本発明の一実施形態に従った、２つのプロセッサ及び共用メモリ・モジュールを含む装置の概略図である。
【図２】図２は、共用メモリ・モジュール及び第１のプロセッサを含むサブシステムの概略図である。
【図３】図３は、本発明の一実施形態に従った、アトミック・オペレーション中に交換される様々な信号の概略図である。
【図４】図４は、本発明の一実施形態に従った、情報単位を変更する方法を示すフロー・チャートである。
【図５】図５は、本発明の一実施形態に従った、首尾良いスヌーピング・タイプ・アトミック・オペレーションのタイミング図である。
【図６】図６は、本発明の一実施形態に従った、コントローラにより実行される２つのプロセスのフロー・チャートの１つである。
【図７】図７は、本発明の一実施形態に従った、コントローラにより実行される２つのプロセスのフロー・チャートの１つである。
【図１】
2008511890.tif 000003
【図２】
2008511890.tif 000004
【図３】
2008511890.tif 000005
【図４】
2008511890.tif 000006
【図５】
2008511890.tif 000007
【図６】
2008511890.tif 000008
【図７】
2008511890.tif 000009
【手続補正書】
【提出日】平成19年5月7日(2007.5.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アトミック・オペレーションを用いて、情報単位を変更する方法であって、
メモリ・モジュールの第１のアドレスに配置された情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを開始する要求を第１のバスを介して第１の要求構成要素から受け取るステップと、
前記情報単位を前記第１のバスを介して前記第１の要求構成要素に与えるステップと、
前記第１の要求構成要素により前記情報単位を更新して、当該更新された情報単位を与えるステップと、
前記更新された情報単位と関連しているスヌーピング・タイプのアトミック・オペレーションを完了しようと試みるステップと、
前記受け取るステップ、前記与えるステップ及び前記試みるステップ中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、前記第１の要求構成要素により前記スヌーピング・タイプのアトミック・オペレーションを失敗したアトミック・オペレーションとして定義するステップと
を備える方法。
【請求項２】
前記受け取るステップが、スヌーピング・タイプのアトミック読み出しオペレーションを実行する要求を受け取るステップを備える請求項１記載の方法。
【請求項３】
前記完了しようと試みるステップが、前記更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行しようと試みるステップを備える請求項１記載の方法。
【請求項４】
前記ロッキング・タイプのアトミック・オペレーションを開始する要求が、第２のバスを介して与えられる請求項１記載の方法。
【請求項５】
前記情報単位が、セマフォーを備える請求項１記載の方法。
【請求項６】
前記試みるステップが、前記更新された情報単位を前記第１のバスを介して与えるステップを備える請求項１記載の方法。
【請求項７】
首尾良いスヌーピング・タイプのアトミック・オペレーションを完了するまで、前記受け取るステップ、前記与えるステップ、及び前記試みるステップを繰り返すステップを更に備える請求項１記載の方法。
【請求項８】
前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック読み出しオペレーションである請求項１記載の方法。
【請求項９】
前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック書き込みオペレーションである請求項１記載の方法。
【請求項１０】
前記第１のアドレスに配置された情報単位のスヌーピング・タイプのアトミック・オペレーションを開始する別の要求を受け取り、前記スヌーピング・タイプのアトミック・オペレーション同士間を調停するステップを更に備える請求項１記載の方法。
【請求項１１】
情報単位を変更する方法であって、
メモリ・モジュールの第１のアドレスに配置された情報単位のアトミック読み出しオペレーションを実行する要求を第１のバスを介して第１の要求構成要素から受け取るステップと、
前記情報単位を前記第１のバスを介して与えるステップと、
前記第１の要求構成要素により前記情報単位を更新して、当該更新された情報単位を与えるステップと、
前記受け取るステップと前記与えるステップとのうちの少なくとも１つのステップ中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされない場合、前記第１の要求構成要素により前記更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行するよう試みるステップと
を備える方法。
【請求項１２】
前記ロッキング・タイプのアトミック・オペレーションを開始する要求が、第２のバスを介して与えられる請求項１１記載の方法。
【請求項１３】
前記情報単位が、セマフォーを備える請求項１１記載の方法。
【請求項１４】
前記試みるステップが、前記更新された情報単位を前記第１のバスを介して与えるステップを備える請求項１１記載の方法。
【請求項１５】
首尾良いスヌーピング・タイプのアトミック・オペレーションを完了するまで、前記受け取るステップ、前記与えるステップ、及び前記試みるステップを繰り返すステップを更に備える請求項１１記載の方法。
【請求項１６】
前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック読み出しオペレーションである請求項１１記載の方法。
【請求項１７】
前記第１のアドレスに配置された情報単位のスヌーピング・タイプのアトミック読み出しオペレーションを実行する別の要求を受け取り、前記スヌーピング・タイプのアトミック読み出しオペレーション同士間を調停するステップを更に備える請求項１１記載の方法。
【請求項１８】
アトミック・オペレーションを用いて、情報単位を変更する装置であって、
情報単位を第１のアドレスに格納するよう適合されたメモリ・モジュールと、
第１のバス及び前記メモリ・モジュールに結合されたコントローラと、を備え、
前記コントローラが、
メモリ・モジュールの第１のアドレスに配置された情報単位と関連したスヌーピング・タイプのアトミック・オペレーションを開始する要求を受け取り、
前記情報単位を前記第１のバスを介して与え、
前記更新された情報単位の前記スヌーピング・タイプのアトミック・オペレーションを完了しようと試み、
前記受け取る段階、前記与える段階、及び前記試みる段階のうちの少なくとも１つの段階中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされた場合、前記アトミック・オペレーションを失敗したアトミック・オペレーションとして定義するよう適合されている、装置。
【請求項１９】
前記ロッキング・タイプのアトミック・オペレーションを開始する要求が、第２のバスを介して与えられる請求項１８記載の装置。
【請求項２０】
前記情報単位が、セマフォーを備える請求項１８記載の装置。
【請求項２１】
前記コントローラが更に、失敗したアトミック・オペレーションを前記第１のバスを介して送るよう適合されている請求項１８記載の装置。
【請求項２２】
前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック読み出しオペレーションである請求項１８記載の装置。
【請求項２３】
前記第１のバスに結合された第１のプロセッサと、前記第２のバスに結合された第２のプロセッサとを更に備える請求項１８記載の装置。
【請求項２４】
情報単位を変更する装置であって、
第１のバスを介して、メモリ・モジュールの第１のアドレスに配置された情報単位のアトミック読み出しオペレーションを実行する要求を送り、且つ前記情報単位を更新して、当該更新された情報単位を与えるよう適合された第１の要求構成要素と、
前記情報単位を前記第１のバスを介して与えることを促進するよう構成されたコントローラと、を備え、
前記第１の要求構成要素が更に、受け取ることと与えることとのうちの少なくとも１つの段階中に、前記第１のアドレスがロッキング・タイプのアトミック・オペレーションの結果としてロックされない場合、前記更新された情報単位のスヌーピング・タイプのアトミック書き込みオペレーションを実行するよう試みるよう適合されている、装置。
【請求項２５】
前記コントローラが更に、失敗したアトミック・オペレーションを前記第１のバスを介して送るよう適合されている請求項２４記載の装置。
【請求項２６】
前記ロッキング・タイプのアトミック・オペレーションが、ロッキング・タイプのアトミック読み出しオペレーションである請求項２４記載の装置。
【請求項２７】
前記ロッキング・タイプのアトミック・オペレーションを開始するよう適合された第２の要求構成要素を更に備える請求項２４記載の装置。
【請求項２８】
前記第１の要求構成要素が、プロセッサである請求項２４記載の装置。
【国際調査報告】
2008511890.tif 000010
2008511890.tif 000011
2008511890.tif 000012