(57)【特許請求の範囲】
【請求項１】
フェッチされた命令を格納する命令キューと、
前記命令キューに格納されている第１のフュージョン可能な命令の処理を最大で閾時間だけ遅延させて、前記第１のフュージョン可能な命令とフュージョン可能であるが前記命令キューに未だ格納されていない第２のフュージョン可能な命令が、該第２のフュージョン可能な命令が前記閾時間内に前記命令キューに格納される場合に、前記第１のフュージョン可能な命令とフュージョンされ得るようにするロジックと、
前記第２のフュージョン可能な命令が前記閾時間内に前記命令キューに格納された場合に、前記第１及び第２のフュージョン可能な命令をフュージョンする命令フュージョンロジックと、
を有する装置。
【請求項２】
前記第１のフュージョン可能な命令及び前記第２のフュージョン可能な命令は、前記命令キューに格納される前にフェッチ・バウンダリにわたって格納される、
請求項１に記載の装置。
【請求項３】
前記ロジックは、前記第１のフュージョン可能な命令が前記命令キューに格納されている最後の命令である場合にのみ、前記第１のフュージョン可能な命令の処理を遅延させる、
請求項１に記載の装置。
【請求項４】
前記ロジックは、前記閾時間に対応する閾数のサイクルに達するまで、前記第１のフュージョン可能な命令が前記命令キューに格納され且つ前記命令キューにおける最後の命令であるサイクルごとに１つインクリメントされるカウンタを有する、
請求項１に記載の装置。
【請求項５】
中間動作が前記命令キューに格納されている前記第１のフュージョン可能な命令と前記命令キューに格納される前記第２のフュージョン可能な命令との間で実行される場合に、フィル要求キューが前記第１のフュージョン可能な命令及び前記第２のフュージョン可能な命令に対応するエントリをロックすることを防止する状態機械、を更に有する請求項１に記載の装置。
【請求項６】
前記中間動作は、前記命令キューをクリアすることである、
請求項５に記載の装置。
【請求項７】
フェッチされた命令を格納する命令キュー内で目下アクセスされている命令が、前記命令キューに格納されるいずれかの後続の命令とフュージョン可能であるかどうかを決定するステップと、
前記目下アクセスされている命令が前記命令キューに格納される後続の命令とフュージョン可能でない場合に、前記命令キューの次の命令にアクセスし、遅延カウンタをリセットするステップと、
前記目下アクセスされている命令がフュージョン可能であり、且つ、前記命令キューにおける最後の命令である場合に、前記遅延カウンタをインクリメントするステップと、
前記目下アクセスされている命令及び前記後続の命令がフュージョン可能であり、且つ、前記遅延カウンタが閾値に達する前に前記後続の命令が前記命令キューに格納される場合に、前記目下アクセスされている命令を前記後続の命令とフュージョンするステップと、
を有する方法。
【請求項８】
前記目下アクセスされている命令及び前記後続の命令がフュージョン可能でない場合に、前記目下アクセスされている命令を前記後続の命令とは別々に処理するステップを更に有する、
請求項７に記載の方法。
【請求項９】
前記遅延カウンタが前記閾値に達した場合に、前記目下アクセスされている命令を前記後続の命令とは別々に処理するステップを更に有する、
請求項７に記載の方法。
【請求項１０】
前記目下アクセスされている命令及び前記後続の命令がフュージョン可能であり、且つ、中間イベントが、前記目下アクセスされている命令と前記後続の命令との間で実行される場合に、フィル要求キューが前記目下アクセスされている命令及び前記後続の命令に対応するエントリをロックすることを防止するステップ、を更に有する請求項７に記載の方法。
【請求項１１】
第１のフュージョン可能な命令及び第２のフュージョン可能な命令を、アクセス・バウンダリにより区切られるそれぞれの領域であって互いに異なる領域に格納する記憶部と、
前記第１のフュージョン可能な命令及び前記第２のフュージョン可能な命令を、フェッチされた命令を格納する命令キューにフェッチするフェッチロジックを有するプロセッサと、
前記命令キューからの前記第１のフュージョン可能な命令の読出を閾数のサイクル分遅延させる遅延ロジックと
前記第２のフュージョン可能な命令が、前記第１のフュージョン可能な命令の後であって、前記閾数のサイクルに達する前に前記命令キューに格納される場合に、前記第１のフュージョン可能な命令及び前記第２のフュージョン可能な命令をフュージョンする命令フュージョンロジックと
を有するシステム。
【請求項１２】
前記第１のフュージョン可能な命令が前記命令キューにおける唯一の命令である場合にインクリメントし、前記閾数のサイクルに達したときにカウントを停止するカウンタを更に有する、
請求項１１に記載のシステム。
【請求項１３】
前記カウンタは、前記閾数のサイクルに達する前に前記第２のフュージョン可能な命令が前記命令キューに格納される場合にリセットされる、
請求項１２に記載のシステム。
【請求項１４】
前記記憶部は命令キャッシュを有し、前記アクセス・バウンダリにより区切られる前記命令キャッシュ上のそれぞれの領域のサイズが６４バイトである、
請求項１１に記載のシステム。
【請求項１５】
前記記憶部はダイナミックランダムアクセスメモリを有し、前記アクセス・バウンダリにより区切られる前記ダイナミックランダムアクセスメモリ上のそれぞれの領域のサイズが４０９６バイトである、
請求項１１に記載のシステム。
【請求項１６】
前記第１のフュージョン可能な命令はＣＭＰ／ＴＥＳＴ命令であり、前記第２のフュージョン可能な命令はＪＣＣ命令である、
請求項１１に記載のシステム。
【請求項１７】
前記サイクルの閾数は２である、
請求項１６に記載のシステム。
【請求項１８】
中間イベントが、前記第１のフュージョン可能な命令と前記第２のフュージョン可能な命令との間で実行される場合に、フィル要求キューが前記第１のフュージョン可能な命令及び前記第２のフュージョン可能な命令に対応するエントリをロックするのを防止する状態機械、を更に有する請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、概して、情報処理の分野に関し、より具体的には、コンピュータシステム及びマイクロプロセッサにおける命令フュージョン（instruction  fusion）の分野に関する。
【背景技術】
【０００２】
命令フュージョンは、２つの命令を、プロセッサ内の１つの動作（又はマイクロオペレーション“ｕｏｐ”）シーケンスをもたらす単一の命令にまとめる処理である。プロセッサ命令キュー（ＩＱ）（instruction  queue）に格納されている命令は、ＩＱから読み出された後、命令デコーダへ送信される前に、あるいは、命令デコーダによってデコードされた後に、フュージョンされてよい。通常、命令がデコードされる前に起こる命令フュージョンは「マクロフュージョン（macro-fusion）」と呼ばれ、他方、命令がデコードされた後に起こる命令フュージョンは「マイクロフュージョン（micro-fusion）」と呼ばれる。マクロフュージョンの例は、比較（“ＣＭＰ”）命令又はテスト（“ＴＥＳＴ”）命令（“ＣＭＰ／ＴＥＳＴ”）と条件付きジャンプ（“ＪＣＣ”）命令との結合である。ＣＭＰ／ＴＥＳＴ及びＪＣＣの命令の組は、プログラムにおいて、例えば、比較が行われ、比較の結果に基づいて、枝分かれが起こるか否かが決まるところのループの終わりに定期的に起こってよい。マクロフュージョンは命令スループットを有効に増大させうるので、可能な限り命令をフュージョンする多くの機会を見出すことが望ましい。
【０００３】
何らかの先行技術のプロセッサ・マイクロアーキテクチャで見出される命令フュージョンの機会に関し、ＣＭＰ／ＴＥＳＴ及びＪＣＣの両命令は、同時にＩＱにある必要があり、それにより、それらの命令は、命令がＩＱから読み出されるときにフュージョンされ得る。しかし、ＩＱにフュージョン可能なＣＭＰ／ＴＥＳＴ命令はあるが、それ以外の命令はＩＱに書き込まれていない場合（すなわち、ＣＭＰ／ＴＥＳＴ命令がＩＱにおける最後の命令である場合）、ＣＭＰ／ＴＥＳＴ命令は、たとえプログラム順序における次の命令がＪＣＣ命令であるとしても、ＩＱから読み出されて、フュージョンされることなくデコーダに送られうる。フュージョンの機会を逸する例は、ＣＭＰ／ＴＥＳＴ及びＪＣＣが図らずも記憶バウンダリ（例えば、１６バイトバウンダリ）にわたって起こり、ＣＭＰ／ＴＥＳＴが１サイクルにおいてＩＱに書き込まれ、ＪＣＣが次のサイクルにおいてＩＱに書き込まれる場合である。この場合に、失速状態（stalling  condition）が存在しないならば、ＪＣＣは、ＣＭＰ／ＴＥＳＴがＩＱから読み出されるのと同時に又はその後にＩＱに書き込まれるので、フュージョンの機会をのがし、ＩＱの多数の不必要な読出が引き起こされ、命令スループットが低下するとともに、電力消費は増大する。
【図面の簡単な説明】
【０００４】
【図１】本発明の少なくとも１つの実施形態が使用されるマイクロプロセッサのブロック図を表す。
【図２】本発明の少なくとも１つの実施形態が使用されるバス共有型コンピュータシステムのブロック図を表す。
【図３】本発明の少なくとも１つの実施形態が使用されるポイント・ツー・ポイント相互接続型コンピュータシステムのブロック図を表す。
【図４】本発明の少なくとも１つの実施形態を実施するために使用される状態機械のブロック図を表す。
【図５】本発明の少なくとも１つの実施形態を実行するために使用される動作のフロー図である。
【図６】少なくとも１つの実施形態で実行される動作のフロー図である。
【発明を実施するための形態】
【０００５】
本発明の実施形態について、限定ではなく、一例として、添付の図面の各図を参照して説明する。図中、同じ参照符号は同じ要素を表している。
【０００６】
本発明の実施形態は、プロセッサにおける命令スループットを改善し、及び／又は、プロセッサの電力消費を削減するために、使用されてよい。一実施形態において、さもなければ命令フュージョンの機会を逸する可能性があるものが見つけられ、結果として、命令フュージョンが起こり得る。一実施形態において、逸する可能性がある命令フュージョンの機会は、命令キュー（ＩＱ）からの最後の命令の読出又はＩＱから読み出される最後の命令の発行を閾数のサイクルだけデコード相まで遅らせることによって見つけられ、それにより、後続のフュージョン可能な命令は全てフェチされてＩＱに格納され（又は、必ずしもＩＱに格納される必要はなく、少なくとも識別され）、次いで、前記最後のフュージョン可能な命令とフュージョンされる。一実施形態において、閾数のサイクルだけ第１のフュージョン可能な命令の読出又は発行を遅延させることは、そのようにすることが、さもなければフュージョン可能な２つの命令が、単一の命令としてではなく、別々にデコードされて処理されてしまうことを回避するので、プロセッサ性能を改善することができる。
【０００７】
待機サイクルの閾数の選択は、特定の実施形態が使用されるマイクロアーキテクチャに依存してよい。例えば、一実施形態において、サイクルの閾数は２であってよく、一方、他の実施形態において、サイクルの閾数は２よりも多くても又は少なくてもよい。一実施形態において、待機サイクルの閾数は、フュージョン可能な命令を別々の命令として処理することに対する、後続のフュージョン可能な命令を待つことの全体的なレイテンシ／性能上の利点を保ちながら、後続のフュージョン可能な命令がＩＱに格納されるのを待つための最大の時間量を提供する。他の実施形態において、電力がより重要である場合に、例えば、待機サイクルの閾数は、たとえ待機サイクルの数が（一時的ではあるが）命令スループットの低下を引き起こすとしても、余分の電力が２つのフュージョン可能な命令を別々に処理するために使用されないことを確かにするために、より大きくてよい。
【０００８】
図１は、本発明の少なくとも１つの実施形態が使用されてよいマイクロプロセッサを表す。具体的に、図１は、１又はそれ以上のプロセッサコア１０５及び１１０を有するマイクロプロセッサ１００を表し、各プロセッサコアは、夫々自身に関連付けられたローカルキャッシュ１０７及び１１３を有する。また、図１には、ローカルキャッシュ１０７及び１１３の夫々に格納されている情報の少なくとも一部のバージョンを記憶することができる共有キャッシュメモリ１１５が表されている。幾つかの実施形態において、マイクロプロセッサ１００は、図１に図示されていない他のロジック、例えば、集積メモリコントローラ、集積グラフィックコントローラ、及びＩ／Ｏ制御等のコンピュータ内の他の機能を実行する他のロジックを有してよい。一実施形態において、マルチプロセッサシステムにおける各マイクロプロセッサ又はマルチコアプロセッサにおける各プロセッサコアは、少なくとも１つの実施形態に従って、割込通信技術を可能にするロジック１１９を有してよく、又は別なふうに該ロジック１１９と関連付けられてよい。ロジックは、幾つかの先行技術実施よりも効率的な命令フュージョンを可能にする回路、ソフトウェア又はそれら両方を有してよい。
【０００９】
一実施形態において、ロジック１１９は、命令フュージョンの機会を逸する可能性を減らすロジックを有してよい。一実施形態において、ロジック１１９は、ＩＱ又は他のフェッチ命令記憶構造に記憶されている後続の命令がない場合に、ＩＱからの第１の命令（例えば、ＣＭＰ）の読出を遅延させる。一実施形態において、ロジック１１９は、ＩＱを読み出すこと、又は第１のフュージョン可能な命令をデコーダ若しくは他の処理ロジックへ発行する前の閾数のサイクル（例えば、２サイクル）の間に第１のフュージョン可能な命令の読出又は発行を引き起こし、それにより、（例えば、対象である２つの命令が、異なる記憶バウンダリにおけるメモリ又はキャッシュに格納されているために）ＩＱに未だ記憶されていない、第１の命令とフュージョン可能な第２のフュージョン可能な命令が存在する場合に、これら２つのフュージョン可能な命令をフュージョンする機会をのがさない。幾つかの実施形態において、閾値は固定であってよく、一方、他の実施形態において、閾値は可変であってよく、ユーザによって又はユーザに依存しないアルゴリズムに従って変更可能である。一実施形態において、第１のフュージョン可能な命令はＣＭＰ命令であり、第２のフュージョン可能な命令はＪＣＣ命令である。他の実施形態において、第１の命令及び第２の命令の一方又は両方はＣＭＰ又はＪＣＣ命令ではなく、如何なるフュージョン可能な命令であってもよい。更に、本発明の実施形態は、２よりも多い命令をフュージョンすることに適用されてよい。
【００１０】
図２は、例えば、本発明の実施形態が使用されてよいフロントサイドバス（ＦＳＢ）型コンピュータシステムを表す。いずれのプロセッサ２０１、２０５、２１０又は２１５も、プロセッサコア２２３、２２７、２３３、２３７、２４３、２４７、２５３、２５７の１つの中の又は別なふうに該１つと関連付けられているいずれかのローカルのレベル１（Ｌ１）キャッシュメモリ２２０、２２５、２３０、２３５、２４０、２４５、２５０、２５５の情報にアクセスしてよい。更に、いずれのプロセッサ２０１、２０５、２１０又は２１５も、共有レベル２（Ｌ２）キャッシュ２０３、２０７、２１３、２１７のいずれか１つの情報に、又はチップセット２６５を介してシステムメモリ２６０の情報にアクセスしてよい。図２におけるプロセッサの１つ又はそれ以上は、少なくとも１つの実施形態に従って、命令フュージョンの効率改善を可能にするロジック２１９を有し、又は別なふうに該ロジック２１９と関連付けられてよい。
【００１１】
図２に表されているＦＳＢ型コンピュータシステムに加えて、他のシステム構成が、ポイント・ツー・ポイント（Ｐ２Ｐ）相互接続型システム及びリング相互接続型システムを含め、本発明の種々の実施形態とともに使用されてよい。図３のＰ２Ｐシステムは、例えば、複数のプロセッサを有してよい。それらの中の２つのプロセッサ３７０及び３８０のみが例として示されている。プロセッサ３７０及び３８０は、夫々、メモリ３２、３４と接続するローカルのメモリコントローラハブ（ＭＣＨ）３７２、３８２を有してよい。プロセッサ３７０及び３８０は、ポイント・ツー・ポイント（ＰｔＰ）インターフェース回路３７８、３８８を用いてＰｔＰインターフェース３５０を介してデータを交換してよい。プロセッサ３７０及び３８０は、夫々、ＰｔＰインターフェース回路３７６、３９４、３８６、３９８を用いて個別のＰｔＰインターフェース３５２、３５４を介してチップセット３９０とデータを交換してよい。チップセット３９０は、更に、高性能グラフィックスインターフェース３３９を介して高性能グラフィックス回路３３８とデータを交換してよい。本発明の実施形態は、任意数のプロセッシングコアを有する何らかのプロセッサ内に、又は図３のＰｔＰバスエージェントの夫々の中に、配置されてよい。一実施形態において、いずれのプロセッサコアも、ローカルキャッシュメモリ（図示せず。）を有し、又は別なふうに該ローカルキャッシュメモリと関連付けられてよい。更に、共有キャッシュ（図示せず。）が、いずれか一方のプロセッサ内に含まれ、Ｐ２Ｐ相互接続を介してそれらのプロセッサと接続されてよく、それにより、一方又は両方のプロセッサのローカルキャッシュ情報は、プロセッサが低電力モードに入る場合に、共有キャッシュに格納されてよい。図３におけるプロセッサ又はコアの１つ又はそれ以上は、少なくとも１つの実施形態に従って、命令フュージョンの効率改善を可能にするロジック３１９を有し、又は別なふうに該ロジック３１９と関連付けられてよい。
【００１２】
少なくとも１つの実施形態において、第２のフュージョン可能な命令は、何らかの中間動作、例えば、（第１及び第２のフュージョン可能な命令の間に起こる）ＩＱクリア動作が起こる前に、ＩＱに格納されないことがあり、このとき、さもなければフュージョン可能な２つの命令をフュージョンする機会をのがす。キャッシュ（又はバッファ）が、（命令がＩＱから読み出されてデコードされた後に）プロセッサによる実行のためにスケジューリングされるべき関連するデコードされた命令シーケンス又はｕｏｐ（例えば、デコードされたストリームバッファ（“ＤＳＢ”）（decoded  stream  buffer）、トレースキャッシュ（“ＴＣ”）（trace  cache））を記憶するところの一実施形態において、第１のフュージョン可能なｕｏｐ（例えば、ＣＭＰ）は、同じアドレス可能な範囲（例えば、同じキャッシュウェイ）内にフュージョン可能な第２のｕｏｐ（例えば、ＪＣＣ）が格納されることなく、キャッシュに格納されることがある。これは、例えば、ＪＣＣが（キャッシュミスのために）キャッシュラインを横断し、又は（トランスレーションルックアサイドバッファ（ＴＬＢ）ミスのために）ベージ・バウンダリを横断している場合に、起こりうる。その場合に、キャッシュは、ＪＣＣなしでＣＭＰを格納し得る。その後、ＣＭＰが格納された後、しかし、ＪＣＣがキャッシュに格納される前に、プロセッサコア・パイプラインが（例えば、“クリア”信号がアサートされたために）クリアされる場合は、キャッシュは、ＪＣＣなしで、そのウェイのうちの１つにＣＭＰのみを格納する。
【００１３】
ＣＭＰを格納するキャッシュラインのその後の検索において、キャッシュは、欠けているＪＣＣを、ミスしたアクセスとして解釈してよく、ＪＣＣは、次のキャッシュ充填（フィル）動作のために付加ポイントしてマークされてよい。しかし、この付加ポイントは、ＣＭＰ＋ＪＣＣがＩＱからフュージョンされたものとして読み出され得るので、見つけられないことがある。従って、要求されるＪＣＣは、ＩＱから到来する充填されるいずれのｕｏｐとも一致せず、従って、キャッシュは、欠けているＪＣＣを充填することができず、フュージョンされたＣＭＰ＋ＪＣＣが期待されるラインにおいて継続的に失敗する。更に、保留中のフィル要求キュー（ＰＦＲＱ）（pending  fill  request  queue）がｕｏｐキャッシュフィル要求を格納するために使用されるところの一実施形態において、特定のフュージョンされた命令の充填のためにリザーブされていたエントリは（期待されるフュージョンされた命令が決して起こらないために）解放せず、次のクリア動作まで無駄なままである。一実施形態において、ＰＦＲＱエントリロックは、欠けているフュージョンされた命令のエントリがアクセスされるたびに起こってよく、従って、同じ場所へのその後のあらゆる充填を妨げうる。
【００１４】
ＰＦＲＱエントリの誤った又は好ましくないロックを防ぐために、一実施形態において、ＩＱから読み出されるｕｏｐをモニタして、対応するＰＦＲＱエントリを有する領域（例えば、充填のためにマークされた領域）が、例えば、充填開始点が検出されることなくエントリの最後のｕｏｐに達したために完全にミスした場合を検出するよう、状態機械（state  machine）が使用されてよい。一実施形態において、状態機械は、この条件が満たされる場合にＰＦＲＱエントリを解放してよい。他の実施形態において、好ましくないＰＦＲＱエントリのロックは、フュージョン可能な命令が両方とも存在しない場合には、ＩＱから読み出されるフュージョン可能な命令をキャッシュ内に生成しないことによって、回避されてよい。例えば、ＣＭＰの後に非ＪＣＣ命令が続く場合、フュージョンされた命令エントリがキャッシュ内に生成され得るが、ＣＭＰが（例えば、閾待機時間が満了した後に）単独でＩＱから読み出される場合に限り、それは、キャッシュに充填されないフュージョンされた命令エントリである。他の実施形態において、スキップされた充填領域を状態機械が検出した回数がカウントされ、充填領域がスキップされた閾カウント数の後に、キャッシュフラッシュ又は無効動作が実行されてよい。そして、その充填領域はキャッシュから除去されて、フュージョンされた命令が再充填されてよい。
【００１５】
図４は、一実施形態に従う状態機械を表し、当該状態機械は、ＩＱにおけるのがしたフュージョン可能な命令による好ましからざるＰＦＲＱエントリロック状態を回避するために使用されてよい。ＩＱ内の命令が充填のためにマークされた領域にない状態４０１において、充填領域にマッピングされる命令（キャッシュハッシングに従う充填領域からの命令）をＩＱがまさに処理しようとしていることを示す「充填領域開始（fill  region  start；ＦＲＳ）」信号は、しかし、ＰＦＲＱにセーブされている線形命令ポインタ（“リップ”（lip））から始まらない（４０５）。これは、状態機械を状態４１０に移動させうる。ＩＱ内の（直ぐにデコードされる）次の命令が充填領域を終わらせる（例えば、キャッシュによってハッシュされるラインを終わらせる、又は成立分岐である）場合、状態機械は、対応するＰＦＲＱエントリの割当解除（deallocation）４１５を引き起こし、状態機械は状態４０１に戻る。しかし、充填ポインタ（fill  pointer；ＦＰ）が、状態４０１又は状態４１０のいずれであろうと、充填領域リップ（fill  region  lip；ＦＲＬ）に等しい場合（４３０）、状態機械は、アクセスが充填領域内且つ充填開始点後にある状態４２０に入る。状態４２０から、充填領域インジケーションにおける最後のｕｏｐは、対応するＰＦＲＱエントリを解除することなく、状態機械を状態４０１に戻す（４２５）。図４の状態機械は、ハードウェアロジック、ソフトウェア、又はそれらの何らかの組合せにおいて実施されてよい。他の実施形態において、他の状態機械又はロジックが使用されてよい。
【００１６】
図５は、本発明の少なくとも１つの実施形態とともに使用されてよい動作のフロー図を表す。動作５０１で、ＩＱ内の目下アクセスされている命令がいずれかの後続の命令とフュージョン可能であるかどうかが決定される。フュージョン可能でない場合は、動作５０５で、次の命令がＩＱからアクセスされ、遅延カウントがリセットされる。他方、フュージョン可能である場合は、動作５１０で、遅延カウンタがインクリメントされ、動作５１５で、遅延カウント閾値に達したかどうかが決定される。遅延カウント閾値に達していない場合は、動作５２０で、目下アクセスされている命令の命令フュージョンは実行されない。遅延カウンタ閾値に達した場合は、動作５０５で、次の命令がＩＱからアクセスされ、遅延カウントがリセットされる。他の実施形態において、他の動作が、命令フュージョンの効率を改善するために使用されてよい。
【００１７】
図６は、少なくとも１つの実施形態とともに実行されてよい動作のフロー図を表す。多数のデコーダ回路を有するプロセッサにおいて一実施形態を実行するために、第１のフュージョン可能な命令が、フュージョンされた命令をデコードすることができる特定のデコーダ回路においてデコードされるべきことを確かにすることが有用である。図６において、動作６０１で、特定の命令がフュージョンされる命令の組の中の第１の命令であり得るかどうかが決定される。第１の命令でない場合は、動作６０５で、フュージョンされた命令が発行される。他方、第１の命令である場合は、動作６１０で、ＩＱにおいて第１のフュージョン可能な命令の後に有効な命令が続くかどうかが決定される。有効な命令が後に続く場合は、動作６０５で、フュージョンされた命令が発行される。他方、有効な命令が後に続かない場合は、動作６１５で、第１のフュージョン可能な命令は、フュージョンされた命令をサポート可能なデコーダに発せられるべきかどうかが決定される。一実施形態において、デコーダ−０は、フュージョンされた命令をデコードすることができる。第１のフュージョン可能な命令がデコーダ−０に発せられなかった場合は、動作６２０で、第１のフュージョン可能な命令は、それがデコーダ−０に対応するまで、異なるデコーダへ移動又は削除される。動作６２５で、カウンタは初期値Ｎに設定され、動作６３０で、命令の後に有効な命令が続き、又はカウンタがゼロである場合は、フュージョンされた命令は、動作６３５で発せられる。さもなければ、動作６４０で、カウンタはデクリメントされ、無効な命令は削除される。他の実施形態において、カウンタは、最終値へとインクリメントしてよい。他の実施形態において、削除動作に加えて、他の動作が無効な命令をクリアしてよい。
【００１８】
少なくとも１つの実施形態の１又はそれ以上の側面は、機械によって読み出される場合に該機械にここに記載される技術を実行するようロジックを組み立てさせる、プロセッサ内の種々のロジックを表す機械読出可能な媒体に記憶されている代表データによって実施されてよい。かかる表現は、「ＩＰコア」として知られており、有形な機械読出可能な媒体（テープ）に記憶され、実際にロジック又はプロセッサを作る製造機械にロードするよう種々の顧客又は製造施設に供給されてよい。
【００１９】
このように、マイクロアーキテクチャにおけるメモリ領域アクセスを対象とする方法及び装置について記載してきた。当然、上記記載は例示であって限定ではない。多数の他の実施形態は、上記記載を読み理解することで当業者には明らかである。従って、本発明の適用範囲は、添付の特許請求の範囲が権利を有する同等な包括的範囲とともに、特許請求の範囲を参照して決定されるべきである。
【図１】
0005902285.tif 000002
【図２】
0005902285.tif 000003
【図３】
0005902285.tif 000004
【図４】
0005902285.tif 000005
【図５】
0005902285.tif 000006
【図６】
0005902285.tif 000007