(57)【特許請求の範囲】
【請求項１】
パイプライン処理を実行するパイプライン処理実行部と、
前記パイプライン処理実行部へ第１命令を発行する第１命令部と、前記第１命令よりも優先順位の低い第２命令を前記パイプライン処理実行部へ発行する第２命令部とを有する命令発行制御部と
を具備し、
前記第１命令部は、前記第１命令を前記パイプライン処理実行部へ発行し、前記第１命令の情報である命令発行確定信号を前記第２命令部へ出力し、
前記第２命令部は、
前記第２命令を格納する命令発行キューと、
前記命令発行確定信号に含まれる情報から前記第１命令の情報を読み取り、前記第１命令の演算器使用サイクル数が１であるか否かを判定し、前記第１命令の演算器使用サイクル数が１である場合、処理サイクル数１信号を出力する直前命令処理数認識部と、
所定の第１クロックにおいて前記処理サイクル数１信号を受け取り、命令発行抑止信号を出力しないように制御する命令発行抑止信号生成部と、
を備え、
前記第２命令部は、前記第１クロックで前記命令発行抑止信号を出力しないことによって、前記第１クロックに連続する第２クロックで、前記パイプライン処理実行部へ前記第２命令を発行する
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記直前命令処理数認識部は、前記第１命令の演算器使用サイクル数が１でない場合でも、前記命令発行確定信号に含まれる情報から読み取る前記第１命令が使用する第１リソースの情報と、前記命令発行キューから受け取る前記第２命令が使用する第２リソースの情報とに基づいて、前記第１命令が使用する第１リソースと前記第２命令が使用する第２リソースとが同じリソースを含むか否かを判定し、前記第１リソースおよび前記第２リソースが同じリソースを含まない場合、前記処理サイクル数１信号を出力する
情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記第２命令部は、
直前命令ＴＡＴ比較部
を更に備え、
前記直前命令ＴＡＴ比較部は、
前記命令発行確定信号を受け取り、受け取った前記命令発行確定信号に含まれる情報から前記第１命令の演算ＴＡＴを読み出し、
前記命令発行キューから前記第２命令の演算ＴＡＴ情報を受け取り、受け取った前記ＴＡＴ情報に含まれる前記第２命令の演算ＴＡＴを読み出し、
前記第１命令の演算ＴＡＴと、前記第２命令の演算ＴＡＴとを比較し、
前記第１命令の演算ＴＡＴよりも前記第２命令の演算ＴＡＴの方が小さい場合に、演算ＴＡＴ不整合信号を出力し、
前記命令発行抑止信号生成部は、前記処理サイクル数１信号を受け取っていないとき、又は、前記演算ＴＡＴ不整合信号を受け取ったとき、前記第１クロックで前記命令発行抑止信号を出力し、
前記第２命令部は、前記命令発行抑止信号の出力によって、前記第２クロックで前記パイプライン処理実行部へ前記第２命令を発行しない
情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記直前命令ＴＡＴ比較部は、前記第１命令の演算ＴＡＴよりも、前記第２命令の演算ＴＡＴの方が小さい場合でも、前記命令発行確定信号に含まれる情報から読み取る前記第１リソースの情報と、前記命令発行キューから受け取る前記第２リソースの情報とに基づいて、前記第１命令と前記第２命令とが同じ結果書き込みリソースを使用するか否かを判定し、同じ結果書き込みリソースを使用しない場合は、前記演算ＴＡＴ不整合信号を出力しない
情報処理装置。
【請求項５】
請求項１乃至４の何れか一項に記載の情報処理装置であって、
前記命令発行確定信号に含まれる情報から前記第１命令の演算器使用サイクル数を読み取り、前記第１命令の演算器使用サイクル数からビジーフラグ点灯期間を計算して、前記第１命令が使用する第１リソースに対するビジーフラグ点灯指示を出力するビジーフラグセット条件生成部と、
前記第１リソースに対応したビジーフラグを有し、前記ビジーフラグ点灯指示で指定された期間、前記ビジーフラグを点灯させるリソースビジーフラグ管理部と
を更に具備し、
前記第２命令部は、
前記第１リソースの前記ビジーフラグを受け取り、前記ビジーフラグが点灯しているか否かを判定し、前記ビジーフラグが点灯していなければ、リソースチェックＯＫ信号を出力するビジーフラグチェック部
を更に備え、
前記第２命令部は、前記第１クロックで前記リソースチェックＯＫ信号を出力し、且つ、前記命令発行抑止信号を出力しない場合に、前記第２クロックで前記第２命令を発行する
情報処理装置。
【請求項６】
第１命令部が、パイプライン処理を実行するパイプライン処理実行部へ第１命令を発行するステップと、
前記第１命令よりも優先順位の低い第２命令を格納する第２命令部が、前記第２命令の発行を制御するステップと
を具備し、
前記第１命令を発行するステップは、
前記第１命令の情報である命令発行確定信号を前記第２命令部へ出力するステップを備え、
前記第２命令の発行を制御するステップは、
所定の第１クロックにおいて処理サイクル数１信号を出力する制御を行うステップと、
前記処理サイクル数１信号を受け取り、前記第１クロックで命令発行抑止信号の出力を制御するステップと、
前記第１クロックで前記命令発行抑止信号が出力されないことによって、前記第１クロックに連続する第２クロックで、前記第２命令を前記パイプライン処理実行部へ発行するステップと
を備え、
前記処理サイクル数１信号を出力する制御を行うステップは、
前記命令発行確定信号に含まれる情報から前記第１命令の情報を読み取り、前記第１命令の演算器使用サイクル数が１であるか否かを判定するステップと、
前記第１命令の演算器使用サイクル数が１である場合、前記処理サイクル数１信号を出力するステップと
を含む
情報処理方法。
【請求項７】
請求項６に記載の情報処理方法であって、
前記処理サイクル数１信号を出力する制御を行うステップは、
前記第１命令の演算器使用サイクル数が１でない場合、前記命令発行確定信号に含まれる情報から読み取る前記第１命令が使用する第１リソースの情報と、前記第２命令が使用する第２リソースの情報とに基づいて、前記第１命令が使用する第１リソースと前記第２命令が使用する第２リソースとが同じリソースを含むか否かを判定するステップと、
前記第１命令と前記第２命令とが同一リソースを使用しない場合、前記処理サイクル数１信号を出力するステップと
を更に含む
情報処理方法。
【請求項８】
請求項７に記載の情報処理方法であって、
前記第２命令の発行を制御するステップは、
前記命令発行確定信号に含まれる情報から前記第１命令の演算ＴＡＴ情報を読み取るステップと、
前記第１命令の演算ＴＡＴ情報から読み出す前記第１命令の演算ＴＡＴと前記第２命令の演算ＴＡＴ情報から読み出す前記第２命令の演算ＴＡＴとを比較するステップと、
前記比較の結果に基づいて、演算ＴＡＴ不整合信号を出力するステップと
を更に備え、
前記演算ＴＡＴ不整合信号を出力するステップは、
前記第１命令の演算ＴＡＴよりも前記第２命令の演算ＴＡＴの方が小さい場合に、前記演算ＴＡＴ不整合信号を出力するステップ
を含み、
前記命令発行抑止信号の出力を制御するステップは、
前記処理サイクル数１信号を受け取っていないとき、又は、前記演算ＴＡＴ不整合信号を受け取ったとき、前記命令発行抑止信号を出力するステップ
を含み、
前記第２クロックで、前記第２命令を前記パイプライン処理実行部へ発行するステップは、前記第１クロックでの前記命令発行抑止信号の出力によって、前記第２クロックで前記第２命令を発行しない
情報処理方法。
【請求項９】
請求項８に記載の情報処理方法であって、
前記演算ＴＡＴ不整合信号を出力するステップは、
前記第１命令の演算ＴＡＴよりも前記第２命令の演算ＴＡＴの方が小さい場合、前記第１リソースの情報と前記第２リソースの情報とに基づいて、前記第１命令と前記第２命令とが同じ結果書き込みリソースを使用するか否かを判定するステップと、
前記第１命令と前記第２命令とが同じ結果書き込みリソースを使用しない場合、前記演算ＴＡＴ不整合信号を出力しないステップと
を含む
情報処理方法。
【請求項１０】
請求項６乃至９の何れか一項に記載の情報処理方法であって、
ビジーフラグ部が、前記命令発行確定信号に含まれる情報に基づいて前記第１命令が使用する第１リソースに対応したビジーフラグの点灯を制御するステップ
を更に具備し、
前記ビジーフラグの点灯を制御するステップは、
前記命令発行確定信号から前記第１命令の演算器使用サイクル数を読み取るステップと、
前記第１命令の演算器使用サイクル数からビジーフラグ点灯期間を計算するステップと、
前記ビジーフラグ点灯期間において、前記ビジーフラグを点灯させるステップと、
を備え、
前記第２命令の発行を制御するステップは、
前記ビジーフラグの状態を受け取り、前記ビジーフラグが点灯しているか否かを判定するステップと、
前記ビジーフラグが点灯していなければ、リソースチェックＯＫ信号を出力するステップと、
を更に備え、
前記第２クロックで、前記第２命令を前記パイプライン処理実行部へ発行するステップは、前記第１クロックで前記リソースチェックＯＫ信号を出力し、且つ、前記命令発行抑止信号を出力しない場合に、前記第２クロックで前記第２命令を発行する
情報処理方法。
【請求項１１】
請求項６乃至１０の何れか一項に記載の情報処理方法をコンピュータに実行させる
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パイプライン処理を実行する情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
情報処理の高速化は常に要求されており、様々な技術が開示されている。特許文献１には、ベクトル処理装置に関する技術が開示されている。このベクトル処理装置は、命令の制御を行う命令制御部と、ベクトルデータがインタリーブして割り当てられ、リソース状況により独立して命令発行制御を行う複数のベクトルパイプライン演算部と、複数のベクトルパイプライン演算部のデータ移送を行うクロスバとを有する。複数のベクトルパイプライン演算部の各々は、最大の演算処理要素数を制御要素数として求める制御要素数判定手段と、命令の発行制御を行う命令実行制御手段とを含む。命令実行制御手段は、制御要素数判定手段により求められた制御要素数の値により、次の命令の発行制御を行うことを特徴とする。このようなベクトル処理装置は、全ベクトルパイプライン演算部の命令発行タイミングを予測した制御構成とし、命令発行を行う場合の同期処理にかかるオーバーヘッドを削減し、処理の高速化を図ることができるというものである。
【０００３】
特許文献２には、長語命令方式（ＶＬＩＷ方式）を用いて並列実行性を高め、性能向上を図る情報処理装置に関する技術が開示されている。この情報処理装置は、演算の種類毎に分類されたｎフィールド（ｎは１以上）の演算フィールドを有しており、演算フィールド内の各演算命令が他の演算フィールド内の演算命令と互いに依存関係が無いように構成された長語命令からなる命令流ｍ本（ｍは１以上）の処理を行う。情報処理装置は、ｍ個の命令デコード部と、命令デコード部から発行された演算命令を受ける演算の種類毎のｎ個の命令スケジュール部と、命令スケジュール部から発行された演算命令を実行する実行部と、レジスタとを備える。命令デコード部の各々は、長語命令を格納する命令バッファと、実行中の長語命令と命令バッファ内の長語命令との間におけるレジスタのデータ依存関係およびリソース競合に基づき、実行中の長語命令内の演算命令全ての実行が完了していなくとも、命令バッファ内の長語命令の命令スケジュール部への発行を制御する手段を備えることを特徴とする。このような情報処理装置は、命令実行の並列性低下の原因となる、データ依存関係および演算器の競合を始めとしたリソース競合を回避でき、実行部が演算命令を実行していない空き時間を減少させ、高い効率で実行部を使用することができるというものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２２２３９０号公報
【特許文献２】特開平７−２８１８９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
パイプライン処理を実行する情報処理装置は、動作クロックを向上させると処理速度が向上する。しかし、この様な情報処理装置の動作クロックを向上させる方法には、以下の問題が生じてしまう。情報処理装置は命令発行制御部を備えており、命令発行制御部の制御に基づき、ビジーフラグを用いてパイプライン演算器とデータ転送パスのタイミングとを管理している。命令発行制御部は、先行命令の発行が確定したら、後続命令のためにビジーフラグの状態を更新する必要がある。しかし、ビジーフラグを更新するタイミングが、動作クロックの向上に伴い、先行命令の発行が確定したタイミングより１サイクル遅れる場合、先行命令と後続命令との間には、ビジーフラグの更新が遅れた１サイクル分の間隙が発生してしまう。つまり、動作クロックの向上に伴い、ビジーフラグを更新するタイミングが１サイクル遅れる構成をとらざるを得ないケースでは、発行が確定した先行命令と同一のリソースを使用する後続命令は、使用するリソースのビジーフラグの更新を待ってから発行条件の検証を行うことが必要であるため、パイプライン演算器の使用効率が低下してしまう問題がある。また、ビジーフラグを用いてタイミング管理を行っている命令発行制御部は、上記の問題が解決したとしても、演算ＴＡＴが大きい命令の後に演算ＴＡＴが小さい命令が連続して発行されると、データ一貫性が崩れてしまう問題がある。つまり、先行する演算ＴＡＴが大きい命令の結果格納レジスタと、連続した後続の演算ＴＡＴが小さい命令の結果格納レジスタとが同じであるケースにおいて、後続命令の演算ＴＡＴが、結果格納レジスタに格納される時間が先行命令と同時か、先行命令よりも早くなってしまうことが問題となる。
【０００６】
本発明の目的は、パイプライン演算器とレジスタとをビジーフラグを用いてタイミング管理を行う情報処理装置において、動作クロックが向上してビジーフラグの更新が遅れる場合でも、パイプライン演算器の使用効率を低下させずに処理できる情報処理装置を提供することにある。
本発明の他の目的は、演算ＴＡＴが異なる命令が入り混じって出現する命令列を実行する際においても、パイプライン演算器の使用効率を落とすことなく、データ一貫性のある命令発行制御ができる情報処理装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、パイプライン処理を実行するパイプライン処理実行部と、パイプライン処理実行部へ第１命令を発行する第１命令部と、第１命令よりも優先順位の低い第２命令をパイプライン処理実行部へ発行する第２命令部とを有する命令発行制御部とを具備する。第１命令部は、第１命令をパイプライン処理実行部へ発行し、第１命令の情報である命令発行確定信号を第２命令部へ出力する。第２命令部は、第２命令を格納する命令発行キューと、命令発行確定信号に基づいて第１命令の演算器使用サイクル数が１であるか否かを判定し、第１命令の演算器使用サイクル数が１である場合、処理サイクル数１信号を出力する直前命令処理数認識部と、処理サイクル数１信号を受け取り、命令発行抑止信号を出力しないように制御する命令発行抑止信号生成部とを備える。第２命令部は、第１クロックで命令発行抑止信号を出力しないことによって、第１クロックに連続する第２クロックで、パイプライン処理実行部へ第２命令を発行する。
【０００８】
本発明の情報処理方法は、第１命令部がパイプライン処理を実行するパイプライン処理実行部へ第１命令を発行するステップと、第１命令よりも優先順位の低い第２命令を格納する第２命令部が、第２命令の発行を制御するステップとを具備する。第１命令を発行するステップは、第１命令の情報である命令発行確定信号を第２命令部へ出力するステップを備える。第２命令の発行を制御するステップは、処理サイクル数１信号を出力する制御を行うステップと、処理サイクル数１信号を受け取り、第１クロックで命令発行抑止信号の出力を制御するステップと、第１クロックで命令発行抑止信号が出力されないことによって、第１クロックに連続する第２クロックで、第２命令をパイプライン処理実行部へ発行するステップとを備える。処理サイクル数１信号を出力する制御を行うステップは、命令発行確定信号に基づいて、第１命令の演算器使用サイクル数が１であるか否かを判定するステップと、第１命令の演算器使用サイクル数が１である場合、処理サイクル数１信号を出力するステップとを含む。
【０００９】
本発明の情報処理プログラムは、第１命令部がパイプライン処理を実行するパイプライン処理実行部へ第１命令を発行するステップと、第１命令よりも優先順位の低い第２命令を格納する第２命令部が、第２命令の発行を制御するステップとをコンピュータ実行可能に具備する。第１命令を発行するステップは、第１命令の情報である命令発行確定信号を第２命令部へ出力するステップを備える。第２命令の発行を制御するステップは、処理サイクル数１信号を出力する制御を行うステップと、処理サイクル数１信号を受け取り、第１クロックで命令発行抑止信号の出力を制御するステップと、第１クロックで命令発行抑止信号が出力されないことによって、第１クロックに連続する第２クロックで、第２命令をパイプライン処理実行部へ発行するステップとを備える。処理サイクル数１信号を出力する制御を行うステップは、命令発行確定信号に基づいて、第１命令の演算器使用サイクル数が１であるか否かを判定するステップと、第１命令の演算器使用サイクル数が１である場合、処理サイクル数１信号を出力するステップとを含む。
【発明の効果】
【００１０】
本発明の情報処理装置は、パイプライン演算器とレジスタとをビジーフラグを用いてタイミング管理を行う情報処理装置であって、動作クロックが向上してビジーフラグの更新が遅れる場合でも、パイプライン演算器の使用効率を低下させずに処理することができる。更に、本発明の情報処理装置は、演算ＴＡＴが異なる命令が入り混じって出現する命令列を実行する際においても、パイプライン演算器の使用効率を落とすことなく、データ一貫性のある命令発行制御を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の情報処理装置のパイプライン処理実行部１００を示した図である。
【図２Ａ】図２Ａは、本発明の情報処理装置の命令発行制御部２００を示した図である。
【図２Ｂ】図２Ｂは、命令部２０２の構成を示すブロック図である。
【図２Ｃ】図２Ｃは、命令部２０３の構成を示すブロック図である。
【図２Ｄ】図２Ｄは、命令部２０４の構成を示すブロック図である。
【図３】図３は、直前命令処理数認識部２１２が処理サイクル数１信号を出力する条件を示した表である。
【図４】図４は、命令発行抑止信号生成部２１４が第１命令発行抑止信号を出力する条件を示した表である。
【図５】図５は、発行条件検証部２１５が第１命令発行キュー発行ＯＫ信号を出力する条件を示した表である。
【図６】図６は、本発明の情報処理装置の実施の形態における、ハードウエア構成例を示すブロック図である
【図７】図７は、命令部２０２が命令発行抑止信号を生成する動作論理を示したフローチャートである。
【図８】図８は、本発明の情報処理装置のタイムチャートである。
【図９】図９は、本発明の直前命令ＴＡＴ比較部２１３、２２３、２３３を備えない、情報処理装置を用いたタイムチャートである。
【図１０】図１０は、本発明の情報処理装置を用いたタイムチャートである。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施の形態による情報処理装置を説明する。
【００１３】
本発明の情報処理装置は、パイプライン処理の実行に係るパイプライン処理実行部１００と、パイプライン処理実行部１００の制御を行う命令発行制御部２００とを具備する。図１は、本発明の情報処理装置のパイプライン処理実行部１００を示した図である。図１を参照すると、パイプライン処理実行部１００は、演算パイプ制御部１０１と、複数の２ＷＡＹセレクタ１０２〜１０５と、複数のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１２〜１１５と、複数の４ＷＡＹセレクタ１２２〜１２５と、演算器α１３１と、演算器β１３２とを備える。
【００１４】
演算パイプ制御部１０１は、伝送路１５１〜１５３を介して、後述する命令発行制御部２００が発行した命令を受け取る。演算パイプ制御部１０１は、命令を解読して所定のタイミングで複数の演算リソースに指示を送る。即ち、命令は演算パイプ制御部１０１の制御に基づいて実行される。
【００１５】
複数の２ＷＡＹセレクタ１０２〜１０５の各々は、演算パイプ制御部１０１の指示に従って、演算器α１３１からの出力と、演算器β１３２からの出力との何れかを選択して、複数のＲＡＭ１１２〜１１５の各々に出力する。
【００１６】
複数のＲＡＭ１１２〜１１５の各々は、リードポート１個と、ライトポート１個とを有する。各ＲＡＭ１１２〜１１５は、演算データを保持し、指示があったＲＡＭに対して読み出しおよび書き込みを行う。本発明の実施の形態では、各ＲＡＭ１１２〜１１５は、１６要素を格納できる。各ＲＡＭ１１２〜１１５において、個々の要素として振ってある記号のハイフンの左側はレジスタ番号を示し、右側は要素番号を示す。命令がＲＡＭ１１４のＲ２のデータを使用して４要素演算を行うものである場合、Ｒ２−０と、Ｒ２−１と、Ｒ２−２と、Ｒ２−３とが連続して読み出される。
【００１７】
複数の４ＷＡＹセレクタ１２２〜１２５の各々は、各ＲＡＭ１１２〜１１５から読み出された４つのデータを受け取り、演算パイプ制御部１０１の指示に従って何れかを選択する。各４ＷＡＹセレクタ１２２〜１２５は、選択したデータをオペランドデータとして演算器α１３１又は演算器β１３２に出力する。
【００１８】
演算器α１３１は、複数の４ＷＡＹセレクタ１２２〜１２５から２つのオペランドデータを受け取り、演算αをパイプライン実行する。演算器α１３１は、演算結果を２ＷＡＹセレクタ１０２〜１０５の各々に出力する。本実施の形態では、演算器α１３１のパイプライン処理ＴＡＴは３サイクルを想定する。
【００１９】
演算器β１３２は、演算器α１３１と同様に、複数の４ＷＡＹセレクタ１２２〜１２５から２つのオペランドデータを受け取る。演算器β１３２は、２つのオペランドデータに基づいて、演算βをパイプライン実行する。演算器β１３２は、演算結果を２ＷＡＹセレクタ１０２〜１０５の各々に出力する。本実施の形態では、演算器β１３２のパイプライン処理ＴＡＴは４サイクルを想定する。
【００２０】
図２Ａは、本発明の情報処理装置の命令発行制御部２００を示した図である。命令発行制御部２００は、図１に示したパイプライン処理実行部１００に対して命令を発行する。命令発行制御部２００は、命令供給部２０１と、複数の命令部２０２〜２０４と、ビジーフラグ部２０５とを備える。
【００２１】
命令供給部２０１は、図示していないメモリからロードした複数の命令列を解析する。命令供給部２０１は、解析した各命令を、複数の命令部２０２〜２０４の何れかに提供する。詳細には、命令供給部２０１は、後述する命令発行キュー２１０、命令発行キュー２２０、及び命令発行キュー２３０に存在する命令とレジスタ依存関係が無い命令を、空いている命令発行キュー２１０、命令発行キュー２２０、及び命令発行キュー２３０の何れかにセットする。また、命令供給部２０１は、複数の命令部２０２〜２０４から命令発行確定信号を受け取る。命令供給部２０１は、命令発行確定信号に基づいて、複数の命令部２０２〜２０４の各々に、新しい命令を提供する。詳細には、命令供給部２０１は、後述する発行確定命令保持部２１７、２２７、２３７から命令発行確定信号を受け取り、命令発行確定信号を受け取った命令部２０２〜２０４の命令発行キュー２１０、２２０、２３０に対して新しい命令をセットする。更に、命令供給部２０１は、各命令発行キュー２１０、２２０、２３０に命令をセットする際に、命令列順に優先度が高くなるように３つの命令発行キューの優先順位情報を設定する。
【００２２】
図２Ｂは、命令部２０２の構成を示すブロック図である。図２Ｃは、命令部２０３の構成を示すブロック図である。図２Ｄは、命令部２０４の構成を示すブロック図である。複数の命令部２０２〜２０４は、各々同様の構成であるため命令部２０２を例に構成を説明する。命令部２０２は、パイプライン処理実行部１００に命令を発行する。命令部２０２は、発行する命令の情報である命令発行確定信号を、命令供給部２０１、命令部２０３、命令部２０４及びビジーフラグ部２０５に提供する。命令部２０２は、命令発行キュー２１０と、ビジーフラグチェック部２１１と、直前命令処理数認識部２１２と、直前命令ＴＡＴ比較部２１３と、命令発行抑止信号生成部２１４と、発行条件検証部２１５と、競合調停部２１６と、発行確定命令保持部２１７とを備える。
【００２３】
命令発行キュー２１０は、命令供給部２０１から受け取った命令を一時格納する。命令発行キュー２１０は、格納している命令に基づいて、命令が使用するリソースのビジーフラグを参照するための情報と、命令の優先順位情報とを、ビジーフラグチェック部２１１に出力する。また、命令発行キュー２１０は、命令が使用するリソースを示す使用リソース情報を、直前命令処理数認識部２１２に出力する。更に、命令発行キュー２１０は、格納している命令の演算ＴＡＴ情報と、使用リソース情報とを直前命令ＴＡＴ比較部２１３に出力する。更に、命令発行キュー２１０は、格納している命令を発行確定命令保持部２１７へ出力する。
【００２４】
ビジーフラグチェック部２１１は、命令発行キュー２１０から、命令が使用するリソースのビジーフラグを参照するための情報と、優先順位情報とを受け取る。また、ビジーフラグチェック部２１１は、ビジーフラグ部２０５から、各種リソースのビジーフラグ情報を受け取る。ビジーフラグチェック部２１１は、命令が使用するリソースに対応したビジーフラグが点灯しているか否かを判定する。ビジーフラグチェック部２１１は、命令が使用するリソースのビジーフラグが点灯していなければ、リソースチェックＯＫ信号と、優先順位情報とを発行条件検証部２１５へ出力する。
【００２５】
直前命令処理数認識部２１２は、直前に発行が確定した命令（先行命令）の情報として、発行確定命令保持部２１７、２２７、２３７から命令発行確定信号を受け取る。更に、直前命令処理数認識部２１２は、後続する命令（後続命令）の情報として、命令発行キュー２１０から格納している命令の使用リソース情報を受け取る。直前命令処理数認識部２１２は、命令発行確定信号に基づいて直前に発行が確定した命令を認識し、発行が確定した命令の演算器使用サイクル数（処理要素数）が１であるか否かと、発行が確定した命令と後続する命令（命令発行キュー２１０に一時格納されている命令）とが同一リソースを使用するものであるか否かを判定する。直前命令処理数認識部２１２は、判定の結果、発行が確定した命令の演算器使用サイクル数が１であることを認識した場合、処理サイクル数１信号を命令発行抑止信号生成部２１４に出力する。また、直前命令処理数認識部２１２は、発行が確定した命令の演算器使用サイクル数が１でない場合でも、発行が確定した命令と後続する命令とが同一リソースを使用しない場合には、処理サイクル数１信号を命令発行抑止信号生成部２１４に出力する。図３は、直前命令処理数認識部２１２が処理サイクル数１信号を出力する条件を示した表である。尚、直前命令処理数認識部２１２は、命令発行確定信号を受け取らない場合にも、処理サイクル数１信号を出力する。
【００２６】
直前命令ＴＡＴ比較部２１３は、直前に発行が確定した命令（先行命令）の情報として、発行確定命令保持部２１７、２２７、２３７から命令発行確定信号を受け取る。更に、直前命令ＴＡＴ比較部２１３は、後続する命令（後続命令）の情報として、命令発行キュー２１０から格納している命令の演算ＴＡＴ情報と、使用リソース情報とを受け取る。直前命令ＴＡＴ比較部２１３は、直前に発行が確定した命令の演算ＴＡＴと、命令発行キュー２１０から受け取った命令の演算ＴＡＴとを比較する。直前命令ＴＡＴ比較部２１３は、比較の結果、直前に発行が確定した命令の演算ＴＡＴよりも、命令発行キュー２１０から受け取った命令の演算ＴＡＴの方が小さい場合は、命令発行抑止信号生成部２１４に演算ＴＡＴ不整合信号を出力する。但し、直前に発行が確定した命令と、命令発行キュー２１０から受け取った命令とが、同一ＲＡＭライトポート（同じ結果書き込みリソース）を使用しないと判定した場合は、直前命令ＴＡＴ比較部２１３は演算ＴＡＴ不整合信号を出力しない。尚、直前命令ＴＡＴ比較部２１３は、命令発行確定信号を受け取らない場合にも、演算ＴＡＴ不整合信号を命令発行抑止信号生成部２１４に出力しない。
【００２７】
命令発行抑止信号生成部２１４は、直前命令処理数認識部２１２から処理サイクル数１信号を受け取る。更に、命令発行抑止信号生成部２１４は、直前命令ＴＡＴ比較部２１３から演算ＴＡＴ不整合信号を受け取る。そして、命令発行抑止信号生成部２１４は、処理サイクル数１信号が無効であるとき（処理サイクル数１信号を受け取っていないとき）、又は、演算ＴＡＴ不整合信号が有効であるとき（演算ＴＡＴ不整合信号を受け取ったとき）、第１命令発行抑止信号を発行条件検証部２１５に出力する。図４は、命令発行抑止信号生成部２１４が第１命令発行抑止信号を出力する条件を示した表である。
【００２８】
発行条件検証部２１５は、ビジーフラッグチェック部２１１から、リソースチェックＯＫ信号と優先順位情報とを受け取る。更に、発行条件検証部２１５は、命令発行抑止信号生成部２１４から、第１命令発行抑止信号を受け取る。発行条件検証部２１５は、リソースチェックＯＫ信号が有効であり（リソースチェック信号を受け取っているとき）、且つ、第１命令発行抑止信号が無効である（第１命令抑止信号を受け取っていない）場合に、第１命令発行キュー発行ＯＫ信号と優先順位情報とを、競合調停部２１６、命令部２０３（競合調停部２２６）、及び命令部２０４（競合調停部２３６）に出力する。図５は、発行条件検証部２１５が第１命令発行キュー発行ＯＫ信号を出力する条件を示した表である。
【００２９】
競合調停部２１６は、発行条件検証部２１５から、第１命令発行キュー発行ＯＫ信号と優先順位情報を受け取る。また、競合調停部２１６は、命令部２０３の発行条件検証部２２５から、第２命令発行キュー発行ＯＫ信号と優先順位情報とを受け取る。更に、競合調停部２１６は、命令部２０４の発行条件検証部２３５から、第３命令発行キュー発行ＯＫ信号と優先順位情報を受け取る。競合調停部２１６は、第１命令発行キュー発行ＯＫ信号が有効であり（第１命令発行キューＯＫ信号を受け取っているとき）、且つ、第１命令発行キューよりも高い優先順位の第２命令発行キュー発行ＯＫ信号、又は、第３命令発行キュー発行ＯＫ信号が無い場合は、発行確定信号を発行確定命令保持部２１７に出力する。
【００３０】
発行確定命令保持部２１７は、命令発行キュー２１０から命令を受け取る。更に、発行確定命令保持部２１７は、競合調停部２１６から発行確定信号を受け取る。発行確定命令保持部２１７は、命令と発行確定信号とをレジスタにて１サイクル間保持する。そして、発行確定命令保持部２１７は、保持した発行確定信号が有効である場合、レジスタに保持した命令発行確定信号を、命令供給部２０１、直前命令処理数認識部２１２、２２２、２３２、直前命令ＴＡＴ比較部２１３、２２２、２３３、及びビジーフラグ部２０５（ビジーフラグセット条件生成部２４０）に出力する。
【００３１】
ビジーフラグ部２０５は、ビジーフラグセット条件生成部２４０と、リソースビジーフラグ管理部２５０とを備える。
【００３２】
ビジーフラグセット条件生成部２４０は、発行確定命令保持部２１７、２２７、２３７から命令発行確定信号を受け取る。ビジーフラグセット条件生成部２４０は、命令発行確定信号に基づいて、発行が確定した命令の演算器使用サイクル数を認識する。ビジーフラグセット条件生成部２４０は、演算器使用サイクル数からビジーフラグ点灯期間を計算して、発行が確定した命令が使用するリソースに対応したビジーフラグ点灯指示を、リソースビジーフラグ管理部２５０に出力する。尚、命令発行キュー２１０、２２０、２３０の３つに格納された命令が、同時に発行確定する場合もある。その場合、ビジーフラグセット条件生成部２４０は、発行が確定した全ての命令が使用するリソースのビジーフラグに対して、ビジーフラグ点灯指示を出力する。本実施の形態では、ビジーフラグセット条件生成部２４０は、「処理サイクル数−２」という計算式でビジーフラグ点灯期間を計算する。この計算式は、演算器などのリソースが効率的に利用できるよう考慮したものである。計算の結果が０以下となった場合はビジーフラグ点灯の必要が無いので、ビジーフラグセット条件生成部２４０はビジーフラグ点灯指示を出力しない。
【００３３】
リソースビジーフラグ管理部２５０は、制御に必要な複数の演算リソースの各々に対応した、複数のビジーフラグを備える。複数のビジーフラグは、複数のレジスタから構成される。リソースビジーフラグ管理部２５０は、ビジーフラグセット条件生成部２４０からビジーフラグ点灯指示を受け取る。リソースビジーフラグ管理部２５０は、指示のあったビジーフラグを指定された期間点灯させる。更に、リソースビジーフラグ管理部２５０は、ビジーフラグの状態値（ビジーフラグ情報）を、ビジーフラッグチェック部２１１、２２１、２３１に出力する。
【００３４】
尚、図１の構成の図には、本来主記憶装置からのロードパスおよびストアパスが存在するのが一般的ではあるが、これらのパスは当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
【００３５】
本発明の実施の形態による情報処理装置は、コンピュータを用いて実現可能である。図６は、本発明の情報処理装置の実施の形態における、ハードウエア構成例を示すブロック図である。図６を参照すると、本発明の情報処理装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１と、記憶装置２と、入力装置３と、出力装置４と、各装置を接続するバス５とを備えるコンピュータシステムで構成される。
【００３６】
ＣＰＵ１は、記憶装置２に格納されている本発明の情報処理装置に係る演算処理及び制御処理を行う。記憶装置２は、ハードディスクやメモリなど、情報の記録を行う装置である。記憶装置２は、ＣＤ−ＲＯＭやＤＶＤ等のコンピュータ読み取り可能な記憶媒体から読み取られたプログラム、入力装置３から入力された信号やプログラム、及びＣＰＵ１の処理結果を格納する。入力装置３は、マウス、キーボード、マイクロフォンなど、ユーザがコマンド及び信号を入力することが出来る装置である。出力装置４は、ディスプレイ、スピーカなど、ユーザに出力結果を認識させる装置である。尚、本発明はハードウエア構成例と示したものに限定されず、各部はハードウエアとソフトウエアとを単独又は組み合わせて実現することが出来る。
【００３７】
本発明の情報処理装置である、パイプライン処理実行部１００と命令発行制御部２００の処理動作を説明する。まず、命令発行制御部２００における、命令発行抑止信号の生成の処理動作について説明をする。図７は、命令部２０２が命令発行抑止信号を生成する処理動作を示したフローチャートである。
【００３８】
ステップＳ０１：
命令供給部２０１は、メモリからロードした命令列を解析する。命令供給部２０１は、解析した命令を、命令発行キュー２１０にセットする。命令発行キュー２１０は、命令供給部２０１から受け取った命令を一時格納する。命令発行キュー２１０は、命令が使用するリソースを示す使用リソース情報を、直前命令処理数認識部２１２に出力する。更に、命令発行キュー２１０は、格納している命令の演算ＴＡＴ情報と、使用リソース情報とを直前命令ＴＡＴ比較部２１３に出力する。
【００３９】
ステップＳ０２：
直前命令処理数認識部２１２は、直前に発行が確定した命令（先行命令）の情報として、発行確定命令保持部２１７、２２７、２３７から命令発行確定信号を受け取る。更に、直前命令処理数認識部２１２は、後続する命令（後続命令）の情報として、命令発行キュー２１０から格納している命令の使用リソース情報を受け取る。直前命令処理数認識部２１２は、命令発行確定信号に基づいて直前に発行が確定した命令を認識し、発行が確定した命令の演算器使用サイクル数が１であるか否かを判定する。
【００４０】
ステップＳ０３：
ステップＳ０２において、演算器使用サイクル数が１でない場合（ＮＯ）、直前命令処理数認識部２１２は、先行命令と後続命令とが使用するリソースが同じリソースを使用するものであるか否かを判定する。直前命令処理数認識部２１２は、先行命令と後続命令とが同じリソースを使用する場合（ＹＥＳ）、処理サイクル数１信号を命令発行抑止信号生成部２１４に出力しない。
【００４１】
ステップＳ０４：
命令発行抑止信号生成部２１４は、第１命令発行抑止信号を発行条件検証部２１５へ出力する。
【００４２】
ステップＳ０５：
直前命令処理数認識部２１２は、演算器使用サイクル数が１の場合（ステップＳ０２のＹＥＳ）、処理サイクル数１信号を命令発行抑止信号生成部２１４に出力する。或いは、直前命令処理数認識部２１２は、演算器使用サイクル数が１でないが（ステップＳ０２のＮＯ）、先行命令と後続命令とが同じリソースを使用しない場合（ステップＳ０３のＮＯ）、処理サイクル数１信号を命令発行抑止信号生成部２１４へ出力する。つまり、命令発行抑止信号生成部２１４は、有効な処理サイクル数１信号を受け取っている。
【００４３】
直前命令ＴＡＴ比較部２１３は、先行命令の情報として、発行確定命令保持部２１７、２２７、２３７から命令発行確定信号を受け取る。更に、直前命令ＴＡＴ比較部２１３は、後続命令の情報として、命令発行キュー２１０から格納している命令の演算ＴＡＴ情報と、使用リソース情報とを受け取る。直前命令ＴＡＴ比較部２１３は、先行命令の演算ＴＡＴと、命令発行キュー２１０から受け取った後続命令の演算ＴＡＴとを比較する。
【００４４】
ステップＳ０６：
ステップＳ０５において、直前命令ＴＡＴ比較部２１３は、先行命令の演算ＴＡＴよりも、後続命令の演算ＴＡＴの方が小さい場合（ステップＳ０５のＹＥＳ）、先行命令と後続命令とが、同一ＲＡＭライトポート（同じ結果書き込みリソース）を使用するか否かを判定する。先行命令と後続命令とが、同一ＲＡＭライトポート（同じ結果書き込みリソース）を使用する場合、直前命令ＴＡＴ比較部２１３は有効な演算ＴＡＴ不整合信号を出力する。以降は、ステップＳ０４へ進む。
【００４５】
ステップＳ０７：
ステップＳ０５において、直前命令ＴＡＴ比較部２１３は、先行命令の演算ＴＡＴよりも、後続命令の演算ＴＡＴの方が大きい場合（ステップＳ０５のＮＯ）、命令発行抑止信号生成部２１４に、演算ＴＡＴ不整合信号を出力しない。或いは、直前命令ＴＡＴ比較部２１３は、先行命令の演算ＴＡＴよりも、後続命令の演算ＴＡＴの方が小さい場合で（ステップＳ０５のＹＥＳ）、先行命令と後続命令とが同一ＲＡＭライトポート（同じ結果書き込みリソース）を使用しない場合（ステップＳ０６のＮＯ）、演算ＴＡＴ不整合信号を出力しない。つまり、命令発行抑止信号生成部２１４は、有効な処理サイクル数１信号を受け取っており、且つ、演算ＴＡＴ不整合信号を受け取っていないため、第１命令発行抑止信号を発行条件検証部２１５に出力しない。
【００４６】
図８は、本発明の情報処理装置のタイムチャートである。図８を参照して、本発明の情報処理装置が演算αと演算βとを実行する動作を説明する。
【００４７】
命令供給部２０１は、以下の命令「１」〜「３」をメモリから取得する。このとき、直前に発行が確定した命令は存在せず、全てのビジーフラグは点灯していない。命令供給２０１は、命令「１」を命令発行キュー２１０に提供し、命令「２」を命令発行キュー２２０に提供し、命令「３」を命令発行キュー２３０に提供する。
命令「１」  演算α  Ｒ０  ←  Ｒ１，Ｒ２  要素数４
命令「２」  演算α  Ｒ４  ←  Ｒ５，Ｒ６  要素数４
命令「３」  演算β  Ｒ８  ←  Ｒ９，Ｒ１０  要素数４
【００４８】
命令「１」〜「３」の特徴は、３つの命令が全てＲＡＭ１１２に書き込まれるため、ＲＡＭ１１２のライトポートリソースを使用することと、全て要素数４であるため、１つの命令がＲＡＭ１１２のライトポートと演算器α１３１又は演算器β１３２を４サイクル連続して使用することである。
【００４９】
クロック１：
前述したように、リソースビジーフラグ管理部２５０は、全てのビジーフラグを点灯していない。ビジーフラグチェック部２１１は、ビジーフラグが点灯していないため、リソースチェックＯＫ信号と、優先順位情報とを発行条件検証部２１５へ出力する。ビジーフラグチェック部２２１、２３１も同様に動作する。
【００５０】
直前命令処理数認識部２１２は、直前に発行が確定した命令がない、即ち、発行確定命令保持部２１７、２２７、２３７から命令発行確定信号を受け取とらないため、処理サイクル数１信号を命令発行抑止信号生成部２１４に出力する。直前命令処理数認識部２２２、２３２も同様に動作する。
【００５１】
直前命令ＴＡＴ比較部２１３は、発行確定命令保持部２１７、２２７、２３７から、命令発行確定信号を受け取らないため、演算ＴＡＴ不整合信号を命令発行抑止信号生成部２１４に出力しない。直前命令ＴＡＴ比較部２２３、２３３も同様に動作する。
【００５２】
命令発行抑止信号生成部２１４は、処理サイクル数１信号が有効で、演算ＴＡＴ不整合信号が無効であるため、第１命令発行抑止信号を発行条件検証部２１５に出力しない。同様に、命令発行抑止信号生成部２２４も第２命令発行抑止信号を出力せず、命令発行抑止信号生成部２３４も第３命令発行抑止信号を出力しない。
【００５３】
発行条件検証部２１５は、ビジーフラッグチェック部２１１からリソースチェックＯＫ信号と優先順位情報とを受け取り、命令発行抑止信号生成部２１４から第１命令発行抑止信号を受け取らない。従って、発行条件検証部２１５は、第１命令発行キュー発行ＯＫ信号と優先順位情報とを、競合調停部２１６、２２６、２３６に出力する。発行条件検証部２２５、２３５も同様に動作する。
【００５４】
競合調停部２１６は、発行条件検証部２１５から第１命令発行キュー発行ＯＫ信号と優先順位情報とを受け取る。また、競合調停部２１６は、発行条件検証部２２５から第２命令発行キュー発行ＯＫ信号と優先順位情報とを受け取る。更に、競合調停部２１６は、発行条件検証部２３５から第３命令発行キュー発行ＯＫ信号と優先順位情報とを受け取る。３つの命令ともＲＡＭ１１２のライトポートリソースを使用するため、競合調停部２１６、２２６、２３６間で競合調停を行い、命令発行キュー２１０の優先順位が一番高いことから、競合調停部２１６は発行確定信号を発行確定命令保持部２１７に出力する。
【００５５】
競合調停部２２６は、命令発行キュー２２０の優先順位が命令発行キュー２１０の優先順位より低いため発行確定信号を発行確定命令保持部２２７に出力しない。同様に、競合調停部２３６も、命令発行キュー２３０の優先順位が命令発行キュー２１０の優先順位より低いため発行確定信号を発行確定命令保持部２３７に出力しない。
【００５６】
クロック２：
発行確定命令保持部２１７は、命令発行キュー２１０から命令を受け取り、競合調停部２１６から発行確定信号を受け取る。発行確定命令保持部２１７は、命令と発行確定信号とを、レジスタにて１サイクル間保持する。尚、この状態は、タイムチャートの命令「１」演算α発行確定において“Ｇｏ”として示されている。
【００５７】
直前命令処理数認識部２２２は、発行確定命令保持部２１７から命令発行確定信号を受け取る。そして、直前命令処理数認識部２２２は、直前に発行が確定した命令「１」の演算器使用サイクル数が１でないことを識別し、処理サイクル数１信号を命令発行抑止信号２２４に出力しない。
【００５８】
命令発行抑止信号生成部２２４は、直前命令処理数認識部２２２から処理サイクル数１信号を受け取らないため、第２命令発行抑止信号を発行条件検証部２２５に出力する。この状態は、タイムチャートの第２発行抑止信号において“１”として示されている。
【００５９】
命令発行抑止信号生成部２３４も同様で、直前命令処理数認識部２３２から処理サイクル数１信号を受け取とらないため、第３命令発行抑止信号を発行条件検証部２３５に出力する。この状態は、タイムチャートの第３発行抑止信号において“１”として示されている。
【００６０】
リソースビジーフラグ管理部２５０は、ビジーフラグの状態値として全て“０”を出力している。従って、ビジーフラグチェック部２２１と、ビジーフラグチェック部２３１とは、リソースチェックＯＫ信号を出力する。しかし、第２命令発行抑止信号が“１”と有効であるため、発行条件検証部２２５は、第２命令発行キュー発行ＯＫ信号を出力しない。同様に、第３命令発行抑止信号が“１”と有効であるため、発行条件検証部２３５は、第３命令発行キュー発行ＯＫ信号を出力しない。
【００６１】
ビジーフラグセット条件生成部２４０は、発行確定命令保持部２１７から命令発行確定信号を受け取り、命令「１」が使用する演算器α１３１のビジーフラグ点灯期間とＲＡＭ１１２のライトポートのビジーフラグ点灯期間を計算して、ビジーフラグ点灯指示を出力する。この場合、ビジーフラグセット条件生成部２４０は、命令「１」の演算器使用サイクル数が４なので、４−２＝２の計算式により点灯期間２を算出し、ビジーフラグ点灯指示として出力する。その他に、ビジーフラグセット条件生成部２４０は、ＲＡＭ１１３とＲＡＭ１１４とのリードポートのビジーフラグ点灯指示も出力する。
【００６２】
ここで、パイプライン処理実行部１００では、演算パイプ制御部１０１は、伝送路１５１を介して、発行確定命令保持部２１７より発行された命令「１」を受け取る。演算パイプ制御部１０１は、ＲＡＭ１１３とＲＡＭ１１４に対して、Ｒ１とＲ２を４サイクル連続して読み出すよう指示を送ると共に、４ＷＡＹセレクタ１２２、１２３にＲ１とＲ２を４サイクル選択するようセレクト信号を出力する。
【００６３】
クロック３：
リソースビジーフラグ管理部２５０は、ビジーフラグセット条件生成部２４０からビジーフラグ点灯指示を受け、指示のあった演算器α１３１のビジーフラグと、ＲＡＭ１１２のライトポートビジーフラグと、ＲＡＭ１１３のリードポートビジーフラグと、ＲＡＭ１１４のリードポートビジーフラグとを２サイクル（クロック４まで）の間点灯する。この状態は、タイムチャートの演算器αビジーフラグとＲＡＭ１１２のライトポートビジーフラグにおいて“１”として示されている。
【００６４】
演算器α１３１は、４ＷＡＹセレクタ１２２と４ＷＡＹセレクタ１２３とを介して、Ｒ１−０とＲ２−０を受け取る。
【００６５】
クロック４：
演算器α１３１は、パイプライン処理で演算αを行う。
【００６６】
クロック５：
演算器α１３１のビジーフラグとＲＡＭ１１２のライトポートのビジーフラグが共に“０”となることから、ビジーフラグチェック部２２１は、リソースチェックＯＫ信号を２２５に出力する。直前に発行が確定した命令は存在しないため、命令発行抑止信号生成部２２４は第２命令発行抑止信号を、発行条件検証部２２５に出力しない。
【００６７】
発行条件検証部２２５は、リソースチェックＯＫ信号と、優先順位情報とを受け取り、第２命令発行抑止信号を受け取とらない。発行条件検証部２２５は、第２命令発行キュー発行ＯＫ信号と優先順位情報とを、競合調停部２１６、２２６、２３６に出力する。
【００６８】
競合調停部２２６は、第２命令発行キュー発行ＯＫ信号と優先順位情報とを受け取る。クロック５の時点では、命令発行キュー２２０の優先順位が一番高いことから、競合調停部２２６は、発行確定信号を発行確定命令保持部２２７に出力する。
【００６９】
演算器α１３１は、２ＷＡＹセレクタ１０２に演算結果を出力する。２ＷＡＹセレクタ１０２は、演算パイプ１０１から指示を受け、演算器α１３１の出力データを選択し、ＲＡＭ１１２に出力する。
【００７０】
クロック６：
発行確定命令保持部２２７は、発行命令キュー２２０から命令を受け取り、競合調停部２２６から発行確定信号を受け取る。発行確定命令保持部２２７は、発行確定信号と命令とをレジスタにて１サイクル間保持する。この状態は、タイムチャートの命令「２」演算α発行確定において“Ｇｏ”として示されている。
【００７１】
ＲＡＭ１１２は、２ＷＡＹセレクタ１０２から受けたデータを、クロック６以降でＲ０−０、Ｒ０−１、Ｒ０−２、Ｒ０−３と順番に書き込む。
【００７２】
尚、命令「１」が処理する要素は、連続サイクル毎にＡ０、Ａ１、Ａ２、Ａ３と名付けてタイムチャートに示されている。同様に、命令「２」が処理する要素は連続サイクル毎にＢ０、Ｂ１、Ｂ２、Ｂ３と名付け、命令「３」が処理する要素は連続サイクル毎にＣ０、Ｃ１、Ｃ２、Ｃ３と名付けてタイムチャートに示されている。
【００７３】
クロック７以降の説明は冗長となるため省略するが、クロック１０において、発行確定命令保持部２３７の命令「３」が発行確定となる。この状態は、タイムチャートの命令「３」演算β発行確定において“Ｇｏ”として示されている。
【００７４】
本発明の情報処理装置は、図８のタイムチャートにおいて、演算器αパイプ１に着目するとＡ０、Ａ１、Ａ２、Ａ３、Ｂ０、Ｂ１、Ｂ２、Ｂ３と連続して隙間なく効率的に有効なデータが処理されていることが特徴的である。
【００７５】
次に、演算器使用サイクル数が１であるケースにおいて、本発明の情報処理装置が演算αと演算βとを実行する処理動作を説明する。ここで比較のために、まず本発明の直前命令処理数認識部２１２、２２２、２３２、及び、直前命令ＴＡＴ比較部２１３、２２３、２３３を備えない、情報処理装置を用いた場合を説明する。図９は、本発明の直前命令ＴＡＴ比較部２１３、２２３、２３３を備えない、情報処理装置を用いたタイムチャートである。
【００７６】
命令供給部２０１は、以下の命令「４」〜「６」をメモリから取得する。このとき、直前に発行が確定した命令は存在せず、全てのビジーフラグは点灯していない。命令供給２０１は、命令「４」を命令発行キュー２１０に提供し、命令「５」を命令発行キュー２２０に提供し、命令「６」を命令発行キュー２３０に提供する。
命令「４」  演算α  Ｒ０  ←  Ｒ１，Ｒ２  要素数１
命令「５」  演算α  Ｒ４  ←  Ｒ５，Ｒ６  要素数１
命令「６」  演算β  Ｒ８  ←  Ｒ９，Ｒ１０  要素数１
【００７７】
命令「４」〜「６」の特徴は、３つの命令が全てＲＡＭ１１２に書き込まれるため、ＲＡＭ１１２のライトポートリソースを使用することと、全て要素数１であるため、１つの命令がＲＡＭ１１２のライトポートと演算器α１３１又は演算器β１３２を１サイクル使用することである。冗長な説明を避けるため、特徴となる状態の変化に着目して説明する。
【００７８】
クロック２：
発行確定命令保持部２１７は、命令発行キュー２１０から命令を受け取り、競合調停部２１６から発行確定信号を受け取る。発行確定命令保持部２１７は、発行確定信号と命令とをレジスタにて１サイクル間保持する。この状態は、タイムチャートの命令「４」演算α発行確定において“Ｇｏ”として示されている。
【００７９】
命令発行抑止信号生成部２２４は、発行確定命令保持部２１７から命令「４」の命令発行確定信号を受け取る。尚、図９の情報処理装置は、直前命令処理数認識部２２２及び直前命令ＴＡＴ比較部２２３を備えていないため、命令発行抑止信号生成部２２４が命令発行確定信号を受け取るものとする。命令発行抑止信号生成部２２４は、命令「４」と命令発行キュー２２０の命令「５」とが同一リソースを使用することを認識し、第２命令発行抑止信号を発行条件検証部２２５に出力する。この状態は、タイムチャートの第２命令発行抑止信号において“１”として示されている。
【００８０】
命令発行抑止信号生成部２３４も同様に、発行確定命令保持部２１７から命令「４」の命令発行確定信号を受け取る。命令発行抑止信号生成部２３４は、命令「４」と命令発行キュー２３０の命令「６」が同一リソースを使用することを認識し、第３命令発行抑止信号を発行条件検証部２３５に出力する。この状態は、タイムチャートの第３命令発行抑止信号において“１”として示されている。
【００８１】
ビジーフラグセット条件生成部２４０は、発行確定命令保持部２１７から命令発行確定信号を受け取る。ビジーフラグセット条件生成部２４０は、命令「４」が使用する演算器α１３１のビジーフラグ点灯期間と、ＲＡＭ１１２のライトポートのビジーフラグ点灯期間とを計算する。ビジーフラグセット条件生成部２４０は、命令「４」の演算器使用サイクル数が１であるため、１−２＝−１の計算式により算出するが、計算結果が０以下となるためビジーフラグ点灯指示を出力しない。
【００８２】
クロック３：
リソースビジーフラグ管理部２５０は、ビジーフラグセット条件生成部２４０から有効なビジーフラグ点灯指示を受け取らないため、ビジーフラグの点灯を行わない。
【００８３】
演算パイプ制御部１０１は、発行された命令を受け、各演算パイプラインを制御する。そのとき、命令の処理要素数が１なので、ＲＡＭ１１３とＲＡＭ１１４からのデータの読み出しは１サイクルのみとなる。
【００８４】
クロック４：
第２命令発行抑止信号、及び第３命令発行抑止信号が“０”となるため、優先順位の高い命令発行キュー２２０の命令「５」の発行が確定する。この状態は、タイムチャートの命令「５」演算α発行確定において“Ｇｏ”として示されている。
【００８５】
図９のタイムチャートにおいて、演算器αパイプ１に着目するとＡ０を処理した後、１サイクル空いてＢ０を処理しており、演算器αの使用効率が下がってしまっていることが特徴的である。
【００８６】
次に、直前命令処理数認識部２１２、２２２、２３２と、直前命令ＴＡＴ比較部２１３、２２３、２３３とを備える本発明の情報処理装置が、演算器使用サイクル数が１であるケースにおいて、演算αと演算βとを実行する処理動作を説明する。図１０は、本発明の情報処理装置を用いたタイムチャートである。
【００８７】
比較のため、図９の説明で使用した命令列と同じ命令列を使用する。命令供給部２０１は、以下の命令「７」〜「９」をメモリから取得する。このとき、直前に発行が確定した命令は存在せず、全てのビジーフラグは点灯していない。命令供給２０１は、命令「７」を命令発行キュー２１０に提供し、命令「８」を命令発行キュー２２０に提供し、命令「９」を命令発行キュー２３０に提供する。
命令「７」  演算α  Ｒ０  ←  Ｒ１，Ｒ２  要素数１
命令「８」  演算α  Ｒ４  ←  Ｒ５，Ｒ６  要素数１
命令「９」  演算β  Ｒ８  ←  Ｒ９，Ｒ１０  要素数１
【００８８】
この命令列の特徴は、３つの命令が全てＲＡＭ１１２に書き込まれることからＲＡＭ１１２のライトポートリソースを使用することと、全て要素数１であることから、１つの命令がＲＡＭ１１２のライトポートと演算器α１３１又は演算器β１３２を１サイクル使用することである。冗長な説明を避けるため、特徴となる状態の変化に着目して説明する。
【００８９】
クロック２：
発行確定命令保持部２１７は、命令発行キュー２１０から命令を受け取り、競合調停部２１６から発行確定信号を受け取る。発行確定命令保持部２１７は、発行確定信号と命令をレジスタにて１サイクル間保持する。この状態は、タイムチャートの命令「７」演算α発行確定において“Ｇｏ”として示されている。
【００９０】
直前命令処理数認識部２２２は、発行確定命令保持部２１７から命令発行確定信号を受け取る。直前命令処理数認識部２２２は、先行命令の命令「７」と後続命令の命令「８」とが同一リソースを使用し、命令「７」の演算器使用サイクル数が１であることを識別する。従って、直前命令処理数認識部２２２は、処理サイクル数１信号を命令発行検証部２２４に出力する。
【００９１】
直前命令ＴＡＴ比較部２２３は、発行確定命令保持部２１７、２２７、２３７から、命令発行確定信号を受け取る。更に、直前命令ＴＡＴ比較部２２３は、先行命令の命令「７」の演算ＴＡＴと、命令発行キュー２２０に格納されている命令「８」の演算ＴＡＴを比較する。直前命令ＴＡＴ比較部２２３は、先行命令と後続命令とが同一ＲＡＭライトポートを使用してはいるが、先行命令の演算ＴＡＴと後続命令の演算ＴＡＴとが同じであるため、演算ＴＡＴ不整合信号を命令発行抑止信号生成部２２４に出力しない。
【００９２】
命令発行抑止信号生成部２２４は、直前命令処理数認識部２２２から処理サイクル数１信号を受け取り、直前命令ＴＡＴ比較部２２３から演算ＴＡＴ不整合信号を受け取らない。従って、命令発行抑止信号生成部２２４は、第２命令発行抑止信号を発行条件検証部２２５に出力しない。
【００９３】
発行条件検証部２２５は、ビジーフラグチェック部２２１からリソースチェックＯＫ信号と優先順位情報を受け取り、命令発行抑止信号生成部２２４から命令発行抑止信号を受け取らない。従って、発行条件検証部２２５は、第２命令発行キュー発行ＯＫ信号と優先順位情報とを、競合調停部２１６、２２６、２３６に出力する。
【００９４】
競合調停部２２６は、発行条件検証部２２５から第２命令発行キュー発行ＯＫ信号と優先順位情報とを受け取る。更に、競合調停部２２６は、発行条件検証部２３５から第３命令発行キュー発行ＯＫ信号と優先順位情報とを受け取る。競合調停部２２６は、命令発行キュー２２０の優先順位よりも高い命令を格納する命令発行キューが無いことから、発行確定信号を発行確定命令保持部２２７に出力する。
【００９５】
クロック３：
発行確定命令保持部２２７は、命令発行キュー２２０から命令「８」を受け取り、競合調停部２２６から発行確定信号を受け取り、命令「８」と発行確定信号とをレジスタにて１サイクル間保持する。この状態は、タイムチャートの命令「８」演算α発行確定において“Ｇｏ”として示されている。
【００９６】
ビジーフラグセット条件生成部２４０は、発行確定命令保持部２２７から命令発行確定信号を受け取る。ビジーフラグセット条件生成部２４０は、命令「８」が使用する演算器α１３１のビジーフラグ点灯期間とＲＡＭ１１２のライトポートのビジーフラグ点灯期間とを計算する。ビジーフラグセット条件生成部２４０は、命令「８」の演算器使用サイクル数が１なので１−２＝−１の計算式により算出し、計算結果が０以下となるためビジーフラグ点灯指示を出力しない。
【００９７】
リソースビジーフラグ管理部２５０は、ビジーフラグセット条件生成部２４０から有効なビジーフラグ点灯指示を受け取らないため、ビジーフラグの点灯を行わない。
【００９８】
直前命令処理数認識部２３２は、発行確定命令保持部２２７から命令発行確定信号を受け取る。直前命令処理数認識部２３２は、先行命令の命令「８」と後続命令の「９」とが同一リソースを使用していないが、命令「８」の演算器使用サイクル数が１であることを識別し、処理サイクル数１信号を命令発行抑止信号生成部２３４に出力する。
【００９９】
直前命令ＴＡＴ比較部２３３は、発行確定命令保持部２１７、２２７、２３７から命令発行確定信号を受け取る。直前命令ＴＡＴ比較部２３３は、先行命令の命令「８」の演算ＴＡＴと、命令発行キュー２３０に格納されている命令「９」の演算ＴＡＴを比較する。直前命令ＴＡＴ比較部２３３は、先行命令の命令「８」と後続命令の命令「９」とが同一ＲＡＭライトポートを使用してはいるが、命令「８」の演算ＴＡＴと命令「９」の演算ＴＡＴが同じであるため、演算ＴＡＴ不整合信号を命令発行抑止信号生成部２３４に出力しない。
【０１００】
命令発行抑止信号生成部２３４は、直前命令処理数認識部２３２から処理サイクル数１信号を受け取り、直前命令ＴＡＴ比較部２３３から演算ＴＡＴ不整合信号を受け取らないため、第３命令発行抑止信号を発行条件検証部２３５に出力しない。
【０１０１】
発行条件検証部２３５は、ビジーフラグチェック部２３１からリソースチェックＯＫ信号と優先順位情報とを受け取り、命令発行抑止信号生成部２３４から第３命令発行抑止信号を受け取らないため、第３命令発行キュー発行ＯＫ信号と優先順位情報とを競合調停部２１６、２２６、２３６に出力する。
【０１０２】
競合調停部２３６は、発行条件検証部２３５から第３命令発行キュー発行ＯＫ信号と優先順位情報とを受け取る。競合調停部２３６は、命令発行キュー２３０の優先順位よりも高い命令を格納する命令発行キューが無いことから発行確定信号を発行確定命令保持部２３７に出力する。
【０１０３】
クロック４：
発行確定命令保持部２３７は、命令発行キュー２３０から命令を受け取り、競合調停部２３６から発行確定信号を受け取る。発行確定命令保持部２３７は、命令と発行確定信号とをレジスタにて１サイクル間保持する。この状態は、タイムチャートの命令「９」演算β発行確定において“Ｇｏ”として示されている。
【０１０４】
図１０のタイムチャートにおいて、演算器αパイプ１に着目するとＡ０を処理した後、間隙を空けずにＢ０を処理しており、本発明の命令発行制御２００によって演算器α１３１の使用効率が下がらずに効率よく命令を処理していることが特徴的である。
【０１０５】
本発明の情報処理装置は、基本的構成は上記の通りであるが、本発明を適用するに当たって要素数に制約は無い。また、パイプライン処理実行部１００は、演算器α１３１が１つだけの例を挙げたが、複数の演算器α１３１を持つ構成で、指定された要素を分担し処理サイクルを短縮する構成でもよい。
【０１０６】
以上説明したように、本発明の情報処理装置は以下の効果を奏する。第１の効果は、パイプライン演算器とレジスタとをビジーフラグを用いてタイミング管理を行う命令発行部においては、命令発行が確定したら後続の命令が参照するビジーフラグの状態を更新する必要があるが、動作クロックの向上に伴いビジーフラグを更新するタイミングが１サイクル遅れざるを得ない場合においても、パイプライン演算器の使用効率を低下させずに処理を可能としたことである。その理由は、直前に発行が確定した命令の処理要素数が１であることを認識して、後続命令が同一リソースを使う命令であったとしても命令発行抑止信号を有効にしないよう制御することによる。第２の効果は、演算ＴＡＴが異なる命令が入り混じって出現する命令列を実行する際においても、第１の効果で挙げたパイプライン演算器の使用効率を落とすことなくデータ一貫性のある命令発行制御を可能としたことである。その理由は、直前に発行が確定した命令で同一ＲＡＭライトポートを使用した命令の演算ＴＡＴと、後続命令の演算ＴＡＴを比較して、直前に発行された命令の演算ＴＡＴよりも後続命令の演算ＴＡＴが小さい場合は、たとえ第１の条件が揃った場合でも命令発行抑止信号を有効にしないよう制御することによる。
【符号の説明】
【０１０７】
１      ＣＰＵ
２      記憶装置
３      入力装置
４      出力装置
５      バス
１００  パイプライン処理実行部
１０１  演算パイプ制御部
１０２〜１０５  ２ＷＡＹセレクタ
１１２〜１１５  ＲＡＭ
１２２〜１２５  ４ＷＡＹセレクタ
１３１  演算器α
１３２  演算器β
１５１〜１５３  伝送路
２００  命令発行制御部
２０１  命令供給部
２０２〜２０４  命令部
２０５  ビジーフラグ部
２１０、２２０、２３０  命令発行キュー
２１１、２２１、２３１  ビジーフラグチェック部
２１２、２２２、２３２  直前命令処理数認識部
２１３、２２３、２３３  直前命令ＴＡＴ比較部
２１４、２２４、２３４  命令発行抑止信号生成部
２１５、２２５、２３５  発行条件検証部
２１６、２２６、２３６  競合調停部
２１７、２２７、２３７  発行確定命令保持部
２４０  ビジーフラグセット条件生成部
２５０  リソースビジーフラグ管理部
【図１】
0005871298.tif 000002
【図２Ａ】
0005871298.tif 000003
【図２Ｂ】
0005871298.tif 000004
【図２Ｃ】
0005871298.tif 000005
【図２Ｄ】
0005871298.tif 000006
【図３】
0005871298.tif 000007
【図４】
0005871298.tif 000008
【図５】
0005871298.tif 000009
【図６】
0005871298.tif 000010
【図７】
0005871298.tif 000011
【図８】
0005871298.tif 000012
【図９】
0005871298.tif 000013
【図１０】
0005871298.tif 000014