【手続補正書】
【提出日】平成23年12月14日(2011.12.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メインメモリと、
メモリ・アクセス・サイズに係るメモリアクセス能力の異なる第１のプロセッサと第２のプロセッサとを含み、
前記第１のプロセッサは前記第２のプロセッサに対して前記メインメモリのアドレスについてＣＡＳ（compare and swap：比較・交換）処理の実行を通知し、
前記第２のプロセッサはアトミックなＣＡＳ処理を実行し、
前記第２のプロセッサはＣＡＳ処理の成否を第１のプロセッサに通知し、
前記第２のプロセッサの最大メモリ転送サイズは前記第１のプロセッサの最大メモリ転送サイズよりも大きく設定され、ＣＡＳ処理の実行時のメモリアドレスにおける保持値のサイズが第２のプロセッサの最大メモリ転送サイズ以下であり、かつ、第１のプロセッサの最大メモリ転送サイズより大きく設定されており、
前記ＣＡＳ処理は、
第２のプロセッサに前記アドレスの保持値の予約付き読み出しを実行させるステップと、
第２のプロセッサに前記保持値と１以上の参照パラメータに関する比較処理を実行させるステップと、
比較処理が成功したときに、第２のプロセッサに前記アドレスへの交換値の条件付き書き込みを実行させるステップと、
を含むことを特徴とするプロセッサシステム。
【請求項２】
第２のプロセッサに前記保持値と１以上の参照パラメータに関する比較処理を実行させるステップは、前記保持値と前記１以上の参照パラメータについての論理演算を第２のプロセッサに実行させるステップ、を更に備え、
前記論理演算の結果は、真値または偽値のいずれかであることを特徴とする請求項１に記載のシステム。
【請求項３】
前記論理演算の結果が真値であって、かつ、前記交換値の条件付き書き込みが成功することが、ＣＡＳ処理の成功を示すことを特徴とする請求項２に記載のシステム。
【請求項４】
前記論理演算の結果が偽値であって、かつ、前記交換値の条件付き書き込みが成功することが、ＣＡＳ処理の成功を示すことを特徴とする請求項２に記載のシステム。
【請求項５】
前記１以上の参照パラメータは単一参照値を含み、前記論理演算は、前記保持値と前記単一参照値との比較結果に基づいて、真値または偽値となることを特徴とする請求項２に記載のシステム。
【請求項６】
前記１以上の参照パラメータは単一参照値を含み、前記論理演算は、前記保持値が前記単一参照値と等しいときに真値となる論理等価演算であることを特徴とする請求項２に記載のシステム。
【請求項７】
第１のプロセッサから第２のプロセッサに対して、メインメモリのアドレスについてＣＡＳ処理の実行を指示する手段は、第２のプロセッサにアドレス、前記１以上の参照パラメータおよび１以上の交換パラメータを転送する手段、を含むことを特徴とする請求項１に記載のシステム。
【請求項８】
第１のプロセッサから第２のプロセッサに対して、メインメモリのアドレスについてＣＡＳ処理の実行を指示する手段は、第２のプロセッサにアドレス、前記交換値および前記１以上の参照パラメータを転送する手段、を含むことを特徴とする請求項１に記載のシステム。
【請求項９】
第１のプロセッサから第２のプロセッサに対して、メインメモリのアドレスについてＣＡＳ処理の実行を指示する手段は、第２のプロセッサにアドレスと前記保持値のサイズを転送する手段、を含むことを特徴とする請求項１に記載のシステム。
【請求項１０】
第１のプロセッサから第２のプロセッサに対して、メインメモリのアドレスについてＣＡＳ処理の実行を指示する手段は、第２のプロセッサにアドレス、前記１以上の参照パラメータ、１以上の交換パラメータを転送する手段を含み、
ＣＡＳ処理は、前記１以上の交換パラメータにより前記交換値を計算するステップ、を含むことを特徴とする請求項１に記載のシステム。
【請求項１１】
前記保持値と１以上の参照パラメータを比較するステップは、前記保持値が参照値と等しいかを判定するステップ、を含むことを特徴とする請求項１に記載のシステム。
【請求項１２】
ＣＡＳ処理は、
予約付き読み出しの実行から条件付き書き込みの実行までに前記保持値が上書きされていれば、前記保持値の予約付き読み出しを再実行し、更に、前記保持値と１以上の参照値についての比較処理を実行し、比較失敗時には第１のプロセッサに通知することを特徴とする請求項１に記載のシステム。
【請求項１３】
ＣＡＳ処理を実行する手段は、前記交換値を計算するステップ、を含むことを特徴とする請求項１に記載のシステム。
【請求項１４】
ＣＡＳ処理を実行する手段は、前記１以上の交換パラメータにより参照値を計算するステップ、を含むことを特徴とする請求項１に記載のシステム。
【請求項１５】
前記交換値は、前記保持値についての所定関数の実行結果として算出されることを特徴とする請求項１に記載のシステム。
【請求項１６】
前記交換値は、前記保持値と第１のプロセッサが提供する１以上のパラメータについての所定関数の実行結果として算出されることを特徴とする請求項１に記載のシステム。
【請求項１７】
前記交換値は、前記保持値に増分値を加算した値であることを特徴とする請求項１に記載のシステム。
【請求項１８】
第１のプロセッサによりＣＡＳ処理を実行指示されるべき第２のプロセッサを指定することを更に含むことを特徴とする請求項１に記載のシステム。
【請求項１９】
第１のプロセッサによりＣＡＳ処理を実行指示されるべき第２のプロセッサを指定することを更に含み、前記指定された第２のプロセッサはアトミックにＣＡＳ処理を実行することを特徴とする請求項１に記載のシステム。
【請求項２０】
メインメモリと、
前記メインメモリに接続される第１のプロセッサと、
前記メインメモリおよび第１のプロセッサに接続される１以上の第２のプロセッサとを備え、
各１以上の第２のプロセッサは結合したローカルストア（Local Store）を含み、
第２のプロセッサの最大メモリ転送サイズが第１のプロセッサの最大メモリ転送サイズよりも大きくなるように第２のプロセッサのメモリ転送サイズと第１のプロセッサのメモリ転送サイズは異なる値に設定され、
メインメモリのアドレスに対するＣＡＳ（compare and swap：比較・交換）処理の実行を１以上の第２のプロセッサの１つに指示する第１の命令セットが第１のプロセッサの１以上のレジスタまたはメインメモリに実装され、
ＣＡＳ処理の実行時のメモリアドレスにおける保持値のサイズは第２のプロセッサの最大メモリ転送サイズ以下で第１のプロセッサの最大メモリ転送サイズよりも大きく設定され、
前記アドレスについてのＣＡＳ処理を実行する命令と、ＣＡＳ処理の成否を第１のプロセッサに通知する命令を含む第２の命令セットが１以上の第２のプロセッサ・ローカルストアの１以上のレジスタまたはメインメモリに実装されたことを特徴とするシステム。
【請求項２１】
前記アドレスについてのＣＡＳ処理を実行する命令は、
第２のプロセッサに前記アドレスの保持値の読み出しを実行させる命令と、
第２のプロセッサに前記保持値と１以上の参照パラメータに関する比較処理を実行させる命令と、
比較処理が成功しなかったときに、第１のプロセッサに通知する命令と、
を含むことを特徴とする請求項２０に記載のシステム。
【請求項２２】
ＣＡＳ処理における比較処理は、前記保持値と１以上の参照パラメータについての論理演算を含み、
前記論理演算の結果は、真値または偽値のいずれかであることを特徴とする請求項２０に記載のシステム。
【請求項２３】
前記論理演算の結果が真値であって、かつ、交換値の条件付き書き込みが成功することが、ＣＡＳ処理の成功を示すことを特徴とする請求項２２に記載のシステム。
【請求項２４】
前記論理演算の結果が偽値であって、かつ、交換値の条件付き書き込みが成功することが、ＣＡＳ処理の成功を示すことを特徴とする請求項２２に記載のシステム。
【請求項２５】
前記論理演算は、前記保持値が単一参照値と等しいときに真値となる論理等価演算であることを特徴とする請求項２２に記載のシステム。
【請求項２６】
１以上の第２のプロセッサは特定第２のプロセッサを含み、
前記第１の命令セットは、メインメモリのアドレスに対するＣＡＳ処理の実行を特定第２のプロセッサに指示する命令を含むことを特徴とする請求項２０に記載のシステム。
【請求項２７】
１以上の第２のプロセッサは特定第２のプロセッサを含み、
前記第１の命令セットは、メインメモリのアドレスに対するＣＡＳ処理の実行を特定第２のプロセッサに指示する命令を含み、
特定第２のプロセッサは、そのローカル・ストアに第２の命令セットを実装されることを特徴とする請求項２０に記載のシステム。
【請求項２８】
特定第２のプロセッサに第１のプロセッサ補助関数を実装したことを特徴とする請求項２７に記載のシステム。
【請求項２９】
第１のプロセッサ補助関数は、memcopy関数を含むことを特徴とする請求項２８に記載のシステム。
【請求項３０】
ＣＡＳ処理の実行命令は、
予約付き読み出しの実行から条件付き書き込みの実行までに前記保持値が上書きされていることを条件として実行される条件付き命令のセットを含み、
条件付き命令のセットは、
第２のプロセッサに前記保持値の予約付き読み出しを再実行させる命令と、
第２のプロセッサに前記保持値と１以上の参照値についての比較処理を実行させる命令と、
を含むことを特徴とする請求項２０に記載のシステム。
【請求項３１】
ＣＡＳ処理は、交換値を計算するステップを含むことを特徴とする請求項２０に記載のシステム。
【請求項３２】
ＣＡＳ処理は、参照値を計算するステップを含むことを特徴とする請求項２０に記載のシステム。
【請求項３３】
前記交換値は、前記保持値についての所定関数の実行結果として算出されることを特徴とする請求項３１に記載のシステム。
【請求項３４】
前記交換値は、前記保持値と第１のプロセッサが提供する１以上のパラメータについての所定関数の実行結果として算出されることを特徴とする請求項３１に記載のシステム。。
【請求項３５】
前記交換値は、前記保持値に増分値を加算した値であることを特徴とする請求項３１に記載のシステム。
【請求項３６】
第２のプロセッサの最大メモリ転送サイズは１２８バイトであり、第１のプロセッサの最大メモリ転送サイズは８バイトであることを特徴とする請求項２０に記載のシステム。
【請求項３７】
メインメモリと、メモリ・アクセス・サイズに係るメモリアクセス能力の異なる第１のプロセッサと第２のプロセッサとを含む２以上のプロセッサを備えるシステムにおいて実行される処理方法であって、
第１のプロセッサから第２のプロセッサに対してメインメモリのアドレスについてＣＡＳ処理の実行を指示するステップと、
第２のプロセッサにアトミックなＣＡＳ処理を実行させるステップと、
第２のプロセッサにＣＡＳ処理の成否を第１のプロセッサに通知させるステップと、を備え、
第２のプロセッサの最大メモリ転送サイズは第１のプロセッサの最大メモリ転送サイズよりも大きく設定され、ＣＡＳ（compare and swap）処理の実行時のメモリアドレスにおける保持値のサイズが第２のプロセッサの最大メモリ転送サイズ以下であり、かつ、第１のプロセッサの最大メモリ転送サイズより大きく設定されており、
ＣＡＳ処理は、
第２のプロセッサに前記アドレスの保持値の予約付き読み出しを実行させるステップと、
第２のプロセッサに前記保持値と１以上の参照パラメータに関する比較処理を実行させるステップと、
比較処理が成功したときに、第２のプロセッサに前記アドレスへの交換値の条件付き書き込みを実行させるステップと、
を含むことを特徴とするアトミック命令実行方法。
【請求項３８】
メインメモリと、メモリ・アクセス・サイズに係るメモリアクセス能力の異なる第１のプロセッサと第２のプロセッサとを含む２以上のプロセッサを備えるシステムにおいてアトミック処理の方法をプロセッサに実現させるための命令を格納した記録媒体であって、前記方法は、
第１のプロセッサから１以上の第２のプロセッサの１つに対してメインメモリのアドレスについてＣＡＳ処理の実行を指示するステップと、
第２のプロセッサにアトミックなＣＡＳ処理を実行するステップと、
第２のプロセッサにＣＡＳ処理の成否を第１のプロセッサに通知させるステップと、を備え、
第２のプロセッサの最大メモリ転送サイズは第１のプロセッサの最大メモリ転送サイズよりも大きく設定され、ＣＡＳ（compare and swap）処理の実行時のメモリアドレスにおける保持値のサイズが第２のプロセッサの最大メモリ転送サイズ以下であり、かつ、第１のプロセッサの最大メモリ転送サイズより大きく設定されており、
ＣＡＳ処理は、
第２のプロセッサに前記アドレスの保持値の予約付き読み出しを実行させるステップと、
第２のプロセッサに前記保持値と１以上の参照パラメータに関する比較処理を実行させるステップと、
比較処理が成功したときに、第２のプロセッサに前記アドレスへの交換値の条件付き書き込みを実行させるステップと、
を含むことを特徴とする記録媒体。