(57)【特許請求の範囲】
【請求項１】
命令セットとして、スキャタ領域が指定される領域指定付ベクトルスキャタ命令を設け、
命令発行制御部から発行されたベクトル命令が領域指定付ベクトルスキャタ命令である場合、メモリに対して書き込むべきベクトルデータを送出するとともに、更に、キャッシュ無効化アドレスを送出する手段と、
前記キャッシュ無効化アドレスを受け取り前記キャッシュの無効化を行う手段と、
前記領域指定付ベクトルスキャタ命令がアクセスするアドレスと、前記ベクトルスキャタ命令の後続のメモリアクセス命令のアドレスとが重なっているか否かを検出する手段と、
アドレスが重なっている場合には、前記後続のメモリアクセス命令を前記命令発行部内にホールドさせる手段と、
を備え、
キャッシュ無効化が終了するまで、前記後続のメモリアクセス命令が前記命令発行部内にホールドされる、ことを特徴とするベクトルスキャタ命令制御回路。
【請求項２】
命令データを解読して、命令動作を指示する命令発行制御部と、
前記命令発行制御部からのアドレスを受け取り、キャッシュの制御を行うキャッシュ制御部と、
前記命令発行制御部からベクトル命令が発行された場合、実行指示を受け取り、前記ベクトル命令が、スキャタ領域の領域開始アドレスと領域終了アドレスが指定される領域指定付ベクトルスキャタ命令である場合、メモリに対して、書き込むべきベクトルデータを送出するとともに、更に、キャッシュ無効化アドレスを送出するベクトルユニットと、
前記ベクトルユニットからキャッシュ無効化アドレスを受け取り前記キャッシュの無効化を行うキャッシュ無効化制御部と、
前記命令発行制御部から、前記領域指定付ベクトルスキャタ命令が発行された場合、前記命令発行制御部からアクセスされるレジスタブロックより、前記領域指定付ベクトルスキャタ命令のスキャタ領域の領域開始アドレスと、領域終了アドレスとを受け取り、前記領域指定付ベクトルスキャタ命令の後続のメモリアクセス命令とアクセスするアドレス領域が重なっているか否かを検出し、アドレスが重なっている場合に、アドレス一致信号をアクティブ状態として、前記命令発行制御部に対して送出するベクトルスキャタ（ＶＳＣ）アドレス一致検出部と、
を備え、
前記命令発行制御部が、前記ベクトルスキャタアドレス一致検出部から送出されたアクティブ状態の前記アドレス一致信号を受けて、前記後続のメモリアクセス命令をホールドさせるように制御するホールド制御回路を備え、
前記ホールド制御回路は、前記キャッシュ無効化制御部よりキャッシュ無効化の終了の通知を受けるまで、前記後続のメモリアクセス命令をホールドさせる、ことを特徴とする、ベクトル型情報処理装置。
【請求項３】
前記ホールド制御回路は、前記ベクトルスキャタアドレス一致検出部からの前記アドレス一致信号がインアクティブのときには、前記後続のメモリアクセス命令をホールドさせない、ことを特徴とする、請求項２記載のベクトル型情報処理装置。
【請求項４】
前記ベクトルスキャタアドレス一致検出部が、前記後続のメモリアクセス命令のアクセスアドレスと、前記領域指定付ベクトルスキャタ命令の領域開始アドレスとを比較し、前記後続のメモリアクセス命令のアクセスアドレスが前記領域開始アドレス以上であるときアクティブ状態の信号を出力する第１の比較器と、
前記後続のメモリアクセス命令のアクセスアドレスと前記領域指定付ＶＳＣ命令の領域終了アドレスとを比較し、前記後続のメモリアクセス命令のアクセスアドレスが前記領域終了アドレス以下であるときアクティブ状態の信号を出力する第２の比較器と、
前記第１の比較器と前記第２の比較器の出力がともにアクティブ状態のとき、前記アドレス一致信号をアクティブ状態として出力する論理回路と、
を備えたことを特徴とする、請求項２又は３に記載のベクトル型情報処理装置。
【請求項５】
前記領域指定付ベクトルスキャタ命令が、命令コードとして、オペランドの所定のフィールドで、前記レジスタブロックの２本のレジスタを指定し、それぞれに、スキャタ領域の領域開始アドレスと領域終了アドレスを指定する、構成とされている、ことを特徴とする、請求項２乃至４のいずれか一に記載のベクトル型情報処理装置。
【請求項６】
前記ホールド制御部は、前記ベクトルスキャタアドレス一致検出部から送出されたアクティブ状態の前記アドレス一致信号を受けて、前記後続のメモリアクセス命令に、さらに後続する命令が存在する場合には、これらの命令も前記命令発行制御部内の各ステージにホールドさせる、ことを特徴とする、請求項２乃至４のいずれか一に記載のベクトル型情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ベクトル型情報処理装置に関し、特に、ベクトルスキャタ命令制御回路に関する。
【０００２】
【従来の技術】
ベクトル型情報処理装置において、通常、ベクトル命令でアクセスされるメモリ領域は、キャッシュに登録されない。
【０００３】
その理由は、ベクトル命令が対象とするデータは、一般に参照の局所性が乏しく、キャッシュに登録しても、直ちに他のキャッシュラインデータによって、スワップアウトされ、キャッシュのヒット率が低下する、ためである。
【０００４】
また、ベクトル型情報処理装置において、ベクトルのメモリアクセス命令には、ＶＳＴ（ベクトルストア）／ＶＬＤ（ベクトルロ−ド）命令のように、開始アドレスとアクセスするベクトルデータの間隔（ディスタンス）によって、規定するものがある。
【０００５】
このうち、ＶＬＤ命令は、この規定されたアドレスに従って、ベクトルユニット内に存在する「ベクトルレジスタ」と呼ばれる複数ワードからなるベクトルデータ格納領域に、メモリのデータを取り込む。
【０００６】
逆に、ＶＳＴ命令は、ベクトルレジスタのデータを、メモリに書き込む。
【０００７】
このＶＳＴ命令は、命令発行時点で、アクセスするアドレスを認識することが可能であるため、ＶＳＴ命令を、ＶＬＤ命令やスカラロード命令が追い越し制御することによって、性能向上を図ることが比較的容易である。
【０００８】
一方、ＶＧＴ（ベクトルギャザ）／ＶＳＣ（ベクトルスキャタ）命令のような、いわゆる「リストベクトル」と呼ばれる命令では、ベクトルユニット内に存在するベクトルレジスタの値を、メモリのアクセスアドレスとしているため、ベクトルユニットに、命令が到達した時点で、初めてアクセスするアドレスが判り、且つ、そのアドレスは、一般に、ランダムである。
【０００９】
本発明の理解のために、リストベクトル命令について、図８を参照して、説明しておく。
【００１０】
まず、図８（ａ）に示すように、ＶＧＴ命令（ベクトルギャザ命令）は、ベクトルレジスタＶｙの各要素に格納されているアドレスＶＡ（ｎ）のメモリデータを、ベクトルレジスタＶｘの対応する要素に格納するように、メモリからデータをロードするものである。
【００１１】
また図８（ｂ）に示すように、ＶＳＣ命令（ベクトルスキャタ命令）は、ベクトルレジスタＶｙの各要素に格納されているアドレスＶＡ（ｎ）のメモリ領域へ、ベクトルレジスタＶｘの対応する要素データを格納するように、メモリにデータをストアするものである。
【００１２】
ベクトルメモリアクセス命令とは対照的に、スカラメモリアクセス命令の場合、一般的に、データ参照の局所性があることから、通常、キャッシュメモリにデータを格納し、メモリアクセスのレイテンシを隠す方式が採用されている。
【００１３】
【発明が解決しようとする課題】
このようなキャッシュを用いたベクトル型情報処理装置において、ベクトルメモリアクセス命令が発行され、メモリへの書き込みが発生した場合、キャッシュの一致性を維持するために、アクセスするアドレスがキャッシュ内に登録されている場合には、キャッシュ無効化を行う必要がある。これによって、後続キャッシュアクセス命令がストールし、性能低下の主要因になっている。
【００１４】
そして、キャッシュ無効化処理は、ＶＳＴ（ベクトルストア）命令とＶＳＣ（ベクトルスキャタ）命令では異なる。
【００１５】
ＶＳＴ命令の場合、命令発行時に、開始アドレスとディスタンスが決定されるので、これら２つのデータによって、比較的、高速に、キャッシュ無効化ができると共に、アクセスする開始アドレスと、終了アドレスを即座に計算できることから、後続のスカラＬＤ（ロード）命令とのアドレスが一致しない場合に、後続命令に、追い越し制御させることができる。
【００１６】
一方、ＶＳＣ（ベクトルスキャタ）命令の場合には、アクセスするアドレスが、ベクトルレジスタを読み出した後でなければ分からないこと、及び、アドレスがランダムであることから、ベクトルユニットから、スカラユニット内のキャッシュ無効化制御部（図１の４参照）に、無効化アドレスが送られ、該無効化アドレスに合致するキャッシュデータを無効化する処理を行う必要がある。
【００１７】
このため、ＶＳＣ命令に後続する全てのメモリアクセス命令は、このキャッシュ無効化処理が終了しないと、命令を発行することができず、性能低下が発生する。
【００１８】
この問題について、図６及び図７を参照して具体的に説明する。
【００１９】
まず、説明を容易にするため、スカラロード（キャッシュアクセス）命令であるＬＤＳ命令について、図７を参照して説明する。このＬＤＳ命令は、ＶＧＴ／ＶＳＣ命令と同様、ＯＰＣ（オペコード）と、オペランドＸ、Ｙ、Ｚの計４つのフィールドから構成され、アドレスは、Ｒｙ＋Ｒｚで計算され、アドレスＲｙ＋Ｒｚのメモリから読み出した結果Ｍ（Ｒｙ＋Ｒｚ）は、レジスタＲｘに格納される。
【００２０】
さて、図６（ａ）において、まずＶＳＴ（ベクトル）命令の発行後、キャッシュ無効化が行われ、それとほぼ同時に、ベクトルからのメモリへの書込みが行なわれる。
【００２１】
その後続のＬＤＳ命令は、ＶＳＴ命令のアドレスとそのアドレスが重ならなければ、たとえ、キャッシュが無効化されていても、命令を発行することができる。
【００２２】
一方、図６（ｂ）を参照すると、ＶＳＣ（ベクトルスキャタ）命令の場合、キャッシュ無効化処理が行なわれるのは、ベクトルの処理が始まり、無効化アドレスが送られてくる時であり、また、ＶＳＣ命令の発行直後にアクセスするアドレスは不明であり、しかも、ランダムであることから、キャッシュ無効化が終了するまで、後続のＬＤＳ命令がホールドで待たされる。
【００２３】
このように、ＶＳＣ命令に後続する全てのメモリアクセス命令は、このキャッシュ無効化処理が終了しないと、命令を発行することができず、性能低下が発生する。
【００２４】
したがって、本発明は、上記問題点に鑑みてなされたものであって、その目的は、ベクトル処理装置において、ベクトルスキャタ命令でのキャッシュ無効化処理による後続命令の発行延期の回避と、ベクトルスキャタ命令の追い越し制御を可能とし、性能向上を実現する装置を提供することにある。
【００２５】
【課題を解決するための手段】
前記目的を達成する本発明は、アクセスするメモリのアドレスの範囲が指定される領域指定付ベクトルスキャタ命令のアクセスするアドレスが、後続のメモリアクセス命令のアドレスと重なっているか否かを検出する手段と、アドレスが一致した後続のメモリアクセス命令をホールドさせる手段とを備えている。
【００２６】
【発明の実施の形態】
本発明の実施の形態について説明する。本発明は、領域指定付ベクトルスキャタ命令の領域開始アドレスと、領域終了アドレスを格納するレジスタと、前記領域指定付ベクトルスキャタ命令のアドレスと、該命令の後続メモリアクセス命令とのアドレスとが重なっているか否か検出する回路と、を備えたベクトルスキャタ（ＶＳＣ）アドレス一致検出部を備え、命令発行制御部は、前記領域指定付ベクトルスキャタ命令のアドレスと一致した後続メモリアクセス命令をホールドさせるホールド制御回路を備えている。
【００２７】
より詳細には、本発明は、その好ましい一実施の形態において、命令データを解読して、命令動作を指示する命令発行制御部（１）と、命令発行制御部（１）からのアドレスを受け取り、スカラ型メモリアクセス命令に対して、キャッシュの更新等、キャッシュの制御を行うキャッシュ制御部（２）と、命令発行制御部（１）からベクトル命令が発行された場合、実行指示を受け取り、前記ベクトル命令が、スキャタ領域の開始アドレスと終了アドレスが指定される領域指定付ＶＳＣ命令（ベクトルスキャタ命令）である場合、メモリ（７）に対して、書き込むべきベクトルデータを送出するとともに、更に、キャッシュ無効化アドレスを送出するベクトルユニット（６）と、ベクトルユニット（６）からキャッシュ無効化アドレスを受け取り前記キャッシュの無効化を行うキャッシュ無効化制御部（４）と、命令発行制御部（１）から、領域指定付ＶＳＣ命令が発行された場合、レジスタブロック（５）より、前記領域指定付ＶＳＣ命令のスキャタ領域の開始アドレスと終了アドレスを受け取り、前記領域指定付ＶＳＣ命令の後続のメモリアクセス命令とアクセスするアドレス領域が重なっているか否かを検出し、重なっている場合、アドレス一致信号をアクティブ状態として、命令発行制御部（１）に対して送出するＶＳＣアドレス一致検出部（３）と、を備え、命令発行制御部（１）は、ＶＳＣアドレス一致検出部（３）から送出されたアクティブ状態の前記アドレス一致信号を受けて、後続のメモリアクセス命令を、ホールドさせるホールド制御回路（図２の１０５）を備えている。
【００２８】
本発明において、前記領域指定付ＶＳＣ命令は、オペコードと、Ｘ、Ｙ、Ｚフィールドを有し、Ｚフィールドで、前記レジスタブロックの２本のレジスタを指定し、それぞれに、スキャタ領域の開始アドレスと、終了アドレスを指定する。
【００２９】
【実施例】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の実施例について図面を参照して以下に説明する。図１は、本発明の一実施例の基本構成を示す図である。
【００３０】
図１を参照すると、本発明の一実施例をなすベクトル処理装置において、命令発行制御部１と、レジスタブロック５と、キャッシュ制御部２と、ＶＳＣアドレス一致検出部３と、キャッシュ無効化制御部４がスカラプロセッサを構成しており、ベクトルユニット６と、メモリ７を備えている。
【００３１】
このうち命令発行制御部１は、信号線７１を経由して、メモリ７から読み出した命令データを解読して、命令動作を指示する。
【００３２】
命令発行制御部１は、キャッシュ制御部２と、ＶＳＣ（ベクトルスキャタ命令）アドレス一致検出部３に対しては、信号線１２を介して、アドレスを送出し、キャッシュアクセスと、ＶＳＣアドレス一致を行う。
【００３３】
命令発行制御部１は、レジスタブロック５に対して、信号線１５、５１を介して読み出し／書込みを制御する。
【００３４】
キャッシュ制御部２は、命令発行制御部１からのスカラロードがミス（ミスヒット）した場合、信号線２７を介して、キャッシュリフィルデータを要求し、メモリ７からのデータを信号線７２を介して受け取る。
【００３５】
また、キャッシュ制御部２は、スカラストア命令が発行された場合に、キャッシュにヒットした場合には、キャッシュデータを書き換え、更に、メモリ７に対しても、必ず書き換えるストアスルーアルゴリズムに基づく。
【００３６】
命令発行制御部１において、ベクトル命令が発行された場合、信号線１６を介して、実行指示が、ベクトルユニット６に送られる。その際、ベクトル命令がＶＳＣ命令（ベクトルスキャタ命令）である場合、ベクトルユニット６は、メモリ７に対して書き込むべきベクトルデータを信号線６７を介して送出し、更に、ベクトルユニット６は、信号線６４を介して、キャッシュ無効化アドレスを、キャッシュ無効化制御部４に送出する。
【００３７】
また、ＶＳＣ命令が発行された場合、レジスタブロック５から信号線５３を介して、ＶＳＣ命令の開始アドレスと、終了アドレスが、ＶＳＣアドレス一致検出部３に送られ、ＶＳＣアドレス一致検出部３では、後続のメモリアクセス命令とアクセスするアドレス領域が重なっているか判定し、重なっている場合、ＶＳＣアドレス一致検出部３から、信号線３１を介して、アドレス一致信号が、命令発行制御部１に送られる。
【００３８】
次に、本発明で、新たに提案されている、領域指定付ＶＳＣ命令の仕様について、図３を参照して説明する。
【００３９】
図３に示すように、命令フィールドは、前述のように、ＯＰＣ（オペコ−ド）と、Ｘ、Ｙ、Ｚの４つのフィ−ルドに分けられる。通常のＶＳＣ命令と異なるところは、Ｚフィールドにおいて、レジスタブロック５内にある、ＲｎとＲｎ＋１の２本のレジスタを指定し、それぞれに、スキャタ領域の開始アドレスと、終了アドレスを指定することである。なお、ＶＳＣ命令では、Ｘ、Ｙフィールドは、ベクトルユニット６のベクトルレジスタの番号を指定するための用いられる。
【００４０】
図２は、本発明の一実施例における命令発行制御部１と、レジスタブロック５と、ＶＳＣアドレス一致制御部３の構成を説明するための図である。
【００４１】
図２を参照すると、メモリから信号線７１を介して供給される命令データは、一旦、命令キャッシュ１０１に格納され、Ｄステージレジスタ１０２のＯＰＣ（命令コード）、Ｘ、Ｙ、Ｚの４つのフィールドに格納する。
【００４２】
その後、ＥＥステージレジスタ１０３に、命令コードと、Ｘフィールドと、Ｙフィールドが移動し、それと同時に、レジスタブロック５のレジスタ５０から、ＥＥステージのレジスタＹdata eeとＺdata eeに、オペランドデータを読み出す。
【００４３】
ＬＤＳ命令の場合には、次のＥＣステージレジスタ１０４に、ＥＥステージレジスタ１０３の情報を移行すると同時に、ＡＡＤ（アドレス加算器）１１５で計算したアドレスを、アドレスｅｃ（レジスタ）に格納し、キャッシュアクセスに使用する。アドレスｅｃ（レジスタ）の出力は、図１のアドレス１２として、キャシュ制御部２として出力され、またＶＳＣアドレス一致検出部３に供給される。
【００４４】
また、本発明によって新たに設けられた領域指定ＶＳＣ命令の場合は、ＥＥステージのＺdata ee（ラッチ）を介して読み出された、ＶＳＣ開始アドレスと終了アドレスを、それぞれ、ＥＣステージのＶＳＣ開始アドレスｅｃと、ＶＳＣ終了アドレスｅｃに格納する。なお、図２のＨＬＤ（ホールド）制御部１０５からＶＳＣ開始アドレスｅｃと、ＶＳＣ終了アドレスｅｃに供給される信号Ｈは、データをホールドする信号である。
【００４５】
その後、ＨＬＤ制御部１０５からのＶＳＣ発行信号１３によってストローブされ、ＶＳＣ開始アドレスｅｃと、ＶＳＣ終了アドレスｅｃの保持データは、ＥＢステージのＶＳＣ開始アドレスｅｂ（ラッチ）と、ＶＳＣ終了アドレスｅｂ（ラッチ）にセットされる。
【００４６】
これらの情報は、次の領域指定付ＶＳＣ命令発行まで、保持される。
【００４７】
ＶＳＣアドレス一致検出部３は、後続のメモリアクセス命令のアクセスアドレスを保持するアドレスｅｃと、ＶＳＣ開始アドレスｅｂの値を比較し、後続のメモリアクセス命令のアクセスアドレスがＶＳＣ開始アドレス以上であるときアクティブ状態の信号を出力する比較器３０１と、アドレスｅｃと、ＶＳＣ終了アドレスｅｂとを比較し、前記後続のメモリアクセス命令のアクセスアドレスがＶＳＣ終了アドレス以下であるときアクティブ状態の信号を出力する比較器３０２と、比較器３０１、３０２の出力のがともにアクティブのとき、アクティブ状態のアドレス一致信号３１をＨＬＤ制御部１０５に出力する論理積回路３０３を備えている。
【００４８】
そして、領域指定付ＶＳＣ命令の発行直後の後続ＬＤＳ命令からアクセスするアドレスが、ＶＳＣ命令のスキャタ領域と重なった場合に、ＶＳＣアドレス一致信号３１がアクティブとなり、ＨＬＤ制御部１０５に送られ、これを受けてＨＬＤ制御部１０５は、ＥＣＨＬＤ信号をアクティブとし（オンし）、この信号は、キャッシュ無効化制御部４から出力されるキャッシュ無効化終了信号４１がオンする（キャッシュ無効化処理が終了する）まで、オン状態とされ、後続のＬＤＳ命令は、命令発行制御部１のＥＣステージにホールドされる。
【００４９】
ＥＣステージで待っているＬＤＳ命令にも、後続命令が存在する場合には、ＨＬＤ制御部１０５は、ＥＥＨＬＤ信号、もしくはＤＨＬＤ信号をオンさせて、これらの後続命令を、ＥＥステージ、もしくはＤステージで待たせる。
【００５０】
なお、図２において、ＲＥＧ更新制御部１１１は、レジスタブロック５のレジスタ５０を更新制御するものであり、例えば公知のＷＡＷハザードの回避制御を行う。また、ＶＳＣ命令の場合、ＥＣステージレジスタ１０４のＸ／Ｙｅｃからの出力は、ベクトルレジスタの番号であり信号線１６から、ベクトルユニット６に供給される。
【００５１】
次に、本発明の一実施例における、領域指定付ＶＳＣ命令と、その直後に存在するＬＤＳ命令の動作タイミングについて、図４、及び図５を参照して説明する。これら２つの例では、後続のＬＤＳ命令がキャッシュヒットした場合を想定している。
【００５２】
図４には、領域指定付ＶＳＣ命令で指定された領域（スキャタ領域）と、後続のＬＤＳがアクセスするアドレスが重ならなかった場合、すなわち、アドレス一致しない場合のタイミング動作が示されている。なお、図４、図５において、Ｄ、ＥＥ、ＥＣ、ＥＢは、図２に示した命令発行制御部１内のＤステージ、ＥＥステージ、ＥＣステージ、ＥＢステージ（ＶＳＣ開始アドレスｅｂ、ＶＳＣ終了アドレスｅｂ）の各ステージに対応している。
【００５３】
領域指定付ＶＳＣ命令は、Ｚオペランド（Ｚｄ）に指定される、レジスタＲｎ、Ｒｎ＋１と２回読む必要があるため、Ｄステージで、２つに分解される（図４のＶＳＣ１st、ＶＳＣ２nd）。なお図２のインクリメンタ（＋１）は、レジスタＲｎ、Ｒｎ＋１と二回読むための制御回路である。
【００５４】
タイミング３、４で、ＶＳＣ命令発行１３が出力され、その時に、各々、ＶＳＣ開始アドレスｅｂと、ＶＳＣ終了アドレスｅｂに格納される。
【００５５】
その後、ＬＤＳ命令がタイミング５で、ＥＣステ−ジから発行されると、タイミング６で、キャッシュデータを読みこみ、タイミング７には、レジスタブロック５のＷＤＲ（write  data  rejister）にキャッシュデータを格納し、タイミング８で、ＷＤＲからレジスタ５０に書き込んで、ＬＤＳ命令の実行を終了する。なお、レジスタブロック５のＷＡＲは（write  address  rejister）であり、レジスタ５０（レジスタファイル）の中の複数のレジスタの一つを選択する。
【００５６】
次に、ＶＳＣ命令で指定された領域と、後続のＬＤＳがアクセスするアドレスが重なった場合、すなわち、アドレス一致した場合の動作について、図５を参照して説明する。図４に示したアドレス不一致の場合との違いは、タイミング５で、ＶＳＣアドレス不一致がオンしたところから始まる。
【００５７】
その後、ＬＤＳ命令は、タイミング７で、キャッシュ無効化終了信号４１がオンするまで、ＥＣステージで、ＥＣＨＬＤ信号をオンさせて、ホールドされる。
【００５８】
その後、アドレス不一致の場合と同様にして、ＬＤＳ命令の結果を、レジスタブロック５のＷＤＲを介して、レジスタ５０に、データを書き込む。
【００５９】
本発明の一実施例においては、命令制御回路において、領域指定ＶＳＣ命令によって、アクセスするメモリ領域に関する示唆を、プログラマ（すなわちプログラマがコーディングしたプログラム）より得ることで、後続のＬＤＳ命令の追い越し制御が可能となり、大幅な性能向上が実現できる。本発明の一実施例の効果を、図６を参照して、より詳しく説明する。
【００６０】
まず、ＶＳＴ命令の場合、発行時点でアクセスする領域が判るため、直ちに、キャッシュ無効化が実現でき、後続のＬＤＳ命令の追い越し制御が可能となる。もし、追い越しが可能であると判定された場合には、キャッシュ無効化中でも、ＬＤＳ命令の実行は可能となる。
【００６１】
一方、従来技術におけるＶＳＣ命令の場合、命令発行時点ではメモリアクセス領域が判らず、またランダムでもあるため、後続のＬＤＳ命令の追い越し制御は不可能であり、キャッシュ無効化処理終了まで待たなくてはならない。
【００６２】
本発明によれば、ＶＳＣ命令であっても、ＶＳＴ命令のように、後続ＬＤＳ命令の追い越し制御を可能としている。
【００６３】
そして、従来技術においては、後続ＬＤＳ命令の待ちが、任意のアドレスについてＶＳＣ発行直後からキャッシュ無効化終了まで必要となる。
【００６４】
これに対して、本発明によれば、この待ち時間は、アドレス一致しない場合にはなくなる。このため、きわめて高い頻度で出現するＬＤＳ命令の性能向上に特段に寄与する。
【００６５】
【発明の効果】
以上説明したように、本発明によれば、領域指定ＶＳＣ命令によって、アクセスするメモリ領域に関する示唆を、プログラムから得ることで、後続のＬＤＳ命令の追い越し制御を可能としており、処理性能を特段に向上することができる、という効果を奏する。その理由は、本発明においては、命令中でスキャタ領域が指定されるベクトルスキャタ命令がアクセスするアドレスと、後続のメモリアクセス命令のアドレスとが重なっているか否かを検出する手段と、アドレスが重なっている場合には、前記後続のメモリアクセス命令をホールドさせる手段とを備えたためである。
【図面の簡単な説明】
【図１】本発明の一実施例の構成を示す図である。
【図２】本発明の一実施例における命令実行制御部とＶＳＣアドレス一致検出部の構成を示す図である。
【図３】本発明の一実施例におけるＶＳＣ命令を説明するための図である。
【図４】本発明の一実施例の動作を説明するための図である。
【図５】本発明の一実施例の動作を説明するための図である。
【図６】ＶＳＣ命令と後続ＬＤＳ命令の処理を説明するための図である。
【図７】ＬＤＳ命令の処理を説明するための図である。
【図８】従来のＶＧＴ、ＶＳＣ命令を説明するための図である。
【符号の説明】
１  命令発行制御部
２  キャッシュ制御部
３  ＶＳＣアドレス一致検出部
４  キャッシュ無効化制御部
５  レジスタブロック
６  ベクトルユニット
７  メモリ
１２  アドレス信号
１３  ＶＳＣ発行信号
１５、５１  信号線
１６  ベクトル命令発行指示
２５  制御信号
２７  アドレス
３１  アドレス一致信号
４１  キャッシュ無効化終了信号
５０  レジスタ
６４  無効化アドレス
６７  アドレス信号
７１  命令データ
７２  データ
１０１  命令キャッシュ
１０２  Ｄステージレジスタ
１０３  ＥＥステージレジスタ
１０４  ＥＣステージレジスタ
１０５  ＨＬＤ制御部
３０１、３０２  比較器
３０３  論理積回路
【図１】
0003733842.tif 000002
【図２】
0003733842.tif 000003
【図３】
0003733842.tif 000004
【図４】
0003733842.tif 000005
【図５】
0003733842.tif 000006
【図６】
0003733842.tif 000007
【図７】
0003733842.tif 000008
【図８】
0003733842.tif 000009