説明

情報処理装置及び情報処理方法

【課題】無駄な時間の発生を抑制して性能を向上させる。
【解決手段】情報処理装置1は、互いに依存関係にある2以上の命令を発行する命令発行制御部10と、実行パイプライン20と、を備える。命令発行制御部10は、命令デコード部11と、命令が使用するリソースの使用状態を管理するリソース管理部13と、リソースの使用状態に基づきデコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、デコード済み命令の発行タイミングとして決定し、リソースの使用状態を更新しリソースの割り当てを行う発行タイミング決定&リソース割り当て部12と、発行タイミングの決定及びリソースの割り当てが行われた命令を、その発行タイミングとなるまでの間バッファリングして保持し、その発行タイミングで実行パイプライン20に発行する発行確定命令待機バッファ14と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【0002】
図6及び図7を参照して、本発明に関連する情報処理装置及びその動作を説明する。
図6において、情報処理装置3は、命令発行制御部400と実行パイプライン500を備えている。命令発行制御部400は、フェッチした命令に対してリソースを割り当て、実行パイプラインに対して命令を発行する。実行パイプライン500は、命令発行制御部400から発行された命令を実行する。
【0003】
命令発行制御部400は、命令デコード部410と、リソース割り当て部411と、リソース管理部412と、を備えている。命令デコード部410は、フェッチした命令をデコードして、リソース割り当て部411に送出する。リソース管理部412は、実行パイプライン500中のリソースを管理し、各リソースがどのタイミングで使用可能となるかを監視する。
【0004】
リソース割り当て部411は、命令デコード部410から落ちてきた命令について、その命令で使用するリソースの使用状況をリソース管理部412に問い合わせてリソースの割り当てを行い(状態更新413)、リソースが使用可能のタイミングで、実行パイプライン500に対して命令の発行(発行確定&命令発行414)を行う。また、リソース割り当て部411は、リソースが使用不可のタイミングでは、リソースが使用可能となるまでの間、命令をホールドする。
【0005】
実行パイプライン500は、読み出し部501と、演算部502と、書き込み部503と、レジスタ504と、を備えている。読み出し部501は、実行パイプライン500に対して発行された命令414に従い、レジスタ204から必要なデータの読み出しを行う。演算部502は、読み出したデータに対して演算等の処理を行い、書き込み部203へと結果を送出する。書き込み部503は、演算部502での演算結果データをレジスタ204へ書き込む。レジスタ504は、演算やロード/ストア等に使用されるデータを、格納・保持する。
【0006】
また、本発明に関連する技術として、特許文献1乃至4に開示される技術がある。例えば特許文献1には、データ競合やリソース競合を最短の待ち時間で回避することを目的として、後続命令がデータ競合する場合にはパイプラインへの発行を待機し、データ競合していない場合には、先行命令を追い越して発行する技術が開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平08−305567号公報
【特許文献2】特開2002−366538号公報
【特許文献3】特開2010−067141号公報
【特許文献4】特開2010−182226号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、図6に例示した命令発行制御部400においては、次のような課題がある。すなわち、リソース割り当て部411は、リソースが使用可能な状態となったタイミングで命令の発行を確定させるために、例えばライト・アフタ・リードなどの依存関係にある後続命令が、先行命令を追い越して発行できないという課題がある。
【0009】
図7を参照して、ライト・アフタ・リードの依存関係にある命令を例として、具体的に説明する。なお、図において、FTはフェッチ、DECはデコード、DPはディスパッチ、HLDはリソース待ち、ISSは発行、RDはレジスタ・リード、EX0〜EX3は実行ステージ、WTはレジスタ・ライトをそれぞれ示している。
【0010】
図7に示すように、先行命令は、フェッチ及びデコードされた後、リソースが確保できずにホールドされる。そして、ディスパッチ後にリソースが空き、先行命令を実行パイプラインに落とせるタイミングで、発行される。発行された命令はレジスタ・リードを行い、実行ステージを経て、レジスタ・ライトを行う。
【0011】
ここで、後続命令は、フェッチ及びデコードされた後、ホールドされ、先行命令の発行が確定するまでの間は、発行の確定はできないものであった。そして、先行命令の発行が確定した後、ディスパッチ後に後続命令が発行される。発行された命令はレジスタ・リードを行い、実行ステージを経て、レジスタ・ライトを行う。
【0012】
ライト・アフタ・リードの依存関係にある2つの命令は、その依存関係から、先行命令がレジスタをリードする前に、後続命令がレジスタにライトすることが許されない。この関係を守るため、上述した技術(図6に例示した技術)では、図7に示すように、先行命令を発行してから後続命令を発行しており、その結果、先行命令がレジスタをリードしてから後続命令がレジスタにライトするまでの間に、無駄な時間が発生してしまうという問題があった。
【0013】
なお、特許文献1に開示される技術では、データ競合していない場合に、先行命令を追い越して発行する旨が記載されているに過ぎず、どのようにして後続命令が追い越しを行うのか開示されておらず、本発明の課題を解決することはできないものである。
【0014】
そこで本発明の目的は、これらの課題を解決し、依存関係のある2つの命令間で先行命令の直後に後続命令を実行可能として、無駄な時間の発生を抑制して性能を向上させることが可能な情報処理装置及び情報処理方法を提供することである。
【課題を解決するための手段】
【0015】
本発明の第一の態様に係る情報処理装置は、互いに依存関係にある2以上の命令を発行する命令発行制御部と、前記命令発行制御部が発行した命令が使用するリソースを含み、当該リソースを使用して前記命令を実行する実行パイプラインと、を備え、前記命令発行制御部は、フェッチされて入力される命令をデコードする命令デコード部と、前記命令が使用する前記リソースの使用状態を管理するリソース管理部と、前記デコード部でデコードされたデコード済み命令について、前記リソース管理部における前記リソースの使用状態に基づいて、前記デコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、前記デコード済み命令の発行タイミングとして決定し、当該決定した発行タイミングで前記デコード済み命令が使用する前記リソースを確保するため、前記リソース管理部における前記リソースの使用状態を更新し、前記デコード済み命令に対する前記リソースの割り当てを行う発行タイミング決定&リソース割り当て部と、前記発行タイミング決定&リソース割り当て部で前記発行タイミングの決定及び前記リソースの割り当てが行われた命令を、当該発行タイミングとなるまでの間バッファリングして保持すると共に、当該発行タイミングとなった場合に、前記実行パイプラインに対して発行する発行確定命令待機バッファと、を備えることを特徴とするものである。
【0016】
これにより、無駄な時間の発生を抑制して性能を向上させることができる。
【0017】
本発明の第二の態様に係る情報処理方法は、互いに依存関係にある2以上の命令を発行する命令発行制御部と、前記命令発行制御部が発行した命令が使用するリソースを含み、当該リソースを使用して前記命令を実行する実行パイプラインと、を備えた情報処理装置における情報処理方法であって、前記命令が使用する前記リソースの使用状態を管理し、デコード済み命令について、前記リソースの使用状態に基づいて、前記デコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、前記デコード済み命令の発行タイミングとして決定し、当該決定した発行タイミングで前記デコード済み命令が使用する前記リソースを確保するため、前記リソースの使用状態を更新し、前記デコード済み命令に対する前記リソースの割り当てを行い、前記発行タイミングの決定及び前記リソースの割り当てが行われた命令を、当該発行タイミングとなるまでの間バッファリングして保持すると共に、当該発行タイミングとなった場合に、前記実行パイプラインに対して発行することを特徴とするものである。
【0018】
これにより、無駄な時間の発生を抑制して性能を向上させることができる
【発明の効果】
【0019】
本発明によれば、依存関係のある2つの命令間で先行命令の直後に後続命令を実行可能として、無駄な時間の発生を抑制して性能を向上させることが可能な情報処理装置及び情報処理方法を提供することができる。
【図面の簡単な説明】
【0020】
【図1】実施の形態1に係る情報処理装置の構成図である。
【図2】実施の形態1に係る発行タイミング決定&リソース割り当て部及びリソース管理部の詳細構成図である。
【図3】実施の形態1に係る情報処理装置の動作例を示すフローチャートである。
【図4】実施の形態2に係る情報処理装置の構成図である。
【図5】本発明の効果を説明するための図である。
【図6】本発明に関連する情報処理装置の構成図である。
【図7】本発明に関連する情報処理装置の動作例を示すフローチャートである。
【図8】本発明の原理を説明するための図である。
【発明を実施するための形態】
【0021】
本発明の実施の形態について説明するのに先立ち、図8を参照して本発明の原理について説明する。
【0022】
図8に示すように、本発明に係る情報処理装置4は、互いに依存関係にある2以上の命令を発行する命令発行制御部10と、命令発行制御部10が発行した命令が使用するリソースを含み、そのリソースを使用して命令を実行する実行パイプライン20と、を備えている。
【0023】
命令発行制御部10は、命令デコード部11と、リソース管理部13と、発行タイミング決定&リソース割り当て部12と、発行確定命令待機バッファ14と、を備えている。命令デコード部11は、フェッチされて入力される命令をデコードする。リソース管理部13は、命令が使用するリソースの使用状態を管理する。
【0024】
発行タイミング決定&リソース割り当て部12は、デコード部11でデコードされたデコード済み命令について、リソース管理部13におけるリソースの使用状態に基づいて、デコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、デコード済み命令の発行タイミングとして決定する。そして、発行タイミング決定&リソース割り当て部12は、その決定した発行タイミングでデコード済み命令が使用するリソースを確保するため、リソース管理部13におけるリソースの使用状態を更新し、デコード済み命令に対するリソースの割り当てを行う。
【0025】
発行確定命令待機バッファ14は、発行タイミング決定&リソース割り当て部12で発行タイミングの決定及びリソースの割り当てが行われた命令を、その発行タイミングとなるまでの間バッファリングして保持すると共に、その発行タイミングとなった場合に、実行パイプライン20に対して発行する。
【0026】
これにより、例えばライト・アフタ・リードの依存関係にある後続命令が、データを処理する順番を狂わせることなく、先行する命令を追い越して発行することができる。このため、先行命令の直後に後続命令を実行することができ、無駄な時間の発生を抑制して性能を向上させることができる。
【0027】
<実施の形態1.>
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本実施の形態に係る情報処理装置の構成図である。
図1に示すように、情報処理装置1は、命令の発行制御を行う命令発行制御部100と、命令の実行を行う実行パイプライン200と、を備えている。
【0028】
命令発行制御部100は、命令デコード部110と、発行タイミング決定&リソース割り当て部120と、リソース管理部130と、発行確定命令待機バッファ140と、を備えている。
【0029】
命令デコード部110は、フェッチした命令のデコードを行う。命令デコード部110は、命令済み命令を、発行タイミング決定&リソース割り当て部120に送出する。
【0030】
発行タイミング決定&リソース割り当て部120は、命令デコード部110から送出されたデコード済み命令111と、リソース管理部130から送出されたリソースビジー時間132と、に基づいて、命令発行のタイミングを決定する。より具体的には、発行タイミング決定&リソース割り当て部120は、デコード済み命令111が使用するリソースが、現在から何サイクル後に使用可能になるのかをリソースビジー時間132に基づいて判断し、命令発行のタイミングとして決定する。なお、発行タイミングの決定方法の詳細については後述する。
【0031】
発行タイミング決定&リソース割り当て部120は、発行タイミングを確定した命令と、その発行タイミングと、を、発行確定命令&発行タイミング121として、発行確定命令待機バッファ140に送出する。
【0032】
また、発行タイミング決定&リソース割り当て部120は、上記決定したタイミングで命令が使用するリソースを確保するため、リソース管理部130におけるリソースの使用状態を更新し、命令に対するリソースの割り当てを行う(リソース管理部130に対してリソース使用の予約を行う)。より具体的には、発行タイミング決定&リソース割り当て部120は、命令が使用するリソースに対応するビジー・カウンタ131に対して、ビジーをセットする(その命令が、現在から何サイクルの間、対応するリソースを使用するのか、そのサイクルの値をセットする)。
【0033】
従って、発行タイミング決定&リソース割り当て部120は、発行確定命令&発行タイミング121を送出すると共に、その発行タイミングで命令が使用するリソースを確保するため、リソース更新情報122をリソース管理部130に送出する。
【0034】
リソース管理部130は、実行パイプライン200上のリソース(パスなど)の使用状態の管理、レジスタ・ファイル210へのリード/ライトの可否等の管理、リソースが何サイクル後に利用可能になるのかの管理を行う。リソース管理部130は、リソースのビジー時間132を、発行タイミング決定&リソース割り当て部120に送出する。リソース管理部130は、命令が使用するリソースの使用状態を管理するために、複数のビジー・カウンタ131を備えている。ビジー・カウンタ131は、対応するリソースが現在から何サイクルの間、使用されるのかを示している。本実施の形態では、1つの命令は、1又は複数のリソースを使用する。
【0035】
発行確定命令待機バッファ140は、発行タイミング決定&リソース割り当て部120にて発行タイミングの決定及びリソースの割り当てが行われた命令(発行確定命令&発行タイミング121)について、その発行タイミングとなるまでの間バッファリングして保持すると共に、発行タイミングとなった場合には、発行命令146として実行パイプライン200に対して発行する。
【0036】
発行確定命令待機バッファ140は、発行タイミング143を格納する複数の発行タイミング・カウンタ141と、発行確定命令144を格納する複数の発行待機命令142と、を備えている。発行タイミング・カウンタ141と発行待機命令142とは、1対1のセットになっている。
【0037】
発行確定命令待機バッファ140は、受信した発行確定命令&発行タイミング121を格納する際に、発行タイミング143及び発行確定命令144の格納位置をそれぞれ決定して、対応する発行タイミング・カウンタ141及び発行待機命令142にそれぞれ格納する。
【0038】
発行確定命令待機バッファ140は、発行タイミング・カウンタ141の値を毎サイクル減少させ、発行タイミング・カウンタ141の値が所定の値(例えば、1)となった場合に、発行命令の位置情報145に従って、対応する発行待機命令142に格納されている命令を取り出し、発行指示命令(発行命令146)として、実行パイプライン200に対して発行する。
【0039】
実行パイプライン200は、命令発行制御部100から発行された命令146に従い、データの処理を行う。実行パイプライン200は、読み出し部220と、実行部230と、書き込み部240と、レジスタ・ファイル210と、を備えている。
【0040】
読み出し部220は、実行パイプライン200に対して発行された命令146に従い、レジスタ・ファイル210から必要なデータの読み出しを行う。読み出し部220は、リードアドレス221を用いて読み出すデータのアドレスを指示し、リードデータ211を受信する。読み出し部220は、読み出したデータ222を実行部230に送出する。
【0041】
実行部230は、読み出し部220が読み出したデータ230に対して、演算等を含む処理を実行し、演算結果231を書き込み部240へと送出する。書き込み部240は、実行部230での演算結果231をレジスタ・ファイル210へ書き込む。書き込み部240は、ライトアドレス241を用いて書き込むデータのアドレスを指示し、対とデータ242を送出する。レジスタ・ファイル210は、演算やロード/ストア等に使用されるデータを、格納・保持する。
【0042】
次に、図3を参照して、発行タイミング決定&リソース割り当て部120を用いた命令発行動作の詳細を説明する。図3に、発行タイミング決定&リソース割り当て部120の詳細構成図を示す。
【0043】
上述したように、まず、フェッチされた命令を命令デコード部110がデコードし、発行タイミング決定&リソース割り当て部120にデコードされた命令が入力される。発行タイミング決定&リソース割り当て部120は、命令を発行するタイミングを決定すると共にリソースの割り当てを行い、発行確定命令及びその発行タイミングを発行確定命令待機バッファ140に送出する。発行タイミングは、現在から何サイクル後かを示す値として、発行確定命令と共に送られる。
【0044】
発行確定命令待機バッファ140は、発行タイミング・カウンタ141に発行タイミングを格納し、発行待機命令142に発行確定命令を格納する。発行確定命令待機バッファ140は、発行タイミング・カウンタ141の値を毎サイクル減少させてゆき、カウンタの値が所定の値になった場合に、対応する命令の発行タイミングになったものと認識して、対応する発行待機命令142から命令を取り出し、実行パイプライン200に対して発行命令146を送出する。
【0045】
ここで、図3を参照して、発行タイミングの決定及びリソースの割り当て方法の詳細を説明する。図3に示すように、命令についての発行タイミングの決定及びリソースの割り当ては、発行タイミング決定&リソース割り当て部120と、リソース管理部130と、を用いて行われる。
【0046】
発行タイミング決定&リソース割り当て部120は、命令デコード部110から入力された命令に従い、リソース管理部130の複数のビジー・カウンタ131の中から、命令が使用するリソースについて、そのリソースに対応するビジー・カウンタ131を判別し、判別したビジー・カウンタ131の値のうちで最も大きな値を選択する。
【0047】
具体的には、まず、発行タイミング決定&リソース割り当て部120は、命令デコード部110から入力された命令に従い、リソースセレクト信号を生成する。リソースセレクト信号とは、その命令がどのリソースを使用するかを示す信号である。そして、発行タイミング決定&リソース割り当て部120は、リソース管理部130から入力される複数のビジー・カウンタ131の値のうち、リソースセレクト信号に対応するビジー・カウンタ131の値について、その最大値を選択する。発行タイミング決定&リソース割り当て部120は、このビジー・カウンタ131の最大値を発行タイミングとして決定し、発行確定命令待機バッファ140に対して、発行確定命令と共に送出する。
【0048】
さらに、発行タイミング決定&リソース割り当て部120は、発行確定命令&発行タイミング121を送出する際には、その発行タイミングで命令が使用するリソースを確保するため、命令が使用するリソースに対応するビジー・カウンタ131に対して、その命令がリソースの使用を終了するタイミングまでの値(現在から何サイクル後に、その命令がリソースの使用を終了するのかを示す値)を、セットする。
【0049】
次に、図3を参照して、情報処理装置1の動作例を説明する。図3は、情報処理装置1における命令処理の全体の流れを示すタイムチャートである。なお、図3に示す例では、命令Aの処理を開始時点では、命令Aに先行する命令がリソースを使用しているために、実行パイプライン200に対して命令Aを直ぐには発行できない状態であるものとする。
【0050】
命令発行制御部100は、発行タイミング決定&リソース割り当て部120を用いて、命令Aについての発行タイミングの決定及びリソースの割り当てを行い、発行タイミングとなるまでの間、発行確定命令待機バッファ140に命令Aを待機させる。なお、図において、STYは待機を示している。
【0051】
命令Aについて発行タイミングの決定及びリソースの割り当てが行われ、命令Aを発行確定命令待機バッファ140に待機させている間に、命令発行制御部100は、命令Aとはライト・アフタ・リードの関係にある後続の命令Bについて、発行タイミングの決定及びリソースの割り当てを行い、発行タイミングとなるまでの間、発行確定命令待機バッファ140に命令Bを待機させる。
【0052】
ここで、命令Bについての発行タイミングの決定は、先行する命令Aのリソースの使用状況に応じて決定される。図3では、命令Bが使用するリソースのうちで、命令Aとの間でライト・アフタ・リードの依存関係のあるレジスタ・ファイル210以外のリソースが、全て使用可能な状態である場合を想定する。この場合、命令Bがレジスタ・ファイル210にライトするタイミングが、命令Aがレジスタ・ファイル210をリードした直後のタイミングとなるように、発行確定命令待機バッファ140に命令Bをホールドすればよい。
【0053】
従って、図3に示す例では、発行タイミング決定&リソース割り当て部120は、命令Aがレジスタ・ファイル210のリードを終了するタイミングをビジー・カウンタ131の値から判別し、その値の直後を、命令Bがレジスタ・ファイル210にライトするタイミングとして、命令Bが実行するその他の処理(ISS、RD、EX0〜EX3、WT)に要する時間などを考慮した上で命令Bの発行タイミングを決定する。
【0054】
この結果、命令Bは、命令Aを追い越して発行確定命令待機バッファ140から発行されることになり、命令Aがレジスタ・ファイル210をリードした直後に、レジスタ・ファイル210に対して命令Bがライトするという動作が実行される。
【0055】
<実施の形態2.>
続いて、図4を参照して、本発明の実施の形態2について説明する。なお、本実施の形態に係る情報処理装置の構成・処理は、基本的には上述した実施の形態1に係る情報処理装置1と同一の構成・処理を有するが、本実施の形態に係る情報処理装置では発行確定待機命令をホールドする仕組みについて更なる特徴を有している。このため、以下では、その相違点を中心に説明し、共通する構成・処理についてはその詳細な説明を省略する。
【0056】
図4は、本実施の形態に係る情報処理装置の構成図である。情報処理装置2は、命令発行制御部100において、発行確定命令待機バッファ140に代えて、発行確定命令待機バッファ340を備えている。
【0057】
発行確定命令待機バッファ340は、複数の命令を、発行タイミングに基づく位置に保持している。発行タイミングに基づく位置とは、その命令を発行するタイミングとなるまでの残りサイクルの値に応じた位置とする。
【0058】
発行確定命令&発行タイミング121を受信した発行確定命令待機バッファ340は、その発行タイミングに従い、対応する位置に発行待機命令をセットする。発行確定命令待機バッファ340は、セットした命令を、実行パイプライン200に出力するタイミングに対応する位置に向けて(発行タイミングの値を減らす方向)、毎サイクル、その位置をシフトする。発行確定命令待機バッファ340は、最後尾(発行タイミング=1に対応する位置)に来た命令を、発行命令346として、実行パイプライン200に対して発行する。
【0059】
このように、発行確定命令待機バッファ340は、発行確定命令&発行タイミング121を受信した場合に、発行タイミングに従って発行確定命令のセット位置を決定し、そのセットした命令が最後尾に到達したときには、命令を発行する。これにより、発行確定命令待機バッファ340は、発行タイミング自体を保持せずに発行タイミングを判別することができ、リソース割り当て決定から発行までの間の発行確定命令の待機時間を調整可能とする。また、このような発行確定命令待機バッファ340は、発行確定命令待機バッファ140と比較してより簡単な構成で実現することができる。
【0060】
従って、発行確定命令待機バッファ340では、リソース割り当て決定から発行までの待機時間を調整可能とすることで、後続命令の発行時に先行命令を追い越し、例えばライト・アフタ・リードの依存関係のある命令間で、先行命令のリードが終了した直後に後続命令がライトすることができ、性能向上する効果を得ることができる。
【0061】
以上説明したように、本発明によれば、以下に説明する効果を奏する。
第1の効果として、各命令について命令発行を確定してから、その命令が使用するリソースを確保できるまでの間、命令をホールドすることで、例えば、ライト・アフタ・リードなどの依存関係にある2つの命令間で、先行命令がリードした直後に後続命令のライトが行われるように後続命令をホールドしておくことができる。このため、無駄な時間の発生を抑制して、性能を向上させることができる。なお、図5に、第1の効果の説明を示している。
【0062】
第2の効果として、第1の効果と同様の原理に基づき、ライト・アフタ・ライトの依存関係のある2つの命令間に関しても、後続命令の命令発行からレジスタ・ライトまでの時間が、先行命令がライトするタイミングと比較してより長いようなケースにおいて、先行命令がライトした直後に後続命令のライトを行うことができ、性能を向上させることができる。
【0063】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0064】
1、2 情報処理装置、
100 命令発行制御部、 110 命令デコード部、 111 デコード済み命令、
120 発行タイミング決定&リソース割り当て部、
121 発行確定命令&発行タイミング、 122 リソース更新情報、
130 リソース管理部、 131 ビジー・カウンタ、
132 リソースビジー時間、 140、340 発行確定命令待機バッファ、
141 発行タイミング、 142 発行待機命令、 143 発行タイミング、
144 発行待機命令、 145 発行命令の位置情報、
146、346 発行命令、 200 実行パイプライン、
210 レジスタ・ファイル、 211 リードデータ、 220 読み出し部、
221 リードアドレス、 222 データ、 230 実行部、
231 演算結果、 240 書き込み部、 241 ライトアドレス、
242 ライトデータ、

