JP6521997B2 - 比較及び遅延(compare and delay)命令 - Google Patents
比較及び遅延(compare and delay)命令 Download PDFInfo
- Publication number
- JP6521997B2 JP6521997B2 JP2016554431A JP2016554431A JP6521997B2 JP 6521997 B2 JP6521997 B2 JP 6521997B2 JP 2016554431 A JP2016554431 A JP 2016554431A JP 2016554431 A JP2016554431 A JP 2016554431A JP 6521997 B2 JP6521997 B2 JP 6521997B2
- Authority
- JP
- Japan
- Prior art keywords
- operand
- instruction
- processor
- computer
- comparison result
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30079—Pipeline control instructions, e.g. multicycle NOP
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
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)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Description
*遅延をもたらすオペランド値の関係が、もはや、その値が1であるM3フィールドにおけるビット位置により表されない。この場合、命令は完了する。
*イネーブルにされた割り込みが保留状態にされる。この場合、命令は無効化される(命令実行は進まないが、同じ命令に戻る)ことも、又は完了する(命令実行は次の命令に進む)こともある。
*モデル依存のタイムリミット(time limit)に達する。この例において、このタイムリミットは、およそ1ミリ秒を超えない。この場合、命令は完了する。
*モデル依存のCPUにより決定される理由が認識される。この場合、命令は、無効化されることも、又は完了することもある。
*第2のオペランドは、そのサイズに対応する整数境界上にあるべきであり、他の場合には、指定例外が認識される。
*問題状態において、制御レジスタ2のビット60が0であるとき、特権操作例外が認識される。
0 オペランドが等しい
1 第1のオペランドが小さい
2 第1のオペランドが大きい
3 −−
*アクセス(フェッチ、第2のオペランド)
*操作例外(遅延ファシリティがインストールされていない場合)
*特権操作
*指定
*トランザクション制約
1.M3フィールドのビット位置0−2が0を含むとき、命令は、遅延を引き起こさない。M3フィールドのビット位置0−2が111(2進数)を含むとき、遅延が発生する。
2.COMPARE AND DELAYの完了時、別のCPU又はI/Oサブシステムからのストアが原因で、条件コードにより示される比較が依然として真であることは保証されない。
3.プログラムの要件に応じて、COMPARE AND SWAP命令などにより、第2のオペランドの値を変更する前に、これを再び検証する必要があることがある。
*遅延をもたらすオペランド値の関係が、もはや、その値が1であるM3フィールドにおけるビット位置により表されない。
*イネーブルにされた割り込みが保留状態にされる。
*モデル依存のタイムアウトに達する。又は、
*モデル依存のCPU決定条件が認識される。
上記は、タイムリミットについて言及するが、任意の他の限界値を用いてもよい。
特徴は、以下の通りである。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないが、より高レベルの抽象化では位置(例えば、国、州、又はデータセンタ)を特定できる場合があるという点で、位置とは独立しているといえる。
迅速な弾力性:機能は、迅速かつ弾力的に、幾つかの場合自動的に、プロビジョニングして素早くスケール・アウトし、迅速にリリースして素早くスケール・インさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
サービスの測定:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告し、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
Software as a Service(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定の考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上に配備するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対して制御を有する。
Infrastructure as a Service(IaaS):コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択の限定された制御を有する。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられる2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
102、202:中央プロセッサ・コンプレックス(CPC)
104、204、304:プロセッサ・メモリ
106、206、306:入力/出力(I/O)デバイス
108、308:バス
110、210:中央プロセッサ
111、211:入力/出力(I/O)サブシステム
112、212:パーティション
114、214:論理パーティション・ハイパーバイザ
120、220:アプリケーション
122、222:オペレーティング・システム
208:制御ユニット
213:プロセッサ・ファームウェア
302:ネイティブ中央演算処理ユニット
312:エミュレータ・コード
350:ゲスト命令
354:命令変換ルーチン
356:ネイティブ命令
360:制御ルーチン
400:COMPARE AND DELAY(CAD)命令
402a、402b、452a、452b:オペコード・フィールド
404、454:レジスタ・フィールド
406、456:マスク・フィールド
408、458:ベース・フィールド
410、460:第1の変位フィールド
412、462:第2の変位フィールド
450:COMPARE AND DELAY(CADG)命令
700:コンピュータ・プログラム製品
Claims (11)
- マルチスレッド・コンピューティング環境においてマシン命令を実行するためのコンピュータ・プログラムであって、
方法を実施するための、処理回路により実行される命令を含み、前記方法は、
プロセッサにより、実行のためのマシン命令を取得することであって、前記マシン命令は、コンピュータ・アーキテクチャによるコンピュータ実行のために定められたものであり、かつ、比較及び遅延操作を指定するためのオペコードと、第1のオペランドを取得するのに用いられる1つ又は複数の第1のフィールドと、第2のオペランドを取得するのに用いられる1つ又は複数の第2のフィールドとを含む、取得することと、
前記プロセッサにより、前記マシン命令を実行することと、
を含み、前記実行することは、
前記第1のオペランドと前記第2のオペランドを比較して、比較結果を得ることと、
前記比較結果に対応するマスク・インジケータが所定の値に設定されるかどうかを判断することと、
前記比較結果に対応する前記マスク・インジケータが前記所定の値に設定されることに基づいて、所定のイベントの発生まで、前記マシン命令の完了を遅延させることと、
前記マシン命令の完了が遅延されている間、別のスレッドをディスパッチして、進行させることと、
を含む、コンピュータ・プログラム。 - 前記比較結果に対応する前記マスク・インジケータが前記所定の値に設定されないことに基づいて、前記マシン命令を完了する、請求項1に記載のコンピュータ・プログラム。
- 前記第1のオペランドを取得するのに用いられる前記1つ又は複数の第1のフィールドはレジスタ・フィールドを含み、前記レジスタ・フィールドはレジスタの指定を含み、前記レジスタは前記第1のオペランドを含み、
前記第2のオペランドを取得するのに用いられる前記1つ又は複数の第2のフィールドは、ベース・フィールド、第1の変位フィールド及び第2の変位フィールドを含み、前記ベース・フィールドにおいて指定されたレジスタの内容を、前記第2の変位フィールド及び前記第1の変位フィールドの連結に加えて、メモリにおける前記第2のオペランドのアドレスを与える、請求項1に記載のコンピュータ・プログラム。 - 前記マシン命令はマスク・フィールドをさらに含み、前記マスク・フィールドは前記マスク・インジケータを含む、請求項1に記載のコンピュータ・プログラム。
- 前記比較結果は、等しい、前記第1のオペランドが前記第2のオペランドより小さい、又は前記第1のオペランドが前記第2のオペランドより大きいのうちの1つを含み、前記マスク・フィールドは、等しい場合の第1のマスク・インジケータ、前記第1のオペランドが前記第2のオペランドより小さい場合の第2のマスク・インジケータ、又は前記第1のオペランドが前記第2のオペランドより大きい場合の第3のマスク・インジケータを含み、前記マスク・インジケータは、前記比較結果に応じて、前記第1のマスク・インジケータ、前記第2のマスク・インジケータ、又は前記第3のマスク・インジケータのうちの1つである、請求項4に記載のコンピュータ・プログラム。
- 前記第1のマスク・インジケータの値が0であり、前記第2のマスク・インジケータの値が1であり、前記第3のマスク・インジケータの値が2であり、
前記プロセッサは、前記比較結果が第2のマスク・インジケータの値である1の場合、前記所定のイベントの発生まで、前記マシン命令の完了を遅延させ、
前記プロセッサは、前記比較結果が第1又は第3のマスク・インジケータの値である0又は2の場合、前記マシン命令を完了する、請求項5に記載のコンピュータ・プログラム。 - 前記マシン命令の完了を遅延させる間、前記第2のオペランドが監視され、前記所定のイベントは、前記第1のオペランドと前記第2のオペランドの別の比較から得られる前記比較結果に対応する前記マスク・インジケータが前記所定の値に設定されないと判断することを含む、請求項1に記載のコンピュータ・プログラム。
- 前記方法は、前記プロセッサがスーパーバイザ状態にないことに基づいて、前記マシン命令に、非特権状態で実行する権限が与えられているかどうかについて判断することと、前記判断することが、前記プロセッサがスーパーバイザ状態にないとき、前記マシン命令に、前記非特権状態で実行する権限が与えられていることを示すことに基づいて、前記第1のオペランドと前記第2のオペランドの前記比較を実施することとをさらに含む、請求項1に記載のコンピュータ・プログラム。
- 前記方法は、前記マシン命令に関する条件コードを決定することをさらに含み、前記条件コードを決定することは前記比較結果を使用し、等しい比較結果の場合、前記条件コードは第1の値であり、前記第1のオペランドが前記第2のオペランドより小さい比較結果の場合、前記条件コードは第2の値であり、前記第1のオペランドが前記第2のオペランドより大きい比較結果の場合、前記条件コードは第3の値である、請求項1に記載のコンピュータ・プログラム。
- マルチスレッド・コンピューティング環境においてマシン命令を実行するためのコンピュータ・システムであって、
メモリと、
前記メモリと通信するプロセッサと、
を含み、前記コンピュータ・システムは方法を実行するように構成され、前記方法は、
前記プロセッサにより、実行のためのマシン命令を取得することであって、前記マシン命令は、コンピュータ・アーキテクチャによるコンピュータ実行のために定められたものであり、かつ、比較及び遅延操作を指定するためのオペコードと、第1のオペランドを取得するのに用いられる1つ又は複数の第1のフィールドと、第2のオペランドを取得するのに用いられる1つ又は複数の第2のフィールドとを含む、取得することと、
前記プロセッサにより、前記マシン命令を実行することと、
を含み、前記実行することは、
前記第1のオペランドと前記第2のオペランドを比較して、比較結果を得ることと、
前記比較結果に対応するマスク・インジケータが所定の値に設定されるかどうかを判断することと、
前記比較結果に対応するマスク・インジケータが所定の値に設定されることに基づいて、所定のイベントの発生まで、前記マシン命令の完了を遅延させることと、
前記マシン命令の完了が遅延されている間、別のスレッドをディスパッチして、進行させることと、
を含む、コンピュータ・システム。 - マルチスレッド・コンピューティング環境においてマシン命令を実行する方法であって、
プロセッサにより、実行のためのマシン命令を取得することであって、前記マシン命令は、コンピュータ・アーキテクチャによるコンピュータ実行のために定められたものであり、かつ、
比較及び遅延操作を指定するためのオペコードと、
第1のオペランドを取得するのに用いられる1つ又は複数の第1のフィールドと、
第2のオペランドを取得するのに用いられる1つ又は複数の第2のフィールドと、
を含む、取得することと、
前記プロセッサにより、前記マシン命令を実行することと、
を含み、前記実行することは、
前記第1のオペランドと前記第2のオペランドを比較して、比較結果を得ることと、
前記比較結果に対応するマスク・インジケータが所定の値に設定されるかどうかを判断することと、
前記比較結果に対応するマスク・インジケータが所定の値に設定されることに基づいて、所定のイベントの発生まで、前記マシン命令の完了を遅延させることと、
前記マシン命令の完了が遅延されている間、別のスレッドをディスパッチして、進行させることと、
を含む、方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/212,378 US10120681B2 (en) | 2014-03-14 | 2014-03-14 | Compare and delay instructions |
| US14/212,378 | 2014-03-14 | ||
| PCT/EP2015/053716 WO2015135743A1 (en) | 2014-03-14 | 2015-02-23 | Compare and delay instructions |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2017511931A JP2017511931A (ja) | 2017-04-27 |
| JP6521997B2 true JP6521997B2 (ja) | 2019-05-29 |
Family
ID=52573674
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016554431A Active JP6521997B2 (ja) | 2014-03-14 | 2015-02-23 | 比較及び遅延(compare and delay)命令 |
Country Status (6)
| Country | Link |
|---|---|
| US (3) | US10120681B2 (ja) |
| JP (1) | JP6521997B2 (ja) |
| CN (1) | CN106133680B (ja) |
| DE (1) | DE112015000203B4 (ja) |
| GB (1) | GB2539601A (ja) |
| WO (1) | WO2015135743A1 (ja) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10896155B2 (en) * | 2013-08-23 | 2021-01-19 | Vmware, Inc. | Opening unsupported file types through remoting sessions |
| US10120681B2 (en) | 2014-03-14 | 2018-11-06 | International Business Machines Corporation | Compare and delay instructions |
| 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 |
| US10705841B2 (en) | 2015-06-24 | 2020-07-07 | International Business Machines Corporation | Instruction to perform a logical operation on conditions and to quantize the Boolean result of that operation |
| US10620952B2 (en) | 2015-06-24 | 2020-04-14 | International Business Machines Corporation | Conversion of boolean conditions |
| US10698688B2 (en) | 2015-06-24 | 2020-06-30 | International Business Machines Corporation | Efficient quantization of compare results |
| GB2544994A (en) * | 2015-12-02 | 2017-06-07 | Swarm64 As | Data processing |
| US10423191B2 (en) * | 2017-01-19 | 2019-09-24 | International Business Machines Corporation | Clock comparator sign control |
| TWI773959B (zh) | 2019-01-31 | 2022-08-11 | 美商萬國商業機器公司 | 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品 |
| SG11202104428PA (en) | 2019-01-31 | 2021-05-28 | Ibm | Handling an input/output store instruction |
| CN113366457B (zh) | 2019-01-31 | 2024-06-14 | 国际商业机器公司 | 处理输入/输出存储指令 |
| TWI767175B (zh) * | 2019-01-31 | 2022-06-11 | 美商萬國商業機器公司 | 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品 |
| US11868773B2 (en) | 2022-01-06 | 2024-01-09 | International Business Machines Corporation | Inferring future value for speculative branch resolution in a microprocessor |
Family Cites Families (43)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3411147A (en) | 1966-03-24 | 1968-11-12 | Burroughs Corp | Apparatus for executing halt instructions in a multi-program processor |
| US5471593A (en) * | 1989-12-11 | 1995-11-28 | Branigin; Michael H. | Computer processor with an efficient means of executing many instructions simultaneously |
| JP2779032B2 (ja) | 1990-01-23 | 1998-07-23 | 株式会社日立製作所 | 情報処理装置 |
| WO1994027215A1 (en) | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
| US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
| 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 |
| CN1113289C (zh) * | 1997-03-04 | 2003-07-02 | 松下电器产业株式会社 | 能执行多异步运行任务中的异步事件任务的处理器 |
| US5918057A (en) | 1997-03-20 | 1999-06-29 | Industrial Technology Research Institute | Method and apparatus for dispatching multiple interrupt requests simultaneously |
| 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 |
| US6079008A (en) * | 1998-04-03 | 2000-06-20 | Patton Electronics Co. | Multiple thread multiple data predictive coded parallel processing system and method |
| 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 |
| US6463582B1 (en) | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
| US7107478B2 (en) | 2002-12-05 | 2006-09-12 | Connex Technology, Inc. | Data processing system having a Cartesian Controller |
| US6931517B1 (en) * | 2001-10-23 | 2005-08-16 | Ip-First, Llc | Pop-compare micro instruction for repeat string operations |
| US7971030B2 (en) | 2002-08-07 | 2011-06-28 | Mmagix Technology Limited | Method for using multiple processing resources which share multiple co-processor resources |
| US7426629B2 (en) | 2002-12-12 | 2008-09-16 | Arm Limited | Processing activity masking in a data processing system |
| US8607241B2 (en) | 2004-06-30 | 2013-12-10 | Intel Corporation | Compare and exchange operation using sleep-wakeup mechanism |
| US7149831B2 (en) | 2004-09-27 | 2006-12-12 | Hewlett-Packard Development Company, L.P. | Batch processing of interrupts |
| US20060136642A1 (en) | 2004-12-21 | 2006-06-22 | Ooi Ping C | Interrupt distribution for multiprocessor system |
| US20070006178A1 (en) | 2005-05-12 | 2007-01-04 | Microsoft Corporation | Function-level just-in-time translation engine with multiple pass optimization |
| US7454599B2 (en) * | 2005-09-19 | 2008-11-18 | Via Technologies, Inc. | Selecting multiple threads for substantially concurrent processing |
| US8321637B2 (en) | 2007-05-14 | 2012-11-27 | International Business Machines Corporation | Computing system with optimized support for transactional memory |
| US7685347B2 (en) | 2007-12-11 | 2010-03-23 | Xilinx, Inc. | Interrupt controller for invoking service routines with associated priorities |
| US7793052B2 (en) | 2007-12-31 | 2010-09-07 | Oracle America, Inc. | System and method for implementing hybrid single-compare-single-store operations |
| US20090182988A1 (en) | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Compare Relative Long Facility and Instructions Therefore |
| US20090182983A1 (en) | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Compare and Branch Facility and Instruction Therefore |
| US7975130B2 (en) | 2008-02-20 | 2011-07-05 | International Business Machines Corporation | Method and system for early instruction text based operand store compare reject avoidance |
| US8359459B2 (en) | 2008-05-27 | 2013-01-22 | Oracle America, Inc. | Using hardware support to reduce synchronization costs in multithreaded applications |
| EP2332043B1 (en) | 2008-07-28 | 2018-06-13 | Advanced Micro Devices, Inc. | Virtualizable advanced synchronization facility |
| US8412889B2 (en) | 2008-10-16 | 2013-04-02 | Microsoft Corporation | Low-level conditional synchronization support |
| US8296524B2 (en) | 2009-06-26 | 2012-10-23 | Oracle America, Inc. | Supporting efficient spin-locks and other types of synchronization in a cache-coherent multiprocessor system |
| 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 |
| US8549504B2 (en) | 2010-09-25 | 2013-10-01 | Intel Corporation | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region |
| US20120079245A1 (en) | 2010-09-25 | 2012-03-29 | Cheng Wang | Dynamic optimization for conditional commit |
| US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
| US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
| US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
| US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
| US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
| US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
| US10120681B2 (en) | 2014-03-14 | 2018-11-06 | International Business Machines Corporation | Compare and delay instructions |
| US9454370B2 (en) | 2014-03-14 | 2016-09-27 | International Business Machines Corporation | Conditional transaction end instruction |
| US9558032B2 (en) | 2014-03-14 | 2017-01-31 | International Business Machines Corporation | Conditional instruction end operation |
-
2014
- 2014-03-14 US US14/212,378 patent/US10120681B2/en active Active
- 2014-11-26 US US14/554,153 patent/US10169038B2/en active Active
-
2015
- 2015-02-23 CN CN201580013692.6A patent/CN106133680B/zh active Active
- 2015-02-23 DE DE112015000203.0T patent/DE112015000203B4/de active Active
- 2015-02-23 WO PCT/EP2015/053716 patent/WO2015135743A1/en not_active Ceased
- 2015-02-23 JP JP2016554431A patent/JP6521997B2/ja active Active
- 2015-02-23 GB GB1617085.4A patent/GB2539601A/en not_active Withdrawn
-
2018
- 2018-10-08 US US16/154,231 patent/US10831476B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US20150261529A1 (en) | 2015-09-17 |
| US10169038B2 (en) | 2019-01-01 |
| US20150261530A1 (en) | 2015-09-17 |
| US10831476B2 (en) | 2020-11-10 |
| DE112015000203T5 (de) | 2016-09-01 |
| GB2539601A (en) | 2016-12-21 |
| US20190050227A1 (en) | 2019-02-14 |
| DE112015000203B4 (de) | 2024-12-05 |
| GB201617085D0 (en) | 2016-11-23 |
| CN106133680B (zh) | 2018-12-14 |
| JP2017511931A (ja) | 2017-04-27 |
| WO2015135743A1 (en) | 2015-09-17 |
| US10120681B2 (en) | 2018-11-06 |
| CN106133680A (zh) | 2016-11-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6521997B2 (ja) | 比較及び遅延(compare and delay)命令 | |
| AU2015233738B2 (en) | Managing processing associated with selected architectural facilities | |
| JP6585612B2 (ja) | アーキテクチャ・モードの構成 | |
| JP6437008B2 (ja) | 複数のアーキテクチャにおいて初期化することができる制御ユーティリティのための共通ブート・シーケンス | |
| US9720661B2 (en) | Selectively controlling use of extended mode features | |
| US9569115B2 (en) | Transparent code patching | |
| US9734083B2 (en) | Separate memory address translations for instruction fetches and data accesses | |
| JP6407298B2 (ja) | 条件付きトランザクション終了(conditional transaction end)命令 | |
| JP6005149B2 (ja) | 結合ファシリティを試験するためのオペレータ・メッセージ・コマンド | |
| JP2020514856A (ja) | コンピューティング環境内の処理を容易にするためのコンピュータ・プログラム、コンピュータ・システムおよびコンピュータ実装方法 | |
| JP6537521B2 (ja) | 条件付き命令終了(conditional instruction end)操作 | |
| US9710382B2 (en) | Hierarchical translation structures providing separate translations for instruction fetches and data accesses | |
| IL265557A (en) | Temporary delay of processing an operand memory request is limited | |
| HK40006833A (en) | Temporarily suppressing processing of a restrained storage operand request |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161014 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171025 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180815 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180821 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181120 |
|
| 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: 20190402 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190423 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6521997 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |