WO2007015925A1 - Elimination des verrous au moyen de l'execution transactionnelle de sections critiques - Google Patents

Elimination des verrous au moyen de l'execution transactionnelle de sections critiques Download PDF

Info

Publication number
WO2007015925A1
WO2007015925A1 PCT/US2006/028152 US2006028152W WO2007015925A1 WO 2007015925 A1 WO2007015925 A1 WO 2007015925A1 US 2006028152 W US2006028152 W US 2006028152W WO 2007015925 A1 WO2007015925 A1 WO 2007015925A1
Authority
WO
WIPO (PCT)
Prior art keywords
critical section
transactional execution
program
critical
transactionally
Prior art date
Application number
PCT/US2006/028152
Other languages
English (en)
Inventor
Mark S. Moir
Marc Tremblay
Shailender Chaudhry
Original Assignee
Sun Microsystems, Inc.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US11/195,093 external-priority patent/US7398355B1/en
Application filed by Sun Microsystems, Inc. filed Critical Sun Microsystems, Inc.
Priority to JP2008524994A priority Critical patent/JP2009508187A/ja
Priority to EP06787947A priority patent/EP1913473A1/fr
Publication of WO2007015925A1 publication Critical patent/WO2007015925A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • G06F9/528Mutual exclusion algorithms by using speculative mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary

Definitions

  • attempting to re-execute the critical section involves attempting to transactionally re-execute the critical section.
  • the program is modified so that if the critical section is not successfully completed after one or more attempts at transactional execution, the program: acquires a lock associated with the critical section; non- transactionally executes the critical section; and releases the lock associated with the critical section.
  • FIG. 2A illustrates how a critical section is executed in accordance with an embodiment of the present invention. ⁇ .
  • Processor 101 additionally includes a level one (Ll) data cache 115, which stores data items that are likely to be used by processor 101.
  • Ll data cache 115 includes load-marking bits 116, which indicate that a data value from the line has been loaded during transactional execution. These load-marking bits 116 are used to determine whether any interfering memory references take place during transactional execution as is described below with reference to FIGs. 3-8.
  • Processor 101 also includes an Ll instruction cache (not shown).
  • Ll instruction cache in processor 101, and with Ll data cache 117 (and a corresponding Ll instruction cache) in processor 102.
  • L2 cache 120 is associated with a coherency mechanism 122, such as the reverse directory structure described in U.S. Patent Application No. 10/186,118, entitled, "Method and Apparatus for Facilitating Speculative Loads in a Multiprocessor System," filed on June 26, 2002, by inventors Shailender Chaudhry and Marc Tremblay (Publication No. US-2002-0199066-A1).
  • This coherency mechanism 122 maintains "copyback inforavation" 121 for each cache line.
  • FIG. 6 presents a flow chart illustrating how store-marking is performed during transactional execution in accordance with an embodiment of the present invention.
  • the system performs a store operation. If this store operation has been identified as a store operation that needs to be store-marked, the system first prefetches a corresponding cache line for exclusive use (step 602). Note that this prefetch operation will do nothing if the line is already located in cache and is already in an exclusive use state.
  • Ll data cache 115 is a write-through cache
  • the store operation propagates through Ll data cache 115 to L2 cache 120. The system then attempts to lock the cache line corresponding to the store operation in L2 data cache 115 (step 604).

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

La présente invention concerne un système qui élimine les verrous par l'exécution transactionnelle de sections critiques. Le système reçoit un programme qui comprend des sections critiques protégées par des verrous. Le système modifie le programme de sorte que les sections critiques soit exécutées au moyen de transactions sans l'aide de verrous. Le programme est modifié de sorte que: (1) pendant l'exécution transactionnelle d'une section critique, le programme détermine si un verrou associé à la section critique est maintenu par un autre processus et si c'est le cas, abandonne l'exécution transactionnelle; (2) si l'exécution transactionnelle s'achève sans rencontrer un accès de données interférant provenant d'un autre processus, le programme stocke les modifications effectuées pendant l'exécution transactionnelle et reprend éventuellement l'exécution non transactionnelle normale du programme après la section critique; (3) si un accès de données interférant provenant d'un autre processus est rencontré pendant l'exécution transactionnelle, le programme rejette les changements effectués pendant l'exécution transactionnelle et tente de procéder à la réexécution de la section critique.
PCT/US2006/028152 2005-08-01 2006-07-21 Elimination des verrous au moyen de l'execution transactionnelle de sections critiques WO2007015925A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008524994A JP2009508187A (ja) 2005-08-01 2006-07-21 クリティカルセクションをトランザクション的に実行することによるロックの回避
EP06787947A EP1913473A1 (fr) 2005-08-01 2006-07-21 Elimination des verrous au moyen de l'execution transactionnelle de sections critiques

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
US11/195,093 2005-08-01