3 情報処理装置、
400 命令発行制御部、 410 命令デコード部、
411 リソース割り当て部、 412 リソース管理部、 413 状態更新、
414 発行確定&命令発行、 500 実行パイプライン、 501 読み出し部、
502 演算部、 503 書き込み部、 504 レジスタ、

4 情報処理装置、
10 命令発行制御部、 11 命令デコード部、
12 発行タイミング決定&リソース割り当て部、 13 リソース管理部、
14 発行確定命令待機バッファ、 20 実行パイプライン、

【特許請求の範囲】
【請求項1】
互いに依存関係にある2以上の命令を発行する命令発行制御部と、前記命令発行制御部が発行した命令が使用するリソースを含み、当該リソースを使用して前記命令を実行する実行パイプラインと、を備え、
前記命令発行制御部は、
フェッチされて入力される命令をデコードする命令デコード部と、
前記命令が使用する前記リソースの使用状態を管理するリソース管理部と、
前記デコード部でデコードされたデコード済み命令について、前記リソース管理部における前記リソースの使用状態に基づいて、前記デコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、前記デコード済み命令の発行タイミングとして決定し、当該決定した発行タイミングで前記デコード済み命令が使用する前記リソースを確保するため、前記リソース管理部における前記リソースの使用状態を更新し、前記デコード済み命令に対する前記リソースの割り当てを行う発行タイミング決定&リソース割り当て部と、
前記発行タイミング決定&リソース割り当て部で前記発行タイミングの決定及び前記リソースの割り当てが行われた命令を、当該発行タイミングとなるまでの間バッファリングして保持すると共に、当該発行タイミングとなった場合に、前記実行パイプラインに対して発行する発行確定命令待機バッファと、
を備えることを特徴とする情報処理装置。
【請求項2】
前記発行確定命令待機バッファは、
前記発行タイミング決定&リソース割り当て部で前記発行タイミングの決定及び前記リソースの割り当てが行われた命令を前記発行タイミングと対応付けて共に保持し、当該保持した発行タイミングの値を毎サイクル減少させてゆき所定の値となった場合に、前記実行パイプラインに対して前記保持した命令を発行する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記発行確定命令待機バッファは、
前記発行タイミング決定&リソース割り当て部で前記発行タイミングの決定及び前記リソースの割り当てが行われた命令を、前記発行タイミングの値に応じた位置に保持し、当該保持した発行命令の位置を毎サイクルシフトさせてゆき所定の位置となった場合に、前記実行パイプラインに対して前記保持した命令を発行する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記リソース管理部は、
前記実行パイプラインが有する複数のリソースのそれぞれの使用状態を管理する複数のビジー・カウンタを備え、
前記発行タイミング決定&リソース割り当て部は、
前記リソース管理部の前記複数のビジー・カウンタのうちで、前記デコード部でデコードされたデコード済み命令が使用するリソースに対応するビジー・カウンタを判別し、当該判別したビジー・カウンタの値のうちで、最も大きな値を前記デコード済み命令の発行タイミングとして決定する
ことを特徴とする請求項1乃至3いずれか1項に記載の情報処理装置。
【請求項5】
前記命令発行制御部は、
前記実行パイプラインが有するレジスタについてライト・アフタ・リードの依存関係にある2つの命令を発行し、
前記発行タイミング決定&リソース割り当て部は、
先行命令が前記レジスタをリードした直後に後続命令のライトが行われるタイミングを、前記デコード済み命令の発行タイミングとして決定する
ことを特徴とする請求項1乃至4いずれか1項に記載の情報処理装置。
【請求項6】
前記命令発行制御部は、
前記実行パイプラインが有するレジスタについてライト・アフタ・ライトの依存関係にある2つの命令であって、後続命令の命令発行から前記レジスタへライトするまでの時間が、先行命令がライトするタイミングと比較してより長い命令を発行し、
前記発行タイミング決定&リソース割り当て部は、
前記先行命令がライトした直後に前記後続命令のライトが行われるタイミングを、前記デコード済み命令の発行タイミングとして決定する
ことを特徴とする請求項1乃至4いずれか1項に記載の情報処理装置。
【請求項7】
互いに依存関係にある2以上の命令を発行する命令発行制御部と、前記命令発行制御部が発行した命令が使用するリソースを含み、当該リソースを使用して前記命令を実行する実行パイプラインと、を備えた情報処理装置における情報処理方法であって、
前記命令が使用する前記リソースの使用状態を管理し、
デコード済み命令について、前記リソースの使用状態に基づいて、前記デコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、前記デコード済み命令の発行タイミングとして決定し、当該決定した発行タイミングで前記デコード済み命令が使用する前記リソースを確保するため、前記リソースの使用状態を更新し、前記デコード済み命令に対する前記リソースの割り当てを行い、
前記発行タイミングの決定及び前記リソースの割り当てが行われた命令を、当該発行タイミングとなるまでの間バッファリングして保持すると共に、当該発行タイミングとなった場合に、前記実行パイプラインに対して発行する
ことを特徴とする情報処理方法。
【請求項8】
前記命令発行制御部は、
前記実行パイプラインが有するレジスタについてライト・アフタ・リードの依存関係にある2つの命令を発行し、
先行命令が前記レジスタをリードした直後に後続命令のライトが行われるタイミングを、前記デコード済み命令の発行タイミングとして決定する
ことを特徴とする請求項7に記載の情報処理方法。
【請求項9】
前記命令発行制御部は、
前記実行パイプラインが有するレジスタについてライト・アフタ・ライトの依存関係にある2つの命令であって、後続命令の命令発行から前記レジスタへライトするまでの時間が、先行命令がライトするタイミングと比較してより長い命令を発行し、
前記先行命令がライトした直後に前記後続命令のライトが行われるタイミングを、前記デコード済み命令の発行タイミングとして決定する
ことを特徴とする請求項7に記載の情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−173755(P2012−173755A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−31785(P2011−31785)
【出願日】平成23年2月17日(2011.2.17)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】