【手続補正書】
【提出日】平成22年10月12日(2010.10.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ソフトウェアトランザクショナルメモリシステム中でトランザクションに順序付けを適用する、コンピュータシステムに実装される方法であって、該方法は、前記コンピュータシステムの少なくとも１つのコンピューティングデバイスによって実施され、
複数の関連するトランザクションの実行の前の任意の時点で、所定のコミット順序が、前記複数の関連するトランザクションについて指定されるのを可能にするステップと、
前記所定のコミット順序を使用して、コミット順序番号を前記複数の関連するトランザクションのそれぞれに提供するステップと、
共有ソフトウェアトランザクショナルメモリ中で複数のトランザクションを実行するステップであって、前記複数のトランザクションのそれぞれは、前記ソフトウェアトランザクショナルメモリ中で前記複数のトランザクションの他のトランザクションに関して原子的に実行されるステップを含み、
前記複数のトランザクションを実行するステップは、
前記複数の関連するトランザクションの第１のトランザクション、および、前記複数の関連するトランザクションの第２のトランザクションを実行するステップであって、前記第１のトランザクションの前記コミット順序番号は、前記第２のトランザクションの前記コミット順序番号とは異なるステップと、
前記ソフトウェアトランザクショナルメモリシステム中での前記複数のトランザクションの前記実行を管理するステップとを含み、
前記実行を管理ステップは、
前記第１のトランザクションと前記第２のトランザクションとの間の競合を検出するステップと、
前記競合を解決するステップとを含み、
前記競合を解決するステップは、
前記第２のトランザクションの前記コミット順序番号に基いて、前記第２のトランザクションをホールド状態にするステップと、
前記第１のトランザクションの前記コミット順序番号に基いて、前記第１のトランザクションをコミットするステップと、
前記第１のトランザクションがコミットされた後に、前記第２のトランザクションをコミットするステップと
によって、前記競合を解決するステップと
を含むことを特徴とする方法。
【請求項２】
前記所定のコミット順序は、前記複数の関連するトランザクションが特定の線形順序でコミットするよう強いられる、前記複数の関連するトランザクションの所定の全体的順序付けを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記所定のコミット順序は、前記複数の関連するトランザクションをコミットするための複数の許容可能な順序付けを特定する、前記複数の関連するトランザクションの所定の部分的順序付けを含むことを特徴とする請求項１に記載の方法。
【請求項４】
コミットアービトレータによって、前記所定のコミット順序に関する１つまたは複数の順序付け値を追跡するステップであって、前記１つまたは複数の順序付け値は、前記複数の関連するトランザクションを互いにコミットする適切な順序付けを決定するために使用されるステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記複数の関連するトランザクションのうちの特定のトランザクションがコミットする準備ができたとき、前記１つまたは複数の順序付け値を前記特定のトランザクションに提供されたコミット順序番号と比較して、前記特定のトランザクションがコミットできるかどうか判定することを特徴とする請求項４に記載の方法。
【請求項６】
前記所定のコミット順序は、動的に指定されることを特徴とする請求項１に記載の方法。
【請求項７】
前記所定のコミット順序は、静的に指定されることを特徴とする請求項１に記載の方法。
【請求項８】
コミットアービトレータによって、前記複数の関連するトランザクションのうちでコミットすることが許可されるべき次のトランザクションのコミット順序番号を表すｎｅｘｔ−ｔｏ−ｃｏｍｍｉｔフィールドを追跡するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記複数の関連するトランザクションのうちの特定のトランザクションがコミットする準備ができたとき、前記特定のトランザクションのコミット順序番号が、前記コミットアービトレータによって追跡される前記ｎｅｘｔ−ｔｏ−ｃｏｍｍｉｔフィールドと同じ値を有するかどうか判定することを特徴とする請求項８に記載の方法。
【請求項１０】
前記特定のトランザクションの前記コミット順序番号と前記ｎｅｘｔ−ｔｏ−ｃｏｍｍｉｔフィールドとが同じ値を有する場合は、前記コミットの続行を許可することを特徴とする請求項９に記載の方法。
【請求項１１】
前記コミットが続行して成功した後、前記コミットアービトレータは前記ｎｅｘｔ−ｔｏ−ｃｏｍｍｉｔフィールドをシーケンスにおける次の数にインクリメントすることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記特定のトランザクションの前記コミット順序番号と前記ｎｅｘｔ−ｔｏ−ｃｏｍｍｉｔフィールドとが同じ値を有さない場合は、前記特定のトランザクションが、先行トランザクションがコミットした後の、より後の時点でウェイクされるまで、前記特定のトランザクションをホールド状態にすることを特徴とする請求項９に記載の方法。
【請求項１３】
請求項１に記載の方法をコンピュータに実施させるためのコンピュータ実行可能命令を記憶していることを特徴とするコンピュータ可読媒体。
【請求項１４】
ソフトウェアトランザクショナルメモリシステム中で順序付けによるコンテンション管理を提供する、コンピュータシステムに実装される方法であって、該方法は、前記コンピュータシステムの少なくとも１つのコンピューティングデバイスによって実施され、
複数のトランザクションの実行の前の任意の時点で、所定のコミット順序が、第１のトランザクショングループ中で前記複数のトランザクションについて指定されるのを可能にすることと、
前記第１のトランザクショングループの第１のトランザクションおよび前記第１のトランザクショングループの第２のトランザクションを実行することであって、前記第１のトランザクションおよび前記第２のトランザクションは、ソフトウェアトランザクショナルメモリ中で他のトランザクションに関して原子的に実行されることと、
前記第１のトランザクションと前記第２のトランザクションとの間で競合が発生したときにコンテンション管理プロセスを呼び出すことと、
前記第１のトランザクショングループ中の前記複数のトランザクションについて指定された前記所定のコミット順序にしたがって、前記第１のトランザクションと前記第２のトランザクションをコミットすることと
を含むことを特徴とする方法。
【請求項１５】
前記所定のコミット順序を使用して、前記第１のトランザクショングループ中でそれぞれのコミット順序番号を前記複数のトランザクションに提供することと、
前記第１のトランザクションと前記第２のトランザクションとが同じトランザクショングループに含まれるかどうかを、前記コンテンション管理プロセスによって判定することと、
前記第１のトランザクションと前記第２のトランザクションとが同じトランザクショングループに含まれると判定された場合、前記第１のトランザクションに提供された前記コミット順序番号と、前記第２のトランザクションに提供された前記コミット順序番号とを比較することと、
前記第１のトランザクションと前記第２のトランザクションのうち、どちらがより低いコミット順序番号を有するかに基いて、前記第１のトランザクションと前記第２のトランザクションのうち、特定のトランザクションが続行されるのを許可することと
をさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
請求項１４に記載の方法をコンピュータに実施させるためのコンピュータ実行可能命令を記憶していることを特徴とするコンピュータ可読媒体。
【請求項１７】
コンピュータ実行可能命令を記憶しているコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、ソフトウェアトランザクショナルメモリシステムを有するコンピュータを制御して、
ソフトウェアトランザクショナルメモリ中で他のトランザクションに関して原子的に実行される第１のトランザクションと第２のトランザクションの実行の前の任意の時点で、所定のコミット順序が指定されるのを可能にすることと、
前記第１のトランザクションと前記第２のトランザクションとの間に競合が発生したときにコンテンション管理プロセスを呼び出すステップと、
前記指定された所定のコミット順序に基いて、前記第１のトランザクションと前記第２のトランザクションとからコミットするトランザクションを決定することと、
前記決定されたトランザクションをコミットすることと
を含む方法を、前記コンピュータに実施させることを特徴とするコンピュータ可読媒体。
【請求項１８】
前記方法は、
ネストされたトランザクション内でコミット順序付けを実行することをさらに含むことを特徴とする請求項１７に記載のコンピュータ可読媒体。