JP7046098B2 - リネーム・レジスタ復旧に基づくレジスタ・コンテキスト復元 - Google Patents
リネーム・レジスタ復旧に基づくレジスタ・コンテキスト復元 Download PDFInfo
- Publication number
- JP7046098B2 JP7046098B2 JP2019556276A JP2019556276A JP7046098B2 JP 7046098 B2 JP7046098 B2 JP 7046098B2 JP 2019556276 A JP2019556276 A JP 2019556276A JP 2019556276 A JP2019556276 A JP 2019556276A JP 7046098 B2 JP7046098 B2 JP 7046098B2
- Authority
- JP
- Japan
- Prior art keywords
- snapshot
- register
- registers
- restore
- architectures
- 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 claims description 104
- 238000000034 method Methods 0.000 claims description 103
- 238000004590 computer program Methods 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 description 90
- 239000000872 buffer Substances 0.000 description 80
- 238000003860 storage Methods 0.000 description 78
- 238000011084 recovery Methods 0.000 description 74
- 230000008569 process Effects 0.000 description 40
- 239000013598 vector Substances 0.000 description 16
- 230000004048 modification Effects 0.000 description 15
- 238000012986 modification Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 13
- 238000007667 floating Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 238000006073 displacement reaction Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 238000001914 filtration Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 238000004321 preservation Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 239000012536 storage buffer Substances 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000004581 coalescence Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000006187 pill Substances 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000005303 weighing Methods 0.000 description 2
- 229910001369 Brass Inorganic materials 0.000 description 1
- 206010010219 Compulsions Diseases 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000010951 brass Substances 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010237 hybrid technique Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 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 or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30116—Shadow registers, e.g. coupled registers, not forming part of the register space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/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 or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
例として、ロード要求は、load multiple(複数ロード)命令を含み、保存要求は、store multiple(複数ストア)命令を含む。
本明細書で説明される技術を通して、さらなる特徴及び利点が実現される。他の実施形態及び態様は、本明細書で詳細に説明され、特許請求された態様の一部とみなされる。
*トランザクション・ネスト化深さが最初にゼロである(トランザクションをネスト化できる)とき、第1のオペランド・アドレスは、トランザクションがアボートされる場合、種々の診断情報を格納することができる、TBEGIN指定TDBと呼ばれる256バイトのトランザクション診断ブロックの位置を指定する。
オンデマンド・セルフサービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないが、より高レベルの抽象化では位置(例えば、国、州、又はデータセンタ)を特定できる場合があるという点で、位置とは独立しているといえる。
迅速な弾力性:機能は、迅速かつ弾力的に、幾つかの場合自動的に、プロビジョニングして素早くスケール・アウトし、迅速にリリースして素早くスケール・インさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
サービスの測定:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告し、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
Software as a Service(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定の考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上に配備するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対して制御を有する。
Infrastructure as a Service(IaaS):コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択の限定された制御を有する。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられる2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
102:コンピュータ・システム
104:プロセッサ又は処理ユニット
106、2126、2504:メモリ
107:命令フェッチ・アドレス・レジスタ(IFAR)
108:1つ又は複数の入力/出力(I/O)インターフェース
109:命令キャッシュ
110、2502:バス
113:命令シーケンス・ユニット(ISU)
120、2124:キャッシュ
121:分岐実行ユニット(BRU)
123:条件レジスタ・ファイル(CRF)
127:予測器更新論理
130、146:プログラム又はアプリケーション
132、148:オペレーティング・システム
134:コンピュータ可読プログラム命令
141:固定小数点ユニット(FXU)
142:ネットワーク・インターフェース
143:浮動小数点ユニット(FPU)
144:データ・ストレージ・デバイス
145:ベクトル・マルチメディア延長ユニット(VMXU)
146:プログラム
148:コンピュータ可読プログラム命令
150:命令フェッチ・コンポーネント
151、2110:ロード/ストア・ユニット(LSU)
152、2116、2224:命令デコード・ユニット
153:マルチプレクサ
154:命令実行コンポーネント
155:バッファ
156:メモリ・アクセス・コンポーネント
157:アドレス変換テーブル
160:ライトバック・コンポーネント
166:レジスタ復元操作及び/又は命令
168、608、610、2204:レジスタ
170・命令フェッチ
172:命令分岐予測
178:マッパー
190:フラッシュ
192:レジスタ・リネーム・ユニット
300:アーキテクチャ上のレジスタ
302、502:物理レジスタ
502b:新しい物理レジスタ
502a:スナップショット
508、602:スナップショット識別子
510:古いスナップショット
606:アドレス又はアドレス範囲
612:有効インジケータ
700:Spill Multiple(Spillm)命令
750:Reload Multiple(Reloadm)命令
900:バルク保存スナップショット
1300:データ・キャッシュ
1302:キャッシュ・ライン
1306:有効性(V)インジケータ
1308:ダーティ(D)インジケータ
1310:マーク付け(M)インジケータ
1312、2106:データ
2100:ストア要求(SRQ)ライトバック論理
2102:ストア・キュー
2108:ストア要求
2114:命令フェッチ・ユニット(IFU)
2118、2230:実行ユニット
2200:復旧バッファ
2208:命令タグ
2209:テール・ポインタ
2210:ヘッド・ポインタ
2226:レジスタ・ファイル
2228:復旧バッファ
2500:コンピューティング環
2502:ネイティブ中央処理ユニット
2512:エミュレータ・コード
2550:ゲスト命令
2556:ネイティブ命令
Claims (12)
- コンピューティング環境内の処理を容易にするためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、コンピュータに、
複数のアーキテクチャ上のレジスタを復元するためのロード要求を取得することと、
前記ロード要求を取得することに基づいて、前記複数のアーキテクチャ上のレジスタのうちの1つ又は複数のアーキテクチャ上のレジスタを復元することと、
を含み、前記復元することは、アーキテクチャ上のレジスタを物理レジスタにマッピングするスナップショットを用いて、前記1つ又は複数のアーキテクチャ上のレジスタに現在割り当てられている1つ又は複数の物理レジスタを、前記1つ又は複数のアーキテクチャ上のレジスタに対応する前記スナップショットの1つ又は複数の物理レジスタと置換することと、
前記ロード要求を取得することに基づいて、前記1つ又は複数のアーキテクチャ上のレジスタに対応するスナップショットが利用可能であるかどうかを判断することと、
前記スナップショットが利用可能であることを示すとの前記判断に基づいて、前記スナップショットを用いて前記復元を実行することと、
前記判断することは、スナップショット・スタックを用いて、前記1つ又は複数のアーキテクチャ上のレジスタに対応するスナップショットが利用可能かどうかを判断することと、を実行させ、 ここで、
前記スナップショット・スタックは複数のエントリを含み、前記スナップショット・スタックのエントリは、前記スナップショットを識別するスナップショット識別子を含み、前記スナップショット・スタックの前記エントリは、前記1つ又は複数のアーキテクチャ上のレジスタの内容のメモリ内のアドレス、前記スナップショットと関連した前記1つ又は複数のアーキテクチャ上のレジスタの表示、及び前記スナップショットが有効かどうかを示す有効性インジケータから成る群から選択される少なくとも1つを含む付加的な情報を含む、
コンピュータ・プログラム。 - 前記1つ又は複数のアーキテクチャ上のレジスタに対応するスナップショットが利用可能でないことを示すとの前記判断に基づいて、値をメモリから前記1つ又は複数のアーキテクチャ上のレジスタにロードすることにより、前記1つ又は複数のアーキテクチャ上のレジスタを復元することをさらに含む、請求項1に記載のコンピュータ・プログラム。
- 前記スナップショットを作成し、前記1つ又は複数の物理レジスタの前記1つ又は複数のアーキテクチャ上のレジスタへのマッピングを保存することをさらに含む、請求項1に記載のコンピュータ・プログラム。
- 前記スナップショットを作成することは、前記1つ又は複数のアーキテクチャ上のレジスタの保存を要求する保存要求を取得することに基づいて実行される、請求項3に記載のコンピュータ・プログラム。
- 前記ロード要求は、load multiple命令を含み、前記保存要求は、store multiple命令を含む、請求項4に記載のコンピュータ・プログラム。
- 前記1つ又は複数のアーキテクチャ上のレジスタは、メモリから前記1つ又は複数のアーキテクチャ上のレジスタについての値をコピーすることなく復元される、請求項1に記載のコンピュータ・プログラム。
- コンピューティング環境内の処理を容易にするためのコンピュータ・システムであって、前記コンピュータ・システムは、
メモリと、
前記メモリと通信するプロセッサと、
を含み、さらに、
複数のアーキテクチャ上のレジスタを復元するためのロード要求を取得することと、
前記ロード要求を取得することに基づいて、前記複数のアーキテクチャ上のレジスタのうちの1つ又は複数のアーキテクチャ上のレジスタを復元することと、
を含み、前記復元することは、アーキテクチャ上のレジスタを物理レジスタにマッピングするスナップショットを用いて、前記1つ又は複数のアーキテクチャ上のレジスタに現在割り当てられている1つ又は複数の物理レジスタを、前記1つ又は複数のアーキテクチャ上のレジスタに対応する前記スナップショットの1つ又は複数の物理レジスタと置換することと、
前記ロード要求を取得することに基づいて、前記1つ又は複数のアーキテクチャ上のレジスタに対応するスナップショットが利用可能であるかどうかを判断することと、
前記スナップショットが利用可能であることを示すとの前記判断に基づいて、前記スナップショットを用いて前記復元を実行することと、
前記判断することは、スナップショット・スタックを用いて、前記1つ又は複数のアーキテクチャ上のレジスタに対応するスナップショットが利用可能かどうかを判断することを含み、ここで、
前記スナップショット・スタックは複数のエントリを含み、前記スナップショット・スタックのエントリは、前記スナップショットを識別するスナップショット識別子を含み、前記スナップショット・スタックの前記エントリは、前記1つ又は複数のアーキテクチャ上のレジスタの内容のメモリ内のアドレス、前記スナップショットと関連した前記1つ又は複数のアーキテクチャ上のレジスタの表示、及び前記スナップショットが有効かどうかを示す有効性インジケータから成る群から選択される少なくとも1つを含む付加的な情報を含む、
を含む、コンピュータ・システム。 - 前記1つ又は複数のアーキテクチャ上のレジスタに対応するスナップショットが利用可能でないことを示すとの前記判断に基づいて、値をメモリから前記1つ又は複数のアーキテクチャ上のレジスタにロードすることにより、前記1つ又は複数のアーキテクチャ上のレジスタを復元することをさらに含む、請求項7に記載のコンピュータ・システム。
- 前記1つ又は複数のアーキテクチャ上のレジスタは、メモリから前記1つ又は複数のアーキテクチャ上のレジスタについての値をコピーすることなく復元される、請求項7に記載のコンピュータ・システム。
- コンピューティング環境内の処理を容易にするためのコンピュータ実施方法であって、前記コンピュータ実施方法は、
プロセッサにより、複数のアーキテクチャ上のレジスタを復元するためのロード要求を取得することと、
前記ロード要求を取得することに基づいて、前記複数のアーキテクチャ上のレジスタのうちの1つ又は複数のアーキテクチャ上のレジスタを復元することと、
前記復元することは、アーキテクチャ上のレジスタを物理レジスタにマッピングするスナップショットを用いて、前記1つ又は複数のアーキテクチャ上のレジスタに現在割り当てられている1つ又は複数の物理レジスタを、前記1つ又は複数のアーキテクチャ上のレジスタに対応する前記スナップショットの1つ又は複数の物理レジスタと置換することと、
前記ロード要求を取得することに基づいて、前記1つ又は複数のアーキテクチャ上のレジスタに対応するスナップショットが利用可能であるかどうかを判断することと、
前記スナップショットが利用可能であることを示すとの前記判断に基づいて、前記スナップショットを用いて前記復元を実行することと、
前記判断することは、スナップショット・スタックを用いて、前記1つ又は複数のアーキテクチャ上のレジスタに対応するスナップショットが利用可能かどうかを判断することを含み、ここで、
前記スナップショット・スタックは複数のエントリを含み、前記スナップショット・スタックのエントリは、前記スナップショットを識別するスナップショット識別子を含み、前記スナップショット・スタックの前記エントリは、前記1つ又は複数のアーキテクチャ上のレジスタの内容のメモリ内のアドレス、前記スナップショットと関連した前記1つ又は複数のアーキテクチャ上のレジスタの表示、及び前記スナップショットが有効かどうかを示す有効性インジケータから成る群から選択される少なくとも1つを含む付加的な情報を含む、
コンピュータ実施方法。 - 前記1つ又は複数のアーキテクチャ上のレジスタに対応するスナップショットが利用可能でないことを示すとの前記判断に基づいて、値をメモリから前記1つ又は複数のアーキテクチャ上のレジスタにロードすることにより、前記1つ又は複数のアーキテクチャ上のレジスタを復元することをさらに含む、請求項10に記載のコンピュータ実施方法。
- 前記1つ又は複数のアーキテクチャ上のレジスタは、メモリから前記1つ又は複数のアーキテクチャ上のレジスタについての値をコピーすることなく復元される、請求項10に記載のコンピュータ実施方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/490,013 US10838733B2 (en) | 2017-04-18 | 2017-04-18 | Register context restoration based on rename register recovery |
US15/490,013 | 2017-04-18 | ||
PCT/IB2018/051646 WO2018193321A1 (en) | 2017-04-18 | 2018-03-13 | Register context restoration based on rename register recovery |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020518895A JP2020518895A (ja) | 2020-06-25 |
JP2020518895A5 JP2020518895A5 (ja) | 2020-08-06 |
JP7046098B2 true JP7046098B2 (ja) | 2022-04-01 |
Family
ID=63790045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019556276A Active JP7046098B2 (ja) | 2017-04-18 | 2018-03-13 | リネーム・レジスタ復旧に基づくレジスタ・コンテキスト復元 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10838733B2 (ja) |
JP (1) | JP7046098B2 (ja) |
CN (1) | CN110520837B (ja) |
DE (1) | DE112018000848T5 (ja) |
GB (1) | GB2575412B (ja) |
WO (1) | WO2018193321A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10489382B2 (en) | 2017-04-18 | 2019-11-26 | International Business Machines Corporation | Register restoration invalidation based on a context switch |
US10540184B2 (en) | 2017-04-18 | 2020-01-21 | International Business Machines Corporation | Coalescing store instructions for restoration |
US11010192B2 (en) | 2017-04-18 | 2021-05-18 | International Business Machines Corporation | Register restoration using recovery buffers |
US10963261B2 (en) | 2017-04-18 | 2021-03-30 | International Business Machines Corporation | Sharing snapshots across save requests |
US10545766B2 (en) | 2017-04-18 | 2020-01-28 | International Business Machines Corporation | Register restoration using transactional memory register snapshots |
US10552164B2 (en) | 2017-04-18 | 2020-02-04 | International Business Machines Corporation | Sharing snapshots between restoration and recovery |
US10572265B2 (en) | 2017-04-18 | 2020-02-25 | International Business Machines Corporation | Selecting register restoration or register reloading |
US10564977B2 (en) | 2017-04-18 | 2020-02-18 | International Business Machines Corporation | Selective register allocation |
US10782979B2 (en) | 2017-04-18 | 2020-09-22 | International Business Machines Corporation | Restoring saved architected registers and suppressing verification of registers to be restored |
US10740108B2 (en) | 2017-04-18 | 2020-08-11 | International Business Machines Corporation | Management of store queue based on restoration operation |
US10649785B2 (en) | 2017-04-18 | 2020-05-12 | International Business Machines Corporation | Tracking changes to memory via check and recovery |
US11372970B2 (en) * | 2019-03-12 | 2022-06-28 | Hewlett Packard Enterprise Development Lp | Multi-dimensional attestation |
CN111159002B (zh) * | 2019-12-31 | 2023-04-28 | 山东有人物联网股份有限公司 | 一种基于分组的数据边缘采集方法、边缘采集设备及系统 |
CN111552511B (zh) * | 2020-05-14 | 2023-06-16 | 山东省计算中心(国家超级计算济南中心) | 一种VxWorks系统物联网固件解包恢复文件名的方法 |
US11249757B1 (en) * | 2020-08-14 | 2022-02-15 | International Business Machines Corporation | Handling and fusing load instructions in a processor |
CN114489791B (zh) * | 2021-01-27 | 2023-03-24 | 沐曦集成电路(上海)有限公司 | 处理器装置及其指令执行方法、计算设备 |
CN114741237B (zh) * | 2022-04-20 | 2024-11-01 | Oppo广东移动通信有限公司 | 一种任务切换方法、装置、设备及存储介质 |
CN115437691B (zh) * | 2022-11-09 | 2023-01-31 | 进迭时空(杭州)科技有限公司 | 一种针对risc-v矢量与浮点寄存器的物理寄存器堆分配装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005537580A (ja) | 2002-09-03 | 2005-12-08 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | スタックタイプのスナップショットバッファがネスト化されたインタラプトを処理すること |
US20130179665A1 (en) | 2012-01-06 | 2013-07-11 | Imagination Technologies, Ltd. | Restoring a register renaming map |
Family Cites Families (135)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3781810A (en) | 1972-04-26 | 1973-12-25 | Bell Telephone Labor Inc | Scheme for saving and restoring register contents in a data processor |
US4992938A (en) * | 1987-07-01 | 1991-02-12 | International Business Machines Corporation | Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers |
JPH0353328A (ja) | 1989-07-20 | 1991-03-07 | Hitachi Ltd | レジスタ退避回復方法ならびに処理装置 |
US5444853A (en) | 1992-03-31 | 1995-08-22 | Seiko Epson Corporation | System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's |
US6047122A (en) | 1992-05-07 | 2000-04-04 | Tm Patents, L.P. | System for method for performing a context switch operation in a massively parallel computer system |
US5535397A (en) | 1993-06-30 | 1996-07-09 | Intel Corporation | Method and apparatus for providing a context switch in response to an interrupt in a computer process |
JP3169779B2 (ja) | 1994-12-19 | 2001-05-28 | 日本電気株式会社 | マルチスレッドプロセッサ |
US5644742A (en) * | 1995-02-14 | 1997-07-01 | Hal Computer Systems, Inc. | Processor structure and method for a time-out checkpoint |
US6356918B1 (en) * | 1995-07-26 | 2002-03-12 | International Business Machines Corporation | Method and system for managing registers in a data processing system supports out-of-order and speculative instruction execution |
US5809522A (en) | 1995-12-18 | 1998-09-15 | Advanced Micro Devices, Inc. | Microprocessor system with process identification tag entries to reduce cache flushing after a context switch |
JPH09212371A (ja) | 1996-02-07 | 1997-08-15 | Nec Corp | レジスタ退避及び復元システム |
US5794024A (en) | 1996-03-25 | 1998-08-11 | International Business Machines Corporation | Method and system for dynamically recovering a register-address-table upon occurrence of an interrupt or branch misprediction |
US5881305A (en) | 1996-12-13 | 1999-03-09 | Advanced Micro Devices, Inc. | Register rename stack for a microprocessor |
US6088779A (en) | 1996-12-30 | 2000-07-11 | Fujitsu Limited | System and method for execution management of computer programs |
US5918005A (en) | 1997-03-25 | 1999-06-29 | International Business Machines Corporation | Apparatus region-based detection of interference among reordered memory operations in a processor |
JPH10289113A (ja) * | 1997-04-14 | 1998-10-27 | Toshiba Corp | 計算機のレジスタコンテキストの保存/復元方式 |
US5987495A (en) | 1997-11-07 | 1999-11-16 | International Business Machines Corporation | Method and apparatus for fully restoring a program context following an interrupt |
US6134653A (en) | 1998-04-22 | 2000-10-17 | Transwitch Corp. | RISC processor architecture with high performance context switching in which one context can be loaded by a co-processor while another context is being accessed by an arithmetic logic unit |
US6338137B1 (en) | 1998-05-29 | 2002-01-08 | Texas Instruments Incorporated | Data processor having memory access unit with predetermined number of instruction cycles between activation and initial data transfer |
US6298403B1 (en) | 1998-06-02 | 2001-10-02 | Adaptec, Inc. | Host adapter having a snapshot mechanism |
US6457021B1 (en) | 1998-08-18 | 2002-09-24 | Microsoft Corporation | In-memory database system |
US6421758B1 (en) | 1999-07-26 | 2002-07-16 | International Business Machines Corporation | Method and system for super-fast updating and reading of content addressable memory with a bypass circuit |
JP3739607B2 (ja) | 1999-08-24 | 2006-01-25 | 富士通株式会社 | 情報処理装置 |
US6480931B1 (en) | 1999-11-05 | 2002-11-12 | International Business Machines Corporation | Content addressable storage apparatus and register mapper architecture |
US7085914B1 (en) | 2000-01-27 | 2006-08-01 | International Business Machines Corporation | Methods for renaming stack references to processor registers |
US7155599B2 (en) * | 2000-12-29 | 2006-12-26 | Intel Corporation | Method and apparatus for a register renaming structure |
US6751749B2 (en) * | 2001-02-22 | 2004-06-15 | International Business Machines Corporation | Method and apparatus for computer system reliability |
JP3663393B2 (ja) * | 2001-06-27 | 2005-06-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数プロセッサ・データ処理システムをチェックポインティングする方法、プロセッサ・ユニットおよびコンピュータ・システム |
US20030177342A1 (en) | 2002-03-15 | 2003-09-18 | Hitachi Semiconductor (America) Inc. | Processor with register dirty bits and special save multiple/return instructions |
US7269719B2 (en) | 2002-10-30 | 2007-09-11 | Stmicroelectronics, Inc. | Predicated execution using operand predicates |
US7127592B2 (en) | 2003-01-08 | 2006-10-24 | Sun Microsystems, Inc. | Method and apparatus for dynamically allocating registers in a windowed architecture |
JP2004220070A (ja) | 2003-01-09 | 2004-08-05 | Japan Science & Technology Agency | コンテキスト切り替え方法及び装置、中央演算装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
US7107438B2 (en) | 2003-02-04 | 2006-09-12 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions |
US7543284B2 (en) | 2003-04-22 | 2009-06-02 | Transitive Limited | Partial dead code elimination optimizations for program code conversion |
US7493621B2 (en) | 2003-12-18 | 2009-02-17 | International Business Machines Corporation | Context switch data prefetching in multithreaded computer |
EP1622009A1 (en) | 2004-07-27 | 2006-02-01 | Texas Instruments Incorporated | JSM architecture and systems |
US20060184771A1 (en) | 2005-02-11 | 2006-08-17 | International Business Machines | Mini-refresh processor recovery as bug workaround method using existing recovery hardware |
CA2604573A1 (en) | 2005-04-13 | 2006-10-19 | Telefonaktiebolaget L M Ericsson (Publ) | Data value coherence in computer systems |
GB2425622A (en) | 2005-04-27 | 2006-11-01 | Ncapsa Ltd | Programming real-time systems using data flow diagrams |
US7562200B1 (en) | 2005-06-10 | 2009-07-14 | American Megatrends, Inc. | Method, system, apparatus, and computer-readable medium for locking and synchronizing input/output operations in a data storage system |
US20070043934A1 (en) * | 2005-08-22 | 2007-02-22 | Intel Corporation | Early misprediction recovery through periodic checkpoints |
US7426618B2 (en) | 2005-09-06 | 2008-09-16 | Dot Hill Systems Corp. | Snapshot restore method and apparatus |
US7747841B2 (en) | 2005-09-26 | 2010-06-29 | Cornell Research Foundation, Inc. | Method and apparatus for early load retirement in a processor system |
US7962731B2 (en) | 2005-10-20 | 2011-06-14 | Qualcomm Incorporated | Backing store buffer for the register save engine of a stacked register file |
US20070130448A1 (en) | 2005-12-01 | 2007-06-07 | Intel Corporation | Stack tracker |
US8813052B2 (en) | 2005-12-07 | 2014-08-19 | Microsoft Corporation | Cache metadata for implementing bounded transactional memory |
US8099726B2 (en) | 2005-12-07 | 2012-01-17 | Microsoft Corporation | Implementing strong atomicity in software transactional memory |
TWI312112B (en) | 2005-12-30 | 2009-07-11 | Ind Tech Res Inst | Data managing method, method and apparatus to snapshot data for multiple volumes to a single snapshot volume in a data processing system |
US7971018B2 (en) | 2006-05-01 | 2011-06-28 | Mediatek Inc. | Method and apparatus for secure context switching in a system including a processor and cached virtual memory |
US8219885B2 (en) | 2006-05-12 | 2012-07-10 | Arm Limited | Error detecting and correcting mechanism for a register file |
US20080016325A1 (en) | 2006-07-12 | 2008-01-17 | Laudon James P | Using windowed register file to checkpoint register state |
US20080077782A1 (en) | 2006-09-26 | 2008-03-27 | Arm Limited | Restoring a register renaming table within a processor following an exception |
US7950002B2 (en) | 2006-10-02 | 2011-05-24 | International Business Machines Corporation | Testing a software product by initiating a breakpoint and executing a probe routine |
EP2523101B1 (en) | 2006-11-14 | 2014-06-04 | Soft Machines, Inc. | Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes |
US20080148022A1 (en) | 2006-12-13 | 2008-06-19 | Arm Limited | Marking registers as available for register renaming |
US7802136B2 (en) | 2006-12-28 | 2010-09-21 | Intel Corporation | Compiler technique for efficient register checkpointing to support transaction roll-back |
US8010543B1 (en) | 2007-05-25 | 2011-08-30 | Emc Corporation | Protecting a file system on an object addressable storage system |
US8239633B2 (en) | 2007-07-11 | 2012-08-07 | Wisconsin Alumni Research Foundation | Non-broadcast signature-based transactional memory |
US8661204B2 (en) | 2007-08-15 | 2014-02-25 | University Of Rochester, Office Of Technology Transfer | Mechanism to support flexible decoupled transactional memory |
US8438372B2 (en) * | 2007-10-05 | 2013-05-07 | Qualcomm Incorporated | Link stack repair of erroneous speculative update |
US20100031084A1 (en) | 2008-08-04 | 2010-02-04 | Sun Microsystems, Inc. | Checkpointing in a processor that supports simultaneous speculative threading |
US8078854B2 (en) | 2008-12-12 | 2011-12-13 | Oracle America, Inc. | Using register rename maps to facilitate precise exception semantics |
US8245018B2 (en) | 2008-12-31 | 2012-08-14 | International Business Machines Corporation | Processor register recovery after flush operation |
CN101788901B (zh) | 2009-01-24 | 2013-09-25 | 世意法(北京)半导体研发有限责任公司 | 使用影子寄存器的高效硬件实现的设备及其方法 |
CN101819518B (zh) | 2009-02-26 | 2013-09-11 | 国际商业机器公司 | 在事务内存中快速保存上下文的方法和装置 |
US9940138B2 (en) * | 2009-04-08 | 2018-04-10 | Intel Corporation | Utilization of register checkpointing mechanism with pointer swapping to resolve multithreading mis-speculations |
US8484438B2 (en) | 2009-06-29 | 2013-07-09 | Oracle America, Inc. | Hierarchical bloom filters for facilitating concurrency control |
US8356148B2 (en) * | 2009-09-22 | 2013-01-15 | Lsi Corporation | Snapshot metadata management in a storage system |
GB2474522B (en) * | 2009-10-19 | 2014-09-03 | Advanced Risc Mach Ltd | Register state saving and restoring |
US8516465B2 (en) | 2009-12-04 | 2013-08-20 | Oracle America, Inc. | Register prespill phase in a compiler |
US8972994B2 (en) | 2009-12-23 | 2015-03-03 | Intel Corporation | Method and apparatus to bypass object lock by speculative execution of generated bypass code shell based on bypass failure threshold in managed runtime environment |
US9009692B2 (en) | 2009-12-26 | 2015-04-14 | Oracle America, Inc. | Minimizing register spills by using register moves |
US20110238962A1 (en) | 2010-03-23 | 2011-09-29 | International Business Machines Corporation | Register Checkpointing for Speculative Modes of Execution in Out-of-Order Processors |
US9911008B2 (en) | 2010-05-25 | 2018-03-06 | Via Technologies, Inc. | Microprocessor with on-the-fly switching of decryption keys |
US8560816B2 (en) | 2010-06-30 | 2013-10-15 | Oracle International Corporation | System and method for performing incremental register checkpointing in transactional memory |
US8424015B2 (en) | 2010-09-30 | 2013-04-16 | International Business Machines Corporation | Transactional memory preemption mechanism |
US9626190B2 (en) | 2010-10-07 | 2017-04-18 | Advanced Micro Devices, Inc. | Method and apparatus for floating point register caching |
US9110691B2 (en) | 2010-11-16 | 2015-08-18 | Advanced Micro Devices, Inc. | Compiler support technique for hardware transactional memory systems |
US8966453B1 (en) | 2010-11-24 | 2015-02-24 | ECOLE POLYTECHNIQUE FéDéRALE DE LAUSANNE | Automatic generation of program execution that reaches a given failure point |
US9170818B2 (en) | 2011-04-26 | 2015-10-27 | Freescale Semiconductor, Inc. | Register renaming scheme with checkpoint repair in a processing device |
US9063747B2 (en) | 2011-04-28 | 2015-06-23 | Freescale Semiconductor, Inc. | Microprocessor systems and methods for a combined register file and checkpoint repair register |
US8656121B2 (en) | 2011-05-17 | 2014-02-18 | International Business Machines Corporation | Facilitating data coherency using in-memory tag bits and tag test instructions |
US8756591B2 (en) | 2011-10-03 | 2014-06-17 | International Business Machines Corporation | Generating compiled code that indicates register liveness |
US10078515B2 (en) | 2011-10-03 | 2018-09-18 | International Business Machines Corporation | Tracking operand liveness information in a computer system and performing function based on the liveness information |
US9081834B2 (en) | 2011-10-05 | 2015-07-14 | Cumulus Systems Incorporated | Process for gathering and special data structure for storing performance metric data |
US9569369B2 (en) | 2011-10-27 | 2017-02-14 | Oracle International Corporation | Software translation lookaside buffer for persistent pointer management |
JP5852677B2 (ja) | 2011-12-26 | 2016-02-03 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | レジスタ・マッピング方法 |
WO2013100992A1 (en) | 2011-12-28 | 2013-07-04 | Intel Corporation | Context-state management |
US20130226878A1 (en) | 2012-02-27 | 2013-08-29 | Nec Laboratories America, Inc. | Seamless context transfers for mobile applications |
CN102662851A (zh) * | 2012-04-12 | 2012-09-12 | 江苏中科芯核电子科技有限公司 | 一种堆栈入栈出栈装置及方法 |
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 |
US9262170B2 (en) | 2012-07-26 | 2016-02-16 | International Business Machines Corporation | Out-of-order checkpoint reclamation in a checkpoint processing and recovery core microarchitecture |
US9229873B2 (en) | 2012-07-30 | 2016-01-05 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load and store accesses of a cache |
US9672044B2 (en) | 2012-08-01 | 2017-06-06 | Nxp Usa, Inc. | Space efficient checkpoint facility and technique for processor with integrally indexed register mapping and free-list arrays |
CA2887022C (en) | 2012-10-23 | 2021-05-04 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US9411739B2 (en) | 2012-11-30 | 2016-08-09 | Intel Corporation | System, method and apparatus for improving transactional memory (TM) throughput using TM region indicators |
US9183399B2 (en) | 2013-02-14 | 2015-11-10 | International Business Machines Corporation | Instruction set architecture with secure clear instructions for protecting processing unit architected state information |
US9336004B2 (en) * | 2013-02-28 | 2016-05-10 | Advanced Micro Devices, Inc. | Checkpointing registers for transactional memory |
KR20150128680A (ko) | 2013-03-12 | 2015-11-18 | 마이크로칩 테크놀로지 인코포레이티드 | 프로그램 가능한 cpu 레지스터 하드웨어 컨텍스트 스왑 메커니즘 |
US8972992B2 (en) | 2013-04-30 | 2015-03-03 | Splunk Inc. | Proactive monitoring tree with state distribution ring |
JP6107485B2 (ja) | 2013-07-04 | 2017-04-05 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US9471325B2 (en) | 2013-07-12 | 2016-10-18 | Qualcomm Incorporated | Method and apparatus for selective renaming in a microprocessor |
US9311084B2 (en) * | 2013-07-31 | 2016-04-12 | Apple Inc. | RDA checkpoint optimization |
US9946666B2 (en) | 2013-08-06 | 2018-04-17 | Nvidia Corporation | Coalescing texture access and load/store operations |
US9465721B2 (en) | 2013-08-19 | 2016-10-11 | Microsoft Technology Licensing, Llc | Snapshotting executing code with a modifiable snapshot definition |
US9298626B2 (en) | 2013-09-26 | 2016-03-29 | Globalfoundries Inc. | Managing high-conflict cache lines in transactional memory computing environments |
US9471480B2 (en) | 2013-12-02 | 2016-10-18 | The Regents Of The University Of Michigan | Data processing apparatus with memory rename table for mapping memory addresses to registers |
GB2518022B (en) * | 2014-01-17 | 2015-09-23 | Imagination Tech Ltd | Stack saved variable value prediction |
GB2516999B (en) | 2014-01-31 | 2015-07-22 | Imagination Tech Ltd | An improved return stack buffer |
US9430212B2 (en) | 2014-02-10 | 2016-08-30 | Netflix, Inc. | Automatically generating volume images and launching virtual computing instances |
US9262206B2 (en) | 2014-02-27 | 2016-02-16 | International Business Machines Corporation | Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments |
US10198321B1 (en) | 2014-04-01 | 2019-02-05 | Storone Ltd. | System and method for continuous data protection |
US9305167B2 (en) | 2014-05-21 | 2016-04-05 | Bitdefender IPR Management Ltd. | Hardware-enabled prevention of code reuse attacks |
CN104021058A (zh) * | 2014-06-30 | 2014-09-03 | 广州视源电子科技股份有限公司 | 一种测试板卡快速启动的方法 |
US10042710B2 (en) | 2014-09-16 | 2018-08-07 | Actifio, Inc. | System and method for multi-hop data backup |
US9501637B2 (en) | 2014-09-26 | 2016-11-22 | Intel Corporation | Hardware shadow stack support for legacy guests |
US10268695B2 (en) | 2014-10-28 | 2019-04-23 | Hewlett Packard Enterprise Development Lp | Snapshot creation |
GB2538237B (en) * | 2015-05-11 | 2018-01-10 | Advanced Risc Mach Ltd | Available register control for register renaming |
GB2538766B (en) | 2015-05-28 | 2018-02-14 | Advanced Risc Mach Ltd | Register renaming |
GB2538764B (en) | 2015-05-28 | 2018-02-14 | Advanced Risc Mach Ltd | Register renaming |
US20170249144A1 (en) | 2016-02-26 | 2017-08-31 | Qualcomm Incorporated | Combining loads or stores in computer processing |
CN106201656B (zh) * | 2016-06-30 | 2019-06-07 | 无锡华云数据技术服务有限公司 | 一种对kvm虚拟机快照存储空间的统计方法 |
EP3373178B1 (en) | 2017-03-08 | 2024-09-18 | Secure-IC SAS | Comparison of execution context data signatures with references |
US10540184B2 (en) | 2017-04-18 | 2020-01-21 | International Business Machines Corporation | Coalescing store instructions for restoration |
US11010192B2 (en) | 2017-04-18 | 2021-05-18 | International Business Machines Corporation | Register restoration using recovery buffers |
US10782979B2 (en) | 2017-04-18 | 2020-09-22 | International Business Machines Corporation | Restoring saved architected registers and suppressing verification of registers to be restored |
US10564977B2 (en) | 2017-04-18 | 2020-02-18 | International Business Machines Corporation | Selective register allocation |
US10552164B2 (en) | 2017-04-18 | 2020-02-04 | International Business Machines Corporation | Sharing snapshots between restoration and recovery |
US10572265B2 (en) | 2017-04-18 | 2020-02-25 | International Business Machines Corporation | Selecting register restoration or register reloading |
US10649785B2 (en) | 2017-04-18 | 2020-05-12 | International Business Machines Corporation | Tracking changes to memory via check and recovery |
US10545766B2 (en) | 2017-04-18 | 2020-01-28 | International Business Machines Corporation | Register restoration using transactional memory register snapshots |
US10489382B2 (en) | 2017-04-18 | 2019-11-26 | International Business Machines Corporation | Register restoration invalidation based on a context switch |
US10740108B2 (en) | 2017-04-18 | 2020-08-11 | International Business Machines Corporation | Management of store queue based on restoration operation |
US10963261B2 (en) | 2017-04-18 | 2021-03-30 | International Business Machines Corporation | Sharing snapshots across save requests |
-
2017
- 2017-04-18 US US15/490,013 patent/US10838733B2/en active Active
-
2018
- 2018-03-13 CN CN201880025664.XA patent/CN110520837B/zh active Active
- 2018-03-13 WO PCT/IB2018/051646 patent/WO2018193321A1/en active Application Filing
- 2018-03-13 DE DE112018000848.7T patent/DE112018000848T5/de active Pending
- 2018-03-13 JP JP2019556276A patent/JP7046098B2/ja active Active
- 2018-03-13 GB GB1916132.2A patent/GB2575412B/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005537580A (ja) | 2002-09-03 | 2005-12-08 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | スタックタイプのスナップショットバッファがネスト化されたインタラプトを処理すること |
US20130179665A1 (en) | 2012-01-06 | 2013-07-11 | Imagination Technologies, Ltd. | Restoring a register renaming map |
Also Published As
Publication number | Publication date |
---|---|
JP2020518895A (ja) | 2020-06-25 |
DE112018000848T5 (de) | 2019-11-07 |
WO2018193321A1 (en) | 2018-10-25 |
CN110520837A (zh) | 2019-11-29 |
CN110520837B (zh) | 2023-06-23 |
GB2575412A (en) | 2020-01-08 |
GB2575412B (en) | 2021-10-20 |
GB201916132D0 (en) | 2019-12-18 |
US20180300157A1 (en) | 2018-10-18 |
US10838733B2 (en) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7046098B2 (ja) | リネーム・レジスタ復旧に基づくレジスタ・コンテキスト復元 | |
US11061684B2 (en) | Architecturally paired spill/reload multiple instructions for suppressing a snapshot latest value determination | |
US10592251B2 (en) | Register restoration using transactional memory register snapshots | |
US10732981B2 (en) | Management of store queue based on restoration operation | |
US10552164B2 (en) | Sharing snapshots between restoration and recovery | |
US10564977B2 (en) | Selective register allocation | |
US10489382B2 (en) | Register restoration invalidation based on a context switch | |
US10572265B2 (en) | Selecting register restoration or register reloading | |
US10540184B2 (en) | Coalescing store instructions for restoration | |
US10649785B2 (en) | Tracking changes to memory via check and recovery | |
US11010192B2 (en) | Register restoration using recovery buffers | |
US10963261B2 (en) | Sharing snapshots across save requests | |
JP7190797B2 (ja) | メモリ内構成状態レジスタの保護を提供するコンピュータ・プログラム、コンピュータ・システム、およびコンピュータ実装方法 | |
JP7160447B2 (ja) | 構成状態レジスタの一括格納および読み込み動作を提供するコンピュータ・プログラム、コンピュータ・システム、およびコンピュータ実装方法 | |
JP7190798B2 (ja) | 機能的類似性に基づいてグループ化された構成状態レジスタを提供するコンピュータ・プログラム、コンピュータ・システム、およびコンピュータ実装方法 | |
JP7249717B2 (ja) | メモリ・ポインタを変更することによるコンテキスト切り替えを提供するコンピュータ・プログラム、コンピュータ・システム、およびコンピュータ実装方法 | |
JP7189935B2 (ja) | 同時の分岐アドレスの予測およびレジスタの内容の更新 | |
JP7082187B2 (ja) | サブルーチン分岐シーケンスにおける導出された値の作成および導出された値の予測の動的融合 | |
JP7091441B2 (ja) | コード固有の関係のあるレジスタの予測 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200526 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200826 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210825 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210913 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211201 |
|
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: 20220315 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220322 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7046098 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |