(57)【要約】【課題】パワー及び時間が節約される命令処理装置及び方法を提供する。【解決手段】命令処理方法は、依存命令の生成命令によって前記依存命令のソースを推測的にウェークアップする段階と、前記依存命令によってネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップする段階と、前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備になったことを示すように前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングする段階と、前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーをセッティングし、前記ネストされた依存命令の前記ソースの取消タイマーをセッティングする段階と、前記依存命令及び前記ネストされた依存命令を同時に取消す段階と、を含む。【選択図】図３
2014182829.tif 000002
【特許請求の範囲】
【請求項１】
依存命令の生成命令によって前記依存命令のソースを推測的にウェークアップする段階と、
前記依存命令によってネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップする段階と、
前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備になったことを示すように前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングする段階と、
前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーをセッティングし、前記ネストされた依存命令の前記ソースの取消タイマーをセッティングし、前記取消タイマーは、各々前記ソース準備ビットがセッティングされた時、カウントダウンを始まる段階と、
仮に前記依存命令の前記ソースの前記取消タイマー及び前記ネストされた依存命令の前記ソースの前記取消タイマーが満了され、前記生成命令が取消された場合に前記依存命令及び前記ネストされた依存命令を同時に取消す段階と、を含む複数の命令の処理方法。
【請求項２】
前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとが所定値に到達した時に満了される請求項１に記載の複数の命令の処理方法。
【請求項３】
前記所定値は、０ではない請求項２に記載の複数の命令の処理方法。
【請求項４】
仮に前記依存命令と前記ネストされた依存命令とが再びウェークアップされなければ、前記依存命令と前記ネストされた依存命令とが選択される準備にならないことを示すように前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする段階をさらに含む請求項１に記載の複数の命令の処理方法。
【請求項５】
前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをリセットする段階をさらに含む請求項４に記載の複数の命令の処理方法。
【請求項６】
前記リセットする段階は、前記依存命令と前記ネストされた依存命令とを同時に取消す段階が遂行された後に遂行される請求項４に記載の複数の命令の処理方法。
【請求項７】
前記依存命令が前記生成命令によって推測的にウェークアップされた後、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、
前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記取消時間に基づいて互に異なる値を有するようにセッティングされる請求項６に記載の複数の命令の処理方法。
【請求項８】
前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、
前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記取消時間に基づいて互に異なる値を有するように設定される請求項１に記載の複数の命令の処理方法。
【請求項９】
前記生成命令は、推測的に選択される請求項１に記載の複数の命令の処理方法。
【請求項１０】
前記生成命令が取消されることと予想される前記取消時間は、前記生成命令によって前記依存命令の前記ソースを推測的にウェークアップする時間から前記取消が前記生成命令のために主張されることと予想されるクロックサイクルの数に基づいて決定される請求項１に記載の複数の命令の処理方法。
【請求項１１】
スケジューリング動作の遂行のために生成命令を選択するスケジューラーと、
コントローラと、を含み、
前記コントローラは、
前記依存命令の生成命令によって依存命令のソースを推測的にウェークアップし、
前記依存命令によって、ネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップし、
前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備がされたことを示すように、前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングし、
前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーと前記ネストされた依存命令の前記ソースの取消タイマーとが各々前記ソース準備ビットがセッティングされた時、カウントダウンを開始するようにセッティングし、
仮に前記依存命令の前記ソースの前記取消タイマー及び前記ネストされた依存命令の前記ソースの前記取消タイマーが満了され、前記生成命令が取消された場合に前記依存命令及び前記ネストされた依存命令を同時に取消する命令処理装置。
【請求項１２】
前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとが所定値に到達した時に満了される請求項１１に記載の命令処理装置。
【請求項１３】
前記所定値は、０ではない請求項１２に記載の命令処理装置。
【請求項１４】
前記コントローラは、仮に前記依存命令と前記ネストされた依存命令とが再びウェークアップされなければ、前記依存命令と前記ネストされた依存命令とが選択（ｐｉｃｋ）される準備にならないことを示すように前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする請求項１１に記載の命令処理装置。
【請求項１５】
前記コントローラは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをリセットする請求項１４に記載の命令処理装置。
【請求項１６】
前記コントローラは、前記依存命令と前記ネストされた依存命令とを同時に取消した後に前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする請求項１４に記載の命令処理装置。
【請求項１７】
前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、
前記コントローラは、互に異なる値を有するように前記取消時間に基づいて前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをセッティングする請求項１６に記載の命令処理装置。
【請求項１８】
前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、
前記コントローラは、互に異なる値を有するように前記取消時間に基づいて前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをセッティングする請求項１１に記載の命令処理装置。
【請求項１９】
前記生成命令は、推測的に選択される請求項１１に記載の命令処理装置。
【請求項２０】
前記コントローラは、クロックサイクルの数に基づいて前記生成命令によって前記依存命令の前記ソースを推測的にウェークアップする時間から前記生成命令が取消されることと予想される前記取消時間を決定する請求項１１に記載の命令処理装置。
【請求項２１】
前記依存命令の前記ソースの前記ソース準備ビット、前記ネストされた依存命令の前記ソースの前記ソース準備ビット、前記依存命令の前記ソースの前記取消タイマー、及び前記ネストされた依存命令の前記ソースの前記取消タイマーは、前記スケジューラーのエントリにセッティングされる請求項１１に記載の命令処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の態様は命令（ｉｎｓｔｒｕｃｔｉｏｎｓ）を取消し、ソース準備状態（ｓｏｕｒｃｅ−ｒｅａｄｙ  ｓｔａｔｅ）をリセットする装置及び方法に関し、さらに詳細には取消タイマー（ｃａｎｃｅｌ  ｔｉｍｅｒ）を利用して直接依存命令（ｄｉｒｅｃｔ  ｄｅｐｅｎｄｅｎｔ  ｉｎｓｔｒｕｃｔｉｏｎ）及びネストされた依存命令（ｎｅｓｔｅｄ  ｄｅｐｅｎｄｅｎｔ  ｉｎｓｔｒｕｃｔｉｏｎ）を取消し、ソース準備ビット（ｓｏｕｒｃｅ  ｒｅａｄｙ  ｂｉｔｓ）をリセットする装置及び方法に関する。
【背景技術】
【０００２】
現在のマイクロプロセッサは命令（ｉｎｓｔｒｕｃｔｉｏｎ）の推測的なスケジューリング（ｓｐｅｃｕｌａｔｉｖｅ  ｓｃｈｅｄｕｌｉｎｇ）技術を採択している。マイクロプロセッサのスケジューラー内の生成命令（ｐｒｏｄｕｃｅｒ  ｉｎｓｔｒｕｃｔｉｏｎ）がロードミス（ｌｏａｄ  ｍｉｓｓｅｓ）、欠陥（ｆａｕｌｔｓ）、データ誤謬（ｄａｔａ  ｈａｚａｒｄｓ）等の原因によって取消される時、前記生成命令によって推測的にウェークアップ（ｗａｋｅ  ｕｐ）された“ソース準備（ｓｏｕｒｃｅ  ｒｅａｄｙ）”状態の依存命令は再び選択されることできるようにスケジューラーでリセットされる必要がある。ここで、依存命令（ｄｅｐｅｎｄｅｎｔ  ｉｎｓｔｒｕｃｔｉｏｎｓ）はダイレクト命令（ｄｉｒｅｃｔ  ｉｎｓｔｒｕｃｔｉｏｎｓ）又は非ダイレクト（ｉｎｄｉｒｅｃｔ）命令であり得、非ダイレクト命令はネストされた（ｎｅｓｔｅｄ）命令であり得る。
【０００３】
従来には生成命令が取消された時、スケジューラーの依存命令の“ソース準備”状態をリセットするための方法として取消された生成命令の目的タッグ（ｄｅｓｔｉｎａｔｉｏｎ  ｔａｇｓ）がスケジューラー内のすべての命令のソースタッグ（ｓｏｕｒｃｅ  ｔａｇｓ）と比較する方法が使用された。仮に取消された生成命令の目的タッグとスケジューラー内のいずれか１つの命令のソースタッグとがマッチングされれば、スケジューラーはスケジューラー内の依存命令のソース準備状態をリセットする。
【０００４】
しかし、前記の比較方法はスケジューラー内のすべての命令に対して遂行されなければならないので、比較動作を遂行するのに時間及びパワーが多く消耗され、マイクロプロセッサのリソース（ｒｅｓｏｕｒｃｅ）を多く使用する問題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許公開第２０１０／０３３２８０６号公報
【特許文献２】米国特許第８，２３９，６６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は構造が簡単であり、パワー及び時間が節約される命令処理装置及び方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の態様による複数の命令の処理方法は、依存命令の生成命令によって前記依存命令のソースを推測的にウェークアップする段階と、前記依存命令によってネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップする段階と、前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備になったことを示すように前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングする段階と、前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーをセッティングし、前記ネストされた依存命令の前記ソースの取消タイマーをセッティングし、前記取消タイマーは、各々前記ソース準備ビットがセッティングされた時、カウントダウンを始まる段階と、仮に前記依存命令の前記ソースの前記取消タイマー及び前記ネストされた依存命令の前記ソースの前記取消タイマーが満了され、前記生成命令が取消された場合に前記依存命令及び前記ネストされた依存命令を同時に取消す段階と、を含む。
【０００８】
態様として、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとが所定値に到達した時に満了される。
【０００９】
態様として、前記所定値は、０ではない。
【００１０】
態様として、仮に前記依存命令と前記ネストされた依存命令とが再びウェークアップされなければ、前記依存命令と前記ネストされた依存命令とが選択（ｐｉｃｋ）される準備にならないことを示すように前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする段階をさらに含む。
【００１１】
態様として、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをリセットする段階をさらに含む。
【００１２】
態様として、前記リセットする段階は、前記依存命令と前記ネストされた依存命令とを同時に取消す段階が遂行された後に遂行される。
【００１３】
態様として、前記依存命令が前記生成命令によって推測的にウェークアップされた後、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記取消時間に基づいて互に異なる値を有するようにセッティングされる。
【００１４】
態様として、前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記取消時間に基づいて互に異なる値を有するように設定される。
【００１５】
態様として、前記生成命令は、推測的に選択される。
【００１６】
態様として、前記生成命令が取消されることと予想される前記取消時間は、前記生成命令によって前記依存命令の前記ソースを推測的にウェークアップする時間から前記取消が前記生成命令のために主張されることと予想されるクロックサイクルの数に基づいて決定される。
【００１７】
本発明の態様による命令処理装置は、スケジューリング動作の遂行のために生成命令を選択するスケジューラーと、コントローラと、を含み、前記コントローラは、前記依存命令の生成命令によって依存命令のソースを推測的にウェークアップし、前記依存命令によって、ネストされた依存命令のソースを前記依存命令にしたがって推測的にウェークアップし、前記依存命令の前記ソースと前記ネストされた依存命令の前記ソースとがアクセス準備がされたことを示すように、前記依存命令の前記ソースのソース準備ビットをセッティングし、前記ネストされた依存命令の前記ソースのソース準備ビットをセッティングし、前記生成命令が取消されることと予想される取消時間に基づいて前記依存命令の取消タイマーと前記ネストされた依存命令の前記ソースの取消タイマーとが各々前記ソース準備ビットがセッティングされた時、カウントダウンを開始するようにセッティングし、仮に前記依存命令の前記ソースの前記取消タイマー及び前記ネストされた依存命令の前記ソースの前記取消タイマーが満了され、前記生成命令が取消された場合に前記依存命令及び前記ネストされた依存命令を同時に取消す。
【００１８】
態様として、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとが所定値に到達した時に満了される。
【００１９】
態様として、前記所定値は、０ではない。
【００２０】
態様として、前記コントローラは、仮に前記依存命令と前記ネストされた依存命令とが再びウェークアップされなければ、前記依存命令と前記ネストされた依存命令とが選択（ｐｉｃｋ）される準備にならないことを示すように前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする。
【００２１】
態様として、前記コントローラは、前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをリセットする。
【００２２】
態様として、前記コントローラは、前記依存命令と前記ネストされた依存命令とを同時に取消した後に前記依存命令の前記ソースの前記ソース準備ビットと前記ネストされた依存命令の前記ソースの前記ソース準備ビットとをリセットする。
【００２３】
態様として、前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、前記コントローラは、互に異なる値を有するように前記取消時間に基づいて前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをセッティングする。
【００２４】
態様として、前記依存命令が前記生成命令によって推測的にウェークアップされ、所定時間が経過された後に前記ネストされた依存命令は、前記依存命令によってウェークアップされ、前記コントローラは、互に異なる値を有するように前記取消時間に基づいて前記依存命令の前記ソースの前記取消タイマーと前記ネストされた依存命令の前記ソースの前記取消タイマーとをセッティングする。
【００２５】
態様として、前記生成命令は、推測的に選択される。
【００２６】
態様として、前記コントローラは、クロックサイクルの数に基づいて前記生成命令によって前記依存命令の前記ソースを推測的にウェークアップする時間から前記生成命令が取消されることと予想される前記取消時間を決定する。
【００２７】
態様として、前記依存命令の前記ソースの前記ソース準備ビット、前記ネストされた依存命令の前記ソースの前記ソース準備ビット、前記依存命令の前記ソースの前記取消タイマー、及び前記ネストされた依存命令の前記ソースの前記取消タイマーは、前記スケジューラーのエントリにセッティングされる。
【発明の効果】
【００２８】
本発明の技術的思想にしたがう態様は依存命令のメーン生成命令から１つの取消指示（ｃａｎｃｅｌ  ｉｎｄｉｃａｔｉｏｎ）を使用することによって、簡単であり、パワー及び時間を節約することができる依存命令及びネストされた命令を同時に取消し、依存命令のソース−準備状態をリセットする方法を提供する。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施形態によるプロセッサの一部構造を示す図面である。
【図２】本発明の実施形態による動作実行スケジューリングのためのプロセッサのスケジューラー内の命令のエントリを示す図面である。
【図３】本発明の実施形態によるソース準備ビットのセッティング及びリセッティング処理を示す図面である。
【図４】本発明の実施形態による各々取消タイマーとして動作する２つの依存命令及び１つの生成命令を含む命令パイプラインを示す図面である。
【図５】本発明の技術的思想の実施形態による図４の取消及びリセッティング動作を説明する順序図である。
【発明を実施するための形態】
【００３０】
本発明の長所及び特徴、そしてそれを達成する方法は添付される図面と共に詳細に後術されている実施形態を通じて説明される。しかし、本発明はここで説明される実施形態に限定されなく、他の形態に具体化されることもあり得る。本実施形態は本発明が属する技術分野で通常の知識を有する者に本発明の技術的思想を容易に実施できるように詳細に説明するために提供されることである。
【００３１】
図面において、本発明の実施形態は図示された特定形態に制限されることではなく説明を明確するために誇張されたことである。また、明細書の全体に掛けて同一の参照番号で表示された部分は同一の構成要素を示す。本明細書で‘及び／又は’という表現は前後に羅列された構成要素の中で少なくとも１つを含む意味に使用される。また、‘連結される／結合される’という表現は他の構成要素と直接的に連結させるか、或いは他の構成要素を通じて間接的に連結されることを含む意味として使用される。本明細書で単数形は文句で特別に言及しない限り複数形も含む。また、明細書で使用される‘含む’又は‘包含する’と言及された構成要素、段階、動作、及び素子は１つ以上の他の構成要素、段階、動作、素子、及び装置の存在又は追加を意味する。
【００３２】
図１は本発明の実施形態によるプロセッサの一部構造を示す図面である。図１のプロセッサはデコーダー１０１、再命名器（ｒｅｎａｍｅｒ）１０２、スケジューラー１０３、及びコントローラ１０４を含む。図１のプロセッサは多様なタイプのプロセッサに適用され得る。例えば、本発明の実施形態において、図１のプロセッサはマルチ−コアプロセッサ（ｍｕｌｔｉｐｌｅ−ｃｏｒｅ  ｐｒｏｃｅｓｓｏｒ）に適用され得る。図１のプロセッサはフェッチャー（ｆｅｔｃｈｅｒ）、キャッシュ（ｃａｃｈｅ）、遂行ユニット等のように広く公知された構造をさらに包含することができ、本図面では本発明の実施形態を明確に説明するために前記広く公知された構造が省略された。
【００３３】
図１のプロセッサにおいて、メモリ（図示せず）からの命令がフェッチャー（図示せず）によってデコーダー１０１にフェッチ（ｆｅｔｃｈ）される。デコーダー１０１は命令を下位レベル、具体的なマイクロ動作（ｍｉｃｒｏ−ｏｐｅｒａｔｉｏｎｓ；以下、ｍｉｃｒｏ−ｏｐｓ）によってデコーディングする。したがって、命令のストリーム（ｓｔｒｅａｍ）がマイクロ動作（ｍｉｃｒｏ−ｏｐｓ）にマッピングされる。デコーディングされたマイクロ動作は複数のソース（ｓｏｕｒｃｅ）又は複数の目的地（ｄｅｓｔｉｎａｔｉｏｎｓ）の名前を変更する再命名器１０２に送られ、以後スケジュール動作を遂行するようにスケジューラー１０３に送られる。１つのマイクロ動作は一般的に２つ又は３つのソースオペランド（ｓｏｕｒｃｅ  ｏｐｅｒａｎｄ、又は原始オペランド）を有し、１つ又は２つの目的地オペランド（ｄｅｓｔｉｎａｔｉｏｎ  ｏｐｅｒａｎｄ）を有する。ソースオペランドはソースデータ（ｓｏｕｒｃｅ  ｄａｔａ）を含むレジスターを明示するのに使用され、目的地オペランドはマイクロ動作の結果が書き込まれたレジスターを明示するのに使用される。再命名器１０２はマイクロ動作のソースレジスター（ｓｏｕｒｃｅ  ｒｅｇｉｓｔｅｒｓ）及び／又は目的地レジスター（ｄｅｓｔｉｎａｔｉｏｎ  ｒｅｇｉｓｔｅｒｓ）の名前を変更する。レジスター名前変更は、例えばマイクロ動作の故障の時に読出し後書込み危険（ｗｒｉｔｅ−ａｆｔｅｒ−ｒｅａｄ  ｈａｚａｒｄｓ）、書込み後書込み危険（ｗｒｉｔｅ−ａｆｔｅｒ−ｗｒｉｔｅ  ｈａｚａｒｄｓ）のようなデータ危険（ｄａｔａ  ｈａｚａｒｄｓ）を無くすための技術である。スケジューラー１０３はマイクロ動作を選択し、マイクロ動作順序の本来の順序にしたがうか、或いはしたがわない順序にマイクロ動作の実行をスケジューリングする。コントローラ１０４はスケジューラー１０３の全般的な動作を制御する。たとえコントローラ１０４が１つの分離された要素として図示されているが、コントローラ１０４はスケジューラー１０３と結合された１つの要素として具現され得る。
【００３４】
図２は本発明の実施形態による動作実行スケジューリングのためのプロセッサのスケジューラー内の命令のエントリ（ｅｎｔｒｙ）を示す図面である。ここで、スケジューラーは図１で言及されたスケジューラー１０３であり得る。
【００３５】
図２に示したように、本発明の実施形態にしたがって、生成命令１００、生成命令１０１、生成命令１００、１０１に依存する依存命令２００がスケジューラー１０３内に位置する。たとえ図２では単なる生成命令１００、１０１のみが図示されているが、依存命令２００は依存命令２００のソース（ｓｏｕｒｃｅｓ）の数にしたがって他の生成命令に依存することができ、依存命令２００の他のソースは他の生成命令に依存することができる。依存命令２００がスケジューラー１０３内に在る時、スケジューラー１０３は本発明の実施形態にしたがって依存命令２００のソース当たりソース準備フィールド（ｓｏｕｒｃｅ  ｒｅａｄｙ  ｆｉｅｌｄ）１５及び取消タイマーフィールド（ｃａｎｃｅｌ  ｔｉｍｅｒ  ｆｉｅｌｄ）１６を割当する。ソース準備フィールド１５はソース準備ビット（ｓｏｕｒｃｅ  ｒｅａｄｙ  ｆｉｅｌｄ）を含み、取消タイマーフィールド１６は取消時間（ｃａｎｃｅｌ  ｔｉｍｅｒ）又は取消時間値（ｃａｎｃｅｌ  ｔｉｍｅｒ  ｖａｌｕｅ）を含む。本実施形態において、ソース準備ビットと取消タイマーとは依存命令にこの２つのフィールドが割当された時点にはセット（ｓｅｔ）されなく、“０”を維持する。しかし、ソース準備ビットは準備（ｒｅａｄｙ）状態に、例えば“１”にセッティングされ、取消タイマーは生成命令が推測的に（ｓｐｅｃｕｌａｔｉｖｅｌｙ）依存命令をウェークアップ（ｗａｋｅ  ｕｐ）する時、以下で説明されるようにコントローラ１０４によって所定の値（ｐｒｅｄｅｔｅｒｍｉｎｅｄ  ｖａｌｕｅ）にセッティングされる。
【００３６】
依存命令２００が生成命令１００、１０１によって推測的にウェークアップされ（又は、例えば、前記説明されたように依存命令２００のソースの数に基づいた追加的な生成命令によって推測的にウェークアップされる）、ソースディペンダンシー（ｓｏｕｒｃｅ  ｄｅｐｅｎｄｅｎｃｙ）がソース命令２００の各ソースと合う時、コントローラ１０４はスケジューラー１０３内の依存命令の各ソースのためのソース準備フィールド１５のソース準備ビットをセットする。例えば、生成命令１００、１０１が推測的に依存命令２００をウェークアップし、ソースディペンダンシーが依存命令２００の各ソースと合う時、コントローラ１０４は各ソースのソースデータが何回のサイクル（ｃｙｃｌｅｓ）の間に利用可能であることを示すように各ソースのソース準備ビットを“１”の値にセットする。そうでない場合に各ソースのソース準備ビットの値は“０”を維持する。この場合、例えば、ソースディペンダンシーが依存命令２００の各ソースと互に異なる時点に合うことがあり得る。依存命令のすべてのソースに対してソース準備ビットが“１”の値にセットされれば、依存命令１００は実行のためにスケジューラー１０３から選択する準備になったことと考慮される。
【００３７】
ソース準備ビットのセッティングに加えて、生成命令１００、１０１が依存命令２００を推測的にウェークアップし、ソースディペンダンシーが依存命令２００の各ソースと合う時、コントローラ２０４は依存命令２００の各ソースのための取消タイマーフィールド１６内の取消タイマーを所定値にセットする。取消タイマーはコントローラ１０４によって依存命令２００の取消時間（又は取消タイミング）を制御するのに使用され、取消された依存命令２００の各ソースのソース準備ビットをリセッティング（ｒｅｓｅｔ）するのに使用される。取消タイマーに対して設定された予め定まれた所定時間値が経過され、生成命令１００がスケジューリングから取消される時、依存命令２００は依存命令２００が取消され、依存命令２００の各ソースのためのソース準備ビットと取消タイマーとはリセットされて依存命令２００は後に再び選択されて利用することができるようになる。ここで、本発明の実施形態による取消タイマーの予め定まれた所定時間は生成命令１００を取消すのに必要とすることと予想される時間に対応するサイクルに該当するように設定され得る。
【００３８】
生成命令１００、１０１に依存する依存命令２００の各ソースに対する予め定まれた時間値をセットする取消タイマーはソース準備ビットが依存命令のソースのためにセットされれば、時間が流れ始める。仮に取消タイマーが満了される時、生成命令が取消されれば、以後の依存命令は取消され、依存命令の各ソースに対するソース準備ビットと取消タイマーとはリセットされる。仮に生成命令が取消されなく、実行のためにスケジュールされれば、取消タイマーは依存命令のスケジューリングに影響を及ばない。
【００３９】
本発明の実施形態において、依存命令２００を取消すために言及された取消タイマーはスケジューラー１０３内の依存命令２００の各ソースをセットすることと説明された。しかし、取消タイマーが命令の取消のための目的にセットされる限り、取消タイマーは命令の各ソースのためにセットするのに使用されないことがあり、スケジューラー１０３のリソース（ｒｅｓｏｕｒｃｅ）を節約するために各命令をセットするのに使用され得る。
【００４０】
図３は本発明の実施形態によるソース準備ビットのセッティング及びリセッティング処理を示す図面である。
【００４１】
ここで、生成命令（Ｐｒｏｄｕｃｅｒ−１）及び依存命令は図１で説明されたプロセッサのスケジューラー１０３内に位置する。この実施形態において、依存命令は１つのシングルソースを有することと仮定される。また、この実施形態において、ソースのための取消タイマーは依存命令がウェークアップされる時点から生成命令（Ｐｒｏｄｕｃｅｒ−１）が取消されるのに必要である所要される時間に対応するサイクルの数に基づいてセットされる。取消タイマーはまた予め定まれた取消タイマーの満了値にしたがってセットされ、これは取消タイマーが予め定まれた最小タイマー満了値に到達する時、生成命令（Ｐｒｏｄｕｃｅｒ−１）によって要請された取消動作が意図された自分の命令取消動作であることを判断することを可能であるようにする。言い換えれば、生成命令の取消タイマーは取消タイマーが予め定まれた取消タイマー満了値に到達する時、満了される。したがって、仮に生成命令（Ｐｒｕｄｕｃｅｒ−１）の取消のために所要されるサイクルの数がＮ−１であれば、取消タイマーはＮに設定される。例えば、取消のために所要されるサイクルが３サイクル（例えば、Ｎ−１サイクル）であれば、取消タイマーは４（例えば、Ｎサイクル）に設定され得、予め定まれた最小タイマーの満了値は“１”である。したがって、取消タイマーが予め定まれた取消タイマー満了値“１”に到達する時、例えば、Ｎ−１サイクルが経過され、生成命令（Ｐｒｏｄｕｃｅｒ−１）が取消される時、依存命令は同様に取消され、以後、ソースのソース準備ビットはリセットされる。前記の例を使用して、仮に３サイクル（例えば、Ｎ−１サイクル）が経過され、取消タイマーが初期に４（例えば、Ｎ）にセッティングされれば、予め定まれた取消タイマーの満了値は“１”に到達する。予め定まれた取消タイマー満了値に到達する時、生成命令（Ｐｒｏｄｕｃｅｒ−１）は要請された取消が自分に対する意図された取消命令であることを判断することができる。たとえ前記の実施形態において、予め定まれた取消タイマーの満了値が“１”に選択されたが、他の０ではない（ｎｏｎ−ｚｅｒｏ）取消タイマー満了値が選択され得る。例えば、仮に取消するのに所要されるサイクルが３サイクル（例えば、Ｎ−２サイクル）であれば、取消タイマーは５（例えば、Ｎ）に設定され得る。取消タイマーが３サイクルの以後に“２”の値に到達する時、即ち予め定まれた取消タイマー満了値である“２”の値に到達する時、生成命令（Ｐｒｏｃｕｄｅｒ−１）は要請された取消が自らに対する取消命令であることを判断することができる。ここで、Ｎの値は所定の自然数であり得る。
【００４２】
図３を参照すれば、図１のプロセッサのクロックサイクルの観点でスケジューラー１０３内のソース準備ビットと取消タイマーセッティング及びリセッティング処理動作が下のように説明される。
【００４３】
サイクル０（Ｃｙｃｌｅ０）で、生成命令（Ｐｒｏｄｕｃｅｒ−１）と依存命令とがスケジューラー１０３内に位置し、ソース準備フィールドと取消タイマーフィールドとが依存命令に割当される。仮に生成命令（Ｐｒｏｄｕｃｅｒ−１）がスケジューラー１０３で選択されなければ、スケジューラー１０３の各フィールド内のソース準備ビットと取消タイマーとはセットされなく、したがって、それらの値は“０”を維持する。サイクル０の間に、仮に生成命令（Ｐｒｏｄｕｃｅｒ−１）がスケジューラー１０３で選択され、生成命令（Ｐｒｏｄｕｃｅｒ−１）が推測的に依存命令をウェークアップすれば、ソース準備ビットがセットされ、ソース準備ビットがセットされることと同時又はその直前や直後に取消タイマーもやはりサイクル０が終了される際にはセットされる。
【００４４】
サイクル１（Ｃｙｃｌｅ１）で、生成命令（Ｐｒｏｄｕｃｅｒ−１）が選択され、生成命令（Ｐｒｏｄｕｃｅｒ−１）が推測的に依存命令をウェークアップしたので、依存命令のソースのためのソース準備ビットは“１”にセットされて依存命令が選択される準備になったことを示す。また、取消タイマーもやはり依存命令のソースのためにＮにセットされ、予め定まれた取消タイマーの満了値は“１”であり得る。ソースのための取消タイマーＮはサイクルの数に基づき、サイクルの数は先に説明されたように予め定まれた取消タイマー満了値の観点で生成命令（Ｐｒｏｄｕｃｅｒ−１）が取消されるのに所要される時間に対応する。取消タイマーはウェークアップする（ｗａｋｉｎｇ  ｕｐ）時点でからカウントダウン（ｃｏｕｎｔ  ｄｏｗｎ）を開始し、予め定まれた取消タイマーの満了値に到達する時に満了される。例えば、Ｎ−１サイクルが超過される時、取消タイマーによって予め定まれた取消タイマーの満了値“１”に到達したことを示される。
【００４５】
サイクルＮ（ＣｙｃｌｅＮ）で、仮に取消タイマーが満了（例えば、予め定まれた取消タイマー満了値に到達）され、生成命令（Ｐｒｏｄｕｃｅｒ−１）に対する取消が発生すれば、依存命令は再びウェークアップされる時まで選択される準備にならなかった状態になる。したがって、サイクルＮが終了される時に、依存命令のソースのためのソース準備ビットと取消タイマーとは、例えば、“０”の値にリセットされて依存命令が再びウェークアップされる時まで選択される準備にならなかった状態であることを示す。
【００４６】
サイクルＮ＋１（ＣｙｃｌｅＮ＋１）で、ソース準備ビットと取消タイマーとは“０”を維持するので、依存命令は再びウェークアップされない。
【００４７】
前記本発明の実施形態は依存命令のソースのためのソース準備ビットをリセットするために単なるソース当たり小さい容量の取消タイマーを必要とする。これはソース準備セットをリセットするために従来に要求された最小になった命令の目的地タッグとそれらの依存命令とをスケジューラー１０３内のすべての命令のソースタッグと比較しなければならない多い数の比較動作が必要としないこと意味する。
【００４８】
一方、本発明の技術的な思想の実施形態は図４で説明されるように生成命令の直接依存命令（ｄｉｒｅｃｔ  ｄｅｐｅｎｄｅｎｔ  ｉｎｓｔｒｕｃｔｉｏｎ）のみでなく、非直接依存命令（ｉｎｄｉｒｅｃｔ  ｄｅｐｅｎｄｅｎｔ  ｉｎｓｔｒｕｃｔｉｏｎ）に対しても適用され得る。非直接依存命令はシャドー依存命令（ｓｈａｄｏｗ  ｄｅｐｅｎｄｅｎｔ  ｉｎｓｔｒｕｃｔｉｏｎ）であると称される。
【００４９】
図４は本発明の実施形態による各々の取消タイマーとして動作する２つの依存命令及び１つの生成命令を含む命令パイプラインを示す図面である。
【００５０】
図４で、パイプラインは生成命令である生成命令Ａ（ＬＤＲ  Ｒ１、［Ｒ０］）、生成命令Ａに依存する直接依存命令である依存命令Ｂ（ＡＤＤ  Ｒ２、Ｒ１、５）、依存命令Ｂに依存する非直接依存命令であるシャドー依存命令Ｃ（ＡＤＤ  Ｒ３、Ｒ２、１０）を含む。非直接依存命令であるシャドー依存命令Ｃはまたネストされた依存命令であると称される。したがって、シャドー依存命令Ｃは生成命令Ａに対してシャドーディペンダンシー（ｓｈａｄｏｗ  ｄｅｐｅｎｄｅｎｃｙ）又はネストされたディペンダンシー（ｎｅｓｔｅｄ  ｄｅｐｅｎｄｅｎｃｙ）を有する。依存命令Ｂとシャドー依存命令Ｃとは取消動作を直接的にトリガー（ｔｒｉｇｇｅｒ）しないシングルサイクルレイテンシ命令（ｓｉｎｇｌｅ  ｃｙｃｌｅ  ｌａｔｅｎｃｙ  ｉｎｓｔｒｕｃｔｉｏｎ）であることと描写され、反面に生成命令Ａはサイクル＃５（ｃｙｃｌｅ＃５）で取消されることができるマルチサイクルレイテンシ命令（ｍｕｌｔｉ  ｃｙｃｌｅ  ｌａｔｅｎｃｙ  ｉｎｓｔｒｕｃｔｉｏｎ）であることと描写される。
【００５１】
以下では、本発明の技術的思想の実施形態にしたがって図４に図示された命令パイプライン内の依存命令の取消動作及び依存命令のためのソース準備ビットのリセット動作が図１乃至図３を参照して説明される。図５は本発明の技術的思想の実施形態による図４の取消及びリセッティング動作を説明する順序図である。
【００５２】
本実施形態において、依存命令Ｂとシャドー依存命令Ｃとは各々１つのシングルソースを有していることと仮定され、予め定まれた所定の取消タイマー値は“１”であると仮定される。図５に示したように、サイクル＃３で、生成命令Ａ（ＬＤＲ  Ｒ１、［Ｒ０］）は推測的に依存命令Ｂ（ＡＤＤ  Ｒ２、Ｒ１、５）をウェークアップして依存命令ＢがソースデータＲ１をフォワーディングソースパス（ｆｏｒｗａｄｒｉｎｇ  ｐａｔｈ）から獲得（ｇｒａｂ）するようにする（Ｓ１００段階）。
【００５３】
その後、同一のサイクル＃３で、ソースのためのソース準備ビットと取消タイマーとが依存命令Ｂのためにセットされる（Ｓ２００段階）。依存命令Ｂのための取消タイマーは生成命令Ａによって依存命令Ｂがウェークアップされる時点から生成命令Ａが取消されるのに所要される時間に対応するサイクルの数に基づいて設定される。本発明の実施形態において、取消タイマーはサイクル＃５に相応する“２”に設定される。依存命令Ｂのためのソース準備ビット及び取消タイマーが設定された直後、依存命令Ｂのための取消タイマーは時間が流れ始める。
【００５４】
以後、依存命令Ｂはシャドー依存命令Ｃ（ＡＤＤ  Ｒ３、Ｒ２、１０）をサイクル＃４でウェークアップしてフォワーディングパスからソースデータＲ２を獲得（ｇｒａｂ）するようにする（Ｓ３００段階）。
【００５５】
その後、サイクル＃４で、ソースのためのソース準備ビットと取消タイマーとがシャドー依存命令Ｃのためにセットされる（Ｓ４００段階）。シャドー依存命令Ｃのための取消タイマーは依存命令Ｂによってシャドー依存命令Ｃがウェークアップされた時点から生成命令Ａによって取消動作が遂行されるのに所要される時間に相応するサイクルの数に基づいて設定される。本実施形態で、取消タイマーはサイクル＃５に相応する“１”に設定される。シャドー依存命令Ｃのためにソース準備ビットと取消タイマーとが設定された直後、シャドー依存命令Ｃのソースのための取消タイマーは時間が流れ始める。
【００５６】
以後、サイクル＃５で、生成命令Ａが取消されたか、そして依存命令Ｂ及びシャドー依存命令Ｃのための取消タイマーが相応するサイクル＃５で予め定まれた取消タイマー満了値“１”に相応するか否かが判断される（Ｓ５００段階）。
【００５７】
仮に生成命令Ａが取消され、取消タイマーが相応するサイクル＃５で予め定まれた値“１”に対応すれば、依存命令Ｂ及びシャドー依存命令Ｃは全て同時に取消され、依存命令Ｂ及びシャドー依存命令Ｃのためのソース準備ビットと取消タイマーはリセットされる（Ｓ６００段階）。しかし、仮に生成命令Ａが取消サイクル＃５で取消されなければ、生成命令Ａと依存命令Ｂ及びシャドー依存命令Ｃを含んで生成命令Ａの依存命令が遂行される（Ｓ７００段階）。
【００５８】
前記例示的に説明された実施形態による命令の取消及びソースリセットスキームは単なる各依存命令の取消タイマー及びそれらの基礎生成命令（例えば、図４の生成命令Ａ）の取消因子（ｃａｎｃｅｌ  ｉｎｄｉｃａｔｏｒ）を観察することによって複数の依存命令及び／又は複数のシャドー依存命令に同時に適用され得る。前記の実施形態において、仮に生成命令に対する取消要請があり、依存命令のための取消タイマーが予め定まれた取消タイマー値を満足すれば、すべての依存命令及びネストされた依存命令が取消され、それらのソース準備ビット及び取消タイマーが実質的に同時にリセットされる。命令取消に基づいた取消タイマー及びソース準備ビットリセットのこのような簡単な接近方法は命令タッグ及びそれらの依存命令タッグを比較しなければならない従来の高費用の比較方法の必要性を消滅させ、したがって、プロセッサの命令プロセスによるパワー消耗を最小化する。
【００５９】
上述した説明は例示的なこととして理解されなければならなく、本発明の技術的思想はこれに限定されない。例えば、ソース準備ビットと取消タイマーとの例示的な値は何らかの数としても設定され得る。ソース準備ビット及び取消タイマーの実質的なビットサイズ（又は幅）は何らかの値としても設定され得る。また、先に説明されたサイクルの数はやはり何らかの数としても設定され得る。さらに、前記の例が推測的な命令（ｓｐｅｃｕｌａｔｉｖｅ  ｉｎｓｔｒｕｃｔｉｏｎｓ）の主要実施形態として説明されたが、本発明で開示された内容はこれに限定されなく、他のタイプの命令に対しても適用され得る。また、前記の実施形態で依存命令が１つのシングルソースを有することと仮定されたが、本発明の技術的思想は２つ又はその以上のソースを有する依存命令に対しても適用され得る。このような変更、応用、追加、改善は発明の技術的な思想の範囲にあるはずである。したがって、本発明の技術的な思想は前記の実施形態に制限されることではなく、本出願の請求項及び請求項の範囲内の他の実施形態やはり本発明の技術的な思想に含まれることが理解できる。
【００６０】
本発明の実施形態を説明するために使用された用語の中で“１つ”又は“シングル”という用語はそれが明確に制限する場合を除いては単数のことの以外に複数の要素を指すこともあり得る。本発明の技術的な思想を逸脱しない範囲内で他の類似であるか、或いは非類似な変更が可能である。したがって、本発明の技術的な思想は添付された請求項のみでなく、異なる方式の請求項が可能である。
【符号の説明】
【００６１】
１０１・・・デコーダー
１０２・・・再命名器
１０３・・・スケジューラー
１０４・・・コントローラ
Ｅｎｔｒｙ・・・エントリ
Ｐｒｏｄｕｃｅｒ  ｉｎｓｔｒｕｃｔｉｏｎ・・・生成命令
ｄｅｐｅｎｄｅｎｔ  ｉｎｓｔｒｕｃｔｉｏｎ・・・依存命令
ｓｏｕｒｃｅ  ｒｅａｄｙ  ｆｉｅｌｄ・・・ソース準備フィールド
ｃａｎｃｅｌ  ｔｉｍｅｒ  ｆｉｅｌｄ・・・取消タイマーフィールド
【図１】
2014182829.tif 000003
【図２】
2014182829.tif 000004
【図３】
2014182829.tif 000005
【図４】
2014182829.tif 000006
【図５】
2014182829.tif 000007