JP2009508187A - クリティカルセクションをトランザクション的に実行することによるロックの回避 - Google Patents
クリティカルセクションをトランザクション的に実行することによるロックの回避 Download PDFInfo
- Publication number
- JP2009508187A JP2009508187A JP2008524994A JP2008524994A JP2009508187A JP 2009508187 A JP2009508187 A JP 2009508187A JP 2008524994 A JP2008524994 A JP 2008524994A JP 2008524994 A JP2008524994 A JP 2008524994A JP 2009508187 A JP2009508187 A JP 2009508187A
- Authority
- JP
- Japan
- Prior art keywords
- critical section
- transactional execution
- program
- transactionally
- lock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
- G06F9/528—Mutual exclusion algorithms by using speculative mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
Description
図1は、本発明の実施形態に従ったコンピュータシステム100を示す。コンピュータシステム100は、通常、任意の種類のコンピュータシステムをも含み得、マイクロプロセッサベースのコンピュータシステム、メインフレームコンピュータ、デジタルシグナルプロセッサ、携帯型コンピュータデバイス、個人用整理手帳、デバイスコントローラ、および電気製品の計算エンジンを含むが、それだけに限定されない。図1に示されるように、コンピュータシステム100は、プロセッサ101およびメインメモリ(図示せず)に接続されるレベル2(L2)キャッシュ120を含む。プロセッサ102は、構造がプロセッサ101と同様であるために、プロセッサ101のみが以下に説明される。
図2Aは、本発明の実施形態に従って、如何にクリティカルセクションが実行されるかを示す。図2Aの左側で示されるように、クリティカルセクションを実行するスレッドは、一般的に、クリティカルセクションに入る前に、クリティカルセクションと関連するロックを獲得する。別のスレッドがロックを獲得している場合には、スレッドは、他方のスレッドがロックを解除するまで待機しなければならない。クリティカルセクションを出ると、スレッドはロックを解除する(用語の「スレッド」および「処理」は、本明細書においては互換的に使用されることに留意する)。
図3は、本発明の実施形態に従って、如何にトランザクション的実行が発生するかを示すフローチャートである。スレッドは、まず、コードのクリティカルセクションに入る前にSTE命令を実行する(ステップ302)。次に、システムは、クリティカルセクション内でコードをトランザクション的に実行するが、トランザクション的実行の結果をコミットしない(ステップ304)。
図4は、本発明の実施形態に従った、開始トランザクション的実行(STE)操作を示すフローチャートである。本フローチャートは、図3のフローチャートのステップ302の中で何が発生するかを示す。システムは、レジスタファイルをチェックポイントすることによって開始する(ステップ402)。これは、レジスタファイル103からレジスタファイル104へのフラッシュコピー操作を実行することを含む(図1参照)。レジスタ値をチェックポイントすることに加えて、このフラッシュコピーは、実行中のスレッドに関連するさまざまな状態のレジスタをもチェックポイントし得る。通常、フラッシュコピー操作は、対応するスレッドを再開することができる状態にまでチェックポイントする。
図5は、本発明の実施形態に従ったトランザクション的実行中に、如何にロードマーキングが実行されるかを示すフローチャートである。クリティカルセクションのトランザクション的実行中に、システムはロード操作を実行する。このロード操作の実行に際して、ロード操作がロードマークする必要のあるロード操作として特定された場合には、システムは、まず、Llデータキャッシュ115からデータ項目のロードを試みる(ステップ502)。ロードによりキャッシュヒットが発生する場合には、システムは、Llデータキャッシュ115における対応するキャッシュラインを「ロードマーク」する(ステップ506)。これは、キャッシュラインに対するロードマーキングビットの設定を含む。あるいは、ロードによりキャッシュミスが発生する場合には、システムは、さらなるレベルの記憶階層からキャッシュラインを取り出し(ステップ508)、ステップ506に進んで、Llデータキャッシュ115におけるキャッシュラインをロードマークする。
図6は、本発明の実施形態に従ったトランザクション的実行中に、如何にストアマーキングが実行されるかを示すフローチャートである。クリティカルセクションのトランザクション的実行中に、システムはストア操作を実行する。このストア操作がストアマークする必要のあるストア操作として特定された場合には、システムは先ず、専用の対応するキャッシュラインをプリフェッチする(ステップ602)。ラインが既にキャッシュに位置し、既に専用状態にある場合には、このプリフェッチ操作は何も行なわないことに留意する。
図7は、本発明の実施形態に従って、トランザクション的実行が成功裡に完了した後に、如何にコミット操作が実行されるかを示すフローチャートである。本フローチャートは、図3のフローチャートのステップ308の中で何が発生するかを示す。
図8は、本発明の実施形態に従って、トランザクション的実行が不成功に完了した後に、如何に変更が破棄されるかを示すフローチャートである。本フローチャートは、図3のフローチャートのステップ312の中で何が発生するかを示す。システムは、まず、トランザクション的実行中に作成されたレジスタファイルの変更を破棄する(ステップ802)。これは、トランザクション的実行中に作成されたレジスタファイルの変更を消去するか、または単に無視することを含み得る。これは、トランザクション的実行の開始前に古いレジスタ値がチェックポイントされているために、容易に達成される。また、システムは、Llデータキャッシュ115におけるキャッシュラインからロードマークをも消去し(ステップ804)、トランザクション的実行中に生成されたストアバッファの入力を、記憶階層にコミットせずにドレインする(ステップ806)。同時に、システムは、対応するL2キャッシュラインのマークを解除する。最後に、本発明の一実施形態において、システムはSTE命令によって特定される目標位置に分岐する(ステップ808)。本目標位置においてコードは、クリティカルセクションの再実行を任意で試みる(図1のステップ314を参照して上述されたように)か、または、コンテンション軽減のためのバックオフなどの、障害に応じたその他のアクションを取る。
Claims (20)
- クリティカルセクションをトランザクション的に実行することによってロックを回避するようにプログラムを修正するための方法であって、該方法は、
ロックによって保護される一つ以上のクリティカルセクションを含むプログラムを受信するステップと、
該クリティカルセクションと関連するロックを獲得することなく、ロックによって保護される該クリティカルセクションがトランザクション的に実行されるように、該プログラムを修正するステップと、
を包含し、
該プログラムは、
クリティカルセクションのトランザクション的実行中に、該プログラムはまず、該クリティカルセクションと関連するロックが別の処理によって保持されているか否かを決定し、保持されている場合には、該トランザクション的実行を打ち切り、
該クリティカルセクションの該トランザクション的実行が、別の処理からの干渉的データアクセスに遭遇せずに完了する場合には、該プログラムは、該トランザクション的実行中に作成された変更をコミットし、該クリティカルセクションの後の該プログラムの通常の非トランザクション的実行を任意で再開し、
該クリティカルセクションの該トランザクション的実行中に、別の処理からの干渉的データアクセスに遭遇する場合には、該プログラムは、該トランザクション的実行中に作成された変更を破棄し、該クリティカルセクションを再実行するようにゼロ以上の回数試みる、
ように修正される、
方法。 - 前記プログラムを修正するステップは、
該プログラムを修正するためにコンパイラを使用するステップ、
該プログラムを修正するためにバイナリ修正ツールを使用するステップ、
または、該プログラムによってアクセスされるライブラリを置き換えるステップ、
を含む、
請求項1に記載の方法。 - 前記クリティカルセクションの前記トランザクション的実行中に、他の処理からのデータアクセスを進めることが許容される、請求項1に記載の方法。
- 前記クリティカルセクションを再実行するように試みるステップは、該クリティカルセクションをトランザクション的に再実行するように試みるステップを含む、請求項1に記載の方法。
- トランザクション的実行の一つ以上の試みの後に、前記クリティカルセクションが成功裡に完了しない場合には、前記プログラムが、
該クリティカルセクションと関連するロックを獲得し、
該クリティカルセクションを非トランザクション的に実行し、
該クリティカルセクションと関連する該ロックを解除するように、
該プログラムは修正される、
請求項4に記載の方法。 - 前記干渉的データアクセスは、
トランザクション的実行中にロードされた場所への別の処理によるストアと、
トランザクション的実行中にストアされた場所への別の処理によるロードと、
トランザクション的実行中にストアされた場所への別の処理によるストアと、
を含み得る、
請求項1に記載の方法。 - クリティカルセクションのトランザクション的実行を開始するステップは、レジスタ値およびその他の状態情報をチェックポイントするためのチェックポインティング操作を実行するステップを含む、請求項1に記載の方法。
- コードのクリティカルセクションをトランザクション的に実行することによってロックを回避するための方法であって、該方法は、
該クリティカルセクションと関連するロックを獲得することなく、プログラム内のコードのクリティカルセクションをトランザクション的に実行するための処理を許容するステップを包含し、
該クリティカルセクションをトランザクション的に実行するステップは、まず、該クリティカルセクションと関連する該ロックが別の処理に保持されているか否かを決定するステップと、保持されている場合には該トランザクション的実行を打ち切るステップと、を含み、
該処理が、別の処理からの干渉的データアクセスに遭遇せずに該クリティカルセクションを完了する場合には、該方法は、
該トランザクション的実行中に作成された変更をコミットするステップと、
該クリティカルセクションの後の、該プログラムの通常の非トランザクション的実行を任意で再開するステップと、をさらに包含し、
該クリティカルセクションのトランザクション的実行中に別の処理からの干渉的データアクセスに遭遇する場合には、該方法は、
該トランザクション実行中に作成された変更を破棄するステップと、
該クリティカルセクションをゼロ以上の回数再実行するように試みるステップと、をさらに包含する、
方法。 - 請求項8に記載の方法であって、前記プログラムを実行する前に、ロックによって保護されるクリティカルセクションがトランザクション的に実行されるように、該プログラムを修正するステップをさらに包含する、方法。
- 前記プログラムを修正するステップは、
該プログラムを修正するためにコンパイラを使用するステップ、
該プログラムを修正するためにバイナリ修正ツールを使用するステップ、
または、該プログラムによってアクセスされるライブラリを置き換えるステップ、
を含む、
請求項9に記載の方法。 - 前記クリティカルセクションの前記トランザクション的実行中に、他の処理からのデータアクセスを進めることが許容される、請求項8に記載の方法。
- 前記クリティカルセクションを再実行するように試みるステップは、該クリティカルセクションをトランザクション的に再実行するように試みるステップを含む、請求項8に記載の方法。
- トランザクション的実行の一つ以上の試みの後に、前記クリティカルセクションが成功裡に完了しない場合には、
該クリティカルセクションと関連するロックを獲得するステップと、
該クリティカルセクションを非トランザクション的に実行ステップと、
該クリティカルセクションと関連する該ロックを解除するステップと、
をさらに包含する、
請求項12に記載の方法。 - クリティカルセクションのトランザクション的実行を開始するステップは、レジスタ値およびその他の状態情報をチェックポイントするためのチェックポインティング操作を実行するステップを含む、請求項8に記載の方法。
- 前記干渉的データアクセスは、
トランザクション的実行中に前記処理がロードされた場所への別の処理によるストアと、
トランザクション的実行中に該処理がストアされた場所への別の処理によるロードと、
トランザクション的実行中に該処理がストアされた場所への別の処理によるストアと、
を含み得る、
請求項8に記載の方法。 - クリティカルセクションをトランザクション的に実行することによってロックを回避するためにプログラムを修正する装置であって、該装置は、
該クリティカルセクションと関連するロックを獲得することなく、ロックによって保護されるクリティカルセクションがトランザクション的に実行されるように、該プログラムを修正するように構成される、修正機構を備え、
該修正機構は、該プログラムを、
クリティカルセクションのトランザクション的実行中に、該プログラムは、まず、該クリティカルセクションと関連するロックが別の処理によって保持されているか否かを決定し、保持されている場合には、該トランザクション的実行を打ち切り、
該クリティカルセクションの該トランザクション的実行が、別の処理からの干渉的データアクセスに遭遇せずに完了する場合には、該プログラムは、該トランザクション的実行中に作成された変更をコミットし、該クリティカルセクションの後の該プログラムの通常の非トランザクション的実行を任意で再開し、
該クリティカルセクションのトランザクション的実行中に、別の処理からの干渉的データアクセスに遭遇する場合には、該プログラムは、該トランザクション的実行中に作成された変更を破棄し、該クリティカルセクションの再実行をゼロ以上の回数試みるように、
修正するように構成される、
装置。 - 前記修正機構は、
コンパイラ、
バイナリ修正ツール、
または、前記プログラムによってアクセスされるライブラリを置き変える機構、
である、
請求項16に記載の装置。 - 前記クリティカルセクションの前記トランザクション的実行中に、他の処理からのデータアクセスを進めることが許容される、請求項16に記載の装置。
- 前記クリティカルセクションを再実行するように試みるステップは、前記クリティカルセクションをトランザクション的に再実行するように試みるステップを含む、請求項16に記載の装置。
- トランザクション的実行の一つ以上の試みの後に、前記クリティカルセクションが成功裡に完了しない場合には、前記プログラムが、
該クリティカルセクションと関連するロックを獲得し、
該クリティカルセクションを非トランザクション的に実行し、
該クリティカルセクションと関連する該ロックを解除するように、
該プログラムは修正される、
請求項19に記載の装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/195,093 US7398355B1 (en) | 2003-02-13 | 2005-08-01 | Avoiding locks by transactionally executing critical sections |
| PCT/US2006/028152 WO2007015925A1 (en) | 2005-08-01 | 2006-07-21 | Avoiding locks by transactionally executing critical sections |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2009508187A true JP2009508187A (ja) | 2009-02-26 |
Family
ID=37309335
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008524994A Pending JP2009508187A (ja) | 2005-08-01 | 2006-07-21 | クリティカルセクションをトランザクション的に実行することによるロックの回避 |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP1913473A1 (ja) |
| JP (1) | JP2009508187A (ja) |
| WO (1) | WO2007015925A1 (ja) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010244544A (ja) * | 2009-04-08 | 2010-10-28 | Intel Corp | マルチスレッドのためのレジスタチェックポイントメカニズム |
| JP2013537334A (ja) * | 2010-09-25 | 2013-09-30 | インテル コーポレイション | ハードウェア制限に基づく調整可能なトランザクション・サイズを利用してコードを動的に最適化する装置、方法およびシステム |
| JP2015523651A (ja) * | 2012-06-15 | 2015-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | コンピューティング環境においてマシン命令を実行するための方法、システム、およびプログラム(トランザクション開始/終了命令) |
| JP2015526790A (ja) * | 2012-06-15 | 2015-09-10 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | トランザクション処理における選択されたレジスタの保存/復元 |
| US9250980B2 (en) | 2009-12-18 | 2016-02-02 | International Business Machines Corporation | System, method, program, and code generation unit |
| JP2017509083A (ja) * | 2014-03-27 | 2017-03-30 | インテル コーポレイション | バイナリトランザクションベースのプロセッサによるロックエリジョン |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8627014B2 (en) * | 2008-12-30 | 2014-01-07 | Intel Corporation | Memory model for hardware attributes within a transactional memory system |
| US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
| US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
| US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
| US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
| US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
| US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
| US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
| US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
| US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
| CN107239415B (zh) * | 2016-03-28 | 2020-02-14 | 华为技术有限公司 | 一种执行临界区操作的方法及装置 |
| CN114706691B (zh) * | 2022-04-15 | 2025-03-18 | 郑州信大捷安信息技术股份有限公司 | 一种基于文件锁的多任务互斥方法和系统 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040162967A1 (en) * | 2003-02-13 | 2004-08-19 | Marc Tremblay | Start transactional execution (STE) instruction to support transactional program execution |
| WO2004075054A1 (en) * | 2003-02-13 | 2004-09-02 | Sun Microsystems Inc. | Fail instruction to support transactional during program execution |
| US20040187123A1 (en) * | 2003-02-13 | 2004-09-23 | Marc Tremblay | Selectively unmarking load-marked cache lines during transactional program execution |
-
2006
- 2006-07-21 JP JP2008524994A patent/JP2009508187A/ja active Pending
- 2006-07-21 EP EP06787947A patent/EP1913473A1/en not_active Withdrawn
- 2006-07-21 WO PCT/US2006/028152 patent/WO2007015925A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040162967A1 (en) * | 2003-02-13 | 2004-08-19 | Marc Tremblay | Start transactional execution (STE) instruction to support transactional program execution |
| WO2004075054A1 (en) * | 2003-02-13 | 2004-09-02 | Sun Microsystems Inc. | Fail instruction to support transactional during program execution |
| US20040187123A1 (en) * | 2003-02-13 | 2004-09-23 | Marc Tremblay | Selectively unmarking load-marked cache lines during transactional program execution |
Non-Patent Citations (1)
| Title |
|---|
| JPN7011004294; Moir,Mark: 'Hybrid Transactional Memory' Sun Microsystems Laboratories Paper , 200507 * |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010244544A (ja) * | 2009-04-08 | 2010-10-28 | Intel Corp | マルチスレッドのためのレジスタチェックポイントメカニズム |
| US9940138B2 (en) | 2009-04-08 | 2018-04-10 | Intel Corporation | Utilization of register checkpointing mechanism with pointer swapping to resolve multithreading mis-speculations |
| US9250980B2 (en) | 2009-12-18 | 2016-02-02 | International Business Machines Corporation | System, method, program, and code generation unit |
| US9904581B2 (en) | 2009-12-18 | 2018-02-27 | International Business Machines Corporation | System, method, program, and code generation unit |
| US10169092B2 (en) | 2009-12-18 | 2019-01-01 | International Business Machines Corporation | System, method, program, and code generation unit |
| JP2013537334A (ja) * | 2010-09-25 | 2013-09-30 | インテル コーポレイション | ハードウェア制限に基づく調整可能なトランザクション・サイズを利用してコードを動的に最適化する装置、方法およびシステム |
| JP2015523651A (ja) * | 2012-06-15 | 2015-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | コンピューティング環境においてマシン命令を実行するための方法、システム、およびプログラム(トランザクション開始/終了命令) |
| JP2015526790A (ja) * | 2012-06-15 | 2015-09-10 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | トランザクション処理における選択されたレジスタの保存/復元 |
| JP2017509083A (ja) * | 2014-03-27 | 2017-03-30 | インテル コーポレイション | バイナリトランザクションベースのプロセッサによるロックエリジョン |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1913473A1 (en) | 2008-04-23 |
| WO2007015925A1 (en) | 2007-02-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7389383B2 (en) | Selectively unmarking load-marked cache lines during transactional program execution | |
| US7818510B2 (en) | Selectively monitoring stores to support transactional program execution | |
| US7904664B2 (en) | Selectively monitoring loads to support transactional program execution | |
| US7206903B1 (en) | Method and apparatus for releasing memory locations during transactional execution | |
| US7398355B1 (en) | Avoiding locks by transactionally executing critical sections | |
| US6938130B2 (en) | Method and apparatus for delaying interfering accesses from other threads during transactional program execution | |
| US7500086B2 (en) | Start transactional execution (STE) instruction to support transactional program execution | |
| JP4558714B2 (ja) | 臨界領域を投機的に実行することによりロックを回避するための方法および装置 | |
| US7930695B2 (en) | Method and apparatus for synchronizing threads on a processor that supports transactional memory | |
| US7617421B2 (en) | Method and apparatus for reporting failure conditions during transactional execution | |
| Shin et al. | Hiding the long latency of persist barriers using speculative execution | |
| JP2009508187A (ja) | クリティカルセクションをトランザクション的に実行することによるロックの回避 | |
| US20040163082A1 (en) | Commit instruction to support transactional program execution | |
| US7418577B2 (en) | Fail instruction to support transactional program execution | |
| US8065670B2 (en) | Method and apparatus for enabling optimistic program execution |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090511 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100427 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111125 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120224 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120302 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120322 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120411 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120710 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120718 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120810 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120817 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121101 |