JP2017509083A - バイナリトランザクションベースのプロセッサによるロックエリジョン - Google Patents
バイナリトランザクションベースのプロセッサによるロックエリジョン Download PDFInfo
- Publication number
- JP2017509083A JP2017509083A JP2016559164A JP2016559164A JP2017509083A JP 2017509083 A JP2017509083 A JP 2017509083A JP 2016559164 A JP2016559164 A JP 2016559164A JP 2016559164 A JP2016559164 A JP 2016559164A JP 2017509083 A JP2017509083 A JP 2017509083A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- code
- dbt
- processor
- memory
- 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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
- Retry When Errors Occur (AREA)
Abstract
Description
オリジナル −> ネイティブ
1.この変換の実行の最中に、他の何れのプロセッサもロック変数を修正しない。
Claims (18)
- ロックエリジョンのためのデバイスであって:
第1命令セットアーキテクチャ(ISA)のうちのコード領域を第2ISAにおける変換されたコードに変換し、前記コード領域のクリティカルセクションに関連するロックを検出及び除外するダイナミックバイナリ変換(DBT)モジュールと、
前記クリティカルセクションにおける変換されたコードを投機的に実行するプロセッサと、
トランザクションサポートプロセッサと、
を有し、前記トランザクションサポートプロセッサは:
投機的な実行の最中に、前記クリティカルセクションに関連するメモリアクセスのコンフリクトを検出し;
当該検出に応じて投機的な実行をロールバックし;
当該検出が無い場合に投機的な実行をコミットする;
ことを特徴とするデバイス。 - 前記プロセッサは、前記メモリアクセスのコンフリクトが検出されたことに応じてロールバックが実行された後に、前記ロックの下で前記クリティカルセクションにおける前記変換されたコードを再実行する、請求項1に記載のデバイス。
- 前記DBTモジュールは前記コード領域の命令を静的にリオーダリングし、前記トランザクションサポートプロセッサは実行の最中に前記リオーダリングを動的に有効化する、請求項1に記載のデバイス。
- 前記DBTモジュールは、前記ロックに関連する検出されたメモリアクセスのコンフリクト数を監視し、コンフリクト数が閾値を超える場合、前記ロックエリジョンを含まない新たなDBTを実行する、請求項1に記載のデバイス。
- 前記メモリアクセスのコンフリクトは、マルチプロセシングシステムの2つ以上のプロセッサ間のメモリ読み込み又は書き込みのコンフリクトを含む、請求項1に記載のデバイス。
- 前記DBTモジュールは、実行パフォーマンスのメジャーメントに基づいて、変換されるコードを動的に最適化する、請求項1に記載のデバイス。
- 前記DBTモジュールは変換されたコードに命令を挿入し、当該命令は、除外されるロックに先行するメモリ動作の影響が、マルチプロセシングシステムのプロセッサにとってグローバルに可視的であるようにする、請求項1に記載のデバイス。
- 前記デバイスはスマートフォン、ラップトップコンピューティングデバイス、スマートTV又はスマートタブレットである、請求項1に記載のデバイス。
- タッチスクリーンであるユーザーインターフェースを更に有する請求項1に記載のデバイス。
- ロックエリジョンのための方法であって:
第1命令セットアーキテクチャ(ISA)のうちのコード領域の、第2ISAにおける変換されたコードへのダイナミックバイナリ変換(DBT)を実行するステップ;
前記DBTの間に、前記コード領域のクリティカルセクションに関連するロックを検出するステップ;
前記変換されたコードから前記ロックを除外するステップ;
前記クリティカルセクションにおける変換されたコードを投機的に実行するステップ;
トランザクション障害の検出に応じて投機的な実行をロールバックするステップ;
トランザクション障害が無い場合に投機的な実行をコミットするステップ;
を有する方法。 - 前記トランザクション障害に応じてロールバックを実行した後に、前記ロックの下で前記クリティカルセクションにおける前記変換されたコードを再実行するステップを更に有する請求項10に記載の方法。
- 前記DBTの間に前記コード領域の命令を静的にリオーダリングし、実行の最中に前記リオーダリングを動的に有効化するステップを更に有する請求項10に記載の方法。
- 前記ロックに関連するトランザクション障害数を監視し、トランザクション障害数が閾値を超える場合、前記ロックエリジョンを含まない新たなDBTを実行するステップを更に有する請求項10に記載の方法。
- 前記トランザクション障害は、前記クリティカルセクションに関連するメモリへのアクセスコンフリクトにより生じる、請求項10に記載の方法。
- 前記DBTは、実行パフォーマンスのメジャーメントに基づいて、変換されるコードを動的に最適化することを含む、請求項10に記載の方法。
- 前記DBTは変換されたコードに命令を挿入することを更に含み、当該命令は、除外されるロックに先行するメモリ動作の影響が、マルチプロセシングシステムのプロセッサにとってグローバルに可視的であるようにする、請求項10に記載の方法。
- 請求項10ないし16のうちの何れか1項に記載の方法を、デバイスのコンピュータに実行させるコンピュータプログラム。
- 請求項17に記載のコンピュータプログラムを記録する記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/227,014 US20150277914A1 (en) | 2014-03-27 | 2014-03-27 | Lock elision with binary translation based processors |
US14/227,014 | 2014-03-27 | ||
PCT/US2015/019562 WO2015148099A1 (en) | 2014-03-27 | 2015-03-10 | Lock elision with binary translation based processors |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017509083A true JP2017509083A (ja) | 2017-03-30 |
Family
ID=54190472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016559164A Pending JP2017509083A (ja) | 2014-03-27 | 2015-03-10 | バイナリトランザクションベースのプロセッサによるロックエリジョン |
Country Status (6)
Country | Link |
---|---|
US (1) | US20150277914A1 (ja) |
EP (1) | EP3123307A4 (ja) |
JP (1) | JP2017509083A (ja) |
KR (1) | KR101970390B1 (ja) |
CN (1) | CN106030522B (ja) |
WO (1) | WO2015148099A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9507938B2 (en) * | 2014-12-23 | 2016-11-29 | Mcafee, Inc. | Real-time code and data protection via CPU transactional memory support |
US20160283247A1 (en) * | 2015-03-25 | 2016-09-29 | Intel Corporation | Apparatuses and methods to selectively execute a commit instruction |
US10162616B2 (en) * | 2015-06-26 | 2018-12-25 | Intel Corporation | System for binary translation version protection |
CN106897123B (zh) * | 2015-12-21 | 2021-07-16 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
US10169106B2 (en) * | 2016-06-30 | 2019-01-01 | International Business Machines Corporation | Method for managing control-loss processing during critical processing sections while maintaining transaction scope integrity |
US10073687B2 (en) * | 2016-08-25 | 2018-09-11 | American Megatrends, Inc. | System and method for cross-building and maximizing performance of non-native applications using host resources |
US10282109B1 (en) * | 2016-09-15 | 2019-05-07 | Altera Corporation | Memory interface circuitry with distributed data reordering capabilities |
TWI650648B (zh) * | 2018-02-09 | 2019-02-11 | 慧榮科技股份有限公司 | 系統晶片及存取系統晶片中記憶體的方法 |
DE102018122920A1 (de) * | 2018-09-19 | 2020-03-19 | Endress+Hauser Conducta Gmbh+Co. Kg | Verfahren zur Installation eines Programms auf einem eingebetteten System, ein eingebettetes System für ein derartiges Verfahren sowie ein Verfahren zur Erstellung einer Zusatzinformation |
CN111241010B (zh) * | 2020-01-17 | 2022-08-02 | 中国科学院计算技术研究所 | 一种基于缓存划分及回滚的处理器瞬态攻击防御方法 |
CN117407003B (zh) * | 2023-12-05 | 2024-03-19 | 飞腾信息技术有限公司 | 代码翻译处理方法、装置、处理器及计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006518077A (ja) * | 2003-02-13 | 2006-08-03 | サン・マイクロシステムズ・インコーポレイテッド | 臨界領域を投機的に実行することによりロックを回避するための方法および装置 |
US20080126755A1 (en) * | 2006-09-26 | 2008-05-29 | Youfeng Wu | Methods and apparatus to form a transactional objective instruction construct from lock-based critical sections |
JP2009508187A (ja) * | 2005-08-01 | 2009-02-26 | サン・マイクロシステムズ・インコーポレーテッド | クリティカルセクションをトランザクション的に実行することによるロックの回避 |
JP2012003761A (ja) * | 2010-06-14 | 2012-01-05 | Intel Corp | 効率的な動的バイナリ変換のためのレジスタマッピング技術を用いた方法、物品及びシステム |
WO2013043350A1 (en) * | 2011-09-20 | 2013-03-28 | Qualcomm Incorporated | Dynamic power optimization for computing devices |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5872990A (en) * | 1997-01-07 | 1999-02-16 | International Business Machines Corporation | Reordering of memory reference operations and conflict resolution via rollback in a multiprocessing environment |
US8127121B2 (en) * | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
US7120762B2 (en) * | 2001-10-19 | 2006-10-10 | Wisconsin Alumni Research Foundation | Concurrent execution of critical sections by eliding ownership of locks |
US7930694B2 (en) * | 2004-09-08 | 2011-04-19 | Oracle America, Inc. | Method and apparatus for critical section prediction for intelligent lock elision |
US8190859B2 (en) * | 2006-11-13 | 2012-05-29 | Intel Corporation | Critical section detection and prediction mechanism for hardware lock elision |
CN101470627B (zh) * | 2007-12-29 | 2011-06-08 | 北京天融信网络安全技术有限公司 | 一种mips平台下并行多核配置锁的实现方法 |
US8201169B2 (en) * | 2009-06-15 | 2012-06-12 | Vmware, Inc. | Virtual machine fault tolerance |
US8402227B2 (en) * | 2010-03-31 | 2013-03-19 | Oracle International Corporation | System and method for committing results of a software transaction using a hardware transaction |
US20150032998A1 (en) * | 2012-02-02 | 2015-01-29 | Ravi Rajwar | 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 |
US9223550B1 (en) * | 2013-10-17 | 2015-12-29 | Google Inc. | Portable handling of primitives for concurrent execution |
-
2014
- 2014-03-27 US US14/227,014 patent/US20150277914A1/en not_active Abandoned
-
2015
- 2015-03-10 JP JP2016559164A patent/JP2017509083A/ja active Pending
- 2015-03-10 EP EP15768669.2A patent/EP3123307A4/en not_active Withdrawn
- 2015-03-10 CN CN201580010755.2A patent/CN106030522B/zh active Active
- 2015-03-10 WO PCT/US2015/019562 patent/WO2015148099A1/en active Application Filing
- 2015-03-10 KR KR1020167023070A patent/KR101970390B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006518077A (ja) * | 2003-02-13 | 2006-08-03 | サン・マイクロシステムズ・インコーポレイテッド | 臨界領域を投機的に実行することによりロックを回避するための方法および装置 |
JP2009508187A (ja) * | 2005-08-01 | 2009-02-26 | サン・マイクロシステムズ・インコーポレーテッド | クリティカルセクションをトランザクション的に実行することによるロックの回避 |
US20080126755A1 (en) * | 2006-09-26 | 2008-05-29 | Youfeng Wu | Methods and apparatus to form a transactional objective instruction construct from lock-based critical sections |
JP2012003761A (ja) * | 2010-06-14 | 2012-01-05 | Intel Corp | 効率的な動的バイナリ変換のためのレジスタマッピング技術を用いた方法、物品及びシステム |
WO2013043350A1 (en) * | 2011-09-20 | 2013-03-28 | Qualcomm Incorporated | Dynamic power optimization for computing devices |
Also Published As
Publication number | Publication date |
---|---|
US20150277914A1 (en) | 2015-10-01 |
WO2015148099A1 (en) | 2015-10-01 |
KR101970390B1 (ko) | 2019-04-18 |
KR20160113651A (ko) | 2016-09-30 |
EP3123307A1 (en) | 2017-02-01 |
CN106030522A (zh) | 2016-10-12 |
EP3123307A4 (en) | 2017-10-04 |
CN106030522B (zh) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017509083A (ja) | バイナリトランザクションベースのプロセッサによるロックエリジョン | |
JP5592015B2 (ja) | ハードウェア制限に基づく調整可能なトランザクション・サイズを利用してコードを動的に最適化する装置、方法およびシステム | |
US8365016B2 (en) | Performing mode switching in an unbounded transactional memory (UTM) system | |
EP2619654B1 (en) | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region | |
JP5255614B2 (ja) | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション | |
CN101308462B (zh) | 管理对共享存储器单元的存储器访问的方法和计算系统 | |
US10019263B2 (en) | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue | |
US8255626B2 (en) | Atomic commit predicated on consistency of watches | |
US8539465B2 (en) | Accelerating unbounded memory transactions using nested cache resident transactions | |
US8316366B2 (en) | Facilitating transactional execution in a processor that supports simultaneous speculative threading | |
US20070198978A1 (en) | Methods and apparatus to implement parallel transactions | |
US9710280B2 (en) | Overlapping atomic regions in a processor | |
EP2862058B1 (en) | A semaphore method and system with out of order loads in a memory consistency model that constitutes loads reading from memory in order | |
US9990198B2 (en) | Instruction definition to implement load store reordering and optimization | |
US20150095588A1 (en) | Lock-based and synch-based method for out of order loads in a memory consistency model using shared memory resources | |
US20090187906A1 (en) | Semi-ordered transactions | |
US20150095591A1 (en) | Method and system for filtering the stores to prevent all stores from having to snoop check against all words of a cache | |
Zacharopoulos | Employing hardware transactional memory in prefetching for energy efficiency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160926 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171010 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180105 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20180612 |