(57)【要約】【課題】発行ステージに出来るだけ多くの命令をエントリさせることによりできるだけ多くの命令が追い越し発行できるようなベクトル処理装置を提供する。【解決手段】命令をグループに分けた複数の発行ステージ（６、８）と、発行ステージ（６、８）にセットされた命令とデコードステージ（３）にセットされている後続命令とのリソースの関係（一致）を検出するリソース一致検出回路（４）と、リソース一致検出回路（４）の結果を格納する順序フラグ（５、７）を有し、発行ステージ（６、８）の順序フラグ（５、７）が点灯していないことと、使用するリソースに対応するビジーフラグ（９）が点灯していないことが満たされれば命令発行を可能にする手段を備える。【選択図】図１
2008269067.tif 000002
【特許請求の範囲】
【請求項１】
命令の実行順序を保障すべき場合のみ順序を保障し、その必要がない場合は複数命令の追い越し実行を可能とする命令発行制御部を具備するベクトル処理装置。
【請求項２】
命令をグループに分けた複数の発行ステージ（６、８）と、発行ステージ（６、８）にセットされた命令とデコードステージ（３）にセットされている後続命令とのリソースの関係（一致）を検出するリソース一致検出回路（４）と、リソース一致検出回路（４）の結果を格納する順序フラグ（５、７）を有し、発行ステージ（６、８）の順序フラグ（５、７）が点灯していないことと、使用するリソースに対応するビジーフラグ（９）が点灯していないことが満たされれば命令発行を可能にする手段を備えることを特徴とするベクトル処理装置。
【請求項３】
命令の実行順序を保障すべき場合のみ順序を保障し、その必要がない場合は複数命令の追い越し実行を可能とする命令発行制御部を具備するベクトル処理方法。
【請求項４】
命令をグループに分けた複数の発行ステージ（６、８）と、発行ステージ（６、８）にセットされた命令とデコードステージ（３）にセットされている後続命令とのリソースの関係（一致）を検出するリソース一致検出回路（４）と、リソース一致検出回路（４）の結果を格納する順序フラグ（５、７）を有するベクトル処理装置におけるベクトル処理方法において、発行ステージ（６、８）の順序フラグ（５、７）が点灯していないことと、使用するリソースに対応するビジーフラグ（９）が点灯していないことが満たされれば命令発行を可能にする手順を備えることを特徴とするベクトル処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトル処理装置に関する。
【背景技術】
【０００２】
従来のベクトル処理装置を図３を参照して説明する。
【０００３】
図３において、９０１は命令デコードステージ１、９０２は命令デコーダ、９０３は命令デコードステージ２、９０４はリソース一致検出回路、９０５は命令発行ステージ０、９０６は命令発行ステージ１、９０７はビジーフラグ、９０８は発行チェック回路、９０９は発行ステージ０、１の発行指示、９１０は命令発行が命令発行ステージ０、１のどちらかを指示する命令指示フラグ、９１１は９１０の命令指示フラグでセレクトされた命令発行ステージ０、１の命令が格納される発行命令で構成される。９０１の命令デコードステージ１にセットされた命令は、９０２の命令デコーダで命令が使用するリソースのリクエストなどにデコードされ、９０３の命令デコードステージ２に格納される。発行ステージ９０５、９０６が空いていれば次クロックで発行ステージにセット可能だが空いていなければ空くまで待たされる。また、先行命令が９０５、９０６の発行ステージにある場合、９０３の命令デコードステージ２のリクエストと命令発行ステージ９０５、９０６の関係に一致があるかを９０４のリソース一致検出回路で検出する。一致が検出されると９０３の命令デコードステージ２に格納された命令リクエストは、一致が検出された先行命令が発行されるまで９０５の命令発行ステージ０、９０６の命令発行ステージ１のどちらかが空いていても命令をセットできず後続命令を待たせる課題があった。
【特許文献１】特開平０８−３０５５６７号公報
【特許文献２】特開平０９−００６７５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のベクトル処理装置の命令追越し発行は、先行２命令の命令間でリソースの一致がある場合、後続命令は先行命令が発行されるまで発行ステージにセットできず、先行２命令間とリソースが一致しなくても実行することができず処理が止まってしまい性能低下になっていた。
【０００５】
本発明の目的は発行ステージに出来るだけ多くの命令をエントリさせることによりできるだけ多くの命令が追い越し発行できるベクトル処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
命令をグループに分けた複数の発行ステージ（図１の６、８）と、発行ステージ（図１の６、８）にセットされた命令とデコードステージ（図１の３）にセットされている後続命令とのリソースの関係（一致）を検出するリソース一致検出回路（図１の４）と、リソース一致検出回路（図１の４）の結果を格納する順序フラグ（図１の５、７）を有し、発行ステージ（図１の６、８）の順序フラグ（図１の５、７）が点灯していないことと、使用するリソースに対応するビジーフラグ（図１の９）が点灯していないことが満たされれば命令発行を可能にする手段。
【発明の効果】
【０００７】
本発明の効果は命令の実行順序を保障すべき場合のみ順序を保障し、その必要がない場合は複数命令の追い越し実行が可能となり性能の向上が期待できることである。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【０００９】
本発明は、ベクトル処理装置の命令発行制御部において、命令の実行順序を保障すべき場合のみ順序を保障し、その必要がない場合は複数命令の追い越し実行を可能とすることを特徴としている。
【００１０】
図１を参照すると、本発明の一実施形態としてのベクトル処理装置の発行制御部が示されている。図１において、１は命令デコードステージ１、２は命令デコーダ、３は命令デコードステージ２、４はリソース一致検出回路、５は６のＡ０発行ステージ（加算器系）にセットされた命令のＡ０発行ステージ（加算器系）順序フラグ、６はＡ０命令発行ステージ（加算器系）、７は８のＭ０発行ステージ（乗算器系）にセットされたＭ０発行ステージ（乗算器系）命令の順序フラグ、８はＭ０命令発行ステージ（乗算器系）、９はビジーフラグ、１０はＡ０命令発行ステージの命令発行チェック回路、１１はＭ０命令発行ステージの命令発行チェック回路、１２はＡ０発行ステージの発行指示、１３はＭ０発行ステージの発行指示で構成される。順序フラグとは、自命令が発行ステージにセットされる時点で、他の発行ステージに自命令より順序が先である命令が存在することを示すフラグである。順序フラグには他の発行ステージに対応したフラグがそれぞれあり、順序フラグに対応した発行ステージの命令が発行された時点でリセットされ、順序フラグが全てリセットになった時点で自命令のリクエストに対応したビジーフラグをチェックして発行可能になる。発行ステージにセットされている未発行の先行命令と後続命令間の発行順序はリソース一致がある場合は順序フラグで発行管理し、発行済みの命令はビジーフラグで後続命令を発行管理する。以下説明を容易にする為、順序フラグと発行ステージの組み合わせを５、６と７、８の２個で説明する。１の命令デコードステージ１にセットされた命令は、２の命令デコーダで命令が使用するリソースのリクエストにデコードされ、３の命令デコードステージ２に格納される。発行ステージ６、８が空いていれば次クロックで発行ステージにセット可能だが空いていなければ空くまで待たされる。先行命令が６、８の発行ステージにある場合、３の命令デコードステージ２のリクエストと命令発行ステージ６、８のリクエストの関係に一致があるかを４のリソース一致検出回路で検出する。検出結果は、命令発行ステージ６が空けば５のＡ０発行ステージ順序フラグにセットされ、命令発行ステージ８が空けば７のＭ０発行ステージ順序フラグにセットされる。３の命令デコードステージ２に格納された命令リクエストは、命令発行ステージ６が空けば命令発行ステージ６にセットされ、命令発行ステージ８が空けば命令発行ステージ８にセットされる。命令発行ステージ６、８が空いている場合は命令順や命令種別の規則に従ってセットされる。１０のＡ０発行チェック回路は、６のＡ０命令発行ステージの命令リクエストに対応するリソースが空いているかを９のビジーフラグでチェックするのと、先行命令に順序を保障しなければならない命令があるかを５のＡ０順序フラグでチェックする。両チェックがＯＫになると１２の命令発行指示が点灯し、６のＡ０命令発行ステージの命令リクエストに対応した９のビジーフラグがセットされ、７のＭ０発行ステージ順序フラグ内のＡ０命令発行ステージに対応した順序フラグがリセットされる。同様に１１のＭ０発行チェック回路は、８のＭ０命令発行ステージの命令リクエストに対応するリソースが空いているかを９のビジーフラグでチェックするのと、先行命令に順序を保障しなければならない命令があるかを７のＭ０順序フラグでチェックする。両チェックがＯＫになると１３の命令発行指示が点灯し、８のＭ０命令発行ステージの命令リクエストに対応した９のビジーフラグがセットされ、５のＡ０発行ステージ順序フラグ内のＭ０命令発行ステージに対応した順序フラグがリセットされる。上記の説明で発行ステージにセットされた時点での複数の発行ステージにセットされている先行命令との関係を順序フラグで示すことにより順序が保障され、順序フラグが全てリセットになった時点で発行が可能になり後続の命令でも先行命令とのリソースの一致がなければ先行命令を複数追い越しての発行が可能になる。
【００１１】
次に図１のベクトル処理装置の下記命令列の動作を図２に示すタイムチャートを使用して説明する。
（１）  Ｖ２  ＜−  Ｖ０  ＋  Ｖ１
（２）  Ｖ３  ＜−  Ｖ６  ＋  Ｖ７
（３）  Ｖ０  ＜−  Ｖ４  ＊  Ｖ５
図１、２において命令間でリソースの一致がないケースを従来技術と比較して説明する。
【００１２】
ＩＮから上記の命令順で図１−１の命令デコードステージ１に（１）がセットされる。次クロックで（１）の命令は図１−２の命令デコーダで命令が使用するリソースのリクエスト、ＲＥＡＤリクエストＶ０、Ｖ１、ＷｒｉｔｅリクエストＶ２、使用演算器Ａ（加算器系）にデコードされ図１−３の命令デコードステージ２にセットされると同時に（２）の命令が図１−１の命令デコードステージ１にセットされる。次に図１−３の命令デコードステージ２にセットされた（１）の命令は加算器系命令なので図１−６のＡ０発行ステージにセットされるが図１−５のＡ０発行ステージ順序フラグには先行命令がない為何もセットされない。図１−１の命令デコードステージ１の（２）の命令は、図１−２の命令デコーダで命令が使用するリソースのリクエスト、ＲＥＡＤリクエストＶ６、Ｖ７、ＷｒｉｔｅリクエストＶ３、使用演算器Ａ（加算器系）にデコードされ図１−３の命令デコードステージ２にセットされると同時に（３）の命令が図１−１の命令デコードステージ１にセットされる。図１−６のＡ０発行ステージにセットされた（１）の命令はＲＥＡＤリクエストＶ０、Ｖ１、ＷｒｉｔｅリクエストＶ２、使用演算器Ａ（加算器系）に対応する図１−９のビジーフラグが点灯してないことと図１−５のＡ０発行ステージ順序フラグが全てリセットされていることをチェックして図１−１２の命令発行指示を点灯する。次クロックで図１−１２の命令発行指示によりの命令のＲＥＡＤリクエストＶ０、Ｖ１、ＷｒｉｔｅリクエストＶ２、使用演算器Ａ（加算器系）に対応する図１−９のビジーフラグをセットすると同時に図１−３の命令デコードステージ２にセットされている（２）の命令が図１−６のＡ０発行ステージにセットされる。この時図１−５のＡ０発行ステージ順序フラグは再セットされる。図１−１の命令デコードステージ１の（３）命令は図１−２の命令デコーダで命令が使用するリソースのリクエスト、ＲＥＡＤリクエストＶ４、Ｖ５、ＷｒｉｔｅリクエストＶ０、使用演算器Ｍ（乗算器系）にデコードされ図１−３の命令デコードステージ２にセットされる。（１）命令の発行で使用演算器Ａのビジーを示す図２のビジーフラグＡがセットされ図１−６のＡ０発行ステージの後続（２）命令はビジーフラグＡがリセットされるまで発行は抑止される。ここで従来動作では図１−６のＡ０発行ステージ、図１−８のＭ０発行ステージに値する発行ステージは１個のみだった為、図２の従来動作参照、先行命令（２）が発行されるまで図１−３の命令デコードステージ２の（３）命令は発行ステージが空くまで待たされることになる。図２の本発明動作では、順序フラグを発行ステージに設置することにより、図１−６のＡ０発行ステージ、図１−８のＭ０発行ステージの発行ステージを複数増設することが可能になり、図１−３の（３）命令は待つことなく空いている図１−８のＭ０発行ステージにセット可能になり、リソースの一致がない為即座に発行される。
【００１３】
引用文献１については段落００２８〜００２９で競合検査において処理中のリソースと後続のリソースが一致した時に命令の発行を抑止するとありますが、本発明では修理中（演算実行）の命令と後続未発行の命令はＢＵＳＹ  ＦＬＡＧで抑止する点で相違する。
【００１４】
引用文献２については第００１２〜００１４に記載の実行制御手段に命令順でセットされ、命令セット順で実行され、ビジー状態をチェックする事なく演算の終了をみて後続命令を発行すると言う動作よりも、本発明のＢＵＳＹ  ＦＬＡＧで後続命令の発行タイミングを調整したほうが命令発行の前倒しができる。
【００１５】
本発明によれば、複数のフラグを用いて複数命令の追い越し実行を可能とする命令発行制御部を備える。
【００１６】
命令発行とパイプライン処理中の取り方で変わってくるが、本発明の命令発行とは演算の実行を示し、命令発行と同時にリソースに対するＢＵＳＹ  ＦＬＡＧをＳＥＴしＢＵＳＹ  ＦＬＡＧ点灯中は後続命令の発行（演算実行）を抑止します。ＢＵＳＹ  ＦＬＡＧには演算ラテンシ（レイテンシ）に合わせて数種類用意しリソースの使用に隙間ができない様にしている。
【００１７】
本発明の順序ＦＬＡＧとは発行（演算実行）する前の順序を示す手段でＤＡＴＡを壊さない様に順序を決める。命令を発行するステージを発行ステージと呼んでいるが、発行ステージにある命令は未発行であり、後続の命令が発行ステージにＳＥＴされる時には自分よりも前に発行ステージにＳＥＴされた命令との関係を知る必要がありリソースの一致が検出された場合は相手に対応する順序ＦＬＡＧを発行ステージＳＥＴと同時にＳＥＴする。ＳＥＴされた順序ＦＬＡＧは順序ＦＬＡＧに対応する発行ステージの命令が発行（演算実行）と同時にＲＥＳＥＴされる。後続命令は順序ＦＬＡＧが全てＲＥＳＥＴされて発行の権利を得ることができる。次に発行の権利を得た発行ステージの命令は自分のリソースに対応するＢＵＳＹ  ＦＬＡＧをチェックする。対応するＢＵＳＹ  ＦＬＡＧが全てＲＥＳＥＴされたことをチェックして発行（演算実行）する。
【００１８】
発行ステージをハードウェア量が許す限り増やせば後続命令が先行命令を追い越すケースを増やすことができリソースを有効に使用できる。また、デコードステージに滞留するＴＯＴＡＬ時間を短くできる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態によるベクトル処理装置の構成を示す図である。
【図２】本発明の実施形態によるベクトル処理装置の動作と従来例によるベクトル処理装置の動作とを示すタイミング図である。
【図３】従来例によるベクトル処理装置の構成を示す図である。
【符号の説明】
【００２０】
１  デコードステージ１
２  命令デコーダ
３  命令デコードステージ２
４  リソース一致検出回路
５  Ａ０発行ステージ（加算器系）にセットされた命令のＡ０発行ステージ（加算器系）順序フラグ
６  Ａ０命令発行ステージ（加算器系）
７  ８のＭ０発行ステージ（乗算器系）にセットされたＭ０発行ステージ（乗算器系）命令の順序フラグ
８  Ｍ０命令発行ステージ（乗算器系）
９  ビジーフラグ
１０  Ａ０命令発行ステージの命令発行チェック回路
１１  Ｍ０命令発行ステージの命令発行チェック回路
１２  Ａ０発行ステージの発行指示
１３  Ｍ０発行ステージの発行指示
【図１】
2008269067.tif 000003
【図２】
2008269067.tif 000004
【図３】
2008269067.tif 000005