【手続補正書】
【提出日】令和2年2月14日(2020.2.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各々が予測器タグフィールドとメモリアドレスフィールドとを備える、複数のロードアドレス予測テーブルエントリを記憶するように構成されたロードアドレス予測テーブルを備えた、プロセッサのロードアドレス予測エンジンであって、
ロード命令を受信し、
前記ロード命令に関する識別子およびロード経路履歴インジケータに基づいて、テーブルインデックスおよび予測器タグを生成し、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、ロードアドレス予測テーブルエントリの予測器タグフィールド内に存在するかどうかを判定し、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在するとの判定に応答して、前記ロード命令に関する予測されるメモリアドレスとして、前記ロードアドレス予測テーブルエントリのメモリアドレスフィールドからメモリアドレスを提供する
ように構成される、ロードアドレス予測エンジン。
【請求項２】
分岐方向履歴、もしくは分岐経路履歴、またはそれらの組合せに基づいて、前記テーブルインデックスおよび前記予測器タグを生成するようにさらに構成される、請求項1に記載のロードアドレス予測エンジン。
【請求項３】
前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサのシステムデータキャッシュ内に存在するかどうかを判定し、
前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサの前記システムデータキャッシュ内に存在するとの判定に応答して、
前記予測されるメモリアドレスに関するデータを前記システムデータキャッシュから検索し、
前記検索したデータを、データ値予測として、前記プロセッサの実行パイプラインのバックエンド命令パイプラインに提供し、
前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサの前記システムデータキャッシュ内に存在しないとの判定に応答して、
前記予測されるメモリアドレスに対応するデータを前記プロセッサのシステムメモリからプリフェッチし、
前記プリフェッチしたデータを前記プロセッサの前記システムデータキャッシュ内に記憶する
ようにさらに構成される、請求項1に記載のロードアドレス予測エンジン。
【請求項４】
前記複数のロードアドレス予測テーブルエントリのうちの各ロードアドレス予測テーブルエントリが、信頼値フィールドをさらに備え、
前記ロードアドレス予測エンジンが、前記ロードアドレス予測テーブルエントリの前記信頼値フィールドが前記ロードアドレス予測エンジンの信頼しきい値フィールドを超えることにさらに応答して、前記ロード命令に関する前記予測されるメモリアドレスとして、前記ロードアドレス予測テーブルエントリの前記メモリアドレスフィールドの前記メモリアドレスを提供するように構成される
請求項3に記載のロードアドレス予測エンジン。
【請求項５】
前記ロード命令の実行に続いて、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在するとの判定に応答して、
前記ロード命令の実メモリアドレスが前記ロード命令に関する前記予測されるメモリアドレスに整合するかどうかを判定し、
前記ロード命令の前記実メモリアドレスが前記ロード命令に関する前記予測されるメモリアドレスに整合するとの判定に応答して、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドを増分し、
前記ロード命令の前記実メモリアドレスが前記ロード命令に関する前記予測されるメモリアドレスに整合しないとの判定に応答して、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドをリセットし、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在しないとの判定に応答して、
前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドが非ゼロであるかどうか判定し、
前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドが非ゼロであるとの判定に応答して、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドを減分し、
前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドがゼロ(0)であるとの判定に応答して、前記予測器タグおよび前記ロード命令に関する前記実メモリアドレスを用いて、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリを初期化する
ようにさらに構成される、請求項4に記載のロードアドレス予測エンジン。
【請求項６】
前記複数のロードアドレス予測テーブルエントリのうちの各ロードアドレス予測テーブルエントリが、キャッシュウェイフィールドをさらに備え、
前記ロードアドレス予測エンジンが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記キャッシュウェイフィールドに基づいて、前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサの前記システムデータキャッシュ内に存在するかどうかを判定するように構成される
請求項3に記載のロードアドレス予測エンジン。
【請求項７】
前記ロード命令に関する前記予測されるメモリアドレスとして、前記ロードアドレス予測テーブルエントリの前記メモリアドレスフィールドの前記メモリアドレスをメモリディスアンビギュエーションのために前記プロセッサのバックエンド命令パイプラインに提供するように構成される、請求項1に記載のロードアドレス予測エンジン。
【請求項８】
集積回路(IC)に統合される、請求項1に記載のロードアドレス予測エンジン。
【請求項９】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、スマートフォン、タブレット、ファブレット、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、および自動車からなるグループから選択されるデバイスに統合される、請求項1に記載のロードアドレス予測エンジン。
【請求項１０】
ロードアドレス予測を提供するための方法であって、
プロセッサのロードアドレス予測エンジンによって、ロード命令を受信するステップと、
前記ロード命令に関する識別子およびロード経路履歴インジケータに基づいて、テーブルインデックスおよび予測器タグを生成するステップと、
前記予測器タグが、前記ロードアドレス予測エンジンのロードアドレス予測テーブルの複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、ロードアドレス予測テーブルエントリの予測器タグフィールド内に存在するかどうかを判定するステップと、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在するとの判定に応答して、前記ロード命令に関する予測されるメモリアドレスとして、前記ロードアドレス予測テーブルエントリのメモリアドレスフィールドからメモリアドレスを提供するステップと
を含む、方法。
【請求項１１】
前記テーブルインデックスおよび前記予測器タグを生成するステップが、分岐方向履歴、もしくは分岐経路履歴、またはそれらの組合せにさらに基づく、請求項10に記載の方法。
【請求項１２】
前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサのシステムデータキャッシュ内に存在するかどうかを判定するステップと、
前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサの前記システムデータキャッシュ内に存在するとの判定に応答して、
前記予測されるメモリアドレスに関するデータを前記システムデータキャッシュから検索するステップと、
前記検索したデータを、データ値予測として、前記プロセッサの実行パイプラインのバックエンド命令パイプラインに提供するステップと、
前記ロード命令に関する前記予測されるメモリアドレスが前記プロセッサの前記システムデータキャッシュ内に存在しないとの判定に応答して、
前記予測されるメモリアドレスに対応するデータを前記プロセッサのシステムメモリからプリフェッチするステップと、
前記プリフェッチしたデータを前記プロセッサの前記システムデータキャッシュ内に記憶するステップと
をさらに含む、請求項10に記載の方法。
【請求項１３】
前記複数のロードアドレス予測テーブルエントリのうちの各ロードアドレス予測テーブルエントリが、信頼値フィールドをさらに備え、
前記ロード命令に関する前記予測されるメモリアドレスとして、前記ロードアドレス予測テーブルエントリの前記メモリアドレスフィールドの前記メモリアドレスを提供するステップが、前記ロードアドレス予測テーブルエントリの前記信頼値フィールドが前記ロードアドレス予測エンジンの信頼しきい値フィールドを超えることにさらに応答する
請求項12に記載の方法。
【請求項１４】
前記ロード命令の実行に続いて、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在するとの判定に応答して、
前記ロード命令の実メモリアドレスが前記ロード命令に関する前記予測されるメモリアドレスに整合するかどうかを判定するステップと、
前記ロード命令の前記実メモリアドレスが前記ロード命令に関する前記予測されるメモリアドレスに整合するとの判定に応答して、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドを増分するステップと、
前記ロード命令の前記実メモリアドレスが前記ロード命令に関する前記予測されるメモリアドレスに整合しないとの判定に応答して、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドをリセットするステップと、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在しないとの判定に応答して、
前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドが非ゼロであるかどうか判定するステップと、
前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドが非ゼロであるとの判定に応答して、前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドを減分するステップと、
前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリの前記信頼値フィールドがゼロ(0)であるとの判定に応答して、前記ロード命令に関する前記テーブルインデックスに対応する前記ロードアドレス予測テーブルエントリを初期化するステップと
をさらに含む、請求項13に記載の方法。
【請求項１５】
コンピュータ実行可能命令を記憶した非一時的コンピュータ可読記録媒体であって、前記コンピュータ実行可能命令が、プロセッサによって実行されると、前記プロセッサに、
ロード命令を受信させ、
前記ロード命令に関する識別子およびロード経路履歴インジケータに基づいて、テーブルインデックスおよび予測器タグを生成させ、
前記予測器タグが、ロードアドレス予測テーブルの複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、ロードアドレス予測テーブルエントリの予測器タグフィールド内に存在するかどうかを判定させ、
前記予測器タグが、前記複数のロードアドレス予測テーブルエントリのうちの、前記テーブルインデックスに対応する、前記ロードアドレス予測テーブルエントリの前記予測器タグフィールド内に存在するとの判定に応答して、前記ロード命令に関する予測されるメモリアドレスとして、前記ロードアドレス予測テーブルエントリのメモリアドレスフィールドからメモリアドレスを提供させる、
非一時的コンピュータ可読記録媒体。