(57)【特許請求の範囲】
【請求項１】
記憶装置から少なくともデータを読み出す第１プロセッサと、少なくとも前記記憶装置の複数の記憶領域に対して並列的にデータを書き込む第２プロセッサと、を備え、前記第１プロセッサは、当該第１プロセッサまたは前記第２プロセッサの少なくともいずれか一方により実行される命令を、当該命令の前記記憶装置における実行アドレスとともに出力する命令出力手段と、当該第１プロセッサにより読み出されたデータを一時的に記憶するデータ記憶手段と、前記命令出力手段により出力された読み出し命令により読み出すべきデータが前記データ記憶手段に記憶されているか否かを判定するデータ有無判定手段と、を備え、前記第２プロセッサは、前記命令出力手段により出力された書き込み命令によりデータ書き込みが行われる書き込みアドレスを示す書き込みアドレス情報を記憶する書き込みアドレス記憶手段を備える情報処理装置において、
前記第２プロセッサは、
前記命令出力手段により読み出し命令及び実行アドレスが当該第２プロセッサに出力されたときに、当該実行アドレスと前記書き込みアドレス記憶手段に記憶された書き込みアドレス情報が示す書き込みアドレスとが一致するか否かを判定するアドレス一致判定手段を備え、
前記第１プロセッサは、
前記読み出すべきデータが前記データ記憶手段に記憶されていると前記データ有無判定手段により判定され、且つ、前記実行アドレスと前記書き込みアドレスとが一致しないと前記アドレス一致判定手段により判定されたときに、前記データ記憶手段からデータを読み出すことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記書き込みアドレス記憶手段は、前記書き込み命令複数分の書き込みアドレスを示すデータを記憶可能であり、
前記第１プロセッサは、
前記書き込み命令によりデータ書き込みが行われる書き込み開始アドレス及び終了アドレスを、前記書き込みアドレス記憶手段が記憶可能な数よりも少ない数分一時的に記憶する書き込み開始終了アドレス記憶手段と、
前記データ記憶手段に記憶されたデータの内、前記記憶装置において当該データが読み出されたアドレスが前記書き込み命令により書き込みが行われる書き込みアドレスと一致するデータの読み出しを禁止する禁止手段と、
前記命令出力手段により出力された書き込み命令の内、前記禁止手段による前記禁止処理が終了していない数を計数する計数手段と、を更に備え、
前記第１プロセッサは、
前記読み出すべきデータが前記データ記憶手段に記憶されていると前記データ有無判定手段により判定され、且つ、前記計数手段により計数された数が前記書き込み開始終了アドレス記憶手段による書き込み開始アドレス及び終了アドレスの記憶可能な数よりも多く、尚且つ、前記実行アドレスと前記書き込みアドレスとが一致しないと前記アドレス一致判定手段により判定されたときに、前記データ記憶手段からデータを読み出すことを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置において、
前記第１プロセッサは、
前記命令出力手段により出力された実行アドレスが前記書き込み開始終了アドレス記憶手段に記憶された開始アドレス及び終了アドレスに示された範囲内にあるか否かを判定するアドレス範囲判定手段を更に備え、
前記第１プロセッサは、
前記計数手段により計数された数が、前記書き込み開始終了アドレス記憶手段による書き込み開始アドレス及び終了アドレスの記憶可能な数以下であり、且つ、前記実行アドレスが前記範囲内にはないと前記アドレス範囲判定手段により判定されたときに、前記データ記憶手段からデータを読み出すことを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれか１項に記載の情報処理装置において、
前記第１プロセッサは、
前記命令出力手段により出力された読み出し命令及び実行アドレスが前記第２プロセッサにより前記記憶手段に出力されることにより当該記憶手段からデータを読み出し、
前記第２プロセッサは、
前記実行アドレスと前記書き込みアドレスとが一致すると前記アドレス一致判定手段により判定されたときに、前記命令出力手段により出力された読み出し命令及び実行アドレスを一時的に記憶する命令記憶手段と、
前記実行アドレスと一致した前記書き込みアドレスに対するデータ書き込みが終了した後、前記命令記憶手段に記憶された読み出し命令及び実行アドレスを前記記憶手段に出力する記憶命令出力手段と、
を更に備えることを特徴とする情報処理装置。
【請求項５】
請求項１乃至４のいずれか１項に記載の情報処理装置において、
前記第１プロセッサは、スカラプロセッサであって、
前記第２プロセッサは、ベクトルプロセッサであることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサが記憶装置を共有する場合において、一のプロセッサが記憶装置に対してデータ書き込みを実行中に他のプロセッサによるデータ読み出しを制御する情報処理装置の技術分野に関する。
【背景技術】
【０００２】
従来、複数のプロセッサから独立にロード命令やストア命令等が発行され、一つの記憶装置に対してデータのアクセスが行われる場合に、プロセッサ内におけるキャッシュメモリのコヒーレンシを保つためにアクセス制御（例えば、スヌーピング等）が行われている。
【０００３】
例えば、スカラプロセッサとベクトルプロセッサと備える情報処理装置の場合、スカラプロセッサ内のキャッシュメモリに記憶されているデータの内、ベクトルプロセッサにより実行されるベクトルストア命令（ＶＳＴ命令）によりデータが書き換えられる記憶装置上の記憶領域に対応するデータについては、その読み出しを行わないようにフラッシュ処理により無効化を行うようになっている。このため、スカラプロセッサは、スカラロード命令（ＬＤ命令）によりデータを読み出す際に無効化が行われようとするデータをキャッシュメモリから読み出さないよう、ＶＳＴ命令の書き込み先頭アドレスと最終アドレスとを計算して保持している。
【０００４】
ところが、ＶＳＴ命令を複数発行できるような場合は、保持しなければならないアドレス数が多くなり、そのためのハード量が増加してしまう。また、スカラプロセッサは、読み出しを行おうとするアドレスが、ＶＳＴ命令の書き込み先頭アドレスと最終アドレスとの範囲内にある場合は、フラッシュ処理が行われている間、読み出しが待たれることとなり、事実上スカラプロセッサの処理が停止し、処理速度の低下を招いていた。
【０００５】
係る観点から、本願の出願人は、スカラプロセッサとベクトルプロセッサによるアクセス制御に関して特許出願を行っている（例えば、特許文献１乃至３）。
【特許文献１】特開２００２−６３１５４号公報
【特許文献２】特開昭６１−１８４６８４号公報
【特許文献３】特開２００１−１９５３８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１及び２に記載の技術においては、スカラプロセッサが読み出しを行おうとするアドレスがＶＳＴ命令の書き込み先頭アドレスと最終アドレスとの範囲内にある場合は、キャッシュメモリから読み出さず、記憶装置から読み出すことによりある程度処理速度を高速化することはできるが、ハード量の増加を防止することはできない。
【０００７】
また、特許文献３に記載の技術においては、複数のＶＳＴ命令の書き込み先頭アドレス及び最終アドレスの内、一番先頭のアドレスと最後のアドレスのみを保持することによりハード量を減少させることはできるが、処理速度を高速化することはできない。
【０００８】
本発明は、以上の点に鑑みてなされたものであり、書き込みが行われるアドレスを保持するためのハード量を減少させつつ、一のプロセッサが記憶装置に対してデータ書き込みを実行中に、他のプロセッサによるデータ読み出し等を高速化することを可能とする情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載の発明は、記憶装置から少なくともデータを読み出す第１プロセッサと、少なくとも前記記憶装置の複数の記憶領域に対して並列的にデータを書き込む第２プロセッサと、を備え、前記第１プロセッサは、当該第１プロセッサまたは前記第２プロセッサの少なくともいずれか一方により実行される命令を、当該命令の前記記憶装置における実行アドレスとともに出力する命令出力手段と、当該第１プロセッサにより読み出されたデータを一時的に記憶するデータ記憶手段と、前記命令出力手段により出力された読み出し命令により読み出すべきデータが前記データ記憶手段に記憶されているか否かを判定するデータ有無判定手段と、を備え、前記第２プロセッサは、前記命令出力手段により出力された書き込み命令によりデータ書き込みが行われる書き込みアドレスを示す書き込みアドレス情報を記憶する書き込みアドレス記憶手段を備える情報処理装置において、前記第２プロセッサは、前記命令出力手段により読み出し命令及び実行アドレスが当該第２プロセッサに出力されたときに、当該実行アドレスと前記書き込みアドレス記憶手段に記憶された書き込みアドレス情報が示す書き込みアドレスとが一致するか否かを判定するアドレス一致判定手段を備え、前記第１プロセッサは、前記読み出すべきデータが前記データ記憶手段に記憶されていると前記データ有無判定手段により判定され、且つ、前記実行アドレスと前記書き込みアドレスとが一致しないと前記アドレス一致判定手段により判定されたときに、前記データ記憶手段からデータを読み出すことを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載の情報処理装置において、前記書き込みアドレス記憶手段は、前記書き込み命令複数分の書き込みアドレスを示すデータを記憶可能であり、前記第１プロセッサは、前記書き込み命令によりデータ書き込みが行われる書き込み開始アドレス及び終了アドレスを、前記書き込みアドレス記憶手段が記憶可能な数よりも少ない数分一時的に記憶する書き込み開始終了アドレス記憶手段と、前記データ記憶手段に記憶されたデータの内、前記記憶装置において当該データが読み出されたアドレスが前記書き込み命令により書き込みが行われる書き込みアドレスと一致するデータの読み出しを禁止する禁止手段と、前記命令出力手段により出力された書き込み命令の内、前記禁止手段による前記禁止処理が終了していない数を計数する計数手段と、を更に備え、前記第１プロセッサは、前記読み出すべきデータが前記データ記憶手段に記憶されていると前記データ有無判定手段により判定され、且つ、前記計数手段により計数された数が前記書き込み開始終了アドレス記憶手段による書き込み開始アドレス及び終了アドレスの記憶可能な数よりも多く、尚且つ、前記実行アドレスと前記書き込みアドレスとが一致しないと前記アドレス一致判定手段により判定されたときに、前記データ記憶手段からデータを読み出すことを特徴とする。
【００１１】
請求項３に記載の発明は、請求項２に記載の情報処理装置において、前記第１プロセッサは、前記命令出力手段により出力された実行アドレスが前記書き込み開始終了アドレス記憶手段に記憶された開始アドレス及び終了アドレスに示された範囲内にあるか否かを判定するアドレス範囲判定手段を更に備え、前記第１プロセッサは、前記計数手段により計数された数が、前記書き込み開始終了アドレス記憶手段による書き込み開始アドレス及び終了アドレスの記憶可能な数以下であり、且つ、前記実行アドレスが前記範囲内にはないと前記アドレス範囲判定手段により判定されたときに、前記データ記憶手段からデータを読み出すことを特徴とする。
【００１２】
請求項４に記載の発明は、請求項１乃至３のいずれか１項に記載の情報処理装置において、前記第１プロセッサは、前記命令出力手段により出力された読み出し命令及び実行アドレスが前記第２プロセッサにより前記記憶手段に出力されることにより当該記憶手段からデータを読み出し、前記第２プロセッサは、前記実行アドレスと前記書き込みアドレスとが一致すると前記アドレス一致判定手段により判定されたときに、前記命令出力手段により出力された読み出し命令及び実行アドレスを一時的に記憶する命令記憶手段と、前記実行アドレスと一致した前記書き込みアドレスに対するデータ書き込みが終了した後、前記命令記憶手段に記憶された読み出し命令及び実行アドレスを前記記憶手段に出力する記憶命令出力手段と、を更に備えることを特徴とする。
【００１３】
請求項５に記載の発明は、請求項１乃至４のいずれか１項に記載の情報処理装置において、前記第１プロセッサは、スカラプロセッサであって、前記第２プロセッサは、ベクトルプロセッサであることを特徴とする。
【発明の効果】
【００１４】
請求項１に記載の発明によれば、例え第１プロセッサに書き込みアドレスを保持させる手段がないとしても、第２プロセッサに記憶された書き込み命令による書き込みアドレス情報を用いて、読み出し命令による実行アドレスが書き込みアドレスと一致するか否かを判定し、一致しない場合は、第１プロセッサのデータ記憶手段からデータが読み出されるので、第１プロセッサにおいてアドレスを保持するためのハード量を減少させつつ、第２プロセッサが記憶装置に対してデータ書き込みを実行中における第１プロセッサによるデータ読み出しを高速化することができる。
【００１５】
また、読み出し命令は一度第２プロセッサに出力されるので、命令出力手段から出力される後続の命令がすぐに第２プロセッサに出力されて実行されることとなり、後続の命令の実行も高速化することができる。
【００１６】
請求項２に記載の発明によれば、第１プロセッサにおいて書き込み開始アドレス及び終了アドレスを少量記憶するようにしてハード量を減少させても、第２プロセッサが記憶装置に対してデータ書き込みを実行中における第１プロセッサによるデータ読み出し等を高速化することができる。
【００１７】
請求項３に記載の発明によれば、現在禁止処理が行われている書き込み命令の書き込み開始アドレス及び終了アドレスが開始終了アドレスに記憶されている場合は、当該アドレスの範囲内に読み出し命令の実行アドレスがなければデータ記憶手段からデータを読み出すので、第１プロセッサによるデータ読み出しをより高速化することができる。
【００１８】
請求項４に記載の発明によれば、読み出し命令の実行アドレスと書き込み命令の書き込みアドレスとが一致した場合であっても、正常に読み出しを実行することができる。
【００１９】
請求項５に記載の発明によれば、スカラプロセッサにおいてスカラバウンダリ等のアドレスを保持するハード量を減少させつつ、ベクトルプロセッサがベクトルストア命令等を実行中におけるスカラプロセッサによるＬＤ命令等の実行を高速化することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明の最良の実施形態について詳細に説明する。なお、以下に説明する実施の形態は、スカラプロセッサ及びベクトルプロセッサにより構成される情報処理装置に対して本発明を適用した場合の実施形態である。
【００２１】
［１．情報処理装置の構成及び機能概要］
先ず、本実施形態に係る情報処理装置Ｓの構成及び機能について説明する。
【００２２】
図１は、本実施形態に係る情報処理装置Ｓの概要構成の一例を示す図である。
【００２３】
図１に示すように、情報処理装置Ｓは、第１プロセッサの一例としてのスカラプロセッサ１と、第２プロセッサの一例としてのベクトルプロセッサ３と、記憶装置の一例としてのメインメモリ４と、により構成されている。ここで、スカラプロセッサ１はスカラ命令を実行するプロセッサであり、ベクトルプロセッサはベクトル命令を実行するとともにスカラ命令によりメインメモリ４にアクセスするバスを有している。
【００２４】
スカラプロセッサ１は、命令出力手段の一例としてのリザベーションステーション１０と、ＶＳＴフラッシュアドレス計算器１５と、開始終了アドレス記憶手段の一例としてのスカラバウンダリ１６と、計数手段の一例としてのＶＳＴカウンタ１７と、ＳＲ（スカラレジスタ）１９と、データ記憶手段の一例としてのデータキャッシュ２と、ＡＮＤゲート１９０〜１９３と、デコーダ２００と、ＯＲゲート２０１と、を含んで構成されている。ここで、ＶＳＴフラッシュアドレス計算器１５及びデータキャッシュ２は、禁止手段の一例を構成する。
【００２５】
リザベーションステーション１０は、スカラ命令及びベクトル命令を蓄積するバッファを有し、当該蓄積された命令を発行するようになっている。
【００２６】
図２は、リザベーションステーション１０内における命令バッファの１エントリ例を示す図である。
【００２７】
図２に示すように、Ｖビット１００は、当該エントリの命令が有効であるか否かを示している。命令１０１は、当該エントリの命令を示している。また、アドレス１０２は、命令１０１がアクセスするメインメモリ４上のアドレスを示している。更に、ＶＳＴ実行中フラグ１０３は、アドレス１０２が、スカラバウンダリ１６に記憶されたＶＳＴ命令の先頭アドレスと最終アドレスとの範囲内にある場合に、当該ＶＳＴ命令についてフラッシュ処理中であるか否かを示しており、スカラバウンダリ判定結果報告信号により設定され、ＶＳＴフラッシュ完了報告信号によりリセットされるようになっている。
【００２８】
図１に戻り、Ｖビット１１、命令１２及びアドレス１３は、夫々リザベーションステーション１０からパイプラインステージに発行されたＶビット、命令及びアドレスである。また、ベクトルレングス１４は、ＶＳＴ命令のベクトル長を示している。
【００２９】
ＶＳＴフラッシュアドレス計算器１５は、後述するベクトルプロセッサ３のベクトルバウンダリ３５にＶＳＴ命令の書き込み開始アドレス、終了アドレス等が記憶されたときに、当該ＶＳＴ命令により書き込みが行われるアドレスを計算し、当該アドレスをデータキャッシュ２に出力するようになっている。また、ＶＳＴフラッシュアドレス計算器１５は、１つのＶＳＴ命令に対するアドレス計算が終了して当該アドレスを全て出力したときにＶＳＴフラッシュ完了報告信号を出力するようになっている。
【００３０】
スカラバウンダリ１６は、スカラバウンダリ計算器１６０と、スタートアドレスレジスタ１６１と、エンドアドレスレジスタ１６２と、スカラバウンダリ判定器１６３と、により構成されている。
【００３１】
スカラバウンダリ計算器１６０は、リザベーションステーション１０からＶＳＴ命令が発行されたときに、そのアドレス１３及びベクトル長１４からＶＳＴ命令の開始アドレス及び終了アドレスを計算し、開始アドレスはスタートアドレスレジスタ１６１に、終了アドレスはエンドアドレスレジスタ１６２に、夫々記憶するようになっている。本実施形態においてスカラバウンダリ１６は、ＶＳＴ命令の開始アドレス及び終了アドレスを最新の１命令分のみ記憶するようになっている。
【００３２】
スカラバウンダリ判定器１６３は、リザベーションステーション１０から発行されたＬＤ命令のアドレス１３が、スタートアドレスレジスタ１６１に記憶された開始アドレスとエンドアドレスレジスタ１６２に記憶された終了アドレスとの範囲内にあるか否かを判定し、スカラバウンダリ判定結果報告信号を出力するようになっている。
【００３３】
ＶＳＴカウンタ１７は、リザベーションステーション１０から発行されたＶＳＴ命令のうち、フラッシュ処理が終了していない数をカウントし、カウンタが２以上のときにＶＳＴカウンタ≧２報告信号を出力するようになっている。具体的に、ＶＳＴカウンタ１７は、リザベーションステーション１０からＶＳＴ命令が発行される度にカウンタの数を１加算し、ＶＳＴフラッシュ完了報告信号が入力される度にカウンタの数を１減算するようになっている。
【００３４】
データキャッシュ２は、データ有無判定手段の一例としてのキャッシュＨＩＴ／ＭＩＳＳ判定器２０と、Ｖビット２１と、ＡＡ（アドレスアレイ）２２と、ＤＡ（データアレイ）２３と、ＦＡＡ（フラッシュアドレスアレイ）２４と、比較器２５と、により構成されている。
【００３５】
キャッシュＨＩＴ／ＭＩＳＳ判定器２０は、リザベーションステーション１０から発行されたＬＤ命令がキャッシュにヒットしたか否か（リザベーションステーション１０から発行されたアドレス１３が、Ｖビット２１が有効であるＡＡ２２のエントリに記憶されたアドレスに一致するか否か）を判定し、ヒットした場合にはＨＩＴ信号を出力するようになっている。
【００３６】
Ｖビット２１は、複数のエントリを有し、ＤＡ２３の各エントリに対応して、当該エントリが有効であるか否か（キャッシュが有効であるか否か）を示している。
【００３７】
ＡＡ２２は、そのエントリ毎にＤＡ２３の各エントリに対応した読み出しアドレスが記憶される。
【００３８】
ＤＡ２３は、そのエントリ毎にメインメモリ４から読み出されたデータが記憶される。
【００３９】
ＦＡＡ２４は、ＡＡ２２に記憶されているアドレスのコピーがフラッシュ処理用に記憶される。
【００４０】
ここで、ＶＳＴフラッシュアドレス計算器１５から、ＶＳＴ命令による書き込みアドレスが出力されると、比較器２５により当該アドレスとＦＡＡ２４に記憶されたアドレスとが比較され、その結果がＶビット２１に出力される。このとき、ＦＡＡ２４に記憶されたアドレスが書き込みアドレスに一致すると、ＦＡＡ２４の該当エントリに対応するＶビット２１が無効となる。このようにしてフラッシュ処理が実行される。
【００４１】
ＳＲ１９は、スカラプロセッサ２がスカラ演算等を行うためのスカラレジスタであり、リザベーションステーション１０から発行されたＬＤ命令がキャッシュヒットした場合に、ＤＡ２３に記憶されたデータが読み出されて保持される一方、キャッシュミスの場合は、メインメモリ４に記憶されたデータが読み出されて保持されるようになっている。
【００４２】
ベクトルプロセッサ３は、Ｖビットレジスタ３０と、命令レジスタ３１と、判定フラグレジスタ３２と、アドレスレジスタ３３と、アドレス一致判定手段の一例としてのベクトルバウンダリ判定器３４と、書き込みアドレス記憶手段の一例としてのベクトルバウンダリ３５と、記憶命令出力手段の一例としてのバウンダリ完了検出器３６と、命令記憶手段の一例としての退避バッファ３７と、ＡＮＤゲート１９４〜１９９と、を含んで構成されている。
【００４３】
Ｖビットレジスタ３０は、ベクトルプロセッサ側のＶビットを保持しており、スカラプロセッサ１においてキャッシュミスと判定された場合、または、キャッシュヒットと判定され且つＶＳＴカウンタ１７が示すカウンタ値が２以上の場合において、リザベーションステーション１０から発行されたＶビット１１が保持される。
【００４４】
命令レジスタ３１は、ベクトルプロセッサ側の命令を保持しており、リザベーションステーション１０から発行されて、スカラプロセッサ１から出力された命令１２が保持される。
【００４５】
判定フラグレジスタ３２は、スカラプロセッサ１からベクトルプロセッサ３に出力された命令１２及びアドレス１３が、後述するベクトルバウンダリ判定器３４による判定のために出力されたか否かを示す判定フラグを保持しており、スカラプロセッサ１において、キャッシュヒットと判定され且つＶＳＴカウンタ１７が示すカウンタ値が２以上の場合にセットされ、それ以外の場合にリセットされる。
【００４６】
アドレスレジスタ３３は、ベクトルプロセッサ側のアドレスを保持しており、リザベーションステーション１０から発行されて、スカラプロセッサ１から出力されたアドレス１３が保持される。
【００４７】
ベクトルバウンダリ判定器３４は、アドレスレジスタ３３に保持されているアドレスがベクトルバウンダリ３５に記憶されたアドレス群が示すＶＳＴ命令による書き込みアドレスと一致するか否かを判定するようになっている。
【００４８】
ベクトルバウンダリ３５は、複数のＶＳＴ命令に対応する書き込み先頭アドレス、２番目のアドレス及び終了アドレス（図１の例では０〜ｎのｎ＋１個）を記憶するようになっている。具体的には、複数のＶＳＴ命令に対応したエントリ毎に、当該エントリが有効であるか否かを示すＶビット０〜ｎ、開始アドレスを示すスタートアドレス０〜ｎ、２番目のアドレスを示すエンドアドレス０〜ｎ及び最終アドレスを示すエンドアドレス０〜ｎが記憶される。ここでＶビット０〜ｎは、対応するＶＳＴ命令の実行が完了すると無効となる。また、開始アドレスと２番目のアドレスに挟まれた範囲は、ＶＳＴ命令による書き込みは行われないため、ＶＳＴ命令を追い抜いてＬＤ命令を実行することが可能となる。
【００４９】
バウンダリ完了検出器３６は、アドレスレジスタ３３に保持されているアドレスがベクトルバウンダリ３５に記憶されたアドレス群が示すＶＳＴ命令による書き込みアドレスと一致したと判定された後、当該一致したアドレスに書き込みを行うＶＳＴ命令の実行が完了したときに、当該完了したことを示すバウンダリ完了信号を退避バッファ３７に出力するようになっている。
【００５０】
退避バッファ３７は、Ｖビットレジスタ３０、命令レジスタ３１及びアドレスレジスタ３３に保持されたＶビット、命令及びアドレスの内、ＬＤ命令の読み出しアドレスがＶＳＴ命令の書き込みアドレスと一致したとベクトルバウンダリ判定器３４により判定されたものを一時的に記憶するようになっている。
【００５１】
ここで、Ｖビットレジスタ３０、命令レジスタ３１及びアドレスレジスタ３３に保持されたＶビット、命令及びアドレスは、ＬＤ命令の読み出しアドレスがＶＳＴ命令の書き込みアドレスと一致しないとベクトルバウンダリ判定器３４により判定された場合に、メインメモリ４に出力されるようになっている。このとき、判定フラグレジスタ３２に保持された判定フラグが有効であるときはＶビットがそのまま出力され、判定フラグが有効であるときはＶビットがリセットされて出力される。そして、メインメモリ４に出力されたＶビットが有効である場合には、メインメモリ４からデータが読み出されＳＲ１９に保持される。
【００５２】
また、バウンダリ完了検出器３６から退避バッファ３７にバウンダリ完了信号が出力されることにより、退避バッファ３７に記憶されたＶビット、ＬＤ命令及びアドレスがメインメモリ４に出力され、インメモリ４からデータが読み出されることとなる（つまり、ＶＳＴ命令のために停止していたＬＤ命令が実行される）。
【００５３】
また、Ｖビットレジスタ３０に保持されたＶビットが有効、且つ、判定フラグレジスタ３２に保持された判定フラグが有効であり、尚且つ、ＬＤ命令の読み出しアドレスがＶＳＴ命令の書き込みアドレスと一致しないとベクトルバウンダリ判定器３４により判定されたときに、ベクトルバウンダリ判定結果報告信号が出力され、これによりデータキャッシュ２のＤＡ２３からデータが読み出されてＳＲ１９に保持される。
【００５４】
［２．情報処理装置の動作］
次に、情報処理装置Ｓの動作について、図３を用いて説明する。
【００５５】
図３は、本実施形態に係る情報処理装置Ｓの処理例を示すフローチャートである。
【００５６】
図３に示すように、先ず、リザベーションステーション１０からＬＤ命令が発行される（ステップＳ１）。このとき、Ｖビット１１は有効であり、命令１２はＬＤ命令を示し、アドレス１３はＬＤ命令の読み出しアドレスを示している。
【００５７】
次いで、キャッシュＨＩＴ／ＭＩＳＳ判定器２０において、アドレス１３に基づいてキャッシュヒットしたか否が判定される（ステップＳ２）。
【００５８】
ここで、キャッシュミスと判定された場合は（ステップＳ２：ＮＯ）、メインメモリ４から読み出しを行うため、ベクトルレジスタ３に命令が発行（出力）される（ステップＳ３）。具体的には、Ｖビット、ＬＤ命令及び読み出しアドレスがベクトルレジスタ３に出力され、夫々Ｖビットレジスタ３０、命令レジスタ３１及びアドレスレジスタ３３に保持される。
【００５９】
そして、ベクトルバウンダリ判定器３４において、ＬＤ命令と発行されているＶＳＴ命令との間でアドレス依存があるか否か（アドレスレジスタ３３に保持された読み出しアドレスがベクトルバウンダリ３５に記憶されたアドレス群が示すＶＳＴ命令による書き込みアドレスと一致するか否か）が判定され（ステップＳ４）、依存関係がない（ＬＤ命令の読み出しアドレスとＶＳＴ命令の書き込みアドレスが一致しない）場合は（ステップＳ４：ＮＯ）、メインメモリ４にＶビット、ＬＤ命令及び読み出しアドレスが出力され、メインメモリ４からデータの読み出しが行われ（ステップＳ５）、ＬＤ命令が終了する。
【００６０】
一方、依存関係がある（ＬＤ命令の読み出しアドレスとＶＳＴ命令の書き込みアドレスが一致する）場合は（ステップＳ４：ＹＥＳ）、Ｖビット、ＬＤ命令及び読み出しアドレスは退避バッファ３７に保持され、ＬＤ命令はベクトルプロセッサ３内で待機状態となり（ステップＳ６）、バウンダリ解除待ちとなる（ステップＳ７）。そして、ＬＤ命令の読み出しアドレスと一致する書き込みアドレスに対するＶＳＴ命令の実行が終了すると（ステップＳ７：ＹＥＳ）、バウンダリ完了検出器３６からバウンダリ完了信号が出力されることにより、退避バッファ３７からＶビット、ＬＤ命令及び読み出しアドレスがメインメモリ４に出力され、メインメモリ４からデータの読み出しが行われてＳＲ１９にデータが保持され（ステップＳ５）、ＬＤ命令が終了する。
【００６１】
ステップＳ２において、キャッシュヒットと判定された場合は（ステップＳ２：ＹＥＳ）、ＶＳＴカウンタの値が１以下であるか否かが判定され（ステップＳ８）、１以下の場合は（ステップＳ８：ＹＥＳ）、現在ＶＳＴフラッシュアドレス計算器１５及びデータキャッシュ２においてフラッシュ処理が行われているＶＳＴ命令の開始アドレスと終了アドレスはスカラバウンダリ１６に記憶されているので、読み出しアドレスがスカラバウンダリの範囲内（スタートアドレスレジスタ１６１及びエンドアドレスレジスタ１６２に記憶されている開始アドレスと終了アドレスの範囲内）にあるか否かがスカラバウンダリ判定器１６３により判定され（ステップＳ９）、範囲外の場合は（ステップＳ９：ＮＯ）、そのままキャッシュヒットとなり、データキャッシュ２のＤＡ２３からデータの読み出しが行われてＳＲ１９にデータが保持され、（ステップＳ１０）、ＬＤ命令が終了する。
【００６２】
一方、読み出しアドレスがスカラバウンダリの範囲内にある場合は（ステップＳ９：ＹＥＳ）、リザベーションステーション１０に制御が戻ると同時に、スカラバウンダリ判定器１６３からスカラバウンダリ判定結果報告信号（ＶＳＴカウンタ＜２）がリザベーションステーション１０に出力されて、ＶＳＴ実行中フラグ１０３がセットされる。そして、ＶＳＴフラッシュアドレス計算器１５からＶＳＴフラッシュ完了報告信号がリザベーションステーション１０に出力されると、ＶＳＴ実行中フラグ１０３がリセットされて、再度ＬＤ命令が発行される（ステップＳ１）。
【００６３】
ステップＳ８において、ＶＳＴカウンタの値が２以上であると判定された場合は（ステップＳ８：ＮＯ）、複数のフラッシュ処理が未だ完了していないことを示しており、スカラバウンダリ１６は、その完了していないフラッシュ処理の内、最新のＶＳＴ命令に対応するアドレスしか記憶していないため、その他のＶＳＴ命令の開始アドレス及び終了アドレスとの比較を行うことはできない。従って、ＶＳＴカウンタ１７からＶＳＴカウンタ≧２報告信号が出力されて、ＡＮＤゲート１９３から判定フラグが有効であることを示す信号がベクトルプロセッサ３に出力されることにより、ベクトルレジスタ３に命令が発行される（ステップＳ１１）。
【００６４】
そして、Ｖビット、ＬＤ命令、判定フラグ（有効）及び読み出しアドレスがＶビットレジスタ３０、命令レジスタ３１、判定フラグレジスタ３２及びアドレスレジスタ３３に保持されると、ステップＳ４と同様にベクトルバウンダリ判定器３４においてＬＤ命令と発行されているＶＳＴ命令との間でアドレス依存があるか否かが判定され（ステップ１２）、依存関係がない場合は（ステップＳ１２：ＮＯ）、スカラバウンダリの判定の場合とは異なり、全てのＶＳＴ命令との依存関係がないことが判定できたので、ベクトルバウンダリ判定結果報告信号が出力されることによりスカラプロセッサ１において、データキャッシュ２のＤＡ２３からデータの読み出しが行われてＳＲ１９にデータが保持される（ステップＳ１２）。
【００６５】
一方、ＬＤ命令と発行されているＶＳＴ命令との間でアドレス依存がある場合は（ステップＳ１２：ＹＥＳ）、ＬＤ命令はベクトルプロセッサ３内で待機状態となり、バウンダリが解除されたらメインメモリ４からデータが読み出される（ステップＳ６〜Ｓ７）。
【００６６】
次に、図４乃至図６を用いて、これまで説明した情報処理装置Ｓの動作（図３）と、スカラバウンダリで記憶できるＶＳＴ命令のアドレスを１回分とし、キャッシュヒットしたときにベクトルバウンダリの判定を行わないで動作した場合とを比較して説明する。
【００６７】
図４は、ベクトルバウンダリの判定を行わない場合の動作例を示すフローチャートである。
【００６８】
図４に示すように、キャッシュミスの場合における動作（ステップＳ２１〜Ｓ２７）、及びＶＳＴカウンタが１以下の場合の動作は（ステップＳ２８：ＹＥＳ、Ｓ２９〜Ｓ３０）、本実施形態に係る情報処理装置Ｓと同様である。しかし、ステップＳ２８において、ＶＳＴカウンタが２以上と判定された場合は（ステップＳ２８：ＮＯ）、常にリザベーションステーション１０に制御が戻り、フラッシュ処理が終了して、ＶＳＴフラッシュアドレス計算器１５からＶＳＴフラッシュ完了報告信号がリザベーションステーション１０に出力されると、再度ＬＤ命令が発行されることとなる。
【００６９】
ここで、両者の違いをより明確にするため、タイミングチャートを用いて説明する。
【００７０】
図５は、リザベーションステーションから発行された命令の一例を示す図である。
【００７１】
図５に示すように、先ず３つのＶＳＴ命令（１番目から、ＶＳＴ１、ＶＳＴ２、ＶＳＴ３とする）が発行され、その後、ＬＤ命令、ＶＬＤ（ベクトルロード）命令の順に命令が発行される。これらは全てロードまたはストア命令であるため、インオーダーで発行される。
【００７２】
図６（ａ）は、図３に示したベクトルバウンダリの判定を行わない場合の動作例を示すタイミングチャートであり、図６（ｂ）は、本実施形態に係る情報処理装置Ｓの動作例を示すタイミングチャートである。なお、同図（ａ）及び（ｂ）は、ＬＤ命令がキャッシュヒットした場合の例を示している。
【００７３】
図６（ａ）に示すように、ｔ０、ｔ１及びｔ２で、ＶＳＴ１、ＶＳＴ２及びＶＳＴ３が発行され、夫々ベクトルプロセッサに制御が渡される。そして、ｔ３、ｔ４及びｔ５で夫々フラッシュ処理が開始され、ｔ７、ｔ８及びｔ１１でフラッシュ処理が終了する。フラッシュ処理の期間はＶＳＴ命令のベクトル長等で変化する。このとき、ＶＳＴカウンタは、ＶＳＴ１のフラッシュ処理開始時に（ｔ３）、１にカウントアップされ、ＶＳＴ２のフラッシュ処理開始時に（ｔ４）、２にカウントアップされ、更に、ＶＳＴ３のフラッシュ処理開始時に（ｔ５）、３にカウントアップされる。その後、ＶＳＴ１のフラッシュ処理終了時に（ｔ７）、２にカウントダウンされ、ＶＳＴ２のフラッシュ処理終了時に（ｔ８）、１にカウントダウンされ、最後に、ＶＳＴ３のフラッシュ処理終了時に（ｔ１１）、０にカウントダウンされる。
【００７４】
ここで、ｔ３で発行されたＬＤ命令は、ｔ６におけるＶＳＴカウンタの判定で２以上（ＶＳＴカウンタ＝３）と判定されるため、リザベーションステーション１０に制御が戻り、ＶＳＴカウンタが１以下になるまで（ｔ８）実行が停止することとなる。また、後続のＶＬＤ命令も上述したようにインオーダーで発行されるため、ＬＤ命令がスカラプロセッサ１内で停止している間は、ベクトルプロセッサに渡らない。このように、単純にスカラバウンダリで記憶できるＶＳＴ命令のアドレスを１個に減らしただけであると、ＶＳＴ命令が２個以上滞留している間は、後続の処理が停止してしまう。
【００７５】
一方、図６（ｂ）に示すように、本実施形態において、ＬＤ命令は、ｔ６におけるＶＳＴカウンタの判定で２以上であると判定された場合でも、ベクトルプロセッサ３に命令が発行されて、ＶＳＴ１〜３とアドレス依存があるか否かが判定される。そこで、アドレス依存がないと判定されれば、スカラプロセッサ１に制御が戻り（ｔ１２）、データキャッシュ２からデータを読み出して終了する。また、ＬＤ命令が一度スカラプロセッサ１を抜け、ベクトルプロセッサ３に渡されるため、後続のＶＬＤ命令もスカラプロセッサ１を抜けベクトルプロセッサ３に渡されることとなる。これにより、ＬＤ命令自体の実行が速くなるとともに、その後続の命令の実行も速くなる。
【００７６】
以上説明したように、本実施形態によれば、スカラプロセッサ１において、リザベーションステーション１０からＬＤ命令が発行され、キャッシュＨＩＴ／ＭＩＳＳ判定器２０においてキャッシュヒットと判定されると、ＶＳＴカウンタ１７が示している発行済みのおＶＳＴ命令の内、ＶＳＴフラッシュアドレス計算器１５及びデータキャッシュ２においてフラッシュ処理が終了していないものの数が判定される。そして、その数がスカラバウンダリ１６で記憶可能なＶＳＴ命令の開始アドレス及び終了アドレスの数より多い２以上であると判定されると、ＡＮＤゲート１９３から判定フラグが有効であることを示す信号がベクトルプロセッサ３に出力されることにより、ＬＤ命令がベクトルプロセッサ３に発行され、ベクトルバウンダリ判定器３４において、ＬＤ命令の読み出しアドレスがベクトルバウンダリ３５に記憶されているアドレス群が示すＶＳＴ命令の書き込みアドレスと一致するか否かが判定される。そして、ＬＤ命令の読み出しアドレスがＶＳＴ命令の書き込みアドレスと一致しないと判定されると、スカラプロセッサ１は、データキャッシュ２からデータを読み出すようになっている。
【００７７】
従って、スカラバウンダリ１６におけるＶＳＴ命令の開始アドレス及び終了アドレスの記憶可能数を１命令分に減らしても、ＬＤ命令の読み出しアドレスとベクトルプロセッサ３内のベクトルバウンダリ３５に記憶されたアドレスと比較されることにより、ＶＳＴ命令とのアドレス依存関係を判定することができ、アドレス依存がなければデータキャッシュからデータが読み出されるので、スカラバウンダリ１６のハード量を減少させつつ、ＬＤ命令の処理速度を高速化することができる。
【００７８】
また、ＬＤ命令は一度スカラプロセッサ１を抜けてベクトルプロセッサに渡されるので、その後続の命令もスカラプロセッサ１を抜けて実行されるので、ＬＤ命令の後続の処理速度も高速化される。
【００７９】
また、ＶＳＴカウンタ１７が示している数がスカラバウンダリ１６で記憶可能なＶＳＴ命令の書き込み開始アドレス及び終了アドレスの数以下である１以下であると判定されると、スカラバウンダリ判定器１６３により、ＬＤ命令の読み出しアドレスがスカラバウンダリ１６で記憶されている書き込み開始アドレスと終了アドレスとの範囲内にあるか否かが判定され、その範囲内にないと判定されると、スカラプロセッサ１は、データキャッシュ２からデータを読み出すので、スカラバウンダリ１６に記憶されている書き込み開始アドレス及び終了アドレスが現在のフラッシュ処理対象のアドレスを反映しているのであれば、ＬＤ命令をより高速に実行することができる。
【００８０】
更に、ベクトルバウンダリ判定器３４において、ＬＤ命令の読み出しアドレスがＶＳＴ命令の書き込みアドレスと一致すると判定された場合でも、Ｖビット、ＬＤ命令及び読み出しアドレスが退避バッファ３７に記憶され、ＬＤ命令の読み出しアドレスと一致した書き込みアドレスに対するＶＳＴ命令が終了した後、バウンダリ完了検出器がバウンダリ完了信号を退避バッファ３７に出力することにより、退避バッファ３７に記憶されたＶビット、ＬＤ命令及び読み出しアドレスをメインメモリ４に出力させて、メインメモリ４からデータ読み出しを行うので、ＬＤ命令とＶＳＴ命令とのアドレス依存があった場合でも正常にＬＤ命令を実行することができる。
【００８１】
なお、上記説明した実施形態においては、スカラバウンダリ１６に記憶可能な書き込み開始アドレス及び終了アドレスの数はＶＳＴ１命令分であったが、少なくとも同時期に発行可能なＶＳＴ命令数（ベクトルバウンダリ３５で記憶可能な数）より少ないのであれば、複数記憶させるように構成しても良い。この場合は、スカラバウンダリ１６による記憶可能数に応じて、ベクトルバウンダリ判定器３４において判定を行うか否かの判定に用いられるＶＳＴカウンタ１７の値も変えるようにすれば良い。
【００８２】
また、スカラバウンダリ１６を含めずに情報処理装置を構成しても良い。この場合は、ＬＤ命令がキャッシュヒットしてＶＳＴカウンタ１７が１以上を示したときに、ベクトルバウンダリ判定器３４において判定が行われるようにすれば良い。更に、ＶＳＴカウンタ１７をも含めない場合は、キャッシュヒットしたら、ベクトルバウンダリ判定器３４において判定が行われるようにすれば良い。
【００８３】
また、情報処理装置を構成する複数のプロセッサは、スカラプロセッサ及びベクトルプロセッサだけではなく、他の種類のプロセッサに適用しても良い。
【図面の簡単な説明】
【００８４】
【図１】本実施形態に係る情報処理装置Ｓの概要構成の一例を示す図である。
【図２】リザベーションステーション１０内における命令バッファの１エントリ例を示す図である。
【図３】本実施形態に係る情報処理装置Ｓの処理例を示すフローチャートである。
【図４】ベクトルバウンダリの判定を行わない場合の動作例を示すフローチャートである。
【図５】リザベーションステーションから発行された命令の一例を示す図である。
【図６】（ａ）は、図３に示したベクトルバウンダリの判定を行わない場合の動作例を示すタイミングチャートであり、（ｂ）は、本実施形態に係る情報処理装置Ｓの動作例を示すタイミングチャートである。
【符号の説明】
【００８５】
１  スカラプロセッサ
２  データキャッシュ
３  ベクトルプロセッサ
４  メインメモリ
１０  リザベーションステーション
１１  Ｖビット
１２  命令
１３  アドレス
１４  ベクトルレングス
１５  ＶＳＴフラッシュアドレス計算器
１６  スカラバウンダリ
１７  ＶＳＴカウンタ
１９  ＳＲ
２０  キャッシュＨＩＴ／ＭＩＳＳ判定器
２１  Ｖビット
２２  ＡＡ
２３  ＤＡ
２４  ＦＡＡ
２５  比較器
１６０  スカラバウンダリ計算器
１６１  スタートアドレスレジスタ
１６２  エンドアドレスレジスタ
１６３  スカラバウンダリ判定器
１９０、１９１、１９２、１９３  ＡＮＤゲート
２００  デコーダ
２０１  ＯＲゲート
３０  Ｖビットレジスタ
３１  命令レジスタ
３２  判定フラグレジスタ
３３  アドレスレジスタ
３４  ベクトルバウンダリ判定器
３５  ベクトルバウンダリ
３６  バウンダリ完了検出器
３７  退避バッファ
１９４、１９５、１９６、１９７、１９８、１９９  ＡＮＤゲート
Ｓ 情報処理装置
【図１】
0004458055.tif 000002
【図２】
0004458055.tif 000003
【図３】
0004458055.tif 000004
【図４】
0004458055.tif 000005
【図５】
0004458055.tif 000006
【図６】
0004458055.tif 000007