JP4764430B2 - マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション - Google Patents
マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション Download PDFInfo
- Publication number
- JP4764430B2 JP4764430B2 JP2007549621A JP2007549621A JP4764430B2 JP 4764430 B2 JP4764430 B2 JP 4764430B2 JP 2007549621 A JP2007549621 A JP 2007549621A JP 2007549621 A JP2007549621 A JP 2007549621A JP 4764430 B2 JP4764430 B2 JP 4764430B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- access
- execution
- address
- invalidation
- 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
- 239000003795 chemical substances by application Substances 0.000 claims description 57
- 239000000872 buffer Substances 0.000 claims description 26
- 238000000034 method Methods 0.000 claims description 23
- 230000007246 mechanism Effects 0.000 claims description 20
- 238000013461 design Methods 0.000 claims description 4
- 230000000717 retained effect Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims 8
- 238000009987 spinning Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 9
- 230000000903 blocking effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- -1 processors Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
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/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
- 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
- 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, look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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
-
- 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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Description
Claims (18)
- 投機的または非投機的にトランザクションを実行可能な装置であって、
少なくとも第1のエージェントによって共有される共有メモリと、
複数の命令を含むトランザクションを、前記トランザクションにより参照される前記共有メモリの複数のラインをロックせずに第1の回数だけ投機的に実行する実行ロジックと、
前記複数の命令の実行中にトランザクショナルアクセスされる前記共有メモリにおける各アドレスに対するリモートエージェントにより行われる無効化アクセスを追跡するソフトウェア管理の追跡表を保持するメモリと、
(1)トランザクショナルアクセスされる前記共有メモリにおける各アドレスに対する無効化アクセスが、前記トランザクションの実行中に前記ソフトウェア管理の追跡表によって追跡されなかった場合に、前記トランザクションをリタイヤさせ、(2)トランザクショナルアクセスされる前記共有メモリにおけるアドレスに対する無効化アクセスが、前記トランザクションの実行中に前記ソフトウェア管理の追跡表によって追跡された場合に、前記トランザクションにより参照される前記共有メモリの前記複数のラインをロックして前記トランザクションの非投機的再実行を開始する、トランザクションリタイヤロジックと
を備え、
前記メモリは、複数のマクロオペレーションの実行中に、前記共有メモリからロードされた各アドレスを追跡するロード表と、該共有メモリに書き込まれる各アドレスを追跡する書き込みバッファとを記憶するように動作可能なロジックを備え、
前記ロード表は、前記共有メモリからロードされた各アドレスのロードエントリを記憶するように動作可能であり、各ロードエントリは、前記共有メモリからロードされた前記アドレスの表示と無効化アクセスフィールドとを含み、前記書き込みバッファは、前記共有メモリに書き込まれる各アドレスの書き込みエントリを記憶するように動作可能であり、各書き込みエントリは、書き込まれる前記アドレスと、書き込むデータラインと、無効化アクセスフィールドとを含み、
前記無効化アクセスフィールドは、無効化アクセスが前記トランザクションの投機的実行中に行われなかったことを表す第1の値を、前記ロード表に前記ロードエントリを記憶する時に保持し、且つ、(2)無効化アクセスが前記トランザクションの投機的実行中に行われた場合に第2の値を保持する、装置。 - 前記トランザクションが、該トランザクションをリタイヤさせることなく第1の回数だけ投機的に再実行された場合、前記トランザクションの実行中に、前記共有メモリからロードされた各アドレス及び該共有メモリに書き込まれる各アドレスに対する前記リモートエージェントのアクセスを拒否するロックアウトメカニズムをさらに備える、請求項1に記載の装置。
- 前記トランザクションが、該トランザクションをリタイヤさせることなく第1の回数だけ投機的に再実行された場合、前記ロックアウトメカニズムは、前記トランザクションの実行中に、前記共有メモリからロードされた各アドレス及び該共有メモリに書き込まれる各アドレスに対する少なくとも1つのリモートエージェントのアクセスを拒否するロックアウトビットを設定するように動作可能なロックアウト回路を備える、請求項2に記載の装置。
- 前記トランザクションが、該トランザクションをリタイヤさせることなく第1の回数だけ投機的に再実行された場合、前記ロックアウトメカニズムは、前記トランザクションの実行中に、前記共有メモリからロードされた各アドレス及び該共有メモリに書き込まれる各アドレスに対する少なくとも1つのリモートエージェントのアクセスを拒否するセマフォを起動するコードを実行するように動作可能なロジックを備える、請求項2に記載の装置。
- ロード表を記憶するように動作可能なロジックは、アドバンストロードアドレス表(ALAT)を含む、請求項1から請求項4のいずれか1つに記載の装置。
- 前記ロード表は、ロックメカニズムロードエントリをさらに含み、該ロックメカニズムロードエントリは、ソフトウェアによって実施されるロックアウトメカニズムに対するリモートエージェントのアクセスを追跡する、請求項1から請求項5のいずれか1つに記載の装置。
- 無効化アクセスは、(1)前記リモートエージェントが、前記複数の命令の実行中に前記共有メモリからロードされたアドレスに書き込みを行うこと、又は、(2)前記リモートエージェントが、複数のマイクロオペレーションの実行中に前記共有メモリに書き込まれるアドレスから読み出すこと、若しくは、該アドレスに書き込むことを含む、請求項1から請求項6のいずれか1つに記載の装置。
- 前記リモートエージェントは、前記エージェントを含む集積回路上のコア、該エージェントを含む集積回路上のスレッド、該エージェントを含む集積回路上の論理プロセッサ、物理プロセッサ、及び前記エージェントを含む集積回路に接続されるプロセッサから成る群から選択される、請求項7に記載の装置。
- 前記共有メモリはキャッシュであり、前記エージェント及び前記リモートエージェントは、前記キャッシュを共有する論理プロセッサである、請求項1から請求項8のいずれか1つに記載の装置。
- トランザクションをコミットまたは再実行する方法であって、
第1のトランザクションによりアクセスされる共有のデータロケーションへのアクセスをロックせずに実行される第1のトランザクションの投機的実行中にソフトウェア管理のアクセス追跡表における前記共有のデータロケーションから前記第1のトランザクションのトランザクショナルロードを追跡すること、
前記第1のトランザクションの投機的実行中に前記ソフトウェア管理のアクセス追跡表における前記共有のデータロケーションに対する無効化アクセスを追跡すること、
前記第1のトランザクションの投機的実行中に無効化アクセスを追跡したことに対応して前記第1のトランザクションを投機的に再実行すること、
前記第1のトランザクションの投機的実行中に無効化アクセスを追跡しなかったことに対応して前記第1のトランザクションをコミットすること、
前記第1のトランザクションを第1の回数だけ投機的に再実行した後、前記ソフトウェア管理のアクセス追跡表における共有のデータロケーションに対するアクセスをロックすること、及び
前記共有のデータロケーションに対するアクセスがロックアウトしたことに対応して前記第1のトランザクションを非投機的に再実行すること
を含み、
無効化アクセスを追跡することは、前記第1のトランザクションの投機的実行中に共有メモリのラインにロードしたことに対応して前記ソフトウェア管理のアクセス追跡表におけるロードエントリを格納すべくロード追跡オペレーションを実行することを含み、前記ロードエントリは、ロードされた前記ラインに関連付けられた物理アドレスの表示と、(1)無効化アクセスが前記第1のトランザクションの実行中に行われなかったことを表す第1の値を、ロード表に前記ロードエントリを記憶する時に保持し、且つ、(2)無効化アクセスが前記第1のトランザクションの実行中に行われた場合に第2の値を保持する、無効化アクセスフィールドとを含む、方法。 - 無効化アクセスは、(1)リモートエージェントが、前記第1のトランザクションの投機的実行中にロードされた共有メモリの複数のラインの1つに書き込みを行うことを含む、請求項10に記載の方法。
- 前記ロードエントリは、前記ロードされたラインの長さを保持するための長さフィールドをさらに含む、請求項10または請求項11に記載の方法。
- ロードされた前記ラインの長さは、プロセッサの設計において暗黙的である、請求項10から請求項12のいずれか1つに記載の方法。
- 前記第1のトランザクションの保留中に、前記第1のトランザクションの投機的実行中に使用される入力レジスタが新しいデータを受信することにバイアスをかける(biasing)ことをさらに含む、請求項10から請求項13のいずれか1つに記載の方法。
- 第1の入力レジスタが前記第1のトランザクションの実行中に再利用されることに対応して、該第1の入力レジスタの内容を第2のレジスタにスピリングすることをさらに含む、請求項14に記載の方法。
- 前記トランザクションを投機的に再実行する時に、前記第2のレジスタに記憶された前記内容で前記第1の入力レジスタをリフィリングすることをさらに含む、請求項15に記載の方法。
- 第1のトランザクションによりアクセスされる共有のデータロケーションへのアクセスをロックせずに実行される第1のトランザクションの投機的実行中にソフトウェア管理のアクセス追跡表における共有のデータロケーションから前記第1のトランザクションのトランザクショナルロードを追跡すること、
前記第1のトランザクションの投機的実行中に前記ソフトウェア管理のアクセス追跡表における前記共有のデータロケーションに対する無効化アクセスを追跡すること、
前記第1のトランザクションの投機的実行中に無効化アクセスを追跡したことに対応して前記第1のトランザクションを投機的に再実行すること、
前記第1のトランザクションの投機的実行中に無効化アクセスを追跡しなかったことに対応して前記第1のトランザクションをコミットすること、
前記第1のトランザクションを第1の回数だけ投機的に再実行した後、前記ソフトウェア管理のアクセス追跡表における共有のデータロケーションに対するアクセスをロックすること、及び
前記共有のデータロケーションに対するアクセスがロックアウトしたことに対応して前記第1のトランザクションを非投機的に再実行すること
をコンピュータに実行させ、
無効化アクセスは、(1)リモートエージェントが、前記第1のトランザクションの投機的実行中にロードされた共有メモリの複数のラインの1つに書き込みを行うことを含み、
無効化アクセスを追跡することは、前記第1のトランザクションの投機的実行中に共有メモリのラインにロードしたことに対応して前記ソフトウェア管理のアクセス追跡表におけるロードエントリを格納すべくロード追跡オペレーションを実行することを含み、
前記ロードエントリは、ロードされた前記ラインに関連付けられた物理アドレスの表示と、(1)無効化アクセスが前記第1のトランザクションの実行中に行われなかったことを表す第1の値を、ロード表に前記ロードエントリを記憶する時に保持し、且つ、(2)無効化アクセスが前記第1のトランザクションの実行中に行われた場合に第2の値を保持する、無効化アクセスフィールドとを含む、プログラム。 - 前記第1のトランザクションの保留中に、前記第1のトランザクションの投機的実行中に使用される入力レジスタが新しいデータを受信することにバイアスをかけること、
第1の入力レジスタが前記第1のトランザクションの実行中に再利用されることに対応して、該第1の入力レジスタの内容を第2のレジスタにスピリングすること、
前記第1のトランザクションを投機的に再実行する時に、前記第2のレジスタに記憶された前記内容で前記第1の入力レジスタをリフィリングすること
をさらに前記コンピュータに実行させる請求項17に記載のプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/027,623 US7984248B2 (en) | 2004-12-29 | 2004-12-29 | Transaction based shared data operations in a multiprocessor environment |
US11/027,623 | 2004-12-29 | ||
PCT/US2005/047376 WO2006071969A1 (en) | 2004-12-29 | 2005-12-23 | Transaction based shared data operations in a multiprocessor environment |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010217663A Division JP5255614B2 (ja) | 2004-12-29 | 2010-09-28 | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション |
JP2010217662A Division JP5404574B2 (ja) | 2004-12-29 | 2010-09-28 | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008525923A JP2008525923A (ja) | 2008-07-17 |
JP4764430B2 true JP4764430B2 (ja) | 2011-09-07 |
Family
ID=36116231
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007549621A Active JP4764430B2 (ja) | 2004-12-29 | 2005-12-23 | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション |
JP2010217662A Active JP5404574B2 (ja) | 2004-12-29 | 2010-09-28 | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション |
JP2010217663A Active JP5255614B2 (ja) | 2004-12-29 | 2010-09-28 | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010217662A Active JP5404574B2 (ja) | 2004-12-29 | 2010-09-28 | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション |
JP2010217663A Active JP5255614B2 (ja) | 2004-12-29 | 2010-09-28 | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション |
Country Status (6)
Country | Link |
---|---|
US (3) | US7984248B2 (ja) |
JP (3) | JP4764430B2 (ja) |
CN (2) | CN102622276B (ja) |
DE (3) | DE112005003861A5 (ja) |
GB (3) | GB2451200B (ja) |
WO (1) | WO2006071969A1 (ja) |
Families Citing this family (136)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7752181B2 (en) * | 2004-11-08 | 2010-07-06 | Oracle International Corporation | System and method for performing a data uniqueness check in a sorted data set |
US7984248B2 (en) | 2004-12-29 | 2011-07-19 | Intel Corporation | Transaction based shared data operations in a multiprocessor environment |
US7421544B1 (en) * | 2005-04-04 | 2008-09-02 | Sun Microsystems, Inc. | Facilitating concurrent non-transactional execution in a transactional memory system |
US7882339B2 (en) * | 2005-06-23 | 2011-02-01 | Intel Corporation | Primitives to enhance thread-level speculation |
US8001538B2 (en) | 2005-12-07 | 2011-08-16 | Microsoft Corporation | Software accessible cache metadata |
US8813052B2 (en) | 2005-12-07 | 2014-08-19 | Microsoft Corporation | Cache metadata for implementing bounded transactional memory |
US8225297B2 (en) | 2005-12-07 | 2012-07-17 | Microsoft Corporation | Cache metadata identifiers for isolation and sharing |
US8683143B2 (en) * | 2005-12-30 | 2014-03-25 | Intel Corporation | Unbounded transactional memory systems |
US8898652B2 (en) * | 2006-03-23 | 2014-11-25 | Microsoft Corporation | Cache metadata for accelerating software transactional memory |
US8180967B2 (en) * | 2006-03-30 | 2012-05-15 | Intel Corporation | Transactional memory virtualization |
US8180977B2 (en) * | 2006-03-30 | 2012-05-15 | Intel Corporation | Transactional memory in out-of-order processors |
US7647454B2 (en) * | 2006-06-12 | 2010-01-12 | Hewlett-Packard Development Company, L.P. | Transactional shared memory system and method of control |
US20080005504A1 (en) * | 2006-06-30 | 2008-01-03 | Jesse Barnes | Global overflow method for virtualized transactional memory |
US9798590B2 (en) * | 2006-09-07 | 2017-10-24 | Intel Corporation | Post-retire scheme for tracking tentative accesses during transactional execution |
US8190859B2 (en) | 2006-11-13 | 2012-05-29 | Intel Corporation | Critical section detection and prediction mechanism for hardware lock elision |
US8719807B2 (en) * | 2006-12-28 | 2014-05-06 | Intel Corporation | Handling precompiled binaries in a hardware accelerated software transactional memory system |
US7802136B2 (en) | 2006-12-28 | 2010-09-21 | Intel Corporation | Compiler technique for efficient register checkpointing to support transaction roll-back |
US8132158B2 (en) * | 2006-12-28 | 2012-03-06 | Cheng Wang | Mechanism for software transactional memory commit/abort in unmanaged runtime environment |
US8185698B2 (en) * | 2007-04-09 | 2012-05-22 | Bratin Saha | Hardware acceleration of a write-buffering software transactional memory |
US8068114B2 (en) * | 2007-04-30 | 2011-11-29 | Advanced Micro Devices, Inc. | Mechanism for granting controlled access to a shared resource |
US8458724B2 (en) * | 2007-06-15 | 2013-06-04 | Microsoft Corporation | Automatic mutual exclusion |
US8266387B2 (en) * | 2007-06-27 | 2012-09-11 | Microsoft Corporation | Leveraging transactional memory hardware to accelerate virtualization emulation |
US9043553B2 (en) * | 2007-06-27 | 2015-05-26 | Microsoft Technology Licensing, Llc | Leveraging transactional memory hardware to accelerate virtualization and emulation |
US8140773B2 (en) | 2007-06-27 | 2012-03-20 | Bratin Saha | Using ephemeral stores for fine-grained conflict detection in a hardware accelerated STM |
US9280397B2 (en) * | 2007-06-27 | 2016-03-08 | Intel Corporation | Using buffered stores or monitoring to filter redundant transactional accesses and mechanisms for mapping data to buffered metadata |
US8176253B2 (en) * | 2007-06-27 | 2012-05-08 | Microsoft Corporation | Leveraging transactional memory hardware to accelerate virtualization and emulation |
CN101452400B (zh) * | 2007-11-29 | 2011-12-28 | 国际商业机器公司 | 处理多处理器系统中事务缓冲器溢出的方法和系统 |
US8122195B2 (en) | 2007-12-12 | 2012-02-21 | International Business Machines Corporation | Instruction for pre-fetching data and releasing cache lines |
US7966453B2 (en) | 2007-12-12 | 2011-06-21 | International Business Machines Corporation | Method and apparatus for active software disown of cache line's exlusive rights |
US8015380B2 (en) * | 2008-02-01 | 2011-09-06 | International Business Machines Corporation | Launching multiple concurrent memory moves via a fully asynchronoous memory mover |
US8327101B2 (en) * | 2008-02-01 | 2012-12-04 | International Business Machines Corporation | Cache management during asynchronous memory move operations |
US8095758B2 (en) * | 2008-02-01 | 2012-01-10 | International Business Machines Corporation | Fully asynchronous memory mover |
US8245004B2 (en) * | 2008-02-01 | 2012-08-14 | International Business Machines Corporation | Mechanisms for communicating with an asynchronous memory mover to perform AMM operations |
US8356151B2 (en) * | 2008-02-01 | 2013-01-15 | International Business Machines Corporation | Reporting of partially performed memory move |
US8275963B2 (en) * | 2008-02-01 | 2012-09-25 | International Business Machines Corporation | Asynchronous memory move across physical nodes with dual-sided communication |
US7941627B2 (en) * | 2008-02-01 | 2011-05-10 | International Business Machines Corporation | Specialized memory move barrier operations |
US8479166B2 (en) * | 2008-08-25 | 2013-07-02 | International Business Machines Corporation | Detecting locking discipline violations on shared resources |
JP5195212B2 (ja) * | 2008-09-17 | 2013-05-08 | 株式会社リコー | 管理システム、管理装置、管理方法、管理プログラム、および記録媒体 |
US9639392B2 (en) * | 2013-12-17 | 2017-05-02 | Intel Corporation | Unbounded transactional memory with forward progress guarantees using a hardware global lock |
US8751748B2 (en) * | 2010-01-15 | 2014-06-10 | International Business Machines Corporation | Reader set encoding for directory of shared cache memory in multiprocessor system |
US8832415B2 (en) * | 2010-01-08 | 2014-09-09 | International Business Machines Corporation | Mapping virtual addresses to different physical addresses for value disambiguation for thread memory access requests |
US8739164B2 (en) * | 2010-02-24 | 2014-05-27 | Advanced Micro Devices, Inc. | Automatic suspend atomic hardware transactional memory in response to detecting an implicit suspend condition and resume thereof |
US8473952B2 (en) * | 2010-06-30 | 2013-06-25 | Oracle International Corporation | System and method for communication between concurrent transactions using transaction communicator objects |
US8549504B2 (en) * | 2010-09-25 | 2013-10-01 | Intel Corporation | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region |
US20120079245A1 (en) * | 2010-09-25 | 2012-03-29 | Cheng Wang | Dynamic optimization for conditional commit |
WO2012136766A1 (en) * | 2011-04-06 | 2012-10-11 | Telefonaktiebolaget L M Ericsson (Publ) | Multi-core processors |
US8782352B2 (en) * | 2011-09-29 | 2014-07-15 | Oracle International Corporation | System and method for supporting a self-tuning locking mechanism in a transactional middleware machine environment |
US10387324B2 (en) | 2011-12-08 | 2019-08-20 | Intel Corporation | Method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution canceling the transactional execution upon conflict between physical addresses of transactional accesses within the transactional execution |
US10286148B2 (en) * | 2012-01-23 | 2019-05-14 | Fenwal, Inc. | Using physiological data in a medical device |
WO2013115816A1 (en) | 2012-02-02 | 2013-08-08 | Intel Corporation | A method, apparatus, and system for speculative abort control mechanisms |
US9268596B2 (en) | 2012-02-02 | 2016-02-23 | Intel Corparation | Instruction and logic to test transactional execution status |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
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 |
US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
KR102248470B1 (ko) * | 2012-06-15 | 2021-05-06 | 인텔 코포레이션 | 메모리로부터 순차적으로 판독하는 load들을 구성하는 메모리 일관성 모델에서 비순차 load들을 갖는 세마포어 방법 및 시스템 |
US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US9317460B2 (en) | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
US8966324B2 (en) | 2012-06-15 | 2015-02-24 | International Business Machines Corporation | Transactional execution branch indications |
US9442737B2 (en) * | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US8880959B2 (en) | 2012-06-15 | 2014-11-04 | International Business Machines Corporation | Transaction diagnostic block |
US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
CN105760140B (zh) * | 2012-06-29 | 2019-09-13 | 英特尔公司 | 用于测试事务性执行状态的指令和逻辑 |
US8943278B2 (en) | 2012-07-31 | 2015-01-27 | Advanced Micro Devices, Inc. | Protecting large regions without operating-system support |
US8914586B2 (en) * | 2012-07-31 | 2014-12-16 | Advanced Micro Devices, Inc. | TLB-walk controlled abort policy for hardware transactional memory |
US9430166B2 (en) * | 2012-08-10 | 2016-08-30 | International Business Machines Corporation | Interaction of transactional storage accesses with other atomic semantics |
US9892063B2 (en) * | 2012-11-27 | 2018-02-13 | Advanced Micro Devices, Inc. | Contention blocking buffer |
US9032152B2 (en) | 2013-03-22 | 2015-05-12 | Applied Micro Circuits Corporation | Cache miss detection filter |
US9535744B2 (en) * | 2013-06-29 | 2017-01-03 | Intel Corporation | Method and apparatus for continued retirement during commit of a speculative region of code |
US9524195B2 (en) | 2014-02-27 | 2016-12-20 | International Business Machines Corporation | Adaptive process for data sharing with selection of lock elision and locking |
CA2830605A1 (en) * | 2013-10-22 | 2015-04-22 | Ibm Canada Limited - Ibm Canada Limitee | Code versioning for enabling transactional memory region promotion |
JP6021112B2 (ja) * | 2013-11-28 | 2016-11-02 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 複数のスレッドで順序付きトランザクションを実行する方法、並びに、当該トランザクションを実行するためのコンピュータ及びそのコンピュータ・プログラム |
CN105378652B (zh) * | 2013-12-24 | 2018-02-06 | 华为技术有限公司 | 线程共享资源分配方法及装置 |
US9207967B2 (en) | 2014-01-07 | 2015-12-08 | Red Hat, Inc. | Using nonspeculative operations for lock elision |
US9465673B2 (en) | 2014-02-27 | 2016-10-11 | International Business Machines Corporation | Deferral instruction for managing transactional aborts in transactional memory computing environments to complete transaction by deferring disruptive events handling |
US9442853B2 (en) * | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging lock elision transactions with instructions to change execution type |
US9442775B2 (en) * | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging hardware transactions with instructions to transfer transaction execution control |
US9575890B2 (en) | 2014-02-27 | 2017-02-21 | International Business Machines Corporation | Supporting atomic accumulation with an addressable accumulator |
US9411729B2 (en) | 2014-02-27 | 2016-08-09 | International Business Machines Corporation | Salvaging lock elision transactions |
US9361041B2 (en) | 2014-02-27 | 2016-06-07 | International Business Machines Corporation | Hint instruction for managing transactional aborts in transactional memory computing environments |
US9262206B2 (en) | 2014-02-27 | 2016-02-16 | International Business Machines Corporation | Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments |
US9471371B2 (en) | 2014-02-27 | 2016-10-18 | International Business Machines Corporation | Dynamic prediction of concurrent hardware transactions resource requirements and allocation |
US9645879B2 (en) | 2014-02-27 | 2017-05-09 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
US9336097B2 (en) | 2014-02-27 | 2016-05-10 | International Business Machines Corporation | Salvaging hardware transactions |
US20150242216A1 (en) | 2014-02-27 | 2015-08-27 | International Business Machines Corporation | Committing hardware transactions that are about to run out of resource |
US9430273B2 (en) | 2014-02-27 | 2016-08-30 | International Business Machines Corporation | Suppressing aborting a transaction beyond a threshold execution duration based on the predicted duration |
US9424072B2 (en) | 2014-02-27 | 2016-08-23 | International Business Machines Corporation | Alerting hardware transactions that are about to run out of space |
US9329946B2 (en) | 2014-02-27 | 2016-05-03 | International Business Machines Corporation | Salvaging hardware transactions |
US9311178B2 (en) | 2014-02-27 | 2016-04-12 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
US9524187B2 (en) | 2014-03-02 | 2016-12-20 | International Business Machines Corporation | Executing instruction with threshold indicating nearing of completion of transaction |
US9720742B2 (en) * | 2014-05-15 | 2017-08-01 | GM Global Technology Operations LLC | Service and system supporting coherent data access on multicore controller |
CN105874439A (zh) * | 2014-05-28 | 2016-08-17 | 联发科技股份有限公司 | 不同计算单元共享内存池的内存池管理方法和相关的计算机可读介质和内存池管理装置 |
US9454313B2 (en) * | 2014-06-10 | 2016-09-27 | Arm Limited | Dynamic selection of memory management algorithm |
US9448939B2 (en) * | 2014-06-30 | 2016-09-20 | International Business Machines Corporation | Collecting memory operand access characteristics during transactional execution |
US9710271B2 (en) | 2014-06-30 | 2017-07-18 | International Business Machines Corporation | Collecting transactional execution characteristics during transactional execution |
US9501411B2 (en) * | 2014-08-29 | 2016-11-22 | International Business Machines Corporation | Cache backing store for transactional memory |
US9904645B2 (en) * | 2014-10-31 | 2018-02-27 | Texas Instruments Incorporated | Multicore bus architecture with non-blocking high performance transaction credit system |
US9864708B2 (en) * | 2014-12-16 | 2018-01-09 | Vmware, Inc. | Safely discovering secure monitors and hypervisor implementations in systems operable at multiple hierarchical privilege levels |
US10324768B2 (en) * | 2014-12-17 | 2019-06-18 | Intel Corporation | Lightweight restricted transactional memory for speculative compiler optimization |
GB2533414B (en) * | 2014-12-19 | 2021-12-01 | Advanced Risc Mach Ltd | Apparatus with shared transactional processing resource, and data processing method |
US10732865B2 (en) * | 2015-09-23 | 2020-08-04 | Oracle International Corporation | Distributed shared memory using interconnected atomic transaction engines at respective memory interfaces |
US9998284B2 (en) * | 2015-09-24 | 2018-06-12 | Intel Corporation | Methods and apparatus to provide isolated execution environments |
GB2548845B (en) | 2016-03-29 | 2019-11-27 | Imagination Tech Ltd | Handling memory requests |
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 |
US10095637B2 (en) * | 2016-09-15 | 2018-10-09 | Advanced Micro Devices, Inc. | Speculative retirement of post-lock instructions |
US11868818B2 (en) | 2016-09-22 | 2024-01-09 | Advanced Micro Devices, Inc. | Lock address contention predictor |
US10423446B2 (en) * | 2016-11-28 | 2019-09-24 | Arm Limited | Data processing |
US10339060B2 (en) * | 2016-12-30 | 2019-07-02 | Intel Corporation | Optimized caching agent with integrated directory cache |
US10664306B2 (en) * | 2017-01-13 | 2020-05-26 | Arm Limited | Memory partitioning |
US11119923B2 (en) * | 2017-02-23 | 2021-09-14 | Advanced Micro Devices, Inc. | Locality-aware and sharing-aware cache coherence for collections of processors |
US11727997B2 (en) * | 2017-07-07 | 2023-08-15 | Micron Technology, Inc. | RPMB improvements to managed NAND |
CN109726017B (zh) * | 2017-10-30 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 一种应用程序之间共享缓存的方法及装置 |
US11018850B2 (en) | 2017-12-26 | 2021-05-25 | Akamai Technologies, Inc. | Concurrent transaction processing in a high performance distributed system of record |
US10514969B2 (en) * | 2018-01-09 | 2019-12-24 | Microsoft Technology Licensing, Llc | Bit-accurate-tracing analysis with applied memory region lifetimes |
GB2570110B (en) * | 2018-01-10 | 2020-04-15 | Advanced Risc Mach Ltd | Speculative cache storage region |
US10558572B2 (en) * | 2018-01-16 | 2020-02-11 | Microsoft Technology Licensing, Llc | Decoupling trace data streams using cache coherence protocol data |
KR102504332B1 (ko) | 2018-02-21 | 2023-02-28 | 삼성전자주식회사 | 서로 이격되어 배치되는 범프 어레이들을 포함하는 메모리 장치 및 이를 포함하는 전자 장치 |
GB2572578B (en) * | 2018-04-04 | 2020-09-16 | Advanced Risc Mach Ltd | Cache annotations to indicate specultative side-channel condition |
US10949210B2 (en) * | 2018-05-02 | 2021-03-16 | Micron Technology, Inc. | Shadow cache for securing conditional speculative instruction execution |
US11204773B2 (en) | 2018-09-07 | 2021-12-21 | Arm Limited | Storing a processing state based on confidence in a predicted branch outcome and a number of recent state changes |
CN109614220B (zh) | 2018-10-26 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 一种多核系统处理器和数据更新方法 |
CN109725943B (zh) * | 2018-12-27 | 2022-05-17 | 龙芯中科技术股份有限公司 | 一种程序跳转方法、装置、电子设备及存储介质 |
US10977038B2 (en) * | 2019-06-19 | 2021-04-13 | Arm Limited | Checkpointing speculative register mappings |
US20220014598A1 (en) * | 2020-07-09 | 2022-01-13 | Ge Aviation Systems Llc | Data service tracker module for a communication system and method of determining a set of data couplings |
CN111913810B (zh) * | 2020-07-28 | 2024-03-19 | 阿波罗智能技术(北京)有限公司 | 多线程场景下的任务执行方法、装置、设备和存储介质 |
KR20220056986A (ko) | 2020-10-29 | 2022-05-09 | 삼성전자주식회사 | 메모리 확장기, 이종 컴퓨팅 장치, 및 이종 컴퓨팅 장치의 동작 방법 |
EP4206918A3 (en) * | 2021-12-30 | 2023-11-15 | Rebellions Inc. | Neural processing device and transaction tracking method thereof |
CN114510271B (zh) * | 2022-02-09 | 2023-08-15 | 海飞科(南京)信息技术有限公司 | 用于在单指令多线程计算系统中加载数据的方法和装置 |
CN115757196B (zh) * | 2022-11-09 | 2023-09-01 | 超聚变数字技术有限公司 | 内存、访问内存方法及计算设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0944402A (ja) * | 1995-07-27 | 1997-02-14 | Nec Software Ltd | キャッシュメモリの記憶一致制御装置及び方法 |
JPH09231124A (ja) * | 1996-02-20 | 1997-09-05 | Ricoh Co Ltd | メモリロック装置及びメモリロック方法 |
US5809503A (en) * | 1993-07-08 | 1998-09-15 | Fujitsu Limited | Locking mechanism for check in/check out model which maintains data consistency amongst transactions |
JP2000267815A (ja) * | 1999-03-17 | 2000-09-29 | Hitachi Ltd | ディスクアレイ制御装置 |
WO2004075051A1 (en) * | 2003-02-13 | 2004-09-02 | Sun Microsystems Inc. | Method and apparatus for avoiding locks by speculatively executing critical sections |
WO2004075044A2 (en) * | 2003-02-13 | 2004-09-02 | Sun Microsystems Inc. | Method and apparatus for selective monitoring of store instructions during speculative thread execution |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
JP3158364B2 (ja) * | 1992-10-13 | 2001-04-23 | ソニー株式会社 | 電子機器 |
JP2936036B2 (ja) | 1992-10-27 | 1999-08-23 | 富士通株式会社 | メモリアクセス装置 |
US5848241A (en) * | 1996-01-11 | 1998-12-08 | Openframe Corporation Ltd. | Resource sharing facility functions as a controller for secondary storage device and is accessible to all computers via inter system links |
US5758183A (en) * | 1996-07-17 | 1998-05-26 | Digital Equipment Corporation | Method of reducing the number of overhead instructions by modifying the program to locate instructions that access shared data stored at target addresses before program execution |
US6108757A (en) * | 1997-02-28 | 2000-08-22 | Lucent Technologies Inc. | Method for locking a shared resource in multiprocessor system |
JPH1173329A (ja) * | 1997-06-24 | 1999-03-16 | Matsushita Electric Ind Co Ltd | ソフトウエア開発支援システム |
US6076126A (en) * | 1997-06-30 | 2000-06-13 | Emc Corporation | Software locking mechanism for locking shared resources in a data processing system |
US5987550A (en) * | 1997-06-30 | 1999-11-16 | Emc Corporation | Lock mechanism for shared resources in a data processing system |
US6240413B1 (en) * | 1997-12-22 | 2001-05-29 | Sun Microsystems, Inc. | Fine-grained consistency mechanism for optimistic concurrency control using lock groups |
US6078981A (en) * | 1997-12-29 | 2000-06-20 | Intel Corporation | Transaction stall technique to prevent livelock in multiple-processor systems |
US6460119B1 (en) * | 1997-12-29 | 2002-10-01 | Intel Corporation | Snoop blocking for cache coherency |
US6101568A (en) * | 1998-08-25 | 2000-08-08 | Stmicroelectronics, Inc. | Bus interface unit having dual purpose transaction buffer |
US6282637B1 (en) | 1998-12-02 | 2001-08-28 | Sun Microsystems, Inc. | Partially executing a pending atomic instruction to unlock resources when cancellation of the instruction occurs |
US6665708B1 (en) * | 1999-11-12 | 2003-12-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Coarse grained determination of data dependence between parallel executed jobs in an information processing system |
US6324624B1 (en) * | 1999-12-28 | 2001-11-27 | Intel Corporation | Read lock miss control and queue management |
US6684398B2 (en) | 2000-05-31 | 2004-01-27 | Sun Microsystems, Inc. | Monitor entry and exit for a speculative thread during space and time dimensional execution |
US6725341B1 (en) * | 2000-06-28 | 2004-04-20 | Intel Corporation | Cache line pre-load and pre-own based on cache coherence speculation |
US6460124B1 (en) | 2000-10-20 | 2002-10-01 | Wisconsin Alumni Research Foundation | Method of using delays to speed processing of inferred critical program portions |
US6463511B2 (en) | 2000-12-29 | 2002-10-08 | Intel Corporation | System and method for high performance execution of locked memory instructions in a system with distributed memory and a restrictive memory model |
US6725337B1 (en) | 2001-05-16 | 2004-04-20 | Advanced Micro Devices, Inc. | Method and system for speculatively invalidating lines in a cache |
JP4050226B2 (ja) | 2001-06-26 | 2008-02-20 | サン・マイクロシステムズ・インコーポレイテッド | マルチプロセッサシステムにおける推測的な格納を容易にするl2ディレクトリの利用 |
KR100567099B1 (ko) | 2001-06-26 | 2006-03-31 | 썬 마이크로시스템즈, 인코포레이티드 | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 |
WO2004001527A2 (en) | 2001-06-26 | 2003-12-31 | Sun Microsystems, Inc. | Method and apparatus for facilitating speculative loads in a multiprocessor system |
JP3661614B2 (ja) * | 2001-07-12 | 2005-06-15 | 日本電気株式会社 | キャッシュメモリ制御方法及びマルチプロセッサシステム |
US7120762B2 (en) | 2001-10-19 | 2006-10-10 | Wisconsin Alumni Research Foundation | Concurrent execution of critical sections by eliding ownership of locks |
US6981108B1 (en) * | 2001-10-23 | 2005-12-27 | P-Cube Ltd. | Method for locking shared resources connected by a PCI bus |
US7908441B2 (en) | 2002-01-11 | 2011-03-15 | Oracle America, Inc. | Value recycling facility for multithreaded computations |
US6839816B2 (en) * | 2002-02-26 | 2005-01-04 | International Business Machines Corporation | Shared cache line update mechanism |
US7328316B2 (en) | 2002-07-16 | 2008-02-05 | Sun Microsystems, Inc. | Software transactional memory for dynamically sizable shared data structures |
US7120746B2 (en) * | 2002-09-09 | 2006-10-10 | International Business Machines Corporation | Technique for data transfer |
US7062636B2 (en) * | 2002-09-19 | 2006-06-13 | Intel Corporation | Ordering scheme with architectural operation decomposed into result producing speculative micro-operation and exception producing architectural micro-operation |
US7269694B2 (en) | 2003-02-13 | 2007-09-11 | Sun Microsystems, Inc. | Selectively monitoring loads to support transactional program execution |
US7103880B1 (en) * | 2003-04-30 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Floating-point data speculation across a procedure call using an advanced load address table |
US20050086446A1 (en) | 2003-10-04 | 2005-04-21 | Mckenney Paul E. | Utilizing software locking approach to execute code upon failure of hardware transactional approach |
US7260746B2 (en) * | 2003-10-21 | 2007-08-21 | Massachusetts Institute Of Technology | Specification based detection and repair of errors in data structures |
US7340569B2 (en) | 2004-02-10 | 2008-03-04 | Wisconsin Alumni Research Foundation | Computer architecture providing transactional, lock-free execution of lock-based programs |
US7529914B2 (en) | 2004-06-30 | 2009-05-05 | Intel Corporation | Method and apparatus for speculative execution of uncontended lock instructions |
US7685365B2 (en) | 2004-09-30 | 2010-03-23 | Intel Corporation | Transactional memory execution utilizing virtual memory |
US7856537B2 (en) * | 2004-09-30 | 2010-12-21 | Intel Corporation | Hybrid hardware and software implementation of transactional memory access |
US7689778B2 (en) * | 2004-11-30 | 2010-03-30 | Intel Corporation | Preventing system snoop and cross-snoop conflicts |
US7984248B2 (en) | 2004-12-29 | 2011-07-19 | Intel Corporation | Transaction based shared data operations in a multiprocessor environment |
US9268710B1 (en) * | 2007-01-18 | 2016-02-23 | Oracle America, Inc. | Facilitating efficient transactional memory and atomic operations via cache line marking |
-
2004
- 2004-12-29 US US11/027,623 patent/US7984248B2/en active Active
-
2005
- 2005-12-23 GB GB0818238A patent/GB2451200B/en active Active
- 2005-12-23 DE DE112005003861.0T patent/DE112005003861A5/de not_active Ceased
- 2005-12-23 DE DE112005003874.2T patent/DE112005003874B3/de active Active
- 2005-12-23 JP JP2007549621A patent/JP4764430B2/ja active Active
- 2005-12-23 DE DE112005003339T patent/DE112005003339T5/de not_active Ceased
- 2005-12-23 WO PCT/US2005/047376 patent/WO2006071969A1/en active Application Filing
- 2005-12-23 CN CN201110438827.7A patent/CN102622276B/zh active Active
- 2005-12-23 GB GB0714433A patent/GB2437211B/en active Active
- 2005-12-23 GB GB0818235A patent/GB2451199B/en active Active
- 2005-12-23 CN CN2005800454107A patent/CN101095113B/zh active Active
-
2010
- 2010-09-28 JP JP2010217662A patent/JP5404574B2/ja active Active
- 2010-09-28 JP JP2010217663A patent/JP5255614B2/ja active Active
- 2010-11-10 US US12/943,314 patent/US8176266B2/en active Active
-
2011
- 2011-06-24 US US13/168,171 patent/US8458412B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809503A (en) * | 1993-07-08 | 1998-09-15 | Fujitsu Limited | Locking mechanism for check in/check out model which maintains data consistency amongst transactions |
JPH0944402A (ja) * | 1995-07-27 | 1997-02-14 | Nec Software Ltd | キャッシュメモリの記憶一致制御装置及び方法 |
JPH09231124A (ja) * | 1996-02-20 | 1997-09-05 | Ricoh Co Ltd | メモリロック装置及びメモリロック方法 |
JP2000267815A (ja) * | 1999-03-17 | 2000-09-29 | Hitachi Ltd | ディスクアレイ制御装置 |
WO2004075051A1 (en) * | 2003-02-13 | 2004-09-02 | Sun Microsystems Inc. | Method and apparatus for avoiding locks by speculatively executing critical sections |
WO2004075044A2 (en) * | 2003-02-13 | 2004-09-02 | Sun Microsystems Inc. | Method and apparatus for selective monitoring of store instructions during speculative thread execution |
JP2006518077A (ja) * | 2003-02-13 | 2006-08-03 | サン・マイクロシステムズ・インコーポレイテッド | 臨界領域を投機的に実行することによりロックを回避するための方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
US20110055493A1 (en) | 2011-03-03 |
US8458412B2 (en) | 2013-06-04 |
JP5404574B2 (ja) | 2014-02-05 |
GB2437211A8 (ja) | 2007-10-15 |
DE112005003874B3 (de) | 2021-04-01 |
CN101095113B (zh) | 2012-05-23 |
GB0818235D0 (en) | 2008-11-12 |
JP2011044161A (ja) | 2011-03-03 |
GB0714433D0 (en) | 2007-09-05 |
DE112005003339T5 (de) | 2007-11-22 |
GB2437211A (en) | 2007-10-17 |
GB2451200A (en) | 2009-01-21 |
GB2437211B (en) | 2008-11-19 |
CN101095113A (zh) | 2007-12-26 |
US7984248B2 (en) | 2011-07-19 |
CN102622276A (zh) | 2012-08-01 |
GB0818238D0 (en) | 2008-11-12 |
JP2008525923A (ja) | 2008-07-17 |
US20060161740A1 (en) | 2006-07-20 |
DE112005003861A5 (de) | 2014-06-05 |
JP2011028774A (ja) | 2011-02-10 |
GB2451199A (en) | 2009-01-21 |
GB2451200B (en) | 2009-05-20 |
US8176266B2 (en) | 2012-05-08 |
WO2006071969A1 (en) | 2006-07-06 |
US20110252203A1 (en) | 2011-10-13 |
JP5255614B2 (ja) | 2013-08-07 |
GB2451199B (en) | 2009-05-27 |
CN102622276B (zh) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4764430B2 (ja) | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション | |
US10228943B2 (en) | Prefetching of discontiguous storage locations in anticipation of transactional execution | |
TWI476595B (zh) | 用於交易式記憶體事件處置之硬體中使用者處置器的登錄 | |
US9262173B2 (en) | Critical section detection and prediction mechanism for hardware lock elision | |
EP2562642B1 (en) | Hardware acceleration for a software transactional memory system | |
US8627048B2 (en) | Mechanism for irrevocable transactions | |
US8627030B2 (en) | Late lock acquire mechanism for hardware lock elision (HLE) | |
US20110208921A1 (en) | Inverted default semantics for in-speculative-region memory accesses | |
US10127155B2 (en) | Memory performance when speculation control is enabled, and instruction therefor | |
US20100162247A1 (en) | Methods and systems for transactional nested parallelism | |
US20180136966A1 (en) | Dynamic releasing of cache lines | |
US9658961B2 (en) | Speculation control for improving transaction success rate, and instruction therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100615 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100914 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100922 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100928 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110309 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110310 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110401 |
|
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: 20110524 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110610 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140617 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4764430 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 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 |
|
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 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |