JP6491348B2 - ハードウェアトランザクションメモリ(htm)トランザクションを実行するデータ処理システム、データ処理方法、およびコンピュータプログラム - Google Patents
ハードウェアトランザクションメモリ(htm)トランザクションを実行するデータ処理システム、データ処理方法、およびコンピュータプログラム Download PDFInfo
- Publication number
- JP6491348B2 JP6491348B2 JP2017546983A JP2017546983A JP6491348B2 JP 6491348 B2 JP6491348 B2 JP 6491348B2 JP 2017546983 A JP2017546983 A JP 2017546983A JP 2017546983 A JP2017546983 A JP 2017546983A JP 6491348 B2 JP6491348 B2 JP 6491348B2
- Authority
- JP
- Japan
- Prior art keywords
- htm
- transaction
- data processing
- commit
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims description 100
- 238000012545 processing Methods 0.000 title claims description 46
- 238000003672 processing method Methods 0.000 title claims description 11
- 238000004590 computer program Methods 0.000 title description 3
- 238000011010 flushing procedure Methods 0.000 claims description 7
- 230000002085 persistent effect Effects 0.000 description 16
- 238000000034 method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000011084 recovery Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- 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
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- 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/0815—Cache consistency protocols
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Description
データを持続的に格納するためのバイトアドレス指定可能な不揮発性メモリと、
HTMトランザクションのコミット成功を示すインジケータを不揮発性メモリに書き込むことによって、HTMトランザクションのコミットに関するアトミックなHTMの書き込みオペレーションを実行するように構成されるプロセッサと、
を備える。
ように構成されるリカバリユニットをさらに備える。
1.HTMトランザクションを開始する。
2.アプリケーションデータをキャッシュに書き込み、これをNVMのログ記録エリアにおけるログ記録にロギングする。
3.トランザクションを成功裏にコミットし、同時に、NVMのログ記録エリアにおけるコミット記録において、インジケータを真に設定する。
4.障害が発生しなかった場合、修正されたアプリケーションデータを、キャッシュからNVMにおけるアプリケーションデータエリアにフラッシュする。
5.障害が発生した場合であって、インジケータが真である場合、リスタートにおいて、修正されたアプリケーションデータを、NVMのログ記録エリアからNVMのアプリケーションデータエリアにおけるアプリケーションデータにコピーする。あるいは、インジケータが偽である場合、トランザクションを無視する。
6.NVMのログ記録エリアにおけるコミット記録において、インジケータを偽に設定する。
(1)「Private」/「Shared」:「Private」は、xが1つのスレッドのL1キャッシュにのみ存在し、他のスレッドには不可視であることを意味する。xが「Shared」である場合、キャッシュコヒーレンスにより、その新たな値は可視となる。
(2)「Persistent」/「Volatile」:「Persistent」は、xの最後の書き込みがNVM101に存在することを意味する。あるいは、xの新たな値がキャッシュ105における「Volatile」であり、電力障害において消失することを意味する。
(3)「Logged」/「Clear」:xが「Logged」である場合、リスタートにより、xは、不揮発性ログからリカバーされる。xが「Clear」である場合、そのログ記録がファイナライズされている、又はそのトランザクションが成功裏にコミットされていないので、リスタートは、xに関与しない。
Claims (9)
- ハードウェアトランザクションメモリ(HTM)トランザクションを実行するデータ処理システムであって、
データを持続的に格納するためのバイトアドレス指定可能な不揮発性メモリと、
前記HTMトランザクションのコミット成功を示すインジケータを前記不揮発性メモリに書き込むことによって、前記HTMトランザクションのコミットに関するアトミックなHTMの書き込みオペレーションを実行するプロセッサと、
を備え、
前記データ処理システムは、さらに、前記HTMトランザクションの前記コミット成功の後で、前記HTMのオペレーションによって書き込まれたデータを、キャッシュメモリから前記不揮発性メモリにフラッシュする、データ処理システム。 - ハードウェアトランザクションメモリ(HTM)トランザクションを実行するデータ処理システムであって、
データを持続的に格納するためのバイトアドレス指定可能な不揮発性メモリと、
前記HTMトランザクションのコミット成功を示すインジケータを前記不揮発性メモリに書き込むことによって、前記HTMトランザクションのコミットに関するアトミックなHTMの書き込みオペレーションを実行するプロセッサと、
を備え、
前記データ処理システムは、さらに、HTMトランザクションをアボートすることなく、前記HTMのオペレーションによって書き込まれたデータを、キャッシュメモリから前記不揮発性メモリにトランスペアレントにフラッシュする、データ処理システム。 - 前記プロセッサは、複数のキャッシュラインによってキャッシュメモリに連結され、前記キャッシュメモリは、キャッシュコヒーレンスなプロトコルを用いてデータをキャッシュするために、前記プロセッサによって用いられる、請求項1または2に記載のデータ処理システム。
- 前記データ処理システムは、さらに、前記HTMトランザクションの前記コミット成功の後で、前記HTMトランザクションを非ロギング状態に設定し、詳細には、前記インジケータを設定解除する、請求項1から3のいずれか1項に記載のデータ処理システム。
- 前記HTMトランザクションの前記コミット成功を示すインジケータは、HTMトランザクション識別子、詳細には、コミット記録を含む、請求項1から4のいずれか1項に記載のデータ処理システム。
- ハードウェアトランザクションメモリ(HTM)トランザクションを実行するためのデータ処理方法であって、
前記HTMトランザクションのコミット成功を示すインジケータを不揮発性メモリに書き込むことによって、前記HTMトランザクションのコミットに関するアトミックなHTMの書き込みオペレーションを実行する段階と、
前記HTMトランザクションの前記コミット成功の後で、前記HTMのオペレーションによって書き込まれたデータを、キャッシュメモリから前記不揮発性メモリにフラッシュする段階と、
を備えるデータ処理方法。 - ハードウェアトランザクションメモリ(HTM)トランザクションを実行するためのデータ処理方法であって、
前記HTMトランザクションのコミット成功を示すインジケータを不揮発性メモリに書き込むことによって、前記HTMトランザクションのコミットに関するアトミックなHTMの書き込みオペレーションを実行する段階と、
HTMトランザクションをアボートすることなく、前記HTMのオペレーションによって書き込まれたデータを、キャッシュメモリから前記不揮発性メモリにトランスペアレントにフラッシュする段階と、
を備えるデータ処理方法。 - 前記HTMトランザクションの前記コミット成功の後で、前記HTMトランザクションを非ロギング状態に設定し、詳細には、前記インジケータを設定解除する段階を備える、請求項6または7に記載のデータ処理方法。
- 請求項6から8のいずれか1項に記載のデータ処理方法をコンピュータに実行させるプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2015/066802 WO2017012667A1 (en) | 2015-07-22 | 2015-07-22 | Hardware transactional memory in non volatile memory with log and no lock |
EPPCT/EP2015/066802 | 2015-07-22 | ||
PCT/EP2016/067403 WO2017013202A1 (en) | 2015-07-22 | 2016-07-21 | Coherence protocol for hardware transactional memory in shared memory using non volatile memory with log and no lock |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018516394A JP2018516394A (ja) | 2018-06-21 |
JP6491348B2 true JP6491348B2 (ja) | 2019-03-27 |
Family
ID=53716497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017546983A Active JP6491348B2 (ja) | 2015-07-22 | 2016-07-21 | ハードウェアトランザクションメモリ(htm)トランザクションを実行するデータ処理システム、データ処理方法、およびコンピュータプログラム |
Country Status (7)
Country | Link |
---|---|
US (1) | US11614959B2 (ja) |
EP (1) | EP3274826B1 (ja) |
JP (1) | JP6491348B2 (ja) |
KR (1) | KR102009259B1 (ja) |
CN (2) | CN113505088A (ja) |
SG (1) | SG11201707261TA (ja) |
WO (2) | WO2017012667A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10303477B2 (en) * | 2015-06-26 | 2019-05-28 | Intel Corporation | Persistent commit processors, methods, systems, and instructions |
US10430186B2 (en) * | 2017-10-27 | 2019-10-01 | Vmware, Inc. | Speeding up transactions in non-volatile memory using hardware transactional memory |
US11307854B2 (en) * | 2018-02-07 | 2022-04-19 | Intel Corporation | Memory write log storage processors, methods, systems, and instructions |
US10678587B2 (en) | 2018-02-16 | 2020-06-09 | Oracle International Corporation | Persistent multi-word compare-and-swap |
US10445238B1 (en) * | 2018-04-24 | 2019-10-15 | Arm Limited | Robust transactional memory |
US11137373B2 (en) * | 2018-05-24 | 2021-10-05 | Hf Scientific, Inc. | QCM measurement of scale formation |
CN108897642B (zh) * | 2018-06-27 | 2020-11-27 | 清华大学 | 持久性事务内存系统中日志机制的优化方法及装置 |
KR102695771B1 (ko) * | 2018-07-06 | 2024-08-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10754776B2 (en) * | 2018-07-30 | 2020-08-25 | International Business Machines Corporation | Cache balance when using hardware transactional memory |
US10846222B1 (en) | 2019-07-01 | 2020-11-24 | Vmware, Inc. | Dirty data tracking in persistent memory systems |
US11144221B1 (en) * | 2020-04-10 | 2021-10-12 | Dell Products L.P. | Efficient resilience in a metadata paging array for in-flight user data |
CN112256200A (zh) * | 2020-10-21 | 2021-01-22 | 宝能(广州)汽车研究院有限公司 | 数据读写方法和存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5369757A (en) * | 1991-06-18 | 1994-11-29 | Digital Equipment Corporation | Recovery logging in the presence of snapshot files by ordering of buffer pool flushing |
US5897656A (en) | 1996-09-16 | 1999-04-27 | Corollary, Inc. | System and method for maintaining memory coherency in a computer system having multiple system buses |
CA2313802A1 (en) * | 2000-07-11 | 2002-01-11 | Michael Corcoran | Dynamic web page caching system and method |
US8683143B2 (en) * | 2005-12-30 | 2014-03-25 | Intel Corporation | Unbounded transactional memory systems |
US8321637B2 (en) * | 2007-05-14 | 2012-11-27 | International Business Machines Corporation | Computing system with optimized support for transactional memory |
US8001548B2 (en) * | 2008-10-20 | 2011-08-16 | Microsoft Corporation | Transaction processing for side-effecting actions in transactional memory |
US9785462B2 (en) * | 2008-12-30 | 2017-10-10 | Intel Corporation | Registering a user-handler in hardware for transactional memory event handling |
CN101510162B (zh) * | 2009-03-26 | 2011-11-02 | 浙江大学 | 一种基于延时策略的软件事务内存的实现方法 |
CN101872299B (zh) * | 2010-07-06 | 2013-05-01 | 浙江大学 | 冲突预测实现方法及所用冲突预测处理装置事务存储器 |
US8352688B2 (en) | 2010-11-15 | 2013-01-08 | Advanced Micro Devices, Inc. | Preventing unintended loss of transactional data in hardware transactional memory systems |
US10817390B2 (en) * | 2011-09-14 | 2020-10-27 | Hewlett Packard Enterprise Development Lp | Imparting durability to a transactional memory system |
US9213501B2 (en) * | 2013-05-23 | 2015-12-15 | Netapp, Inc. | Efficient storage of small random changes to data on disk |
US9146774B2 (en) * | 2013-12-12 | 2015-09-29 | International Business Machines Corporation | Coalescing memory transactions |
CN104657153B (zh) * | 2015-03-19 | 2017-10-17 | 哈尔滨工业大学 | 一种基于签名技术的硬件事务内存系统 |
-
2015
- 2015-07-22 WO PCT/EP2015/066802 patent/WO2017012667A1/en active Application Filing
-
2016
- 2016-07-21 CN CN202110632287.XA patent/CN113505088A/zh active Pending
- 2016-07-21 KR KR1020177028059A patent/KR102009259B1/ko active IP Right Grant
- 2016-07-21 EP EP16742277.3A patent/EP3274826B1/en active Active
- 2016-07-21 WO PCT/EP2016/067403 patent/WO2017013202A1/en active Application Filing
- 2016-07-21 CN CN201680043121.1A patent/CN107851037B/zh active Active
- 2016-07-21 SG SG11201707261TA patent/SG11201707261TA/en unknown
- 2016-07-21 JP JP2017546983A patent/JP6491348B2/ja active Active
-
2018
- 2018-01-17 US US15/873,731 patent/US11614959B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR102009259B1 (ko) | 2019-08-09 |
SG11201707261TA (en) | 2017-10-30 |
US20180143850A1 (en) | 2018-05-24 |
CN113505088A (zh) | 2021-10-15 |
CN107851037A (zh) | 2018-03-27 |
US11614959B2 (en) | 2023-03-28 |
WO2017013202A1 (en) | 2017-01-26 |
EP3274826A1 (en) | 2018-01-31 |
EP3274826B1 (en) | 2024-09-11 |
WO2017012667A1 (en) | 2017-01-26 |
JP2018516394A (ja) | 2018-06-21 |
CN107851037B (zh) | 2021-06-08 |
KR20170123683A (ko) | 2017-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6491348B2 (ja) | ハードウェアトランザクションメモリ(htm)トランザクションを実行するデータ処理システム、データ処理方法、およびコンピュータプログラム | |
US9195600B2 (en) | Mechanisms to accelerate transactions using buffered stores | |
KR100954623B1 (ko) | 무한 트랜잭션 메모리 시스템 | |
US8140773B2 (en) | Using ephemeral stores for fine-grained conflict detection in a hardware accelerated STM | |
US8200909B2 (en) | Hardware acceleration of a write-buffering software transactional memory | |
US8364911B2 (en) | Efficient non-transactional write barriers for strong atomicity | |
RU2501071C2 (ru) | Механизм запроса поздней блокировки для пропуска аппаратной блокировки (hle) | |
US10445238B1 (en) | Robust transactional memory | |
US8255626B2 (en) | Atomic commit predicated on consistency of watches | |
US20080065864A1 (en) | Post-retire scheme for tracking tentative accesses during transactional execution | |
TWI801603B (zh) | 處理獨佔式載入指令的資料處理設備、方法及電腦程式 | |
KR102284957B1 (ko) | 트랜잭션 데이터 처리 실행 모드에 대한 호출 스택 유지 | |
KR20190129720A (ko) | 트랜잭셔널 메모리를 이용하는 시스템에서 캐시 구조체를 관리하는 기술 | |
CN113722052B (zh) | 一种基于数据双版本的非易失内存更新方法 | |
WO2017074451A1 (en) | Resuming execution in response to a failure | |
US12050810B2 (en) | Systems and methods for hardware-based asynchronous persistence | |
WO2024217677A1 (en) | Crash-consistent persistent memory devices and methods | |
Sanyal et al. | QuickTM: A hardware solution to a high performance unbounded transactional memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180522 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180813 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20180828 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181228 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20190111 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190228 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6491348 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |