【手続補正書】
【提出日】平成16年2月16日(2004.2.16)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部メモリに格納されるべきデータ、または外部メモリから読み出されたデータの一部を格納するキャッシュメモリへのアクセスが可能なマイクロプロセッサのロード／ストア命令制御回路において、
ロード命令またはストア命令のキャッシュミスが起こってもマイクロプロセッサのパイプライン処理を停止させないノンブロッキング・キャッシュを実装する場合に、キャッシュミス時にストアデータをキャッシュ階層の中の下位メモリに直接ストアするノーライト・アロケイト・エリアに対するロード命令がキャッシュミスを起こし、後続するストア命令が先行するロード命令と同じキャッシュラインを対象としてキャッシュミスを起こしたことを検出するロード／ストア同一ラインミス検出手段と、
前記ロード／ストア同一ラインミス検出手段によりロード／ストアの同一ラインミスが検出されると、前記後続するストア命令によるストアデータを一時的に格納する一時的格納手段と、
前記先行するロード命令によるキャッシュラインへのリフィル処理中またはリフィル処理が終了した後、前記一時的格納手段に格納されているストアデータを、対応するキャッシュラインにストアするロード／ストア制御手段と、を備えることを特徴とするロード／ストア命令制御回路。
【請求項２】
マイクロプロセッサのパイプライン中のロード／ストア命令がキャッシュミスを起こした場合に、キャッシュミスを起こしたロード／ストア命令のアクセス先アドレスを格納するアドレス格納手段と、
前記アドレス格納手段に格納されたアドレスと、前記パイプライン中のロード／ストア命令のアクセス先アドレスとが一致するか否かを検出するアドレス一致検出手段と、を備え、
前記ロード／ストア同一ラインミス検出手段は、前記アドレス一致検出手段による検出結果に基づいて、前記後続するストア命令が前記先行するロード命令と同じキャッシュラインを対象としてキャッシュミスを起こしたか否かを検出することを特徴とする請求項１に記載のロード／ストア命令制御回路。
【請求項３】
前記ロード／ストア制御手段は、ストア命令のキャッシュヒット時に前記キャッシュメモリのみにストアデータを書き込むコピーバックが選択されている場合には、前記先行するロード命令による前記キャッシュメモリのリフィル処理中またはリフィル処理が終了した後、前記一時的格納手段に格納されているストアデータを、前記キャッシュ階層の中の下位メモリにストアせずに、対応するキャッシュラインにストアすることを特徴とする請求項１に記載のロード／ストア命令制御回路。
【請求項４】
前記ロード／ストア制御手段は、ストア命令のキャッシュヒット時に前記キャッシュメモリと前記キャッシュ階層の中の下位メモリの双方にストアデータを書き込むライトスルーが選択されている場合には、前記先行するロード命令による前記キャッシュメモリのリフィル処理中またはリフィル処理が終了した後、前記一時的格納手段に格納されているストアデータを前記キャッシュ階層の中の下位メモリと対応するキャッシュラインの双方にストアすることを特徴とする請求項１に記載のロード／ストア命令制御回路。
【請求項５】
キャッシュミスによるキャッシュラインのリプレースに伴って、キャッシュ階層の中の下位メモリへ書き戻されるダーティ・ラインが常に、該キャッシュミスより後に起こったノーライト・アロケイト・エリアのストアミスに優先してキャッシュ階層の中の下位メモリへの書き込みを行う制御手段を有することを特徴とする請求項３に記載のロード／ストア命令制御回路。
【請求項６】
キャッシュミスによるキャッシュラインのリプレースに伴ってキャッシュ階層の中の下位メモリのキャッシュへ書き戻されるダーティ・ラインと、該キャッシュミスより後に起こったストア命令のキャッシュミスとがともにノーライト・アロケイト・エリアに対するオペレーションだった場合、該ダーティ・ライトバックを該ストアミスに優先してキャッシュ階層の中の下位メモリへの書き込みを行う制御手段を有することを特徴とする請求項３に記載のロード／ストア命令制御回路。
【請求項７】
キャッシュミスによるキャッシュラインの置き換えに伴ってキャッシュ階層の中の下位メモリへ書き戻されるダーティ・ラインと、該キャッシュミスより後に起こったストア命令のキャッシュミスとが依存関係を持ち、それらがノーライト・アロケイト・エリアに対するオペレーションだった場合、該ダーティ・ライトバックを該ストアミスに優先してキャッシュ階層の中の下位メモリまたは下位キャッシュへの書き込みを行う制御手段を有することを特徴とする請求項３に記載のロード／ストア命令制御回路。
【請求項８】
前記キャッシュメモリに格納されたデータに対応するアドレスが格納されるタグメモリと、
前記タグメモリ中の前記ダーティ・ライトバックに対応するアドレスと、マイクロプロセッサのパイプライン中のストア命令のストア先アドレスとが一致するか否かを検出するアドレス比較手段と、を備え、
前記ロード／ストア制御手段は、前記アドレス比較手段によりアドレスの一致が検出されると、前記ダーティ・ライトバックによるキャッシュ階層の中の下位メモリへの書き戻しが終了するまで、前記ストア命令によるストアデータのキャッシュ階層の中の下位メモリへの書き込みを禁止することを特徴とする請求項５に記載のロード／ストア命令制御回路。
【請求項９】
外部メモリに格納されるべきデータ、または外部メモリから読み出されたデータの一部を格納するキャッシュメモリへのアクセスが可能なマイクロプロセッサのロード／ストア命令制御方法において、
ロード命令またはストア命令のキャッシュミスが起こってもマイクロプロセッサのパイプライン処理を停止させないノンブロッキング・キャッシュを実装する場合に、キャッシュミス時にストアデータをキャッシュ階層の中の下位メモリに直接ストアするノーライト・アロケイト・エリアに対するロード命令がキャッシュミスを起こし、後続するストア命令が先行するロード命令と同じキャッシュラインを対象としてキャッシュミスを起こしたことを検出する第１ステップと、
前記第１ステップによりロード／ストアの同一ラインミスが検出されると、前記後続するストア命令によるストアデータを一時的に格納する第２ステップと、
前記先行するロード命令によるキャッシュラインへのリフィル処理中またはリフィル処理が終了した後、前記第２ステップに格納されているストアデータを、対応するキャッシュラインにストアする第３ステップと、を備えることを特徴とするロード／ストア命令制御方法。
【請求項１０】
マイクロプロセッサのパイプライン中のロード／ストア命令がキャッシュミスを起こした場合に、キャッシュミスを起こしたロード／ストア命令のアクセス先アドレスを格納する第４ステップと、
前第４ステップにて格納されたアドレスと、前記パイプライン中のロード／ストア命令のアクセス先アドレスとが一致するか否かを検出する第５ステップと、を備え、
前記第１ステップは、前記後続するストア命令が前記先行するロード命令と同じキャッシュラインを対象としてキャッシュミスを起こしたか否かを検出することを特徴とする請求項９に記載のロード／ストア命令制御方法。
【請求項１１】
前記第３ステップは、ストア命令のキャッシュヒット時に前記キャッシュメモリのみにストアデータを書き込むコピーバックが選択されている場合には、前記先行するロード命令による前記キャッシュメモリのリフィル処理中またはリフィル処理が終了した後、前記第２ステップにて格納されたストアデータを、前記キャッシュ階層の中の下位メモリにストアせずに、対応するキャッシュラインにストアすることを特徴とする請求項９に記載のロード／ストア命令制御方法。
【請求項１２】
キャッシュミスによるキャッシュラインのリプレースに伴って、キャッシュ階層の中の下位メモリへ書き戻されるダーティ・ラインが常に、該キャッシュミスより後に起こったノーライト・アロケイト・エリアのストアミスに優先してキャッシュ階層の中の下位メモリへの書き込みを行う第６ステップを有することを特徴とする請求項１１に記載のロード／ストア命令制御方法。
【請求項１３】
キャッシュミスによるキャッシュラインのリプレースに伴ってキャッシュ階層の中の下位メモリのキャッシュへ書き戻されるダーティ・ラインと、該キャッシュミスより後に起こったストア命令のキャッシュミスとがともにノーライト・アロケイト・エリアに対するオペレーションだった場合、該ダーティ・ライトバックを該ストアミスに優先してキャッシュ階層の中の下位メモリへの書き込みを行う第６ステップを有することを特徴とする請求項１１に記載のロード／ストア命令制御方法。
【請求項１４】
キャッシュミスによるキャッシュラインの置き換えに伴ってキャッシュ階層の中の下位メモリへ書き戻されるダーティ・ラインと、該キャッシュミスより後に起こったストア命令のキャッシュミスとが依存関係を持ち、それらがノーライト・アロケイト・エリアに対するオペレーションだった場合、該ダーティ・ライトバックを該ストアミスに優先してキャッシュ階層の中の下位メモリまたは下位キャッシュへの書き込みを行う第６ステップを有することを特徴とする請求項１１に記載のロード／ストア命令制御方法。
【請求項１５】
前記第３ステップは、ストア命令のキャッシュヒット時に前記キャッシュメモリと前記キャッシュ階層の中の下位メモリの双方にストアデータを書き込むライトスルーが選択されている場合には、前記先行するロード命令による前記キャッシュメモリのリフィル処理中またはリフィル処理が終了した後、前記第２ステップにて格納されたストアデータを前記キャッシュ階層の中の下位メモリと対応するキャッシュラインの双方にストアすることを特徴とする請求項９に記載のロード／ストア命令制御方法。
【請求項１６】
前記キャッシュメモリに格納されたデータに対応するアドレスを格納する第７ステップと、
前記タグメモリ中の前記ダーティ・ライトバックに対応するアドレスと、マイクロプロセッサのパイプライン中のストア命令のストア先アドレスとが一致するか否かを検出する第８ステップと、を備え、
前記第３ステップは、前記アドレス比較手段によりアドレスの一致が検出されると、前記ダーティ・ライトバックによるキャッシュ階層の中の下位メモリへの書き戻しが終了するまで、前記ストア命令によるストアデータのキャッシュ階層の中の下位メモリへの書き込みを禁止することを特徴とする請求項９に記載のロード／ストア命令制御方法。