Publications (1)

Publication Number Publication Date
WO2007015925A1 true WO2007015925A1 (fr) 2007-02-08

Family

ID=37309335

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/028152 WO2007015925A1 (fr) 2005-08-01 2006-07-21 Elimination des verrous au moyen de l'execution transactionnelle de sections critiques

Country Status (3)

Country Link
EP (1) EP1913473A1 (fr)
JP (1) JP2009508187A (fr)
WO (1) WO2007015925A1 (fr)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012514254A (ja) * 2008-12-30 2012-06-21 インテル・コーポレーション トランザクショナルメモリシステム内でのハードウェア属性のメモリモデル
US9740521B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Constrained transaction execution
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9766925B2 (en) 2012-06-15 2017-09-19 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
CN107239415A (zh) * 2016-03-28 2017-10-10 华为技术有限公司 一种执行临界区操作的方法及装置
US9792125B2 (en) 2012-06-15 2017-10-17 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US9851978B2 (en) 2012-06-15 2017-12-26 International Business Machines Corporation Restricted instructions in transactional execution
US9940138B2 (en) 2009-04-08 2018-04-10 Intel Corporation Utilization of register checkpointing mechanism with pointer swapping to resolve multithreading mis-speculations
US9983883B2 (en) 2012-06-15 2018-05-29 International Business Machines Corporation Transaction abort instruction specifying a reason for abort
US10185588B2 (en) 2012-06-15 2019-01-22 International Business Machines Corporation Transaction begin/end instructions
US10223214B2 (en) 2012-06-15 2019-03-05 International Business Machines Corporation Randomized testing within transactional execution
US10430199B2 (en) 2012-06-15 2019-10-01 International Business Machines Corporation Program interruption filtering in transactional execution
US10599435B2 (en) 2012-06-15 2020-03-24 International Business Machines Corporation Nontransactional store instruction

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5088754B2 (ja) 2009-12-18 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション システム、方法、プログラムおよびコード生成装置
US20120079245A1 (en) * 2010-09-25 2012-03-29 Cheng Wang Dynamic optimization for conditional commit
US20150277914A1 (en) * 2014-03-27 2015-10-01 John H. Kelm Lock elision with binary translation based processors

Citations (2)

