JP2013546088A - 記憶されたアトミック手順を使用するプログラム可能なアトミックメモリ - Google Patents
記憶されたアトミック手順を使用するプログラム可能なアトミックメモリ Download PDFInfo
- Publication number
- JP2013546088A JP2013546088A JP2013543316A JP2013543316A JP2013546088A JP 2013546088 A JP2013546088 A JP 2013546088A JP 2013543316 A JP2013543316 A JP 2013543316A JP 2013543316 A JP2013543316 A JP 2013543316A JP 2013546088 A JP2013546088 A JP 2013546088A
- Authority
- JP
- Japan
- Prior art keywords
- sequence
- instruction
- atomic
- cache line
- processing core
- 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.)
- Granted
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/38—Concurrent instruction execution, e.g. pipeline, look ahead
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on 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/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
-
- 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/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/46—Multiprogramming arrangements
-
- 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
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【選択図】図2
Description
LOAD ADDR0:アドレス0から1ワード(例えば、8バイト)をロードし、結果をプッシュする
LOAD ADDR1:アドレス1から1ワードをロードし、結果をプッシュする
STORE ADDR0:スタックのトップをポップし、ワードをアドレス0に記憶する(記憶はENDまで保留)
STORE ADDR1:スタックのトップをポップし、ワードをアドレス1に記憶する(記憶はENDまで保留)
ADD,SUB:2つの値をポップし、これらの値を付加/控除して結果をプッシュする
DUP:スタックのトップのコピーをプッシュする
DUP2:トップ2つのスタック要素のコピーをプッシュする
SWAP:トップおよび2番目のスタック要素をスワップする
END:プログラムを終了し、記憶を書き出す
BTn:ポップ、ポップされた値のNビット値をプッシュする
PUSHimm:即時#Nをプッシュする
CMPSIGNED:ポップされた符号付きの値の差異の符号に従って、2つの値をポップし、−1、0、1をプッシュする
CMPUNSIGNED:ポップされた符号なしの値の差異の符号に従って、2つの値をポップし、−1、0、1をプッシュする
DUP2CMP:ポップされた符号付きの値の差異の符号に従って、2つの値をポップし、ポップされた値をスタックにプッシュバックして、−1、0、1をプッシュする
JE、JG、JL:スタックをポップし、順方向のN命令を条件的にジャンプさせる(新しい命令アドレスが、キャッシュラインの外側にある場合はトランザクションを中断する)
J:順方向のN命令を無条件にジャンプさせる(新しい命令アドレスがキャッシュラインにある場合はトランザクションを中断する)
CMOVE、CMOVG、CMOVL:スタックから3つのアイテムをポップする。スタックのトップは、条件コードとして使用される。条件がTRUEである場合は、次にスタック上の2番目のアイテムをプッシュし、そうでなければ3番目のアイテムをプッシュする
ENDRETURN:ENDと同様であるが、スタックのトップに値を戻す
cc:条件付き「TRUEの場合」
E:スタックのトップ(TOS)が0である場合、TRUE
L:スタックの最後が1である場合、TRUE
G:スタックのトップおよび最後の両方が0である場合、TRUE
Claims (20)
- マルチプロセッシングコアシステム内のプロセッシングコアを備える装置であって、前記プロセッシングコアは、
指定された命令シーケンスが、前記シーケンスにおけるどの命令も、共有メモリにアクセスするように前記プロセッシングコアに命令しないことを含む1つ以上のアトミック性基準の組を満たすことを検証するように構成されており、
前記検証されたシーケンスは、アトミックメモリトランザクションとして前記マルチプロセッシングコアシステムによって実行可能である、装置。 - 前記検証されたシーケンスをアトミックメモリトランザクションとして実行することは、
ソースキャッシュラインからのメモリデータを、ターゲットレジスタに記憶することと、
前記命令シーケンスを実行して、前記ターゲットレジスタに記憶された前記メモリデータを変更することと、
前記ターゲットレジスタからの値を、前記ソースキャッシュラインに記憶することと、を含む、請求項1に記載の装置。 - 前記アトミックメモリトランザクションを実行することは、
前記ソースキャッシュラインからのメモリデータを前記ターゲットレジスタに記憶する前に、前記ソースキャッシュラインをロックすることと、
前記ターゲットレジスタからの前記値を前記ソースキャッシュラインに記憶した後に、前記ソースキャッシュラインのロックを解除することと、をさらに含み、
前記プロセッシングコアは、前記ソースキャッシュラインをロックすることによって前記ソースキャッシュラインがロックされている間、前記ソースキャッシュラインに記憶された共有データを、1つ以上の他のプロセッシングコアに読み取りまたは変更させないようにする、請求項2に記載の装置。 - 前記シーケンスがアトミックメモリトランザクションとして実行されることを示す特殊用途開始命令が、前記命令シーケンスに先立ってなされ、前記命令は前記ソースキャッシュラインを示す、請求項2に記載の装置。
- 前記プロセッシングコアは、マイクロコード検証エージェントを使用して、前記検証を行うように構成されている、請求項1に記載の装置。
- 前記マイクロコード検証エージェントは、
前記シーケンスの指標をユーザプログラムから受信し、
前記シーケンスの前記指標の受信に応じて、前記検証を行い、
前記検証に応じて、前記シーケンスのコピーを記憶するように構成されている、請求項5に記載の装置。 - 前記検証エージェントは、前記シーケンスの前記記憶されたコピーの識別子を、前記ユーザプログラムに戻すようにさらに構成されており、
前記アトミックメモリトランザクションを実行することは、前記ユーザプログラムが、前記識別子を使用して前記検証されたシーケンスを起動することに応じて行われる、請求項6に記載の装置。 - 前記検証エージェントは、前記シーケンスの前記記憶されたコピーの開始の際に、特殊用途のアトミック開始命令を記憶するようにさらに構成されている、請求項6に記載の装置。
- 前記プロセッシングコアは、順方向の進行を保証した前記アトミックメモリトランザクションを実行する、請求項1に記載の装置。
- 前記1つ以上のアトミック性基準の組は、
前記シーケンス内のどの命令も、前記シーケンス外の命令において実行を継続するように前記プロセッシングコアに命令しないという基準と、
前記シーケンス内のどの命令も、汎用レジスタ以外の前記プロセッシングコアのレジスタにアクセスするように前記プロセッシングコアに命令しないという基準と、
前記シーケンスの各命令が事前に指定された制限長形式で表現されているという基準と、
前記命令シーケンスの命令の数が、所与の最大制限値を超えないという基準と、
のうち1つ以上の基準を含む、請求項1に記載の装置。 - 命令シーケンスが、前記シーケンス内のどの命令も、共有メモリにアクセスするようにプロセッシングコアに命令しないことを含む1つ以上のアトミック性基準の組を満たすことを、マルチプロセッシングコアシステム内の前記プロセッシングコアが検証するステップと、
前記検証されたシーケンスを、アトミックメモリトランザクションとして実行するステップと、を含む、方法。 - 前記アトミックメモリトランザクションを実行するステップは、
ソースキャッシュラインからのメモリデータを、ターゲットレジスタに記憶するステップと、
前記命令シーケンスを実行して、前記ターゲットレジスタに記憶された前記メモリデータを変更するステップと、
前記ターゲットレジスタからの値を、前記ソースキャッシュラインに記憶するステップと、を含む、請求項11に記載の方法。 - 前記アトミックメモリトランザクションを実行するステップは、
前記ソースキャッシュラインからのメモリデータを前記ターゲットレジスタに記憶する前に、前記ソースキャッシュラインをロックするステップと、
前記ターゲットレジスタからの前記値を前記ソースキャッシュラインに記憶した後に、前記ソースキャッシュラインのロックを解除するステップと、をさらに含み、
前記プロセッシングコアは、前記ソースキャッシュラインをロックすることによって前記ソースキャッシュラインがロックされている間、前記ソースキャッシュラインに記憶された共有データを、1つ以上の他のプロセッシングコアに読み取りまたは変更させないようにする、請求項12に記載の方法。 - 前記プロセッシングコアは、
前記シーケンスの指標をユーザプログラムから受信し、
前記シーケンスの前記指標の受信に応じて、前記検証を行い、
前記検証に応じて、前記シーケンスのコピーを記憶する、
ように構成されたマイクロコード検証エージェントを使用して、前記検証を行うように構成されている、請求項11に記載の方法。 - 前記検証エージェントは、前記シーケンスの前記記憶されたコピーの識別子を、前記ユーザプログラムに戻すようにさらに構成されており、
前記アトミックメモリトランザクションの実行は、前記ユーザプログラムが前記識別子を使用して前記検証されたシーケンスを起動することに応じて行われる、請求項14に記載の方法。 - 前記プロセッシングコアは、順方向の進行を保証した前記アトミックメモリトランザクションを実行する、請求項11に記載の方法。
- 前記1つ以上のアトミック性基準の組は、
前記シーケンス内のどの命令も、前記シーケンス外の命令において実行を継続するように前記プロセッシングコアに命令しないという基準と、
前記シーケンス内のどの命令も、汎用レジスタ以外の前記プロセッシングコアのレジスタにアクセスするように前記プロセッシングコアに命令しないという基準と、
前記シーケンスの各命令が事前に指定された制限長形式で表現されているという基準と、
前記命令シーケンスの命令の数が、所与の最大制限値を超えないという基準と、
のうち1つ以上の基準を含む、請求項11に記載の方法。 - コンピュータシステムで実行可能なプログラムにより操作されるデータ構造を備えるコンピュータ可読記憶媒体であって、前記プログラムは、プロセスの一部を実行するように前記データ構造上で動作して、前記データ構造により記述される回路を含む集積回路を製造し、前記データ構造に記述される前記回路は、
マルチプロセッシングコアシステム内にプロセッシングコアを含み、前記プロセッシングコアは、
指定された命令シーケンスが、前記シーケンスにおけるどの命令も、共有メモリにアクセスするように前記プロセッシングコアに命令しないことを含む1つ以上のアトミック性基準の組を満たすことを検証するように構成されており、
前記マルチプロセッシングコアシステムは、前記検証されたシーケンスを、アトミックメモリトランザクションとして実行するように構成されている、コンピュータ可読記憶媒体。 - 前記検証されたシーケンスをアトミックメモリトランザクションとして実行することは、
ソースキャッシュラインからのメモリデータを、ターゲットレジスタに記憶することと、
前記命令シーケンスを実行して、前記ターゲットレジスタに記憶された前記メモリデータを変更することと、
前記ターゲットレジスタからの値を、前記ソースキャッシュラインに記憶することと、を含む、請求項18に記載のコンピュータ可読記憶媒体。 - 前記記憶媒体は、HDL、VerilogまたはGDSIIデータのうち少なくとも1つを記憶する、請求項18に記載のコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/961,819 | 2010-12-07 | ||
US12/961,819 US8788794B2 (en) | 2010-12-07 | 2010-12-07 | Programmable atomic memory using stored atomic procedures |
PCT/US2011/063772 WO2012078775A1 (en) | 2010-12-07 | 2011-12-07 | Programmable atomic memory using stored atomic procedures |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2013546088A true JP2013546088A (ja) | 2013-12-26 |
JP2013546088A5 JP2013546088A5 (ja) | 2015-01-29 |
JP5752261B2 JP5752261B2 (ja) | 2015-07-22 |
Family
ID=45496251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013543316A Active JP5752261B2 (ja) | 2010-12-07 | 2011-12-07 | 記憶されたアトミック手順を使用するプログラム可能なアトミックメモリ |
Country Status (6)
Country | Link |
---|---|
US (1) | US8788794B2 (ja) |
EP (2) | EP3021215B1 (ja) |
JP (1) | JP5752261B2 (ja) |
KR (1) | KR101968711B1 (ja) |
CN (1) | CN103299272B (ja) |
WO (1) | WO2012078775A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019533239A (ja) * | 2016-09-28 | 2019-11-14 | エイアールエム リミテッド | アトミックセットのデータアクセスを提供するための装置および方法 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120254589A1 (en) * | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | System, apparatus, and method for aligning registers |
US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
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 |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
US9430166B2 (en) | 2012-08-10 | 2016-08-30 | International Business Machines Corporation | Interaction of transactional storage accesses with other atomic semantics |
US9129071B2 (en) * | 2012-10-24 | 2015-09-08 | Texas Instruments Incorporated | Coherence controller slot architecture allowing zero latency write commit |
US9547594B2 (en) | 2013-03-15 | 2017-01-17 | Intel Corporation | Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage |
US9830210B2 (en) * | 2013-03-15 | 2017-11-28 | Nvidia Corporation | CPU-to-GPU and GPU-to-GPU atomics |
JP6221500B2 (ja) * | 2013-08-19 | 2017-11-01 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US9824039B2 (en) * | 2013-09-09 | 2017-11-21 | International Business Machines Corporation | Signal interrupts in a transactional memory system |
US9552205B2 (en) * | 2013-09-27 | 2017-01-24 | Intel Corporation | Vector indexed memory access plus arithmetic and/or logical operation processors, methods, systems, and instructions |
US9501243B2 (en) * | 2013-10-03 | 2016-11-22 | Cavium, Inc. | Method and apparatus for supporting wide operations using atomic sequences |
US20150378939A1 (en) * | 2014-06-27 | 2015-12-31 | Analog Devices, Inc. | Memory mechanism for providing semaphore functionality in multi-master processing environment |
KR102346629B1 (ko) | 2014-12-05 | 2022-01-03 | 삼성전자주식회사 | 메모리 접근 제어 방법 및 장치 |
US10528345B2 (en) * | 2015-03-27 | 2020-01-07 | Intel Corporation | Instructions and logic to provide atomic range modification operations |
US9858074B2 (en) * | 2015-06-26 | 2018-01-02 | International Business Machines Corporation | Non-default instruction handling within transaction |
US10019264B2 (en) * | 2016-02-24 | 2018-07-10 | Intel Corporation | System and method for contextual vectorization of instructions at runtime |
FR3048526B1 (fr) * | 2016-03-07 | 2023-01-06 | Kalray | Instruction atomique de portee limitee a un niveau de cache intermediaire |
GB2551523B (en) * | 2016-06-20 | 2019-07-03 | Imagination Tech Ltd | Livelock recovery circuit |
US10748637B2 (en) | 2018-07-26 | 2020-08-18 | International Business Machines Corporation | System and method for testing processor errors |
US11467962B2 (en) * | 2020-09-02 | 2022-10-11 | SiFive, Inc. | Method for executing atomic memory operations when contested |
US11693690B2 (en) | 2020-10-20 | 2023-07-04 | Micron Technology, Inc. | Method of completing a programmable atomic transaction by ensuring memory locks are cleared |
US11403023B2 (en) * | 2020-10-20 | 2022-08-02 | Micron Technology, Inc. | Method of organizing a programmable atomic unit instruction memory |
US11409539B2 (en) * | 2020-10-20 | 2022-08-09 | Micron Technology, Inc. | On-demand programmable atomic kernel loading |
US11740929B2 (en) | 2020-10-20 | 2023-08-29 | Micron Technology, Inc. | Registering a custom atomic operation with the operating system |
US11436187B2 (en) | 2020-10-20 | 2022-09-06 | Micron Technology, Inc. | Method of notifying a process or programmable atomic operation traps |
US11600332B2 (en) | 2020-10-20 | 2023-03-07 | Micron Technology, Inc. | Programmable atomic operator resource locking |
WO2023205387A1 (en) * | 2022-04-21 | 2023-10-26 | Microchip Technology Incorporated | Atomic instruction set and architecture with bus arbitration locking |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09146838A (ja) * | 1995-11-21 | 1997-06-06 | Matsushita Electric Ind Co Ltd | キャッシュ制御方法及びキャッシュ制御装置 |
US20030037223A1 (en) * | 2001-08-20 | 2003-02-20 | Steely Simon C. | Apparatus and method for ownership load locked misses for atomic lock acquisition in a multiprocessor computer system |
US20070050560A1 (en) * | 2005-08-23 | 2007-03-01 | Advanced Micro Devices, Inc. | Augmented instruction set for proactive synchronization within a computer system |
WO2008155827A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | キャッシュ制御装置及び制御方法 |
WO2010014200A1 (en) * | 2008-07-28 | 2010-02-04 | Advanced Micro Devices, Inc. | Virtualizable advanced synchronization facility |
WO2011106333A2 (en) * | 2010-02-24 | 2011-09-01 | Advanced Micro Devices, Inc. | Automatic suspend and resume in hardware transactional memory |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4847754A (en) | 1985-10-15 | 1989-07-11 | International Business Machines Corporation | Extended atomic operations |
US5218712A (en) | 1987-07-01 | 1993-06-08 | Digital Equipment Corporation | Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption |
US5175829A (en) | 1988-10-25 | 1992-12-29 | Hewlett-Packard Company | Method and apparatus for bus lock during atomic computer operations |
US5428761A (en) | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
US5701501A (en) | 1993-02-26 | 1997-12-23 | Intel Corporation | Apparatus and method for executing an atomic instruction |
US6170038B1 (en) | 1997-10-23 | 2001-01-02 | Intel Corporation | Trace based instruction caching |
US6430657B1 (en) | 1998-10-12 | 2002-08-06 | Institute For The Development Of Emerging Architecture L.L.C. | Computer system that provides atomicity by using a tlb to indicate whether an exportable instruction should be executed using cache coherency or by exporting the exportable instruction, and emulates instructions specifying a bus lock |
US6370625B1 (en) | 1999-12-29 | 2002-04-09 | Intel Corporation | Method and apparatus for lock synchronization in a microprocessor system |
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 |
US7103528B2 (en) | 2002-09-19 | 2006-09-05 | Lsi Logic Corporation | Emulated atomic instruction sequences in a multiprocessor system |
US7418577B2 (en) | 2003-02-13 | 2008-08-26 | Sun Microsystems, Inc. | Fail instruction to support transactional program execution |
US8402224B2 (en) * | 2005-09-20 | 2013-03-19 | Vmware, Inc. | Thread-shared software code caches |
US20070186056A1 (en) | 2006-02-07 | 2007-08-09 | Bratin Saha | Hardware acceleration for a software transactional memory system |
US8095741B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory computing system with support for chained transactions |
US8321637B2 (en) * | 2007-05-14 | 2012-11-27 | International Business Machines Corporation | Computing system with optimized support for transactional memory |
US7945741B2 (en) | 2007-07-09 | 2011-05-17 | International Business Machines Corporation | Reservation required transactions |
US8065490B2 (en) * | 2007-09-28 | 2011-11-22 | Intel Corporation | Hardware acceleration of strongly atomic software transactional memory |
US8533436B2 (en) | 2009-06-26 | 2013-09-10 | Intel Corporation | Adaptively handling remote atomic execution based upon contention prediction |
US8489864B2 (en) | 2009-06-26 | 2013-07-16 | Microsoft Corporation | Performing escape actions in transactions |
US8392661B1 (en) * | 2009-09-21 | 2013-03-05 | Tilera Corporation | Managing cache coherence |
US8239635B2 (en) * | 2009-09-30 | 2012-08-07 | Oracle America, Inc. | System and method for performing visible and semi-visible read operations in a software transactional memory |
US9626187B2 (en) | 2010-05-27 | 2017-04-18 | International Business Machines Corporation | Transactional memory system supporting unbroken suspended execution |
-
2010
- 2010-12-07 US US12/961,819 patent/US8788794B2/en active Active
-
2011
- 2011-12-07 KR KR1020137015787A patent/KR101968711B1/ko active IP Right Grant
- 2011-12-07 WO PCT/US2011/063772 patent/WO2012078775A1/en active Application Filing
- 2011-12-07 EP EP15193965.9A patent/EP3021215B1/en active Active
- 2011-12-07 CN CN201180064250.6A patent/CN103299272B/zh active Active
- 2011-12-07 JP JP2013543316A patent/JP5752261B2/ja active Active
- 2011-12-07 EP EP11808979.6A patent/EP2649518B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09146838A (ja) * | 1995-11-21 | 1997-06-06 | Matsushita Electric Ind Co Ltd | キャッシュ制御方法及びキャッシュ制御装置 |
US20030037223A1 (en) * | 2001-08-20 | 2003-02-20 | Steely Simon C. | Apparatus and method for ownership load locked misses for atomic lock acquisition in a multiprocessor computer system |
US20070050560A1 (en) * | 2005-08-23 | 2007-03-01 | Advanced Micro Devices, Inc. | Augmented instruction set for proactive synchronization within a computer system |
WO2008155827A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | キャッシュ制御装置及び制御方法 |
WO2010014200A1 (en) * | 2008-07-28 | 2010-02-04 | Advanced Micro Devices, Inc. | Virtualizable advanced synchronization facility |
WO2011106333A2 (en) * | 2010-02-24 | 2011-09-01 | Advanced Micro Devices, Inc. | Automatic suspend and resume in hardware transactional memory |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019533239A (ja) * | 2016-09-28 | 2019-11-14 | エイアールエム リミテッド | アトミックセットのデータアクセスを提供するための装置および方法 |
US11182294B2 (en) | 2016-09-28 | 2021-11-23 | Arm Limited | Apparatus and method for providing an atomic set of data accesses |
JP7022120B2 (ja) | 2016-09-28 | 2022-02-17 | アーム・リミテッド | アトミックセットのデータアクセスを提供するための装置および方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20130127473A (ko) | 2013-11-22 |
US8788794B2 (en) | 2014-07-22 |
CN103299272B (zh) | 2016-04-27 |
WO2012078775A1 (en) | 2012-06-14 |
KR101968711B1 (ko) | 2019-04-12 |
US20120144119A1 (en) | 2012-06-07 |
JP5752261B2 (ja) | 2015-07-22 |
EP3021215A1 (en) | 2016-05-18 |
EP3021215B1 (en) | 2018-07-11 |
CN103299272A (zh) | 2013-09-11 |
EP2649518A1 (en) | 2013-10-16 |
EP2649518B1 (en) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5752261B2 (ja) | 記憶されたアトミック手順を使用するプログラム可能なアトミックメモリ | |
US9122476B2 (en) | Programmable atomic memory using hardware validation agent | |
US8793471B2 (en) | Atomic program verification | |
TWI476595B (zh) | 用於交易式記憶體事件處置之硬體中使用者處置器的登錄 | |
US8407455B2 (en) | Coexistence of advanced hardware synchronization and global locks | |
JP5404574B2 (ja) | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション | |
TWI525539B (zh) | 用於同步化simd向量的方法,處理器,及系統 | |
Hoeflinger | Extending OpenMP to clusters | |
RU2501071C2 (ru) | Механизм запроса поздней блокировки для пропуска аппаратной блокировки (hle) | |
EP2641171B1 (en) | Preventing unintended loss of transactional data in hardware transactional memory systems | |
JP6272942B2 (ja) | トランザクショナル電力管理を実行するためのハードウェア装置及び方法 | |
JP2024502279A (ja) | オフロードされた命令とオフロードされていない命令との間のメモリ順序付けの保持 | |
JP5737290B2 (ja) | データ処理装置および方法、そのプロセッサユニット | |
US11960922B2 (en) | System, apparatus and method for user space object coherency in a processor | |
Pirkelbauer et al. | A portable lock-free bounded queue | |
JP7483950B2 (ja) | バイナリ変換を実行するためのシステム及び方法 | |
Marino et al. | DRF x: An Understandable, High Performance, and Flexible Memory Model for Concurrent Languages | |
Yuan et al. | Making lock-free data structures verifiable with artificial transactions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130808 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141205 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141205 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20141205 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20150113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150120 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150323 |
|
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: 20150428 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150519 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5752261 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 |
|
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 |