(57)【要約】【課題】無駄な時間の発生を抑制して性能を向上させる。【解決手段】情報処理装置１は、互いに依存関係にある２以上の命令を発行する命令発行制御部１０と、実行パイプライン２０と、を備える。命令発行制御部１０は、命令デコード部１１と、命令が使用するリソースの使用状態を管理するリソース管理部１３と、リソースの使用状態に基づきデコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、デコード済み命令の発行タイミングとして決定し、リソースの使用状態を更新しリソースの割り当てを行う発行タイミング決定＆リソース割り当て部１２と、発行タイミングの決定及びリソースの割り当てが行われた命令を、その発行タイミングとなるまでの間バッファリングして保持し、その発行タイミングで実行パイプライン２０に発行する発行確定命令待機バッファ１４と、を備える。【選択図】図８
2012173755.tif 000002
【特許請求の範囲】
【請求項１】
互いに依存関係にある２以上の命令を発行する命令発行制御部と、前記命令発行制御部が発行した命令が使用するリソースを含み、当該リソースを使用して前記命令を実行する実行パイプラインと、を備え、
前記命令発行制御部は、
フェッチされて入力される命令をデコードする命令デコード部と、
前記命令が使用する前記リソースの使用状態を管理するリソース管理部と、
前記デコード部でデコードされたデコード済み命令について、前記リソース管理部における前記リソースの使用状態に基づいて、前記デコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、前記デコード済み命令の発行タイミングとして決定し、当該決定した発行タイミングで前記デコード済み命令が使用する前記リソースを確保するため、前記リソース管理部における前記リソースの使用状態を更新し、前記デコード済み命令に対する前記リソースの割り当てを行う発行タイミング決定＆リソース割り当て部と、
前記発行タイミング決定＆リソース割り当て部で前記発行タイミングの決定及び前記リソースの割り当てが行われた命令を、当該発行タイミングとなるまでの間バッファリングして保持すると共に、当該発行タイミングとなった場合に、前記実行パイプラインに対して発行する発行確定命令待機バッファと、
を備えることを特徴とする情報処理装置。
【請求項２】
前記発行確定命令待機バッファは、
前記発行タイミング決定＆リソース割り当て部で前記発行タイミングの決定及び前記リソースの割り当てが行われた命令を前記発行タイミングと対応付けて共に保持し、当該保持した発行タイミングの値を毎サイクル減少させてゆき所定の値となった場合に、前記実行パイプラインに対して前記保持した命令を発行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記発行確定命令待機バッファは、
前記発行タイミング決定＆リソース割り当て部で前記発行タイミングの決定及び前記リソースの割り当てが行われた命令を、前記発行タイミングの値に応じた位置に保持し、当該保持した発行命令の位置を毎サイクルシフトさせてゆき所定の位置となった場合に、前記実行パイプラインに対して前記保持した命令を発行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記リソース管理部は、
前記実行パイプラインが有する複数のリソースのそれぞれの使用状態を管理する複数のビジー・カウンタを備え、
前記発行タイミング決定＆リソース割り当て部は、
前記リソース管理部の前記複数のビジー・カウンタのうちで、前記デコード部でデコードされたデコード済み命令が使用するリソースに対応するビジー・カウンタを判別し、当該判別したビジー・カウンタの値のうちで、最も大きな値を前記デコード済み命令の発行タイミングとして決定する
ことを特徴とする請求項１乃至３いずれか１項に記載の情報処理装置。
【請求項５】
前記命令発行制御部は、
前記実行パイプラインが有するレジスタについてライト・アフタ・リードの依存関係にある２つの命令を発行し、
前記発行タイミング決定＆リソース割り当て部は、
先行命令が前記レジスタをリードした直後に後続命令のライトが行われるタイミングを、前記デコード済み命令の発行タイミングとして決定する
ことを特徴とする請求項１乃至４いずれか１項に記載の情報処理装置。
【請求項６】
前記命令発行制御部は、
前記実行パイプラインが有するレジスタについてライト・アフタ・ライトの依存関係にある２つの命令であって、後続命令の命令発行から前記レジスタへライトするまでの時間が、先行命令がライトするタイミングと比較してより長い命令を発行し、
前記発行タイミング決定＆リソース割り当て部は、
前記先行命令がライトした直後に前記後続命令のライトが行われるタイミングを、前記デコード済み命令の発行タイミングとして決定する
ことを特徴とする請求項１乃至４いずれか１項に記載の情報処理装置。
【請求項７】
互いに依存関係にある２以上の命令を発行する命令発行制御部と、前記命令発行制御部が発行した命令が使用するリソースを含み、当該リソースを使用して前記命令を実行する実行パイプラインと、を備えた情報処理装置における情報処理方法であって、
前記命令が使用する前記リソースの使用状態を管理し、
デコード済み命令について、前記リソースの使用状態に基づいて、前記デコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、前記デコード済み命令の発行タイミングとして決定し、当該決定した発行タイミングで前記デコード済み命令が使用する前記リソースを確保するため、前記リソースの使用状態を更新し、前記デコード済み命令に対する前記リソースの割り当てを行い、
前記発行タイミングの決定及び前記リソースの割り当てが行われた命令を、当該発行タイミングとなるまでの間バッファリングして保持すると共に、当該発行タイミングとなった場合に、前記実行パイプラインに対して発行する
ことを特徴とする情報処理方法。
【請求項８】
前記命令発行制御部は、
前記実行パイプラインが有するレジスタについてライト・アフタ・リードの依存関係にある２つの命令を発行し、
先行命令が前記レジスタをリードした直後に後続命令のライトが行われるタイミングを、前記デコード済み命令の発行タイミングとして決定する
ことを特徴とする請求項７に記載の情報処理方法。
【請求項９】
前記命令発行制御部は、
前記実行パイプラインが有するレジスタについてライト・アフタ・ライトの依存関係にある２つの命令であって、後続命令の命令発行から前記レジスタへライトするまでの時間が、先行命令がライトするタイミングと比較してより長い命令を発行し、
前記先行命令がライトした直後に前記後続命令のライトが行われるタイミングを、前記デコード済み命令の発行タイミングとして決定する
ことを特徴とする請求項７に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
図６及び図７を参照して、本発明に関連する情報処理装置及びその動作を説明する。
図６において、情報処理装置３は、命令発行制御部４００と実行パイプライン５００を備えている。命令発行制御部４００は、フェッチした命令に対してリソースを割り当て、実行パイプラインに対して命令を発行する。実行パイプライン５００は、命令発行制御部４００から発行された命令を実行する。
【０００３】
命令発行制御部４００は、命令デコード部４１０と、リソース割り当て部４１１と、リソース管理部４１２と、を備えている。命令デコード部４１０は、フェッチした命令をデコードして、リソース割り当て部４１１に送出する。リソース管理部４１２は、実行パイプライン５００中のリソースを管理し、各リソースがどのタイミングで使用可能となるかを監視する。
【０００４】
リソース割り当て部４１１は、命令デコード部４１０から落ちてきた命令について、その命令で使用するリソースの使用状況をリソース管理部４１２に問い合わせてリソースの割り当てを行い（状態更新４１３）、リソースが使用可能のタイミングで、実行パイプライン５００に対して命令の発行（発行確定＆命令発行４１４）を行う。また、リソース割り当て部４１１は、リソースが使用不可のタイミングでは、リソースが使用可能となるまでの間、命令をホールドする。
【０００５】
実行パイプライン５００は、読み出し部５０１と、演算部５０２と、書き込み部５０３と、レジスタ５０４と、を備えている。読み出し部５０１は、実行パイプライン５００に対して発行された命令４１４に従い、レジスタ２０４から必要なデータの読み出しを行う。演算部５０２は、読み出したデータに対して演算等の処理を行い、書き込み部２０３へと結果を送出する。書き込み部５０３は、演算部５０２での演算結果データをレジスタ２０４へ書き込む。レジスタ５０４は、演算やロード/ストア等に使用されるデータを、格納・保持する。
【０００６】
また、本発明に関連する技術として、特許文献１乃至４に開示される技術がある。例えば特許文献１には、データ競合やリソース競合を最短の待ち時間で回避することを目的として、後続命令がデータ競合する場合にはパイプラインへの発行を待機し、データ競合していない場合には、先行命令を追い越して発行する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０８−３０５５６７号公報
【特許文献２】特開２００２−３６６５３８号公報
【特許文献３】特開２０１０−０６７１４１号公報
【特許文献４】特開２０１０−１８２２２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、図６に例示した命令発行制御部４００においては、次のような課題がある。すなわち、リソース割り当て部４１１は、リソースが使用可能な状態となったタイミングで命令の発行を確定させるために、例えばライト・アフタ・リードなどの依存関係にある後続命令が、先行命令を追い越して発行できないという課題がある。
【０００９】
図７を参照して、ライト・アフタ・リードの依存関係にある命令を例として、具体的に説明する。なお、図において、ＦＴはフェッチ、ＤＥＣはデコード、ＤＰはディスパッチ、ＨＬＤはリソース待ち、ＩＳＳは発行、ＲＤはレジスタ・リード、ＥＸ０〜ＥＸ３は実行ステージ、ＷＴはレジスタ・ライトをそれぞれ示している。
【００１０】
図７に示すように、先行命令は、フェッチ及びデコードされた後、リソースが確保できずにホールドされる。そして、ディスパッチ後にリソースが空き、先行命令を実行パイプラインに落とせるタイミングで、発行される。発行された命令はレジスタ・リードを行い、実行ステージを経て、レジスタ・ライトを行う。
【００１１】
ここで、後続命令は、フェッチ及びデコードされた後、ホールドされ、先行命令の発行が確定するまでの間は、発行の確定はできないものであった。そして、先行命令の発行が確定した後、ディスパッチ後に後続命令が発行される。発行された命令はレジスタ・リードを行い、実行ステージを経て、レジスタ・ライトを行う。
【００１２】
ライト・アフタ・リードの依存関係にある２つの命令は、その依存関係から、先行命令がレジスタをリードする前に、後続命令がレジスタにライトすることが許されない。この関係を守るため、上述した技術（図６に例示した技術）では、図７に示すように、先行命令を発行してから後続命令を発行しており、その結果、先行命令がレジスタをリードしてから後続命令がレジスタにライトするまでの間に、無駄な時間が発生してしまうという問題があった。
【００１３】
なお、特許文献１に開示される技術では、データ競合していない場合に、先行命令を追い越して発行する旨が記載されているに過ぎず、どのようにして後続命令が追い越しを行うのか開示されておらず、本発明の課題を解決することはできないものである。
【００１４】
そこで本発明の目的は、これらの課題を解決し、依存関係のある２つの命令間で先行命令の直後に後続命令を実行可能として、無駄な時間の発生を抑制して性能を向上させることが可能な情報処理装置及び情報処理方法を提供することである。
【課題を解決するための手段】
【００１５】
本発明の第一の態様に係る情報処理装置は、互いに依存関係にある２以上の命令を発行する命令発行制御部と、前記命令発行制御部が発行した命令が使用するリソースを含み、当該リソースを使用して前記命令を実行する実行パイプラインと、を備え、前記命令発行制御部は、フェッチされて入力される命令をデコードする命令デコード部と、前記命令が使用する前記リソースの使用状態を管理するリソース管理部と、前記デコード部でデコードされたデコード済み命令について、前記リソース管理部における前記リソースの使用状態に基づいて、前記デコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、前記デコード済み命令の発行タイミングとして決定し、当該決定した発行タイミングで前記デコード済み命令が使用する前記リソースを確保するため、前記リソース管理部における前記リソースの使用状態を更新し、前記デコード済み命令に対する前記リソースの割り当てを行う発行タイミング決定＆リソース割り当て部と、前記発行タイミング決定＆リソース割り当て部で前記発行タイミングの決定及び前記リソースの割り当てが行われた命令を、当該発行タイミングとなるまでの間バッファリングして保持すると共に、当該発行タイミングとなった場合に、前記実行パイプラインに対して発行する発行確定命令待機バッファと、を備えることを特徴とするものである。
【００１６】
これにより、無駄な時間の発生を抑制して性能を向上させることができる。
【００１７】
本発明の第二の態様に係る情報処理方法は、互いに依存関係にある２以上の命令を発行する命令発行制御部と、前記命令発行制御部が発行した命令が使用するリソースを含み、当該リソースを使用して前記命令を実行する実行パイプラインと、を備えた情報処理装置における情報処理方法であって、前記命令が使用する前記リソースの使用状態を管理し、デコード済み命令について、前記リソースの使用状態に基づいて、前記デコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、前記デコード済み命令の発行タイミングとして決定し、当該決定した発行タイミングで前記デコード済み命令が使用する前記リソースを確保するため、前記リソースの使用状態を更新し、前記デコード済み命令に対する前記リソースの割り当てを行い、前記発行タイミングの決定及び前記リソースの割り当てが行われた命令を、当該発行タイミングとなるまでの間バッファリングして保持すると共に、当該発行タイミングとなった場合に、前記実行パイプラインに対して発行することを特徴とするものである。
【００１８】
これにより、無駄な時間の発生を抑制して性能を向上させることができる
【発明の効果】
【００１９】
本発明によれば、依存関係のある２つの命令間で先行命令の直後に後続命令を実行可能として、無駄な時間の発生を抑制して性能を向上させることが可能な情報処理装置及び情報処理方法を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態１に係る情報処理装置の構成図である。
【図２】実施の形態１に係る発行タイミング決定＆リソース割り当て部及びリソース管理部の詳細構成図である。
【図３】実施の形態１に係る情報処理装置の動作例を示すフローチャートである。
【図４】実施の形態２に係る情報処理装置の構成図である。
【図５】本発明の効果を説明するための図である。
【図６】本発明に関連する情報処理装置の構成図である。
【図７】本発明に関連する情報処理装置の動作例を示すフローチャートである。
【図８】本発明の原理を説明するための図である。
【発明を実施するための形態】
【００２１】
本発明の実施の形態について説明するのに先立ち、図８を参照して本発明の原理について説明する。
【００２２】
図８に示すように、本発明に係る情報処理装置４は、互いに依存関係にある２以上の命令を発行する命令発行制御部１０と、命令発行制御部１０が発行した命令が使用するリソースを含み、そのリソースを使用して命令を実行する実行パイプライン２０と、を備えている。
【００２３】
命令発行制御部１０は、命令デコード部１１と、リソース管理部１３と、発行タイミング決定＆リソース割り当て部１２と、発行確定命令待機バッファ１４と、を備えている。命令デコード部１１は、フェッチされて入力される命令をデコードする。リソース管理部１３は、命令が使用するリソースの使用状態を管理する。
【００２４】
発行タイミング決定＆リソース割り当て部１２は、デコード部１１でデコードされたデコード済み命令について、リソース管理部１３におけるリソースの使用状態に基づいて、デコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、デコード済み命令の発行タイミングとして決定する。そして、発行タイミング決定＆リソース割り当て部１２は、その決定した発行タイミングでデコード済み命令が使用するリソースを確保するため、リソース管理部１３におけるリソースの使用状態を更新し、デコード済み命令に対するリソースの割り当てを行う。
【００２５】
発行確定命令待機バッファ１４は、発行タイミング決定＆リソース割り当て部１２で発行タイミングの決定及びリソースの割り当てが行われた命令を、その発行タイミングとなるまでの間バッファリングして保持すると共に、その発行タイミングとなった場合に、実行パイプライン２０に対して発行する。
【００２６】
これにより、例えばライト・アフタ・リードの依存関係にある後続命令が、データを処理する順番を狂わせることなく、先行する命令を追い越して発行することができる。このため、先行命令の直後に後続命令を実行することができ、無駄な時間の発生を抑制して性能を向上させることができる。
【００２７】
＜実施の形態１．＞
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本実施の形態に係る情報処理装置の構成図である。
図１に示すように、情報処理装置１は、命令の発行制御を行う命令発行制御部１００と、命令の実行を行う実行パイプライン２００と、を備えている。
【００２８】
命令発行制御部１００は、命令デコード部１１０と、発行タイミング決定＆リソース割り当て部１２０と、リソース管理部１３０と、発行確定命令待機バッファ１４０と、を備えている。
【００２９】
命令デコード部１１０は、フェッチした命令のデコードを行う。命令デコード部１１０は、命令済み命令を、発行タイミング決定＆リソース割り当て部１２０に送出する。
【００３０】
発行タイミング決定＆リソース割り当て部１２０は、命令デコード部１１０から送出されたデコード済み命令１１１と、リソース管理部１３０から送出されたリソースビジー時間１３２と、に基づいて、命令発行のタイミングを決定する。より具体的には、発行タイミング決定＆リソース割り当て部１２０は、デコード済み命令１１１が使用するリソースが、現在から何サイクル後に使用可能になるのかをリソースビジー時間１３２に基づいて判断し、命令発行のタイミングとして決定する。なお、発行タイミングの決定方法の詳細については後述する。
【００３１】
発行タイミング決定＆リソース割り当て部１２０は、発行タイミングを確定した命令と、その発行タイミングと、を、発行確定命令＆発行タイミング１２１として、発行確定命令待機バッファ１４０に送出する。
【００３２】
また、発行タイミング決定＆リソース割り当て部１２０は、上記決定したタイミングで命令が使用するリソースを確保するため、リソース管理部１３０におけるリソースの使用状態を更新し、命令に対するリソースの割り当てを行う（リソース管理部１３０に対してリソース使用の予約を行う）。より具体的には、発行タイミング決定＆リソース割り当て部１２０は、命令が使用するリソースに対応するビジー・カウンタ１３１に対して、ビジーをセットする（その命令が、現在から何サイクルの間、対応するリソースを使用するのか、そのサイクルの値をセットする）。
【００３３】
従って、発行タイミング決定＆リソース割り当て部１２０は、発行確定命令＆発行タイミング１２１を送出すると共に、その発行タイミングで命令が使用するリソースを確保するため、リソース更新情報１２２をリソース管理部１３０に送出する。
【００３４】
リソース管理部１３０は、実行パイプライン２００上のリソース（パスなど）の使用状態の管理、レジスタ・ファイル２１０へのリード/ライトの可否等の管理、リソースが何サイクル後に利用可能になるのかの管理を行う。リソース管理部１３０は、リソースのビジー時間１３２を、発行タイミング決定＆リソース割り当て部１２０に送出する。リソース管理部１３０は、命令が使用するリソースの使用状態を管理するために、複数のビジー・カウンタ１３１を備えている。ビジー・カウンタ１３１は、対応するリソースが現在から何サイクルの間、使用されるのかを示している。本実施の形態では、１つの命令は、１又は複数のリソースを使用する。
【００３５】
発行確定命令待機バッファ１４０は、発行タイミング決定＆リソース割り当て部１２０にて発行タイミングの決定及びリソースの割り当てが行われた命令（発行確定命令＆発行タイミング１２１）について、その発行タイミングとなるまでの間バッファリングして保持すると共に、発行タイミングとなった場合には、発行命令１４６として実行パイプライン２００に対して発行する。
【００３６】
発行確定命令待機バッファ１４０は、発行タイミング１４３を格納する複数の発行タイミング・カウンタ１４１と、発行確定命令１４４を格納する複数の発行待機命令１４２と、を備えている。発行タイミング・カウンタ１４１と発行待機命令１４２とは、１対１のセットになっている。
【００３７】
発行確定命令待機バッファ１４０は、受信した発行確定命令＆発行タイミング１２１を格納する際に、発行タイミング１４３及び発行確定命令１４４の格納位置をそれぞれ決定して、対応する発行タイミング・カウンタ１４１及び発行待機命令１４２にそれぞれ格納する。
【００３８】
発行確定命令待機バッファ１４０は、発行タイミング・カウンタ１４１の値を毎サイクル減少させ、発行タイミング・カウンタ１４１の値が所定の値（例えば、１）となった場合に、発行命令の位置情報１４５に従って、対応する発行待機命令１４２に格納されている命令を取り出し、発行指示命令（発行命令１４６）として、実行パイプライン２００に対して発行する。
【００３９】
実行パイプライン２００は、命令発行制御部１００から発行された命令１４６に従い、データの処理を行う。実行パイプライン２００は、読み出し部２２０と、実行部２３０と、書き込み部２４０と、レジスタ・ファイル２１０と、を備えている。
【００４０】
読み出し部２２０は、実行パイプライン２００に対して発行された命令１４６に従い、レジスタ・ファイル２１０から必要なデータの読み出しを行う。読み出し部２２０は、リードアドレス２２１を用いて読み出すデータのアドレスを指示し、リードデータ２１１を受信する。読み出し部２２０は、読み出したデータ２２２を実行部２３０に送出する。
【００４１】
実行部２３０は、読み出し部２２０が読み出したデータ２３０に対して、演算等を含む処理を実行し、演算結果２３１を書き込み部２４０へと送出する。書き込み部２４０は、実行部２３０での演算結果２３１をレジスタ・ファイル２１０へ書き込む。書き込み部２４０は、ライトアドレス２４１を用いて書き込むデータのアドレスを指示し、対とデータ２４２を送出する。レジスタ・ファイル２１０は、演算やロード/ストア等に使用されるデータを、格納・保持する。
【００４２】
次に、図３を参照して、発行タイミング決定＆リソース割り当て部１２０を用いた命令発行動作の詳細を説明する。図３に、発行タイミング決定＆リソース割り当て部１２０の詳細構成図を示す。
【００４３】
上述したように、まず、フェッチされた命令を命令デコード部１１０がデコードし、発行タイミング決定＆リソース割り当て部１２０にデコードされた命令が入力される。発行タイミング決定＆リソース割り当て部１２０は、命令を発行するタイミングを決定すると共にリソースの割り当てを行い、発行確定命令及びその発行タイミングを発行確定命令待機バッファ１４０に送出する。発行タイミングは、現在から何サイクル後かを示す値として、発行確定命令と共に送られる。
【００４４】
発行確定命令待機バッファ１４０は、発行タイミング・カウンタ１４１に発行タイミングを格納し、発行待機命令１４２に発行確定命令を格納する。発行確定命令待機バッファ１４０は、発行タイミング・カウンタ１４１の値を毎サイクル減少させてゆき、カウンタの値が所定の値になった場合に、対応する命令の発行タイミングになったものと認識して、対応する発行待機命令１４２から命令を取り出し、実行パイプライン２００に対して発行命令１４６を送出する。
【００４５】
ここで、図３を参照して、発行タイミングの決定及びリソースの割り当て方法の詳細を説明する。図３に示すように、命令についての発行タイミングの決定及びリソースの割り当ては、発行タイミング決定＆リソース割り当て部１２０と、リソース管理部１３０と、を用いて行われる。
【００４６】
発行タイミング決定＆リソース割り当て部１２０は、命令デコード部１１０から入力された命令に従い、リソース管理部１３０の複数のビジー・カウンタ１３１の中から、命令が使用するリソースについて、そのリソースに対応するビジー・カウンタ１３１を判別し、判別したビジー・カウンタ１３１の値のうちで最も大きな値を選択する。
【００４７】
具体的には、まず、発行タイミング決定＆リソース割り当て部１２０は、命令デコード部１１０から入力された命令に従い、リソースセレクト信号を生成する。リソースセレクト信号とは、その命令がどのリソースを使用するかを示す信号である。そして、発行タイミング決定＆リソース割り当て部１２０は、リソース管理部１３０から入力される複数のビジー・カウンタ１３１の値のうち、リソースセレクト信号に対応するビジー・カウンタ１３１の値について、その最大値を選択する。発行タイミング決定＆リソース割り当て部１２０は、このビジー・カウンタ１３１の最大値を発行タイミングとして決定し、発行確定命令待機バッファ１４０に対して、発行確定命令と共に送出する。
【００４８】
さらに、発行タイミング決定＆リソース割り当て部１２０は、発行確定命令＆発行タイミング１２１を送出する際には、その発行タイミングで命令が使用するリソースを確保するため、命令が使用するリソースに対応するビジー・カウンタ１３１に対して、その命令がリソースの使用を終了するタイミングまでの値（現在から何サイクル後に、その命令がリソースの使用を終了するのかを示す値）を、セットする。
【００４９】
次に、図３を参照して、情報処理装置１の動作例を説明する。図３は、情報処理装置１における命令処理の全体の流れを示すタイムチャートである。なお、図３に示す例では、命令Ａの処理を開始時点では、命令Ａに先行する命令がリソースを使用しているために、実行パイプライン２００に対して命令Ａを直ぐには発行できない状態であるものとする。
【００５０】
命令発行制御部１００は、発行タイミング決定＆リソース割り当て部１２０を用いて、命令Ａについての発行タイミングの決定及びリソースの割り当てを行い、発行タイミングとなるまでの間、発行確定命令待機バッファ１４０に命令Ａを待機させる。なお、図において、ＳＴＹは待機を示している。
【００５１】
命令Ａについて発行タイミングの決定及びリソースの割り当てが行われ、命令Ａを発行確定命令待機バッファ１４０に待機させている間に、命令発行制御部１００は、命令Ａとはライト・アフタ・リードの関係にある後続の命令Ｂについて、発行タイミングの決定及びリソースの割り当てを行い、発行タイミングとなるまでの間、発行確定命令待機バッファ１４０に命令Ｂを待機させる。
【００５２】
ここで、命令Ｂについての発行タイミングの決定は、先行する命令Ａのリソースの使用状況に応じて決定される。図３では、命令Ｂが使用するリソースのうちで、命令Ａとの間でライト・アフタ・リードの依存関係のあるレジスタ・ファイル２１０以外のリソースが、全て使用可能な状態である場合を想定する。この場合、命令Ｂがレジスタ・ファイル２１０にライトするタイミングが、命令Ａがレジスタ・ファイル２１０をリードした直後のタイミングとなるように、発行確定命令待機バッファ１４０に命令Ｂをホールドすればよい。
【００５３】
従って、図３に示す例では、発行タイミング決定＆リソース割り当て部１２０は、命令Ａがレジスタ・ファイル２１０のリードを終了するタイミングをビジー・カウンタ１３１の値から判別し、その値の直後を、命令Ｂがレジスタ・ファイル２１０にライトするタイミングとして、命令Ｂが実行するその他の処理（ＩＳＳ、ＲＤ、ＥＸ０〜ＥＸ３、ＷＴ）に要する時間などを考慮した上で命令Ｂの発行タイミングを決定する。
【００５４】
この結果、命令Ｂは、命令Ａを追い越して発行確定命令待機バッファ１４０から発行されることになり、命令Ａがレジスタ・ファイル２１０をリードした直後に、レジスタ・ファイル２１０に対して命令Ｂがライトするという動作が実行される。
【００５５】
＜実施の形態２．＞
続いて、図４を参照して、本発明の実施の形態２について説明する。なお、本実施の形態に係る情報処理装置の構成・処理は、基本的には上述した実施の形態１に係る情報処理装置１と同一の構成・処理を有するが、本実施の形態に係る情報処理装置では発行確定待機命令をホールドする仕組みについて更なる特徴を有している。このため、以下では、その相違点を中心に説明し、共通する構成・処理についてはその詳細な説明を省略する。
【００５６】
図４は、本実施の形態に係る情報処理装置の構成図である。情報処理装置２は、命令発行制御部１００において、発行確定命令待機バッファ１４０に代えて、発行確定命令待機バッファ３４０を備えている。
【００５７】
発行確定命令待機バッファ３４０は、複数の命令を、発行タイミングに基づく位置に保持している。発行タイミングに基づく位置とは、その命令を発行するタイミングとなるまでの残りサイクルの値に応じた位置とする。
【００５８】
発行確定命令＆発行タイミング１２１を受信した発行確定命令待機バッファ３４０は、その発行タイミングに従い、対応する位置に発行待機命令をセットする。発行確定命令待機バッファ３４０は、セットした命令を、実行パイプライン２００に出力するタイミングに対応する位置に向けて（発行タイミングの値を減らす方向）、毎サイクル、その位置をシフトする。発行確定命令待機バッファ３４０は、最後尾（発行タイミング＝１に対応する位置）に来た命令を、発行命令３４６として、実行パイプライン２００に対して発行する。
【００５９】
このように、発行確定命令待機バッファ３４０は、発行確定命令＆発行タイミング１２１を受信した場合に、発行タイミングに従って発行確定命令のセット位置を決定し、そのセットした命令が最後尾に到達したときには、命令を発行する。これにより、発行確定命令待機バッファ３４０は、発行タイミング自体を保持せずに発行タイミングを判別することができ、リソース割り当て決定から発行までの間の発行確定命令の待機時間を調整可能とする。また、このような発行確定命令待機バッファ３４０は、発行確定命令待機バッファ１４０と比較してより簡単な構成で実現することができる。
【００６０】
従って、発行確定命令待機バッファ３４０では、リソース割り当て決定から発行までの待機時間を調整可能とすることで、後続命令の発行時に先行命令を追い越し、例えばライト・アフタ・リードの依存関係のある命令間で、先行命令のリードが終了した直後に後続命令がライトすることができ、性能向上する効果を得ることができる。
【００６１】
以上説明したように、本発明によれば、以下に説明する効果を奏する。
第１の効果として、各命令について命令発行を確定してから、その命令が使用するリソースを確保できるまでの間、命令をホールドすることで、例えば、ライト・アフタ・リードなどの依存関係にある２つの命令間で、先行命令がリードした直後に後続命令のライトが行われるように後続命令をホールドしておくことができる。このため、無駄な時間の発生を抑制して、性能を向上させることができる。なお、図５に、第１の効果の説明を示している。
【００６２】
第２の効果として、第１の効果と同様の原理に基づき、ライト・アフタ・ライトの依存関係のある２つの命令間に関しても、後続命令の命令発行からレジスタ・ライトまでの時間が、先行命令がライトするタイミングと比較してより長いようなケースにおいて、先行命令がライトした直後に後続命令のライトを行うことができ、性能を向上させることができる。
【００６３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００６４】
１、２  情報処理装置、
１００  命令発行制御部、  １１０  命令デコード部、  １１１  デコード済み命令、
１２０  発行タイミング決定＆リソース割り当て部、
１２１  発行確定命令＆発行タイミング、  １２２  リソース更新情報、
１３０  リソース管理部、  １３１  ビジー・カウンタ、
１３２  リソースビジー時間、  １４０、３４０  発行確定命令待機バッファ、
１４１  発行タイミング、  １４２  発行待機命令、  １４３  発行タイミング、
１４４  発行待機命令、  １４５  発行命令の位置情報、
１４６、３４６  発行命令、  ２００  実行パイプライン、
２１０  レジスタ・ファイル、  ２１１  リードデータ、  ２２０  読み出し部、
２２１  リードアドレス、  ２２２  データ、  ２３０  実行部、
２３１  演算結果、  ２４０  書き込み部、  ２４１  ライトアドレス、
２４２  ライトデータ、
３  情報処理装置、
４００  命令発行制御部、  ４１０  命令デコード部、
４１１  リソース割り当て部、  ４１２  リソース管理部、  ４１３  状態更新、
４１４  発行確定＆命令発行、  ５００  実行パイプライン、  ５０１  読み出し部、
５０２  演算部、  ５０３  書き込み部、  ５０４  レジスタ、
４  情報処理装置、
１０  命令発行制御部、  １１  命令デコード部、
１２  発行タイミング決定＆リソース割り当て部、  １３  リソース管理部、
１４  発行確定命令待機バッファ、  ２０  実行パイプライン、
【図１】
2012173755.tif 000003
【図２】
2012173755.tif 000004
【図３】
2012173755.tif 000005
【図４】
2012173755.tif 000006
【図５】
2012173755.tif 000007
【図６】
2012173755.tif 000008
【図７】
2012173755.tif 000009
【図８】
2012173755.tif 000010