JP6095670B2 - コンピュータ・システム内のオペランド活性情報の維持 - Google Patents
コンピュータ・システム内のオペランド活性情報の維持 Download PDFInfo
- Publication number
- JP6095670B2 JP6095670B2 JP2014532528A JP2014532528A JP6095670B2 JP 6095670 B2 JP6095670 B2 JP 6095670B2 JP 2014532528 A JP2014532528 A JP 2014532528A JP 2014532528 A JP2014532528 A JP 2014532528A JP 6095670 B2 JP6095670 B2 JP 6095670B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- operand
- program
- value
- 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.)
- Expired - Fee Related
Links
- 230000000694 effects Effects 0.000 title claims description 31
- 238000012423 maintenance Methods 0.000 title description 2
- 238000000034 method Methods 0.000 claims description 66
- 238000012545 processing Methods 0.000 claims description 46
- 238000007667 floating Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004913 activation Effects 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 24
- 230000007246 mechanism Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 18
- 230000007704 transition Effects 0.000 description 11
- 238000005192 partition Methods 0.000 description 10
- 102100039196 CX3C chemokine receptor 1 Human genes 0.000 description 7
- 101000746022 Homo sapiens CX3C chemokine receptor 1 Proteins 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 102100028990 C-X-C chemokine receptor type 3 Human genes 0.000 description 6
- 102100033012 G-protein coupled receptor 12 Human genes 0.000 description 6
- 102100023416 G-protein coupled receptor 15 Human genes 0.000 description 6
- 101000916050 Homo sapiens C-X-C chemokine receptor type 3 Proteins 0.000 description 6
- 101001015106 Homo sapiens G-protein coupled receptor 12 Proteins 0.000 description 6
- 101000829794 Homo sapiens G-protein coupled receptor 15 Proteins 0.000 description 6
- 101000644251 Homo sapiens Urotensin-2 receptor Proteins 0.000 description 6
- 102100020942 Urotensin-2 receptor Human genes 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 101001123492 Homo sapiens Prolactin-releasing peptide receptor Proteins 0.000 description 3
- 101001098560 Homo sapiens Proteinase-activated receptor 2 Proteins 0.000 description 3
- 102100029002 Prolactin-releasing peptide receptor Human genes 0.000 description 3
- 102100037132 Proteinase-activated receptor 2 Human genes 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000014616 translation Effects 0.000 description 3
- 101100455522 Caenorhabditis elegans spr-5 gene Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 206010036086 Polymenorrhoea Diseases 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 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 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
- G06F9/30127—Register windows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Description
あるスレッドが多数のキャッシュ・ミスを起こす場合、使用されていないコンピューティング・リソースを利用して他のスレッドを継続することができ、これらのリソースは単一のスレッドのみが実行された場合には遊休状態になることになるので、より高速の全体的実行をもたらすことができる。
あるスレッドがCPUのコンピューティング・リソースの全てを使用することができない(命令が互いの結果に依存するため)場合、別のスレッドを実行することでこれらを遊休状態のままにしないことが可能になる。
幾つかのスレッドが同じデータセットを処理する場合、それらスレッドはそのキャッシュを実際に共有することができ、より良好なキャッシュ使用率又はその値に対する同期化をもたらす。
複数のスレッドは、キャッシュ又は変換索引バッファ(TLB)などのハードウェア・リソースを共有したときに互いに干渉する可能性がある。
単一スレッドの実行時間は、1つのスレッドだけが実行されるときでさえ、改善されるどころか低下することがある。これは、スレッド切替えハードウェアに対応するために必要な、より遅い周波数及び/又は付加的なパイプライン・ステージのためである。
マルチスレッディングのためのハードウェア・サポートはソフトウェアに対してより可視となるので、アプリケーション・プログラム及びオペレーティング・システムの両方に対してマルチプロセッシングよりも多くの変更を必要とする。
最も簡単な型式のマルチスレッディングは、1つのスレッドが、通常長い待ち時間ストールを発生させることになるイベントによってブロックされるまで走り続けるときに生じる。そのようなストールは、チップの外にあるメモリにアクセスする必要があるキャッシュ・ミスの可能性があり、これはデータを返すのに数百CPUサイクルを要することがある。ストールが解決するのを待つ代りに、スレッド化されたプロセッサは、実行準備ができている別のスレッドに実行を切り替える。以前のスレッドのデータが到着した場合にのみ、以前のスレッドが、実行準備ができた(ready−to−run)スレッドのリスト上に戻されることになる。
1.サイクルi:スレッドAからの命令jが発行される
2.サイクルi+1:スレッドAからの命令j+1が発行される
3.サイクルi+2:スレッドAからの命令j+2が発行され、全てのキャッシュでミスとなるロード命令である
4.サイクルi+3:スレッド・スケジューラが起動され、スレッドBに切替える
5.サイクルi+4:スレッドBからの命令kが発行される
6.サイクルi+5:スレッドBからの命令k+1が発行される
マルチスレッディングのハードウェア・サポートの目標は、ブロックされたスレッドと実行準備ができている別のスレッドとの間の迅速な切替えを可能にすることである。この目標を達成するためのハードウェアのコストは、プログラム可視レジスタ並びに幾つかのプロセッサ制御レジスタ(プログラム・カウンタなど)を複製することである。1つのスレッドから別のスレッドへの切替えは、ハードウェアが1つのレジスタ・セットの使用から別のレジスタ・セットの使用へと切替えることを意味する。
スレッド切替えを1CPUサイクル内で行うことができる。
それは、各スレッドにとっては、単独で実行されており、他のいずれのスレッドとも何らハードウェア・リソースを共有していないように見える。このことは、アプリケーション及びオペレーティング・システム内でマルチスレッディングをサポートするために必要なソフトウェアの変更量を最小にする。
アクティブ・スレッド間で効率的に切替えるためには、各々のアクティブ・スレッドがそれぞれの独自のレジスタ・セットを有する必要がある。例えば、2つのスレッド間で迅速に切替えるためには、レジスタ・ハードウェアは2回インスタンス化される必要がある。
マイクロコントローラ及び組み込みプロセッサの多くのファミリは、割り込み用に高速コンテキスト切替えを可能にする複数のレジスタ・バンクを有する。そのようなスキームは、ユーザ・プログラム・スレッドと割り込みスレッドとの間のブロック型マルチスレッディングの一種と考えることができる。
1.サイクルi+1:スレッドBからの命令が発行される
2.サイクルi+2:スレッドCからの命令が発行される
ブロック型マルチスレッディングにおいて論じたハードウェア・コストに加えて、インターリーブ型マルチスレッディングは、各パイプライン・ステージが処理中の命令のスレッドIDを追跡する追加コストを有する。また、パイプライン内でより多くのスレッドが同時に実行されるので、異なるスレッド間のスラッシングを回避するためにキャッシュ及びTLBなどの共有リソースをより大きくする必要がある。
最先端型のマルチスレッディングは、スーパースカラ・プロセッサに適用される。通常のスーパースカラ・プロセッサは、CPUサイクル毎に、単一のスレッドから複数の命令を発行する。同時マルチスレッディング(SMT)では、スーパースカラ・プロセッサは、CPUサイクル毎に複数のスレッドからの命令を発行することができる。いずれの単一スレッドも限られた量の命令レベル並列性しか有していないことを認識することで、この型式のマルチスレッディングは、使用されていない発行スロットに関連した無駄を減らすために、複数のスレッドにわたって使用可能な並列性の活用を試みる。
1.サイクルi:スレッドAからの命令j及びj+1、スレッドBからの命令kが、全て同時に発行される。
2.サイクルi+1:スレッドAからの命令j+2、スレッドBからの命令k+1、スレッドCからの命令mが、全て同時に発行される。
3.サイクルi+2:スレッドAからの命令j+3、スレッドCからの命令m+1及びm+2が、全て同時に発行される。
インターリーブ型マルチスレッディングに関して論じたハードウェア・コストに加えて、SMTは、各パイプライン・ステージが、処理中の各命令のスレッドIDを追跡する追加コストを有する。やはり、キャッシュ及びTLBなどの共有リソースを、多数のアクティブ・スレッド用のサイズにする必要がある。
プロセッサの能力が向上するにつれて性能に対する要求も増し、そのことが、最大効率に関してプロセッサ・リソースに対する圧力を高めてきた。プロセッサが単一タスクの実行中に特定のイベントが完了するのを待つ間の無駄な時間に注目して、ソフトウェア開発者は、プロセッサが同じ時間に何か他の仕事を行うことができないかを考え始めた。
マルチプロセッシング・システムは、同時に走る複数のプロセッサを有する。伝統的なインテル(登録商標)アーキテクチャ・マルチプロセッシング・システムは、2個から約512個までのいずれかの個数のプロセッサを有する。マルチプロセッシング・システムは異なるスレッドを異なるプロセッサ上で走らせる。この機能は、プログラム性能を著しく加速する。それで、2つのスレッドは互いにおおよそ独立に、プロセッサのリソースを得るためのスレッド切替えを必要とせずに、走ることができる。マルチプロセッサ・オペレーティング・システムはそれ自体マルチスレッド化されており、スレッドは最も有利に別々のプロセッサを使用することができる。
今日のサーバ・アプリケーションは、並列に実行されることができる複数のスレッド又はプロセスで構成される。オンライン・トランザクション処理及びウェブ・サービスは、高速処理性能のために同時に実行することができる多数のソフトウェア・スレッドを有する。デスクトップ・アプリケーションでさえもますます並列になってきている。インテルの設計者等は、スレッド・レベルの並列化(TLP)を実装して、トランジスタ数及び電力消費に対する性能を向上させた。
1.先行のロード命令に対してアウト・オブ・オーダに発行されるロード命令をマーク付けするための機構。
2.命令がフェッチされるときに番号付けし、ある命令が命令ストリーム中でより早く又はより遅く生じたかどうかを判断する機構。ある命令が別の命令より早く又はより遅く生じたかどうか判断する代替的機構で置き換えることができる。
3.アウト・オブ・オーダで実行されたロード操作に関する、プログラム順序中のそれらのアドレス、それらのアクセスのアドレス、ロード・データを含む最大保証微小ユニット(atomic unit)に関して読み出されたデータ値を含む情報をストアする機構。
4.ロード命令が、1つ又は複数のアウト・オブ・オーダ命令に対してイン・オーダで実行されるときに干渉テストを実行するため、及び複数の命令がロード命令と干渉するとき優先度エンコーディングを実行するための機構。
5.干渉するロード命令に関連するデータを迂回するための機構。
6.アウト・オブ・オーダ状態がリタイアメント・キュー326からプログラム順序でレジスタ・ファイル311にリタイアしたポイントにおいて(3)で生成された記録を削除するための機構。
・ アプリケーション(プロセス又はスレッド)からオペレーティング・システム・カーネル(又はハイパバイザ)への遷移が行われるとき、全てのレジスタはセーブされ、制御がアプリケーションに戻るときに復元される。
・ システム・パーティション(例えば、そのパーティション内のオペレーティング・システム)から仮想機械モニタ(VMM)又はハイパバイザへの遷移が行われるとき、全てのレジスタはセーブされ、制御がアプリケーションに戻るときに復元される。
・ オペレーティング・システムが1つのスレッドから別のスレッドへ実行を切替えるとき、スレッドに関連する全てのレジスタがストアされ、別のスレッドに関連するストアされたレジスタがロードされる。
・ ハイパバイザ又は仮想機械モニタ(VMM)システムが1つのパーティションから別のパーティションへ実行を切替えるとき、パーティションに関連する全てのレジスタがストアされ、別のパーティションに関連するストアされたレジスタがロードされる。
・ システムzのもとでのCALL PROGRAMの実行中、状態がセーブされる。
・ 1つの第1のモジュールから別のモジュールへの切替えの間、別のモジュールは、第1のモジュールがどのレジスタを使用している可能性があるかを知らないので、このモジュールは全てのレジスタをセーブし復元することになる。
・ これらのアクセスの間、一時的障害が、モジュールの状態の将来の復元のためにモジュール状態をセーブするように登録されているとき、非使用状態がアクセスされる。
・ エラー回復及びエラー通知を避けるために、エラー回復及び通知のうちの少なくとも1つを抑制することが好ましい。
・ これらの偽エラーの処理中の性能低下を減らすために、そのような状況の間、エラー通知を抑制することが重要である。
bit significant field)、又それ以外に有効化された/アクティブなアーキテクチャ化レジスタを指示するものとすることができる。一実施形態において、OSによって決定されたサブセットのみを有効化することができる。一実施形態において、マルチスレッド・プロセッサの各スレッドが、それぞれの有効化、無効化インジケータのセットを有する。別の実施形態において、アクティブなプログラム又はスレッドのアクティブ・インジケータの値は、アクティブ・プログラム又はスレッドが使用可能な機械語命令によって明示的に設定することができる。
**注:SPR数の2つの5ビットの半部分の順序は、実際の命令コード化と比べて逆である。
SPRフィールドが表8−9に示す値以外の任意の値を含む(且つプロセッサがユーザ・モードにある)場合、以下のうちの1つが起る。
・システムの不正命令エラー・ハンドラが起動される。
・システムのスーパバイザ・レベルの命令エラー・ハンドラが起動される。
・結果が境界未定義になる。
他の変更されたレジスタ:
・なし
簡略化ニーモニックス:
mfxer rDは、mfspr rD,1に等価である
mflr rDは、mfspr rD,8に等価である
mfctr rDは、mfspr rD,9に等価である。
If RA = 0 then b ← 0
else b ← (RA)
EA ← b + EXTS(DS || 0b00)
MEM(EA, 8) ← (RS)
有効アドレス(EA)を和(RA|0)+(DS||0b00)とする。(RS)はEAでアドレス指定された記憶装置内のダブルワードにストアされる。
変更された特別なレジスタ:
なし
XFX形式
n ← spr5:9 || spr0:4
if length(SPR(n)) = 64 then
RT ← SPR(n)
else
RT ← 320 || SPR(n)
n ← spr5:9||spr0:4
if n = 13 then see Book III−S(Power ISMTM Version 2.06 Revision B)
else
if length(SPR(n)) = 64 then
SPR(n) ← (RS)
else
SPR(n) ← (RS)32:63
Set up context save base address for module 1 in r11
Then
stw r13,GPR13(r11);
stw r14,GPR14(r11);
stw r15,GPR15(r11);
stw r12,GPR12(r11);
stw r9,GPR9(r11);
mfspr r10,SPRN_SPRG_SCRATCH0;
stw r10,GPR10(r11);
mfspr r12,SPRN_SPRG_SCRATCH1;
stw r12,GPR11(r11);
Set up context save base address for module 2 in r11
Then
lw r13,GPR13(r11);
lw r14,GPR14(r11);
lw r15,GPR15(r11);
lw r12,GPR12(r11);
lw r9,GPR9(r11);
mfspr r10,SPRN_SPRG_SCRATCH0;
mfspr r12,SPRN_SPRG_SCRATCH1;
rfi
初めにプログラムBに関する状態情報が以下のようにセーブされる。
Set up context save base address for module 2 in r11
Then
stw r13,GPR13(r11);
stw r14,GPR14(r11);
stw r15,GPR15(r11);
stw r12,GPR12(r11);
stw r9,GPR9(r11);
mfspr r10,SPRN_SPRG_SCRATCH0;
stw r10,GPR10(r11);
mfspr r12,SPRN_SPRG_SCRATCH1;
stw r12,GPR11(r11);
Set up context save base address for module 2 in r11
Then
lw r13,GPR13(r11);
lw r14,GPR14(r11);
lw r15,GPR15(r11);
lw r12,GPR12(r11);
lw r9,GPR9(r11);
mfspr r10,SPRN_SPRG_SCRATCH0;
mfspr r12,SPRN_SPRG_SCRATCH1;
rfi
Set up context save base address
for module 1 in r11
stw r13,GPR13(r11);
stw r14,GPR14(r11);
stw r15,GPR15(r11);
stw r12,GPR12(r11);
stw r9,GPR9(r11);
mfspr r10,SPRN_SPRG_SCRATCH0;
stw r10,GPR10(r11);
mfspr r12,SPRN_SPRG_SCRATCH1;
stw r12,GPR11(r11);
mfspr r12, SRR_LIVENESS
stw r12, SRR_LIVENESS(r11)
Set up context save base address for module 2 in r11
Then
lw r12,GPR13(r11);
Mtspr SRR_LIVENESS
lw r13,GPR13(r11);
lw r14,GPR14(r11);
lw r15,GPR15(r11);
lw r12,GPR12(r11);
lw r9,GPR9(r11);
mfspr r10,SPRN_SPRG_SCRATCH0;
mfspr r12,SPRN_SPRG_SCRATCH1;
rfi
112:相互接続(システム・バス)
120:記憶装置
134:通信アダプタ
200:スーパースカラ・プロセッサ
204:命令順序付け論理(ISL)
214:レジスタ管理ユニット
215:マッパ・クラスタ
223:マルチプレクサ
224:一般実行ユニット(一般実行エンジン)
300:プロセッサ・ユニット
305:メモリ・ユニット
307:関数ユニット
309:分岐ユニット
400:設計機械語命令
504:コンパレータ
Claims (10)
- 実行中のプログラムに関して活性情報を維持するための、コンピュータ実施の方法であって、
プロセッサによって、対応する現行オペランドが再使用されるか否かを示す現行オペランド状態情報を維持することであって、再使用される現行オペランドは、第1のプログラム・モジュールによる使用のために有効化されており、再使用されない現行オペランドは、前記第1のプログラム・モジュールによる使用のために無効化されており、前記第1のプログラム・モジュールは、命令セット・アーキテクチャ(ISA)の機械語命令を含み、前記第1のプログラム・モジュールは、前記プロセッサによって現在実行中である、維持することと、
前記第1のプログラム・モジュールの機械語命令によって現行オペランドにアクセスすることであって、前記アクセスすることは、前記現行オペランド状態情報を用いて、以前にストアされた現行オペランド値が前記第1のプログラム・モジュールによってアクセス可能であるかどうか判断することを含む、アクセスすることと、
オペランド無効化命令を実行することであって、前記実行は、再使用されないオペランドの現行オペランド状態情報により前記再使用されないオペランドを無効化させ、ここで無効化オペランドの読み出しは、アーキテクチャ依存デフォルト値を返す、前記オペランド無効化命令を実行することと、
オペランド有効化命令を実行することであって、前記実行は、再使用されるオペランドの現行オペランド状態情報により前記再使用されるオペランドを有効化させ、ここで有効化オペランドの読み出しは、前記有効化オペランドに以前にストアされた値を返す、前記オペランド有効化命令を実行することと、
を含む方法。 - 前記現行オペランドが無効化されていることに応答して、前記アクセスすることが、
a)アーキテクチャ指定値を返すことであって、前記アーキテクチャ指定値が、未定義値、ゼロ値、全て「1」から成る値、又はプログラム指定デフォルト値のうちのいずれかである、アーキテクチャ指定値を返すことと、
b)通知を行うことであって、前記通知が、例外を発生すること、例外を抑制すること、機械状態の制御下で例外を発生し抑制すること、デバッグ情報を提供すること、及び無効化オペランドへのアクセスの発生を示すように少なくとも1つのレジスタを設定すること、のうちのいずれかである、通知を行うことと、
を含む、a)及びb)のうちの少なくとも1つを含むこと、をさらに含む、請求項1に記載の方法。 - プログラム実行を前記第1のプログラム・モジュールから第2のプログラム・モジュールに移行することをさらに含み、前記移行することは、
a)前記第1のプログラム・モジュールの前記現行オペランド状態情報をコンテキスト切替え退避領域にセーブすることと、
b)前記コンテキスト切替え退避領域から、新しいオペランド状態情報を、実行される第2のプログラムの現行オペランド状態情報としてロードすることと、
前記ロードされたオペランド状態情報を用いて前記第2のプログラムの実行を開始することと、
を含むa)からb)を実施することを含む、
請求項1に記載の方法。 - 前記実行を移行することは、コンテキスト切替え操作であり、前記現行オペランドは、
命令によって識別される一般レジスタのアーキテクチャ化された一般レジスタ値、又は命令によって識別される浮動小数点レジスタのアーキテクチャ化された浮動小数点レジスタ値のうちのいずれかで構成され、ここで前記実行を移行することは、
c)前記第1のプログラム・モジュールのプログラム・カウンタ値及び有効化現行オペランドの現行オペランド値を、前記コンテキスト切替え退避領域にセーブすることと、
d)前記コンテキスト切替え退避領域から、新しい有効化オペランドの新しいオペランド値を、実行される前記第2のプログラムの現行オペランドの現行オペランド値としてロードすることと、
をさらに含み、開始される前記第2のプログラムの実行は、前記ロードされた現行オペランドを使用する、
請求項3に記載の方法。 - 前記現行オペランド状態情報は、前記現行オペランド状態情報が現行プログラムによって有効化状態と無効化状態の間で変えることができるかどうかを制御するためのオペランド有効化制御をさらに含む、請求項4に記載の方法。
- 前記デフォルト値は、アーキテクチャ未定義値、アーキテクチャ定義デフォルト値レジスタ内に以前にストアされた値、全て「1」、全て「0」、インクリメント値又はディクリメント値のうちのいずれかで構成され、ここで前記インクリメント値は、読み出しアクセス毎にインクリメントされ、前記ディクリメント値は、読み出しアクセス毎にディクリメントされる、請求項1に記載の方法。
- 前記オペランド無効化命令は、プリフィックス命令であり、前記プリフィックス命令の実行は、プログラム順序において前記プリフィックス命令に続く次順命令による使用の後で前記再使用されないオペランドが無効化されることを前記プロセッサに示す、請求項1に記載の方法。
- 無効化オペランドに対する書込み操作は、前記無効化オペランドを有効化させ、ここで前記オペランド有効化命令は、前記再使用されるオペランドに書込むための書込み命令である、請求項1に記載の方法。
- 実行中のプログラムに関して活性情報を維持するためのコンピュータ・システムであって、
主記憶装置と通信するように構成されたプロセッサを含み、前記プロセッサは、命令フェッチャ、命令オプティマイザ、及びオプティマイズされた命令を実行するための1つ又は複数の実行ユニットを含み、前記プロセッサは、請求項1から請求項8までのいずれかに記載の方法を実施するように構成される、
コンピュータ・システム。 - 実行中のプログラムに関して活性情報を維持するためのコンピュータ・プログラムであって、請求項1から請求項8までのいずれかに記載の方法を処理回路に実行させるためのコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/251,441 | 2011-10-03 | ||
US13/251,441 US10078515B2 (en) | 2011-10-03 | 2011-10-03 | Tracking operand liveness information in a computer system and performing function based on the liveness information |
PCT/IB2012/055070 WO2013050901A1 (en) | 2011-10-03 | 2012-09-24 | Maintaining operand liveness information in a computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015501019A JP2015501019A (ja) | 2015-01-08 |
JP6095670B2 true JP6095670B2 (ja) | 2017-03-15 |
Family
ID=47993791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014532528A Expired - Fee Related JP6095670B2 (ja) | 2011-10-03 | 2012-09-24 | コンピュータ・システム内のオペランド活性情報の維持 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10078515B2 (ja) |
EP (1) | EP2764433A4 (ja) |
JP (1) | JP6095670B2 (ja) |
CN (1) | CN103842959B (ja) |
WO (1) | WO2013050901A1 (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US9122873B2 (en) | 2012-09-14 | 2015-09-01 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
US9372695B2 (en) | 2013-06-28 | 2016-06-21 | Globalfoundries Inc. | Optimization of instruction groups across group boundaries |
US9619230B2 (en) | 2013-06-28 | 2017-04-11 | International Business Machines Corporation | Predictive fetching and decoding for selected instructions |
US9348596B2 (en) | 2013-06-28 | 2016-05-24 | International Business Machines Corporation | Forming instruction groups based on decode time instruction optimization |
KR20150019349A (ko) * | 2013-08-13 | 2015-02-25 | 삼성전자주식회사 | 다중 쓰레드 실행 프로세서 및 이의 동작 방법 |
US9958932B2 (en) | 2014-11-20 | 2018-05-01 | Apple Inc. | Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture |
US9928094B2 (en) | 2014-11-25 | 2018-03-27 | Microsoft Technology Licensing, Llc | Hardware accelerated virtual context switching |
US9696992B2 (en) * | 2014-12-23 | 2017-07-04 | Intel Corporation | Apparatus and method for performing a check to optimize instruction flow |
US10318356B2 (en) * | 2016-03-31 | 2019-06-11 | International Business Machines Corporation | Operation of a multi-slice processor implementing a hardware level transfer of an execution thread |
US11934945B2 (en) | 2017-02-23 | 2024-03-19 | Cerebras Systems Inc. | Accelerated deep learning |
US11488004B2 (en) | 2017-04-17 | 2022-11-01 | Cerebras Systems Inc. | Neuron smearing for accelerated deep learning |
JP6854473B2 (ja) | 2017-04-17 | 2021-04-07 | セレブラス システムズ インク. | 加速化ディープラーニングのデータフロー・トリガー・タスク |
EP3607506B1 (en) | 2017-04-17 | 2021-07-14 | Cerebras Systems Inc. | Fabric vectors for deep learning acceleration |
US10564977B2 (en) | 2017-04-18 | 2020-02-18 | International Business Machines Corporation | Selective register allocation |
US10572265B2 (en) | 2017-04-18 | 2020-02-25 | International Business Machines Corporation | Selecting register restoration or register reloading |
US10545766B2 (en) | 2017-04-18 | 2020-01-28 | International Business Machines Corporation | Register restoration using transactional memory register snapshots |
US10782979B2 (en) | 2017-04-18 | 2020-09-22 | International Business Machines Corporation | Restoring saved architected registers and suppressing verification of registers to be restored |
US10963261B2 (en) | 2017-04-18 | 2021-03-30 | International Business Machines Corporation | Sharing snapshots across save requests |
US11010192B2 (en) | 2017-04-18 | 2021-05-18 | International Business Machines Corporation | Register restoration using recovery buffers |
US10838733B2 (en) | 2017-04-18 | 2020-11-17 | International Business Machines Corporation | Register context restoration based on rename register recovery |
US10649785B2 (en) | 2017-04-18 | 2020-05-12 | International Business Machines Corporation | Tracking changes to memory via check and recovery |
US10540184B2 (en) | 2017-04-18 | 2020-01-21 | International Business Machines Corporation | Coalescing store instructions for restoration |
US10489382B2 (en) | 2017-04-18 | 2019-11-26 | International Business Machines Corporation | Register restoration invalidation based on a context switch |
US10552164B2 (en) | 2017-04-18 | 2020-02-04 | International Business Machines Corporation | Sharing snapshots between restoration and recovery |
US10740108B2 (en) | 2017-04-18 | 2020-08-11 | International Business Machines Corporation | Management of store queue based on restoration operation |
US10372456B2 (en) * | 2017-05-24 | 2019-08-06 | Microsoft Technology Licensing, Llc | Tensor processor instruction set architecture |
US20190205061A1 (en) * | 2017-12-29 | 2019-07-04 | Intel Corporation | Processor, method, and system for reducing latency in accessing remote registers |
WO2020044152A1 (en) | 2018-08-28 | 2020-03-05 | Cerebras Systems Inc. | Scaled compute fabric for accelerated deep learning |
WO2020044208A1 (en) | 2018-08-29 | 2020-03-05 | Cerebras Systems Inc. | Isa enhancements for accelerated deep learning |
US11328208B2 (en) | 2018-08-29 | 2022-05-10 | Cerebras Systems Inc. | Processor element redundancy for accelerated deep learning |
GB2580327B (en) * | 2018-12-31 | 2021-04-28 | Graphcore Ltd | Register files in a multi-threaded processor |
US11556374B2 (en) | 2019-02-15 | 2023-01-17 | International Business Machines Corporation | Compiler-optimized context switching with compiler-inserted data table for in-use register identification at a preferred preemption point |
US11269634B2 (en) * | 2019-08-05 | 2022-03-08 | Arm Limited | Data structure relinquishing |
CN110647361B (zh) * | 2019-09-09 | 2021-08-27 | 中国人民解放军国防科技大学 | 一种空闲物理寄存器的获取方法和装置 |
US11204767B2 (en) | 2020-01-06 | 2021-12-21 | International Business Machines Corporation | Context switching locations for compiler-assisted context switching |
US11086630B1 (en) | 2020-02-27 | 2021-08-10 | International Business Machines Corporation | Finish exception handling of an instruction completion table |
GB2596872B (en) * | 2020-07-10 | 2022-12-14 | Graphcore Ltd | Handling injected instructions in a processor |
US20220206855A1 (en) * | 2020-12-29 | 2022-06-30 | Advanced Micro Devices, Inc. | Offloading computations from a processor to remote execution logic |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61235985A (ja) | 1985-04-11 | 1986-10-21 | Nec Corp | ベクトルプロセツサ |
JPH0353328A (ja) | 1989-07-20 | 1991-03-07 | Hitachi Ltd | レジスタ退避回復方法ならびに処理装置 |
US5303358A (en) * | 1990-01-26 | 1994-04-12 | Apple Computer, Inc. | Prefix instruction for modification of a subsequent instruction |
US5095526A (en) | 1990-01-26 | 1992-03-10 | Apple Computer, Inc. | Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status |
JPH05173788A (ja) | 1991-06-21 | 1993-07-13 | Toshiba Corp | 計算機装置 |
US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
JPH064305A (ja) | 1992-06-22 | 1994-01-14 | Nec Corp | プロセッサのレジスタ入替え判別回路 |
JPH06348509A (ja) | 1993-06-14 | 1994-12-22 | Hitachi Ltd | スタックサイズの変更方法 |
DE4434895C2 (de) | 1993-12-23 | 1998-12-24 | Hewlett Packard Co | Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen |
US5590352A (en) | 1994-04-26 | 1996-12-31 | Advanced Micro Devices, Inc. | Dependency checking and forwarding of variable width operands |
US5481719A (en) | 1994-09-09 | 1996-01-02 | International Business Machines Corporation | Exception handling method and apparatus for a microkernel data processing system |
US5812811A (en) | 1995-02-03 | 1998-09-22 | International Business Machines Corporation | Executing speculative parallel instructions threads with forking and inter-thread communication |
JP3711422B2 (ja) | 1995-12-20 | 2005-11-02 | セイコーエプソン株式会社 | 情報処理回路 |
US6314511B2 (en) * | 1997-04-03 | 2001-11-06 | University Of Washington | Mechanism for freeing registers on processors that perform dynamic out-of-order execution of instructions using renaming registers |
JPH10283188A (ja) | 1997-04-03 | 1998-10-23 | Matsushita Electric Ind Co Ltd | プロセッサにおけるレジスタ保護方法 |
US6094719A (en) | 1997-06-25 | 2000-07-25 | Sun Microsystems, Inc. | Reducing data dependent conflicts by converting single precision instructions into microinstructions using renamed phantom registers in a processor having double precision registers |
US5944810A (en) | 1997-06-27 | 1999-08-31 | Sun Microsystems, Inc. | Superscalar processor for retiring multiple instructions in working register file by changing the status bits associated with each execution result to identify valid data |
US6199156B1 (en) * | 1998-12-16 | 2001-03-06 | Bull Hn Information Systems Inc. | System for explicitly referencing a register for its current content when performing processor context switch |
US6189088B1 (en) | 1999-02-03 | 2001-02-13 | International Business Machines Corporation | Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location |
US6449710B1 (en) | 1999-10-29 | 2002-09-10 | Stmicroelectronics, Inc. | Stitching parcels |
US6393579B1 (en) | 1999-12-21 | 2002-05-21 | Intel Corporation | Method and apparatus for saving power and improving performance in a collapsable pipeline using gated clocks |
US6687806B1 (en) | 2000-06-15 | 2004-02-03 | Advanced Micro Devices, Inc. | Apparatus and method for generating 64 bit displacement and immediate values |
US6748519B1 (en) | 2000-06-15 | 2004-06-08 | International Business Machines Corporation | Method and apparatus for utilizing renamed registers based upon a functional or defective operational status of the register |
EP1199629A1 (en) | 2000-10-17 | 2002-04-24 | STMicroelectronics S.r.l. | Processor architecture with variable-stage pipeline |
US7228403B2 (en) | 2000-12-23 | 2007-06-05 | International Business Machines Corporation | Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture |
DE10102202A1 (de) | 2001-01-18 | 2002-08-08 | Infineon Technologies Ag | Mikroprozessorschaltung für tragbare Datenträger |
US7162621B2 (en) | 2001-02-21 | 2007-01-09 | Mips Technologies, Inc. | Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration |
US6950926B1 (en) | 2001-03-02 | 2005-09-27 | Advanced Micro Devices, Inc. | Use of a neutral instruction as a dependency indicator for a set of instructions |
US20030154419A1 (en) | 2002-01-10 | 2003-08-14 | Binyu Zang | Register renaming in binary translation using rollback and recovery |
US7117346B2 (en) | 2002-05-31 | 2006-10-03 | Freescale Semiconductor, Inc. | Data processing system having multiple register contexts and method therefor |
JP3856737B2 (ja) | 2002-07-19 | 2006-12-13 | 株式会社ルネサステクノロジ | データ処理装置 |
US7131017B2 (en) | 2002-08-16 | 2006-10-31 | Carnegie Mellon University | Programmable pipeline fabric having mechanism to terminate signal propagation |
US6934830B2 (en) | 2002-09-26 | 2005-08-23 | Sun Microsystems, Inc. | Method and apparatus for reducing register file access times in pipelined processors |
KR20050085281A (ko) | 2002-12-04 | 2005-08-29 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 마이크로프로세서 전력 소비를 제어하는 회로 장치,집적회로 및 프로그램 제품, 프로그램 코드 실행과 발생방법 |
JP2004220070A (ja) * | 2003-01-09 | 2004-08-05 | Japan Science & Technology Agency | コンテキスト切り替え方法及び装置、中央演算装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
US7769885B1 (en) | 2003-05-23 | 2010-08-03 | Juniper Networks, Inc. | Determining liveness of protocols and interfaces |
KR100531314B1 (ko) | 2004-03-16 | 2005-11-29 | 엘지전자 주식회사 | 영상표시장치 |
US20050251662A1 (en) | 2004-04-22 | 2005-11-10 | Samra Nicholas G | Secondary register file mechanism for virtual multithreading |
US7395419B1 (en) | 2004-04-23 | 2008-07-01 | Apple Inc. | Macroscalar processor architecture |
US7284092B2 (en) | 2004-06-24 | 2007-10-16 | International Business Machines Corporation | Digital data processing apparatus having multi-level register file |
US20060174089A1 (en) | 2005-02-01 | 2006-08-03 | International Business Machines Corporation | Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture |
US20060190710A1 (en) | 2005-02-24 | 2006-08-24 | Bohuslav Rychlik | Suppressing update of a branch history register by loop-ending branches |
US7698536B2 (en) | 2005-08-10 | 2010-04-13 | Qualcomm Incorporated | Method and system for providing an energy efficient register file |
US8296550B2 (en) | 2005-08-29 | 2012-10-23 | The Invention Science Fund I, Llc | Hierarchical register file with operand capture ports |
US7380104B2 (en) | 2006-04-25 | 2008-05-27 | International Business Machines Corporation | Method and apparatus for back to back issue of dependent instructions in an out of order issue queue |
JP2007304663A (ja) | 2006-05-08 | 2007-11-22 | Univ Nagoya | プロセッサ及びそのデータ処理方法 |
US7506139B2 (en) | 2006-07-12 | 2009-03-17 | International Business Machines Corporation | Method and apparatus for register renaming using multiple physical register files and avoiding associative search |
US20080148022A1 (en) | 2006-12-13 | 2008-06-19 | Arm Limited | Marking registers as available for register renaming |
US7676653B2 (en) | 2007-05-09 | 2010-03-09 | Xmos Limited | Compact instruction set encoding |
US7818543B2 (en) | 2007-07-10 | 2010-10-19 | Globalfoundries Inc. | Method and apparatus for length decoding and identifying boundaries of variable length instructions |
US7818542B2 (en) | 2007-07-10 | 2010-10-19 | Globalfoundries Inc. | Method and apparatus for length decoding variable length instructions |
US8762692B2 (en) * | 2007-09-27 | 2014-06-24 | Intel Corporation | Single instruction for specifying and saving a subset of registers, specifying a pointer to a work-monitoring function to be executed after waking, and entering a low-power mode |
US8108614B2 (en) | 2007-12-31 | 2012-01-31 | Eric Sprangle | Mechanism for effectively caching streaming and non-streaming data patterns |
US20100312991A1 (en) | 2008-05-08 | 2010-12-09 | Mips Technologies, Inc. | Microprocessor with Compact Instruction Set Architecture |
US20100095286A1 (en) | 2008-10-10 | 2010-04-15 | Kaplan David A | Register reduction and liveness analysis techniques for program code |
JP5471082B2 (ja) | 2009-06-30 | 2014-04-16 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US8683180B2 (en) | 2009-10-13 | 2014-03-25 | International Business Machines Corporation | Intermediate register mapper |
US20110161616A1 (en) | 2009-12-29 | 2011-06-30 | Nvidia Corporation | On demand register allocation and deallocation for a multithreaded processor |
US8560816B2 (en) * | 2010-06-30 | 2013-10-15 | Oracle International Corporation | System and method for performing incremental register checkpointing in transactional memory |
-
2011
- 2011-10-03 US US13/251,441 patent/US10078515B2/en active Active
-
2012
- 2012-09-24 CN CN201280048608.0A patent/CN103842959B/zh active Active
- 2012-09-24 EP EP12838041.7A patent/EP2764433A4/en not_active Withdrawn
- 2012-09-24 JP JP2014532528A patent/JP6095670B2/ja not_active Expired - Fee Related
- 2012-09-24 WO PCT/IB2012/055070 patent/WO2013050901A1/en active Application Filing
-
2013
- 2013-12-09 US US14/100,077 patent/US10061588B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2764433A4 (en) | 2015-06-24 |
WO2013050901A1 (en) | 2013-04-11 |
US20140095848A1 (en) | 2014-04-03 |
CN103842959B (zh) | 2017-05-03 |
US20130086367A1 (en) | 2013-04-04 |
CN103842959A (zh) | 2014-06-04 |
US10061588B2 (en) | 2018-08-28 |
EP2764433A1 (en) | 2014-08-13 |
US10078515B2 (en) | 2018-09-18 |
JP2015501019A (ja) | 2015-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6095670B2 (ja) | コンピュータ・システム内のオペランド活性情報の維持 | |
US9483267B2 (en) | Exploiting an architected last-use operand indication in a system operand resource pool | |
US9311095B2 (en) | Using register last use information to perform decode time computer instruction optimization | |
US20140047219A1 (en) | Managing A Register Cache Based on an Architected Computer Instruction Set having Operand Last-User Information | |
JP5592015B2 (ja) | ハードウェア制限に基づく調整可能なトランザクション・サイズを利用してコードを動的に最適化する装置、方法およびシステム | |
US9817644B2 (en) | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region | |
US9690589B2 (en) | Computer instructions for activating and deactivating operands | |
US9329869B2 (en) | Prefix computer instruction for compatibily extending instruction functionality | |
US9311084B2 (en) | RDA checkpoint optimization | |
Sharafeddine et al. | Disjoint out-of-order execution processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160308 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160406 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161004 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161222 |
|
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: 20170124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170214 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6095670 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |