【手続補正書】
【提出日】令和1年11月25日(2019.11.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
命令ブロック中のすべての命令がコミットされるか、または命令のどれもコミットされない命令ブロックに命令がグループ化されるブロックアトミック実行モデルを利用するプロセッサにおいて実行された命令ブロックの実行リプレイを制御するための部分的リプレイコントローラであって、
前記プロセッサによる前記命令ブロックの実行中に、起こり得るアーキテクチャ状態修正に関連付けられた命令の検出または前記プロセッサにおける例外の発生に応答して、命令ブロックに関して記録/リプレイ状態をアクティブ状態に設定するように構成された検出回路であって、命令は、前記プロセッサにおいてアーキテクチャ状態を修正する場合、起こり得るアーキテクチャ状態修正に関連付けられ、前記命令ブロックの外の機能またはプロセスとの観察可能な対話をもつ、検出回路と、
前記命令ブロックに関する前記記録/リプレイ状態がアクティブ状態であることに応答して、前記プロセッサによる前記命令ブロックの再実行中に、
以前生成されたデータが次のロード/記憶命令に関して記録されているかどうかを判断するために、前記命令ブロック中で実行されるべき前記次のロード/記憶命令に対応する記録/リプレイログファイル中のエントリ状態を検査し、
前記以前生成されたデータが、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されていないことに応答して、前記実行された次のロード/記憶命令の生成データを前記記録/リプレイログファイルに記録し、
前記以前生成されたデータが、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されていることに応答して、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されている、前記以前生成されたデータを使って、前記次のロード/記憶命令を実行する
ように構成された記録/リプレイ回路と
を備える部分的リプレイコントローラ。
【請求項２】
前記検出回路は、
前記プロセッサによる前記命令ブロックの前記実行中に、起こり得る副作用を有するロード/記憶命令を含む、前記命令ブロック中の前記命令を検出し、
前記起こり得る副作用を有する前記ロード/記憶命令を含む前記命令の検出に応答して、前記命令ブロックに関して前記記録/リプレイ状態を前記アクティブ状態に設定するように構成された副作用検出回路を備える、請求項1に記載の部分的リプレイコントローラ。
【請求項３】
前記検出回路は、
前記プロセッサによる前記命令ブロックの前記実行中に、書込みシステム構成レジスタ命令を含む、前記命令ブロック中の前記命令を検出し、
前記書込みシステム構成レジスタ命令を含む前記命令の検出に応答して、前記命令ブロックに関して、前記記録/リプレイ状態を前記アクティブ状態に設定するように構成された副作用検出回路を備える、請求項1に記載の部分的リプレイコントローラ。
【請求項４】
前記検出回路は、
前記プロセッサによる前記命令ブロックの前記実行中に、予想される例外を有する命令を含む、前記命令ブロック中の前記命令を検出し、
前記予想される例外を有する前記命令を含む前記命令の検出に応答して、前記命令ブロックに関して前記記録/リプレイ状態を前記アクティブ状態に設定するように構成された副作用検出回路を備え、
前記予想される例外を有する前記命令は、ウォッチポイント、ブレイクポイント、デバッグステップポイント、または静的ブロック例外を引き起こす動作に関連付けられた命令を含む、請求項1に記載の部分的リプレイコントローラ。
【請求項５】
前記予想される例外を有する前記命令は、静的ブロック例外を引き起こす動作に関連付けられた命令を含み、前記静的ブロック例外は、命令ページ障害、無効ブロックヘッダ、および無効命令符号化からなるグループから構成される、請求項4に記載の部分的リプレイコントローラ。
【請求項６】
前記命令ブロック中のすべての命令が実行されたかどうかを判断し、
前記命令ブロック中の前記命令すべてが実行されたと判断したことに応答して、前記命令ブロック中の前記実行された命令による外部生成値をコミットするようにさらに構成された、請求項1に記載の部分的リプレイコントローラ。
【請求項７】
前記記録/リプレイ回路は、前記実行された次のロード/記憶命令の前記生成データについての前記記録/リプレイ状態を前記記録/リプレイログファイルに記録するようにさらに構成される、請求項1に記載の部分的リプレイコントローラ。
【請求項８】
前記記録/リプレイ回路は、前記実行された次のロード/記憶命令によってアドレス指定された仮想アドレスを、前記実行された次のロード/記憶命令の前記生成データと関連付けて、前記記録/リプレイログファイルに記録するようにさらに構成される、請求項1に記載の部分的リプレイコントローラ。
【請求項９】
前記命令ブロックに関する前記記録/リプレイ状態がアイドル実行状態であることに応答して、前記検出回路は、前記プロセッサによる前記命令ブロックの実行中に、前記起こり得るアーキテクチャ状態修正に関連付けられた前記命令ブロック中の前記命令を検出するように構成される、請求項1に記載の部分的リプレイコントローラ。
【請求項１０】
前記記録/リプレイ状態が前記アイドル実行状態であるときに前記命令ブロックの前記実行中に例外が発生したことに応答して、前記命令ブロックを再実行させるように構成された、請求項9に記載の部分的リプレイコントローラ。
【請求項１１】
前記記録/リプレイ状態が前記アクティブ状態であるときに前記命令ブロックの実行中に例外が発生したことに応答して、前記記録/リプレイ回路は、
前記命令ブロックに関する前記記録/リプレイ状態をロック状態に設定し、
前記記録/リプレイログファイルへの前記実行された次のロード/記憶命令の前記生成データの記録を中断し、前記次のロード/記憶命令について記録されている前記以前生成されたデータを使って前記次のロード/記憶命令を実行するのを中断するようにさらに構成される、請求項1に記載の部分的リプレイコントローラ。
【請求項１２】
前記命令ブロックについての前記記録/リプレイ状態が以前のロック状態からアクティブ状態に戻ったことに応答して、前記記録/リプレイ回路は、前記実行された次のロード/記憶命令の前記生成データを前記記録/リプレイログファイルに記録し、前記次のロード/記憶命令に関して記録されている、前記以前生成されたデータを使って前記次のロード/記憶命令を実行するのを再開するようにさらに構成される、請求項11に記載の部分的リプレイコントローラ。
【請求項１３】
前記記録/リプレイ状態が前記アクティブ状態にあるときの前記命令ブロックの前記実行中の前記例外の前記発生に応答して、前記記録/リプレイ回路は、前記例外の前記発生に先立って、前記命令ブロック中の実行された命令による外部生成値をコミットするようにさらに構成される、請求項12に記載の部分的リプレイコントローラ。
【請求項１４】
命令ブロック中のすべての命令がコミットされるか、または命令のどれもコミットされない命令ブロックに命令がグループ化されるブロックアトミック実行モデルを利用するプロセッサにおいて命令ブロックをリプレイする方法であって、
前記プロセッサによる前記命令ブロックの実行中に、起こり得るアーキテクチャ状態修正に関連付けられた命令の検出または前記プロセッサにおける例外の発生に応答して、命令ブロックに関して記録/リプレイ状態をアクティブ状態に設定するステップであって、命令は、前記プロセッサにおいてアーキテクチャ状態を修正する場合、起こり得るアーキテクチャ状態修正に関連付けられ、前記命令ブロックの外の機能またはプロセスとの観察可能な対話をもつ、ステップと、
前記命令ブロックに関する前記記録/リプレイ状態がアクティブ状態であることに応答して、前記プロセッサによる前記命令ブロックの再実行中に、
以前生成されたデータが次のロード/記憶命令に関して記録されているかどうかを判断するために、前記命令ブロック中で実行されるべき前記次のロード/記憶命令に対応する記録/リプレイログファイル中のエントリ状態を検査するステップと、
前記以前生成されたデータが、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されていないことに応答して、前記実行された次のロード/記憶命令の生成データを前記記録/リプレイログファイルに記録するステップと、
前記以前生成されたデータが、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されていることに応答して、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されている、前記以前生成されたデータを使って、前記次のロード/記憶命令を実行するステップと
を含む方法。
【請求項１５】
コンピュータ実行可能命令を記憶したコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、命令ブロック中のすべての命令がコミットされるか、または命令のどれもコミットされない命令ブロックに命令がグループ化されるブロックアトミック実行モデルを利用するプロセッサによって実行されると、前記プロセッサに、
前記プロセッサによる前記命令ブロックの実行中に、起こり得るアーキテクチャ状態修正に関連付けられた命令の検出または前記プロセッサにおける例外の発生に応答して、命令ブロックに関して記録/リプレイ状態をアクティブ状態に設定することであって、命令は、前記プロセッサにおいてアーキテクチャ状態を修正する場合、起こり得るアーキテクチャ状態修正に関連付けられ、前記命令ブロックの外の機能またはプロセスとの観察可能な対話をもつ、ことと、
前記命令ブロックに関する前記記録/リプレイ状態がアクティブ状態であることに応答して、前記プロセッサによる前記命令ブロックの再実行中に、
以前生成されたデータが次のロード/記憶命令に関して記録されているかどうかを判断するために、前記命令ブロック中で実行されるべき前記次のロード/記憶命令に対応する記録/リプレイログファイル中のエントリ状態を検査することと、
前記以前生成されたデータが、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されていないことに応答して、前記実行された次のロード/記憶命令の生成データを前記記録/リプレイログファイルに記録することと、
前記以前生成されたデータが、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されていることに応答して、前記次のロード/記憶命令に関して前記記録/リプレイログファイルに記録されている、前記以前生成されたデータを使って、前記次のロード/記憶命令を実行することと
を行わせる、コンピュータ可読記憶媒体。