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