* Cited by examiner, † Cited by third party
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
US20040187123A1 (en) * 2003-02-13 2004-09-23 Marc Tremblay Selectively unmarking load-marked cache lines during transactional program execution

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418577B2 (en) * 2003-02-13 2008-08-26 Sun Microsystems, Inc. Fail instruction to support transactional program execution

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
US20040187123A1 (en) * 2003-02-13 2004-09-23 Marc Tremblay Selectively unmarking load-marked cache lines during transactional program execution

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MOIR M: "Hybrid Hardware / Software Transactional Memory", SLIDES PRESENTED AT THE WORKSHOP ON TRANSACTIONAL SYSTEMS, 8 April 2005 (2005-04-08), CHICAGO, IL, USA, XP002407376, Retrieved from the Internet <URL:http://www.cs.wisc.edu/~rajwar/tm-workshop/TALKS/moir.pdf> [retrieved on 20061114] *
MOIR M: "Hybrid Transactional Memory", SUN MICROSYSTEMS LABORATORIES PAPER, July 2005 (2005-07-01), XP002407375, Retrieved from the Internet <URL:http://research.sun.com/scalable/pubs/Moir-Hybrid-2005.pdf> [retrieved on 20061114] *
RAJWAR R ET AL: "Speculative lock elision: enabling highly concurrent multithreaded execution", MICROARCHITECTURE, 2001. MICRO-34. PROCEEDINGS. 34TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON DEC. 1-5, 2001, PISCATAWAY, NJ, USA,IEEE, 1 December 2001 (2001-12-01), pages 294 - 305, XP010583693, ISBN: 0-7965-1369-7 *

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012514254A (ja) * 2008-12-30 2012-06-21 インテル・コーポレーション トランザクショナルメモリシステム内でのハードウェア属性のメモリモデル
US9940138B2 (en) 2009-04-08 2018-04-10 Intel Corporation Utilization of register checkpointing mechanism with pointer swapping to resolve multithreading mis-speculations
US9983883B2 (en) 2012-06-15 2018-05-29 International Business Machines Corporation Transaction abort instruction specifying a reason for abort
US9792125B2 (en) 2012-06-15 2017-10-17 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US9996360B2 (en) 2012-06-15 2018-06-12 International Business Machines Corporation Transaction abort instruction specifying a reason for abort
US11080087B2 (en) 2012-06-15 2021-08-03 International Business Machines Corporation Transaction begin/end instructions
US10185588B2 (en) 2012-06-15 2019-01-22 International Business Machines Corporation Transaction begin/end instructions
US9851978B2 (en) 2012-06-15 2017-12-26 International Business Machines Corporation Restricted instructions in transactional execution
US9858082B2 (en) 2012-06-15 2018-01-02 International Business Machines Corporation Restricted instructions in transactional execution
US10223214B2 (en) 2012-06-15 2019-03-05 International Business Machines Corporation Randomized testing within transactional execution
US9983915B2 (en) 2012-06-15 2018-05-29 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9983881B2 (en) 2012-06-15 2018-05-29 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9740521B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Constrained transaction execution
US9983882B2 (en) 2012-06-15 2018-05-29 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9766925B2 (en) 2012-06-15 2017-09-19 International Business Machines Corporation Transactional processing
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US10353759B2 (en) 2012-06-15 2019-07-16 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US10430199B2 (en) 2012-06-15 2019-10-01 International Business Machines Corporation Program interruption filtering in transactional execution
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US10558465B2 (en) 2012-06-15 2020-02-11 International Business Machines Corporation Restricted instructions in transactional execution
US10719415B2 (en) 2012-06-15 2020-07-21 International Business Machines Corporation Randomized testing within transactional execution
US10599435B2 (en) 2012-06-15 2020-03-24 International Business Machines Corporation Nontransactional store instruction
US10606597B2 (en) 2012-06-15 2020-03-31 International Business Machines Corporation Nontransactional store instruction
US10684863B2 (en) 2012-06-15 2020-06-16 International Business Machines Corporation Restricted instructions in transactional execution
CN107239415B (zh) * 2016-03-28 2020-02-14 华为技术有限公司 一种执行临界区操作的方法及装置
CN107239415A (zh) * 2016-03-28 2017-10-10 华为技术有限公司 一种执行临界区操作的方法及装置

Also Published As

Publication number Publication date
JP2009508187A (ja) 2009-02-26
EP1913473A1 (fr) 2008-04-23

Similar Documents

Publication Publication Date Title
US7398355B1 (en) Avoiding locks by transactionally executing critical sections
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
US6938130B2 (en) Method and apparatus for delaying interfering accesses from other threads during transactional program execution
US7206903B1 (en) Method and apparatus for releasing memory locations during transactional execution
US7500086B2 (en) Start transactional execution (STE) instruction to support transactional program execution
US6862664B2 (en) Method and apparatus for avoiding locks by speculatively executing critical sections
US7930695B2 (en) Method and apparatus for synchronizing threads on a processor that supports transactional memory
EP1913473A1 (fr) Elimination des verrous au moyen de l&#39;execution transactionnelle de sections critiques
US7617421B2 (en) Method and apparatus for reporting failure conditions during transactional execution
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
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006787947

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2008524994

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE