(57)【要約】【課題】ハードウェア量の増大を抑止しながら、命令間の追い越し数を増やし、メモリネットワークの効率化を実現するベクトル命令間追い越し判定装置と方法の提供。【解決手段】アドレス比較部（２）を複数のベクトルストア命令に対して共通に１つ備え、アドレス比較部（２）では、複数のベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係のチェックを時分割で行い、ベクトル命令のアドレス、ディスタンス、要素数情報からメモリアクセス要素に展開する要素展開部（４）における展開処理と、アドレス比較部（２）での複数のベクトルストア命令と後続のベクトルロード命令のアドレス比較処理とが並行して実行可能とされる。【選択図】図１
2010198439.tif 000002
【特許請求の範囲】
【請求項１】
先行するベクトルストア命令と後続のベクトルロード命令間のアドレスの依存関係をチェックするアドレス比較部が、
チェック対象の複数のベクトルストア命令に対して共通に１つのアドレス比較論理を備え、
前記１つのアドレス比較論理は、複数のベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係のチェックを時分割で行い、
ベクトル命令のベースアドレス、ディスタンス、要素数からメモリアクセス要素に展開する要素展開部での展開処理と、前記アドレス比較論理によるアドレス比較処理とが並行して実行可能とされている、ことを特徴とするベクトル命令間追い越し判定装置。
【請求項２】
前記１つのアドレス比較論理により複数のベクトルストア命令とベクトルロード命令のアドレス比較を時分割で行う期間が、前記要素展開部での展開処理の期間内に収まり、前記１つのアドレス比較論理によりアドレス比較を時分割で行うことで増加した時間は、前記要素展開部での展開処理の期間で隠蔽される、ことを特徴とする請求項１に記載のベクトル命令間追い越し判定装置。
【請求項３】
前記アドレス比較部が複数のグループを備え、
複数のグループの各々が、
複数のベクトルストア命令のアドレス情報を保持する複数の命令アドレスレジスタと、
前記アドレス比較論理での比較結果を格納する複数の比較結果レジスタと、
前記複数の命令アドレスレジスタのうち１つを選択して前記アドレス比較論理に供給する第１のセレクタと、
前記第１のセレクタで選択された命令アドレスレジスタのアドレス情報と後続のベクトルロード命令のアドレス情報を比較する前記アドレス比較論理と、
前記アドレス比較論理での比較結果を受け、前記比較結果を前記複数の比較結果レジスタのうち対応する比較結果レジスタに出力する第２のセレクタと、
を備えたことを特徴とする請求項１又は２に記載のベクトル命令間追い越し判定装置。
【請求項４】
前記第１及び第２のセレクタは複数グループ間で共通に選択される、ことを特徴とする請求項３に記載のベクトル命令間追い越し判定装置。
【請求項５】
前記アドレス比較部で仕掛り中のベクトルストア命令の個数を管理し、アドレス比較のサイクル数を可変させる比較制御部を備えたことを特徴とする請求項１に記載のベクトル命令間追い越し判定装置。
【請求項６】
前記比較制御部は、仕掛り中のベクトルストアの命令の個数をカウントするカウンタと、
仕掛り中の先頭のベクトルストア命令を指示するポインタと、
を備えている、請求項５に記載のベクトル命令間追い越し判定装置。
【請求項７】
前記アドレス比較部が複数のグループを備え、
複数のグループの各々が、
複数のベクトルストア命令のアドレス情報を保持する複数の命令アドレスレジスタと、
前記アドレス比較論理での比較結果を格納する複数の比較結果レジスタと、
前記複数の命令アドレスレジスタのうち１つを選択して前記アドレス比較論理に供給する第１のセレクタと、
前記第１のセレクタで選択された命令アドレスレジスタのアドレス情報と後続のベクトルロード命令のアドレス情報を比較する前記アドレス比較論理と、
前記アドレス比較論理での比較結果を受け、前記比較結果を前記複数の比較結果レジスタのうち対応する比較結果レジスタに出力する第２のセレクタと、
を備え、
前記比較制御部は、前記アドレス比較部の各グループの命令アドレスレジスタにアドレス情報を格納するベクトルストア命令の格納順を制御する信号を生成する請求項５又は６に記載のベクトル命令間追い越し判定装置。
【請求項８】
請求項１乃至７のいずれか１項に記載のベクトル命令間追い越し判定装置を、ＣＰＵの命令発行部とメモリ間に備えたベクトル演算装置。
【請求項９】
先行するベクトルストア命令と後続するベクトルロード命令のアドレスを比較し、追い越し判定を行う方法であって、
複数のベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係のチェックを１つのアドレス比較論理で時分割で行い、
ベクトル命令のアドレス、ディスタンス、要素数情報からメモリアクセス要素に展開する展開処理と、前記アドレス比較論理でのアドレス比較処理とが並行して実行可能とされる、ベクトル命令間追い越し判定方法。
【請求項１０】
仕掛り中のベクトルストア命令の個数を管理し、アドレス比較のサイクル数を可変させる請求項９に記載のベクトル命令間追い越し判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトル演算装置に関し、特に、ベクトル命令間での追い越し判定を行う装置と方法に関する。
【背景技術】
【０００２】
ベクトル演算装置において、先行するベクトルストア命令のメモリアクセス領域に後続のベクトルロード命令のメモリアクセス領域が重なっていない場合、後続のベクトルロード命令に先にメモリアクセスを実行させ、メモリアクセスの高速化を図るベクトルストア命令の追い越し制御が行われている。ベクトル命令の追い越し制御については例えば特許文献１の記載が参照される。
【０００３】
図６は、ベクトル演算装置において最大１６命令のベクトルストア命令をベクトルロード命令が追い越すことができる構成の典型例を示す図である（なお、図６は関連技術の説明のため、本発明者が新たに作成した図面である）。
【０００４】
図６に示すように、命令パイプ部１、アドレス比較部２’、追い越し判定部３、要素展開部４を備えている。命令パイプ部１は、供給されたベクトルロード命令、ベクトルストア命令が通過する（図６の丸印１）。
【０００５】
命令は追い越し判定部３を経て要素展開部４でベクトル命令の要素が展開されメモリネットワークへ出力される（図６の丸印３）。
【０００６】
ベクトルストア命令は、要素展開部４でストアデータがベクトルストアデータバッファ５に揃うまで追い越し判定部３に保持される。
【０００７】
アドレス比較部２’は、先行するベクトルストア命令と命令パイプ部１を通過しているベクトルロード命令のアドレスを比較しアドレス依存関係をチェックする。チェック結果は、追い越し判定部３へ出力される。
【０００８】
アドレス比較部２’は後続のリクエストとの比較に使用するため、命令パイプ部１を通過したベクトルストア命令のアドレス情報を保持する機構を持つ。
【０００９】
アドレス比較部２’は、先行する１つのベクトルストア命令のアドレスと後続のベクトルロード命令のアドレスを比較するアドレス比較論理を１６個備えており、１サイクルで最大１６個のベクトルストア命令と後続のベクトルロード命令のアドレス比較（並列比較）が可能である。アドレス比較部２’はベクトルストア命令のアドレス情報を格納するレジスタ（命令アドレスレジスタ）と、アドレス比較論理と、アドレス比較論理の比較結果を格納するレジスタ（比較結果レジスタ）を備えている。
【００１０】
追い越し判定部３は、ストアデータがベクトルストアデータバッファ５に揃っていないベクトルストア命令を保持し、後続の命令との順序保証をする機能をもつ。
【００１１】
追い越し判定部３は、アドレス比較部２’でのアドレス比較結果を用い、先行するベクトルストア命令とアドレスの依存がない(例えばメモリアクセス領域が重ならない)ベクトルロード命令を要素展開部４に出力する（図６の丸印２）。
【００１２】
要素展開部４は、ベクトル命令のアドレス（ベースアドレス）、ディスタンス（ベースアドレスからの距離）、要素数情報（ストアデータの数）から、メモリアクセス要素に展開する。ベクトルストア命令の場合、ストアデータを展開アドレス（要素展開部４で展開された、ストアデータの格納先アドレス）とマージし、メモリネットワークに出力する（図６の丸印３）。図６では、メモリアクセス要素（マージしたストアデータと展開アドレス）を、８個のメモリポート（メモリポート０〜７）から出力する。１つのベクトルストア命令の要素数がメモリネットワークのポート数より多い場合、複数サイクルをかけ、メモリネットワークへ出力される。例えば図６において、１つのベクトルストア命令の要素数（ストアデータの数）が１６の場合、１サイクルあたり８つのメモリポート（メモリポート０〜７）から８個の要素がパラレルに出力され、合計２サイクルかけ、１６個の要素がメモリネットワークへ出力される。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平９−２３１２０３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
以下に本発明による分析を与える。
【００１５】
メモリネットワークの効率化を図るため、ベクトル命令（ストア−ロード）間の追い越し命令数を増加させるには、図６に示したように、アドレス比較論理（アドレス比較回路）の数をストアの命令数に合わせて増加させる必要があった。
【００１６】
アドレス比較論理には、加算器、比較器が含まれており、多くのハードウェア量を必要とする。
【００１７】
したがって、本発明の目的は、ハードウェア量の増大を抑止しながら、命令間の追い越し数を増やし、メモリネットワークの効率化を実現するベクトル命令間追い越し判定装置と方法を提供することにある。
【課題を解決するための手段】
【００１８】
本発明によれば、先行するベクトルストア命令と後続のベクトルロード命令間のアドレスの依存関係をチェックするアドレス比較部が、チェック対象の複数のベクトルストア命令に対して共通に１つのアドレス比較論理を備え、前記１つのアドレス比較論理は、複数のベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係のチェックを、時分割で行い、ベクトル命令のベースアドレス、ディスタンス、要素数からメモリアクセス要素に展開する要素展開部での展開処理と、前記アドレス比較部におけるアドレス比較処理とが並行して実行可能とされている。
【００１９】
本発明によれば、先行するベクトルストア命令と後続するベクトルロード命令のアドレスを比較し、追い越し判定を行う方法であって、
複数のベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係のチェックを１つのアドレス比較論理で時分割で行い、
ベクトル命令のアドレス、ディスタンス、要素数情報からメモリアクセス要素に展開する展開処理と、前記アドレス比較論理でのアドレス比較処理とが並行して実行可能とされる、ベクトル命令間追い越し判定方法が提供される。
【発明の効果】
【００２０】
本発明によれば、ハードウェア量の増大を抑止しながら、ベクトルメモリアクセス命令間の追い越し数を増やし、メモリネットワークの効率化を実現することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施例の構成を示す図である。
【図２】本発明の一実施例の動作の一例を説明するタイミング図である。
【図３】本発明の一実施例の動作の別の例を説明するタイミング図である。
【図４】本発明の他の実施例の構成を示す図である。
【図５】本発明の一実施例の動作の一例を説明するタイミング図である。
【図６】関連技術の構成例を示す図である。
【発明を実施するための形態】
【００２２】
本発明は、先行するベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係をチェックする論理を増やさずに、アドレス比較対象命令（ベクトルストア命令）の数を増やし、複数サイクル（複数Ｔ）でチェックを行う。アドレス比較のＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）は増加するが、ベクトル命令の特徴であるアドレス展開時のＴＡＴによって複数のアドレスア比較で増加したＴＡＴを隠蔽する。
【００２３】
アドレス比較部（２）では、１つのアドレス比較論理（アドレス比較回路）を、複数のベクトルストア命令で共有し、１つのアドレス比較論理で複数サイクル（図１では４サイクル）かけて複数のベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係のチェックを行っている。
【００２４】
ベクトル命令は、メモリの出力ポート以上の要素を持っている場合、複数のサイクル数をかけ、要素展開部(図１の１４)において要素展開され、メモリポートから不図示のメモリへ出力される。
【００２５】
アドレス比較部（２）において、アドレス比較論理は、比較対象の複数のベクトルストア命令で共有され、複数サイクルかけて、アドレス比較するが、これを、要素展開部（４）におけるベクトル命令の展開処理のＴＡＴで隠蔽することで、少ないハードウェア量で追い越し対象数（ベクトルロード命令で追い越されるベクトルストア命令の数）を増やすことを実現する。
【００２６】
従来、要素展開部（４）でベクトル命令の要素展開を実行中、要素展開部４よりも上流のユニットはＨＯＬＤ（ホールド）状態に設定され、アドレス比較論理は使用されていない。
【００２７】
これに対して、本発明においては、ベクトル命令の要素展開部（４）においてベクトル命令の要素展開を行うタイミングに、アドレス比較論理でアドレス比較を行うことが可能とされており、これにより、１つのアドレス比較論理により順次時分割で行われる複数のベクトルストア命令の比較動作のＴＡＴを隠蔽し、性能低下の回避、及び回路規模の縮減を実現しながら、追い越し命令数（ベクトルロード命令で追い越されるベクトルストア命令の数）を増やしている。
【００２８】
すなわち、本発明によれば、要素展開部（４）におけるベクトル命令のアドレス展開に要するＴＡＴ内に隠れる範囲で、アドレス比較を複数サイクル（Ｔ）に渡って行うことで、アドレス比較論理を有効に活用することにより、ハードウェア量の増加を防ぐことができる。
【００２９】
本発明においては、アドレス比較論理の個数と比較対象のリクエスト（ベクトルストア命令）の個数と、を、１：１（従来）から、１：ｎ（ｎ≧２）となるようにし、時間ｎＴ（Ｔは１サイクル期間をかけてアドレスの比較を行う。（ｎ−１）ＴのＴＡＴ増となるが、これを、ベクトル命令の展開処理のＴＡＴで隠蔽する。以下実施例に即して説明する。
【実施例】
【００３０】
図１は、本発明の一実施例の構成を示す図である。本実施例において、ベクトル命令間追い越し判定装置は、ベクトル演算装置内のＣＰＵ内の命令発行部と、メモリ間に構成される。図１を参照すると、本実施例のベクトル命令間追い越し判定装置は、命令パイプ部１と、アドレス比較部２と、追い越し判定部３と、要素展開部４を備えている。
【００３１】
命令パイプ部１は、供給されたベクトルロード命令、ベクトルストア命令が通過する（図１の丸印１）。
【００３２】
命令は、追い越し判定部３を経て要素展開部４でベクトル命令の要素が展開され、メモリネットワークへ出力される（図１の丸印３）。
【００３３】
ベクトルストア命令は、要素展開部４でストアデータがベクトルストアデータバッファ５に揃うまで、追い越し判定部３で保持される。
【００３４】
アドレス比較部２は、後続のリクエストとの比較に使用するため、命令パイプ部１を通過した複数のベクトルストア命令のアドレス情報を保持する機構を持つ。アドレス比較部２は、先行するベクトルストア命令のアドレス情報と、命令パイプ部１を通過しているベクトルロード命令のアドレス情報を比較し、アドレス依存関係をチェックする。具体的には、アドレス比較部２はメモリアクセス対象領域が一致するか否かを比較判定し、一致／不一致情報を比較結果として出力する。アドレス比較部２でのチェック結果は、追い越し判定部３へ出力される。
【００３５】
本実施例において、アドレス比較部２は、先行するベクトルストア命令に対して１：１でアドレス比較論理（アドレス比較回路）を持つのではなく、比較対象の複数のベクトルストア命令に対して１つのアドレス比較論理（アドレス比較回路）を備えている。アドレス比較論理は、複数のベクトルストア命令と後続のベクトルロード命令のアドレス比較を時分割で行う。アドレス比較論理は、１サイクルに１つのベクトルストア命令と後続のベクトルロード命令のアドレス比較を行う場合、複数のベクトルストア命令と後続のベクトルロード命令のアドレス比較を、複数サイクルかけて行う。図１に示す例では、アドレス比較部２は、グループ０〜３の４つのグループを有し、各グループは、４つのベクトルストア命令で１つのアドレス比較論理を共有する。
【００３６】
アドレス比較部２において、各グループは、４つのベクトルストア命令のアドレス情報を保持する４つのレジスタ（Ａ、Ｂ、Ｃ、Ｄレジスタ）の１つを４つのグループ間で共通に選択する第１のセレクタを備え、アドレス比較論理では、第１のセレクタ（セレクタ１）で選択された命令アドレスとベクトルロード命令のアドレスとを比較する。アドレス比較論理による比較結果は、第１のセレクタ（セレクタ１）での選択に対応した選択動作を行う第２のセレクタ（セレクタ２）を介して、比較結果を保持する４つのレジスタ（Ｇ、Ｈ、Ｉ、Ｊレジスタ）のうちの１つに格納される。例えばＡ、Ｂ、Ｃ、Ｄレジスタにベクトルストア命令のアドレス情報が格納されている場合、アドレス比較論理によるベクトルロード命令のアドレス情報との比較は、時分割で４サイクルかけて行われ、比較結果は、対応するＧ、Ｈ、Ｉ、Ｊレジスタにそれぞれ格納される。
【００３７】
追い越し判定部３は、ストアデータがベクトルストアデータバッファ５に揃っていないベクトルストア命令を保持し、後続の命令との順序保証をする機能を備えている。
【００３８】
追い越し判定部３は、アドレス比較部２のチェック結果を用い、先行するベクトルストア命令とアドレスの依存がないベクトルロード命令を出力する（図１の丸印２）。
【００３９】
要素展開部４は、ベクトル命令のアドレス（ベースアドレス）、ディスタンス、要素数情報からメモリアクセス要素に展開する。ベクトルストア命令の場合、ストアデータを展開アドレスとマージし、メモリネットワークに出力する（図１の丸印３）。１つのベクトル命令の要素数がメモリネットワークのポート数よりも多い場合、複数サイクルをかけ、メモリネットワークへ展開される。
【００４０】
次に、本実施例の動作を説明する。図１に示す構成において、命令パイプ部１内の丸印１の位置にベクトルストア命令が供給されると、命令パイプ部１のＦレジスタに格納されると同時に、アドレス比較部２のＡレジスタに、ベクトルストア命令のアドレス情報が格納される。
【００４１】
命令は、命令パイプ部１のＫレジスタを通り、追い越し判定部３に到達する。追い越し判定部３は、ベクトルストアデータ（ベクトルストア命令でメモリに格納される複数のストアデータ）がベクトルストアデータバッファ５に全てに格納されるまで待機する。
【００４２】
ベクトルストアデータバッファ５に全てのストアデータが格納されると、ベクトルストアデータバッファ５からの通知が、追い越し判定部３へ送信される（図１の丸印５）。
【００４３】
ベクトルストア命令は、要素展開部４に送られ（図１の丸印２）、メモリアクセス要素に展開される(図１の丸印３)。  
【００４４】
図２は、先行する仕掛り中のベクトルストア命令が追い越し判定部３にあり、要素数３２のベクトルロード命令が３命令（命令０、命令１、命令２）供給され、すべてのベクトルストア命令を追い越す動作例のタイムチャートを示す図である。
【００４５】
先行するベクトルストア命令が仕掛り中であった場合に、図１の丸印１にベクトルロード命令が供給されると、命令パイプ部１のＦレジスタに格納され、次のサイクルで先行するベクトルストア命令のアドレスと比較される。
【００４６】
図２の期間ａ、ｂ、ｃで示すように、命令パイプ部１のＦレジスタに格納されたベクトルロード命令と、アドレス比較部２の各グループのＡ、Ｂ、Ｃ、Ｄレジスタに格納されたベクトルストア命令間でのアドレス比較が、４サイクル（４Ｔ）間で行われる。命令パイプ部１のレジスタＦのベクトルロード命令はアドレス比較の４サイクルの間保持される。
【００４７】
次のサイクルで、ベクトルロード命令は命令パイプ部１のＫレジスタに格納され、最大１６のベクトルストア命令とのアドレス比較結果も、各グループのＧ、Ｈ、Ｉ、Ｊレジスタにそれぞれ格納される。
【００４８】
次のサイクルで、ベクトルロード命令は、先行するベクトルストア命令とのアドレス比較結果と共に追い越し判定部３に格納され、追い越し判定される。
【００４９】
追い越し判定部３において、ベクトルロード命令（命令０、１、２）が先行する全てのベクトルストア命令との間にアドレスの重なりがない場合、要素展開部４へ送信され（図１の丸印２）、図２の期間ｘ、ｙ、ｚのように、メモリアクセス要素に展開される（図１の丸印３）。
【００５０】
より詳細には、図２において、例えば期間ａの最初のサイクルでは、グループ０、１、２、３のアドレス比較論理においてＡレジスタと命令０のアドレス（命令パイプ部１のＦレジスタの出力）の比較が行われ、比較結果は、グループ０、１、２、３のＧレジスタに格納される。期間ａの２番目のサイクルでは、グループ０、１、２、３のアドレス比較論理においてＢレジスタと命令０のアドレスの比較が行われ、比較結果は、グループ０、１、２、３のＨレジスタに格納される。期間ａの３番目のサイクルでは、グループ０、１、２、３のアドレス比較論理においてＣレジスタと命令０のアドレスの比較が行われ、比較結果は、グループ０、１、２、３のＩレジスタに格納される。期間ａの４番目のサイクルでは、グループ０、１、２、３のアドレス比較論理においてＤレジスタと命令０のアドレスの比較が行われ、比較結果は、グループ０、１、２、３のＪレジスタに格納される。期間ａの４番目のサイクルでは、命令０は命令パイプ部１のＫレジスタに保持出力され、期間ｂの最初のサイクルで追い越し判定部３から命令０が出力され（命令０は先行する仕掛り中のベクトルストア命令を追い越す）、要素展開部４は、命令０（ベクトルロード命令）のベースアドレス、ディスタンス、要素数から、要素０〜要素３１に展開し、８つのメモリポート（メモリポート０〜７）から４サイクル（期間ｘ参照）出力する。ベクトルロード命令を展開した各要素０〜３１はリクエスト（リードアクセスとアドレス）を有する。
【００５１】
期間ｂの最初のサイクルでは、グループ０、１、２、３のアドレス比較論理においてＡレジスタと命令１のアドレス（命令パイプ部１のＦレジスタの出力）の比較が行われ、比較結果は、グループ０、１、２、３のＧレジスタに格納される。期間ｂの２番目のサイクルでは、グループ０、１、２、３のアドレス比較論理においてＢレジスタと命令１のアドレスの比較が行われ、比較結果は、グループ０、１、２、３のＨレジスタに格納される。期間ｂの３番目のサイクルでは、グループ０、１、２、３のアドレス比較論理においてＣレジスタと命令１のアドレスの比較が行われ、比較結果は、グループ０、１、２、３のＩレジスタに格納される。期間ｂの４番目のサイクルでは、グループ０、１、２、３のアドレス比較論理においてＤレジスタと命令１のアドレスの比較が行われ、比較結果は、グループ０、１、２、３のＪレジスタに格納される。期間ｂの４番目のサイクルでは、命令１は命令パイプ部１のＫレジスタに保持出力され、期間ｃの最初のサイクルで追い越し判定部３から命令１が出力され（命令１は先行する仕掛り中のベクトルストア命令を追い越す）、要素展開部４は、命令１（ベクトルロード命令）のベースアドレス、ディスタンス、要素数から、要素０〜要素３１に展開し、８つのメモリポート（メモリポート０〜７）から４サイクル（期間ｙ参照）出力する。
【００５２】
期間ｃの最初のサイクルでは、グループ０、１、２、３のアドレス比較論理においてＡレジスタと命令２のアドレス（命令パイプ部１のＦレジスタの出力）の比較が行われ、比較結果は、グループ０、１、２、３のＧレジスタに格納される。期間ｃの２番目のサイクルでは、グループ０、１、２、３のアドレス比較論理においてＢレジスタと命令２のアドレスの比較が行われ、比較結果は、グループ０、１、２、３のＨレジスタに格納される。期間ｃの３番目のサイクルでは、グループ０、１、２、３のアドレス比較論理においてＣレジスタと命令２のアドレスの比較が行われ、比較結果は、グループ０、１、２、３のＩレジスタに格納される。期間ｃの４番目のサイクルでは、グループ０、１、２、３のアドレス比較論理においてＤレジスタと命令２のアドレスの比較が行われ、比較結果は、グループ０、１、２、３のＪレジスタに格納される。期間ｃの４番目のサイクルでは、命令２は命令パイプ部１のＫレジスタに保持出力され、次のサイクルで追い越し判定部３から命令２が出力され（命令２は先行する仕掛り中のベクトルストア命令を追い越す）、要素展開部４は、命令２（ベクトルロード命令）のベースアドレス、ディスタンス、要素数から、要素０〜要素３１に展開し、８つのメモリポート（メモリポート０〜７）から４サイクル（期間ｙ参照）出力する。上記の通り、図２の動作例は、追い越し判定部３で最大16個まで待機しているベクトルストア命令を、後に連続して命令パイプ部１に供給される３つのベクトルロード命令０、１、２が追い越していく例を示しており、メモリポートに出力される展開要素も期間ｘ、ｙ、ｚと連続している。
【００５３】
なお、図２の動作例は、本実施例のベクトル命令間の追い越し動作の一例を示したものであり、本発明はかかる動作に制限されるものでないことは勿論である。例えば命令０（ベクトルロード命令）で追い越されたベクトルストア命令に関して、ストアデータがベクトルストアデータバッファ５に全てに格納されると、追い越し判定部３で待機していた当該ベクトルストア命令は要素展開部４に出力され、ベクトルストア命令を展開した３２個の展開要素がメモリに出力される（この場合、命令１（ベクトルロード命令）による追い越しは行われない）。
【００５４】
以上説明したように、本実施例においては、以下に記載するような効果を奏する。
【００５５】
アドレス比較論理を複数の比較対象で共有することにより、少ないハードウェア量で多くの命令間の追い越し制御を実現できることである。
【００５６】
ベクトル命令がアドレス展開でＴＡＴを要する構成を利用してアドレス比較論理を複数の比較対象で共有することにより、アドレス比較のＴＡＴの増加を隠蔽することができることである。
【００５７】
次に、本発明の第２の実施例を説明する。本発明の第２の実施例の基本的構成は、上記の通りであるが、アドレス比較のサイクル数（Ｔ数）の制御についてさらに工夫している。図４は、本発明の第２の実施例の構成を示す図である。本実施例は、図１の構成において、命令供給部分に、比較制御部６を備えている。
【００５８】
本実施例は、仕掛り中の被比較対象のベクトルストア命令数をカウントし、サイクル数（Ｔ数）をさらに削減することを実現する。アドレス比較のサイクル数を、前記実施例のように、固定とするのではなく、仕掛り命令数（アドレス比較部で仕掛り中のベクトルストア命令の数）によって変化させる。
【００５９】
図３に示すように、ベクトルロード命令０の要素数（要素展開部４で展開した要素数）が１６以下であった場合には、期間ｄのように、アドレス比較で増加したＴＡＴがメモリネットワーク出力へのＴＡＴの増加としてみえてしまう。
【００６０】
要素展開部４で展開後の要素数が少ないベクトル命令に対しても、効率よく処理するためには、アドレス比較のサイクル数は短くすべきである。
【００６１】
図２、図３を参照して説明した前記実施例では、アドレス比較のサイクル数を固定的に４サイクル（４＝比較対象命令共有数、図２の期間ａ、ｂ、ｃ参照）としている。これに対して、本実施例では、仕掛り中のベクトルストア命令の個数を管理することで、アドレス比較のサイクル数（Ｔ数）を削減することができる。
【００６２】
アドレス比較部２は、１つのアドレス比較論理を、４つの命令で共有しており、そのグループが４つある。１サイクルの間に処理できる命令数は、各グループあたり１命令であり、合計４命令まで可能である。
【００６３】
本実施例においては、前述したように、仕掛り中の命令数を管理することで、アドレス比較のサイクル数を短くすることを可能としている。
【００６４】
仕掛り中のベクトルストア命令数が４命令以下の場合、アドレス比較のサイクル数は１、
仕掛り中のベクトルストア命令数が５命令以上、８命令以下の場合、アドレス比較のサイクル数は２、
仕掛り中のベクトルストア命令数が９命令以上、１２命令以下の場合、アドレス比較のサイクル数は３、
仕掛り中のベクトルストア命令数が１３命令以上の場合、アドレス比較のサイクル数は４、
となる。
【００６５】
比較制御部６は、仕掛り中のベクトルストアの命令の個数をカウントするカウンタ（不図示）を備えている。比較制御部６内のこのカウンタは、ベクトルストア命令の発行に応答してカウンタ値を＋１（１つ加算）し、追い越し判定部３からベクトルストア命令が出力されると、追い越し判定部３から通知を受け（図４の丸印６）、カウンタ値を−１（１つ減算）する。
【００６６】
また、比較制御部６は、先頭のベクトルストア命令を指示するポインタを持つ。このポインタは値０から開始し、追い越し判定部３からベクトルストア命令が出力されると、追い越し判定部３から通知を受け（図４の丸印６）、カウントアップすることで、常に仕掛り中の先頭のベクトルストア命令をポイントすることができる。
【００６７】
比較制御部６は、アドレス比較部２の各グループのＡ、Ｂ、Ｃ、Ｄレジスタに格納するベクトルストア命令の格納順を制御する信号を生成する。
【００６８】
格納する順番は、各グループのＡレジスタから順に、Ｂレジスタ、Ｃレジスタ、Ｄレジスタと格納する。
【００６９】
すなわち、［グループ０のＡレジスタ］→［グループ１のＡレジスタ］→［グループ２のＡレジスタ］→［グループ３のＡレジスタ］→［グループ０のＢレジスタ］→［グループ１のＢレジスタ］→［グループ２のＢレジスタ］→［グループ３のＢレジスタ］→［グループ０のＣレジスタ］→［グループ１のＣレジスタ］→［グループ２のＣレジスタ］→［グループ３のＣレジスタ］→［グループ０のＤレジスタ］→［グループ１のＤレジスタ］→［グループ２のＤレジスタ］→［グループ３のＤレジスタ］→［グループ０のＡレジスタ］に戻る。
【００７０】
比較制御部６のベクトルストア命令の個数（仕掛り命令数）をカウントするカウンタ（不図示）のカウント値から、制御サイクル数を求め、先頭ポインタ位置から、比較開始（Ａ，Ｂ，Ｃ，Ｄ）位置を求め、比較制御部６のパイプラインレジスタＬ、Ｍへ投入する。
【００７１】
図５に、比較制御部６の仕掛りベクトルストア命令の数が８（仕掛り命令数カウンタの値は８）で、先頭ポインタがグループ１のＤレジスタを示している時点からの動作例を示す。アドレス比較のサイクル数が２であるため、比較制御部６のＬレジスタはＤレジスタ、Ａレジスタを交互に選択する。グループ０〜３のアドレス比較部２では、Ｄレジスタと命令０のアドレスを比較し比較結果をＪレジスタに格納し、次のサイクルでＡレジスタと命令０のアドレスを比較し比較結果をＧレジスタに格納し、次のサイクルでＤレジスタと命令１のアドレスを比較し比較結果をＪレジスタに格納し、さらに次のサイクルでＡレジスタと命令１のアドレスを比較し比較結果をＧレジスタに格納する。追い越し判定部３は、命令０（ベクトルロード命令）を出力した後１サイクル間をあけて命令１（ベクトルロード命令）を要素展開部４に出力する。要素展開部４は、ベクトルロード命令を１６個の要素に展開し８つのメモリポート（メモリポート０〜メモリポート７）から２サイクルかけて出力する。
【００７２】
本実施例によれば、アドレス比較のサイクルを、期間ｅのように、２サイクルとすることにより、メモリネットワークへの出力期間ｆ（１６の要素を８個のメモリポートに出力）に隙間をあけることなくリクエスト（メモリアクセス要求）を出力することができる。このように、本実施例では、アドレス比較のサイクル数を、仕掛りベクトル命令数に応じて制御する（減らす）ことにより、展開後の要素数の少ないベクトル命令を処理する際にも、アドレス比較のＴＡＴの増分を、メモリネットワークへのスループットに悪影響を与えないようにすることができるという効果を奏する。
【００７３】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００７４】
１  命令パイプ部
２、２’  アドレス比較部
３  追い越し判定部
４  要素展開部
５  ベクトルストアデータバッファ
６  比較制御部
【図１】
2010198439.tif 000003
【図２】
2010198439.tif 000004
【図３】
2010198439.tif 000005
【図４】
2010198439.tif 000006
【図５】
2010198439.tif 000007
【図６】
2010198439.tif 000008