(57)【特許請求の範囲】
【請求項１】
命令がセットされる命令デコードステージと、
複数の命令発行ステージと、
それぞれ前記複数の命令発行ステージに対応する複数のチェック回路と、
前記命令デコードステージにセットされた命令と前記複数の命令発行ステージにセットされている命令間でリソースの一致があるか否かを検出するリソース一致検出回路と、
を具備し、
前記リソース一致検出回路は、
前記命令デコードステージにセットされた命令を、前記複数の命令発行ステージのうちの、空いている自命令発行ステージにセットするときに、
前記複数の命令発行ステージにセットされた命令のうち、前記自命令発行ステージにセットされる命令と使用する前記リソースが一致し、かつ、実行順序が変更できない命令に対応するフラグを、前記自命令発行ステージの順序フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にセットし、
前記複数の命令発行ステージにセットされた命令のうち、前記自命令発行ステージにセットされる命令と使用する前記リソースが一致し、かつ、実行順序が変更できる命令に対応するフラグを、前記自命令発行ステージの優先度フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にセットし、
前記複数のチェック回路は、前記自命令発行ステージの順序フラグ、前記自命令発行ステージの優先フラグに従って調停を行い、前記調停の結果に基づいて、前記自命令発行ステージにセットされた命令を発行する、
ベクトル処理装置。
【請求項２】
前記複数のチェック回路は、
前記自命令発行ステージにセットされた命令が使用するリソースが空いているかをＢＵＳＹフラグでチェックし、先行命令に順序を保障しなければならない命令があるか否かを前記自命令発行ステージの順序フラグでチェックする命令発行チェック回路と、
前記命令発行チェック回路によるチェックの結果、前記ＢＵＳＹフラグがセットされていなく、前記自命令発行ステージの順序フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にフラグがセットされていない場合、前記自命令発行ステージの優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にフラグがセットされているか否かをチェックする優先チェック回路と、
を備え、
前記優先チェック回路は、
前記自命令発行ステージの前記優先フラグにフラグがセットされていない場合、
前記自命令発行ステージの命令を発行し、
前記自命令発行ステージにセットされた命令が使用するリソースの前記ＢＵＳＹフラグをセットし、
前記自命令発行ステージをリセットし、
前記複数の命令発行ステージの優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のうちの、前記自命令発行ステージのフラグをリセットし、
前記複数の命令発行ステージの順序フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のうちの、前記自命令発行ステージのフラグをリセットし、
前記自命令発行ステージの命令処理が終了したときに、前記自命令発行ステージにセットされた命令が使用するリソースの前記ＢＵＳＹフラグをリセットする、
請求項１に記載のベクトル処理装置。
【請求項３】
前記優先チェック回路は、
前記自命令発行ステージの前記優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のフラグに対応する命令発行ステージの命令が発行可能であるか否かをチェックし、
前記優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のフラグに対応する命令発行ステージの命令が発行可能ではない場合、
前記自命令発行ステージの命令を発行し、
前記自命令発行ステージにセットされた命令が使用するリソースの前記ＢＵＳＹフラグをセットし、
前記自命令発行ステージをリセットし、
前記自命令発行ステージの命令処理が終了したときに、前記自命令発行ステージにセットされた命令が使用するリソースの前記ＢＵＳＹフラグをリセットする、
請求項２に記載のベクトル処理装置。
【請求項４】
前記命令がセットされる第１命令デコードステージと、
前記第１命令デコードステージにセットされた前記命令をデコードする命令デコーダと、
前記命令デコードステージであり、前記命令デコーダによりデコードされた前記命令がセットされる第２命令デコードステージと、
を更に具備する請求項１〜３のいずれかに記載のベクトル処理装置。
【請求項５】
命令デコードステージと複数の命令発行ステージとを具備するコンピュータを用いる方法であって、
命令を前記命令デコードステージにセットするステップと、
前記命令デコードステージにセットされた命令と前記複数の命令発行ステージにセットされている命令間でリソースの一致があるか否かを検出するステップと、
前記命令デコードステージにセットされた命令を、前記複数の命令発行ステージのうちの、空いている自命令発行ステージにセットするときに、
前記複数の命令発行ステージにセットされた命令のうち、前記自命令発行ステージにセットされる命令と使用する前記リソースが一致し、かつ、実行順序が変更できない命令に対応するフラグを、前記自命令発行ステージの順序フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にセットするステップと、
前記複数の命令発行ステージにセットされた命令のうち、前記自命令発行ステージにセットされる命令と使用する前記リソースが一致し、かつ、実行順序が変更できる命令に対応するフラグを、前記自命令発行ステージの優先度フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にセットするステップと、
前記自命令発行ステージの順序フラグ、前記自命令発行ステージの優先フラグに従って調停を行い、前記調停の結果に基づいて、前記自命令発行ステージにセットされた命令を発行するステップと、
を具備するベクトル処理方法。
【請求項６】
前記命令を発行するステップは、
前記自命令発行ステージにセットされた命令が使用するリソースが空いているかをＢＵＳＹフラグでチェックし、先行命令に順序を保障しなければならない命令があるか否かを前記自命令発行ステージの順序フラグでチェックするステップと、
前記チェックするステップによるチェックの結果、前記ＢＵＳＹフラグがセットされていなく、前記自命令発行ステージの順序フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にフラグがセットされていない場合、前記自命令発行ステージの優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にフラグがセットされているか否かをチェックするステップと、
を備え、
前記自命令発行ステージの優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にフラグがセットされているか否かをチェックするステップは、
前記自命令発行ステージの前記優先フラグにフラグがセットされていない場合、
前記自命令発行ステージの命令を発行するステップと、
前記自命令発行ステージにセットされた命令が使用するリソースの前記ＢＵＳＹフラグをセットするステップと、
前記自命令発行ステージをリセットするステップと、
前記複数の命令発行ステージの優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のうちの、前記自命令発行ステージのフラグをリセットするステップと、
前記複数の命令発行ステージの順序フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のうちの、前記自命令発行ステージのフラグをリセットするステップと、
前記自命令発行ステージの命令処理が終了したときに、前記自命令発行ステージにセットされた命令が使用するリソースの前記ＢＵＳＹフラグをリセットするステップと、
を備える請求項５に記載のベクトル処理方法。
【請求項７】
前記自命令発行ステージの優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域にフラグがセットされているか否かをチェックするステップは、
前記自命令発行ステージの前記優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のフラグに対応する命令発行ステージの命令が発行可能であるか否かをチェックするステップと、
前記優先フラグに含まれる前記命令発行ステージ毎のフラグ格納領域のフラグに対応する命令発行ステージの命令が発行可能ではない場合、
前記自命令発行ステージの命令を発行するステップと、
前記自命令発行ステージにセットされた命令が使用するリソースの前記ＢＵＳＹフラグをセットするステップと、
前記自命令発行ステージをリセットするステップと、
前記自命令発行ステージの命令処理が終了したときに、前記自命令発行ステージにセットされた命令が使用するリソースの前記ＢＵＳＹフラグをリセットするステップと、
を更に備える請求項６に記載のベクトル処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトル処理装置に関する。
【背景技術】
【０００２】
図１は、従来のベクトル処理装置の構成を示している。
【０００３】
図１に示されるように、従来のベクトル処理装置は、コンピュータであり、第１命令デコードステージ１０１と、命令デコーダ１０２と、第２命令デコードステージ１０３と、リソース一致検出回路１０４と、命令発行ステージ（０系）１０５、（１系）１０６を含む複数の命令発行ステージと、ＢＵＳＹフラグ１０７を格納する格納部（図示しない）と、発行チェック回路１０８と、選択部１１１と、命令実行部（図示しない）と、を具備している。このベクトル処理装置は、クロックにより動作する。
【０００４】
第１命令デコードステージ１０１に命令がセットされ、第１命令デコードステージ１０１は、この命令を命令デコーダ１０２に出力する。命令デコーダ１０２は、この命令をデコードして第２命令デコードステージ１０３にセットする。
【０００５】
発行チェック回路１０８は、ＢＵＳＹフラグ１０７により後続命令の発行を管理する。発行チェック回路１０８は、命令発行ステージ１０５、１０６のうちの一方の命令発行ステージに対する発行指示１０９を出力し、ＢＵＳＹフラグ１０７をセットする。このとき、発行チェック回路１０８は、上記一方の命令発行ステージを表す選択指示１１０を出力し、選択部１１１は、選択指示１１０に応じて、上記一方の命令発行ステージにセットされた命令を命令実行部に出力する。即ち、命令が発行される。命令実行部は、発行された命令を実行する。
【０００６】
リソース一致検出回路１０４は、命令発行ステージ１０５、１０６のいずれかが空いている場合で、且つ、命令発行ステージ１０５、１０６のいずれかとリソースの一致を検出しない場合、第２命令デコードステージ１０３にセットされた命令を、次クロックで命令発行ステージ１０５、１０６のいずれかにセットする。
【０００７】
従来のベクトル処理装置では、命令が命令発行ステージ１０５、１０６に並んだ場合、順序保障していないので、以下のような不具合が生じる。例えば、先行命令が何らかの要因（リソースＢＵＳＹ）で発行できずに待たされている状態を想定する。このとき、従来のベクトル処理装置では、リソース一致検出回路１０４によってリソースの一致が検出された後続命令は、先行命令を追い越して発行される可能性があるため、命令発行ステージへのセットを抑止する。このような場合、その後に続く後続命令の全てが、上記セットを抑止された後続命令によって止まってしまい、性能が低下してしまう。上記後に続く後続命令の中には先行命令とリソースが一致しない命令が存在する場合がある。この場合、できるだけ命令発行ステージに落とさなければならない。
【０００８】
コンピュータに関する技術について紹介する。
【０００９】
特開平８−３０５５６７号公報には、演算命令の並列処理方法が記載されている（特許文献１）。演算命令の並列処理方法は、演算ラテンシの異なる複数の演算命令を記憶し、追越し可能にパイプライン処理する情報処理方法である。この方法では、パイプライン処理中の演算命令とパイプラインへ発行予定の演算命令との競合を競合タイプ毎に調べ、競合のある場合に発行予定の演算命令のパイプラインへの発行を抑止する抑止信号の出力を、競合タイプに応じて制御することを特徴としている。
【００１０】
特開平６−１９５３１３号公報には、コンピュータシステムが記載されている（特許文献２）。コンピュータシステムは、複数のプロセッサと、互いに並列にアクセス可能な複数の部分記憶装置に分割された記憶装置と、該複数のプロセッサから並列に出力される、該記憶装置に対するメモリアクセス要求を、並列に該複数の部分記憶装置へ転送する記憶制御回路とを有している。該複数のプロセッサは、それぞれ複数のリクエスタの一つを含み、各リクエスタは、それが属するプロセッサで実行中の、該記憶装置内の複数の記憶位置に対するアクセスを要求する命令（メモりアクセス命令）に応答して、該複数の記憶位置へのアクセスを要求する複数のアクセス要求を順次発行する。各リクエスタは、そのリクエスタに関する優先順位の切り替えを要求する優先順位切り替え信号を出力する第１の信号生成回路を有している。該記憶制御装置は、それぞれ該複数の部分記憶装置の一つに対応して設けられ、それぞれ該複数のプロセッサから供給された、対応する部分記憶装置に転送されるべき複数のアクセス要求の一つを選択する複数の選択回路と、該複数の選択回路に供給するための、該複数のリクエスタの優先順位に関する、該複数の選択回路に共通に定めた優先順位情報を保持する手段と、該複数のリクエスタのいずれか一つに含まれる該第１の信号生成回路から出力された優先順位切り替え信号に応答して、そのリクエスタに関する優先順位を切り替えするように、該保持手段に保持された優先順位情報を切り替える切り替え回路と、を含んでいる。
【００１１】
特開２００７−２８０１８４号公報には、プロセッサが記載されている（特許文献３）。プロセッサは、命令コードをフェッチするフェッチ部と、並列動作可能な演算ユニットと、レジスタファイル部を含んでいる。レジスタファイル部は、フェッチされたベクトル演算命令をデコードして、ベクトルレジスタに演算ユニットの実行結果データを書き込む制御を行うために必要なベクトルレジスタ制御信号を生成するデコード部と、複数のベクトルレジスタと、ベクトルレジスタ制御信号に基づき、ベクトルレジスタにデータを書き込む制御を行う書き込み制御回路と、を含んでいる。複数のベクトルレジスタは、複数の要素レジスタからなり、同一の要素番号を有する要素レジスタがグループ化され、各グループ毎に書き込みポートを有している。書き込み制御回路は、ベクトルレジスタ制御信号に基づき、書き込み対象となる要素グループ及びベクトルレジスタを選択して、書き込みポートに書き込まれるデータを、選択された要素グループの選択されたベクトルレジスタの要素レジスタに書き込む制御を行うことを特徴としている。
【００１２】
特公平８−１０４３１号公報には、情報処理装置が記載されている（特許文献４）。情報処理装置は、パイプライン化した、機能の異なる演算器を複数個持つものである。この情報処理装置は、各演算に最低必要なパイプライン段数が異なる場合、各演算器に対してその後段に単に結果の転送のみを行うパイプライン用のレジスタを各演算系パイプラインの段数が等しくなるように必要な段数だけ付加し、付加したパイプライン用のレジスタの任意のレジスタからも演算結果を出力できる切替手段と、全結果出力のうちから１つを選択しようとして異なる演算系間で競合する場合には、結果を早く必要とするものがあればこれを優先し、さもなければ演算に最低必要なパイプライン段数の長い演算器系からの出力を優先させる制御手段と、を含むことを特徴としている。
【００１３】
【特許文献１】特開平８−３０５５６７号公報
【特許文献２】特開平６−１９５３１３号公報
【特許文献３】特開２００７−２８０１８４号公報
【特許文献４】特公平８−１０４３１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の課題は、命令と先行命令とでリソースが競合しても、そのリソースを効率良く使用することができるベクトル処理装置を提供することにある。
【課題を解決するための手段】
【００１５】
本発明のベクトル処理装置は、命令がセットされる命令デコードステージと、複数の命令発行ステージと、それぞれ複数の命令発行ステージに対応する複数のチェック回路と、命令デコードステージにセットされた命令と複数の命令発行ステージにセットされている命令間でリソースの一致があるか否かを検出するリソース一致検出回路と、を具備している。リソース一致検出回路は、命令デコードステージにセットされた命令を、複数の命令発行ステージのうちの、空いている自命令発行ステージにセットするときに、命令デコードステージの命令と複数の命令発行ステージの命令間において、検出の結果として、リソースを競合して順序を守らなければならない場合、自命令発行ステージ以外の命令発行ステージに対応する順序フラグをそれぞれセットする。また、検出の結果として、リソースを競合しても追い越し可能な場合、自命令発行ステージ以外の命令発行ステージに対応する優先フラグをそれぞれセットする。複数のチェック回路は、順序フラグ、優先フラグに従って調停を行い、調停の結果に基づいて、自命令発行ステージにセットされた命令を発行する。
【発明の効果】
【００１６】
以上により、本発明のベクトル処理装置によれば、命令と先行命令とでリソースが競合した場合、競合関係をフラグ化することにより、多くの命令を命令発行ステージにエントリできる。また、命令と先行命令とで調停を行い、優先順序が高く発行可能な命令から発行することにより、リソースを効率良く使用することができる。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照して、本発明の実施形態によるベクトル処理装置について詳細に説明する。
【００１８】
［構成］
図２は、本発明の実施形態によるベクトル処理装置の構成を示している。
【００１９】
図２に示されるように、本発明の実施形態によるベクトル処理装置は、コンピュータであり、第１命令デコードステージ１と、命令デコーダ２と、第２命令デコードステージ３と、リソース一致検出回路４と、複数の命令発行ステージと、複数の命令発行ステージに対するフラグ、ＢＵＳＹフラグ９を格納する格納部（図示しない）と、複数の命令発行チェック回路と、複数の優先チェック回路と、を具備している。
【００２０】
複数の命令発行ステージは、Ａ０命令発行ステージ６、Ａ１命令発行ステージ６’（図示しない）、…、Ｍ０命令発行ステージ８、Ｍ１命令発行ステージ８’（図示しない）、…を表している。
【００２１】
複数の命令発行チェック回路は、Ａ０命令発行チェック回路１０、Ａ１命令発行チェック回路１０’（図示しない）、…、Ｍ０命令発行チェック回路１１、Ｍ１命令発行チェック回路１１’（図示しない）、…を表している。
【００２２】
複数の優先チェック回路は、Ａ０優先チェック回路１２、Ａ１優先チェック回路１２’（図示しない）、…、Ｍ０優先チェック回路１３、Ｍ１優先チェック回路１３’（図示しない）、…を表している。
【００２３】
複数の命令発行ステージに対するフラグは、優先フラグとして、Ａ０命令発行ステージ優先フラグ５、Ａ１命令発行ステージ優先フラグ５’（図示しない）、…、Ｍ０命令発行ステージ優先フラグ７、Ｍ１命令発行ステージ優先フラグ７’（図示しない）、…を含んでいる。更に、順序フラグとして、Ａ０命令発行ステージ順序フラグ１６、Ａ１命令発行ステージ順序フラグ１６’（図示しない）、…、Ｍ０命令発行ステージ順序フラグ１７、Ｍ１命令発行ステージ順序フラグ１７’（図示しない）、…を含んでいる。
【００２４】
ここで、上述の順序フラグ１６、１６’、１７、１７’、優先フラグ５、５、７、７’について説明する。
【００２５】
順序フラグ１６、１６’、１７、１７’とは、自命令が命令発行ステージにセットされた時点で他の命令発行ステージにリソースを競合する先行命令が存在し、自命令が先行命令を追い越して発行できないことを示すフラグである。命令発行ステージに自命令をセット時、他の命令発行ステージの先行命令の中にリソース競合を検出した場合、その命令発行ステージに対応した順序フラグがそれぞれセットされる。順序フラグ１６、１６’、１７、１７’は、順序フラグ１６、１６’、１７、１７’に対応した命令発行ステージの先行命令が発行された時点でリセットされる。順序フラグがセットされている命令発行ステージの自命令の発行を順序フラグに対応した命令発行ステージの先行命令を発行するまで抑止するために使用される。ここで順序を守らなければならない命令間の関係は、実行順序を変えると結果不正を起こす関係、例えば図４に示されるベクトルレジスタ２９〜３６の番号一致関係やベクトルデータレジスタ２１〜２８の番号一致関係を示す。
【００２６】
優先フラグ５、５、７、７’とは、自命令を命令発行ステージにセットした時点で他の発行ステージにリソースを競合する先行命令が存在することを示すフラグである。命令発行ステージに自命令をセット時、他の発行ステージの先行命令の中にリソース競合が検出された場合、その発行ステージに対応した優先フラグがそれぞれセットされる。優先フラグ５、５、７、７’は、優先フラグ５、５、７、７’に対応した命令発行ステージの先行命令が発行された時点でリセットされる。優先フラグがセットされている命令発行ステージの自命令は、優先フラグに対応した発行ステージの命令が発行可能な場合は自命令の発行を抑える機能と、優先フラグに対応した発行ステージの先行命令が発行可能でなく自命令が発行可能な場合は先行命令を追い越して発行する機能と、を実現するために使用される。ここで追い越し可能な命令の関係は、命令間で実行順序を変えても結果不正を起こさない、例えば同時に使用できない共有のＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ（図４の信号線Ｌ１、Ｌ２、Ｌ３、Ｌ４）を使用する関係を示す。
【００２７】
以下説明を容易にするために、優先フラグと発行ステージの組み合わせとして、Ａ０命令発行ステージ優先フラグ５、Ａ０命令発行ステージ６と、Ｍ０命令発行ステージ優先フラグ７、Ｍ０命令発行ステージ８との２つを用いて、本発明の実施形態によるベクトル処理装置の動作を簡単に説明する。
【００２８】
第１命令デコードステージ１には、命令がセットされる。命令デコーダ２は、第１命令デコードステージ１にセットされた命令に対して、命令が使用されるリソースのリクエストにデコードし、第２命令デコードステージ３にセットする。リソース一致検出回路４は、第２命令デコードステージ３にセットされた命令と複数の命令発行ステージにセットしている命令間でリソースの一致があるか否かを検出する。この場合、第２命令デコードステージ３にセットされた命令（リクエスト）と命令発行ステージ６、８の先行命令（リクエスト）間でリソースの一致があるか否かを検出する。
【００２９】
リソース一致検出回路４は、第２命令デコードステージ３にセットされた命令を、命令発行ステージ６、８のうちの、空いている自命令発行ステージ（命令発行ステージ６又は命令発行ステージ８）にセットするときに、上記検出の結果に基づいて、順序、優先フラグを同時にセットする。このとき、リソース一致検出回路４は、第２命令デコードステージ３の命令と命令発行ステージ６、８の命令間において、上記検出の結果として、リソースを競合して順序を守らなければならない場合は、自命令発行ステージ以外の命令発行ステージに対応する順序フラグをそれぞれセットする。一方、上記検出の結果として、リソースを競合しても追い越し可能な場合は、自命令発行ステージ以外の命令発行ステージに対応する優先フラグをそれぞれセットする。
【００３０】
よって、順序、優先フラグが多いほど後続の命令となる。一度セットされた順序、優先フラグは新しい命令がセットされない限り再セットされない。順序、優先フラグに対応した命令が実行された時点でリセットされる。よって、順序フラグが全てリセットされないと自命令は実行できない。優先フラグを保持している命令発行ステージの命令は、優先フラグに対応する命令発行ステージの先行命令が他の要因で実行できない場合、先行命令を追い越しての実行を可能にする。
【００３１】
また、ＢＵＳＹフラグ９は、実行中の命令が使用しているリソースを管理する。上述の順序フラグは、発行ステージで実行待ちしている命令間の順序を保障するものであり、実行前のＢＵＳＹフラグ９として用いられる。優先フラグは、順序を保障しなくても良いが、同時に実行した場合、リソースを共有してしまうことを回避するためにある。同時に実行するタイミングを回避できれば、実行後はＢＵＳＹフラグ９で管理できる。即ち、ＢＵＳＹフラグ９をセットする時間を確保する。
【００３２】
チェック回路（Ａ０命令発行チェック回路１０、Ａ０優先チェック回路１２）は、順序フラグ、優先フラグに従って調停を行い、調停の結果に基づいて、命令発行ステージ６にセットされた命令を発行する。これについて説明する。
【００３３】
まず、Ａ０命令発行チェック回路１０は、Ａ０命令発行ステージ６の命令（リクエスト）に対応するリソースが空いているかをＢＵＳＹフラグ９でチェックし、先行命令に順序を保障しなければならない命令があるか否かをＡ０順序フラグ１６でチェックする。ＢＵＳＹフラグ９がセットされていなく、Ａ０命令発行ステージ６に順序フラグがセットされていない場合、命令を発行可能である旨を表す通知をＡ０優先チェック回路１２に出力する。次に、Ａ０優先チェック回路１２は、Ａ０命令発行チェック回路１０からの通知を受けて、Ａ０命令発行ステージ６に優先フラグがセットされているか否かをチェックする。Ａ０優先チェック回路１２は、Ａ０命令発行ステージ６に優先フラグがセットされていない場合、発行指示１４を出力し、自命令発行ステージ（Ａ０命令発行ステージ６）の命令を命令実行部に出力する。この場合、Ａ０優先チェック回路１２から命令が発行される。命令実行部は、発行指示１４に応じて命令が発行されることを認識し、Ａ０優先チェック回路１２から発行された命令を実行する。また、Ａ０優先チェック回路１２は、Ａ０命令発行ステージ６の命令を発行するとき、Ａ０命令発行ステージ６の命令（リクエスト）に対応するＢＵＳＹフラグ９をセットする。同時に、自命令のリクエストであるＡ０命令発行ステージ６をリセットする。また、Ｍ０命令発行ステージ優先フラグ７のうちの、Ａ０命令発行ステージ６に対応する優先フラグをリセットする。また、Ｍ０命令発行ステージ順序フラグ１７のうちの、Ａ０命令発行ステージ６に対応する順序フラグをリセットする。Ａ０命令発行ステージ６の命令処理が終了したときに、Ａ０命令発行ステージ６の命令に対応するＢＵＳＹフラグ９をリセットする。
【００３４】
一方、Ａ０優先チェック回路１２は、Ａ０命令発行ステージ６に優先フラグがセットされている場合、優先フラグに対応する命令発行ステージ（Ｍ０命令発行ステージ８）に発行可能な命令があるか否かをチェックする。Ａ０優先チェック回路１２は、Ｍ０命令発行ステージ８の命令が発行可能ではない場合、発行指示１４を出力し、Ａ０命令発行ステージ６の命令を発行する。また、Ａ０優先チェック回路１２は、Ａ０命令発行ステージ６の命令を発行するとき、Ａ０命令発行ステージ６の命令（リクエスト）に対応するＢＵＳＹフラグ９をセットする。同時に、自命令のリクエストであるＡ０命令発行ステージ６をリセットする。Ａ０命令発行ステージ６の命令処理が終了したときに、Ａ０命令発行ステージ６の命令に対応するＢＵＳＹフラグ９をリセットする。
【００３５】
このように、Ａ０優先チェック回路１２は、Ａ０命令発行ステージ６に優先フラグがセットされていない場合、Ａ０命令発行ステージ６の命令を発行するが、Ａ０命令発行ステージ６の優先フラグのうちの、Ｍ０命令発行ステージ８に対応する優先フラグがセットされている場合は、Ｍ０命令発行ステージ８の命令が発行可能か否かをＭ０命令発行チェック回路１１のチェックの結果により判断する。発行可能ならばＡ０命令発行ステージ６の命令発行を抑止するが、発行不可ならＡ０命令発行ステージ６の命令を発行する。
【００３６】
同様に、チェック回路（Ｍ０命令発行チェック回路１１、Ｍ０優先チェック回路１３）は、順序フラグ、優先フラグに従って調停を行い、調停の結果に基づいて、命令発行ステージ８にセットされた命令を発行する。これについて説明する。
【００３７】
まず、Ｍ０命令発行チェック回路１１は、Ｍ０命令発行ステージ８の命令（リクエスト）に対応するリソースが空いているかをＢＵＳＹフラグ９でチェックし、先行命令に順序を保障しなければならない命令があるか否かをＭ０順序フラグ１７でチェックする。ＢＵＳＹフラグ９がセットされていなく、Ｍ０命令発行ステージ８に順序フラグがセットされていない場合、命令を発行可能である旨を表す通知をＭ０優先チェック回路１３に出力する。次に、Ｍ０優先チェック回路１３は、Ｍ０命令発行チェック回路１１からの通知を受けて、Ｍ０命令発行ステージ８に優先フラグがセットされているか否かをチェックする。Ｍ０優先チェック回路１３は、Ｍ０命令発行ステージ８に優先フラグがセットされていない場合、発行指示１５を出力し、自命令発行ステージ（Ｍ０命令発行ステージ８）の命令を命令実行部に出力する。この場合、Ｍ０優先チェック回路１３から命令が発行される。命令実行部は、発行指示１５に応じて命令が発行されることを認識し、Ｍ０優先チェック回路１３から発行された命令を実行する。また、Ｍ０優先チェック回路１３は、Ｍ０命令発行ステージ８の命令を発行するとき、Ｍ０命令発行ステージ８の命令（リクエスト）に対応するＢＵＳＹフラグ９をセットする。同時に、自命令のリクエストであるＭ０命令発行ステージ８をリセットする。また、Ａ０命令発行ステージ優先フラグ５のうちの、Ｍ０命令発行ステージ８に対応する優先フラグをリセットする。また、Ａ０命令発行ステージ順序フラグ１６のうちの、Ｍ０命令発行ステージ８に対応する順序フラグをリセットする。Ｍ０命令発行ステージ８の命令処理が終了したときに、Ｍ０命令発行ステージ８の命令に対応するＢＵＳＹフラグ９をリセットする。
【００３８】
一方、Ｍ０優先チェック回路１３は、Ｍ０命令発行ステージ８に優先フラグがセットされている場合、優先フラグに対応する命令発行ステージ（Ａ０命令発行ステージ６）に発行可能な命令があるか否かをチェックする。Ｍ０優先チェック回路１３は、Ａ０命令発行ステージ６の命令が発行可能ではない場合、発行指示１５を出力し、Ｍ０命令発行ステージ８の命令を発行する。また、Ｍ０優先チェック回路１３は、Ｍ０命令発行ステージ８の命令を発行するとき、Ｍ０命令発行ステージ８の命令（リクエスト）に対応するＢＵＳＹフラグ９をセットする。同時に、自命令のリクエストであるＭ０命令発行ステージ８をリセットする。Ｍ０命令発行ステージ８の命令処理が終了したときに、Ｍ０命令発行ステージ８の命令に対応するＢＵＳＹフラグ９をリセットする。
【００３９】
このように、Ｍ０優先チェック回路１３は、Ｍ０命令発行ステージ８に優先フラグがセットされていない場合、Ｍ０命令発行ステージ８の命令を発行するが、Ｍ０命令発行ステージ８の優先フラグのうちの、Ａ０命令発行ステージ６に対応する優先フラグがセットされている場合は、Ａ０命令発行ステージ６の命令が発行可能か否かをＡ０命令発行チェック回路１０のチェックの結果により判断する。発行可能ならばＭ０命令発行ステージ８の命令発行を抑止するが、発行不可ならＭ０命令発行ステージ８の命令を発行する。
【００４０】
これにより、本発明のベクトル処理装置によれば、命令と先行命令とでリソースが競合した場合、競合関係をフラグ化することにより、多くの命令を命令発行ステージにエントリできる。また、命令と先行命令とで調停を行い、優先順序が高く発行可能な命令から発行することにより、リソースを効率良く使用することができる。
【００４１】
［動作］
次に、図３、図４に示される具体例を用いて、本発明の実施形態によるベクトル処理装置の動作を説明する。図３は、従来のベクトル処理装置、及び、本発明の実施形態によるベクトル処理装置の動作を示すタイミングチャートである。図３では、命令間でリソースの競合があるケースについて本発明と従来技術とを比較している。ここで、図３において、
命令Ｘ１：ＶＤ０／Ｖ０＜−Ｖ０＋Ｖ１
命令Ｘ２：ＶＤ４＜−Ｖ６＋Ｖ７
命令Ｘ３：ＶＤ８／Ｖ０＜−Ｖ２＊Ｖ３
命令Ｘ４：ＶＤ１２＜−Ｖ４＊Ｖ５
とする。図４は、ベクトル演算処理装置の概略図である。
【００４２】
リソースの使用管理はＢＵＳＹフラグ９により行う。ベクトルデータレジスタ２１（ＶＤＲ）は、容量が大きく、ＶＤ０、ＶＤ８、ＶＤ１６・・・と８飛びのＶＤＲ番号にベクトルデータを格納する。ＶＤＲ２２は、ＶＤ４、ＶＤ１２、ＶＤ２０・・・とＶＤ４から８飛びのＶＤＲ番号にベクトルデータを格納する。同様に、ＶＤＲ２３〜２８は、最若番号から８飛びのＶＤＲ番号にベクトルデータを格納する。ベクトルレジスタ２９〜３５（ＶＡＲ）でＶ０からＶ７まであり演算するベクトルデータを格納する。ベクトル演算器（ＡＤＤ０、ＭＬＴ０、ＭＬＴ１、ＡＤＤ１）３７〜４０は、ＶＡＲ２９〜３６からベクトルデータを受け取り演算する。Ｘ−ＢＡＲスイッチ４１は、ベクトル演算器３７〜４０で演算した演算結果を受け取り、ＶＡＲ２９〜３６又はＶＤＲ２１〜２８にベクトルデータを供給する。信号線Ｌ１は、ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０でＸ−ＢＡＲスイッチ４１からＶＤＲ２１、２２に接続している。信号線Ｌ２は、ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ１でＸ−ＢＡＲスイッチ４１からＶＤＲ２３、２４に接続している。信号線Ｌ３は、ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ２でＸ−ＢＡＲスイッチ４１からＶＤＲ２５、２６に接続している。信号線Ｌ４は、ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ３でＸ−ＢＡＲスイッチ４１からＶＤＲ２７、２８に接続している構成になっている。ここでＶＤ０、ＶＤ４、ＶＤ８、ＶＤ１２は同一ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０を使用する競合関係にあたる。また、Ｖ０とＶ０、ＶＤ０とＶＤ０はＶＡＲ番号、ＶＤＲ番号が同じ競合関係にあたる。
【００４３】
１クロック目において、ＩＮから上記の命令順で第１命令デコードステージ１に命令Ｘ１をセットする。
【００４４】
２クロック目において、命令Ｘ１は命令デコーダ２により命令が使用するリソースリクエスト、ＲＥＡＤリクエストＶ０、Ｖ１、ＷｒｉｔｅリクエストＶＤ０（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０)、Ｖ０  Ｗｒｉｔｅ、使用演算器Ａ（加算器系）にデコードし、第２命令デコードステージ３にセットすると同時に命令Ｘ２を第１命令デコードステージ１にセットする。
【００４５】
３クロック目において、第２命令デコードステージ３にセットされた命令Ｘ１は、加算器系命令なのでＡ０命令発行ステージ６にセットされる。同時にリソース一致検出回路４は、他の発行ステージにセットしている先行命令との競合を検出し、Ａ０命令発行ステージ優先フラグ５、命令発行ステージ順序フラグ１６をセットする。今回は先行命令が発行ステージにないことで何もセットしない。第１命令デコードステージ１の命令Ｘ２は、命令デコーダ２により命令が使用するリソースリクエスト、ＲＥＡＤリクエストＶ６、Ｖ７、ＷｒｉｔｅリクエストＶＤ４（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０)、使用演算器Ａ（加算器系）にデコードし、第２命令デコードステージ３にセットすると同時に命令Ｘ３を第１命令デコードステージ１にセットする。
【００４６】
４クロック目において、Ａ０命令発行チェック回路１０は、Ａ０命令発行ステージ６にセットされた命令Ｘ１について、ＲＥＡＤリクエストＶ０、Ｖ１、ＷｒｉｔｅリクエストＶＤ０（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０)、Ｖ０  Ｗｒｉｔｅ、使用演算器Ａ（加算器系）に対応するＢＵＳＹフラグ９がセットされてないこと（Ｖ０  Ｗｒｉｔｅ  ＢＵＳＹ、ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）をチェックする。Ａ０命令発行チェック回路１０は、Ａ０命令発行ステージ順序フラグ１６が全てリセットしていることをチェックして発行可能命令となる、Ａ０命令発行ステージ優先フラグ５に対応する他の命令発行ステージに発行可能な命令がないことをＡ０優先チェック回路１２で調停確認後、発行指示１４を出力する。本ケースでは先行命令がセットしたＶ０  Ｗｒｉｔｅ  ＢＵＳＹフラグ９をリセットするまで発行を待つ。
【００４７】
第２命令デコードステージ３にセットされた命令Ｘ２は、加算器系命令なので、空いているＡ１命令発行ステージ６’にセットされる。同時にリソース一致検出回路４は、他の発行ステージにセットしている先行命令との競合を検出し、Ａ１命令発行ステージ優先フラグ５’、Ａ０命令発行ステージ順序フラグ１６’をセットする。本ケースでは先行のＡ０命令発行ステージ６の命令と信号線Ｌ１が競合関係（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０）にあり、Ａ１発行ステージと先行のＡ０命令発行ステージ６の関係を優先フラグＡ１−＞Ａ０としてセットする。ここで優先フラグＡ１−＞Ａ０とは、優先フラグ  自命令発行ステージ−＞先行命令の命令発行ステージを示す。命令Ｘ４は、第１命令デコードステージ１にセットされる。命令デコーダ２は、命令Ｘ３に対して、その命令が使用するリソースリクエスト、ＲＥＡＤリクエストＶ２、Ｖ３、ＷｒｉｔｅリクエストＶＤ８  （ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０）、Ｖ０  Ｗｒｉｔｅ、使用演算器Ｍ（乗算器系）にデコードし、第２命令デコードステージ３にセットする。
【００４８】
５クロック目において、第２命令デコードステージ３にセットされた命令Ｘ３は、乗算器系命令なのでＭ０命令発行ステージ８にセットされる。同時にリソース一致検出回路４は、他の命令発行ステージにセットしている先行命令との競合を検出し、Ｍ０命令発行ステージ優先フラグ７、Ｍ０命令発行ステージ順序フラグ１７をセットする。本ケースでは先行のＡ０命令発行ステージ６の命令、Ａ１命令発行ステージ６’の両命令と信号線Ｌ１が競合関係（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０）にあり、Ｍ０命令発行ステージ優先フラグ７として優先フラグＭ０−＞Ａ０、優先フラグＭ０−＞Ａ１をセットする。また、先行のＡ０命令発行ステージ６の命令とＶ０  Ｗｒｉｔｅが同じため、追い越してはいけない関係にあたり、Ｍ０命令発行ステージ順序フラグ１７として順序フラグＭ０−＞Ａ０をセットする。命令デコーダ２は、命令Ｘ４に対して、その命令が使用するリソースのリクエスト、ＲＥＡＤリクエストＶ４、Ｖ５、ＷｒｉｔｅリクエストＶＤ１２（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０)、使用演算器Ｍ（乗算器系）にデコードし、第２命令デコードステージ３にセットする。
【００４９】
Ａ１命令発行チェック回路１０’は、Ａ１命令発行ステージ６’にセットされた命令Ｘ２に対して、ＲＥＡＤリクエストＶ６、Ｖ７、ＷｒｉｔｅリクエストＶＤ４（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０)、使用演算器Ａ（加算器系）に対応するＢＵＳＹフラグ９が点灯してないこと（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）と、Ａ１命令発行ステージ順序フラグ１６’が全てリセットしていることをチェックし、命令Ｘ２は、発行可能命令となる。Ａ１命令発行チェック回路１０’は、Ａ１命令発行ステージ優先フラグ５’に対応する他の命令発行ステージに発行可能な命令がないかＡ１優先チェック回路１２’で調停確認後、発行指示１４’を出力する。本ケースでは先行命令がセットしたＶ０  Ｗｒｉｔｅ  ＢＵＳＹフラグ９によりＶ０  Ｗｒｉｔｅ  ＢＵＳＹフラグ９をリセットするまで発行を待っているＡ０命令発行ステージ６にセットした命令Ｘ１との関係が優先フラグＡ１-＞Ａ０  の点灯により命令Ｘ１が発行できないことをＡ１優先チェック回路１２’で調停確認後、命令Ｘ１を追い越して命令Ｘ２が先に発行指示１４’を出力し命令発行する。また、Ｖ０  Ｗｒｉｔｅ  ＢＵＳＹフラグ９は先行命令の処理が終わり、ここでリセットされる。
【００５０】
６クロック目において、命令Ｘ２は、命令発行したことでリソースを使用するためＢＵＳＹフラグ９（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）を点灯し、後続の命令がリソースを使用しないように管理し、後続命令の発行を抑止する。また、Ａ１命令発行ステージ優先フラグ５’（優先フラグＭ０−＞Ａ１）をリセットする。第２命令デコードステージ３にセットされた命令Ｘ４は、乗算器系命令なので空いているＭ１命令発行ステージ８’にセットされる。同時にリソース一致検出回路４は、他の発行ステージにセットしている先行命令との競合を検出し、Ｍ１命令発行ステージ優先フラグ７’、Ｍ１命令発行ステージ順序フラグ１７’をセットする。本ケースでは先行のＡ０命令発行ステージ６の命令、Ｍ０命令発行ステージ８の命令と信号線Ｌ１が競合関係（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０）にあり優先フラグＭ１−＞Ａ０、優先フラグＭ１−＞Ｍ０をセットする。先行Ａ１命令発行ステージ６’の命令とも信号線Ｌ１が競合関係（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０）にあったが、命令発行された後でＡ１発行ステージに命令がないので優先フラグＭ１−＞Ａ１をセットしない。
【００５１】
７から９クロック目において、残りの命令Ｘ１、Ｘ３、Ｘ４は、信号線Ｌ１を管理するＢＵＳＹフラグ９の（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）をリセットするまで発行待ちになる。
【００５２】
１０クロック目において、命令Ｘ２の処理が終わったため、信号線Ｌ１を管理するＢＵＳＹフラグ９の（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）をリセットする。
【００５３】
１１クロック目において、優先度が高いのは、Ａ０命令発行ステージ優先フラグ５とＡ０命令発行ステージ順序フラグ１６を持っていないＡ０命令発行ステージ６で発行待ちしている命令Ｘ１である。Ａ０命令発行チェック回路１０は、命令Ｘ２が発行後セットした（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）をリセットしたことを確認後、発行指示１４を出力する。
【００５４】
１２クロック目において、命令Ｘ１は命令発行されたことで、ＢＵＳＹフラグ９（Ｖ０  Ｗｒｉｔｅ  ＢＵＳＹ、ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）が再セットされる。このＢＵＳＹフラグ９は、後続の命令が使用できないように管理し、後続命令の発行を抑止する。また、Ａ１命令発行ステージ優先フラグ５’（優先フラグＡ１−＞Ａ０）、Ｍ０命令発行ステージ優先フラグ７（優先フラグＭ０−＞Ａ０）、Ｍ１命令発行ステージ優先フラグ７’に（優先フラグＭ１−＞Ａ０）、Ｍ０命令発行ステージ順序フラグ１７（順序フラグＭ０−＞Ａ０）は、Ａ０命令発行ステージ６の命令Ｘ１を発行したことでリセットし、後はＢＵＳＹフラグ９（Ｖ０  Ｗｒｉｔｅ  ＢＵＳＹ、ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）での管理に変わる。
【００５５】
１３から１５クロック目において、残りの命令Ｘ３、Ｘ４は、ＢＵＳＹフラグ９（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）をリセットするまで発行を待つ。また、Ｍ０命令発行ステージ８にセットした命令Ｘ３は、Ｖ０  Ｗｒｉｔｅ命令のため、先行命令Ｘ１がセットしたＢＵＳＹフラグ９（Ｖ０  Ｗｒｉｔｅ  ＢＵＳＹ）をリセットするまで発行を待つ。
【００５６】
１６クロック目において、命令Ｘ１の処理が終わったため、信号線Ｌ１を管理するＢＵＳＹフラグ９の（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）をリセットする。
【００５７】
１７クロック目において、Ｍ０命令発行ステージ８の命令Ｘ３は、ＢＵＳＹフラグ９（Ｖ０  Ｗｒｉｔｅ  ＢＵＳＹ）がセットされていて命令発行をできない。このため、Ｍ１命令発行チェック回路１１’は、Ｍ０命令発行ステージ８の命令Ｘ３と競合関係（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０）にあり、優先フラグＭ１−＞Ｍ０を持っている優先度の低い命令Ｘ４をＭ１優先チェック回路１３’で調停確認後、先行命令Ｘ３を追い越して発行指示１５’を出力する。仮にＢＵＳＹフラグ９（Ｖ０  Ｗｒｉｔｅ  ＢＵＳＹ）が競合のリソース（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）より早くリセットした場合はＭ０命令発行ステージ優先フラグ７を持っていない命令Ｘ３をＭ０優先チェック回路１３にて調停確認後、発行指示１５を出力し命令発行する。
【００５８】
１８クロック目において、命令Ｘ４が発行された後、ＢＵＳＹフラグ９（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）が再セットされる。このＢＵＳＹフラグ９は、後続の命令が使用できないように管理し、後続命令の発行を抑止する。
【００５９】
１９クロック目において、ＢＵＳＹフラグ９（Ｖ０  Ｗｒｉｔｅ  ＢＵＳＹ）がリセットされるが、ＢＵＳＹフラグ９（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）が点灯しているため、命令Ｘ３は発行できない。
【００６０】
２０から２１クロック目において、残りの命令Ｘ３は、ＢＵＳＹフラグ９（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）がリセットされるまで発行を待つ。
【００６１】
２２クロック目において、命令Ｘ４の処理が終わったため、信号線Ｌ１を管理するＢＵＳＹフラグ９の（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）がリセットされる。
【００６２】
２３クロック目において、Ｍ０命令発行チェック回路１１は、最終に残った命令Ｘ３に対して、ＢＵＳＹフラグ９（Ｖ０  Ｗｒｉｔｅ  ＢＵＳＹ、ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）が点灯していないことと、Ｍ０命令発行ステージ順序フラグ１７が点灯していないことを確認し、命令Ｘ３は、発行可能となる。Ｍ０優先チェック回路１３は、Ｍ０命令発行ステージ優先フラグに対応した発行ステージの命令が発行可能であるか確認後、発行指示１５を点灯し、命令Ｘ３は、命令発行となる。
【００６３】
２４クロック目において、命令Ｘ３は命令発行されたことで、ＢＵＳＹフラグ９（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）が再セットされる。このＢＵＳＹフラグ９は、後続の命令が使用できないように管理し、後続命令の発行を抑止する。また、Ｍ１命令発行ステージ優先フラグ７’（優先フラグＭ１−＞Ｍ０）は、Ｍ０命令発行ステージ８の命令Ｘ３が発行されたことでリセットされ、後はＢＵＳＹフラグ９（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）での管理に変わる。
【００６４】
２８クロック目において、命令Ｘ３の処理が終わったため、信号線Ｌ１を管理するＢＵＳＹフラグ９の（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０  ＢＵＳＹ）がリセットされる。
【００６５】
ここで、図３に示されるように、従来動作では第１命令デコードステージ１０１、命令デコーダ１０２、第２命令デコードステージ１０３までの動作は変わらないが、リソース一致検出回路１０４は先行命令を格納している命令発行ステージ１０５、１０６の命令と第２命令デコードステージ１０３に格納している後続命令間のリソース一致を検出し、一致を検出すると第２命令デコードステージ１０３の命令は命令発行ステージ１０５、１０６の命令が命令発行するまでセットすることができない。よって今回の命令列では命令発行ステージ１０５、１０６に命令Ｘ１〜Ｘ４が並ぶことがなく、先行命令を命令発行してリソース一致検出回路１０４でリソースの一致が検出された命令発行ステージが空けば後続命令をセットできる。命令は命令受け取り順に発行し、競合の信号線Ｌ１（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０）以外のリソース要因により命令発行が遅れた場合は信号線Ｌ１（ＶＤＲ  Ｗｒｉｔｅ  ＰＡＴＨ０）を有効に使用できない。
【００６６】
［効果］
以上の説明により、本発明のベクトル処理装置によれば、命令と先行命令とでリソースが競合した場合、競合関係をフラグ化することにより、多くの命令を命令発行ステージにエントリできる。また、命令と先行命令とで調停を行い、優先順序が高く発行可能な命令から発行することにより、リソースを効率良く使用することができる。
【図面の簡単な説明】
【００６７】
【図１】図１は、従来のベクトル処理装置の構成を示している。
【図２】図２は、本発明の実施形態によるベクトル処理装置の構成を示している。
【図３】図３は、従来のベクトル処理装置、及び、本発明の実施形態によるベクトル処理装置の動作を示すタイミングチャートである。
【図４】図４は、ベクトル演算処理装置の概略図である。
【符号の説明】
【００６８】
１    第１命令デコードステージ、
２    命令デコーダ、
３    第２命令デコードステージ、
４    リソース一致検出回路、
５    Ａ０命令発行ステージ優先フラグ、
６    Ａ０命令発行ステージ、
７    Ｍ０命令発行ステージ優先フラグ、
８    Ｍ０命令発行ステージ、
９    ＢＵＳＹフラグ、
１０    Ａ０命令発行チェック回路、
１１    Ｍ０命令発行チェック回路、
１２    Ａ０優先チェック回路、
１３    Ｍ０優先チェック回路、
１４    発行指示、
１５    発行指示、
１６    Ａ０命令発行ステージ順序フラグ、
１７    Ｍ０命令発行ステージ順序フラグ、
２１〜２８    ベクトルデータレジスタ（ＶＤＲ）、
２９〜３６    ベクトルレジスタ（ＶＡＲ）、
３７    ベクトル演算器（ＡＤＤ０）、
３８    ベクトル演算器（ＭＬＴ０）、
３９    ベクトル演算器（ＭＬＴ１）、
４０    ベクトル演算器（ＡＤＤ１）、
４１    Ｘ−ＢＡＲスイッチ、
１０１    第１命令デコードステージ、
１０２    命令デコーダ、
１０３    第２命令デコードステージ、
１０４    リソース一致検出回路
１０５    命令発行ステージ（０系）、
１０６    命令発行ステージ（１系）、
１０７    ＢＵＳＹフラグ、
１０８    発行チェック回路、
１０９    発行指示、
１１０    選択指示、
１１１    選択部、
【図１】
0004985452.tif 000002
【図２】
0004985452.tif 000003
【図３】
0004985452.tif 000004
【図４】
0004985452.tif 000005