JP2009501366A - スレッドレベルの投機実行を拡張するためのプリミティブ - Google Patents
スレッドレベルの投機実行を拡張するためのプリミティブ Download PDFInfo
- Publication number
- JP2009501366A JP2009501366A JP2008518482A JP2008518482A JP2009501366A JP 2009501366 A JP2009501366 A JP 2009501366A JP 2008518482 A JP2008518482 A JP 2008518482A JP 2008518482 A JP2008518482 A JP 2008518482A JP 2009501366 A JP2009501366 A JP 2009501366A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- thread
- instruction
- block
- atomic
- 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
- 238000012544 monitoring process Methods 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims description 83
- 238000012545 processing Methods 0.000 claims description 47
- 239000000872 buffer Substances 0.000 claims description 30
- 230000007246 mechanism Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 14
- 230000003139 buffering effect Effects 0.000 claims description 10
- 238000005192 partition Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000002085 persistent effect Effects 0.000 claims 3
- 238000013459 approach Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 239000012536 storage buffer Substances 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 2
- 101100221836 Arabidopsis thaliana CPL3 gene Proteins 0.000 description 1
- 101100065702 Arabidopsis thaliana ETC3 gene Proteins 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002459 sustained effect Effects 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
-
- 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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 or 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 or 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 or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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 or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Memory System (AREA)
Abstract
Description
として表す)及びトランザクション・スタータス・レジスタ952(本明細書及び特許請求の範囲では「TSR」として表す)を含む。トランザクション制御レジスタは、AMT106及びAUT108に対する更新を制御する。トランザクション・ステータス・レジスタはAMT及びAUTの状態を通知することができ、トランザクション障害を示すこともできる。
AMTのリセットの強制
AMTの直接更新
メモリ書き込みの直接バッファリング(AUTへの更新)
少なくとも1つの実施例の場合、複数の挙動を単一ビットによって示すことができる。例えば、トランザクション制御レジスタ951における単一ビットは、AUT及びAMTをリセットすべきである旨を表すことができる。
トランザクション障害の理由(障害が生じた場合) このフィールドの値はオーバフロー、衝突等を含み得る。
トラップがトランザクション障害を引き起こしたか否か
特定の一実施例の場合、トランザクション・ステータス・レジスタ952(「TSR」)は、AMT、AUT及び現在のトランザクションの一般的な状態についてのステータス情報を、何れかの特定の時点においてフィールドに記憶されている値に応じて提供し得るフィールドを含む読み出し専用レジスタである。当然、その他の実施例は、より多くの、又はより少ないビットを利用することができる。トランザクション・ステータス・レジスタ952の実施例の場合、フィールドは以下のように定義することができる。特定のビット番号は例証の目的でのみ記載しており、限定的に解されないものとする。任意の容量のレジスタにおいて、後述のビット・フィールドを実現する実施例の場合、以下に記載されていない更なるフィールドは「予約済」であることがあり得る。前述の予約済ビットは、書き込み無視、読み出しゼロとして実現することができる。
図7に示すマルチシーケンサ・システム900のSMT実施例の場合、「シーケンサ」の語は、スレッド・コンテキストの少なくとも次命令ポインタ及びフェッチ・ロジック320、及び、そのスレッド・コンテキストの関連したアーキテクチャ状態の少なくとも一部を包含する。SMTシステム900のシーケンサは対称でなくてよい。例えば、同じ物理コア904の2つのSMTシーケンサは、それぞれが維持するアーキテクチャ状態情報の量において異なり得る。
Claims (38)
- 装置であって、
複数のスレッドを同時に実行するための複数のスレッド・ユニットと、
前記複数のスレッドのうちの特定の一スレッドのアトミック命令ブロックの実行中に受けるメモリ書き込み命令のデータを記憶するためのメモリ・バッファ記憶領域とを備え、
前記メモリ・バッファ記憶領域は、前記アトミック命令ブロックそれぞれの確定境界において、厳密なアーキテクチャ状態が定義されるような持続状態の一部である装置。 - 請求項1記載の装置であって、
前記特定のスレッドにおけるユーザレベル・プログラミング命令に応じて内容を更新することができる制御記憶領域を更に備える装置。 - 請求項2記載の装置であって、
前記メモリ・アドレス記憶領域に前記メモリ書き込みデータを記憶するか否かを前記制御記憶領域の前記内容が制御する装置。 - 請求項2記載の装置であって、
前記制御記憶領域は、状態値を保持するための1つ又は複数のフィールドを含むレジスタであり、
前記状態値は、(a)前記メモリ・バッファ記憶領域に前記メモリ書き込みデータを記憶するか否か、(b)前記メモリ・バッファ記憶領域をリセットするか否か、及び(c)前記メモリ・バッファ記憶領域をバイパスし、代わりにメモリに直接書き込むか否か
の状態の1つ又は複数を示す装置。 - 請求項1記載の装置であって、
前記アトミック・ブロックの実行中に受けるメモリ読み出し命令のアドレスを維持するためのメモリ・アドレス記憶領域を更に備える装置。 - 請求項1記載の装置であって、
前記メモリ・バッファ記憶領域からメモリにアトミック更新を行うためのロジックを更に備える装置。 - 請求項6記載の装置であって、アトミック更新を行うための前記ロジックは更に、
前記アトミック・ブロックが実行を首尾良く完了した場合にのみアトミック更新を行う装置。 - 請求項1記載の装置であって、
首尾良い実行を前記アトミック・ブロックができなかったか否かを内容が反映するユーザ可視ステータス記憶領域を更に備える装置。 - 方法であって、
投機的スレッドにおけるトランザクション命令ブロックのうちの選択された命令をプロセッサによる実行中に実行する工程と、
前記選択された命令の実行境界において前記プロセッサの厳密なアーキテクチャ状態を維持する工程とを備える方法。 - 請求項9記載の方法であって、
前記トランザクション・ブロックの厳密なアーキテクチャ状態を維持しながらトラップ又は例外を処理する工程を更に備える方法。 - 請求項9記載の方法であって、
前記トランザクション・ブロックの厳密なアーキテクチャ状態を維持しながらトランザクション・ブロック命令の単一ステップを行う工程を更に備える方法。 - 方法であって、
アトミック・ブロックの実行中に局所メモリ書き込みをバッファリングする工程であって、前記バッファリングが、第1のユーザレベル・プログラミング命令に応じて行われる工程と、
前記アトミック・ブロックの実行中の障害を求めて監視する工程と、
前記アトミック・ブロックの実行中に非障害状態としてトラップ又は例外を行う工程と、前記トラップ又は例外の処理中に持続状態として前記バッファリングされた局所メモリ書き込みを維持する工程と、
前記例外又は割り込みを処理した後に前記アトミック・ブロックの実行を再開する工程と、
前記障害が生じたか否かに基づいて、前記バッファリングされたメモリ書き込みのアトミック・メモリ更新を選択的に行う工程とを備える方法。 - 請求項12記載の方法であって、
割り込みのトリガ・シナリオ及びハンドラ・アドレスを示すユーザレベル・プログラミング命令に応じて前記監視が行われる方法。 - 請求項13記載の方法であって、
前記トリガ・シナリオは、1つ又は複数のステータス・ビットの値における変更を更に備える方法。 - 請求項14記載の方法であって、前記1つ又は複数のステータス・ビットは、前記ユーザレベル・プログラミング命令に関連したマスクによって規定される方法。
- 方法であって、
複数の協調型スレッドを同時に実行する工程と、
前記協調型スレッドのうちの第1のスレッド以外の全ての実行を、命令ブロックをアトミックに前記第1のスレッドが実行することを可能にするために停止する工程であって、ハードウェア機構を呼び出すための前記第1のスレッドの動作によってトリガされる工程と、
前記命令ブロックのアトミック実行を前記第1のスレッドが完了した後に他の協調型スレッドを再開する工程とを備える方法。 - 請求項16記載の方法であって、
ハードウェア機構を呼び出すための第1のスレッドの前記動作は、所定の値を特定のメモリ位置に書き込む工程を更に備える方法。 - 請求項17記載の方法であって、
前記他の協調型スレッドによる、前記特定のメモリ位置のポーリングなしで前記停止する工程が達成されるように前記第1のスレッドの前記動作の結果として生成される割り込みによって更にトリガされる方法。 - 請求項16記載の方法であって、
トランザクション実行をサポートするためのハードウェアを含むマルチスレッド・プロセッサによって行われる方法。 - 請求項19記載の方法であって、
前記ハードウェアは、アトミック・ブロックのメモリ書き込みをバッファリングするための記憶領域を含む方法。 - 請求項19記載の方法であって、
前記ハードウェアは、アトミック・ブロックのメモリ読み出しのアドレスを維持するための記憶領域を含む方法。 - 請求項1記載の装置であって、
前記スレッド・ユニットそれぞれは、ユーザレベル・トランザクション実行命令を受け取り、デコードするためのデコード・ロジックを更に備える装置。 - 請求項22記載の装置であって、
前記デコード・ロジックは、ユーザ・レベルのアトミック区分命令を更に受け取り、デコードする装置。 - 請求項22記載の装置であって、
前記デコード・ロジックは、トランザクション・ステータスを読み出す旨のユーザ・レベル命令を更に受け取り、デコードする装置。 - 請求項22記載の装置であって、
前記デコード・ロジックは、トランザクション実行中のトラップをイネーブルする旨のユーザ・レベル命令を更に受け取り、デコードする装置。 - 請求項22記載の装置であって、
前記デコード・ロジックは、アトミック・メモリ更新を行う旨のユーザ・レベル命令を更に受け取り、デコードする装置。 - 請求項5記載の装置であって、
前記アトミック・ブロックの特定のスレッドの実行中に前記メモリ読み出し命令の前記アドレスに前記複数のスレッドのうちの別のスレッドが書き込んだか否かを判定するためのロジックを更に備える装置。 - 請求項5記載の装置であって、
第2の記憶領域にメモリ読み出しアドレスを記憶するか否かを制御するためのユーザ可視機構を更に備える装置。 - 請求項28記載の装置であって、前記ユーザ可視機構は、
ユーザレベル・プログラミング命令に応じて内容を更新することができる記憶領域を更に備える装置。 - 請求項1記載の装置であって、前記複数のスレッド・ユニットは、
複数のプロセッサ・コアを更に備える装置。 - 請求項1記載の装置であって、前記複数のスレッド・ユニットは、
単一のプロセッサ・コアに関連した複数の論理プロセッサを更に備える装置。 - 請求項16記載の方法であって、
前記停止する工程は、ユーザレベル・ソフトウェア命令に応じて起動される方法。 - システムであって、
複数のスレッドのソフトウェア命令を記憶するためのメモリと、
前記複数のスレッドを同時に実行するための複数のスレッド・ユニットと、
前記複数のスレッドのうちの特定のスレッドのアトミック命令ブロックの実行中に受けるメモリ書き込み命令のデータを記憶するためのメモリ・バッファ記憶領域とを備え、
前記メモリ・バッファ記憶領域は、前記アトミック・ブロックの各命令の確定境界において、厳密なアーキテクチャ状態が定義されるような持続状態の一部であるシステム。 - 請求項33記載のシステムであって、
前記メモリがDRAMであるシステム。 - 請求項33記載のシステムであって、
前記アトミック・ブロックの実行中に受けるメモリ読み出し命令のアドレスを維持するためのメモリ・アドレス記憶領域を更に備えるシステム。 - 請求項33記載のシステムであって、
特定のスレッドにおけるユーザレベル・プログラミング命令に応じて内容を更新することができる制御記憶領域を更に備えるシステム。 - 請求項33記載のシステムであって、
前記制御記憶領域の前記内容は、前記アトミック・ブロックの実行中に非障害状態としてトラップを行うことができるか否かを制御するシステム。 - 請求項33記載のシステムであって、
前記スレッド・ユニットそれぞれは、ユーザレベル・トランザクション実行命令を受け取り、デコードするためのデコード・ロジックを更に備えるシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/165,639 US7882339B2 (en) | 2005-06-23 | 2005-06-23 | Primitives to enhance thread-level speculation |
US11/165,639 | 2005-06-23 | ||
PCT/US2006/024727 WO2007002550A2 (en) | 2005-06-23 | 2006-06-23 | Primitives to enhance thread-level speculation |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011177640A Division JP5479416B2 (ja) | 2005-06-23 | 2011-08-15 | スレッドレベルの投機実行を拡張するためのプリミティブ |
JP2013083679A Division JP2013168168A (ja) | 2005-06-23 | 2013-04-12 | スレッドレベルの投機実行を拡張するためのプリミティブ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009501366A true JP2009501366A (ja) | 2009-01-15 |
JP5415069B2 JP5415069B2 (ja) | 2014-02-12 |
Family
ID=37433515
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008518482A Expired - Fee Related JP5415069B2 (ja) | 2005-06-23 | 2006-06-23 | スレッドレベルの投機実行を拡張するためのプリミティブ |
JP2011177640A Expired - Fee Related JP5479416B2 (ja) | 2005-06-23 | 2011-08-15 | スレッドレベルの投機実行を拡張するためのプリミティブ |
JP2013083679A Pending JP2013168168A (ja) | 2005-06-23 | 2013-04-12 | スレッドレベルの投機実行を拡張するためのプリミティブ |
JP2015010769A Pending JP2015111439A (ja) | 2005-06-23 | 2015-01-23 | スレッドレベルの投機実行を拡張するためのプリミティブ |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011177640A Expired - Fee Related JP5479416B2 (ja) | 2005-06-23 | 2011-08-15 | スレッドレベルの投機実行を拡張するためのプリミティブ |
JP2013083679A Pending JP2013168168A (ja) | 2005-06-23 | 2013-04-12 | スレッドレベルの投機実行を拡張するためのプリミティブ |
JP2015010769A Pending JP2015111439A (ja) | 2005-06-23 | 2015-01-23 | スレッドレベルの投機実行を拡張するためのプリミティブ |
Country Status (6)
Country | Link |
---|---|
US (4) | US7882339B2 (ja) |
JP (4) | JP5415069B2 (ja) |
CN (2) | CN101203831B (ja) |
DE (2) | DE112006001698T5 (ja) |
GB (2) | GB2441665B (ja) |
WO (1) | WO2007002550A2 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011227934A (ja) * | 2005-06-23 | 2011-11-10 | Intel Corp | スレッドレベルの投機実行を拡張するためのプリミティブ |
JP2013520753A (ja) * | 2010-02-24 | 2013-06-06 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | ハードウエアトランザクショナルメモリにおける自動サスペンド及び再開 |
JP2013537334A (ja) * | 2010-09-25 | 2013-09-30 | インテル コーポレイション | ハードウェア制限に基づく調整可能なトランザクション・サイズを利用してコードを動的に最適化する装置、方法およびシステム |
JP2014182836A (ja) * | 2013-03-15 | 2014-09-29 | Intel Corp | 永続記憶装置へのライトバックを必要とする非トランザクションコード領域の先頭および終端を指し示す命令 |
KR101460985B1 (ko) | 2010-06-29 | 2014-11-13 | 인텔 코포레이션 | 스레드 레벨 추론에서의 동적 데이터 동기화 |
JP5673666B2 (ja) * | 2010-02-23 | 2015-02-18 | 富士通株式会社 | マルチコアプロセッサシステム、割込プログラム、および割込方法 |
JP2015097112A (ja) * | 2015-01-05 | 2015-05-21 | 富士通株式会社 | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム |
JP2017535853A (ja) * | 2014-10-20 | 2017-11-30 | アビニシオ テクノロジー エルエルシー | 計算の非決定性の下でのリカバリ及び耐障害 |
US11188336B2 (en) | 2015-12-28 | 2021-11-30 | Qualcomm Incorporated | Replay of partially executed instruction blocks in a processor-based system employing a block-atomic execution model |
Families Citing this family (115)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8607241B2 (en) | 2004-06-30 | 2013-12-10 | Intel Corporation | Compare and exchange operation using sleep-wakeup mechanism |
US7865894B1 (en) * | 2005-12-19 | 2011-01-04 | Nvidia Corporation | Distributing processing tasks within a processor |
US8683143B2 (en) * | 2005-12-30 | 2014-03-25 | Intel Corporation | Unbounded transactional memory systems |
US7350027B2 (en) * | 2006-02-10 | 2008-03-25 | International Business Machines Corporation | Architectural support for thread level speculative execution |
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 |
US8307346B2 (en) * | 2006-06-09 | 2012-11-06 | Oracle America, Inc. | Atomic groups for debugging |
US7620850B2 (en) * | 2006-06-09 | 2009-11-17 | Sun Microsystems, Inc. | Breakpoints in a transactional memory-based representation of code |
US7809926B2 (en) * | 2006-11-03 | 2010-10-05 | Cornell Research Foundation, Inc. | Systems and methods for reconfiguring on-chip multiprocessors |
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 |
US7681015B2 (en) * | 2007-01-30 | 2010-03-16 | Nema Labs Ab | Generating and comparing memory access ranges for speculative throughput computing |
US20080222616A1 (en) * | 2007-03-05 | 2008-09-11 | Innaworks Development Limited | Software translation |
US8117403B2 (en) * | 2007-05-14 | 2012-02-14 | International Business Machines Corporation | Transactional memory system which employs thread assists using address history tables |
US9009452B2 (en) * | 2007-05-14 | 2015-04-14 | International Business Machines Corporation | Computing system with transactional memory using millicode assists |
US8095750B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory system with fast processing of common conflicts |
US8095741B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory computing system with support for chained transactions |
US20090133022A1 (en) * | 2007-11-15 | 2009-05-21 | Karim Faraydon O | Multiprocessing apparatus, system and method |
US8407425B2 (en) | 2007-12-28 | 2013-03-26 | Intel Corporation | Obscuring memory access patterns in conjunction with deadlock detection or avoidance |
US9081687B2 (en) * | 2007-12-28 | 2015-07-14 | Intel Corporation | Method and apparatus for MONITOR and MWAIT in a distributed cache architecture |
US7984273B2 (en) | 2007-12-31 | 2011-07-19 | Intel Corporation | System and method for using a mask register to track progress of gathering elements from memory |
US10387151B2 (en) | 2007-12-31 | 2019-08-20 | Intel Corporation | Processor and method for tracking progress of gathering/scattering data element pairs in different cache memory banks |
US8447962B2 (en) * | 2009-12-22 | 2013-05-21 | Intel Corporation | Gathering and scattering multiple data elements |
US20090177871A1 (en) * | 2008-01-08 | 2009-07-09 | Von Praun Christoph | Architectural support for software thread-level speculation |
US9128750B1 (en) * | 2008-03-03 | 2015-09-08 | Parakinetics Inc. | System and method for supporting multi-threaded transactions |
US8239843B2 (en) * | 2008-03-11 | 2012-08-07 | Oracle America, Inc. | Value predictable variable scoping for speculative automatic parallelization with transactional memory |
US9189233B2 (en) | 2008-11-24 | 2015-11-17 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US8909902B2 (en) | 2008-11-24 | 2014-12-09 | Intel Corporation | Systems, methods, and apparatuses to decompose a sequential program into multiple threads, execute said threads, and reconstruct the sequential execution |
US9672019B2 (en) | 2008-11-24 | 2017-06-06 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US10621092B2 (en) | 2008-11-24 | 2020-04-14 | Intel Corporation | Merging level cache and data cache units having indicator bits related to speculative execution |
US9785462B2 (en) * | 2008-12-30 | 2017-10-10 | Intel Corporation | Registering a user-handler in hardware for transactional memory event handling |
US8131984B2 (en) * | 2009-02-12 | 2012-03-06 | Via Technologies, Inc. | Pipelined microprocessor with fast conditional branch instructions based on static serializing instruction state |
US7979675B2 (en) * | 2009-02-12 | 2011-07-12 | Via Technologies, Inc. | Pipelined microprocessor with fast non-selective correct conditional branch instruction resolution |
US8281185B2 (en) * | 2009-06-30 | 2012-10-02 | Oracle America, Inc. | Advice-based feedback for transactional execution |
US8566524B2 (en) | 2009-08-31 | 2013-10-22 | International Business Machines Corporation | Transactional memory system with efficient cache support |
US8255626B2 (en) * | 2009-12-09 | 2012-08-28 | International Business Machines Corporation | Atomic commit predicated on consistency of watches |
US8316194B2 (en) * | 2009-12-15 | 2012-11-20 | Intel Corporation | Mechanisms to accelerate transactions using buffered stores |
US8095824B2 (en) | 2009-12-15 | 2012-01-10 | Intel Corporation | Performing mode switching in an unbounded transactional memory (UTM) system |
US8464035B2 (en) | 2009-12-18 | 2013-06-11 | Intel Corporation | Instruction for enabling a processor wait state |
US10175990B2 (en) | 2009-12-22 | 2019-01-08 | Intel Corporation | Gathering and scattering multiple data elements |
CN104794006A (zh) * | 2010-02-23 | 2015-07-22 | 富士通株式会社 | 多核处理器系统、中断程序、以及中断方法 |
US9626187B2 (en) | 2010-05-27 | 2017-04-18 | International Business Machines Corporation | Transactional memory system supporting unbroken suspended execution |
CN101882091A (zh) * | 2010-06-22 | 2010-11-10 | 北京北大众志微系统科技有限责任公司 | 线程局部存储实现方法和装置 |
US8407389B2 (en) * | 2010-07-20 | 2013-03-26 | International Business Machines Corporation | Atomic operations with page migration in PCIe |
US9052890B2 (en) * | 2010-09-25 | 2015-06-09 | Intel Corporation | Execute at commit state update instructions, apparatus, methods, and systems |
US8424015B2 (en) * | 2010-09-30 | 2013-04-16 | International Business Machines Corporation | Transactional memory preemption mechanism |
US8713259B2 (en) * | 2010-11-17 | 2014-04-29 | Advanced Micro Devices, Inc. | Method and apparatus for reacquiring lines in a cache |
US8904109B2 (en) | 2011-01-28 | 2014-12-02 | Freescale Semiconductor, Inc. | Selective cache access control apparatus and method thereof |
GB2489000B (en) * | 2011-03-14 | 2019-09-11 | Advanced Risc Mach Ltd | Diagnosing code using single step execution |
US9043796B2 (en) * | 2011-04-07 | 2015-05-26 | Microsoft Technology Licensing, Llc | Asynchronous callback driven messaging request completion notification |
US8756405B2 (en) * | 2011-05-09 | 2014-06-17 | Freescale Semiconductor, Inc. | Selective routing of local memory accesses and device thereof |
US9417855B2 (en) | 2011-09-30 | 2016-08-16 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
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 |
US8892946B2 (en) | 2011-12-15 | 2014-11-18 | International Business Machines Corporation | Verifying speculative multithreading in an application |
WO2013115818A1 (en) * | 2012-02-02 | 2013-08-08 | Intel Corporation | A method, apparatus, and system for transactional speculation control instructions |
US9626333B2 (en) | 2012-06-02 | 2017-04-18 | Intel Corporation | Scatter using index array and finite state machine |
US8972697B2 (en) | 2012-06-02 | 2015-03-03 | Intel Corporation | Gather using index array and finite state machine |
US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
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 |
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 |
US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
CN105786665B (zh) * | 2012-06-29 | 2019-11-05 | 英特尔公司 | 用于测试事务性执行状态的系统 |
US9430166B2 (en) * | 2012-08-10 | 2016-08-30 | International Business Machines Corporation | Interaction of transactional storage accesses with other atomic semantics |
US9361103B2 (en) * | 2012-11-02 | 2016-06-07 | Advanced Micro Devices, Inc. | Store replay policy |
WO2014098845A1 (en) | 2012-12-19 | 2014-06-26 | Intel Corporation | Vector mask driven clock gating for power efficiency of a processor |
US9460145B2 (en) | 2013-03-26 | 2016-10-04 | International Business Machines Corporation | Transactional lock elision with delayed lock checking |
US9891936B2 (en) | 2013-09-27 | 2018-02-13 | Intel Corporation | Method and apparatus for page-level monitoring |
US9311260B2 (en) * | 2013-12-09 | 2016-04-12 | Jack Mason | Context preservation during thread level speculative execution |
US9749548B2 (en) | 2015-01-22 | 2017-08-29 | Google Inc. | Virtual linebuffers for image signal processors |
GB2535213B (en) | 2015-02-13 | 2021-10-06 | Advanced Risc Mach Ltd | An apparatus and method for controlling debugging of program instructions including a transaction |
GB2535212B (en) | 2015-02-13 | 2021-08-04 | Advanced Risc Mach Ltd | An apparatus and method for controlling debugging of program instructions including a transaction |
US10291813B2 (en) | 2015-04-23 | 2019-05-14 | Google Llc | Sheet generator for image processor |
US9772852B2 (en) | 2015-04-23 | 2017-09-26 | Google Inc. | Energy efficient processor core architecture for image processor |
US9756268B2 (en) | 2015-04-23 | 2017-09-05 | Google Inc. | Line buffer unit for image processor |
US9785423B2 (en) | 2015-04-23 | 2017-10-10 | Google Inc. | Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure |
US10095479B2 (en) * | 2015-04-23 | 2018-10-09 | Google Llc | Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure |
US9769356B2 (en) | 2015-04-23 | 2017-09-19 | Google Inc. | Two dimensional shift array for image processor |
US9965824B2 (en) | 2015-04-23 | 2018-05-08 | Google Llc | Architecture for high performance, power efficient, programmable image processing |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US20160378488A1 (en) * | 2015-06-26 | 2016-12-29 | Microsoft Technology Licensing, Llc | Access to target address |
US9858074B2 (en) * | 2015-06-26 | 2018-01-02 | International Business Machines Corporation | Non-default instruction handling within transaction |
US10303477B2 (en) * | 2015-06-26 | 2019-05-28 | Intel Corporation | Persistent commit processors, methods, systems, and instructions |
US11755484B2 (en) | 2015-06-26 | 2023-09-12 | Microsoft Technology Licensing, Llc | Instruction block allocation |
US10776115B2 (en) * | 2015-09-19 | 2020-09-15 | Microsoft Technology Licensing, Llc | Debug support for block-based processor |
US10313641B2 (en) | 2015-12-04 | 2019-06-04 | Google Llc | Shift register with reduced wiring complexity |
US9830150B2 (en) | 2015-12-04 | 2017-11-28 | Google Llc | Multi-functional execution lane for image processor |
JP6512087B2 (ja) * | 2015-12-09 | 2019-05-15 | 株式会社デンソー | 車両用制御装置 |
US10318295B2 (en) * | 2015-12-22 | 2019-06-11 | Intel Corporation | Transaction end plus commit to persistence instructions, processors, methods, and systems |
US9898351B2 (en) | 2015-12-24 | 2018-02-20 | Intel Corporation | Method and apparatus for user-level thread synchronization with a monitor and MWAIT architecture |
CN106919487B (zh) * | 2015-12-25 | 2020-08-28 | 北京忆芯科技有限公司 | NVMe门铃处理方法及其装置 |
US10387988B2 (en) | 2016-02-26 | 2019-08-20 | Google Llc | Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform |
US10204396B2 (en) | 2016-02-26 | 2019-02-12 | Google Llc | Compiler managed memory for image processor |
US10380969B2 (en) | 2016-02-28 | 2019-08-13 | Google Llc | Macro I/O unit for image processor |
US10546211B2 (en) | 2016-07-01 | 2020-01-28 | Google Llc | Convolutional neural network on programmable two dimensional image processor |
US20180005346A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register |
US20180005059A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Statistics Operations On Two Dimensional Image Processor |
US20180007302A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register |
CN109508239A (zh) * | 2017-09-15 | 2019-03-22 | 北京国双科技有限公司 | 进程的控制方法及装置 |
EP3462312B1 (en) * | 2017-09-29 | 2022-08-17 | ARM Limited | Permitting unaborted processing of transaction after exception mask update instruction |
US10853223B2 (en) * | 2018-01-19 | 2020-12-01 | Arm Limited | Simulation of transactions |
CN109324838B (zh) * | 2018-08-31 | 2022-05-10 | 深圳市元征科技股份有限公司 | 单片机程序的执行方法、执行装置及终端 |
US10761822B1 (en) * | 2018-12-12 | 2020-09-01 | Amazon Technologies, Inc. | Synchronization of computation engines with non-blocking instructions |
US10521383B1 (en) * | 2018-12-17 | 2019-12-31 | Micron Technology, Inc. | Handling operation collisions in a non-volatile memory |
US20220300610A1 (en) * | 2019-06-20 | 2022-09-22 | Technion Research & Development Foundation Limited | Secured speculative execution processor |
CN110960857B (zh) * | 2019-12-03 | 2023-06-02 | 米哈游科技(上海)有限公司 | 一种游戏数据监控方法、装置、电子设备及存储介质 |
US11954465B2 (en) * | 2021-12-13 | 2024-04-09 | Intel Corporation | Apparatuses, methods, computer programs, and data carriers for indicating and detecting atomic operations |
WO2023205387A1 (en) * | 2022-04-21 | 2023-10-26 | Microchip Technology Incorporated | Atomic instruction set and architecture with bus arbitration locking |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0615138U (ja) * | 1992-07-22 | 1994-02-25 | 株式会社熊谷組 | 中央処理装置 |
WO2004075051A1 (en) * | 2003-02-13 | 2004-09-02 | Sun Microsystems Inc. | Method and apparatus for avoiding locks by speculatively executing critical sections |
JP2008525923A (ja) * | 2004-12-29 | 2008-07-17 | インテル・コーポレーション | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4819234A (en) * | 1987-05-01 | 1989-04-04 | Prime Computer, Inc. | Operating system debugger |
US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
US5673426A (en) | 1995-02-14 | 1997-09-30 | Hal Computer Systems, Inc. | Processor structure and method for tracking floating-point exceptions |
EP1291765B1 (en) * | 1996-08-27 | 2009-12-30 | Panasonic Corporation | Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream |
UA55489C2 (uk) * | 1997-10-07 | 2003-04-15 | Каналь+ Сосьєте Анонім | Пристрій для багатопотокової обробки даних (варіанти) |
US6795966B1 (en) * | 1998-05-15 | 2004-09-21 | Vmware, Inc. | Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction |
US6401155B1 (en) * | 1998-12-22 | 2002-06-04 | Philips Electronics North America Corporation | Interrupt/software-controlled thread processing |
US6892258B1 (en) * | 2001-10-26 | 2005-05-10 | Lsi Logic Corporation | Hardware semaphores for a multi-processor system within a shared memory architecture |
US6799236B1 (en) * | 2001-11-20 | 2004-09-28 | Sun Microsystems, Inc. | Methods and apparatus for executing code while avoiding interference |
US7657880B2 (en) | 2003-01-31 | 2010-02-02 | Intel Corporation | Safe store for speculative helper threads |
US7269717B2 (en) * | 2003-02-13 | 2007-09-11 | Sun Microsystems, Inc. | Method for reducing lock manipulation overhead during access to critical code sections |
US7418577B2 (en) | 2003-02-13 | 2008-08-26 | Sun Microsystems, Inc. | Fail instruction to support transactional program execution |
US20040163082A1 (en) | 2003-02-13 | 2004-08-19 | Marc Tremblay | Commit instruction to support transactional program execution |
WO2005062170A2 (en) * | 2003-12-18 | 2005-07-07 | Koninklijke Philips Electronics N.V. | Method and compilation system for translating source code into executable code |
US7882339B2 (en) * | 2005-06-23 | 2011-02-01 | Intel Corporation | Primitives to enhance thread-level speculation |
-
2005
- 2005-06-23 US US11/165,639 patent/US7882339B2/en not_active Expired - Fee Related
-
2006
- 2006-06-23 CN CN200680022486.2A patent/CN101203831B/zh not_active Expired - Fee Related
- 2006-06-23 DE DE112006001698T patent/DE112006001698T5/de not_active Ceased
- 2006-06-23 DE DE112006004265T patent/DE112006004265A5/de not_active Withdrawn
- 2006-06-23 JP JP2008518482A patent/JP5415069B2/ja not_active Expired - Fee Related
- 2006-06-23 WO PCT/US2006/024727 patent/WO2007002550A2/en active Application Filing
- 2006-06-23 GB GB0721281A patent/GB2441665B/en not_active Expired - Fee Related
- 2006-06-23 CN CN201010175491.5A patent/CN101833475B/zh not_active Expired - Fee Related
- 2006-06-23 GB GB0907512A patent/GB2457181B/en not_active Expired - Fee Related
-
2010
- 2010-12-16 US US12/970,040 patent/US20110087867A1/en not_active Abandoned
-
2011
- 2011-08-15 JP JP2011177640A patent/JP5479416B2/ja not_active Expired - Fee Related
- 2011-12-08 US US13/314,826 patent/US8332619B2/en active Active
-
2012
- 2012-11-13 US US13/675,910 patent/US20130073835A1/en not_active Abandoned
-
2013
- 2013-04-12 JP JP2013083679A patent/JP2013168168A/ja active Pending
-
2015
- 2015-01-23 JP JP2015010769A patent/JP2015111439A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0615138U (ja) * | 1992-07-22 | 1994-02-25 | 株式会社熊谷組 | 中央処理装置 |
WO2004075051A1 (en) * | 2003-02-13 | 2004-09-02 | Sun Microsystems Inc. | Method and apparatus for avoiding locks by speculatively executing critical sections |
JP2006518077A (ja) * | 2003-02-13 | 2006-08-03 | サン・マイクロシステムズ・インコーポレイテッド | 臨界領域を投機的に実行することによりロックを回避するための方法および装置 |
JP2008525923A (ja) * | 2004-12-29 | 2008-07-17 | インテル・コーポレーション | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション |
Non-Patent Citations (5)
Title |
---|
JPN6008060309; LIE, S.: 'Hardware Support for Unbounded Transactional Memory' THESIS AT THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY , 20040507, pp. 1-3, 7-8, 39-59, MIT * |
JPN6011008086; Tom Knight: '"An Architecture for Mostly Functional Languages"' Proceedings of the 1986 ACM conference on LISP and functional programming , 198608, pages:105-112, ACM * |
JPN6011008087; J. E. Smith et.al: '"Implementing Precise Interrupts in Pipelined Processors"' IEEE Transactions on Computers Volume : 37 , Issue:5, 198805, pages:562-573, IEEE * |
JPN6011008089; Nir Shavit et.al: '"Software transactional memory"' PODC '95 Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing , 1995, pages:204-213, ACM * |
JPN6011008091; M. Herlihy et.al: '"Transactional Memory:Architectural Support for Lock-Free Data Structures"' Proceedings of the 20th Annual International Symposium on Computer Architecture 1993. , 19930519, pages:289-301, IEEE * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011227934A (ja) * | 2005-06-23 | 2011-11-10 | Intel Corp | スレッドレベルの投機実行を拡張するためのプリミティブ |
JP5673666B2 (ja) * | 2010-02-23 | 2015-02-18 | 富士通株式会社 | マルチコアプロセッサシステム、割込プログラム、および割込方法 |
JP2013520753A (ja) * | 2010-02-24 | 2013-06-06 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | ハードウエアトランザクショナルメモリにおける自動サスペンド及び再開 |
KR101460985B1 (ko) | 2010-06-29 | 2014-11-13 | 인텔 코포레이션 | 스레드 레벨 추론에서의 동적 데이터 동기화 |
JP2013537334A (ja) * | 2010-09-25 | 2013-09-30 | インテル コーポレイション | ハードウェア制限に基づく調整可能なトランザクション・サイズを利用してコードを動的に最適化する装置、方法およびシステム |
JP2014182836A (ja) * | 2013-03-15 | 2014-09-29 | Intel Corp | 永続記憶装置へのライトバックを必要とする非トランザクションコード領域の先頭および終端を指し示す命令 |
JP2017535853A (ja) * | 2014-10-20 | 2017-11-30 | アビニシオ テクノロジー エルエルシー | 計算の非決定性の下でのリカバリ及び耐障害 |
JP2015097112A (ja) * | 2015-01-05 | 2015-05-21 | 富士通株式会社 | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム |
US11188336B2 (en) | 2015-12-28 | 2021-11-30 | Qualcomm Incorporated | Replay of partially executed instruction blocks in a processor-based system employing a block-atomic execution model |
Also Published As
Publication number | Publication date |
---|---|
US20060294326A1 (en) | 2006-12-28 |
JP5479416B2 (ja) | 2014-04-23 |
DE112006001698T5 (de) | 2008-04-30 |
GB0907512D0 (en) | 2009-06-10 |
DE112006004265A5 (de) | 2013-07-04 |
CN101203831B (zh) | 2011-09-14 |
GB2457181A (en) | 2009-08-12 |
US20120084536A1 (en) | 2012-04-05 |
WO2007002550A2 (en) | 2007-01-04 |
CN101833475A (zh) | 2010-09-15 |
CN101833475B (zh) | 2014-04-16 |
CN101203831A (zh) | 2008-06-18 |
US8332619B2 (en) | 2012-12-11 |
US7882339B2 (en) | 2011-02-01 |
US20130073835A1 (en) | 2013-03-21 |
GB0721281D0 (en) | 2007-12-12 |
JP5415069B2 (ja) | 2014-02-12 |
WO2007002550A3 (en) | 2007-05-31 |
JP2015111439A (ja) | 2015-06-18 |
JP2013168168A (ja) | 2013-08-29 |
GB2441665B (en) | 2009-12-09 |
GB2441665A (en) | 2008-03-12 |
JP2011227934A (ja) | 2011-11-10 |
GB2457181B (en) | 2009-12-23 |
US20110087867A1 (en) | 2011-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5415069B2 (ja) | スレッドレベルの投機実行を拡張するためのプリミティブ | |
US6675192B2 (en) | Temporary halting of thread execution until monitoring of armed events to memory location identified in working registers | |
US9626187B2 (en) | Transactional memory system supporting unbroken suspended execution | |
US9069605B2 (en) | Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention | |
US7584332B2 (en) | Computer systems with lightweight multi-threaded architectures | |
US20060117316A1 (en) | Hardware multithreading systems and methods | |
US20120079246A1 (en) | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region | |
US20060190946A1 (en) | Symmetric multiprocessor operating system for execution on non-independent lightweight thread context | |
JP2002508564A (ja) | 実行パイプラインの外部に複数のプログラム・カウンタとトレース・バッファを有するプロセッサ | |
CN107003896B (zh) | 具有共享事务处理资源的装置和数据处理方法 | |
AU2011305091A1 (en) | Apparatus, method, and system for dynamically optimizing code utilizing adjustable transaction sizes based on hardware limitations | |
JP2002508568A (ja) | 不適正順序マルチスレッド実行を実行するロード命令およびストア命令を順序付けるシステム | |
JP2002508567A (ja) | 誤推論後の命令再実施のためのアウトオブパイプライン・トレース・バッファ | |
KR102599689B1 (ko) | 예외 마스크 갱신 명령 후 트랜잭션의 비중지 처리의 허가 | |
GB2563116B (en) | Apparatus and method for determining a recovery point from which to resume instruction execution following handling of unexpected change in instruction flow | |
US10346196B2 (en) | Techniques for enhancing progress for hardware transactional memory | |
EP3588280B1 (en) | Handling load-exclusive instructions in apparatus having support for transactional memory | |
TWI818114B (zh) | 用於異動式記憶體的設備與資料處理方法 | |
US10275250B2 (en) | Defer buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110215 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110513 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110520 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110610 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110617 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110712 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110720 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110815 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120515 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120815 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130412 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20130423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130702 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130911 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131015 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131113 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |