JP6222670B2 - トランザクション処理 - Google Patents
トランザクション処理 Download PDFInfo
- Publication number
- JP6222670B2 JP6222670B2 JP2015516729A JP2015516729A JP6222670B2 JP 6222670 B2 JP6222670 B2 JP 6222670B2 JP 2015516729 A JP2015516729 A JP 2015516729A JP 2015516729 A JP2015516729 A JP 2015516729A JP 6222670 B2 JP6222670 B2 JP 6222670B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- instruction
- abort
- program
- execution
- 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
- 238000012545 processing Methods 0.000 title description 73
- 238000000034 method Methods 0.000 claims description 62
- 238000004590 computer program Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 19
- 230000009471 action Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 description 44
- 238000013519 translation Methods 0.000 description 27
- 230000014616 translation Effects 0.000 description 27
- 230000008859 change Effects 0.000 description 24
- 238000005192 partition Methods 0.000 description 22
- 206010000210 abortion Diseases 0.000 description 21
- 238000006243 chemical reaction Methods 0.000 description 17
- 230000001419 dependent effect Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 14
- 238000001914 filtration Methods 0.000 description 13
- 239000000872 buffer Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 11
- 238000006073 displacement reaction Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 5
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000001343 mnemonic effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000010926 purge Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- VBICKXHEKHSIBG-UHFFFAOYSA-N 1-monostearoylglycerol Chemical compound CCCCCCCCCCCCCCCCCC(=O)OCC(O)CO VBICKXHEKHSIBG-UHFFFAOYSA-N 0.000 description 1
- SNDPXSYFESPGGJ-UHFFFAOYSA-N L-norVal-OH Natural products CCCC(N)C(O)=O SNDPXSYFESPGGJ-UHFFFAOYSA-N 0.000 description 1
- 102000004137 Lysophosphatidic Acid Receptors Human genes 0.000 description 1
- 108090000642 Lysophosphatidic Acid Receptors Proteins 0.000 description 1
- 238000012884 algebraic function Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000007420 reactivation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229920000638 styrene acrylonitrile Polymers 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 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/466—Transaction processing
- G06F9/467—Transactional 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/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
- 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 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
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)
- Retry When Errors Occur (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Advance Control (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Debugging And Monitoring (AREA)
Description
付加的な特徴及び利点が実現される。他の実施形態及び態様は、本明細書で詳細に説明され、特許請求される本発明の一部と見なされる。
1つ又は複数の態様が、具体的に示され、本明細書の最後にある特許請求の範囲において例として明確に特許請求される。上記及び他の目的、特徴、並びに利点は、添付図面と併せて用いられる以下の詳細な説明から明らかである。
*トランザクション・ネスト化深さが最初に0のとき、第1のオペランド・アドレスは、トランザクションがアボートされた場合に種々の診断情報を格納することができる、TBEGIN指定TDB(以下にさらに説明される)と呼ばれる、256バイトのトランザクション診断ブロックの記憶位置を指定する。CPUが一次空間モード又はアクセス・レジスタ・モードにあるとき、第1のオペランド・アドレスは、一次アドレス空間内の記憶位置を指定する。CPUが二次空間モード又はホーム空間モードにあるとき、第1のオペランド・アドレスは、それぞれ、二次アドレス空間又はホーム・アドレス空間内の記憶位置を指定する。DATがオフのとき、トランザクション診断ブロック(TDB)アドレス(TDBA)は、実ストレージ内の記憶位置を指定する。
B1フィールドが0のとき、第1のオペランドについてアクセス例外は検出されず、最外TBEGIN命令について、TDBAは無効である。
汎用レジスタ保存マスク(GRSM)210(図3):I2フィールドのビット0−7は、汎用レジスタ保存マスク(GRSM)を含む。GRSMの各ビットは、汎用レジスタの偶数−奇数対を表し、ここでビット0はレジスタ0及び1を表し、ビット1はレジスタ2及び3を表し、以下同様である。最外TBEGIN命令のGRSMにおけるビットが0のとき、対応するレジスタ対は保存されない。最外TBEGIN命令のGRSMにおけるビットが1のとき、対応するレジスタ対は、プログラムが直接アクセスできないモデル依存位置に保存される。
汎用レジスタ保存マスクは、最外のものを除いて、全てのTBEGIN命令において無視される。
汎用レジスタ保存マスク(GRSM)310:I2フィールドのビット0−7は、汎用レジスタ保存マスク(GRSM)を含む。GRSMの各ビットは、汎用レジスタの偶数−奇数対を表し、ここで、ビット0はレジスタ0及び1を表し、ビット1はレジスタ2及び3を表し、以下同様である。GRSMにおけるビットが0のとき、対応するレジスタ対は保存されない。GRSMにおけるビットが1のとき、対応するレジスタ対は、プログラムが直接アクセスできないモデル依存位置に保存される。
*全てのレベルのトランザクションにより行われたトランザクション・ストア・アクセスが廃棄される(即ち、コミットされない)。
*全てのレベルのトランザクションにより行われた非トランザクション・ストア・アクセスがコミットされる。
*最外TRANSACTION BEGIN命令の汎用レジスタ保存マスク(GRSM)により指定されたレジスタが、トランザクション実行より前のレジスタの内容に復元される(即ち、最外TRANSACTION BEGIN命令の実行時のレジスタの内容に)。最外TRANSACTION BEGIN命令の汎用レジスタ保存マスクにより指定されていない汎用レジスタは、復元されない。
*アクセス・レジスタ、浮動小数点レジスタ、及び浮動小数点制御レジスタは、復元されない。トランザクションがアボートすると、トランザクション実行中にこれらのレジスタに対してなされた全ての変更が保持される。
*一般命令のサブセットが利用可能である。
*制限された数の命令を実行することができる。
*制限された数のストレージ・オペランド位置にアクセスすることできる。
*トランザクションは、単一のネスト化レベルに制限される。
DH2フィールド及びDL2フィールドにより形成された変位は、20ビットの符号付き2進整数として扱われる。
第2のオペランドは、ダブルワード境界上にアラインされ、他の場合には、指定例外が認識され、操作は抑止される。
示されるように、トランザクション実行ファシリティは、制御レジスタ0の2個のビット及び制御レジスタ2の3個のビットによって制御される。例えば:
トランザクション実行制御(TXC):制御レジスタ0のビット8は、トランザクション実行制御である。このビットは、制御プログラム(例えば、オペレーティング・システム)が、トランザクション実行ファシリティがプログラムによって使用可能かどうかを示すことができる機構を提供する。ビット8は、トランザクション実行モードに成功裏に入るために、1であるべきである。
制御レジスタ0のビット8が0のとき、EXTRACT TRANSACTION NESTING DEPTH、TRANSACTION BEGIN及びTRANSACTION END命令を実行しようとする試みは、特別な操作実行をもたらす。
図10を参照して、EXTRACT TRANSACTION NESTING DEPTH(ETND)命令の形式の一実施形態を説明する。一例として、EXTRACT TRANSACTION NESTING DEPTH800は、トランザクション・ネスト化深さ抽出操作を示すオペコードを指定するオペコード・フィールド802と、汎用レジスタを指定するレジスタ・フィールドR1804とを含む。
現在のトランザクション・ネスト化深さは、汎用レジスタR1のビット48−63に配置される。レジスタのビット0−31は変更されないままであり、レジスタのビット32−47は0に設定される。
更に別の実施形態において、最大トランザクション・ネスト化深さもまた、ビット16−31内といった、汎用レジスタR1内に配置される。
*操作(トランザクション実行ファシリティはインストールされていない)
*特殊操作
*トランザクション制約(制限された命令に起因する)
トランザクション診断範囲(TDS):次のように、制御レジスタ2のビット61は、レジスタのビット62−63におけるトランザクション診断制御(TDC)の適用性を制御する。:
TDS
TDC
*アボート・コードは、コード7−11、13−16又は255のいずれかに設定され、コードの値はCPUによりランダムに選択され、条件コードはアボート・コードに対応して設定される。アボート・コードを以下にさらに説明する。
*制約なしトランザクションの場合、条件コードは1に設定される。この場合、アボート・コードは適用可能でない。
制約付きトランザクションの場合、1のTDC値は、あたかも2のTDC値が指定されたかのように扱われる。
3のTDC値が指定された場合、結果は予測不能である。
命令のB1フィールドが0でないとき、最外TRANSACTION BEGIN(TBEGIN)命令の第1のオペランド・アドレスから、有効なトランザクション診断ブロック・アドレス(TDBA)が設定される。CPUが一次空間又はアクセス・レジスタ・モードにあるとき、TDBAは、一次アドレス空間内の記憶位置を指定する。CPUが二次空間又はホーム空間モードにあるとき、TDBAは、それぞれ、二次アドレス空間又はホーム・アドレス空間内の記憶位置を指定する。DAT(動的アドレス変換)がオフのとき、TDBAは、実ストレージ内の記憶位置を指定する。
TRANSACTION BEGIN(TBEGIN)命令の実行中、ネスト化深さが最初に0であるとき、トランザクション・アボートPSWは現PSWの内容に設定され、トランザクション・アボートPSWの命令アドレスは、次の順次命令を指定する(即ち、最外TBEGINに続く命令)。TRANSACTION BEGIN constrained(TBEGINC)命令の実行中、ネスト化深さが最初に0であるとき、トランザクション・アボートPSWは、トランザクション・アボートPSWの命令アドレスが(TBEGINCに続く次の順次命令ではなく)TBEGINCを指定することを除いて、現PSWの内容に設定される。
トランザクション・アボートPSWは、いずれの内部TRANSACTION BEGIN命令の実行中にも変更されない。
トランザクション・ネスト化深さは、例えば、TRANSACTION BEGIN命令が条件コード0で完了するたびにインクリメントし、且つ、TRANSACTION END命令が完了するたびにデクリメントする、16ビットの符号なし値である。トランザクション・ネスト化深さは、トランザクションがアボートされたとき、又はCPUのリセットにより、0に設定される。
1つの実装において、CPUが制約付きトランザクション実行モードにあるとき、トランザクション・ネスト化深さは1である。さらに、最大TNDは4ビットの値として表すことができるが、TNDは、トランザクション診断ブロックにおける検査を容易にするために、16ビットの値となるように定められる。
トランザクションがアボートされた場合、種々の状態情報を、以下のようなトランザクション診断ブロック(TDB)内に保存することができる。
1.TBEGIN指定TDB:制約なしトランザクションについて、最外TBEGIN命令のB1フィールドが0でないとき、命令の第1のオペランド・アドレスは、TBEGIN指定TDBを指定する。これは、アプリケーションのアボート・ハンドラにより検査することができるアプリケーション・プログラムにより指定される記憶位置である。
2.プログラム割り込み(PI)TDB:制約なしトランザクションが、非フィルタ処理(unfiltered)プログラム例外条件に起因してアボートされた場合、又は制約付きトランザクションがいずれかのプログラム例外条件に起因してアボートされた場合(即ち、プログラム割り込みをもたらすいずれかの条件が認識される)、PI−TDBは、プリフィックス領域内の記憶位置に格納される。これは、オペレーティング・システムが提供できるあらゆる診断報告において、オペレーティング・システムが検査又はログアウトするのに利用可能である。
3.インターセプトTDB:トランザクションが、インターセプトをもたらす(即ち、条件により解釈実行が終了し、制御がホスト・プログラムに戻る)いずれかのプログラム例外条件に起因してアボートされた場合、TDBは、ゲスト・オペレーティング・システムについての状態記述ブロックにおいて指定された記憶位置に格納される。
非フィルタ処理プログラム例外条件に起因するアボートの場合、PI−TDB又はインターセプトTDBのいずれか1つだけが格納される。従って、1つのアボートに対して、0、1又は2つのTDBが格納され得る。
TBEGIN指定TDB:有効なトランザクション診断ブロック・アドレスにより指定された256バイトの記憶位置である。トランザクション診断ブロック・アドレスが有効であるとき、TBEGIN指定TDBは、トランザクション・アボート上に格納される。TBEGIN指定TDBは、最外TRANSACTION BEGIN命令の実行時に有効である全てのストレージ保護機構の影響下にある。TBEGIN指定TDBの任意の部分についてのPER(プログラム・イベント記録)ストレージ変更イベントは、トランザクション・アボート処理中ではなく、最外TBEGINの実行中に検出される。
*分岐命令の実行の成功:分岐ターゲット位置が指定したストレージ領域(記憶領域)内にあるときにのみイベントが生じるようにするための選択肢が提供される。
*指定したストレージ領域からの命令のフェッチ。
*指定したストレージ領域の内容の変更。ストレージ領域が指定したアドレス空間内にあるときにのみイベントを生じるようにするための選択肢が提供される。
*STORE USING REAL ADDRESS命令の実行。
*TRANSACTION END命令の実行。
競合トークン妥当性(CTV):トランザクションが、フェッチ又はストア競合のためにアボートされるとき(つまり、それぞれ、アボート・コード9又は10)、バイト1のビット0は、競合トークン妥当性表示である。CTV表示が1のとき、TDBのバイト16−23における競合トークン910は、競合が検出された論理アドレスを含む。CTV表示が0であるとき、TDBのバイト16−23は予測不能である。
トランザクションが、フェッチ又はストア競合以外のいずれかの理由のためにアボートされたとき、バイト1のビット0は、0として格納される。
制約付きトランザクション表示(CTI):CPUが制約付きトランザクション実行モードにあるとき、バイト1のビット1は1に設定される。CPUが制約なしトランザクション実行モードにあるとき、バイト1のビット1は0に設定される。
予約:バイト1のビット2−7は予約され、0として格納される。
CTVビットが0のとき、バイト16−23は予測不能である。
*制御されたアクセス・リスト又はDAT保護
*ASCEタイプ
*ページ変換
*領域第1変換
*領域第2変換
*領域第3変換
*セグメント変換例外
z/Architectureの一実施形態において、PER−3ファシリティがインストールされると、このPER−3ファシリティは、プログラムに、CPUの順次実行においてブレークを生じさせる最後の命令のアドレスを与える。ブレーキング・イベント・アドレスの記録を、ワイルド分岐検出のためのデバッグ支援として用いることができる。このファシリティは、例えば、ブレーキング・イベント・アドレス・レジスタと呼ばれる、CPUにおける64ビット・レジスタを与える。TRANSACTION ABORT以外の命令が、順次命令の実行においてブレークを生じさせる(つまり、PSW内の命令アドレスが、命令長によりインクリメントされるのではなく、置き換えられる)たびに、その命令のアドレスが、ブレーキング・イベント・アドレス・レジスタ内に配置される。PERが表示されるにせよ又はされないにせよ、プログラム割り込みが発生するたびに、ブレーキング・イベント・アドレス・レジスタの現在の内容が実ストレージ位置272−279に配置される。
*バイト112−119は、トランザクション実行分岐表示(TXBI)と呼ばれる64ビットのベクトルを含む。ベクトルの最初の63ビットの各々は、次のように、CPUがトランザクション実行モードにある間の分岐命令の実行の結果を示す。
−いずれの限定された命令も、TXBI内にビットを設定させない
−例えばz/Architectureの命令において、BRANCH ON CONDITION、BRANCH RELATIVE ON CONDITION、又はBRANCH RELATIVE ON CONDITION LONG命令のM1フィールドが0であるとき、又は、以下の命令のR2フィールドが0のとき、命令の実行により、TXBI内にビットが設定されるかどうかは、モデル依存である。
*BRANCH AND LINK(BALR);BRANCH AND SAVE(BASR);BRANCH AND SAVE AND SET MODE(BASSM);BRANCH AND SET MODE(BSM);BRANCH ON CONDITION(BCR);及びBRANCH ON COUNT(BCTR、BCTGR)
*EXTRACT TRANSACTION NESTING DEPTH
*NONTRANSACTIONAL STORE
*TRANSACTION ABORT
*TRANSACTION BEGIN
*TRANSACTION END
*命令のR2フィールドが0でなく、且つ、分岐トレースがイネーブルにされたときのBRANCH AND LINK(BALR)、BRANCH AND SAVE (BASR)及びBRANCH AND SAVE AND SET MODE
*命令のR2フィールドが0でなく、且つ、モード・トレースがイネーブルにされたときのBRANCH AND SAVE AND SET MODE及びBRANCH AND SET MODE、モード・トレースがイネーブルにされたときのSET ADDRESSING MODE
*監視イベント条件が認識されたときのMONITOR CALL
1.その他の条件は、以下のいずれかからもたらされ得る。
*z/Architectureにおける、COMPARE AND REPLACE DAT TABLE ENTRY、COMPARE AND SWAP AND PURGE、INVALIDATE DAT TABLE ENTRY、INVALIDATE PAGE TABLE ENTRY、NQ制御が0であり、且つ、SK制御が1であるPERFORM FRAME MANAGEMENT FUNCTION、NQ制御が0であり、構成内の別のCPUにより実行され、条件コードが2に設定されるSET STORAGE KEY EXTENDEDのような命令。
*リセット、再起動若しくは停止、又は同等のSIGNAL PROCESSOR命令のようなオペレータ機能がCPU上で実行される。
*上記に列挙されないいずれかの他の条件;条件コードは2又は3に設定される。
2.フェッチ及びストア競合が検出された記憶位置は、同一キャッシュ・ライン内のどの場所であってもよい。
3.特定の条件下で、CPUは、類似のアボート条件を区別できないことがある。例えば、フェッチ又はストア・オーバーフローは、それぞれのフェッチ又はストア競合と区別できないことがある。
4.CPUによる複数の命令経路の投機的実行により、こうした条件が概念的シーケンスで行われない場合でも、競合又はオーバーフロー条件に起因して、トランザクションがアボートされる。制約付きトランザクション・モードにある間、CPUは、投機的実行を一時的に禁止し、こうした競合又はオーバーフローを投機的に検出することなく、トランザクションを完了しようと試みることを可能にする。
1.トランザクションは、TRANSACTION BEGIN constrained(TBEGINC)命令及びTRANSACTION END命令を含まない、32を超えない命令を実行する。
2.トランザクション内の全ての命令は、TRANSACTION BEGIN constrained(TBEGINC)命令及びあらゆるTRANSACTION END命令を含む、ストレージの256の連続バイト内にある。
3.制限された命令に加えて、次の制限が制約付きトランザクションに適用される。
a.命令は、例えば、加算、減算、乗算、除算、シフト、ローテート等を含む、一般命令と呼ばれるものに限定される。
b.分岐命令は、次のもの(列挙された命令は、一例においてz/Architectureのものである)に限定される。
*M1フィールドは0でなく、RI2フィールドは正の値を含む、BRANCH RELATIVE ON CONDITION、
*M1フィールドは0でなく、RI2フィールドは、アドレスのラップアラウンドを生じさせない正の値を含む、BRANCH RELATIVE ON CONDITION LONG、
*M3フィールドは0でなく、RI4フィールドは正の値を含む、COMPARE AND BRANCH RELATIVE、COMPARE IMMEDIATE AND BRANCH RELATIVE、COMPARE LOGICAL AND BRANCH RELATIVE、及びCOMPARE LOGICAL IMMEDIATE AND BRANCH RELATIVE(即ち、0でない分岐マスクを有する前方分岐のみ)、
c.TRANSACTION END及び特定のオペランド・シリアル化をもたらす命令を除いた、シリアル化機能をもたらす命令が制限される。
d.ストレージ間操作(SS−)命令及び拡張オペコード付きストレージ間操作(SSE−)命令は制限される。
e.以下の一般命令(この例では、z/Architectureのもの):即ち、CHECKSUM;CIPHER MESSAGE;CIPHER MESSAGE WITH CFB;CIPHER MESSAGE WITH CHAINING;CIPHER MESSAGE WITH COUNTER;CIPHER MESSAGE WITH OFB;COMPARE AND FORM CODEWORD;COMPARE LOGICAL LONG;COMPARE LOGICAL LONG EXTENDED;COMPARE LOGICAL LONG UNICODE;COMPARE LOGICAL STRING;COMPARE UNTIL SUBSTRING EQUAL;COMPRESSION CALL;COMPUTE INTERMEDIATE MESSAGE DIGEST;COMPUTE LAST MESSAGE DIGEST;COMPUTE MESSAGE AUTHENTICATION CODE;CONVERT TO BINARY;CONVERT TO DECIMAL;CONVERT UNICODE−16 TO UNICODE−32;CONVERT UNICODE−16 TO UNICODE−8;CONVERT UNICODE−32 TO UNICODE−16;CONVERT UNICODE−32 TO UNICODE−8;CONVERT UNICODE−8 TO UNICODE−16;CONVERT UNICODE−8 TO UNICODE−32;DIVIDE;DIVIDE LOGICAL;DIVIDE SINGLE;EXECUTE;EXECUTE RELATIVE LONG;EXTRACT CACHE ATTRIBUTE;EXTRACT CPU TIME;EXTRACT PSW;EXTRACT TRANSACTION NESTING DEPTH;LOAD AND ADD;LOAD AND ADD LOGICAL;LOAD AND AND;LOAD AND EXCLUSIVE OR;LOAD AND OR;LOAD PAIR DISJOINT;LOAD PAIR FROM QUADWORD;MONITOR CALL;MOVE LONG;MOVE LONG EXTENDED;MOVE LONG UNICODE;MOVE STRING;NON−TRANSACTIONAL STORE;PERFORM CRYPTOGRAPHIC COMPUTATION;PREFETCH DATA;PREFETCH DATA RELATIVE LONG;RUNTIME INSTRUMENTATION EMIT;RUNTIME INSTRUMENTATION NEXT;RUNTIME INSTRUMENTATION OFF;RUNTIME INSTRUMENTATION ON;SEARCH STRING;SEARCH;STRING UNICODE;SET ADDRESSING MODE;M3フィールドが0であり、R1フィールドが6又は7であるときのSTORE CHARACTERS UNDER MASK HIGH;STORE CLOCK;STORE CLOCK EXTENDED;STORE CLOCK FAST;STORE FACILITY LIST EXTENDED;STORE PAIR TO QUADWORD;TEST ADDRESSING MODE;TRANSACTION ABORT;TRANSACTION BEGIN(TBEGIN及びTBEGINCの両方);TRANSLATE AND TEST EXTENDED;TRANSLATE AND TEST REVERSE EXTENDED;TRANSLATE EXTENDED;TRANSLATE ONE TO ONE;TRANSLATE ONE TO TWO TRANSLATE TWO TO ONE;及びTRANSLATE TWO TO TWOの全てが制限される。
4.トランザクションのストレージ・オペランドは、4個を超えないオクトワードにアクセスする。注記:LOAD ON CONDITION及びSTORE ON CONDITIONは、条件コードに関係なく、ストレージを参照すると考えられる。オクトワードは、例えば、32バイト境界上の32の連続バイトの群である。
5.このCPU上で実行されるトランザクション、又は他のCPU又はI/Oサブシステムによるストアは、TRANSACTION BEGIN constrained(TBEGINC)命令で始まるストレージの256バイトを含む、いずれの4Kバイト・ブロック内のストレージ・オペランドにもアクセスしない。
6.トランザクションは、同じ絶対アドレスにマッピングされた異なる論理アドレスを用いて、命令又は格納位置オペランドにアクセスしない。
7.LOAD ACCESS MULTIPLE、LOAD MULTIPLE、LOAD MULTIPLE HIGH、STORE ACCESS MULTIPLE、STORE MULTIPLE及びSTORE MULTIPLE HIGHについて、オペランド参照が単一のオクトワード内にあることを除いて、トランザクションにより行われるオペランド参照は、単一のダブルワード内にある。
a.発行された命令が、最大32より少ない、
b.ストレージ・オペランド参照が、最大4オクトワードより少ない、
c.ストレージ・オペランド参照が、同一のキャッシュ・ライン上にある、
d.同じ記憶位置に対するストレージ・オペランド参照が、全てのトランザクションによって同じ順序で行われる。
2.制約付きトランザクションは、必ずしもその最初の実行で成功裡に完了することが保証されていない。しかしながら、列挙された制約のいずれにも違反しない制約付きトランザクションがアボートされると、CPUは、回路を用いて、トランザクションの実行の反復により後で成功することを保証する。
3.制約付きトランザクション内で、TRANSACTION BEGINは制限された命令であり、従って、制約付きトランザクションをネスト化することはできない。
4.制約付きトランザクションによる上記の制約1−7のいずれかの違反は、プログラム・ループをもたらす。
5.制約付きトランザクションの制限は、compare−and−swapループのものに類似している。他のCPU及びI/Oサブシステムからの潜在的な干渉のため、COMPARE AND SWAP命令が常に条件コード0で完了するという構造上の保証はない。制約付きトランザクションは、フェッチ若しくはストア競合アボート又はホット割り込みの形の類似の干渉を受けることがある。
CPUは、フェアネス・アルゴリズムを用いて、いずれの制約違反もない場合に、制約付きトランザクションが最終的に完了することを保証する。
6.制約付きトランザクションを完了するために必要とされる反復回数を求めるために、プログラムは、汎用レジスタのカウンタを用いることができ、このカウンタは汎用レジスタ保存マスクに影響されない。一例を以下に示す。
一般的な場合のプログラム割り込み条件の優先順位と同じ優先順位を有する例外、
B1フィールドが0でない値を含むことに起因する指定例外、
トランザクション・ネスト化深さ超過に起因するアボート、
正常終了に起因する条件コード0。
1.汎用レジスタ保存マスクにより保存されるように指定されたレジスタは、トランザクションがアボートされた場合にのみ復元され、トランザクションがTRANSACTION ENDにより正常に終了したときには復元されない。最外TRANSACTION BEGIN命令のGRSMにより指定されたレジスタのみがアボート時に復元される。
I2フィールドは、制約付きトランザクションにより変更される入力値を与える全てのレジスタ対を指定しなければならない。従って、トランザクションがアボートされた場合、制約好きトランザクションが再実行されたときに入力レジスタ値がオリジナルの内容に復旧される。
2.大部分のモデルにおいて、汎用レジスタ保存マスク内に保存及び復元することが必要とされるレジスタの最小数を指定することにより、TRANSACTION BEGIN時にも、トランザクションがアボートされたときにも、性能の改善を実現することができる。
3.以下は、現在のトランザクション・ネスト化深さ(TND)に基づき、TNDが0でないとき、CPUが制約なしトランザクション実行モードにあるか又は制約付きトランザクション実行モードにあるかに関する、TRANSACTION BEGIN命令(TBEGIN及びTBEGINCの両方)の結果を示す。即ち、
(a)アウト・オブ・オーダー式実行を禁止する、
(b)他のCPUが、競合するストレージ位置にアクセスするのを禁止する、
(c)アボート処理においてランダム遅延を引き起こす、及び/又は、
(d)成功裏の完了を容易にするために、他の手段を呼び出す、
ことができる。
*既に制約付きTXモードにある場合、制約付きトランザクション例外が認識される。
*現在のTND(トランザクション・ネスト化深さ)>0の場合、実行は、あたかも制約なしトランザクションであるかのように進行する。
)有効なF制御は0に設定される
)有効なPIFCは変更されない
)外部制約なしTXが、制約付きTXを使用することも又は使用しないこともあるサービス機能を呼び出すことを可能にする
*現在のTND=0のとき:
)トランザクション診断ブロック・アドレスは無効である
−アボート時に命令指定TDBは格納されない
)トランザクション・アボートPSWはTBEGINCのアドレスに設定される
−次の順次命令ではない
)モデル依存記憶位置に保存されたGRSMにより指定された汎用レジスタ対は、プログラムによりアクセス可能でない
)トランザクション・トークンが随意的に形成される(D2オペランドから)。トランザクション・トークンは、トランザクションの識別子である。トランザクション・トークンは、ストレージ・オペランド・アドレス又は他の値と等しい場合がある
*有効A=TBEGINC A&任意の外部A
*TNDがインクリメントされる
)TNDが0から1に移行する場合、CPUは制約付きTXモードに入る
)他の場合には、CPUは制約なしTXモードにあるままである
*命令はCC0により完了する
*例外:
)B1フィールドが0でない場合、指定例外(PIC(プログラム割り込みコード)0006)
)トランザクション実行制御(CR0.8)が0の場合、特殊操作例外(PIC 0013 hex)
)制約付きTXモードで発行された場合、トランザクション制約例外(PIC 0018 hex)
)制約付きトランザクション実行ファシリティがインストールされていない場合、操作例外(PIC 0001)
)命令がexecute型命令のターゲットである場合、実行例外(PIC 0003)
)ネスト化深さを超過した場合、アボート・コード13
*制約付きトランザクションにおけるアボート条件:
)アボートPSWはTBEGINC命令を指し示す
−これに続く命令ではない
−アボート条件により、TX全体が再駆動される
*フェイル経路なし
)CPUは、再駆動時に成功裡の完了を確実にするための特別な手段をとる
)持続的な競合、割り込み、又は制約違反がないと仮定すると、トランザクションは最終的に完了することが保証される。
*制約違反:
)PIC 0018 hex−は、トランザクション制約の違反を示す
)又は、トランザクションは、あたかも制約なしであるかのように実行される
0 成功裏のトランザクション開始
1 −−
2 −−
3 −−
*アクセス(ストア、第1のオペランド)
*操作(トランザクション実行ファシリティがインストールされていない)
*特殊操作
*指定
*トランザクション制約(制限された命令に起因する)
*一般的な場合のプログラム割り込み条件の優先順位と同じ優先順位を有する例外、
*予約されたPIFC値に起因する指定例外、
*第1のオペランド・アドレスがダブルワード境界上にないことに起因する指定例外、
*アクセス例外(B1フィールドが0ではないとき)
*最大トランザクション・ネスト化深さ超過に起因するアボート、
*正常終了に起因する条件コード0。
1.B1フィールドが0でないとき、以下が適用される。
*最外トランザクションが開始されると、トランザクションが決してアボートしない場合でも、アクセス可能トランザクション診断ブロック(TDB)が与えられる。
*TDBのアクセス可能性がネスト化されたトランザクションについて試験されるかどうかは予測不能であるため、任意のネスト化されたTBEGIN命令に対してアクセス可能なTDBを与えなければならない。
*B1フィールドが0でない任意のTBEGINの実行、及びB1フィールドが0でない最外TBEGINにより開始されたトランザクションに対して行われる任意のアボート処理の実行は、B1フィールドが0であるときよりも低速であり得る。
2.汎用レジスタ保存マスクにより保存されるよう指定されたレジスタは、一実施形態において、トランザクションがアボートした場合にのみ復元され、トランザクションがTRANSACTION ENDにより正常に終了したときには復元されない。最外TRANSACTION BEGIN命令のGRSMにより指定されたレジスタのみがアボート時に復元される。
I2フィールドは、トランザクションにより変更される入力値を与える全てのレジスタ対を指定しなければならない。従って、トランザクションがアボートされた場合、アボート・ハンドラが入力されたときに、入力レジスタ値は、そのオリジナルの内容に復元される。
3.TRANSACTION BEGIN(TBEGIN)命令は、トランザクションが成功裏に開始されたかどうかを判断する条件分岐命令が後に続くと予想される。
4.トランザクションが、割り込みをもたらさない条件に起因してアボートされた場合、トランザクション・アボートPSWにより指定された命令は制御(つまり、最外TRANSACTION BEGIN(TBEGIN)に続く命令)。TRANSACTION BEGIN(TBEGIN)命令により設定された条件コードに加えて、トランザクションがアボートするとき、条件コード1−3も設定される。
従って、最外TRANSACTION BEGIN(TBEGIN)命令に続く命令シーケンスは、本例において、TBEGIN命令がコード0のみを設定したとしても、4つの条件コード全てを収容できなければならない。
5.大部分のモデルにおいて、汎用レジスタ保存マスク内に保存及び復元することが必要とされるレジスタの最小数を指定することにより、TRANSACTION BEGIN時にも、トランザクションがアボートされたときにも、性能の改善を実現することができる。
6.制約なしトランザクション実行モードにある間、プログラムは、アクセス・レジスタ又は浮動小数点レジスタ(浮動小数点制御レジスタを含む)を変更することができるサービス機能を呼び出すことができる。こうしたサービス・ルーチンは、入力時に変更されたレジスタを保存し、終了時にそれらを復元することができるが、トランザクションは、ルーチンが正常終了する前にアボートされることがある。CPUが制約なしトランザクション実行モードにある間、呼び出しプログラムが、これらのレジスタを保存する準備をしていない場合、レジスタのサービス機能の変更を許容できないことがある。
制約なしトランザクション実行モードにある間のアクセス・レジスタの不注意による変更を防止するために、プログラムは、AR変更許可制御、即ちTRANSACTION BEGIN命令のI2フィールドのビット12を0に設定することができる。同様に、浮動小数点レジスタの不注意による変更を防止するために、プログラムは、浮動小数点演算許可制御、即ちTRANSACTION BEGIN命令のI2フィールドのビット13を0に設定することができる。
7.TRANSACTION BEGIN(TBEGIN)命令の実行中に認識されるプログラム例外条件は、いずれかの外部TBEGIN命令により設定された有効なプログラム割り込みフィルタ処理制御を受ける。最外TBEGINの実行中に認識されるプログラム例外条件は、フィルタ処理を受けない。
8.複数のストレージ位置をシリアル化手法で更新するために、従来のコードシーケンスは、ロックワード(セマフォ)を採用することができる。(a)複数のストレージ位置の更新を実施するためにトランザクション実行を用いる場合、(b)プログラムが、トランザクションがアボートする場合に呼び出される「フォールバック」経路も提供する場合、及び(c)フォールバック経路がロックワードを採用する場合、トランザクション実行経路も、ロックの利用可能性について試験しなければならず、ロックが利用可能でない場合、TRANSACTION END命令によりトランザクションを終了し、フォールバック経路に分岐する。このことは、シリアル化されたリソースがトランザクション的に更新されているかどうかに関係なく、シリアル化されたリソースへの一定のアクセスを保証する。
代替的に、プログラムは、ロックが利用可能でない場合にアボートし得るが、アボート処理は、単にTENDを介してトランザクションを終了するよりも著しく遅くなり得る。
9.有効なプログラム割り込みフィルタ処理制御(PIFC)が0より大きい場合、CPUは大部分のデータ例外プログラム割り込みをフィルタ処理する。有効な浮動小数点演算許可(F)制御が0である場合、データ例外プログラム例外条件に起因するアボートの結果として、浮動小数点制御レジスタにおいて、データ例外コード(DXC)は設定されない。このシナリオ(フィルタ処理が適用され、且つ、有効なF制御が0である)において、DXCが検査される唯一の記憶位置は、TBEGIN指定TDB内である。こうした状況においてプログラムのアボート・ハンドラがDXCを検査する場合、有効なトランザクション診断ブロック・アドレス(TDBA)が設定されるように、汎用レジスタB1は0以外であるべきである。
10.最外TBEGIN命令のTBEGIN指定TDBに対して、PERストレージ変更又はゼロ・アドレス検出条件が存在し、且つ、PERイベント抑止が適用されない場合、命令の実行中にPERイベントが認識され、従って、いずれかの他のアボート条件が存在するかどうかに関係なく、トランザクションが直ちにアボートされる。
汎用レジスタのどの対が、トランザクション実行の開始時に保存され、トランザクションがアボートされた場合に復元されるかを示す汎用レジスタ保存マスク(GRSM)、
トランザクションがアクセス・レジスタを変更する場合に、トランザクションのアボートを可能にするビット(A)、
トランザクションが浮動小数点命令を実行しようと試みる場合、トランザクションのアボートを可能にするビット(F)、
トランザクションがアボートされた場合、個々のトランザクション・レベルがプログラム割り込みの実際の提示をバイパスすることを可能にするプログラム割り込みフィルタ処理制御(PIFC)、
A、F及びPIFC制御は、様々なネスト化レベルで異なり、内部トランザクション・レベルが終了したときに前のレベルに復旧することができる。
*TND=0の場合
)B1=0の場合、トランザクション診断ブロック・アドレスは第1のオペランド・アドレスから設定される。
)トランザクション・アボートPSWは、次の順次命令アドレスに設定される。
)I2フィールドにより指定される汎用レジスタ対は、モデル依存記憶位置に保存される。
−プログラムにより直接アクセス可能でない
*有効なPIFC、A、&F制御が計算される
)有効なA=TBEGIN A&任意の外部A
)有効なF=TBEGIN F&任意の外部F
)有効なPIFC=最大値(TBEGIN PIFC、任意の外部PIFC)
*トランザクション・ネスト化深さ(TND)がインクリメントされる
*TNDが0から1に移行する場合、CPUはトランザクション実行モードに入る
*条件コードが0に設定される。
)TBEGINに続く命令が制御を受け取ると、
−TBEGINの成功がCC0により示される
−アボートされたトランザクションが、0でないCCにより示される
*例外
)ネスト化深さ超過の場合、アボート・コード13
)B1フィールドが0でなく、且つ、ストア操作に関してストレージ・オペランドにアクセスできない場合、アクセス例外(種々のPICの1つ)
)TBEGIN命令がexecute型命令のターゲットである場合、実行例外(PIC 0003)
)トランザクション実行ファシリティがインストールされていない場合、操作例外(PIC 0001)
)次のいずれかの場合、PIC 0006
−PIFCが無効である(3の値)
−第2のオペランド・アドレスがダブルワードに位置合わせされていない
)トランザクション実行制御(CR0.8)が0である場合、PIC 0013 hex
)制約付きTXモードで発行された場合、PIC 0018 hex
*制約なしトランザクションについては、トランザクションが制限された命令に起因してアボートされる(アボート・コード11)。同時PERイベントが検出され、PERに対してCPUがイネーブルにされる場合、割り込みコード0280 hexによりプログラム割り込みが発生する。
*制約付きトランザクションについては、トランザクション制約例外が認識される。同時PERイベントが検出され、PERに対してCPUがイネーブルにされる場合、割り込みコード0298 hexによりプログラム割り込みが発生する。
*R1−挿入される新しいキュー要素のアドレス
*挿入ポイントのアドレス。新しい要素は、その要素がR2により指し示される前に挿入される。
102:中央プロセッサ・コンプレックス(CPC)
106:I/Oデバイス
108:制御ユニット
110:中央プロセッサ
112:パーティション
114:論理パーティション・ハイパーバイザ
115:入力/出力サブシステム
200:TRANSACTION BEGIN(TBEGIN)命令
202、302、402、502、702a、702b、802:オペコード・フィールド
204、304、504、708:ベース・フィールド
206、306、506、710:変位フィールド
208、308:即値フィールド
210、310:汎用レジスタ保存マスク(GRSM)
212、312:AR変更許可(A)
214:浮動小数点演算許可(F)
216:プログラム割り込みフィルタ処理制御(PIFC)
300:TRANSACTION BEGIN constrained(TBEGINC)命令
400:TRANSACTION END(TEND)命令
500:TRANSACTION ABORT(TABORT)命令
600:ネスト化されたトランザクション
700:NONTRANSACTIONAL STORE命令
704、804:レジスタ・フィールド
706:インデックス・フィールド
800:EXTRACT TRANSACTION NESTING DEPTH命令
900:トランザクション診断ブロック(TDB)
1600:二重連結リスト
1700:コンピュータ・プログラム製品
Claims (11)
- コンピューティング環境内でトランザクションの実行を制御するための方法であって、前記方法は、
プロセッサにより、TRANSACTION BEGIN命令によって、トランザクション・モードでトランザクションの実行を開始することであって、前記TRANSACTION BEGIN命令は、第1のタイプのトランザクション又は第2のタイプのトランザクションのいずれか一方を開始するためのものであり、前記トランザクションは実行される複数の命令を含む、開始することと、
トランザクション・モードにあることに基づいて、選択されたトランザクションの完了まで、主メモリへのトランザクション・ストアのコミットを遅延させることと、
前記トランザクションのアボートに基づいて、前記トランザクションのタイプ、前記トランザクションの前記タイプが前記第1のタイプのトランザクションであるか、又は前記第2のタイプのトランザクションであるかを判断することと、
前記トランザクションのアボートと、前記トランザクションが前記第1のタイプのトランザクションであることとに基づいて、前記TRANSACTION BEGIN命令において実行を再開することと、
前記トランザクションのアボートと、前記トランザクションが前記第2のタイプのトランザクションであることとに基づいて、プログラム順で前記TRANSACTION BEGIN命令の直後の順次命令において実行を再開することと、
を含み、
前記第1のタイプのトランザクションは、これと関連した1つ又は複数の制限を有する制約付きトランザクションであり、前記TRANSACTION BEGIN命令はTRANSACTION BEGIN constrained命令であり、前記第2のタイプのトランザクションは制約なしトランザクションである、
方法。 - 前記トランザクションは前記第2のタイプのトランザクションであり、前記実行を再開することは、
前記TRANSACTION BEGIN命令の直後の前記順次命令によって、前記トランザクションの条件コードをチェックして、前記命令はアボートから制御を受け取るかどうかを判断することと、
前記命令が前記アボートから制御を受け取ることに基づいて、前記アボートに対処するための処理を実行することと、
を含む、請求項1に記載の方法。 - 前記処理を実行することは、前記条件コードに基づいてアクションをとることを含み、1つの値の条件コードに基づいて、前記アクションは前記トランザクションを再実行することを含み、別の値の条件コードに基づいて、前記アクションはフォールバック経路に分岐することを含む、請求項2に記載の方法。
- 前記方法は、
前記TRANSACTION BEGIN命令を実行することであって、前記実行することは条件コードを第1の値に設定する、実行することと、
前記トランザクションのアボートを実施することであって、前記実施することは、前記条件コードを第2の値に設定することを含み、前記第2の値は、前記TRANSACTION BEGIN命令の直後の前記順次命令が、前記アボートから制御を受け取ることを示す、実施することと、
をさらに含む、請求項1に記載の方法。 - 前記トランザクションは前記第2のタイプのトランザクションであり、前記方法は、前記トランザクションのアボートに基づいて、診断情報を、前記TRANSACTION BEGIN命令によって指定されるトランザクション診断ブロック内に格納することをさらに含む、請求項1に記載の方法。
- 前記方法は、前記アボートに基づいて、前記TRANSACTION BEGIN命令において指定された1つ又は複数のレジスタを復元し、前記トランザクション・ストアを廃棄することをさらに含む、請求項1に記載の方法。
- 前記方法は、
前記トランザクションがアボートしたと判断することと、
前記トランザクションがアボートしたとの判断に基づいて、前記アボートがインターセプト又は割り込みに起因するものであったかどうかを判断することと、
前記アボートがインターセプト又は割り込み以外に起因するものであることに基づいて、前記トランザクションが前記第1のタイプであるか又は前記第2のタイプであるかに応じて、それぞれ、前記TRANSACTION BEGIN命令における実行の再開、又は前記TRANSACTION BEGIN命令の直後の前記順次命令における実行の再開を実施することと、
をさらに含む、請求項1に記載の方法。 - 前記トランザクションはトランザクションのネストの一部であり、前記方法は、前記プロセッサにより、前記トランザクションのネストのネスト化深さの表示を得るためにEXTRACT NESTING DEPTH命令を実行することをさらに含む、請求項1に記載の方法。
- 前記トランザクションは、前記トランザクションのネストの最外トランザクションである、請求項8に記載の方法。
- 請求項1乃至請求項9のいずれか1項に記載の前記方法の全てのステップを実行するように適合された手段を含むシステム。
- 請求項1乃至請求項9のいずれか1項に記載の前記方法の全てのステップをコンピュータに実行させるためのコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/524,921 | 2012-06-15 | ||
US13/524,921 US8688661B2 (en) | 2012-06-15 | 2012-06-15 | Transactional processing |
PCT/IB2013/054812 WO2013186721A2 (en) | 2012-06-15 | 2013-06-12 | Transactional processing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015525408A JP2015525408A (ja) | 2015-09-03 |
JP6222670B2 true JP6222670B2 (ja) | 2017-11-01 |
Family
ID=49756863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015516729A Active JP6222670B2 (ja) | 2012-06-15 | 2013-06-12 | トランザクション処理 |
Country Status (14)
Country | Link |
---|---|
US (2) | US8688661B2 (ja) |
EP (1) | EP2862070B1 (ja) |
JP (1) | JP6222670B2 (ja) |
KR (1) | KR101634481B1 (ja) |
CN (1) | CN104412232B (ja) |
AU (1) | AU2013276133B2 (ja) |
CA (1) | CA2874236C (ja) |
DK (1) | DK2862070T3 (ja) |
ES (1) | ES2727124T3 (ja) |
IL (1) | IL234563B (ja) |
RU (1) | RU2606878C2 (ja) |
SG (1) | SG11201407502UA (ja) |
TW (1) | TWI533219B (ja) |
WO (1) | WO2013186721A2 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013089767A1 (en) * | 2011-12-16 | 2013-06-20 | Intel Corporation | Method and system using exceptions for code specialization in a computer architecture that supports transactions |
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 |
US9348642B2 (en) * | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
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 |
US9247548B2 (en) * | 2012-09-24 | 2016-01-26 | Blackberry Limited | Data service level uplink data flow control |
US10061609B2 (en) | 2013-06-26 | 2018-08-28 | Intel Corporation | Method and system using exceptions for code specialization in a computer architecture that supports transactions |
WO2015094189A1 (en) * | 2013-12-17 | 2015-06-25 | Intel Corporation | Detection of unauthorized memory modification and access using transactional memory |
US9558032B2 (en) | 2014-03-14 | 2017-01-31 | International Business Machines Corporation | Conditional instruction end operation |
US9454370B2 (en) | 2014-03-14 | 2016-09-27 | International Business Machines Corporation | Conditional transaction end instruction |
US10120681B2 (en) | 2014-03-14 | 2018-11-06 | International Business Machines Corporation | Compare and delay instructions |
US10310857B2 (en) | 2014-04-29 | 2019-06-04 | Ampere Computing Llc | Systems and methods facilitating multi-word atomic operation support for system on chip environments |
US10061583B2 (en) * | 2014-12-24 | 2018-08-28 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US10303525B2 (en) * | 2014-12-24 | 2019-05-28 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
GB2548604B (en) * | 2016-03-23 | 2018-03-21 | Advanced Risc Mach Ltd | Branch instruction |
US10437785B2 (en) | 2016-03-29 | 2019-10-08 | Samsung Electronics Co., Ltd. | Method and apparatus for maximized dedupable memory |
TWI804466B (zh) * | 2016-05-20 | 2023-06-11 | 南韓商三星電子股份有限公司 | 擷取記憶體中儲存的資料的方法與去重複模組 |
US10579376B2 (en) | 2016-07-15 | 2020-03-03 | International Business Machines Corporation | Processor performance monitor that logs reasons for reservation loss |
US10282327B2 (en) * | 2017-01-19 | 2019-05-07 | International Business Machines Corporation | Test pending external interruption instruction |
CN107025559B (zh) | 2017-01-26 | 2020-09-18 | 创新先进技术有限公司 | 一种业务处理方法及装置 |
US10831509B2 (en) | 2017-02-23 | 2020-11-10 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
US11947978B2 (en) | 2017-02-23 | 2024-04-02 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
CN106980649B (zh) | 2017-02-28 | 2020-07-10 | 创新先进技术有限公司 | 写入区块链业务数据的方法和装置及业务子集合确定方法 |
EP3682407A1 (en) | 2017-09-12 | 2020-07-22 | David Schnitt | Unified electronic transaction management system |
US11216285B2 (en) | 2019-06-14 | 2022-01-04 | Oracle International Corporation | Transaction state logger and retriever |
GB2594258B (en) * | 2020-04-20 | 2022-07-20 | Advanced Risc Mach Ltd | Variable nesting control parameter for table structure providing access control information for controlling access to a memory system |
Family Cites Families (225)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1174370A (en) | 1980-05-19 | 1984-09-11 | Hidekazu Matsumoto | Data processing unit with pipelined operands |
US4488227A (en) | 1982-12-03 | 1984-12-11 | Honeywell Information Systems Inc. | Program counter stacking method and apparatus for nested subroutines and interrupts |
US4740893A (en) | 1985-08-07 | 1988-04-26 | International Business Machines Corp. | Method for reducing the time for switching between programs |
US5063497A (en) | 1987-07-01 | 1991-11-05 | Digital Equipment Corporation | Apparatus and method for recovering from missing page faults in vector data processing operations |
US5321823A (en) | 1988-07-20 | 1994-06-14 | Digital Equipment Corporation | Digital processor with bit mask for counting registers for fast register saves |
US5117498A (en) | 1988-08-19 | 1992-05-26 | Motorola, Inc. | Processer with flexible return from subroutine |
JPH0437927A (ja) | 1990-06-01 | 1992-02-07 | Sony Corp | プロセッサの処理方法 |
US5471591A (en) | 1990-06-29 | 1995-11-28 | Digital Equipment Corporation | Combined write-operand queue and read-after-write dependency scoreboard |
GB2256514B (en) | 1991-05-21 | 1994-11-16 | Digital Equipment Corp | Commitment ordering for guaranteeing serializability across distributed transactions |
US5701480A (en) | 1991-10-17 | 1997-12-23 | Digital Equipment Corporation | Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing |
US5274817A (en) | 1991-12-23 | 1993-12-28 | Caterpillar Inc. | Method for executing subroutine calls |
US5359608A (en) | 1992-11-24 | 1994-10-25 | Amdahl Corporation | Apparatus for activation and deactivation of instruction tracing through use of conditional trace field in branch instructions |
WO1994027215A1 (en) | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
US5925125A (en) | 1993-06-24 | 1999-07-20 | International Business Machines Corporation | Apparatus and method for pre-verifying a computer instruction set to prevent the initiation of the execution of undefined instructions |
US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
US5748964A (en) | 1994-12-20 | 1998-05-05 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions |
US5655100A (en) | 1995-03-31 | 1997-08-05 | Sun Microsystems, Inc. | Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system |
EP0870228B1 (en) | 1995-10-06 | 2003-08-13 | Advanced Micro Devices, Inc. | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor |
US5790825A (en) | 1995-11-08 | 1998-08-04 | Apple Computer, Inc. | Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions |
TW384447B (en) | 1996-01-22 | 2000-03-11 | Infinite Technology Inc | Processor with reconfigurable arithmetic data path |
JPH103416A (ja) | 1996-06-14 | 1998-01-06 | Canon Inc | 情報処理装置およびその方法 |
US6035313A (en) | 1997-03-24 | 2000-03-07 | Motorola, Inc. | Memory address generator for an FFT |
US5870582A (en) | 1997-03-31 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched |
US5937199A (en) | 1997-06-03 | 1999-08-10 | International Business Machines Corporation | User programmable interrupt mask with timeout for enhanced resource locking efficiency |
JP3546678B2 (ja) | 1997-09-12 | 2004-07-28 | 株式会社日立製作所 | マルチos構成方法 |
US6094730A (en) | 1997-10-27 | 2000-07-25 | Hewlett-Packard Company | Hardware-assisted firmware tracing method and apparatus |
US7076784B1 (en) | 1997-10-28 | 2006-07-11 | Microsoft Corporation | Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment |
US6000029A (en) | 1997-11-03 | 1999-12-07 | Motorola, Inc. | Method and apparatus for affecting subsequent instruction processing in a data processor |
US5938778A (en) | 1997-11-10 | 1999-08-17 | International Business Machines Corporation | System and method for tracing instructions in an information handling system without changing the system source code |
KR100246537B1 (ko) | 1997-11-25 | 2000-03-15 | 정선종 | 코드분할 다중접속 시스템에서 파일럿 심벌을 이용한 동기식이중 채널 큐피에스케이 송수신기의 구조 |
SE9704476L (sv) | 1997-12-02 | 1999-06-23 | Ericsson Telefon Ab L M | Utökad instruktionsavkodning |
US6009261A (en) | 1997-12-16 | 1999-12-28 | International Business Machines Corporation | Preprocessing of stored target routines for emulating incompatible instructions on a target processor |
US6202067B1 (en) | 1998-04-07 | 2001-03-13 | Lucent Technologies, Inc. | Method and apparatus for correct and complete transactions in a fault tolerant distributed database system |
US6119129A (en) | 1998-05-14 | 2000-09-12 | Sun Microsystems, Inc. | Multi-threaded journaling in a configuration database |
US6308255B1 (en) | 1998-05-26 | 2001-10-23 | Advanced Micro Devices, Inc. | Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system |
EP0992907B1 (en) | 1998-10-06 | 2005-09-28 | Texas Instruments Inc. | Trace fifo management |
EP0992916A1 (en) | 1998-10-06 | 2000-04-12 | Texas Instruments Inc. | Digital signal processor |
US6151669A (en) | 1998-10-10 | 2000-11-21 | Institute For The Development Of Emerging Architectures, L.L.C. | Methods and apparatus for efficient control of floating-point status register |
US20020147969A1 (en) | 1998-10-21 | 2002-10-10 | Richard A. Lethin | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
US6732307B1 (en) | 1999-10-01 | 2004-05-04 | Hitachi, Ltd. | Apparatus and method for storing trace information |
US7761857B1 (en) | 1999-10-13 | 2010-07-20 | Robert Bedichek | Method for switching between interpretation and dynamic translation in a processor system based upon code sequence execution counts |
US6604188B1 (en) | 1999-10-20 | 2003-08-05 | Transmeta Corporation | Pipeline replay support for multi-cycle operations wherein all VLIW instructions are flushed upon detection of a multi-cycle atom operation in a VLIW instruction |
US6738892B1 (en) | 1999-10-20 | 2004-05-18 | Transmeta Corporation | Use of enable bits to control execution of selected instructions |
JP3776653B2 (ja) | 1999-11-24 | 2006-05-17 | 富士通株式会社 | 演算処理装置 |
US6754809B1 (en) | 1999-12-30 | 2004-06-22 | Texas Instruments Incorporated | Data processing apparatus with indirect register file access |
US6934832B1 (en) | 2000-01-18 | 2005-08-23 | Ati International Srl | Exception mechanism for a computer |
US6665863B1 (en) | 2000-05-31 | 2003-12-16 | Microsoft Corporation | Data referencing within a database graph |
US6826682B1 (en) | 2000-06-26 | 2004-11-30 | Transmeta Corporation | Floating point exception handling in pipelined processor using special instruction to detect generated exception and execute instructions singly from known correct state |
US7246123B2 (en) * | 2000-08-04 | 2007-07-17 | Carr Scott Software Incorporated | Automatic transaction management |
US7287071B2 (en) * | 2000-09-28 | 2007-10-23 | Vignette Corporation | Transaction management system |
US6886094B1 (en) | 2000-09-28 | 2005-04-26 | International Business Machines Corporation | Apparatus and method for detecting and handling exceptions |
US6671686B2 (en) * | 2000-11-02 | 2003-12-30 | Guy Pardon | Decentralized, distributed internet data management |
US7346632B2 (en) | 2001-02-22 | 2008-03-18 | International Business Machines Corporation | Mechanism for executing nested transactions in an execution environment supporting flat transactions only |
US6963919B1 (en) | 2001-02-28 | 2005-11-08 | Agilent Technologies, Inc. | Method and system for improving computer network performance |
US6745272B2 (en) * | 2001-04-04 | 2004-06-01 | Advanced Micro Devices, Inc. | System and method of increasing bandwidth for issuing ordered transactions into a distributed communication system |
US7185234B1 (en) | 2001-04-30 | 2007-02-27 | Mips Technologies, Inc. | Trace control from hardware and software |
US7305678B2 (en) * | 2001-05-17 | 2007-12-04 | International Business Machines Corporation | Method and system for reducing synchronization waits when allocating sequenced identifiers in a multi-threaded server |
US7613762B2 (en) | 2001-05-25 | 2009-11-03 | Sun Microsystems, Inc. | Floating point remainder with embedded status information |
KR100625595B1 (ko) | 2001-05-28 | 2006-09-20 | 한국전자통신연구원 | 트랜잭션 처리 시스템의 병렬 로깅 방법 및 트랜잭션 로그 처리 시스템 |
US6826681B2 (en) | 2001-06-18 | 2004-11-30 | Mips Technologies, Inc. | Instruction specified register value saving in allocated caller stack or not yet allocated callee stack |
US7185183B1 (en) | 2001-08-02 | 2007-02-27 | Mips Technologies, Inc. | Atomic update of CPO state |
US20060218556A1 (en) | 2001-09-28 | 2006-09-28 | Nemirovsky Mario D | Mechanism for managing resource locking in a multi-threaded environment |
US7174463B2 (en) | 2001-10-04 | 2007-02-06 | Lenovo (Singapore) Pte. Ltd. | Method and system for preboot user authentication |
US7313734B2 (en) | 2002-01-14 | 2007-12-25 | International Business Machines Corporation | Method and system for instruction tracing with enhanced interrupt avoidance |
US7546446B2 (en) | 2002-03-08 | 2009-06-09 | Ip-First, Llc | Selective interrupt suppression |
US7496494B2 (en) | 2002-09-17 | 2009-02-24 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
US6892286B2 (en) | 2002-09-30 | 2005-05-10 | Sun Microsystems, Inc. | Shared memory multiprocessor memory model verification system and method |
US7103597B2 (en) | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
US7634638B1 (en) | 2002-10-22 | 2009-12-15 | Mips Technologies, Inc. | Instruction encoding for system register bit set and clear |
US7568023B2 (en) | 2002-12-24 | 2009-07-28 | Hewlett-Packard Development Company, L.P. | Method, system, and data structure for monitoring transaction performance in a managed computer network environment |
US7398355B1 (en) | 2003-02-13 | 2008-07-08 | Sun Microsystems, Inc. | Avoiding locks by transactionally executing critical sections |
US7089374B2 (en) | 2003-02-13 | 2006-08-08 | Sun Microsystems, Inc. | Selectively unmarking load-marked cache lines during transactional program execution |
US7269717B2 (en) | 2003-02-13 | 2007-09-11 | Sun Microsystems, Inc. | Method for reducing lock manipulation overhead during access to critical code sections |
US6862664B2 (en) | 2003-02-13 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus for avoiding locks by speculatively executing critical sections |
US7269693B2 (en) | 2003-02-13 | 2007-09-11 | Sun Microsystems, Inc. | Selectively monitoring stores to support transactional program execution |
US7398359B1 (en) | 2003-04-30 | 2008-07-08 | Silicon Graphics, Inc. | System and method for performing memory operations in a computing system |
CA2472887A1 (en) | 2003-06-30 | 2004-12-30 | Gravic, Inc. | Methods for ensuring referential integrity in multithreaded replication engines |
US7836450B2 (en) | 2003-08-28 | 2010-11-16 | Mips Technologies, Inc. | Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts |
US7197586B2 (en) | 2004-01-14 | 2007-03-27 | International Business Machines Corporation | Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler |
US7703098B1 (en) | 2004-07-20 | 2010-04-20 | Sun Microsystems, Inc. | Technique to allow a first transaction to wait on condition that affects its working set |
US7206903B1 (en) | 2004-07-20 | 2007-04-17 | Sun Microsystems, Inc. | Method and apparatus for releasing memory locations during transactional execution |
US7395382B1 (en) | 2004-08-10 | 2008-07-01 | Sun Microsystems, Inc. | Hybrid software/hardware transactional memory |
US7836280B1 (en) | 2004-09-14 | 2010-11-16 | Azul Systems, Inc. | Dynamic concurrent atomic execution |
US20060064508A1 (en) | 2004-09-17 | 2006-03-23 | Ramesh Panwar | Method and system to store and retrieve message packet data in a communications network |
US7373554B2 (en) | 2004-09-24 | 2008-05-13 | Oracle International Corporation | Techniques for automatic software error diagnostics and correction |
US7856537B2 (en) | 2004-09-30 | 2010-12-21 | Intel Corporation | Hybrid hardware and software implementation of transactional memory access |
EP1657118A1 (en) | 2004-11-11 | 2006-05-17 | IEE INTERNATIONAL ELECTRONICS & ENGINEERING S.A. | Collision recognition device for a vehicle |
US7984248B2 (en) | 2004-12-29 | 2011-07-19 | Intel Corporation | Transaction based shared data operations in a multiprocessor environment |
US7631073B2 (en) | 2005-01-27 | 2009-12-08 | International Business Machines Corporation | Method and apparatus for exposing monitoring violations to the monitored application |
US20060212757A1 (en) | 2005-03-15 | 2006-09-21 | International Business Machines Corporation | Method, system, and program product for managing computer-based interruptions |
US7421544B1 (en) | 2005-04-04 | 2008-09-02 | Sun Microsystems, Inc. | Facilitating concurrent non-transactional execution in a transactional memory system |
US7496726B1 (en) | 2005-04-18 | 2009-02-24 | Sun Microsystems, Inc. | Controlling contention via transactional timers among conflicting transactions issued by processors operating in insistent or polite mode |
US7464161B2 (en) | 2005-06-06 | 2008-12-09 | International Business Machines Corporation | Enabling and disabling byte code inserted probes based on transaction monitoring tokens |
US7350034B2 (en) | 2005-06-20 | 2008-03-25 | International Business Machines Corporation | Architecture support of best-effort atomic transactions for multiprocessor systems |
US7882339B2 (en) | 2005-06-23 | 2011-02-01 | Intel Corporation | Primitives to enhance thread-level speculation |
US20070005828A1 (en) | 2005-06-30 | 2007-01-04 | Nimrod Diamant | Interrupts support for the KCS manageability interface |
CN1713164A (zh) | 2005-07-21 | 2005-12-28 | 复旦大学 | 可自主处理多事务传输要求的dma控制器及数据传输方法 |
EP1913473A1 (en) | 2005-08-01 | 2008-04-23 | Sun Microsystems, Inc. | Avoiding locks by transactionally executing critical sections |
US7870369B1 (en) | 2005-09-28 | 2011-01-11 | Oracle America, Inc. | Abort prioritization in a trace-based processor |
US8799882B2 (en) * | 2005-12-07 | 2014-08-05 | Microsoft Corporation | Compiler support for optimizing decomposed software transactional memory operations |
US20070136289A1 (en) | 2005-12-14 | 2007-06-14 | Intel Corporation | Lock elision with transactional memory |
US20070143755A1 (en) | 2005-12-16 | 2007-06-21 | Intel Corporation | Speculative execution past a barrier |
US8117605B2 (en) | 2005-12-19 | 2012-02-14 | Oracle America, Inc. | Method and apparatus for improving transactional memory interactions by tracking object visibility |
US7730286B2 (en) | 2005-12-30 | 2010-06-01 | Intel Corporation | Software assisted nested hardware transactions |
US7810072B2 (en) | 2006-01-06 | 2010-10-05 | International Business Machines Corporation | Exception thrower |
US20070186056A1 (en) | 2006-02-07 | 2007-08-09 | Bratin Saha | Hardware acceleration for a software transactional memory system |
US8065499B2 (en) | 2006-02-22 | 2011-11-22 | Oracle America, Inc. | Methods and apparatus to implement parallel transactions |
US8099538B2 (en) | 2006-03-29 | 2012-01-17 | Intel Corporation | Increasing functionality of a reader-writer lock |
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 |
US7930695B2 (en) | 2006-04-06 | 2011-04-19 | Oracle America, Inc. | Method and apparatus for synchronizing threads on a processor that supports transactional memory |
US7636829B2 (en) | 2006-05-02 | 2009-12-22 | Intel Corporation | System and method for allocating and deallocating memory within transactional code |
US7594094B2 (en) | 2006-05-19 | 2009-09-22 | International Business Machines Corporation | Move data facility with optional specifications |
US7707394B2 (en) | 2006-05-30 | 2010-04-27 | Arm Limited | Reducing the size of a data stream produced during instruction tracing |
US7849446B2 (en) | 2006-06-09 | 2010-12-07 | Oracle America, Inc. | Replay debugging |
MY149658A (en) | 2006-06-12 | 2013-09-30 | Mobile Money Internat Sdn Bhd | Transaction server |
US20070300013A1 (en) | 2006-06-21 | 2007-12-27 | Manabu Kitamura | Storage system having transaction monitoring capability |
US20080005504A1 (en) | 2006-06-30 | 2008-01-03 | Jesse Barnes | Global overflow method for virtualized transactional memory |
US20080016325A1 (en) | 2006-07-12 | 2008-01-17 | Laudon James P | Using windowed register file to checkpoint register state |
US7617421B2 (en) | 2006-07-27 | 2009-11-10 | Sun Microsystems, Inc. | Method and apparatus for reporting failure conditions during transactional execution |
US7748618B2 (en) | 2006-08-21 | 2010-07-06 | Verizon Patent And Licensing Inc. | Secure near field transaction |
US7865885B2 (en) | 2006-09-27 | 2011-01-04 | Intel Corporation | Using transactional memory for precise exception handling in aggressive dynamic binary optimizations |
US20080086516A1 (en) | 2006-10-04 | 2008-04-10 | Oracle International | Automatically changing a database system's redo transport mode to dynamically adapt to changing workload and network conditions |
EP1918540B1 (en) | 2006-11-06 | 2009-08-26 | GM Global Technology Operations, Inc. | Operating method for a particulate filter, data processor program product and control apparatus therefore |
CN101178787A (zh) | 2006-11-10 | 2008-05-14 | 上海市卢湾区东南医院 | 用于社区老干部保健管理的信息沟通方法 |
US7669040B2 (en) | 2006-12-15 | 2010-02-23 | Sun Microsystems, Inc. | Method and apparatus for executing a long transaction |
JP2008165370A (ja) * | 2006-12-27 | 2008-07-17 | Internatl Business Mach Corp <Ibm> | オンライントランザクション処理を分割し、分散環境で実行するための方法および装置。 |
US8086827B2 (en) | 2006-12-28 | 2011-12-27 | Intel Corporation | Mechanism for irrevocable transactions |
US7802136B2 (en) | 2006-12-28 | 2010-09-21 | Intel Corporation | Compiler technique for efficient register checkpointing to support transaction roll-back |
US7627743B2 (en) | 2007-01-12 | 2009-12-01 | Andes Technology Corporation | Method and circuit implementation for multiple-word transfer into/from memory subsystems |
US20080244544A1 (en) | 2007-03-29 | 2008-10-02 | Naveen Neelakantam | Using hardware checkpoints to support software based speculation |
US8332374B2 (en) | 2007-04-13 | 2012-12-11 | Oracle America, Inc. | Efficient implicit privatization of transactional memory |
US9009452B2 (en) | 2007-05-14 | 2015-04-14 | International Business Machines Corporation | Computing system with transactional memory using millicode assists |
US8117403B2 (en) | 2007-05-14 | 2012-02-14 | International Business Machines Corporation | Transactional memory system which employs thread assists using address history tables |
US7814378B2 (en) | 2007-05-18 | 2010-10-12 | Oracle America, Inc. | Verification of memory consistency and transactional memory |
US20080320282A1 (en) | 2007-06-22 | 2008-12-25 | Morris Robert P | Method And Systems For Providing Transaction Support For Executable Program Components |
US8266387B2 (en) | 2007-06-27 | 2012-09-11 | Microsoft Corporation | Leveraging transactional memory hardware to accelerate virtualization emulation |
US7779232B2 (en) | 2007-08-28 | 2010-08-17 | International Business Machines Corporation | Method and apparatus for dynamically managing instruction buffer depths for non-predicted branches |
US8209689B2 (en) | 2007-09-12 | 2012-06-26 | Intel Corporation | Live lock free priority scheme for memory transactions in transactional memory |
US7904434B2 (en) * | 2007-09-14 | 2011-03-08 | Oracle International Corporation | Framework for handling business transactions |
US7890472B2 (en) | 2007-09-18 | 2011-02-15 | Microsoft Corporation | Parallel nested transactions in transactional memory |
US20090127332A1 (en) | 2007-11-16 | 2009-05-21 | Kyung Yang Park | System for processing payment employing off-line transaction approval mode of mobile card and method thereof |
US20090138890A1 (en) | 2007-11-21 | 2009-05-28 | Arm Limited | Contention management for a hardware transactional memory |
CN101170747A (zh) * | 2007-11-30 | 2008-04-30 | 中兴通讯股份有限公司 | 中继状态调节方法和装置 |
US9391789B2 (en) | 2007-12-14 | 2016-07-12 | Qualcomm Incorporated | Method and system for multi-level distribution information cache management in a mobile environment |
US8195898B2 (en) | 2007-12-27 | 2012-06-05 | Intel Corporation | Hybrid transactions for low-overhead speculative parallelization |
US8065491B2 (en) | 2007-12-30 | 2011-11-22 | Intel Corporation | Efficient non-transactional write barriers for strong atomicity |
US8706982B2 (en) | 2007-12-30 | 2014-04-22 | Intel Corporation | Mechanisms for strong atomicity in a transactional memory system |
US8140497B2 (en) | 2007-12-31 | 2012-03-20 | Oracle America, Inc. | System and method for implementing nonblocking zero-indirection transactional memory |
US7966459B2 (en) | 2007-12-31 | 2011-06-21 | Oracle America, Inc. | System and method for supporting phased transactional memory modes |
US20090182983A1 (en) | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Compare and Branch Facility and Instruction Therefore |
US8041900B2 (en) | 2008-01-15 | 2011-10-18 | Oracle America, Inc. | Method and apparatus for improving transactional memory commit latency |
US8176280B2 (en) | 2008-02-25 | 2012-05-08 | International Business Machines Corporation | Use of test protection instruction in computing environments that support pageable guests |
US8380907B2 (en) | 2008-02-26 | 2013-02-19 | International Business Machines Corporation | Method, system and computer program product for providing filtering of GUEST2 quiesce requests |
US8161273B2 (en) | 2008-02-26 | 2012-04-17 | Oracle America, Inc. | Method and apparatus for programmatically rewinding a register inside a transaction |
US8688628B2 (en) | 2008-02-29 | 2014-04-01 | Red Hat, Inc. | Nested queued transaction manager |
EP2096564B1 (en) | 2008-02-29 | 2018-08-08 | Euroclear SA/NV | Improvements relating to handling and processing of massive numbers of processing instructions in real time |
US8316366B2 (en) | 2008-04-02 | 2012-11-20 | Oracle America, Inc. | Facilitating transactional execution in a processor that supports simultaneous speculative threading |
US20090260011A1 (en) | 2008-04-14 | 2009-10-15 | Microsoft Corporation | Command line transactions |
JP5385545B2 (ja) | 2008-04-17 | 2014-01-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | トランザクションの実行を制御する装置及び方法 |
US9367363B2 (en) | 2008-05-12 | 2016-06-14 | Oracle America, Inc. | System and method for integrating best effort hardware mechanisms for supporting transactional memory |
US8612950B2 (en) | 2008-06-19 | 2013-12-17 | Intel Corporation | Dynamic optimization for removal of strong atomicity barriers |
US7996686B2 (en) | 2008-07-07 | 2011-08-09 | International Business Machines Corporation | Branch trace methodology |
EP2332043B1 (en) * | 2008-07-28 | 2018-06-13 | Advanced Micro Devices, Inc. | Virtualizable advanced synchronization facility |
US9449314B2 (en) | 2008-10-02 | 2016-09-20 | International Business Machines Corporation | Virtualization of a central processing unit measurement facility |
US8191046B2 (en) | 2008-10-06 | 2012-05-29 | Microsoft Corporation | Checking transactional memory implementations |
US20100122073A1 (en) | 2008-11-10 | 2010-05-13 | Ravi Narayanaswamy | Handling exceptions in software transactional memory systems |
JP4702962B2 (ja) * | 2008-11-12 | 2011-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリ制御装置、プログラム及び方法 |
US8789057B2 (en) | 2008-12-03 | 2014-07-22 | Oracle America, Inc. | System and method for reducing serialization in transactional memory using gang release of blocked threads |
US8672820B2 (en) | 2008-12-04 | 2014-03-18 | Honda Motor Co., Ltd. | Tool stocker, machine tool system, and tool damage detecting apparatus |
US20100153776A1 (en) | 2008-12-12 | 2010-06-17 | Sun Microsystems, Inc. | Using safepoints to provide precise exception semantics for a virtual machine |
US9274855B2 (en) | 2008-12-24 | 2016-03-01 | Intel Corporation | Optimization for safe elimination of weak atomicity overhead |
US10210018B2 (en) | 2008-12-24 | 2019-02-19 | Intel Corporation | Optimizing quiescence in a software transactional memory (STM) system |
US8914620B2 (en) | 2008-12-29 | 2014-12-16 | Oracle America, Inc. | Method and system for reducing abort rates in speculative lock elision using contention management mechanisms |
US8799582B2 (en) | 2008-12-30 | 2014-08-05 | Intel Corporation | Extending cache coherency protocols to support locally buffered data |
CN101710433A (zh) | 2008-12-31 | 2010-05-19 | 深圳市江波龙电子有限公司 | 一种电子支付卡的交易方法及电子支付卡 |
US9170844B2 (en) | 2009-01-02 | 2015-10-27 | International Business Machines Corporation | Prioritization for conflict arbitration in transactional memory management |
CN101819518B (zh) | 2009-02-26 | 2013-09-11 | 国际商业机器公司 | 在事务内存中快速保存上下文的方法和装置 |
US8266107B2 (en) | 2009-03-11 | 2012-09-11 | International Business Machines Corporation | Method for mirroring a log file by threshold driven synchronization |
US9940138B2 (en) | 2009-04-08 | 2018-04-10 | Intel Corporation | Utilization of register checkpointing mechanism with pointer swapping to resolve multithreading mis-speculations |
US20100307689A1 (en) | 2009-06-06 | 2010-12-09 | Michael James Huebner | Pivoting tape dispenser |
US8973004B2 (en) | 2009-06-26 | 2015-03-03 | Oracle America, Inc. | Transactional locking with read-write locks in transactional memory systems |
US8489864B2 (en) | 2009-06-26 | 2013-07-16 | Microsoft Corporation | Performing escape actions in transactions |
CN102460376B (zh) | 2009-06-26 | 2016-05-18 | 英特尔公司 | 无约束事务存储器(utm)系统的优化 |
US8356166B2 (en) | 2009-06-26 | 2013-01-15 | Microsoft Corporation | Minimizing code duplication in an unbounded transactional memory system by using mode agnostic transactional read and write barriers |
US8229907B2 (en) * | 2009-06-30 | 2012-07-24 | Microsoft Corporation | Hardware accelerated transactional memory system with open nested transactions |
US8281185B2 (en) | 2009-06-30 | 2012-10-02 | Oracle America, Inc. | Advice-based feedback for transactional execution |
US8688964B2 (en) | 2009-07-20 | 2014-04-01 | Microchip Technology Incorporated | Programmable exception processing latency |
GB2472620B (en) * | 2009-08-12 | 2016-05-18 | Cloudtran Inc | Distributed transaction processing |
US8392694B2 (en) | 2009-09-15 | 2013-03-05 | International Business Machines Corporation | System and method for software initiated checkpoint operations |
GB2474446A (en) | 2009-10-13 | 2011-04-20 | Advanced Risc Mach Ltd | Barrier requests to maintain transaction order in an interconnect with multiple paths |
US8327188B2 (en) | 2009-11-13 | 2012-12-04 | Oracle America, Inc. | Hardware transactional memory acceleration through multiple failure recovery |
US8516202B2 (en) | 2009-11-16 | 2013-08-20 | International Business Machines Corporation | Hybrid transactional memory system (HybridTM) and method |
US9529839B2 (en) * | 2009-12-07 | 2016-12-27 | International Business Machines Corporation | Applying limited-size hardware transactional memory to arbitrarily large data structure |
US9092253B2 (en) | 2009-12-15 | 2015-07-28 | Microsoft Technology Licensing, Llc | Instrumentation of hardware assisted transactional memory system |
US8316194B2 (en) | 2009-12-15 | 2012-11-20 | Intel Corporation | Mechanisms to accelerate transactions using buffered stores |
US8290991B2 (en) | 2009-12-15 | 2012-10-16 | Juniper Networks, Inc. | Atomic deletion of database data categories |
US8521995B2 (en) * | 2009-12-15 | 2013-08-27 | Intel Corporation | Handling operating system (OS) transitions in an unbounded transactional memory (UTM) mode |
US8095824B2 (en) | 2009-12-15 | 2012-01-10 | Intel Corporation | Performing mode switching in an unbounded transactional memory (UTM) system |
US8301849B2 (en) | 2009-12-23 | 2012-10-30 | Intel Corporation | Transactional memory in out-of-order processors with XABORT having immediate argument |
KR101639672B1 (ko) | 2010-01-05 | 2016-07-15 | 삼성전자주식회사 | 무한 트랜잭션 메모리 시스템 및 그 동작 방법 |
US8549468B2 (en) | 2010-02-08 | 2013-10-01 | National Tsing Hua University | Method, system and computer readable storage device for generating software transaction-level modeling (TLM) model |
US8850166B2 (en) | 2010-02-18 | 2014-09-30 | International Business Machines Corporation | Load pair disjoint facility and instruction therefore |
US20110208921A1 (en) | 2010-02-19 | 2011-08-25 | Pohlack Martin T | Inverted default semantics for in-speculative-region memory accesses |
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 |
US8438568B2 (en) | 2010-02-24 | 2013-05-07 | International Business Machines Corporation | Speculative thread execution with hardware transactional memory |
US8402227B2 (en) | 2010-03-31 | 2013-03-19 | Oracle International Corporation | System and method for committing results of a software transaction using a hardware transaction |
US8464261B2 (en) | 2010-03-31 | 2013-06-11 | Oracle International Corporation | System and method for executing a transaction using parallel co-transactions |
US8631223B2 (en) | 2010-05-12 | 2014-01-14 | International Business Machines Corporation | Register file supporting transactional processing |
US9626187B2 (en) * | 2010-05-27 | 2017-04-18 | International Business Machines Corporation | Transactional memory system supporting unbroken suspended execution |
US20110302143A1 (en) * | 2010-06-02 | 2011-12-08 | Microsoft Corporation | Multi-version concurrency with ordered timestamps |
US9880848B2 (en) | 2010-06-11 | 2018-01-30 | Advanced Micro Devices, Inc. | Processor support for hardware transactional memory |
US8560816B2 (en) * | 2010-06-30 | 2013-10-15 | Oracle International Corporation | System and method for performing incremental register checkpointing in transactional memory |
US8479053B2 (en) | 2010-07-28 | 2013-07-02 | Intel Corporation | Processor with last branch record register storing transaction indicator |
US8561033B2 (en) | 2010-07-30 | 2013-10-15 | International Business Machines Corporation | Selective branch-triggered trace generation apparatus and method |
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 |
US9552206B2 (en) | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
US9122476B2 (en) | 2010-12-07 | 2015-09-01 | Advanced Micro Devices, Inc. | Programmable atomic memory using hardware validation agent |
US8442962B2 (en) | 2010-12-28 | 2013-05-14 | Sap Ag | Distributed transaction management using two-phase commit optimization |
US8818867B2 (en) | 2011-11-14 | 2014-08-26 | At&T Intellectual Property I, L.P. | Security token for mobile near field communication transactions |
US9158660B2 (en) | 2012-03-16 | 2015-10-13 | International Business Machines Corporation | Controlling operation of a run-time instrumentation facility |
US9442824B2 (en) | 2012-03-16 | 2016-09-13 | International Business Machines Corporation | Transformation of a program-event-recording event into a run-time instrumentation event |
US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
US9311101B2 (en) | 2012-06-15 | 2016-04-12 | International Business Machines Corporation | Intra-instructional transaction abort handling |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
-
2012
- 2012-06-15 US US13/524,921 patent/US8688661B2/en active Active
-
2013
- 2013-03-08 US US13/789,808 patent/US9766925B2/en active Active
- 2013-05-10 TW TW102116782A patent/TWI533219B/zh active
- 2013-06-12 KR KR1020147034662A patent/KR101634481B1/ko active IP Right Grant
- 2013-06-12 WO PCT/IB2013/054812 patent/WO2013186721A2/en active Application Filing
- 2013-06-12 DK DK13804476.3T patent/DK2862070T3/da active
- 2013-06-12 JP JP2015516729A patent/JP6222670B2/ja active Active
- 2013-06-12 ES ES13804476T patent/ES2727124T3/es active Active
- 2013-06-12 CN CN201380027238.7A patent/CN104412232B/zh active Active
- 2013-06-12 AU AU2013276133A patent/AU2013276133B2/en active Active
- 2013-06-12 RU RU2014143109A patent/RU2606878C2/ru active
- 2013-06-12 EP EP13804476.3A patent/EP2862070B1/en active Active
- 2013-06-12 CA CA2874236A patent/CA2874236C/en active Active
- 2013-06-12 SG SG11201407502UA patent/SG11201407502UA/en unknown
-
2014
- 2014-09-09 IL IL234563A patent/IL234563B/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
WO2013186721A2 (en) | 2013-12-19 |
TWI533219B (zh) | 2016-05-11 |
RU2606878C2 (ru) | 2017-01-10 |
CA2874236A1 (en) | 2013-12-19 |
EP2862070A4 (en) | 2015-09-16 |
SG11201407502UA (en) | 2014-12-30 |
US9766925B2 (en) | 2017-09-19 |
EP2862070B1 (en) | 2019-04-17 |
WO2013186721A3 (en) | 2014-05-30 |
US8688661B2 (en) | 2014-04-01 |
IL234563B (en) | 2018-08-30 |
CN104412232A (zh) | 2015-03-11 |
DK2862070T3 (da) | 2019-05-20 |
AU2013276133B2 (en) | 2016-06-30 |
KR101634481B1 (ko) | 2016-07-08 |
CN104412232B (zh) | 2018-02-06 |
US20130339329A1 (en) | 2013-12-19 |
JP2015525408A (ja) | 2015-09-03 |
TW201413593A (zh) | 2014-04-01 |
ES2727124T3 (es) | 2019-10-14 |
AU2013276133A1 (en) | 2014-12-11 |
CA2874236C (en) | 2021-07-27 |
US20130339961A1 (en) | 2013-12-19 |
KR20150013740A (ko) | 2015-02-05 |
EP2862070A2 (en) | 2015-04-22 |
RU2014143109A (ru) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6222670B2 (ja) | トランザクション処理 | |
US11080087B2 (en) | Transaction begin/end instructions | |
US10353759B2 (en) | Facilitating transaction completion subsequent to repeated aborts of the transaction | |
JP6086406B2 (ja) | トランザクション処理における選択されたレジスタの保存/復元 | |
JP6238248B2 (ja) | 制約付きトランザクションの実行 | |
JP6253065B2 (ja) | トランザクション処理における命令実行の選択的制御 | |
JP6234448B2 (ja) | トランザクション実行分岐表示 | |
JP6138249B2 (ja) | トランザクション診断ブロック | |
JP6206886B2 (ja) | Transaction abort命令 | |
JP6218815B2 (ja) | コンピューティング環境においてトランザクション実行に関連付けられた処理を実行するための方法、システム、およびプログラム(トランザクション実行における制限された命令) | |
JP6218433B2 (ja) | トランザクションの完了を容易にするためのプロセッサ内での処理の制限 | |
JP6222669B2 (ja) | プロセッサ支援ファシリティ | |
JP6176637B2 (ja) | トランザクション環境内でのプログラム・イベント記録 | |
JP6091608B2 (ja) | Nontransactional store命令 | |
JP6143025B2 (ja) | トランザクション実行におけるプログラム割り込みフィルタ処理 | |
JP6168537B2 (ja) | トランザクション実行内でのランダム化されたテスト |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160524 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170620 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170825 |
|
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: 20170905 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20170905 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170926 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6222670 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |