【手続補正書】
【提出日】平成24年10月23日(2012.10.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
命令キューと、
第１のヒュージ可能な命令の処理を閾時間だけ遅延させて、前記第１のヒュージ可能な命令とヒュージ可能な第２のヒュージ可能な命令が、該第２のヒュージ可能な命令が前記閾時間内に前記命令キューに格納される場合に、前記第１のヒュージ可能な命令とヒュージされ得るようにするロジックと
を有する装置。
【請求項２】
前記第１のヒュージ可能な命令及び前記第２のヒュージ可能な命令は、前記命令キューに格納される前にフェッチ・バウンダリにわたって格納される、
請求項１に記載の装置。
【請求項３】
前記ロジックは、前記第１のヒュージ可能な命令が前記命令キューに格納されている最後の命令である場合にのみ、前記第１のヒュージ可能な命令の処理を遅延させる、
請求項１に記載の装置。
【請求項４】
前記ロジックは、前記閾時間に対応する閾数のサイクルに達するまで、前記第１のヒュージ可能な命令が前記命令キューに格納され、且つ、該命令キューにおける最後の命令であるサイクルごとに１つインクリメントされるカウンタを有する、
請求項１に記載の装置。
【請求項５】
中間命令が前記命令キューに格納されている前記第１のヒュージ可能な命令と前記命令キューに格納されている前記第２のヒュージ可能な命令との間で実行される場合に、ＦＢＲＱが前記第１のヒュージ可能な命令及び前記第２のヒュージ可能な命令に対応するエントリをロックすることを防ぐ状態機械を更に有する、
請求項１に記載の装置。
【請求項６】
前記中間命令は、前記命令キューをクリアすることである、
請求項５に記載の装置。
【請求項７】
命令キュー内で目下アクセスされている命令が、前記命令キューに格納されるいずれかの後続の命令とヒュージ可能であるかどうかを決定するステップと、
前記目下アクセスされている命令が前記命令キューに格納される後続の命令とヒュージ可能でない場合に、前記命令キューの次の命令にアクセスし、遅延カウンタをリセットするステップと、
前記目下アクセスされている命令がヒュージ可能であり、且つ、前記命令キューにおける最後の命令である場合に、前記遅延カウンタをインクリメントするステップと
を有する方法。
【請求項８】
前記目下アクセスされている命令及び前記後続の命令がヒュージ可能であり、且つ、前記遅延カウンタが閾値に達していない場合に、前記目下アクセスされている命令を前記後続の命令とヒュージするステップを更に有する、
請求項７に記載の方法。
【請求項９】
前記目下アクセスされている命令及び前記後続の命令がヒュージ可能でない場合に、前記目下アクセスされている命令を前記後続の命令から切り離して処理するステップを更に有する、
請求項８に記載の方法。
【請求項１０】
前記遅延カウンタが前記閾値に達した場合に、前記目下アクセスされている命令を前記後続の命令から切り離して処理するステップを更に有する、
請求項８に記載の方法。
【請求項１１】
前記目下アクセスされている命令及び前記後続の命令がヒュージ可能であり、且つ、中間イベントが、前記後続の命令がキャッシュに格納される前であって、前記目下アクセスされている命令が前記キャッシュに格納された後に行われる場合に、ＦＢＲＱが前記目下アクセスされている命令及び前記後続の命令に対応するエントリをロックすることを防ぐステップを更に有する、
請求項７に記載の方法。
【請求項１２】
第１のヒュージ可能な命令及び第２のヒュージ可能な命令を夫々第１のアクセス・バウンダリ及び第２のアクセス・バウンダリに格納する記憶部と、
前記第１のヒュージ可能な命令及び前記第２のヒュージ可能な命令を命令キューにフェッチするフェッチロジックを有するプロセッサと、
前記命令キューからの前記第１のヒュージ可能な命令の読出を閾数のサイクル分遅延させる遅延ロジックと
前記第２のヒュージ可能な命令が、前記第１のヒュージ可能な命令の後であって、前記閾数のサイクルに達する前に前記命令キューに格納される場合に、前記第１のヒュージ可能な命令及び前記第２のヒュージ可能な命令をヒュージする命令ヒュージョンロジックと
を有するシステム。
【請求項１３】
前記第１のヒュージ可能な命令が前記命令キューにおける唯一の命令である場合にインクリメントし、前記閾数のサイクルに達したときにカウントを停止するカウンタを更に有する、
請求項１２に記載のシステム。
【請求項１４】
前記カウンタは、前記閾数のサイクルに達する前に前記第２のヒュージ可能な命令が前記命令キューに格納される場合にリセットされる、
請求項１３に記載のシステム。
【請求項１５】
前記記憶部は命令キャッシュを有し、前記第１のアクセス・バウンダリ及び前記第２のアクセス・バウンダリは夫々サイズが６４バイトである、
請求項１２に記載のシステム。
【請求項１６】
前記記憶部は動的ランダムアクセスメモリを有し、前記第１のアクセス・バウンダリ及び前記第２のアクセス・バウンダリは夫々サイズが４０９６バイトである、
請求項１２に記載のシステム。
【請求項１７】
前記第１のヒュージ可能な命令はＣＭＰ／ＴＥＳＴ命令であり、前記第２のヒュージ可能な命令はＪＣＣ命令である、
請求項１２に記載のシステム。
【請求項１８】
前記サイクルの閾数は２である、
請求項１７に記載のシステム。
【請求項１９】
中間イベントが、キャッシュに格納されている前記第１のヒュージ可能な命令と前記キャッシュに格納されている前記第２のヒュージ可能な命令との間で実行される場合に、ＦＢＲＱが前記第１のヒュージ可能な命令及び前記第２のヒュージ可能な命令に対応するエントリをロックするのを防ぐ状態機械を更に有する、
請求項１２に記載のシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
図４は、一実施形態に従う状態機械を表し、状態機械は、ＩＱにおける失われたヒュージ可能な命令による好ましからざるＰＦＲＱエントリロック状態を回避するために使用されてよい。ＩＱにおける命令が充填のためにマークされた領域にない状態４０１において、ＩＱが充填領域にマッピングされる命令（キャッシュハッシングに従う充填領域からの命令）をまさに処理しようとしていることを示す「充填領域開始（fill  region  start；ＦＲＳ）」信号は、しかし、ＰＦＲＱにセーブされている線形命令ポインタ（“リップ”（lip））から始まらない（４０５）。これは、状態機械を状態４１０に移動させうる。ＩＱにおける（直ぐにデコードされる）次の命令が充填領域を終わらせる（例えば、キャッシュによってハッシュされるラインを終わらせる、又は成立分岐である）場合、状態機械は、対応するＰＦＲＱエントリの割当解除（deallocation）４１５を引き起こし、状態機械は状態４０１に戻る。しかし、充填ポインタ（fill  pointer；ＦＰ）が、状態４０１又は状態４１０のいずれであろうと、充填領域リップ（fill  region  lip；ＦＲＬ）に等しい場合（４３０）、状態機械は、アクセスが充填領域内且つ充填開始点後にある状態４２０に入る。状態４２０から、充填領域インジケーションにおける最後のｕｏｐは、対応するＰＦＲＱエントリを解除することなく、状態機械を状態４０１に戻す（４２５）。図４の状態機械は、ハードウェアロジック、ソフトウェア、又はそれらの何らかの組合せにおいて実施されてよい。他の実施形態において、他の状態機械又はロジックが使用されてよい。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
図５は、本発明の少なくとも１つの実施形態とともに使用されてよい動作のフロー図を表す。動作５０１で、ＩＱにおける目下アクセスされている命令がいずれかの後続の命令とヒュージ可能であるかどうかが決定される。ヒュージ可能でない場合は、動作５０５で、次の命令がＩＱからアクセスされ、遅延カウントがリセットされる。他方、ヒュージ可能である場合は、動作５１０で、遅延カウンタはインクリメントされ、動作５１５で、遅延カウント閾値に達したかどうかが決定される。遅延カウント閾値に達していない場合は、動作５２０で、目下アクセスされている命令の命令ヒュージョンは実行されない。遅延カウンタ閾値に達した場合は、動作５０５で、次の命令がＩＱからアクセスされ、遅延カウントがリセットされる。他の実施形態において、他の動作が、命令ヒュージョンの効率を改善するために使用されてよい。
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2012507794.tif 000001
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2012507794.tif 000002
【手続補正６】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2012507794.tif 000003
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2012507794.tif 000004
【手続補正８】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】追加
【補正の内容】
【図６】
2012507794.tif 000005