JP2019530120A - ロックアドレス競合予測器 - Google Patents
ロックアドレス競合予測器 Download PDFInfo
- Publication number
- JP2019530120A JP2019530120A JP2019536456A JP2019536456A JP2019530120A JP 2019530120 A JP2019530120 A JP 2019530120A JP 2019536456 A JP2019536456 A JP 2019536456A JP 2019536456 A JP2019536456 A JP 2019536456A JP 2019530120 A JP2019530120 A JP 2019530120A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- memory
- speculative
- memory entry
- contention
- 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; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/507—Control mechanisms for virtual memory, cache or TLB using speculative control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
Abstract
Description
本願は、2016年9月22日に出願された米国特許出願第15/273,304号の利益を主張し、その内容は、完全に記載されているかのように、言及したことによって本明細書に組み込まれる。
Claims (36)
- メモリデバイス内のエントリをロックする方法であって、
前記メモリデバイスの特定のメモリエントリに対してスレッドによって実行されたロック命令を検出することと、
前記ロック命令が検出されたことを条件に、以前の投機的ロック中に前記特定のメモリエントリについて競合が発生したかどうかを検出することと、
前記以前の投機的ロック中に前記特定のメモリエントリについて競合が発生したことを条件に、前記ロック命令を非投機的に実行することと、
前記以前の投機的ロック中に前記特定のメモリエントリについて競合が発生しなかったことを条件に、前記ロック命令を投機的に実行することと、を含む、
方法。 - 前記ロック命令が投機的に実行されることを条件に、前記投機的ロック中に前記特定のメモリエントリについて別のスレッドからの競合が発生したかどうかを検出することを含む、
請求項1の方法。 - 前記投機的ロック中に前記特定のメモリエントリについて別のスレッドからの競合が発生したことを条件に、前記スレッドが実行している実行パイプラインをフラッシュし、前記スレッドを前記ロック命令から開始して非投機的に再実行することを含む、
請求項2の方法。 - 前記投機的中に前記特定のメモリエントリについて別のスレッドからの競合が発生したかどうかを検出することは、前記特定のメモリエントリが無効なデータを含むかどうかを検出することを含む、
請求項2の方法。 - 競合は、メモリエントリのロック中の別のスレッドによる前記メモリエントリへのアクセス、前記メモリエントリの変更、前記メモリエントリへのアクセス要求、又は、前記メモリエントリの変更要求のうち何れかを含む、
請求項1の方法。 - 以前の投機的ロック中に前記特定のメモリエントリについて競合が発生したかどうかを検出することは、前記以前の投機的ロック中に、別のスレッドが前記特定のメモリエントリへのアクセスを要求したかどうか、前記特定のメモリエントリにアクセスしたかどうか、前記特定のメモリエントリの変更を要求したかどうか、又は、前記特定のメモリエントリを変更したかどうかを検出することを含む、
請求項1の方法。 - 前記ロックを投機的に実行することは、前記ロックの制約を緩和することを含む、
請求項1の方法。 - 前記ロックを投機的に実行することは、前記ロックのアトミックアクセス性又はフェンシング性を緩和することを含む、
請求項1の方法。 - メモリデバイス内のエントリをロックする方法であって、
メモリデバイスの特定のメモリエントリに対してスレッドによって実行されたロック命令を検出することと、
前記ロック命令が検出されたことを条件に、特定の期間中に、競合が発生したメモリの以前の投機的ロックの数が閾値を超えたかどうかを検出することと、
前記数が前記閾値を超えたことを条件に、前記ロック命令を非投機的に実行することと、
前記数が前記閾値を超えないことを条件に、前記ロック命令を投機的に実行することと、を含む、
方法。 - 前記特定の期間中に、競合が発生したメモリの以前の投機的ロックの数が閾値を超えたかどうかを検出することは、
前記特定の期間中に、競合が発生した前記特定のメモリエントリの以前の投機的ロックの数が前記閾値数を超えたかどうかを検出することを含む、
請求項9の方法。 - 前記特定の期間中に、競合が発生したメモリの以前の投機的ロックの数が閾値を超えたかどうかを検出することは、
前記特定の期間中に、競合が発生した前記メモリデバイス内の何れかのメモリエントリの以前の投機的ロックの数が前記閾値を超えたかどうかを検出することを含む、
請求項9の方法。 - 前記ロック命令が投機的に実行されることを条件に、前記投機的ロック中に前記特定のメモリエントリについて別のスレッドからの競合が発生したかどうかを検出することを含む、
請求項9の方法。 - 前記投機的ロック中に前記特定のメモリエントリについて別のスレッドからの競合が発生したことを条件に、前記スレッドが実行している実行パイプラインをフラッシュし、前記スレッドを前記ロック命令から開始して非投機的に再実行することを含む、
請求項12の方法。 - 前記投機的ロック中に前記特定のメモリエントリについて別のスレッドからの競合が発生したかどうかを検出することは、前記特定のメモリエントリが無効なデータを含むかどうかを検出することを含む、
請求項12の方法。 - 競合は、メモリエントリのロック中のスレッドによる前記メモリエントリへのアクセス、前記メモリエントリの変更、前記メモリエントリへのアクセス要求、又は、前記メモリエントリの変更要求のうち何れかを含む、
請求項9の方法。 - 特定の期間中に、競合が発生したメモリの以前の投機的ロックの数が閾値を超えたかどうかを検出することは、前記以前の投機的ロック中に、別のスレッドが前記メモリへのアクセスを要求したかどうか、前記メモリにアクセスしたかどうか、前記メモリの変更を要求したかどうか、又は、前記メモリを変更したかどうかを検出することを含む、
請求項9の方法。 - 前記ロックを投機的に実行することは、前記ロックの制約を緩和することを含む、
請求項9の方法。 - 前記ロックを投機的に実行することは、前記ロックのアトミックアクセス性又はフェンシング性を緩和することを含む、
請求項9の方法。 - 投機的ロック用に構成された処理デバイスであって、
実行パイプライン含むプロセッサコアと、
メモリデバイスの特定のメモリエントリに対してスレッドによって実行されたロック命令を検出するように構成されたロック命令検出回路と、
前記ロック命令が検出されたことを条件に、以前の投機的ロック中に前記特定のメモリエントリについて競合が発生したかどうかを検出するように構成された競合検出回路と、
以前の投機的ロック中に前記特定のメモリエントリについて競合が発生したことを条件に、前記ロック命令を非投機的に実行するように構成されたロック回路であって、以前の投機的ロック中に前記特定のメモリエントリについて競合が発生しなかったことを条件に、前記ロック命令を投機的に実行するように構成されたロック回路と、を備える、
処理デバイス。 - 前記競合検出回路は、前記ロック命令が投機的に実行されたことを条件に、前記投機的ロック中に前記特定のメモリエントリについて別のスレッドからの競合が発生したかどうかを検出するように構成されている、
請求項19の処理デバイス。 - 前記投機的中に前記特定のメモリエントリについて競合が発生したことを条件に、前記スレッドが実行している実行パイプラインをフラッシュし、前記スレッドを前記ロック命令から開始して非投機的に再実行するように構成された再実行回路を備える、
請求項20の処理デバイス。 - 前記投機的ロック中に前記特定のメモリエントリについて別のスレッドからの競合が発生したかどうかを検出することは、前記特定のメモリエントリが無効なデータを含むかどうかを検出することを含む、
請求項20の処理デバイス。 - 競合は、メモリエントリのロック中の別のスレッドによる前記メモリエントリへのアクセス、前記メモリエントリの変更、前記メモリエントリへのアクセス要求、又は、前記メモリエントリの変更要求のうち何れかを含む、
請求項19の処理デバイス。 - 以前の投機的ロック中に前記特定のメモリエントリについて競合が発生したかどうかを検出することは、前記以前の投機的ロック中に、別のスレッドが前記特定のメモリエントリへのアクセスを要求したかどうか、前記特定のメモリエントリにアクセスしたかどうか、前記特定のメモリエントリの変更を要求したかどうか、又は、前記特定のメモリエントリを変更したかどうかを検出することを含む、
請求項19の処理デバイス。 - 前記ロックを投機的に実行することは、前記ロックの制約を緩和することを含む、
請求項19の処理デバイス。 - 前記ロックを投機的に実行することは、前記ロックのアトミックアクセス性又はフェンシング性を緩和することを含む、
請求項19の処理デバイス。 - 投機的ロック用に構成された処理デバイスであって、
実行パイプラインを含むプロセッサコアと、
メモリデバイスの特定のメモリエントリに対してスレッドによって実行されたロック命令を検出するように構成されたロック命令検出回路と、
前記ロック命令が検出されたことを条件に、特定の期間中に、競合が発生したメモリの以前の投機的ロックの数が閾値を超えたかどうかを検出するように構成された競合検出回路と、
前記数が前記閾値を超えたことを条件に、前記ロック命令を非投機的に実行するように構成されたロック回路であって、前記数が前記閾値を超えていないことを条件に、前記ロック命令を投機的に実行するように構成されたロック回路と、を備える、
処理デバイス。 - 前記特定の期間中に、競合が発生したメモリの以前の投機的ロックの数が閾値を超えたかどうかを検出することは、
前記特定の期間中に、競合が発生した前記特定のメモリエントリの以前の投機的ロックの数が閾値を超えたかどうかを検出することを含む、
請求項27の処理デバイス。 - 前記特定の期間中に、競合が発生したメモリの以前の投機的ロックの数が閾値を超えたかどうかを検出することは、
前記特定の期間中に、競合が発生した前記メモリデバイス内の何れかのメモリエントリの以前の投機的ロックの数が閾値を超えたかどうかを検出することを含む、
請求項27の処理デバイス。 - 前記競合検出回路は、前記ロック命令が投機的に実行されたことを条件に、前記投機的ロック中に前記特定のメモリエントリについて別のスレッドからの競合が発生したかどうかを検出するように構成されている、
請求項27の処理デバイス。 - 前記投機的ロック中に前記特定のメモリエントリについて別のスレッドからの競合が発生したことを条件に、前記スレッドが実行している実行パイプラインをフラッシュし、前記スレッドを前記ロック命令から開始して非投機的に再実行するように構成された再実行回路を備える、
請求項28の処理デバイス。 - 前記投機的ロック中に前記特定のメモリエントリについて別のスレッドからの競合が発生したかどうかを検出することは、前記特定のメモリエントリが無効なデータを包むかどうかを検出することを含む、
請求項28の処理デバイス。 - 競合は、メモリエントリのロック中のスレッドによる、前記メモリエントリへのアクセス、前記メモリエントリの変更、前記メモリエントリへのアクセス要求、又は、前記メモリエントリの変更要求のうち何れかを含む、
請求項27の処理デバイス。 - 特定の期間中に、競合が発生したメモリの以前の投機的ロックの数が閾値を超えたかどうかを検出することは、前記以前の投機的ロック中に、別のスレッドが前記メモリへのアクセスを要求したかどうか、前記メモリにアクセスしたかどうか、前記メモリの変更を要求したかどうか、又は、前記メモリを変更したかどうかを検出することを含む、
請求項27の処理デバイス。 - 前記ロックを投機的に実行することは、前記ロックの制約を緩和することを含む、
請求項27の処理デバイス。 - 前記ロックを投機的に実行することは、前記ロックのアトミックアクセス性又はフェンシング性を緩和することを含む、
請求項27の処理デバイス。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022161419A JP2022191340A (ja) | 2016-09-22 | 2022-10-06 | ロックアドレス競合予測器 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/273,304 US11868818B2 (en) | 2016-09-22 | 2016-09-22 | Lock address contention predictor |
US15/273,304 | 2016-09-22 | ||
PCT/US2017/050240 WO2018057293A2 (en) | 2016-09-22 | 2017-09-06 | Lock address contention predictor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022161419A Division JP2022191340A (ja) | 2016-09-22 | 2022-10-06 | ロックアドレス競合予測器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019530120A true JP2019530120A (ja) | 2019-10-17 |
Family
ID=61621027
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019536456A Pending JP2019530120A (ja) | 2016-09-22 | 2017-09-06 | ロックアドレス競合予測器 |
JP2022161419A Pending JP2022191340A (ja) | 2016-09-22 | 2022-10-06 | ロックアドレス競合予測器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022161419A Pending JP2022191340A (ja) | 2016-09-22 | 2022-10-06 | ロックアドレス競合予測器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11868818B2 (ja) |
EP (1) | EP3516495A4 (ja) |
JP (2) | JP2019530120A (ja) |
KR (1) | KR102594618B1 (ja) |
CN (1) | CN109791470A (ja) |
WO (1) | WO2018057293A2 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030079094A1 (en) * | 2001-10-19 | 2003-04-24 | Ravi Rajwar | Concurrent execution of critical sections by eliding ownership of locks |
JP2008504603A (ja) * | 2004-06-30 | 2008-02-14 | インテル コーポレイション | 競合しないロック命令の投機実行のための方法及び装置 |
JP2008525923A (ja) * | 2004-12-29 | 2008-07-17 | インテル・コーポレーション | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション |
WO2015055083A1 (en) * | 2013-10-14 | 2015-04-23 | International Business Machines Corporation | Adaptive process for data sharing with selection of lock elision and locking |
WO2016139446A1 (en) * | 2015-03-04 | 2016-09-09 | Arm Limited | An apparatus and method to generate trace data in response to transactional execution |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6487652B1 (en) * | 1998-12-08 | 2002-11-26 | Sun Microsystems, Inc. | Method and apparatus for speculatively locking objects in an object-based system |
US6862664B2 (en) * | 2003-02-13 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus for avoiding locks by speculatively executing critical sections |
US7930694B2 (en) * | 2004-09-08 | 2011-04-19 | Oracle America, Inc. | Method and apparatus for critical section prediction for intelligent lock elision |
US20090125519A1 (en) * | 2007-11-13 | 2009-05-14 | Intel Corporation | Device, system, and method for regulating software lock elision mechanisms |
US8914620B2 (en) | 2008-12-29 | 2014-12-16 | Oracle America, Inc. | Method and system for reducing abort rates in speculative lock elision using contention management mechanisms |
US8539168B2 (en) * | 2009-06-26 | 2013-09-17 | Oracle America, Inc. | Concurrency control using slotted read-write locks |
US8453122B2 (en) | 2009-11-10 | 2013-05-28 | International Business Machines Corporation | Symmetric multi-processor lock tracing |
US8769434B2 (en) * | 2010-08-11 | 2014-07-01 | Nike, Inc. | Intelligent display of information in a user interface |
US8719828B2 (en) | 2011-10-14 | 2014-05-06 | Intel Corporation | Method, apparatus, and system for adaptive thread scheduling in transactional memory systems |
WO2013115818A1 (en) * | 2012-02-02 | 2013-08-08 | Intel Corporation | A method, apparatus, and system for transactional speculation control instructions |
WO2013115816A1 (en) * | 2012-02-02 | 2013-08-08 | Intel Corporation | A method, apparatus, and system for speculative abort control mechanisms |
US9524195B2 (en) * | 2014-02-27 | 2016-12-20 | International Business Machines Corporation | Adaptive process for data sharing with selection of lock elision and locking |
BR112016012299B1 (pt) * | 2013-12-02 | 2021-09-28 | Basf Se | Processo para produção de poliuretanos, poliuretano e uso do mesmo |
US9971627B2 (en) | 2014-03-26 | 2018-05-15 | Intel Corporation | Enabling maximum concurrency in a hybrid transactional memory system |
KR102261591B1 (ko) | 2014-08-29 | 2021-06-04 | 삼성전자주식회사 | 반도체 장치, 반도체 시스템 및 시스템 온 칩 |
US9471397B2 (en) * | 2014-10-03 | 2016-10-18 | International Business Machines Corporation | Global lock contention predictor |
-
2016
- 2016-09-22 US US15/273,304 patent/US11868818B2/en active Active
-
2017
- 2017-09-06 EP EP17853665.2A patent/EP3516495A4/en active Pending
- 2017-09-06 JP JP2019536456A patent/JP2019530120A/ja active Pending
- 2017-09-06 WO PCT/US2017/050240 patent/WO2018057293A2/en unknown
- 2017-09-06 CN CN201780056416.7A patent/CN109791470A/zh active Pending
- 2017-09-06 KR KR1020197008081A patent/KR102594618B1/ko active IP Right Grant
-
2022
- 2022-10-06 JP JP2022161419A patent/JP2022191340A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030079094A1 (en) * | 2001-10-19 | 2003-04-24 | Ravi Rajwar | Concurrent execution of critical sections by eliding ownership of locks |
JP2008504603A (ja) * | 2004-06-30 | 2008-02-14 | インテル コーポレイション | 競合しないロック命令の投機実行のための方法及び装置 |
JP2008525923A (ja) * | 2004-12-29 | 2008-07-17 | インテル・コーポレーション | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション |
WO2015055083A1 (en) * | 2013-10-14 | 2015-04-23 | International Business Machines Corporation | Adaptive process for data sharing with selection of lock elision and locking |
WO2016139446A1 (en) * | 2015-03-04 | 2016-09-09 | Arm Limited | An apparatus and method to generate trace data in response to transactional execution |
Also Published As
Publication number | Publication date |
---|---|
US11868818B2 (en) | 2024-01-09 |
CN109791470A (zh) | 2019-05-21 |
KR20190045225A (ko) | 2019-05-02 |
WO2018057293A2 (en) | 2018-03-29 |
JP2022191340A (ja) | 2022-12-27 |
US20180081544A1 (en) | 2018-03-22 |
EP3516495A4 (en) | 2020-06-17 |
KR102594618B1 (ko) | 2023-10-26 |
EP3516495A2 (en) | 2019-07-31 |
WO2018057293A3 (en) | 2019-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9696928B2 (en) | Memory transaction having implicit ordering effects | |
US9244725B2 (en) | Management of transactional memory access requests by a cache memory | |
US8327188B2 (en) | Hardware transactional memory acceleration through multiple failure recovery | |
US9244846B2 (en) | Ensuring causality of transactional storage accesses interacting with non-transactional storage accesses | |
US9798577B2 (en) | Transactional storage accesses supporting differing priority levels | |
US10108464B2 (en) | Managing speculative memory access requests in the presence of transactional storage accesses | |
KR102421670B1 (ko) | 잠금 후 명령의 추정적 퇴거 | |
JP7403541B2 (ja) | メモリ順序付け違反チェックバッファの排出遅延を許容するための投機的命令ウェイクアップ | |
US8898401B2 (en) | Methods and apparatuses for improving speculation success in processors | |
KR102594618B1 (ko) | 락 어드레스 경합 예측자 | |
US11630772B1 (en) | Suppressing cache line modification | |
US11822479B2 (en) | History-based selective cache line invalidation requests | |
US20230101748A1 (en) | Weak cache line invalidation requests for speculatively executing instructions | |
CN118056192A (zh) | 将特定数据模式的指示存储在备用目录条目中 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200904 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210907 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210928 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20211228 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20220228 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220315 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220607 |