(57)【要約】【課題】向上された動作速度を提供するマイクロプロセッサを提供する。【解決手段】本発明の実施形態によるマイクロプロセッサは、再命名データ（ｒｅｎａｍｅ  ｄａｔａ）を格納するための再命名テーブルと、ディスパッチャー（ｄｉｓｐａｔｃｈｅｒ）と、前記ディスパッチャーから受信された再命名データを格納するためのチェックポイントテーブルＣＰＴ（Ｃｈｅｃｋ  Ｐｏｉｎｔ  Ｔａｂｌｅ）と、を有し、前記再命名テーブルがフラッシュ（ｆｌｕｓｈ）されれば、前記再命名テーブルは、前記チェックポイントテーブルに格納された前記再命名データを利用して再構成（ｒｅｂｕｉｌｄ）される。【選択図】図１
2014179096.tif 000002
【特許請求の範囲】
【請求項１】
再命名データ（ｒｅｎａｍｅ  ｄａｔａ）を格納するための再命名テーブルと、
ディスパッチャー（ｄｉｓｐａｔｃｈｅｒ）と、
前記ディスパッチャーから受信された再命名データを格納するためのチェックポイントテーブル（Ｃｈｅｃｋ  Ｐｏｉｎｔ  Ｔａｂｌｅ：ＣＰＴ）と、を有し、
前記再命名テーブルがフラッシュ（ｆｌｕｓｈ）されれば、前記再命名テーブルは、前記チェックポイントテーブルに格納された前記再命名データを利用して再構成（ｒｅｂｕｉｌｄ）されることを特徴とするマイクロプロセッサ。
【請求項２】
前記再命名テーブルは、前記チェックポイントテーブルに格納された再命名データのみを利用して再構成されることを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項３】
予測ミス（ｍｉｓｐｒｅｄｉｃｔｉｏｎ）を感知するためのブランチ実行ロジック（ｂｒａｎｃｈ  ｅｘｅｃｕｔｉｏｎ  ｌｏｇｉｃ）をさらに有し、
前記予測ミスが感知されたことに応答して、前記再命名テーブルはフラッシュされることを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項４】
クロックサイクルを定義するパルスを出力するクロック（ｃｌｏｃｋ）をさらに有し、
前記再命名テーブルは、前記クロックサイクルの中の１つのサイクル内で再構成されることを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項５】
リオーダーバッファ（Ｒｅ−Ｏｒｄｅｒ  Ｂｕｆｆｅｒ：ＲＯＢ）エントリ及びリオーダーバッファエントリの中で可変である１つのリオーダーバッファエントリを示すリタイアポインター（Ｒｅｔｉｒｅ  Ｐｏｉｎｔｅｒ）をさらに有し、
前記リオーダーバッファエントリのグループは、リオーダーバッファチェックポイントウインドウとして定義され、
前記リオーダーバッファチェックポイントウインドウは、前記リオーダーバッファチェックポイントウインドウが前記リタイアポインターが示す前記リオーダーバッファエントリに基づいて定義される動的関係にしたがって前記チェックポイントテーブルにマッピングされ、
前記再命名テーブルは、前記動的関係の側面で許諾される場合のみに前記チェックポイントテーブルに格納された前記再命名データを利用して再構成されることを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項６】
マイクロオペレーション（ｍｉｃｒｏ−ｏｐｅｒａｔｉｏｎ）にしたがって再命名データを発生する段階と、
前記再命名データを再命名テーブルに格納する段階と、
ディスパッチャーが前記マイクロオペレーションの中のいずれか１つを実行ユニットにディスパッチ（ｄｉｓｐａｔｃｈ）する段階と、
前記ディスパッチャーが前記再命名データを格納するためにチェックポイントテーブル（ｃｈｅｃｋ−ｐｏｉｎｔ  ｔａｂｌｅ：ＣＰＴ）へ伝送する段階と、を有し、
前記再命名テーブルがフラッシュされる場合に、前記再命名テーブルは、前記チェックポイントテーブルに格納された前記再命名データを前記チェックポイントテーブルから前記再命名テーブルにコピーすることによって再構成されることを特徴とするマイクロプロセッサの動作方法。
【請求項７】
予測ミスを感知する段階をさらに有し、
前記再命名テーブルは、前記予測ミスの感知に応答してフラッシュされることを特徴とする請求項６に記載のマイクロプロセッサの動作方法。
【請求項８】
命令語をマイクロオペレーション（ｍｉｃｒｏ−ｏｐｓ）にデコーディングするデコーダーと、
前記マイクロオペレーションを実行する実行ユニットと、
前記マイクロオペレーションにしたがって再命名データを生成する再命名器（ｒｅｎａｍｅｒ）と、
再命名テーブルと、
前記再命名データのチェックポイントされたバージョン（ｃｈｅｃｋ−ｐｏｉｎｔｅｄ  ｖｅｒｓｉｏｎ）を格納するチェックポイントテーブル（Ｃｈｅｃｋ−ｐｏｉｎｔ  ｔａｂｌｅ：ＣＰＴ）と、
前記マイクロオペレーションから生成されたリオーダーバッファデータ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ  ｄａｔａ：ＲＯＢ  ｄａｔａ）を格納するリオーダーバッファエントリ及び前記リオーダーバッファエントリの中で可変である１つのエントリを示すリタイアポインター（Ｒｅｔｉｒｅ  Ｐｏｉｎｔｅｒ）を含むリオーダーバッファと、を有し、
前記再命名テーブルは、前記再命名データが再命名テーブルからフラッシュされる方式で前記再命名データを格納し、
前記リオーダーバッファデータは、再構成再命名データ（ｒｅｂｕｉｌｄ  Ｒｅｎａｍｅ  ｄａｔａ）を含み、
前記リオーダーバッファエントリのグループは、リオーダーバッファチェックポイントウインドウとして定義され、
前記リオーダーバッファチェックポイントウインドウは、前記リオーダーバッファチェックポイントウインドウが前記リタイアポインターが示すリオーダーバッファエントリに基づいて定義される動的関係にしたがって前記チェックポイントテーブルにマッピングされ、
前記動的関係の側面で許諾される場合、前記再命名データの前記チェックポイントされたバージョンが前記チェックポイントテーブルから前記再命名テーブルにコピーされ、さらに前記再構成再命名データの少なくとも一部分が前記リオーダーバッファから前記再命名テーブルにコピーされることによって、
前記再命名テーブルに格納された再命名データが前記再命名テーブルからフラッシュされた場合、前記フラッシュされた再命名データが前記再命名テーブルに再格納されることを特徴とするマイクロプロセッサ。
【請求項９】
前記マイクロオペレーションの実行において、予測ミスを感知するためのブランチ実行ロジックをさらに有し、
前記予測ミスが感知されたことに応答して、前記再命名データは、前記再命名テーブルからフラッシュされることを特徴とする請求項８に記載のマイクロプロセッサ。
【請求項１０】
命令語をマイクロオペレーションにデコーディングする段階と、
前記マイクロオペレーションを実行する段階と、
前記マイクロオペレーションにしたがって再命名データを生成する段階と、
前記再命名データが再命名テーブルからフラッシュされる方式で前記再命名データを再命名テーブルに格納する段階と、
前記再命名データのチェックポイントされたバージョン（ｃｈｅｃｋ−ｐｏｉｎｔｅｄ  ｖｅｒｓｉｏｎ）をチェックポイントテーブル（ｃｈｅｃｋ−ｐｏｉｎｔ  ｔａｂｌｅ：ＣＰＴ）に格納する段階と、
前記マイクロオペレーションから生成されたリオーダーバッファデータ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ  ｄａｔａ：ＲＯＢ  ｄａｔａ）を前記リオーダーバッファ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ）のリオーダーバッファエントリ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ  ｅｎｔｒｉｅｓ：ＲＯＢ  ｅｎｔｒｉｅｓ）に格納する段階と、を有し、
前記リオーダーバッファデータは、再構成再命名データ及び前記リオーダーバッファエントリの中で可変である１つのエントリを示すリタイアポインター（Ｒｅｔｉｒｅ  Ｐｏｉｎｔｅｒ）を含み、
前記リオーダーバッファエントリのグループは、リオーダーバッファチェックポイントウインドウとして定義され、
前記リオーダーバッファチェックポイントウインドウは、前記リオーダーバッファチェックポイントウインドウが前記リタイアポインターが示すＲＯＢエントリに基づいて定義される動的関係にしたがって前記チェックポイントテーブルにマッピングされ、
前記動的関係の側面で許諾される場合、前記再命名データの前記チェックポイントされたバージョンが前記チェックポイントテーブルから前記再命名テーブルにコピーされ、さらに前記再構成再命名データの少なくとも一部分が前記リオーダーバッファから前記再命名テーブルにコピーされることによって、
前記再命名テーブルに格納された再命名データが前記再命名テーブルからフラッシュされた場合、前記フラッシュされた再命名データが前記再命名テーブルに再格納されることを特徴とするマイクロプロセッサの動作方法。
【請求項１１】
ディスパッチャーを通じて前記デコーダーから実行のための前記マイクロオペレーションを受信し、
前記チェックポイントテーブルは、前記ディスパッチャーから前記再命名データの前記チェックポイントされたバージョンを受信することを特徴とする請求項１０に記載のマイクロプロセッサの動作方法。
【請求項１２】
前記マイクロオペレーションの実行において、予測ミスを感知する段階をさらに有し、
前記予測ミスが感知されたことに応答して、前記再命名データは、前記再命名テーブルからフラッシュされることを特徴とする請求項１０に記載のマイクロプロセッサの動作方法。
【請求項１３】
クロックサイクルを定義するパルスが出力される段階をさらに有し、
前記再命名データの前記チェックポイントされたバージョンが前記クロックサイクルの中の１つのサイクル内に、前記チェックポイントテーブルから前記再命名テーブルにコピーされることを特徴とする請求項１０に記載のマイクロプロセッサの動作方法。
【請求項１４】
マイクロオペレーションにしたがって再命名データを生成する再命名器（ｒｅｎａｍｅｒ）と、
前記再命名データを格納する再命名テーブルと、
前記マイクロオペレーションから生成されたリオーダーバッファデータ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ  ｄａｔａ）を格納するリオーダーバッファ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ）と、
前記再命名データのチェックポイントされたバージョン（ｃｈｅｃｋ−ｐｏｉｎｔｅｄ  ｖｅｒｓｉｏｎ）を格納する１つのチェックポイントテーブル（ｃｈｅｃｋ−ｐｏｉｎｔ  ｔａｂｌｅ）と、を有し、
前記リオーダーバッファデータは、再構成再命名データを含み、  前記再命名データのチェックポイントされたバージョンが前記チェックポイントテーブルから前記再命名テーブルにコピーされ、かつ前記再構成再命名データのいずれの部分も前記リオーダーバッファから前記再命名テーブルにコピーされない場合、前記再命名テーブルに格納された再命名データが前記再命名テーブルからフラッシュされた場合、前記フラッシュされた再命名データが再格納されることを特徴とするマイクロプロセッサ。
【請求項１５】
前記マイクロオペレーションを前記実行ユニットに発送する（ｄｉｓｐａｔｃｈｉｎｇ）ディスパッチャーをさらに有し、
前記チェックポイントテーブルは、前記ディスパッチャーから前記再命名データの前記チェックポイントされたバージョンを受信することを特徴とする請求項８または１４に記載のマイクロプロセッサ。
【請求項１６】
前記マイクロオペレーションの実行において、予測ミスを感知するためのブランチ実行ロジックをさらに有し、
前記予測ミスが感知されたことに応答して、前記再命名テーブルは、再構成されることを特徴とする請求項１４に記載のマイクロプロセッサ。
【請求項１７】
クロックサイクルを定義するパルスを出力するクロックをさらに有し、
前記再命名データの前記チェックポイントされたバージョンが前記クロックサイクルの中の１つのサイクル内に、前記チェックポイントテーブルから前記再命名テーブルにコピーされることを特徴とする請求項８または１４に記載のマイクロプロセッサ。
【請求項１８】
マイクロオペレーションにしたがって再命名データを生成する段階と、
前記再命名データを再命名テーブルに格納する段階と、
前記マイクロオペレーションから生成されたリオーダーバッファデータ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ  ｄａｔａ）をリオーダーバッファ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ）に格納する段階と、
前記再命名データのチェックポイントされたバージョン（ｃｈｅｃｋ−ｐｏｉｎｔｅｄ  ｖｅｒｓｉｏｎ）を１つのチェックポイントテーブル（ｃｈｅｃｋ−ｐｏｉｎｔ  ｔａｂｌｅ）に格納する段階と、を有し、
前記リオーダーバッファデータは、再構成再命名データを含み、
前記再命名テーブルに格納された再命名データが前記再命名テーブルからフラッシュされる場合に、前記再命名データのチェックポイントされたバージョンが前記チェックポイントテーブルから前記再命名テーブルにコピーされ、かつ前記再構成再命名データのいずれの部分も前記ＲＯＢから前記再命名テーブルにコピーされない場合、前記フラッシュされた再命名データが再格納されることを特徴とするマイクロプロセッサの動作方法。
【請求項１９】
前記マイクロオペレーションの実行において、予測ミスを感知する段階をさらに含み、
前記予測ミスが感知されたことに応答して、前記再命名テーブルは、再構成されることを特徴とする請求項１８に記載のマイクロプロセッサの動作方法。
【請求項２０】
バス（Ｂｕｓ）と、
前記バスに接続された通信ネットワークにデータを伝送し、前記通信ネットワークからデータを受信するように構成されたインターフェイスと、
前記バスに接続された入出力装置と、
前記バスに接続され、前記入出力装置を通じてアクセス可能であるユーザーデータ又は命令語を格納するよう構成されたメモリと、
前記バスと接続され、前記命令語を利用するよう構成されたコントローラと、を有し、
前記コントローラは、少なくとも１つのマイクロプロセッサを含み、
前記少なくとも１つのマイクロプロセッサは、
再命名データ（ｒｅｎａｍｅ  ｄａｔａ）を格納するための再命名テーブルと、
ディスパッチャー（ｄｉｓｐａｔｃｈｅｒ）と、
前記ディスパッチャーから受信された再命名データを格納するためのチェックポイントテーブル（Ｃｈｅｃｋ  Ｐｏｉｎｔ  Ｔａｂｌｅ：ＣＰＴ）と、を含み、
前記再命名テーブルがフラッシュ（ｆｌｕｓｈ）されれば、前記再命名テーブルは、前記チェックポイントテーブルに格納された前記再命名データを利用して再構成（ｒｅｂｕｉｌｄ）されることを特徴とする電子機器。
【請求項２１】
前記インターフェイスは、無線であり、前記通信ネットワークも無線であることを特徴とする請求項２０に記載の電子機器。
【請求項２２】
前記再命名テーブルは、前記チェックポイントテーブルに格納された前記再命名データのみを利用して再構成されることを特徴とする請求項２０に記載の電子機器。
【請求項２３】
予測ミスを感知するためのブランチ遂行ロジックをさらに有し、
前記予測ミスが感知されたことに応答して、前記再命名テーブルは、フラッシュされることを特徴とする請求項２０に記載の電子機器。
【請求項２４】
クロックサイクルを定義するパルスを出力するクロックをさらに有し、
前記再命名テーブルは、前記クロックサイクルの中の１つのサイクル内で再構成されることを特徴とする請求項２０に記載の電子機器。
【請求項２５】
リオーダーバッファエントリ（Ｒｅ−Ｏｒｄｅｒ  Ｂｕｆｆｅｒ  ｅｎｔｒｉｅｓ）及びリオーダーバッファエントリの中で可変である１つのリオーダーバッファエントリを示すリタイアポインター（Ｒｅｔｉｒｅ  Ｐｏｉｎｔｅｒ）をさらに有し、
前記リオーダーバッファエントリのグループは、リオーダーバッファチェックポイントウインドウとして定義され、
前記リオーダーバッファチェックポイントウインドウは、前記リオーダーバッファチェックポイントウインドーが前記リタイアポインターが示す前記リオーダーバッファエントリに基づいて定義される動的関係にしたがって前記チェックポイントテーブルにマッピングされ、
前記再命名テーブルは、前記動作関係の側面で許諾される場合のみ、前記チェックポイントテーブルに格納された前記再命名データを利用して再構成されることを特徴とする請求項２０に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、さらに具体的には、電子機器の動作を制御するマイクロプロセッサ及びその動作方法並びにこのようなマイクロプロセッサを使用した電子機器に関する。
【背景技術】
【０００２】
マイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）は中央処理装置ＣＰＵと称され、実行命令語（ｅｘｅｃｕｔｉｎｇ  ｉｎｓｔｒｕｃｔｉｏｎｓ）によって動作する。
一部の命令語はブランチングポイント（ｂｒａｎｃｈｉｎｇ  ｐｏｉｎｔｓ）を発生させ、これは実行（ｅｘｅｃｕｔｉｏｎ）の経路（ｐａｔｈ）に優先して選択され得ることを意味する。
仮にいずれの経路を選択するかに対する正確な推論的な予測（ｓｐｅｃｕｌａｔｉｖｅ  ｐｒｅｄｉｃｔｉｏｎ）が可能であり、該当経路にしたがって命令語を予め実行すれば、マイクロプロセッサは向上した速度を有することができる。
【０００３】
このような中央処理装置ＣＰＵは、非順次的（ｏｕｔ−ｏｆ−ｏｒｄｅｒ）ＣＰＵとして知られている。しかし、速度向上の効果は、予測が誤って復旧が必要とする時には、消滅する。
非順次的なＣＰＵの直面する課題は、書込み後書込み（Ｗｒｉｔｅ  Ａｆｔｅｒ  Ｗｒｉｔｅ、ＷＡＷ）、書込み後読出し（Ｗｒｉｔｅ−Ａｆｔｅｒ−Ｒｅａｄ）のような危険要素（ｈａｚａｒｄ）である。
このような危険要素はレジスター再命名（ｒｅｇｉｓｔｅｒ  ｒｅｎａｍｉｎｇ）によって防止され得る。レジスター再命名は再命名されたソース（ｒｅｎａｍｅｄ  ｓｏｕｒｃｅ）と目的地レジスター（ｄｅｓｔｉｎａｔｉｏｎ  ｒｅｇｉｓｔｅｒ）とを持続的に把握する再命名テーブル（ｒｅｎａｍｅ  ｔａｂｌｅ）の助けを受けて実行される。
【０００４】
しかし、再命名（ｒｅｎａｍｉｎｇ）の問題は、誤って予測されたブランチ命令語（ｂｒａｎｃｈ  ｉｎｓｔｒｕｃｔｉｏｎ）が存在する時毎に、再命名テーブルが完全にフラッシュ（ｆｌｕｓｈ）されなければならないことである。
フラッシュ（ｆｌｕｓｈｉｎｇ）は、ブランチが非順次的に実行されて、誤って予測されたブランチ命令語より古い命令が待機することがあり得るため、問題となる。
このような古い命令のための再命名情報（ｒｅｎａｍｅ  ｉｎｆｏｒｍａｔｉｏｎ）は再命名テーブルに再構成（ｒｅｂｕｉｌｄ）されなければならない。
【０００５】
このような場合の問題は遅延（ｄｅｌａｙ）である。
再構成過程で再命名ロジックは、再命名のためにパイプのフロントエンドが新しい命令語を伝送することを停止しなければならない。このような停止は遅延をもたらし、これは誤って予測されたブランチのペナルティー（ｐｅｎａｌｔｙ）に該当する。
このようなペナルティーは、再構成遅延（ｒｅｂｕｉｌｄ  ｌａｔｅｎｃｙ）のみでなく、リダイレクション遅延（ｒｅｄｉｒｅｃｔｉｏｎ  ｌａｔｅｎｃｙ）及びパイプのフロントエンドの深さに依存する。
【０００６】
前述の停止動作を減少させるために、再命名パイプライン（ｒｅｎａｍｅ  ｐｉｐｅｌｉｎｅ）の一部として、ディスパッチ段階（ｄｉｓｐａｔｃｈ  ｓｔａｇｅ）以前に実行されるチェック−ポインティングスキーム（ｃｈｅｃｋ−ｐｏｉｎｔｉｎｇ  ｓｃｈｅｍｅ）が提案された。
このようなスキームで、各ブランチ命令語は新しいチェックポイントウインドウ（ｃｈｅｃｋ−ｐｏｉｎｔ  ｗｉｎｄｏｗ）を開始する。
このようなアプローチは、機械で許諾されて進行中である（ｉｎ−ｆｌｉｇｈｔ）ブランチの数ほど多いチェックポイントが要求されるので、空間的には高級である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第８，３０１，８４９号明細書
【特許文献２】米国特許第７，８０９，９２６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、上記従来のマイクロプロセッサにおける問題点に鑑みてなされたものであって、本発明の目的は、動作速度が向上されたマイクロプロセッサを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するためになされた本発明によるマイクロプロセッサは、再命名データ（ｒｅｎａｍｅ  ｄａｔａ）を格納するための再命名テーブルと、ディスパッチャー（ｄｉｓｐａｔｃｈｅｒ）と、前記ディスパッチャーから受信された再命名データを格納するためのチェックポイントテーブル（Ｃｈｅｃｋ  Ｐｏｉｎｔ  Ｔａｂｌｅ：ＣＰＴ）と、を有し、前記再命名テーブルがフラッシュ（ｆｌｕｓｈ）されれば、前記再命名テーブルは、前記チェックポイントテーブルに格納された前記再命名データを利用して再構成（ｒｅｂｕｉｌｄ）されることを特徴とする。
【００１０】
前記再命名テーブルは、前記チェックポイントテーブルに格納された再命名データのみを利用して再構成されることが好ましい。
予測ミス（ｍｉｓｐｒｅｄｉｃｔｉｏｎ）を感知するためのブランチ実行ロジック（ｂｒａｎｃｈ  ｅｘｅｃｕｔｉｏｎ  ｌｏｇｉｃ）をさらに有し、前記予測ミスが感知されたことに応答して、前記再命名テーブルはフラッシュされることが好ましい。
クロックサイクルを定義するパルスを出力するクロック（ｃｌｏｃｋ）をさらに有し、前記再命名テーブルは、前記クロックサイクルの中の１つのサイクル内で再構成されることが好ましい。
リオーダーバッファ（Ｒｅ−Ｏｒｄｅｒ  Ｂｕｆｆｅｒ：ＲＯＢ）エントリ及びリオーダーバッファエントリの中で可変である１つのリオーダーバッファエントリを示すリタイアポインター（Ｒｅｔｉｒｅ  Ｐｏｉｎｔｅｒ）をさらに有し、前記リオーダーバッファエントリのグループは、リオーダーバッファチェックポイントウインドウとして定義され、前記リオーダーバッファチェックポイントウインドウは、前記リオーダーバッファチェックポイントウインドウが前記リタイアポインターが示す前記リオーダーバッファエントリに基づいて定義される動的関係にしたがって前記チェックポイントテーブルにマッピングされ、前記再命名テーブルは、前記動的関係の側面で許諾される場合のみに前記チェックポイントテーブルに格納された前記再命名データを利用して再構成されることが好ましい。
【００１１】
上記目的を達成するためになされた本発明によるマイクロプロセッサの動作方法は、マイクロオペレーション（ｍｉｃｒｏ−ｏｐｅｒａｔｉｏｎ）にしたがって再命名データを発生する段階と、前記再命名データを再命名テーブルに格納する段階と、ディスパッチャーが前記マイクロオペレーションの中のいずれか１つを実行ユニットにディスパッチ（ｄｉｓｐａｔｃｈ）する段階と、前記ディスパッチャーが前記再命名データを格納するためにチェックポイントテーブル（ｃｈｅｃｋ−ｐｏｉｎｔ  ｔａｂｌｅ：ＣＰＴ）へ伝送する段階と、を有し、前記再命名テーブルがフラッシュされる場合に、前記再命名テーブルは、前記チェックポイントテーブルに格納された前記再命名データを前記チェックポイントテーブルから前記再命名テーブルにコピーすることによって再構成されることを特徴とする。
【００１２】
予測ミスを感知する段階をさらに有し、前記再命名テーブルは、前記予測ミスの感知に応答してフラッシュされることが好ましい。
【００１３】
また、上記目的を達成するためになされた本発明によるマイクロプロセッサは、命令語をマイクロオペレーション（ｍｉｃｒｏ−ｏｐｓ）にデコーディングするデコーダーと、前記マイクロオペレーションを実行する実行ユニットと、前記マイクロオペレーションにしたがって再命名データを生成する再命名器（ｒｅｎａｍｅｒ）と、再命名テーブルと、前記再命名データのチェックポイントされたバージョン（ｃｈｅｃｋ−ｐｏｉｎｔｅｄ  ｖｅｒｓｉｏｎ）を格納するチェックポイントテーブル（Ｃｈｅｃｋ−ｐｏｉｎｔ  ｔａｂｌｅ：ＣＰＴ）と、前記マイクロオペレーションから生成されたリオーダーバッファデータ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ  ｄａｔａ：ＲＯＢ  ｄａｔａ）を格納するリオーダーバッファエントリ及び前記リオーダーバッファエントリの中で可変である１つのエントリを示すリタイアポインター（Ｒｅｔｉｒｅ  Ｐｏｉｎｔｅｒ）を含むリオーダーバッファと、を有し、前記再命名テーブルは、前記再命名データが再命名テーブルからフラッシュされる方式で前記再命名データを格納し、前記リオーダーバッファデータは、再構成再命名データ（ｒｅｂｕｉｌｄ  Ｒｅｎａｍｅ  ｄａｔａ）を含み、
前記リオーダーバッファエントリのグループは、リオーダーバッファチェックポイントウインドウとして定義され、前記リオーダーバッファチェックポイントウインドウは、前記リオーダーバッファチェックポイントウインドウが前記リタイアポインターが示すリオーダーバッファエントリに基づいて定義される動的関係にしたがって前記チェックポイントテーブルにマッピングされ、前記動的関係の側面で許諾される場合、前記再命名データの前記チェックポイントされたバージョンが前記チェックポイントテーブルから前記再命名テーブルにコピーされ、さらに前記再構成再命名データの少なくとも一部分が前記リオーダーバッファから前記再命名テーブルにコピーされることによって、前記再命名テーブルに格納された再命名データが前記再命名テーブルからフラッシュされた場合、前記フラッシュされた再命名データが前記再命名テーブルに再格納されることを特徴とする。
【００１４】
前記マイクロオペレーションの実行において、予測ミスを感知するためのブランチ実行ロジックをさらに有し、前記予測ミスが感知されたことに応答して、前記再命名データは、前記再命名テーブルからフラッシュされることが好ましい。
【００１５】
また、上記目的を達成するためになされた本発明によるマイクロプロセッサの動作方法は、命令語をマイクロオペレーションにデコーディングする段階と、
前記マイクロオペレーションを実行する段階と、前記マイクロオペレーションにしたがって再命名データを生成する段階と、前記再命名データが再命名テーブルからフラッシュされる方式で前記再命名データを再命名テーブルに格納する段階と、前記再命名データのチェックポイントされたバージョン（ｃｈｅｃｋ−ｐｏｉｎｔｅｄ  ｖｅｒｓｉｏｎ）をチェックポイントテーブル（ｃｈｅｃｋ−ｐｏｉｎｔ  ｔａｂｌｅ：ＣＰＴ）に格納する段階と、前記マイクロオペレーションから生成されたリオーダーバッファデータ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ  ｄａｔａ：ＲＯＢ  ｄａｔａ）を前記リオーダーバッファ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ）のリオーダーバッファエントリ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ  ｅｎｔｒｉｅｓ：ＲＯＢ  ｅｎｔｒｉｅｓ）に格納する段階と、を有し、
前記リオーダーバッファデータは、再構成再命名データ及び前記リオーダーバッファエントリの中で可変である１つのエントリを示すリタイアポインター（Ｒｅｔｉｒｅ  Ｐｏｉｎｔｅｒ）を含み、前記リオーダーバッファエントリのグループは、リオーダーバッファチェックポイントウインドウとして定義され、前記リオーダーバッファチェックポイントウインドウは、前記リオーダーバッファチェックポイントウインドウが前記リタイアポインターが示すＲＯＢエントリに基づいて定義される動的関係にしたがって前記チェックポイントテーブルにマッピングされ、前記動的関係の側面で許諾される場合、前記再命名データの前記チェックポイントされたバージョンが前記チェックポイントテーブルから前記再命名テーブルにコピーされ、さらに前記再構成再命名データの少なくとも一部分が前記リオーダーバッファから前記再命名テーブルにコピーされることによって、前記再命名テーブルに格納された再命名データが前記再命名テーブルからフラッシュされた場合、前記フラッシュされた再命名データが前記再命名テーブルに再格納されることを特徴とする。
【００１６】
ディスパッチャーを通じて前記デコーダーから実行のための前記マイクロオペレーションを受信し、前記チェックポイントテーブルは、前記ディスパッチャーから前記再命名データの前記チェックポイントされたバージョンを受信することが好ましい。
前記マイクロオペレーションの実行において、予測ミスを感知する段階をさらに有し、前記予測ミスが感知されたことに応答して、前記再命名データは、前記再命名テーブルからフラッシュされることが好ましい。
クロックサイクルを定義するパルスが出力される段階をさらに有し、前記再命名データの前記チェックポイントされたバージョンが前記クロックサイクルの中の１つのサイクル内に、前記チェックポイントテーブルから前記再命名テーブルにコピーされることが好ましい。
【００１７】
また、上記目的を達成するためになされた本発明によるマイクロプロセッサは、マイクロオペレーションにしたがって再命名データを生成する再命名器（ｒｅｎａｍｅｒ）と、前記再命名データを格納する再命名テーブルと、前記マイクロオペレーションから生成されたリオーダーバッファデータ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ  ｄａｔａ）を格納するリオーダーバッファ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ）と、前記再命名データのチェックポイントされたバージョン（ｃｈｅｃｋ−ｐｏｉｎｔｅｄ  ｖｅｒｓｉｏｎ）を格納する１つのチェックポイントテーブル（ｃｈｅｃｋ−ｐｏｉｎｔ  ｔａｂｌｅ）と、を有し、前記リオーダーバッファデータは、再構成再命名データを含み、前記再命名データのチェックポイントされたバージョンが前記チェックポイントテーブルから前記再命名テーブルにコピーされ、かつ前記再構成再命名データのいずれの部分も前記リオーダーバッファから前記再命名テーブルにコピーされない場合、前記再命名テーブルに格納された再命名データが前記再命名テーブルからフラッシュされた場合、前記フラッシュされた再命名データが再格納されることを特徴とする。
【００１８】
前記マイクロオペレーションを前記実行ユニットに発送する（ｄｉｓｐａｔｃｈｉｎｇ）ディスパッチャーをさらに有し、前記チェックポイントテーブルは、前記ディスパッチャーから前記再命名データの前記チェックポイントされたバージョンを受信することが好ましい。
前記マイクロオペレーションの実行において、予測ミスを感知するためのブランチ実行ロジックをさらに有し、前記予測ミスが感知されたことに応答して、前記再命名テーブルは、再構成されることが好ましい。
クロックサイクルを定義するパルスを出力するクロックをさらに有し、前記再命名データの前記チェックポイントされたバージョンが前記クロックサイクルの中の１つのサイクル内に、前記チェックポイントテーブルから前記再命名テーブルにコピーされることが好ましい。
【００１９】
また、上記目的を達成するためになされた本発明によるマイクロプロセッサの動作方法は、マイクロオペレーションにしたがって再命名データを生成する段階と、
前記再命名データを再命名テーブルに格納する段階と、前記マイクロオペレーションから生成されたリオーダーバッファデータ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ  ｄａｔａ）をリオーダーバッファ（Ｒｅ−ｏｒｄｅｒ  ｂｕｆｆｅｒ）に格納する段階と、前記再命名データのチェックポイントされたバージョン（ｃｈｅｃｋ−ｐｏｉｎｔｅｄ  ｖｅｒｓｉｏｎ）を１つのチェックポイントテーブル（ｃｈｅｃｋ−ｐｏｉｎｔ  ｔａｂｌｅ）に格納する段階と、を有し、前記リオーダーバッファデータは、再構成再命名データを含み、前記再命名テーブルに格納された再命名データが前記再命名テーブルからフラッシュされる場合に、前記再命名データのチェックポイントされたバージョンが前記チェックポイントテーブルから前記再命名テーブルにコピーされ、かつ前記再構成再命名データのいずれの部分も前記ＲＯＢから前記再命名テーブルにコピーされない場合、前記フラッシュされた再命名データが再格納されることを特徴とする。
前記マイクロオペレーションの実行において、予測ミスを感知する段階をさらに含み、前記予測ミスが感知されたことに応答して、前記再命名テーブルは、再構成されることが好ましい。
【００２０】
上記目的を達成するためになされた本発明による電子機器は、バス（Ｂｕｓ）と、前記バスに接続された通信ネットワークにデータを伝送し、前記通信ネットワークからデータを受信するように構成されたインターフェイスと、前記バスに接続された入出力装置と、前記バスに接続され、前記入出力装置を通じてアクセス可能であるユーザーデータ又は命令語を格納するよう構成されたメモリと、前記バスと接続され、前記命令語を利用するよう構成されたコントローラと、を有し、前記コントローラは、少なくとも１つのマイクロプロセッサを含み、前記少なくとも１つのマイクロプロセッサは、再命名データ（ｒｅｎａｍｅ  ｄａｔａ）を格納するための再命名テーブルと、ディスパッチャー（ｄｉｓｐａｔｃｈｅｒ）と、前記ディスパッチャーから受信された再命名データを格納するためのチェックポイントテーブル（Ｃｈｅｃｋ  Ｐｏｉｎｔ  Ｔａｂｌｅ：ＣＰＴ）と、を含み、前記再命名テーブルがフラッシュ（ｆｌｕｓｈ）されれば、前記再命名テーブルは、前記チェックポイントテーブルに格納された前記再命名データを利用して再構成（ｒｅｂｕｉｌｄ）されることを特徴とする。
【００２１】
前記インターフェイスは、無線であり、前記通信ネットワークも無線であることが好ましい。
前記再命名テーブルは、前記チェックポイントテーブルに格納された前記再命名データのみを利用して再構成されることが好ましい。
予測ミスを感知するためのブランチ遂行ロジックをさらに有し、前記予測ミスが感知されたことに応答して、前記再命名テーブルは、フラッシュされることが好ましい。
クロックサイクルを定義するパルスを出力するクロックをさらに有し、前記再命名テーブルは、前記クロックサイクルの中の１つのサイクル内で再構成されることが好ましい。
リオーダーバッファエントリ（Ｒｅ−Ｏｒｄｅｒ  Ｂｕｆｆｅｒ  ｅｎｔｒｉｅｓ）及びリオーダーバッファエントリの中で可変である１つのリオーダーバッファエントリを示すリタイアポインター（Ｒｅｔｉｒｅ  Ｐｏｉｎｔｅｒ）をさらに有し、前記リオーダーバッファエントリのグループは、リオーダーバッファチェックポイントウインドウとして定義され、前記リオーダーバッファチェックポイントウインドウは、前記リオーダーバッファチェックポイントウインドーが前記リタイアポインターが示す前記リオーダーバッファエントリに基づいて定義される動的関係にしたがって前記チェックポイントテーブルにマッピングされ、前記再命名テーブルは、前記動作関係の側面で許諾される場合のみ、前記チェックポイントテーブルに格納された前記再命名データを利用して再構成されることが好ましい。
【発明の効果】
【００２２】
本発明に係るマイクロプロセッサ及びその動作方法並びにマイクロプロセッサを使用した電子機器によれば、再命名テーブルを再構成するのに要求される時間を減少させ、動作速度を改善することができるという効果がある。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態にしたがって作られたマイクロプロセッサの構成要素を示すブロック図である。
【図２Ａ】再命名テーブルがフラッシュされる間にＲＯＢ及びＣＰＴに対する互に異なるシナリオを説明するための図である。
【図２Ｂ】再命名テーブルがフラッシュされる間にＲＯＢ及びＣＰＴに対する互に異なるシナリオを説明するための図である。
【図３Ａ】本発明の実施形態によって作られたサンプルマイクロプロセッサに対するサンプルシークェンスを説明するためのブロック図である。
【図３Ｂ】本発明の実施形態によって作られたサンプルマイクロプロセッサに対するサンプルシークェンスを説明するためのブロック図である。
【図３Ｃ】本発明の実施形態によって作られたサンプルマイクロプロセッサに対するサンプルシークェンスを説明するためのブロック図である。
【図４】は図３で示した再命名テーブルを再構成するための時間パルスを示すタイミング図である。
【図５】は本発明からの有利な結果がない第１サンプルシナリオに対する、図３Ｃの構成要素を示す図である。
【図６】は第２サンプルシナリオのための図３Ｃの構成要素を示す図である。
【図７】は第３サンプルシナリオのための図３Ｃの構成要素を示す図である。
【図８】は本発明の実施形態による半導体装置と共に動作するシステムを含む電子機器を示すブロック図である。
【図９】は本発明の実施形態によるマイクロプロセッサの動作方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００２４】
次に、本発明に係るマイクロプロセッサ及びこれを使用した電子機器を実施するための形態の具体例を図面を参照しながら説明する。
【００２５】
図１は本発明の実施形態にしたがって作られたマイクロプロセッサ１１０の構成要素を示すブロック図である。
マイクロプロセッサ１１０は命令語を受信し、この命令語をマイクロオペレーション（以下、ｍｉｃｒｏ−ｏｐｓ）として知られるマイクロ命令語（ｍｉｃｒｏ−ｏｐｅｒａｔｉｏｎ）にデコーディングするデコーダー１２０を含む。
【００２６】
マイクロプロセッサ１１０はまた、「ｍｉｃｒｏ−ｏｐｓ」を実行する１つ以上の実行ユニットを含む。
図１では、３つの実行ユニット、即ち、実行ユニット−Ａ（１５１）、実行ユニット−Ｂ（１５２）、実行ユニット−Ｃ（１５３）が図示される。但し、各実行ユニットの数字は例示として示したものであり、本発明の技術的思想はこれに限定されない。
【００２７】
デコーダー１２０と実行ユニット（１５１、１５２、１５３）とはパイプと呼ばれる部分の一部分であって、このパイプは付加的な構成要素を含む。
このような付加的な構成要素の中の１つは、結局のところ、「ｍｉｃｒｏ−ｏｐｓ」を実行ユニットに発送（ｄｉｓｐａｔｃｈｉｎｇ）するように提供されるディスパッチャー１４０である。
図１の例で、ディスパッチングは３つのスケジューラー、即ち、スケジューラーＡ（１４１）、Ｂ（１４２）、及びＣ（１４３）の中の１つの直前で実行される。
スケジューラーは「ｍｉｃｒｏ−ｏｐｓ」を実行ユニット（１５１、１５２、１５３）へ伝送する。この実行ユニットは物理的レジスターファイルＰＲＦ（Ｐｈｙｓｉｃａｌ  Ｒｅｇｉｓｔｅｒ  Ｆｉｌｅ）１５０からソースを読み出して、「ｍｉｃｒｏ−ｏｐｓ」を実行する。上述した内容のパイプの構造は一実施形態に過ぎなく、当業者は他の構造が可能であることが理解できる。
【００２８】
マイクロプロセッサ１１０は再命名器（ｒｅｎａｍｅｒ）１３０を付加的に含み、この再命名器はデコーダー１２０から「ｍｉｃｒｏ−ｏｐｓ」を受信する。
再命名器１３０は「ｍｉｃｒｏ−ｏｐｓ」にしたがって再命名データを生成する。
マイクロプロセッサ１１０はさらに再命名テーブル１３６を含む。
再命名（ｒｅｎａｍｅ）テーブル１３６は再命名データを格納し、矢印（符号１３５）にしたがって再命名器１３０から受信する。
マイクロプロセッサ１１０はリオーダーバッファ（Ｒｅ−Ｏｒｄｅｒ  Ｂｕｆｆｅｒ）１６０を含む。
ＲＯＢ１６０は、図１に個別的に開示していない複数のＲＯＢエントリも含む。
以下で詳述するが、各ＲＯＢ１６０はＲＯＢエントリの中で可変的な１つのエントリを示すリタイアポインター（Ｒｅｔｉｒｅ  Ｐｏｉｎｔｅｒ）とフラッシュポインター（Ｆｌｕｓｈ  Ｐｏｎｔｅｒ）とを含む。
ＲＯＢ１６０は循環（ｃｉｒｃｕｌａｒ）されることもあり、或いは循環されないこともあり得る。
【００２９】
ＲＯＢエントリは「ｍｉｃｒｏ−ｏｐｓ」から生成されたＲＯＢデータ１６２を格納するためのものである。
一実施形態においては、各ＲＯＢエントリは１つのｍｉｃｒｏ−ｏｐを格納するが、他の実施形態では、さらに多い「ｍｉｃｒｏ−ｏｐｓ」が１つのＲＯＢエントリに格納され得る。
ＲＯＢデータ１６２は望ましくは再命名テーブル１３６に格納された再命名データに対応する再構成再命名データ１８２を含む。
図１の実施形態でＲＯＢデータ１６２は、ディスパッチャー１４０から受信する。
【００３０】
マイクロプロセッサ１１０は少なくとも１つのチェックポイントテーブル（Ｃｈｅｃｋ−Ｐｏｉｎｔ  ｔａｂｌｅ：以下、ＣＰＴ）１７０をさらに含む。
ＣＰＴ１７０は、再命名テーブル１３６とその広さが同一である。
ＣＰＴ１７０は、図１に個別的には示さなかったがＣＰＴエントリを有する。
ＣＰＴエントリの個数は、再命名テーブル１３６の個数と同一であり、これはＣＰＴが再命名テーブル１３６と同一のような深さを有することを意味する。
ＣＰＴエントリの数は、ＣＰＴ深さ（ｄｅｐｔｈ）を定義する。
【００３１】
ＣＰＴエントリは、再命名テーブル１３６に格納された再命名データのチェックポイントされたバージョン（ｃｈｅｃｋ−ｐｏｉｎｔｅｄ  ｖｅｒｓｉｏｎ）１８０を格納するためのものである。
再命名データのチェックポイントされたバージョン１８０は、再命名データを生成する任意のバージョンであるか、或いは再命名データ自体であり、このような場合、再命名データはＣＰＴ１７０に格納されるので、チェックポイントされた再命名データ（ｃｈｅｃｋ−ｐｏｉｎｔｅｄ  ｒｅｎａｍｅ  ｄａｔａ）１８０と称される。
図１の実施形態で、再命名データのチェックポイントされたバージョン１８０は、ディスパッチャー１４０から受信する。
【００３２】
以下でより詳細に説明するように、ＲＯＢチェックポイントウインドウは、ＲＯＢチェックポイントウインドウがリタイアポインターが示すＲＯＢエントリに基づいて定義される動的関係（ｄｙｎａｍｉｃ  Ｒｅｌａｔｉｏｎｓｈｉｐ）（符号１８７）にしたがってＣＰＴにマッピング（ｍａｐｐｉｎｇ）される。
リタイアポインターは、一般的に互に異なる時間に互に異なるＲＯＢエントリを示すので、動的関係（符号１８７）は可変的になる。したがって、ＲＯＢエントリに新しい「ｍｉｃｒｏ−ｏｐｓ」が割り当てられれば、選択されたＣＰＴエントリは、「ｍｉｃｒｏ−ｏｐｓ」が目的地を有する場合、「ｍｉｃｒｏ−ｏｐｓ」に対する目的地再命名情報（ｄｅｓｔｉｎａｔｉｏｎ  Ｒｅｎａｍｅ  ｉｎｆｏｒｍａｔｉｏｎ）でアップデートされる。
【００３３】
上述したように、再命名テーブル１３６はフラッシュ（ｆｌｕｓｈ）される。より正確には、これは再命名テーブルに格納された再命名データがフラッシュされることを意味する。
図１の実施形態で、マイクロプロセッサ１１０は、ブランチ実行ロジック１５７を含む。
ブランチ実行ロジック１５７は、フラッグ（符号１９０）で図示される「ｍｉｃｒｏ−ｏｐｓ」の実行中の予測ミスを感知することができる。
再命名テーブル１３６は、予測ミス（符号１９０）の感知に応答してフラッシュされ得る。
【００３４】
再命名テーブル１３６がフラッシュされれば、以後に、再構成することができる。
再構成のために、マイクロプロセッサ１１０はリタイアチェックポイントデータ（ｒｅｔｉｒｅ  Ｃｈｅｃｋ−ｐｏｉｎｔ  ｄａｔａ）を格納するリタイアテーブル１３８を包含することができる。
リタイアチェックポイントデータは再構成の開始過程として矢印（符号１３９）にしたがって再命名テーブル１３６にコピーされ得る。
再構成のために、フラッシュされた再命名データは、リタイアテーブルからの初期コピーを追加的に、データの２つのデータソース（ｄａｔａ  ｏｆ  ｓｏｕｒｃｅｓ）から再命名テーブル１３６に再格納することができる。
【００３５】
最初に、再命名データのチェックポイントされたバージョン１８０は、矢印（符号１７５）にしたがって多量流入（ｍａｓｓ  ｉｍｐｏｒｔａｔｉｏｎ）の形態にてＣＰＴ１７０から再命名テーブル１３６にコピーされ得る。
多量流入は、以下で説明するように、動的関係（符号１８７）の側面で許諾される場合、同時に生じるコピーによって具現され得る。
第２に、ＲＯＢデータ１６２内の再構成再命名データ１８２の少なくとも一部分は、矢印（符号１６５）にしたがってＲＯＢ１６０から再命名テーブル１３６にコピーされ、これは“ｗａｌｋｉｎｇ  ｔｈｅ  ＲＯＢ”として公知されたプロセスである。
【００３６】
以下、実行動作をさらに詳細に説明する。図２Ａ及び図２Ｂは、再命名テーブルがフラッシュされる間にＲＯＢ２６０及びＣＰＴ２７０に対する互に異なるシナリオを説明するための図である。
ＲＯＢ２６０とＣＰＴ２７０との大きさ及び機能的関係は、プロセス時間を節約するために矢印（符号１７５）のコピー動作と矢印（符号１６５）のコピー動作とが同時に起こることによって望ましい再構成の観点から選択されるものであり、本発明の実施形態はこれに限定されないことが理解され得る。
【００３７】
本実施形態において、ＲＯＢ２６０は、“０”から“９５”に命名された９６個のエントリを有する。
但し、これは例示的なことであり、ＲＯＢ２６０は任意の個数のＲＯＢエントリを有することができる。さらに、ＲＯＢチェックポイントウインドウはＲＯＢエントリのグループとして定義される。
該当グループは最適化された任意の数字であり得る。該当グループのための望ましい数字は、ＲＯＢ深さの約半分に該当する大きさであり、この場合では４８個のＲＯＢエントリである。
【００３８】
以下で詳細に説明するように、最適のＲＯＢチェックポイントよりあまりにも大きいＲＯＢチェックポイントウインドウは、ＣＰＴが相違を生じるのに充分な時間を有することができない。一方、最適のＲＯＢチェックポイントよりあまりにも小さいＲＯＢチェックポイントウインドウは、ＣＰＴが充分な時間を有することができるようにするが、データを再命名するのには十分ではない。
２つの場合において、仮にグループの大きさが最適な大きさとあまりにも相違すると、これは以下で説明するように、ＲＯＢによって必要とするよりさらに多い時間をウォーキング（ｗａｌｋｉｎｇ）することになる。
【００３９】
図２Ａ及び図２Ｂには、再命名テーブルがフラッシュされる間にＲＯＢ２６０及びＣＰＴ２７０に対する互に異なるシナリオを示す。
ＲＯＢチェックポイントウインドウの各時間は、４８個のＲＯＢエントリの他のグループに及ぼ（ｓｐａｎ）される。
さらに、各時間のＲＯＢ再構成ウインドウ（ＲＯＢ  Ｒｅｂｕｉｌｄ  ｗｉｎｄｏｗ）は、再命名テーブルのフラッシング（ｆｌｕｓｈｉｎｇ）の互に異なるイベントによって互に異なる時間で定義される時、一般的に互に異なる数字のＲＯＢエントリを有する。
【００４０】
さらに具体的に、図２Ａで、ＲＯＢチェックポイントウインドウは、ＲＯＢエントリ“２０”のリタイアポインターで始まることと定義され、ＲＯＢエントリ“６７”まで含む。
さらに、ＲＯＢ再構成ウインドウ２６３Ａが定義され、これは“２０”から“５６”までの３６個のＲＯＢエントリを含む。
したがって、“５６”エントリ以後の“５７”エントリは、フラッシュポインターによって示されるエントリである。
このような３７個のエントリは、再構成再命名データ２８２Ａを含むＲＯＢデータ２６２Ａを格納する。
ＣＰＴ２７０は、チェックポイントされた再命名データ２８０Ａを格納する。
【００４１】
さらに、図２Ｂで、ＲＯＢチェックポイントウインドウは、ＲＯＢエントリ“４０”のリタイアポインターで始まることと定義され、ＲＯＢエントリ“８７”まで含む。さらに、ＲＯＢ再構成ウインドウ２６３Ｂが定義され、これは“４０”から“６６”までの２７個のＲＯＢエントリを含む。このような２７個のエントリは再構成再命名データ２８２Ｂを含むＲＯＢデータ２６２Ｂを格納する。
ＣＰＴ２７０はチェックポイントされた再命名データ２８０Ｂを格納する。
【００４２】
動的関係（ｄｙｎａｍｉｃ  Ｒｅｌａｔｉｏｎｓｈｉｐ）（符号２８７）はＲＯＢの動作方法、より具体的にはＲＯＢチェックポイントウインドウがＣＰＴにマッピングされる方法に関する。
マッピング（ｍａｐｐｉｎｇ）は連係（ａｓｓｏｃｉａｔｉｏｎ）と称されることもある。
動的関係（符号２８７）は、それが変化するので、‘動的（ｄｙｎａｍｉｃ）’であると称され、これはＲＯＢチェックポイントウインドウがリタイアポインターが示すＲＯＢエントリに基づいて定義されるためである。
即ち、図２Ａ及び図２Ｂで、ＲＯＢチェックポイントウインドウは、互に異なる形態として定義される。
【００４３】
再構成のために、所定の要素（ｅｌｅｍｅｎｔ）が格納されたＲＯＢエントリ又はそれが格納されたＣＰＴ２７０から再命名テーブルに再格納される選択もある。仮にＣＰＴからのコピーが許容されれば、速度が向上され得る。
動的関係（符号２８７）は、ＣＰＴ２７０からの再命名、更にはＲＯＢ２６０からの再命名がどの程度かに関係する。
ＣＰＴ２７０からのコピー動作は、動的関係（符号２８７）の側面で許諾された場合に発生する。許諾される場合に関する実施形態は以下でさらに詳細に説明する。
【００４４】
実施形態によって作られたサンプルマイクロプロセッサ３１０に対するサンプルシークェンスを説明するために、図３Ａ、図３Ｂ、図３Ｃを続けて使用する。
マイクロプロセッサ３１０はデコーダー３２０、再命名器３３０、再命名テーブル３３６、リタイアテーブル３３８、ディスパッチャー３４０、スケジューラー（３４１、３４２、３４３）、物理的レジスターファイル（ＰＲＦ）３５０、実行ユニット（３５１、３５２、３５３）、ブランチ実行ロジック３５７、及びＲＯＢ３６０を含み、これは図１と同様の構成要素を参照して説明される。
【００４５】
ＲＯＢ３６０は、ＲＯＢデータ１６２と同様のＲＯＢデータ３６２を格納することができる。
ＲＯＢデータ３６２は、再構成再命名データ１８２と同様の再構成再命名データ３８２を含む。
また、マイクロプロセッサ３１０は、ＲＯＢ３６０と動的関係を有するＣＰＴ３７０を含む。
ＣＰＴ３７０とＲＯＢ３６０は、図１、図２Ａ、図２Ｂの動的関係（符号１８７、２８７）と同様の動的関係を有することができる。
ＣＰＴ３７０は動的関係にしたがってチェックポイントされた再命名データ３８０を格納する。
【００４６】
図３Ａで、マイクロプロセッサ３１０は、ノーマル動作を実行する。
命令語はパイプを通じてデコーダー３２０で受信され、実行ユニット（３５１、３５２、３５３）で実行される。
図３Ｂで、フラッグ３９０として図示す予測ミス（符号３９０）が感知される。
その結果、再命名テーブル３３６はフラッシュ（符号３９２）され、コメントによって示される。
図３Ｃで、停止コメント（符号３９３）によって示すように、再命名テーブル３３６は再構成される。
その結果、コメント「停止」（符号３９１）が示すようにパイプのフロントエンドで停止が発生する。
【００４７】
再構成は次のように実行される。
第１に、リタイアチェックポイントが矢印（符号３３９）にしたがってリタイアテーブル３３８からコピーされる。
再構成は、２つの他のソースから来るデータによって実行される。
チェックポイントされた再命名データ３８０は、適用可能である動的関係の観点から許諾される場合、矢印（符号３７５）にしたがってコピーされる。
そして、再構成再命名データ３８２は矢印（符号３６５）にしたがってＲＯＢ３６０をウォーキング（ｗａｌｋｉｎｇ）することによってコピーされる。
【００４８】
しかし、一部の特別な場合には以下のサンプルシナリオに開示するように、２つのソースの中の１つのソースは関与しないことがあり得る。
マイクロプロセッサ３１０は、一般的に、図に示さなかったクロックを含む。
クロックは、クロックサイクルを定義するパルスを出力する。
クロックサイクルは、本発明の長所を評価するよい方法である。実施形態を以下に説明する。
【００４９】
図４は、図３で説明した再命名テーブルを再構成するための時間パルスを示すタイミング図である。
１つのパルスによって表現されたクロックサイクル４１２は、Ｎサイクルのグループ４１５を含む。数字“Ｎ”は以下でさらに詳細に説明する。
図４では予測ミスを感知し、以後のペナルティー（ｐｅｎａｌｔｉｅｓ）を説明する。
【００５０】
パルス４９２はコメント（符号３９２）による再命名テーブル３３６のフラッシング（ｆｌｕｓｈｉｎｇ）に対応する。
延長された停止パルス４９１はコメント（符号３９１）に対するパイプ（ｐｉｐｅ）が停止された時間に対応する。
パルス４９１の持続は、予測ミスに対する時間ペナルティー及び以後のマイクロプロセッサの動作性能減少と関連する。
パルス４９１とサイクルのグループ４１５で、仮に“Ｎ”が大きければ、ペナルティーはさらに大きい。
パルス４９３Ａとパルス４９３Ｂとは、コメント（符号３９３）に対応して各々再構成の開始と終了を示す。
【００５１】
一般的に、再命名サイクル４３６は、サイクル４３９、サイクル４７５、Ｎ個のサイクルのグループ４６５を含む。
サイクル４３９は、矢印（符号３３９）の動作を実行の際に、リタイアチェックポイントをコピーするためのものである。
サイクル４７５は、矢印（符号３７５）にしたがってＣＰＴから同時にコピーするためのものである。
【００５２】
Ｎ個のサイクルのグループ４６５は矢印（符号３６５）にしたがってＲＯＢをウォーキング（ｗａｌｋｉｎｇ）するためのものである。
サイクルのグループ４１５と同様に、サイクル４６５は１つのパルスによって図に示している。
但し、これは例示的なものであり、複数のサイクルのグループ４１５とサイクル４６５とはＮ値を有することもあり得る。
矢印（符号３３９、３７５、３６５）は理解の便宜を助けるために図４で適切な位置で反復される。
しかし、具体的に、再命名サイクル４３６は毎度は包含されない。
いずれかが含まれ、いずれかが含まれないかに関する問題は予測ミスが感知され、以後の再命名テーブルがフラッシュされる時点として定義されるシナリオによる。
具体的な動作のシナリオは図４を参照して説明する。
【００５３】
最初に、シナリオを理解するために、ＲＯＢ再構成ウインドウは、再命名テーブルがフラッシュされる時、定義されたと認識されなければならない。
ＲＯＢ再構成ウインドウは、図２Ａ及び図２Ｂで説明したように、リタイアポインターから開始し、フラッシュポインターが１つ先行するところで終了するＲＯＢエントリを有する。
ＲＯＢ再構成ウインドウ内のＲＯＢエントリは、再命名テーブルに再格納される必要があると定義され、再格納は、ＣＰＴからの同時コピー動作又はＲＯＢをウォーキング（ｗａｌｋｉｎｇ）する動作のいずれか１つによって実行される。
各場合において、ＲＯＢから再命名テーブルにコピーされる再構成再命名データの部分はＲＯＢ再構成ウインドウ内に属する。
【００５４】
シナリオは、再命名テーブルがフラッシュされる時毎に、ＲＯＢ再構成ウインドウが一般的に互に異なるＲＯＢエントリのセットを包含する点で相違する。
異なるシナリオは、ＲＯＢ再構成ウインドウが以前に言及したＲＯＢチェックポイントウインドウの深さと関連して、どのようにして異なる大きさを有するのかを検証する。
また、以下のシナリオの一側面は、ＣＰＴテーブルが同時に再命名テーブルにコピーされることが許諾されるか否か、又はＲＯＢをウォーキング（ｗａｌｋｉｎｇ）することによって同一の内容がコピーされるか否かを判断することに連関する。
【００５５】
このようなシナリオの多様な例を説明する。
シナリオの説明をするために、ＲＯＢ３６０とＣＰＴ３７０とが図２Ａ及び図２Ｂで示しものと同様に使用されたと仮定する。
さらに、動的関係（符号２８７）と同様のＲＯＢチェックポイントＣＰウインドウとＣＰＴ３７０を示す波括弧によって示される動的関係が適用される。
【００５６】
図５は、本発明からの有利な結果がない第１サンプルシナリオに対する、図３Ｃの構成要素を示す図である。
ＲＯＢ３６０でチェックポイントウインドウは、リタイアポインターが示すＲＯＢエントリ“２０”で始めて、ＲＯＢエントリ“６７”で終了する。
加えて、矢印で示したＲＯＢ再構成ウインドウ５６３は、リタイアポインターが示すＲＯＢエントリ“２０”で始めて、フラッシュポインターが示すＲＯＢエントリ“５７”より１つ小さいＲＯＢエントリ“５６”で終了する。
ＲＯＢ再構成ウインドウ５６３内のＲＯＢデータ５６２は、ＣＰＴ３７０からの同時コピー又は直接的にＲＯＢ３６０をウォーキングすることによって再命名テーブル３３６に再格納される再構成再命名データ５８２を含む。
【００５７】
本実施形態で、ＲＯＢ再構成ウインドウ５６３はＲＯＢチェックポイントウインドウより小さい。
したがって、ＲＯＢ再構成ウインドウ５６３は全て、ＲＯＢエントリ“０”から“４７”になされたＲＯＢチェックポイントウインドウ内にある。
したがって、ＲＯＢエントリ“５７”で“６７”までのコンテンツはフラッシュされ、そのため、ＣＰＴ３７０に格納されたチェックポイントされた再命名データ５８０は、ＣＰＴ３７０が再命名テーブル３３６にコピーされるので、再構成プロセスの一部として再命名テーブルにコピーされない。
チェックポイントされた再命名データ５８０を図で線を引いて消されたように示したのはこのためである。
【００５８】
したがって、コメント（符号５６７）によって、すべてのＲＯＢエントリ“２０”乃至“５６”内の再構成再命名データ５８２は矢印（符号５６５）にしたがって、即ち、ＲＯＢ３６０をウォーキングすることによって再格納される。
言い換えれば、図５のＣＰＴは再構成のために使用されなく、したがって、本発明は図５のシナリオでは長所を提供しない。
図５のシナリオに対して図４を簡略的に参照すれば、再命名サイクル４７５が包含され、数字“Ｎ”は最大“ｍ”であり、ここで、“ｍ”はこのようなシナリオの下でＲＯＢ３６０がウォーキングされることができる最も多い段階の数を示す。
停止パルス４９１の期間は本発明が無い状態では減少しない。このようなことは残るシナリオ例では適用されない。
【００５９】
図６は、第２サンプルシナリオのための図３Ｃの構成要素を示す図である。
ＲＯＢ３６０で、チェックポイントウインドウはリタイアポインターによって示されるＲＯＢエントリ“２０”から開始してＲＯＢエントリ“６７”で終了する。
さらに、ＲＯＢ３６０内のＲＯＢ再構成ウインドウ６６３は“２０”から“７６”までのＲＯＢエントリに掛かっている。
本実施形態において、ＲＯＢデータ６６２は、再命名テーブル３３６に再格納される再構成再命名データの一部分（６８２Ａ、６８２Ｂ）を含む。
再構成再命名データのＲＯＢ３６０内の所定部分での６８２Ａ、６８２Ｂへの分割がＲＯＢチェックポイントの境界で発生したことが理解できる。
実際、“２０”から“６７”のＲＯＢエントリはＣＰＴ３７０に格納されたチェックポイントされた再命名データ部分６８０にマッピングされ、“６８”から“７６”のＲＯＢエントリはＣＰＴ３７０にマッピングされない。
【００６０】
チェックポイントされた再命名データ部分６８０は使用可能であり、コメント（符号６７７）によって、矢印（符号６７５）にしたがって再格納される。
したがって、再構成再命名データ部分６８２Ａは必要としなくなって、示したように図で線を引いて消される。
しかし、部分６８２ＢはＣＰＴを経て効果的にコピーされることができなく、コメント（符号６６７）によって“６８”から“７６”のＲＯＢエントリ内の再構成再命名データ部分６８２Ｂは、ＲＯＢ３６０をウォーキング（ｗａｌｋｉｎｇ）することによって矢印（符号６６５）にしたがって再格納される。
【００６１】
図４を参照すれば、矢印（符号６７５）にしたがって再格納することは、１つのクロックパルス４７５内で発生する。
“Ｎ”は“ｍ”より小さく、“０”より大きくて、停止パルス４９１の持続期間は本発明によって減少される。
図６のシナリオでの再構成は、図５に比べてさらに多いデータをコピーすることを要求するように見えるが、本発明の技術的思想にしたがえば、より短い時間の所要ですむ。
【００６２】
図７は、第３サンプルシナリオのための図３Ｃの構成要素を示す図である。
ＲＯＢ３６０で、チェックポイントウインドウはリタイアポインターによって示される“２０”のＲＯＢエントリから始めて“６７”のＲＯＢエントリで終了する。
さらに、ＲＯＢ再構成ウインドウ７６３は“２０”から“６７”のＲＯＢエントリに掛かっている。
本実施形態において、ＲＯＢ再構成ウインドウ７６３は、ＲＯＢチェックポイントウインドウと完全に同一である。
これは所定周波数で統計的に発生する特別な場合に該当する。ＲＯＢデータ７６２は再構成再命名データ７８２を含む。
【００６３】
チェックポイントされた再命名データ部分７８０は使用可能であり、コメント（符号７７７）によって、矢印（符号７７５）にしたがって再格納される。
さらに、コメント（符号７６７）により、本シナリオではＲＯＢ３６０をウォーキング（ｗａｌｋｉｎｇ）させることが無く、再構成再命名データはＲＯＢ３６０から再命名テーブル３３６にコピーされない。
したがって、再構成再命名データ部分７８２は必要が無くなるようになって、図に示したように線を引いて消される。
【００６４】
図４を参照すれば、矢印（符号７７５）にしたがって再格納することは１つのクロックパルス４７５内で発生することができる。
“Ｎ”は“０”であり、パルス４１５、４６５のグループは存在しない。停止パルス４９１の持続期間は本発明によって最少化される。
【００６５】
図８は、本発明の実施形態による半導体装置と共に動作するシステム８００を含む電子機器を示すブロック図である。
システム８００はＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、ラップトップコンピュータ、モバイルコンピュータ、ウェブタブレット、無線フォン、携帯電話機、デジタル音楽再生器、有線又は無線電気装置、又は少なくとも前記の機器の中で２つ以上を含む複合電子装置内で使用され得る。
システム８００はコントローラ８１０、キーパッド（ｋｅｙｐａｄ）、キーボード（ｋｅｙｂｏａｒｄ）、ディスプレイのような入出力装置８２０、メモリ８３０、バス８５０を通じて相互通信するインターフェイス８４０を包含する。
コントローラ８１０は、例えば、本発明の実施形態にしたがって製造された少なくとも１つのマイクロプロセッサ、デジタル信号プロセッサ、マイクロコントローラのようなものを包含する。
【００６６】
メモリ８３０はコントローラ８１０によって使用される命令語及び／又は入出力装置を経てアクセス可能であるユーザーデータを格納する。
システム（或いは電子機器）８００は、通信ネットワークを通じてデータを伝送するか、或いは受信するユーザーインターフェイス８４０を使用する。
伝送動作は、例えば、ケーブル、ＵＳＢインターフェイスのような有線を経ることがあり得る。他の例として、通信ネットワークは無線であり、インターフェイス８４０は無線であり、例えば、アンテナ、無線送受信機のようなものであり得る。
システム８００（或いは電子機器）は、ＣＤＭＡ、ＧＳＭ（登録商標）、ＮＡＤＣ、Ｅ−ＴＤＭＡ、ＷＣＤＭＡ（登録商標）、ＣＤＭＡ２０００、Ｗｉ−Ｆｉ、Ｍｕｎｉ  Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＤＥＣＴ（登録商標）、Ｗｉｒｅｌｅｓｓ  ＵＳＢ、Ｆｌａｓｈ−ＯＦＤＭ、ＩＥＥＥ  ８０２．２０、ＧＰＲＳ、ｉＢｕｒｓｔ（登録商標）、ＷｉＢｒｏ、ＷｉＭＡＸ（登録商標）、ＷｉＭＡＸ（登録商標）−Ａｄｖａｎｃｅｄ、ＵＭＴＳ−ＴＤＤ、ＨＳＰＡ、ＥＶＤＯ、ＬＴＥＡｄｖａｎｃｅｄ、ＭＭＤＳのような通信システムの通信インターフェイスプロトコル内で使用され得る。
【００６７】
図９は本発明の実施形態によるマイクロプロセッサの動作方法を説明するためのフローチャートである。
フローチャート９００の動作方法は、上述した実施形態、マイクロプロセッサ、電子装置によって実行される。
まず、Ｓ９１０段階にて、命令語を「ｍｉｃｒｏ−ｏｐｓ」にデコーディングする。
次にＳ９２０段階にて、再命名データを「ｍｉｃｒｏ−ｏｐｓ」によって発生する。
次にＳ９３０段階にて、再命名データを再命名テーブルに格納する。
【００６８】
次にＳ９４０段階にて、再命名データのチェックポイントされたバージョンをＣＰＴに格納する。
次に、Ｓ９５０段階にて、「ｍｉｃｒｏ−ｏｐｓ」から発生されたＲＯＢデータをＲＯＢに格納する。
ＲＯＢデータは必要である場合、結局のところ再命名テーブルを再構成するために使用される再構成再命名データを包含することができる。ＲＯＢはＣＰＴと動的関係を維持する。
次に、Ｓ９６０段階にて、「ｍｉｃｒｏ−ｏｐｓ」を実行する。
【００６９】
次のＳ９７０段階にて、再命名テーブルがフラッシュされたか否かを判断する。
言い換えれば、再命名データは再命名テーブルからフラッシュされる。
仮に「いいえ」であれば、Ｓ９１０段階に戻る。
一実施形態において、再命名テーブルは上述したように予測ミスを感知することに応答してフラッシュされる。
仮に再命名テーブルがフラッシュされれば、以後のＳ９８０段階にしたがって、再命名データを再命名テーブルに再格納する。即ち、再命名テーブルが再構成される。
【００７０】
Ｓ９８０段階はＳ９８２段階及びＳ９８４段階の中で少なくとも１つを含む。
Ｓ９８０段階で、ＲＯＢエントリのＲＯＢ再構成ウインドウは再命名テーブルがフラッシュされた時、定義され得る。
ＲＯＢ再構成ウインドウ内のこのようなＲＯＢエントリの再構成再命名データは、Ｓ９８２段階によって、又はＳ９８４段階によって再命名テーブルに再格納される。
【００７１】
Ｓ９８２段階にて、再命名データのチェックポイントされたバージョンは、仮にＳ９５０段階の動的関係によって許諾されれば、ＣＰＴから再命名テーブルにコピーする。
一実施形態において、再命名データのチェックポイントされたバージョンは１つのクロックサイクル内でコピーされる。
【００７２】
Ｓ９８４段階にて、再構成再命名データはＲＯＢから再命名テーブルにコピーする。
望ましくは、これはＳ９８２段階によってカバーされないで残ることに対して実行され、ＲＯＢをウォーキング（ｗａｌｋｉｎｇ）することによって実行される。
【００７３】
なお、上述した動作の順序は例示的なものであり、本発明の技術的思想はこれに限定されない。例えば、上述した動作方法の順序は固定されたものでなく、本発明の技術的思想の他の実施形態にしたがって異なる順序によって実行することもできる。
さらに、他の実施形態で、新しい段階が追加されたり、各段階が修正されるか、或いは削除されることもあり得る。
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である
【符号の説明】
【００７４】
１１０、３１０    マイクロプロセッサ
１２０、３２０    デコーダー
１３０、３３０    再命名器（ｒｅｎａｍｅｒ）
１３６、３３６    再命名テーブル
１３８、３３８    リタイアテーブル
１４０、３４０    ディスパッチャー
１４１〜１４３、３４１〜３４３    スケジューラー（Ａ〜Ｃ）
１５０、３５０    物理的レジスターファイル（ＰＲＦ）
１５１〜１５３、３５１〜３５３    実行ユニット（Ａ〜Ｃ）
１５７、３５７    ブランチ実行ロジック
１６０、３６０    リオーダーバッファ（ＲＯＢ）
１６２、３６２    ＲＯＢデータ
１７０、２７０、３７０    チェックポイントテーブル（ＣＰＴ）
１８０    再命名データのチェックポイントされたバージョン
１８２、３８２    再構成再命名データ
２８０Ａ、２８０Ｂ、３８０、３８１、５８０    チェックポイントされた再命名データ
【図１】
2014179096.tif 000003
【図２Ａ】
2014179096.tif 000004
【図２Ｂ】
2014179096.tif 000005
【図３Ａ】
2014179096.tif 000006
【図３Ｂ】
2014179096.tif 000007
【図３Ｃ】
2014179096.tif 000008
【図４】
2014179096.tif 000009
【図５】
2014179096.tif 000010
【図６】
2014179096.tif 000011
【図７】
2014179096.tif 000012
【図８】
2014179096.tif 000013
【図９】
2014179096.tif 000014