【手続補正書】
【提出日】平成28年11月4日(2016.11.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
命令の第１の実行中に、前記命令がウェイ予測特性を有する場合、
前記命令に関連付けられ、前記第１の実行中にアクセスされたデータキャッシュの１つまたは複数のキャッシュラインに関連付けられたウェイを識別するテーブルのエントリを識別するために、前記テーブルの第１の読み取りを行うことと、
前記データキャッシュの第２のアクセスが前記ウェイにアクセスするかどうかの予測を行うための算術演算を行うことと、前記第２のアクセスは、前記命令の第２の実行に対応し、前記第２の実行は、前記第１の実行の後で行なわれる、
前記予測に応答して、前記エントリを無効にするか、または削除するかを決定することと、
前記命令が前記ウェイ予測特性を有さない場合、前記第１の読み取りを行わずに前記命令を実行することと
を備える方法。
【請求項２】
前記ウェイ予測特性が、前記命令のアドレス指定モード、前記命令の命令タイプ、前記命令がループに含まれるかどうかの指示、またはこれらの組合せを備える、請求項１に記載の方法。
【請求項３】
前記命令の前記アドレス指定モードが自動増分アドレス指定モードであるか、またはベースプラスオフセットアドレス指定モードであるかを決定することをさらに備える、請求項２に記載の方法。
【請求項４】
前記命令の前記アドレス指定モードが前記自動増分アドレス指定モードを備えるという決定に応答して、前記データキャッシュの特定のウェイを識別するために前記エントリの予測されるウェイフィールドを設定すること、ここにおいて、前記予測されるウェイフィールドは、前記エントリの生成時に設定される、をさらに備える、請求項３に記載の方法。
【請求項５】
前記命令の前記命令タイプがロードタイプであるか、またはストアタイプであるかを決定することをさらに備える、請求項２に記載の方法。
【請求項６】
前記命令が特定のループに含まれるという前記指示に応答して、前記テーブルが選択的に読み取られる、請求項２に記載の方法。
【請求項７】
特定の命令のアドレス指定モードがベースプラスオフセットアドレス指定モードを備えるという決定に応答して、前記データキャッシュの特定のウェイを識別するために前記テーブルの特定のエントリの予測されるウェイフィールドを設定すること、ここにおいて、前記特定のエントリは、前記特定の命令の特定の実行に関して生成され、および、ここにおいて、前記予測されるウェイフィールドは、前記特定の命令の後続の実行に基づいて設定される、をさらに備える、請求項１に記載の方法。
【請求項８】
前記テーブルが前記エントリを含むかどうかを決定することと、
前記エントリがウェイ予測を提供するために有効であるかどうかを決定することと、
前記エントリが有効な予測されるウェイを示すと決定したことに応答して、前記予測されるウェイを前記エントリから取り出し、前記データキャッシュの前記予測されるウェイを選択的に駆動することと
をさらに備える、請求項１に記載の方法。
【請求項９】
レジスタロケーションのデータを修正した特定の命令を識別することと、
前記テーブル内の特定のエントリが前記レジスタロケーションに対応するレジスタ識別子を含むかどうかを決定することと、
前記特定のエントリが前記特定の命令に対応するかどうかを決定することと、
前記特定のエントリが前記特定の命令に対応しないときに、前記特定のエントリを除去するかまたは無効にすることと
をさらに備える、請求項１に記載の方法。
【請求項１０】
命令を復号するように構成された復号ロジックと、
前記復号ロジックに結合され、
前記命令の第１の実行中に、前記命令がウェイ予測特性を有する場合、
前記命令に関連付けられ、前記第１の実行中にアクセスされたデータキャッシュの１つまたは複数のキャッシュラインに関連付けられたウェイを識別するテーブルのエントリを識別するために、前記テーブルの第１の読み取りを行うことと、
前記データキャッシュの第２のアクセスが前記ウェイにアクセスするかどうかの予測を行うための算術演算を行うことと、前記第２のアクセスは、前記命令の第２の実行に対応し、前記第２の実行は、前記第１の実行の後で行なわれる、
前記予測に応答して、前記エントリを無効にするか、または削除するかを決定することと、
前記命令が前記ウェイ予測特性を有さない場合、前記第１の読み取りを行わずに前記命令を実行することと
を行うように構成された制御ロジックと
を備えるプロセッサ。
【請求項１１】
複数のラインドライバと、ここにおいて、前記複数のラインドライバのうちの少なくとも１つのラインドライバは、前記予測に基づいて前記第２のアクセス中に選択的に有効化または無効化される、
前記命令に基づいてタグルックアップ動作を行うように構成されたタグアレイと、
前記複数のラインドライバに応答し、前記タグアレイまたは前記制御ロジックから受信されたウェイ選択信号に応答するマルチプレクサと、
前記タグルックアップ動作を選択的に有効化または無効化するように構成されたスイッチと
をさらに備える、請求項１０に記載のプロセッサ。
【請求項１２】
前記命令が増分値とアドレスとに関連付けられ、前記予測を行うための前記算術演算を行うことが、
前記増分値を前記アドレスに追加することによって、前記命令の増分されたアドレスを決定することと、
前記増分されたアドレスが、前記データキャッシュの、前記アドレスと同じキャッシュラインにあるかどうかを決定することと
を含む、請求項１１に記載のプロセッサ。
【請求項１３】
前記制御ロジックが、
前記増分されたアドレスが前記同じキャッシュラインにあるという決定に基づいて、前記第２のアクセス中に前記タグルックアップ動作を選択的に無効化し、
前記タグルックアップ動作が無効化されるときに、ウェイ選択信号を前記マルチプレクサに与えるようにさらに構成される、請求項１２に記載のプロセッサ。
【請求項１４】
前記制御ロジックが、前記エントリを除去するか、または、前記増分されたアドレスが前記アドレスに関連付けられたキャッシュラインとは異なるキャッシュラインに関連付けられるという決定に基づいて、前記テーブルの前記エントリが無効であることを示すようにさらに構成される、請求項１２に記載のプロセッサ。
【請求項１５】
命令を復号するための手段と、
テーブルを選択的に読み取るための手段とを備え、
選択的に読み取るための前記手段は、復号するための前記手段に結合され、
前記命令の第１の実行中に、前記命令がウェイ予測特性を有する場合、
前記命令に関連付けられ、前記第１の実行中にアクセスされたデータキャッシュの１つまたは複数のキャッシュラインに関連付けられたウェイを識別するテーブルのエントリを識別するために、前記テーブルの第１の読み取りを行うことと、
前記データキャッシュの第２のアクセスが前記ウェイにアクセスするかどうかの予測を行うための算術演算を行うことと、前記第２のアクセスは、前記命令の第２の実行に対応し、前記第２の実行は、前記第１の実行の後で行なわれる、
前記予測に応答して、前記エントリを無効にするか、または削除するかを決定することと、
前記命令が前記ウェイ予測特性を有さない場合、前記第１の読み取りを行わずに前記命令を実行することと
を行うように構成される、装置。
【請求項１６】
前記ウェイに基づいてデータキャッシュラインを選択的に駆動するための手段をさらに備える、請求項１５に記載の装置。
【請求項１７】
前記テーブル内の特定のエントリが、１つまたは複数のビットの値に基づいて、予測されるウェイを示し、前記１つまたは複数のビットが、複数のドライバのうちの各ドライバを選択的に有効化または無効化するために、マスクとして前記複数のドライバに適用される、請求項１５に記載の装置。
【請求項１８】
プロセッサによって実行されると、前記プロセッサに、
命令の第１の実行中に、前記命令がウェイ予測特性を有する場合、
前記命令に関連付けられ、前記第１の実行中にアクセスされたデータキャッシュの１つまたは複数のキャッシュラインに関連付けられたウェイを識別するテーブルのエントリを識別するために、前記テーブルの第１の読み取りを行わせ、
前記データキャッシュの第２のアクセスが前記ウェイにアクセスするかどうかの予測を行うための算術演算を行わせ、前記第２のアクセスは、前記命令の第２の実行に対応し、前記第２の実行は、前記第１の実行の後で行なわれる、
前記予測に応答して、前記エントリを無効にするか、または削除するかを決定させ、
前記命令が前記ウェイ予測特性を有さない場合、前記第１の読み取りを行わずに前記命令を実行させる
命令を備える非一時的コンピュータ可読媒体。
【請求項１９】
前記予測を行うための前記算術演算を行うことが、
前記命令に関連付けられた増分値を識別することと、
増分されたアドレス値を決定するために、前記増分値を前記命令に関連付けられたアドレス値に追加することと、
前記増分されたアドレス値が前記ウェイに関連付けられるかどうかを決定することと
を備える、請求項１８に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記プロセッサによって実行されると、前記プロセッサに、前記エントリを前記テーブル内にポピュレートさせる命令、ここにおいて、前記テーブル内の各エントリは、プログラムカウンタ識別子と、レジスタ識別子と、予測されるウェイ識別子とを含む、をさらに備える、請求項１８に記載の非一時的コンピュータ可読媒体。
【請求項２１】
前記命令が１つまたは複数の命令のループに含まれるという決定が行われた後に、前記エントリが生成される、請求項１８に記載の非一時的コンピュータ可読媒体。
【請求項２２】
前記プロセッサによって実行されると、前記プロセッサに、
複数のレジスタロケーションを監視させ、
前記複数のレジスタロケーションのうちの特定のレジスタロケーションにおけるデータが修正されるかどうかを決定させ、
特定のエントリが前記特定のレジスタロケーションに対応するレジスタ識別子を含むかどうかを決定するために、前記テーブルを読み取らせる
命令をさらに備える、請求項１８に記載の非一時的コンピュータ可読媒体。
【請求項２３】
命令の第１の実行中に増分値を識別することと、
前記命令に基づいて、前記第１の実行中にアクセスされたデータキャッシュのウェイを識別することと、
第１の増分されたアドレス値を決定するために、前記増分値を前記命令に関連付けられたアドレス値に追加することと、
前記第１の増分されたアドレス値が前記データキャッシュの前記ウェイにあるかどうかを決定することと、
ウェイ予測特性を有する前記命令を条件とし、かつ、前記第１の増分されたアドレスが前記データキャッシュの前記ウェイにあると決定したことに応答して、前記命令に対応するエントリをテーブル内にポピュレートすることと
を備える方法。
【請求項２４】
前記テーブル内の各エントリが、プログラムカウンタ識別子、レジスタ識別子、予測されるウェイ識別子、有効性ビット、またはそれらの組合せを含む、請求項２３に記載の方法。
【請求項２５】
前記命令が自動増分命令を備えるか、またはベースプラスオフセット命令を備えるかを決定することをさらに備える、請求項２３に記載の方法。
【請求項２６】
前記エントリが、前記アクセスされたデータキャッシュの前記ウェイを識別し、前記エントリが前記命令の前記第１の実行とともにポピュレートされ、
前記命令の第２の実行中に、特定の命令が特定のウェイ予測特性を有する前記命令である場合、
前記テーブルからの前記エントリの第１の読み取りを行うことと、
第２の増分されたアドレス値を計算することと、
前記ウェイを前記エントリのウェイフィールドから取り出すことと、
前記取り出されたウェイに対応する前記データキャッシュのドライバを選択的に有効化することと
前記特定の命令が前記特定のウェイ予測特性を有さない場合、前記第１の読み取りを行わずに前記特定の命令を実行することと
をさらに備える、請求項２３に記載の方法。
【請求項２７】
前記命令の後続の実行の増分されたアドレス値が前記ウェイとは異なるウェイにあると決定したことに応答して、前記テーブルを更新すること、ここにおいて、前記命令の前記後続の実行は、前記第１の実行の後である、をさらに備える、請求項２３に記載の方法。
【請求項２８】
前記エントリを除去するか、または、前記増分されたアドレスが前記アドレスに関連付けられたキャッシュラインとは異なるキャッシュラインに関連付けられるという決定に基づいて、前記テーブルの前記エントリが無効であることを示すことをさらに備える、請求項２３に記載の方法。
【請求項２９】
レジスタロケーションのデータを修正した特定の命令を識別することと、
特定のエントリが前記レジスタロケーションに対応するレジスタ識別子を含むかどうかを決定するために、前記テーブルを読み取ることと、
前記特定のエントリが前記特定の命令に対応するかどうかを決定することと、
前記特定のエントリが前記特定の命令に対応しないときに、前記特定のエントリを除去するかまたは無効にすることと
をさらに備える、請求項２３に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８９
【補正方法】変更
【補正の内容】
【００８９】
[0094]  開示される実施形態の上記の説明は、当業者が開示される実施形態を作成または使用することを可能にするように与えられる。これらの実施形態への様々な修正は当業者には容易に明らかになり、本明細書で定義された原理は本開示の範囲から逸脱することなく他の実施形態に適用され得る。従って、本開示は、本明細書に示した実施形態に限定されるものではなく、以下の特許請求の範囲によって定義される原理および新規の特徴と合致することが可能な最も広い範囲が与えられるべきものである。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
命令の１つまたは複数のウェイ予測特性を識別することと、
データキャッシュのウェイを識別する前記命令に関連付けられたテーブルのエントリを識別するために、前記１つまたは複数のウェイ予測特性の識別情報に基づいて、前記テーブルを選択的に読み取ることと、
前記命令に基づいた前記データキャッシュの次のアクセスが前記ウェイにアクセスするかどうかの予測を行うこととを備える方法。
［Ｃ２］
前記１つまたは複数のウェイ予測特性が、前記命令のアドレス指定モード、前記命令の命令タイプ、前記命令がループに含まれるかどうかの指示、またはこれらの組合せを備える、Ｃ１に記載の方法。
［Ｃ３］
前記命令の前記アドレス指定モードが自動増分アドレス指定モードであるか、またはベースプラスオフセットアドレス指定モードであるかを決定することをさらに備える、Ｃ２に記載の方法。
［Ｃ４］
前記命令の前記アドレス指定モードが前記自動増分アドレス指定モードを備えるという決定に応答して、前記データキャッシュの特定のウェイを識別するために前記エントリの予測されるウェイフィールドを設定すること、ここにおいて、前記予測されるウェイフィールドは、前記エントリの生成時に設定される、をさらに備える、Ｃ３に記載の方法。
［Ｃ５］
前記命令の前記アドレス指定モードが前記ベースプラスオフセットアドレス指定モードを備えるという決定に応答して、前記データキャッシュの特定のウェイを識別するために前記エントリの予測されるウェイフィールドを設定すること、ここにおいて、前記エントリは、前記命令の第１の実行に関して生成され、および、ここにおいて、前記予測されるウェイフィールドは、前記第１の実行に続く前記命令の第２の実行に基づいて設定される、をさらに備える、Ｃ３に記載の方法。
［Ｃ６］
前記命令の前記命令タイプがロードタイプであるか、またはストアタイプであるかを決定することをさらに備える、Ｃ２に記載の方法。
［Ｃ７］
前記命令が特定のループに含まれるという前記指示に応答して、前記テーブルが選択的に読み取られる、Ｃ２に記載の方法。
［Ｃ８］
前記テーブルが前記エントリを含むかどうかを決定することと、
前記エントリがウェイ予測を提供するために有効であるかどうかを決定することと、
前記エントリが有効な予測されるウェイを示すと決定したことに応答して、前記予測されるウェイを前記エントリから取り出し、前記データキャッシュの前記予測されるウェイを選択的に駆動することとをさらに備える、Ｃ１に記載の方法。
［Ｃ９］
レジスタロケーションのデータを修正した特定の命令を識別することと、
前記テーブル内の特定のエントリが前記レジスタロケーションに対応するレジスタ識別子を含むかどうかを決定することと、
前記特定のエントリが前記特定の命令に対応するかどうかを決定することと、
前記特定のエントリが前記特定の命令に対応しないときに、前記特定のエントリを除去するかまたは無効にすることとをさらに備える、Ｃ１に記載の方法。
［Ｃ１０］
命令の１つまたは複数のウェイ予測特性を識別するように構成された復号ロジックと、
前記復号ロジックに結合され、
データキャッシュのウェイを識別する前記命令に関連付けられたテーブルのエントリを識別するために、前記１つまたは複数のウェイ予測特性の識別情報に基づいて、前記テーブルを選択的に読み取ることと、
前記命令に基づいた前記データキャッシュの次のアクセスが前記ウェイにアクセスするかどうかの予測を行うことと
を行うように構成された制御ロジックとを備えるプロセッサ。
［Ｃ１１］
複数のラインドライバと、ここにおいて、前記複数のラインドライバのうちの少なくとも１つのラインドライバは、前記予測に基づいて選択的に有効化または無効化される、
前記命令に基づいてタグルックアップ動作を行うように構成されたタグアレイと、
前記複数のラインドライバに応答し、前記タグアレイまたは前記制御ロジックから受信されたウェイ選択信号に応答するマルチプレクサと、
前記タグルックアップ動作を選択的に有効化または無効化するように構成されたスイッチとをさらに備える、Ｃ１０に記載のプロセッサ。
［Ｃ１２］
前記命令が増分値とアドレスとに関連付けられ、前記制御ロジックが、
前記増分値を前記アドレスに追加することによって、前記命令の増分されたアドレスを決定し、
前記増分されたアドレスが、前記データキャッシュの、前記アドレスと同じキャッシュラインにあるかどうかを決定するようにさらに構成される、Ｃ１１に記載のプロセッサ。
［Ｃ１３］
前記制御ロジックが、
前記増分されたアドレスが前記同じキャッシュラインにあるという決定に基づいて、前記タグルックアップ動作を選択的に無効化し、
前記タグルックアップ動作が無効化されるときに、ウェイ選択信号を前記マルチプレクサに与えるようにさらに構成される、Ｃ１１に記載のプロセッサ。
［Ｃ１４］
前記制御ロジックが、前記エントリを除去するか、または、前記増分されたアドレスが前記アドレスに関連付けられたキャッシュラインとは異なるキャッシュラインに関連付けられるという決定に基づいて、前記テーブルの前記エントリが無効であることを示すようにさらに構成される、Ｃ１２に記載のプロセッサ。
［Ｃ１５］
命令の１つまたは複数のウェイ予測特性を識別するための手段と、
データキャッシュのウェイを識別する前記命令に関連付けられたテーブルのエントリを識別するために、前記１つまたは複数のウェイ予測特性の識別情報に基づいて、前記テーブルを選択的に読み取るための手段と、
前記命令に基づいた前記データキャッシュの次のアクセスが前記ウェイにアクセスするかどうかの予測を行うための手段とを備える装置。
［Ｃ１６］
前記命令を復号するための手段と、ここにおいて、前記命令は、レジスタ識別子を含み、予測可能な次のアドレスを有する、
前記ウェイに基づいてデータキャッシュラインを選択的に駆動するための手段とをさらに備える、Ｃ１５に記載の装置。
［Ｃ１７］
前記テーブル内の特定のエントリが、１つまたは複数のビットの値に基づいて、予測されるウェイを示し、前記１つまたは複数のビットが、複数のドライバのうちの各ドライバを選択的に有効化または無効化するために、マスクとして前記複数のドライバに適用される、Ｃ１５に記載の装置。
［Ｃ１８］
プロセッサによって実行されると、前記プロセッサに、
命令の１つまたは複数のウェイ予測特性を識別させ、
データキャッシュのウェイを識別する前記命令に関連付けられたテーブルのエントリを識別するために、前記１つまたは複数のウェイ予測特性の識別情報に基づいて、前記テーブルを選択的に読み取らせ、
前記命令に基づいた前記データキャッシュの次のアクセスが前記ウェイにアクセスするかどうかの予測を行わせる命令を備える非一時的コンピュータ可読媒体。
［Ｃ１９］
前記プロセッサによって実行されると、前記プロセッサに、
前記命令に関連付けられた増分値を識別させ、
前記命令の実行中にアクセスされた前記データキャッシュの特定のウェイを識別させ、
増分されたアドレス値を決定するために、前記増分値を前記命令に関連付けられたアドレス値に追加させ、
前記増分されたアドレス値が前記特定のウェイに関連付けられるかどうかを決定させる命令を備える、Ｃ１８に記載の非一時的コンピュータ可読媒体。
［Ｃ２０］
前記プロセッサによって実行されると、前記プロセッサに、前記エントリを前記テーブル内にポピュレートさせる命令、ここにおいて、前記テーブル内の各エントリは、プログラムカウンタ識別子と、レジスタ識別子と、予測されるウェイ識別子とを含む、をさらに備える、Ｃ１８に記載の非一時的コンピュータ可読媒体。
［Ｃ２１］
前記命令が１つまたは複数の命令のループに含まれるという決定が行われた後に、前記エントリが生成される、Ｃ１８に記載の非一時的コンピュータ可読媒体。
［Ｃ２２］
前記プロセッサによって実行されると、前記プロセッサに、
複数のレジスタロケーションを監視させ、
前記複数のレジスタロケーションのうちの特定のレジスタロケーションにおけるデータが修正されるかどうかを決定させ、
特定のエントリが前記特定のレジスタロケーションに対応するレジスタ識別子を含むかどうかを決定するために、前記テーブルを読み取らせる命令をさらに備える、Ｃ１８に記載の非一時的コンピュータ可読媒体。
［Ｃ２３］
命令の第１の実行中に増分値を識別することと、
前記命令に基づいて、前記第１の実行中にアクセスされたデータキャッシュのウェイを識別することと、
第１の増分されたアドレス値を決定するために、前記増分値を前記命令に関連付けられたアドレス値に追加することと、
前記第１の増分されたアドレス値が前記データキャッシュの前記ウェイにあるかどうかを決定することと、
前記第１の増分されたアドレスが前記データキャッシュの前記ウェイにあると決定したことに応答して、前記命令に対応するエントリをテーブル内にポピュレートすることとを備える方法。
［Ｃ２４］
前記テーブル内の各エントリが、プログラムカウンタ識別子、レジスタ識別子、予測されるウェイ識別子、有効性ビット、またはそれらの組合せを含む、Ｃ２３に記載の方法。
［Ｃ２５］
前記命令が自動増分命令を備えるか、またはベースプラスオフセット命令を備えるかを決定することをさらに備える、Ｃ２３に記載の方法。
［Ｃ２６］
前記エントリが、前記アクセスされたデータキャッシュの前記ウェイを識別し、前記エントリが前記命令の前記第１の実行とともにポピュレートされ、前記命令の第２の実行中に、
前記エントリを前記テーブルから読み取ることと、
第２の増分されたアドレス値を計算することと、
前記第２の実行中に前記ウェイをウェイ予測として適用することとを行うことをさらに備える、Ｃ２３に記載の方法。
［Ｃ２７］
前記ウェイを適用することが、
前記ウェイを前記エントリのウェイフィールドから取り出すことと、
前記取り出されたウェイに対応する前記データキャッシュのドライバを選択的に有効化することとを備える、Ｃ２６に記載の方法。
［Ｃ２８］
前記命令の後続の実行の増分されたアドレス値が前記ウェイとは異なるウェイにあると決定したことに応答して、前記テーブルを更新すること、ここにおいて、前記命令の前記後続の実行は、前記第１の実行の後である、をさらに備える、Ｃ２３に記載の方法。
［Ｃ２９］
前記エントリを除去するか、または、前記増分されたアドレスが前記アドレスに関連付けられたキャッシュラインとは異なるキャッシュラインに関連付けられるという決定に基づいて、前記テーブルの前記エントリが無効であることを示すことをさらに備える、Ｃ２３に記載の方法。
［Ｃ３０］
レジスタロケーションのデータを修正した特定の命令を識別することと、
特定のエントリが前記レジスタロケーションに対応するレジスタ識別子を含むかどうかを決定するために、前記テーブルを読み取ることと、
前記特定のエントリが前記特定の命令に対応するかどうかを決定することと、
前記特定のエントリが前記特定の命令に対応しないときに、前記特定のエントリを除去するかまたは無効にすることとをさらに備える、Ｃ２３に記載の方法。