(57)【特許請求の範囲】
【請求項１】
トランザクション・メモリ管理に組み込まれた競合調停に関する同時トランザクションのソフトウェア優先順位付けのための方法であって、
システム用の外部ソフトウェア・サポートにおける優先順位割り当て論理によって指定されたそれぞれの優先順位値に従って、トランザクション・メモリ管理用に構成された、トランザクション・メモリ・システム内の対応する異なるトランザクションについての異なる優先順位値を用いて、異なるハードウェア・レジスタを設定するステップと、
前記システムの前記トランザクション間での競合を検出するステップと、
前記システム内の他のレジスタから競合調停制御値を取り出すステップであって、前記競合調停制御値が、下記競合調停動作：
（１）他の前記トランザクションよりも優先順位の低い前記トランザクションのうちの選択された１つをブロックすること；
（２）他の前記トランザクションよりも優先順位の低い前記トランザクションのうちの選択された１つを打ち切ること；及び、
（３）優先順位の等しい前記トランザクションのうちの少なくとも２つを検出し、前記競合調停を実行している前記システムの代わりに、前記トランザクションのうちの前記少なくとも２つに対して競合調停を実行するために、前記外部ソフトウェア・サポートへの割り込みを生成すること
のうちの少なくとも１つを特定する、前記取り出すステップと、
前記システム用の前記外部ソフトウェア・サポートにおける前記優先順位割り当て論理によって指定された前記優先順位値に基づいて、前記システム内で競合調停を適用するステップであって、前記競合調停制御値によって特定された前記競合調停動作のうちの少なくとも１つに限定するステップを含む、前記適用するステップと
を含む、前記方法。
【請求項２】
前記異なる優先順位値を、前記優先順位割り当て論理によって指定されることが可能な、優先順位値の範囲に限定するステップ
をさらに含む、請求項１に記載の方法。
【請求項３】
前記（１）他の前記トランザクションよりも優先順位の低い前記トランザクションのうちの選択された１つをブロックすることが、
前記トランザクションのうちの前記選択された１つが前記他のトランザクションと競合することが検出されるごとに増加する持続時間の間、他の前記トランザクションよりも優先順位の低い前記トランザクションのうちの選択された１つをブロックすること
を含む、請求項１に記載の方法。
【請求項４】
前記（１）他の前記トランザクションよりも優先順位の低い前記トランザクションのうちの選択された１つをブロックすることが、
しきい値数の競合が検出されるまで、前記トランザクションのうちの前記選択された１つが前記他のトランザクションと競合することが検出されるごとに増加する持続時間の間、他の前記トランザクションよりも優先順位の低い前記トランザクションのうちの選択された１つをブロックすることと、
前記トランザクションのうちの前記選択された１つについて、前記しきい値数の競合を超えた場合、前記トランザクションのうちの前記選択された１つの打ち切りを強制することと、
を含む、請求項１に記載の方法。
【請求項５】
マルチプロセッサ・コンピュータ・データ処理システムであって、
ハードウェア内のメモリに結合された複数のプロセッサと、
前記各プロセッサについて、命令セット・アーキテクチャ（ＩＳＡ）および意味論内に実装されるトランザクション・マネージャと、
前記各プロセッサ内に配設されたレジスタであって、前記トランザクション・マネージャによって管理されるメモリにアクセスするトランザクションに関する優先順位値を格納する、前記レジスタと、
前記システム内に配設された競合調停論理であって、前記論理が、前記トランザクションのうちの競合するものに対応する前記優先順位値に従って、前記トランザクションのうちの競合するものに対して競合調停を適用することが可能な、前記競合調停論理と、
競合調停制御値を指定する前記各プロセッサ内のレジスタであって、前記競合調停制御値が、下記競合調停動作：
（１）他の前記トランザクションよりも優先順位の低い前記トランザクションのうちの選択された１つをブロックすること；
（２）他の前記トランザクションよりも優先順位の低い前記トランザクションのうちの選択された１つを打ち切ること；及び、
（３）優先順位の等しい前記トランザクションのうちの少なくとも２つを検出し、前記競合調停を実行している前記システムの代わりに、前記トランザクションのうちの前記少なくとも２つに対して競合調停を実行するために、前記外部ソフトウェア・サポートへの割り込みを生成すること
のうちの少なくとも１つを特定する、前記レジスタと、
前記ハードウェアに結合され、前記優先順位値を設定するために前記レジスタにアクセスするように構成されたソフトウェア・サポートと
を備えている、マルチプロセッサ・コンピュータ・データ処理システム。
【請求項６】
トランザクション・メモリ管理に組み込まれた競合調停に関する同時トランザクションのソフトウェア優先順位付けのためのコンピュータ・プログラムであって、請求項１〜４のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
【請求項７】
マルチプロセッサ・コンピュータ・データ処理システムであって、
ハードウェア内のメモリに結合された複数のプロセッサと、
前記各プロセッサについて、命令セット・アーキテクチャ（ＩＳＡ）および意味論内に実装されるトランザクション・マネージャと、
前記各プロセッサ内に配設されたレジスタであって、前記トランザクション・マネージャによって管理されるメモリにアクセスするトランザクションに関する優先順位値を格納する、前記レジスタと
を備えており、
請求項１〜４のいずれか一項に記載の方法の各ステップを実行する、前記データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列コンピューティングにおけるトランザクション・メモリ使用の分野に関し、より具体的に言えば、トランザクション・メモリ管理における競合調停（conflict arbitration）に関する。
【背景技術】
【０００２】
トランザクション・メモリ技法は、ロード命令および格納命令のグループをアトミック（atomic）な方法で実行できるようにすることによって、並列プログラミングを簡略化しようとするものである。一般的に言えば、トランザクション・メモリとは、並行処理コンピューティングにおける共有メモリへのアクセスを制御するための、データベース・トランザクションに類似した並行処理制御機構である。しかしながら、現在ほとんどのマルチスレッド・アプリケーションで使用されているロッキング技法とは異なり、トランザクション・メモリは、あるスレッドが、実行されたあらゆる読み取りおよび書き込みを記録し、メモリへの投機的変更（speculative change）をバッファリングする一方で、他のスレッドの動作に関係なく共有メモリへの修正を完了するという点で、楽観的であるとみなすことができる。
【０００３】
２つまたはそれ以上のトランザクションがメモリの同じブロックにアクセスし、それらのアクセスのうち少なくとも１つが書き込みアクセスである場合、トランザクションは競合する。トランザクション・メモリを使用する場合、トランザクションの実行が他の進行中のトランザクションと競合しないことを保証するための責任を、メモリ・ブロックの読み取り者または書き込み者に帰する代わりに、他のスレッドがメモリ・ブロックへの参照を同時に競合させていないことを検証する責任をトランザクション・メモリに帰する。こうしたトランザクション・メモリ・システムは、ソフトウェア、ハードウェア、またはこの２つの組み合わせで実現可能である。メモリ参照が他の同時メモリ参照に照らしてチェックされる動作は、しばしば検証と呼ばれる。検証が正常に実行された場合、トランザクションの終わりに、すべてのメモリ変更はしばしばコミットと呼ばれる動作において永続化される。しかしながら、トランザクションはいつでも打ち切り可能であり、トランザクションによって実行された以前のすべての変更はロール・バック（roll back）または取り消されることになる。変更の競合によってトランザクションがコミットできない場合、トランザクションを打ち切り、トランザクションが成功するまで最初から再実行することができる。
【０００４】
当業者であれば、トランザクション・メモリの楽観的手法の利点である同時並行性が増加することを理解されよう。具体的に言えば、当分野で知られた楽観的手法では、実行スレッドがメモリ・ブロックへのアクセスを待つ必要はない。さらに、異なる実行スレッドが、そうでなければ同じロックの下で保護されることになるデータ構造の独立部分を、安全かつ同時に修正することができる。全体として、失敗したトランザクションを再試行する際にオーバヘッドを招くにもかかわらず、多くの実際的なプログラムでは競合が生じることはまれであるため、トランザクション・メモリ技法は、多数のプロセッサ上のロック・ベースのプロトコルを介して多大な性能利得を十分提供できる。
【０００５】
競合調停は、競合が発生した場合に、どのトランザクションがブロックされるかまたは打ち切られるか、および、どのトランザクションが実行を継続できるかを、決定するための機構である。競合調停は、基礎となる競合（contention）管理ポリシーによって制御される。トランザクションが、他のアクティブ・トランザクションによる同じデータへのアクセスと競合するデータへのアクセスを試行しようとする場合、トランザクションを打ち切るなどのような、単純な競合調停機構がトランザクション・メモリ・システムに対して、提案されてきた。しかしながら、さらに最近の調査によれば、より優れた競合管理の重要性が示されている。より優れた競合管理は、単純な競合管理ポリシーで可能となる「ライブロック（livelock）」を回避し、より優れた競合管理は、競合が頻繁な場合に性能を大幅に向上させることができる。高機能の競合管理ポリシーは、競い合うトランザクションによる正常なコミットを待ちながら、競合するアクセスを試行するトランザクションの一時的なブロックを、トランザクションのスループットを最大にするための発見的方法と組み合わせ、さらに、公平性を向上させるかまたはさらなる進歩を保証するための機構とも組み合わせることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
それでもなお、いくつかの競合管理ポリシーは、ベンチマークまたはアプリケーションのセット全体を通じて良好な性能を実証する一方で、例外なく最適なポリシーがまったく見つかっていない。
【課題を解決するための手段】
【０００７】
本発明の諸実施形態は、トランザクション・メモリ・システムのための競合調停に関する当分野の欠点に対処し、トランザクション・メモリ管理に組み込まれた競合調停のための同時トランザクションのソフトウェア優先順位付けに関する、新規な非自明の方法、システム、およびコンピュータ・プログラム製品を提供する。本発明の実施形態では、トランザクション・メモリ管理に組み込まれた競合調停に関する同時トランザクションのソフトウェア優先順位付けのための方法は、システム用の外部ソフトウェア・サポートにおける優先順位割り当て論理によって指定されたそれぞれの優先順位値に従って、トランザクション・メモリ管理用に構成された、システム内の対応する異なるトランザクションについての異なる優先順位値を用いて、異なるハードウェア・レジスタを設定することを含むことができる。
【０００８】
方法は、システムのトランザクション間での競合を検出することを含むこともできる。最後に方法は、システム用の外部ソフトウェア・サポートにおける優先順位割り当て論理によって指定された優先順位値に基づいて、システム内で競合調停を適用することを含むことができる。優先順位値は、競合調停機構の基礎を形成し、競合管理ポリシーを実装する。ソフトウェアに優先順位値を制御させることによって、各ベンチマークまたはアプリケーションに適した異なる競合管理ポリシーの使用が可能となる。
【０００９】
本発明の一態様では、方法は、システム内の他のレジスタから競合調停制御値を取り出すことを含むこともできる。競合調停制御値は、競合調停動作のタイプおよび性質のうちの少なくとも１つを特定することができる。したがって、競合調停の適用は、競合調停制御値によって特定された競合調停動作のタイプおよび性質のうちの少なくとも１つに限定することができる。実施形態の他の態様では、異なる優先順位値を、システム用の外部ソフトウェア・サポートにおける優先順位割り当て論理によって指定されることが可能な、優先順位値の範囲に限定することができる。
【００１０】
実施形態の他の態様では、システム用の外部ソフトウェア・サポートにおける優先順位割り当て論理によって指定された優先順位値に基づいてシステム内で競合調停を適用することが、他のトランザクションよりも優先順位の低いトランザクションのうちの選択された１つをブロックすることを含むことができる。別の方法として、システム用の外部ソフトウェア・サポートにおける優先順位割り当て論理によって指定された優先順位値に基づいてシステム内で競合調停を適用することが、他のトランザクションよりも優先順位の低いトランザクションのうちの選択された１つを打ち切ることを含むことができる。他の代替実施形態として、システム用の外部ソフトウェア・サポートにおける優先順位割り当て論理によって指定された優先順位値に基づいてシステム内で競合調停を適用することが、優先順位の等しいトランザクションのうちの少なくとも２つを検出すること、および、競合調停を実行しているシステムの代わりに、トランザクションのうちのこの少なくとも２つに対して競合調停を実行するために、外部ソフトウェア・サポートへの割り込みを生成することを、含むことができる。
【００１１】
本発明の他の実施形態では、マルチプロセッサ・コンピュータ・データ処理システムが提供可能である。システムは、ハードウェア内のメモリに結合された複数の異なるプロセッサと、各プロセッサについて命令セット・アーキテクチャ（ＩＳＡ）によってサポートされたトランザクション・マネージャとを含むことができる。システムは、各プロセッサ内に配設されたレジスタを含むこともできる。レジスタは、トランザクション・マネージャによって管理されるメモリにアクセスするトランザクションに関する優先順位値を格納することができる。競合調停論理をシステム内に配設することもできる。論理は、トランザクションのうちの競合するものに対応する優先順位値に従って、トランザクションのうちの競合するものに対して競合調停を適用することが可能な、ハードウェアまたはソフトウェアを含むことができる。最後にシステムは、ハードウェアに結合され、優先順位値を設定するためにレジスタにアクセスするように構成された、ソフトウェア・サポートを含むことができる。
【００１２】
本発明の追加の諸態様は、以下の説明で一部が記載され、この説明から一部が明らかとなるか、または本発明の実施によって習得することができる。本発明の諸態様は、添付の特許請求の範囲で具体的に指摘された要素および組み合わせによって実現および達成されることになる。前述の概要および以下の詳細な説明は、どちらも単なる例示的かつ説明的なものであり、本発明を記載された通りに制限するものではないことを理解されたい。
【００１３】
本明細書に組み込まれ、その一部を構成する添付の図面は、本発明の諸実施形態を例示し、説明と共に本発明の諸原理を説明する働きをする。本明細書に例示された諸実施形態は現在好適であるが、本発明は示された精密な配置構成および手段に限定されるものではないことを理解されよう。
【図面の簡単な説明】
【００１４】
【図１】トランザクション・メモリ管理に組み込まれた競合調停に関する同時トランザクションのソフトウェア優先順位付けのためのプロセスを示す絵画図である。
【図２】トランザクション・メモリ管理に組み込まれた競合調停に関する同時トランザクションのソフトウェア優先順位付けのために構成された、マルチプロセッサ・コンピューティング・システムを示す概略図である。
【図３】トランザクション・メモリ管理に組み込まれた競合調停に関する同時トランザクションのソフトウェア優先順位付けのためのプロセスを示す流れ図である。
【発明を実施するための形態】
【００１５】
本発明の諸実施形態は、トランザクション・メモリ管理に組み込まれた競合調停のための同時トランザクションのソフトウェア優先順位付けに関する方法、システム、およびコンピュータ・プログラム製品を提供する。本発明の実施形態に従い、マルチプロセッサ・コンピューティング・システムは、トランザクション・メモリ管理向けに構成することができる。システム内の各プロセッサは、プロセッサによって実行される対応するトランザクションに関する優先順位値を格納する、外部アクセス可能なレジスタを含むことができる。競合調停論理はトランザクション・メモリ・システム内に提供され、プロセッサ外部のプログラム・コードによる指示通りに、競合するトランザクションに対応するレジスタ内に格納された外部に確立された優先順位値に従って、競合するトランザクションを調停する。このようにして、システムの競合調停論理は、優先順位値を確立するアルゴリズムとは無関係に、競合するトランザクションに関する競合を調停することができる。
【００１６】
他の例示において、図１は、トランザクション・メモリ管理に組み込まれた競合調停のための同時トランザクションのソフトウェア優先順位付けに関するプロセスを示す絵画図である。図１に示されるように、マイクロプロセッサ・ハードウェア１１０Ａは、マルチプロセッサ・コンピューティング・システムを提供するようにオペレーティング・システムが構成されたマルチプロセッサなどの、ソフトウェア・サポート１１０Ｂと組み合わせることができる。マルチプロセッサ・ハードウェア１１０Ａは、複数の異なるプロセッサにまたがるトランザクション・メモリ１４０用に構成されたＩＳＡおよび意味論１３０を実装することができる。この点に関して、異なるプロセッサは、トランザクション・メモリ１４０上で読み取りおよび書き込みトランザクション１５０を実行することができる。
【００１７】
とりわけ、優先順位１６０を各トランザクション１５０に関連付けることができる。しかしながら、たとえば内部レジスタなどのマルチプロセッサ・ハードウェア１１０Ａに格納された優先順位１６０は、ソフトウェア・サポート１１０Ｂによって提供される外部優先順位割り当て論理１２０によってアクセスおよび設定することができる。オプションで、外部優先順位割り当て論理１２０は、優先順位１６０を格納している内部レジスタへの非特権的アクセス（non-privileged access）のみが認められている場合、優先順位を優先順位値の範囲内で割り当てることに限定することができる。しかしながら、優先順位１６０を格納している内部レジスタへの特権的アクセスが認められている場合、外部優先順位割り当て論理１２０は、値のデフォルト範囲より上かまたは下の優先順位値を割り当てることができる。
【００１８】
優先順位１６０は、トランザクションがどれだけの間実行されているかに依存可能であり、開始時間が早いほど高い優先順位値が割り当てられる、トランザクションが最初に開始された時間を反映する時間関数とすることができる。この点に関して、打ち切りおよび再開条件に応答して、優先順位を設定するためにトランザクションのオリジナルの開始時間を再使用することが可能であるため、結果として割り当てられる優先順位は、トランザクションが最初に試行された時点と同一になる。こうしたタイムスタンプ・ベースの手法は、古いトランザクションが打ち切られ、再開される場合、作業の反復を避けるために望ましい可能性がある。さらに、トランザクションが最初に開始された時点のタイムスタンプに基づく優先順位は、トランザクションが古くなるにつれて経時的に競合に勝つ可能性が高くなるという点で、公平性を向上させる。
【００１９】
優先順位１６０は、トランザクションがどれだけのデータにアクセスしてきたか、またはトランザクションがどれだけの計算を実行してきたかを条件とすることもできる。トランザクションが進行するにつれて、進行の状態を反映して様々な時点で優先順位が上がる可能性がある。タイムスタンプ手法と同様に、トランザクションが打ち切られ、再開された場合に、どれだけの作業が反復されることになるかを指標として、優先順位を使用することができる。さらに他の代替実施形態として、優先順位は、トランザクションがブロックされたかどうか、および打ち切られ、再開されたかどうかに基づくことが可能である。具体的に言えば、ブロック／打ち切り時に、またはブロック／打ち切りの反復に直面した際に、公平性を向上させ、トランザクションを進行させるために、優先順位１６０を上げることができる。
【００２０】
しかしながら任意のイベントにおいて、各優先順位１６０は、いったん確立された場合、マルチプロセッサ・ハードウェア１１０Ａ内のＩＳＡおよび意味論１３０の実装において定義されたように、トランザクション・メモリ１４０に対して競合調停プロセス３００によって実行される競合調停において評価することができる。このようにして、トランザクション・メモリ１４０内で競合が調停される機構は、各トランザクション１５０について優先順位１６０が確立される際に使用されるアルゴリズムとは、別に維持することができる。さらに、優先順位１６０は、ソフトウェア・サポート１１０Ｂによって提供される外部優先順位割り当て論理１２０内の変更を通じて異なって確立することができるが、競合調停プロセス３００は、影響を受けずに維持することができる。
【００２１】
図１に記載されたプロセスは、マルチプロセッサ・コンピューティング・システム用にＩＳＡおよび意味論内で実装可能である。例示において、図２は、トランザクション・メモリ管理に組み込まれた競合調停に関する同時トランザクションのソフトウェア優先順位付けのために構成された、マルチプロセッサ・コンピューティング・システムの概略図である。システムは、それぞれが共通メモリ２５０に結合されたマルチプロセッサ配置構成２２０内の複数の異なるプロセッサ２３０を含む、マルチプロセッサ・コンピューティング・システム２１０Ａとすることができる。さらにマルチプロセッサ・コンピューティング・システム２１０Ａは、マルチプロセッサ・コンピューティング・システム２１０Ａの上で実行するオペレーティング・システム２１０Ｂの動作をサポートすることができる。
【００２２】
各プロセッサ２３０は、メモリ２５０に対する読み取りおよび書き込みのトランザクション・セットを管理するトランザクション・メモリ・マネージャ２４０をサポートする、ＩＳＡおよび意味論を提供することができる。メモリ２５０の同じブロックに対する同時書き込みまたは読み取りあるいはトランザクションに関して、競合が生じる可能性があるという点において、トランザクション・メモリ・マネージャ２４０に競合調停論理３００を結合することができる。特に、競合調停論理３００は、トランザクション・セットに関連付けられた優先順位２８０に従って、メモリ２５０の同じブロックにアクセスしようとしているトランザクション・セットを調停するように実行可能である。
【００２３】
具体的に言えば、メモリ２５０へのコミットが保留されている異なるトランザクションに対応する優先順位２８０を格納するために、各プロセッサ２３０内の異なるレジスタを割り振ることができる。競合優先順位確立論理２９０は、オペレーティング・システム２１０Ｂ内に配設することが可能であり、個々の優先順位２８０を確立するために他のアプリケーション・コードと同様に、優先順位２８０へのアクセスを享受することができる。次いで、競合調停論理３００は、トランザクション・セットに関する競合の検出に応答して、対応する優先順位２８０を取り出すこと、および、検出された競合を解決するために取り出された対応する優先順位２８０に基づいて競合調停を適用することが実行可能である。オプションには、優先順位の低いトランザクションを打ち切ること、または、必要優先順位を欠く個々のトランザクションを待機させることが含まれる。
【００２４】
各プロセッサ２３０内に、競合調停制御値２７０を格納するための追加のレジスタを割り振ることができる。競合調停制御値２７０は、それぞれの優先順位２８０に従って、メモリ２５０へのコミットが保留されている競合トランザクション・セット間の競合を調停する場合に実行されることになる、動作のタイプおよび性質を特定することができる。たとえば、競合調停制御値２７０は、トランザクションのブロックを使用不可に指定し、それにより、競合中の最高優先順位のトランザクションよりも優先順位の低い各トランザクションについて、完全な打ち切りを強制することができる。これとは対照的に、競合調停制御値２７０は、競合中の最高優先順位のトランザクションよりも優先順位の低い各トランザクションについて、打ち切りを強制することを避けるために、競合するトランザクションのブロックを許可することができる。さらに他の代替実施形態として、競合調停制御値２７０が、競合する優先順位の低いトランザクションのハードウェア・ブロックの許可を指定することができるか、または競合調停制御値２７０が、ハードウェアによって発生した割り込みによってトリガされたソフトウェア内でブロックが実行される要件を指定することができる。
【００２５】
とりわけ競合調停制御値２７０は、時間（たとえばミリ秒）またはマシン・サイクルに関して、ブロックが許可された場合、トランザクションに関するブロックの持続時間を指定することができる。競合調停制御値２７０は、適応ハードウェア・バックオフ（backoff）を実行可能にすることができるため、指定された場合、適応ハードウェア・バックオフは、トランザクションに関して競合が反復的に発生する際の持続時間の長期化を要求することができる。さらにまた競合調停制御値２７０は、競合中に、トランザクションをどれだけの頻度で打ち切りではなくブロックできるかの制限を提供することができる。競合調停制御値２７０によって指定された場合、トランザクションについて、指定された期間内に反復される競合のしきい値制限が検出されると、トランザクションは次に発生する競合時に打ち切るように強制することができる。別の方法として、しきい値制限に達した場合、割り込みを発生させるために競合のソフトウェア調停をトリガすることができる。最後に、競合調停制御値２７０は、等しい対応する優先順位２８０を備える２つまたはそれ以上のトランザクション間で、競合のソフトウェア調停に関する割り込みの生成を指定することができる。
【００２６】
競合調停論理３００の他の例示において、図３は、トランザクション・メモリ管理に組み込まれた競合調停に関する同時トランザクションのソフトウェア優先順位付けのためのプロセスを示す流れ図である。開始ブロック３０５では、メモリ・ブロックおよびトランザクション・セットに関連して、競合が検出可能である。ブロック３１０で、セット内の各トランザクションに関する優先順位を取り出すことが可能であり、ブロック３１５で、関与するトランザクションの優先順位に従って競合を調停する場合に採用可能な動作のタイプおよび性質を決定するために、競合調停制御パラメータを取り出すことができる。その後、ブロック３２０で、トランザクション・セットの中からトランザクションを選択することができる。
【００２７】
ブロック３２５で、選択されたトランザクションに対する優先順位に関して、取り出された競合調停制御ポリシーをトランザクションに適用することができる。また意思決定ブロック３３０で、選択されたトランザクションを打ち切ることが決定された場合、ブロック３３５で、選択されたトランザクションを打ち切ることができる。打ち切らない場合、ブロック３４０で、選択されたトランザクションをブロックすることが決定された場合、ブロック３４５で、競合調停制御値に関連付けられたある期間、選択されたトランザクションをブロックすることができる。どちらの環境でも、意思決定ブロック３５０で、トランザクション・セット内に追加の処理すべきトランザクションが残っている場合、プロセスをブロック３２０に戻し、トランザクション・セット内の次のトランザクションを選択することができる。
【００２８】
本発明の諸実施形態は、完全にハードウェア実施形態、完全にソフトウェア実施形態、または、ハードウェアおよびソフトウェアの両方の要素を含む実施形態の形を取ることができる。好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどの、いずれかで実装される。さらに本発明は、コンピュータまたは任意の命令実行システムによって、あるいはこれらに関連して使用するためのプログラム・コードを提供する、コンピュータ使用可能またはコンピュータ読み取り可能媒体からアクセス可能な、コンピュータ・プログラム製品の形を取ることができる。
【００２９】
説明の目的で、コンピュータ使用可能またはコンピュータ読み取り可能媒体は、命令実行システム、装置、またはデバイスによって、あるいはこれらに関連して使用するためのプログラムを、包含、格納、通信、伝搬、または移送することが可能な、任意の装置とすることができる。媒体は、電子、磁気、光、電磁、赤外線、または半導体システム（あるいは装置またはデバイス）あるいは伝搬媒体とすることができる。コンピュータ読み取り可能媒体の例には、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、剛性磁気ディスク、および光ディスクが含まれる。光ディスクの現行例には、コンパクト・ディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−読み取り／書き込み（ＣＤ−Ｒ／Ｗ）、およびＤＶＤが含まれる。
【００３０】
プログラム・コードを格納あるいは実行するため、またはその両方のために好適なデータ処理システムは、メモリ要素に直接、またはシステム・バスを介して間接的に結合された、少なくとも１つのプロセッサを含むことになる。メモリ要素は、プログラム・コードの実際の実行中に採用されるローカル・メモリと、大容量ストレージと、実行中に大容量ストレージからコードを取り出さなければならない回数を削減するために少なくともいくつかのプログラム・コードの一時ストレージを提供するキャッシュ・メモリとを、含むことができる。入力／出力またはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない）は、直接、または介在するＩ／Ｏコントローラを介して、システムに結合することができる。介在する専用または公衆ネットワークを介して、データ処理システムを他のデータ処理システムあるいはリモート・プリンタまたはストレージ・デバイスに結合できるようにするために、ネットワーク・アダプタをシステムに結合することもできる。モデム、ケーブル・モデム、およびＥｔｈｅｒｎｅｔ（Ｒ）カードは、現在使用可能なネットワーク・アダプタ・タイプの一部に過ぎない。
【図１】
0005467661.tif 000002
【図２】
0005467661.tif 000003
【図３】
0005467661.tif 000004