(57)【要約】【課題】プロセッサ−メモリ間のデータ転送遅延を抑制し、処理の迅速化を図る。【解決手段】ベクトルプロセッサ３１、３２、…、３ｎとメモリ制御部４１、４２、…、４ｍとを備えるベクトル処理装置であって、ベクトルプロセッサ３１、３２、…、３ｎは、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、メモリアクセスに関する制御情報を生成するメモリアクセス制御部（制御情報生成回路９）３３とを有してなるとともに、生成された前記制御情報に基づいて、キャッシュ登録有無、又は／及び登録サイズを切り替えるポートキャッシュ３６とを有すると共に、前記メモリ制御部４１、４２、…、４ｍは、生成された前記制御情報に基づいて、キャッシュ登録有無、又は／及び登録サイズを切り替えるバンクキャッシュ４４と、メモリアクセス単位を切り替えるメモリバンク４４とを備えている。【選択図】図１
2008250926.tif 000002
【特許請求の範囲】
【請求項１】
ベクトルプロセッサとメモリ制御部とを備えるベクトル処理装置であって、
前記ベクトルプロセッサは、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、メモリアクセスに関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、前記制御情報手段によって生成された前記制御情報に基づいて、メモリアクセス単位を切り替えるメモリバンクとを備えてなることを特徴とするベクトル処理装置。
【請求項２】
ベクトルプロセッサを備えるベクトル処理装置であって、
前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は／及び登録サイズを切り替えることを特徴とするベクトル処理装置。
【請求項３】
ベクトルプロセッサとメモリ制御部とを備えるベクトル処理装置であって、
前記ベクトルプロセッサは、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、バンク単位に搭載されたバンクキャッシュを有し、
前記各バンクキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は／及び登録サイズを切り替えることを特徴とするベクトル処理装置。
【請求項４】
前記制御情報手段は、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてメモリアクセスに関する制御情報を生成することを特徴とする請求項１記載のベクトル処理装置。
【請求項５】
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴とする請求項２記載のベクトル処理装置。
【請求項６】
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴とする請求項３記載のベクトル処理装置。
【請求項７】
ハードウエアモードにより、前記制御情報の有効、無効を切り替える機能を備えてなることを特徴とする請求項１乃至６の何れか1つに記載のベクトル処理装置。
【請求項８】
ソフトウエア指示又はハードウエアモードにより、前記制御情報をベクトル命令のみ、スカラ命令のみ、及びベクトル命令／スカラ命令両方のうちの何れかに切り替える手段を有してなることを特徴とする請求項１乃至６の何れか1つに記載のベクトル処理装置。
【請求項９】
複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムであって、
前記各ベクトルプロセッサは、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、メモリアクセスに関する制御情報を生成する制御情報手段を有すると共に、前記各メモリ制御部は、前記制御情報手段によって生成された前記制御情報に基づいて、メモリアクセス単位を切り替えるメモリバンクとを備えてなることを特徴とするベクトル処理システム。
【請求項１０】
複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムであって、
前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は／及び登録サイズを切り替えることを特徴とするベクトル処理システム。
【請求項１１】
複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムであって、
前記ベクトルプロセッサは、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、バンク単位に搭載されたバンクキャッシュを有し、
前記各バンクキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は／及び登録サイズを切り替えることを特徴とするベクトル処理システム。
【請求項１２】
前記制御情報手段は、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてメモリアクセスに関する制御情報を生成することを特徴とする請求項９記載のベクトル処理システム。
【請求項１３】
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴とする請求項１０記載のベクトル処理システム。
【請求項１４】
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴とする請求項１１記載のベクトルシステム。
【請求項１５】
ハードウエアモードにより、前記制御情報の有効、無効を切り替える機能を備えてなることを特徴とする請求項９乃至１４の何れか1つに記載のベクトル処理システム。
【請求項１６】
ソフトウエア指示又はハードウエアモードにより、前記制御情報をベクトル命令のみ、スカラ命令のみ、及びベクトル命令／スカラ命令両方のうちの何れかに切り替える手段を有してなることを特徴とする請求項９乃至１４の何れか1つに記載のベクトル処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ベクトル処理装置及びベクトル処理システムに係り、とくに、高速ベクトル演算処理に用いて好適なベクトル処理装置及びベクトル処理システムに関する。
【背景技術】
【０００２】
図１１は、従来のマルチベクトルプロセッサシステム（以下、簡単に、ベクトル処理装置ともいう）の電気的構成を示すブロック図である。
従来のベクトル処理装置は、同図に示すように、それぞれが、パイプライン・ベクトル演算処理を行う複数（ｎ個：ｎは２以上の自然数）のべクトルプロセッサ（ＣＰＵ）１１、１２、…、１ｎと、それぞれが、メモリアドレスによってインタリーブされた共有メモリ型の主記憶装置である、複数（ｍ個：ｍは２以上の自然数）のメモリ制御部２１、２２、…、２ｍとを備え、これらのべクトルプロセッサ１１、１２、…、１ｎとメモリ制御部２１、２２、…、２ｍとが、クロスバー網で結合されることで、全てのべクトルプロセッサ１１、１２、…、１ｎが、いずれのメモリ制御部２１、２２、…、２ｍへもアクセスでき、並列処理してシステム全体の処理速度の高速化を達成できる構成となっている。
【０００３】
各ベクトルプロセッサ１１、１２、…、１ｎは、同図に示すように、スカラ処理部１１と、ベクトル処理部１２と、メモリアクセス制御部１３と、クロスバスイッチ１４とから概略構成されている。上記スカラ処理部１１は、各種命令発行制御とスカラ演算処理とを行う役割を担っている。ベクトル処理部１２は、スカラ処理部１１からベクトル命令を受けると、複数のベクトルパイプラインによって、ベクトルを構成する多数の要素に対する同一の繰り返し操作（ベクトル演算処理）を高速で実行する。ベクトル処理部１２には、ベクトル演算を高速に実行するために、メモリ制御部２１、２２、…、２ｍから読み出されたロードデータ（各種要素）や、演算結果の格納を行う、要素ごとにインタリーブされたベクトルレジスタ１５が内蔵されている。上記メモリアクセス制御部１３は、スカラ処理部１１から発行されたメモリアクセス命令を受けると、メモリアドレスを生成してメモリアクセスパケットを生成する。また、クロスバスイッチ１４は、メモリアクセス制御部１３から受け取ったメモリアクセスパケットやベクトル処理部１２から受け取ったメモリストアデータをアドレスによりインタリーブされた所望のメモリアクセスポートＱ０、Ｑ１、Ｑ２、Ｑ３にスイッチする一方、メモリ制御部２１、２２、…、２ｍから読み出されたロードデータをベクトル処理部１２の要素ごとにインタリーブされたベクトルレジスタ１５に送るためのスイッチ操作も実行する。
【０００４】
次に、各メモリ制御部２１、２２、…、２ｍは、同図に示すように、クロスバスイッチ２１と、バンク制御部２２、２２、…と、バンクキャッシュ２３、２３、…と、メモリバンク２４、２４、…とから構成されている。上記クロスバスイッチ２１は、ｎ個のベクトルプロセッサ１１、１２、…、１ｎのいずれからでも、メモリアクセスパケットを受け取ると、アドレスによりインタリーブされた所望のメモリポートＰ０、Ｐ１、Ｐ２、Ｐ３へスイッチする。ここで、同図に示すように、メモリポートＰ０、Ｐ１、Ｐ２、Ｐ３ごとに、バンク制御部２２と、バンクキャッシュ２３と、メモリバンク２４とが設置されていて、バンク制御部２２は、クロスバスイッチ２１からのメモリアクセスパケットを受け取ると、アドレスでインタリーブされたメモリバンク２４内の所望のメモリ素子にアクセスするための制御を行う。
【０００５】
バンクキャッシュ２３は、メモリバンク２４を構成するメモリ素子の遅延を隠蔽するための少容量のライトスルー型キャッシュメモリであり、メモリバンク２４ごとに独立に設けられて、次のように動作する。バンクキャッシュ２３は、バンク制御部２２から受け取ったメモリアクセスパケットがロードのときは、アドレスによりヒット、ミスヒットを判定し、ヒットならば、自身にキャッシュされたデータをクロスバスイッチ２１に返し、ミスヒットならば、メモリバンク２４にメモリアクセスパケットを発行し、この後、メモリバンク２４からロードデータが戻ってきたら、自身のキャッシュに登録すると共に、バンク制御部２２及びクロスバスイッチ２１を介して、メモリアクセスパケットを発行したベクトルプロセッサ１１、１２、…、１ｎにロードデータを送る。一方、バンクキャッシュ２３は、バンク制御部２２から受け取ったメモリアクセスパケットがストアのときは、アドレスによりヒット、ミスヒットを判定し、アドレスがミスすれば、そのままメモリバンク２４へ送り、ヒットすれば、自身のキャッシュを書き換えると共に、メモリバンク２４にもストアパケットを送る。
【０００６】
しかしながら、上記従来のベクトル処理装置においては、昨今のテクノロジの進歩によりプロセッサ性能は向上したものの、メモリ素子のアクセス性能の進歩はそれほどではなく、メモリバンド幅の増加やメモリレイテンシ短縮による大量データの並列処理により高性能を引き出すベクトルプロセッサにとっては、メモリ素子とプロセッサとの間の性能格差が広がり、メモリ素子の性能ネックに起因して、システムの全体性能が低下してしまう、という問題があった。これは、メモリ素子のスループットが相対的に遅いため、プロセッサ−メモリ間のデータ転送遅延が大きくなり、プロセッサ側のベクトル演算処理の開始が相対的に遅れてしまうためである。
これを解消するためには、データ幅を広げることで、メモリ側のスループットの向上を図ることができるが、そうすると、メモリ側により大きなハードウエア量の追加が必要となるので、コストの増加を招き、不都合である。
【０００７】
このような不都合を解消する手段として、命令語中に主記憶上の隣接するデータをロードするか否かを指定する動作指示フィールドを持ち、該動作指示フィールドの情報によって主記憶から読み出す読出しデータ幅が４バイトか８バイトかを決定するようにした、特許文献１に記載のベクトル処理装置が提案されている。特許文献２にも、特許文献１に類似する技術が開示されている。
【特許文献１】特開平０９−０６２６５４号公報
【特許文献２】特開平０１−２９２４５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、互いに独立して演算処理を実行する複数のベクトルプロセッサにあっては、命令語中に主記憶上の隣接するデータをロードするか否かを指定する（特許文献１に記載の）動作指示フィールドのみでは、ベクトル命令の処理の高速化を達成するには限界がある。
【０００９】
この発明は、上述の事情に鑑みてなされたもので、プロセッサ−メモリ間のデータ転送遅延の増加を抑制すると共に、メモリアクセス命令の内容によりキャッシュ方法、メモリアクセス方法を変更することにより、キャッシュを効率的に用い、ハードウエア量の増加を抑制すると共にスループットの向上を図ることができるベクトル処理装置及びベクトル処理システムを提供することを目的としている。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、請求項１記載の発明は、ベクトルプロセッサとメモリ制御部とを備えるベクトル処理装置に係り、前記ベクトルプロセッサが、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、メモリアクセスに関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部が、前記制御情報手段によって生成された前記制御情報に基づいて、メモリアクセス単位を切り替えるメモリバンクとを備えてなることを特徴としている。
【００１１】
また、請求項２記載の発明は、ベクトルプロセッサを備えるベクトル処理装置に係り、前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュが、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は／及び登録サイズを切り替えることを特徴としている。
【００１２】
また、請求項３記載の発明は、ベクトルプロセッサとメモリ制御部とを備えるベクトル処理装置に係り、前記ベクトルプロセッサが、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部が、バンク単位に搭載されたバンクキャッシュを有し、前記各バンクキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は／及び登録サイズを切り替えることを特徴としている。
【００１３】
また、請求項４記載の発明は、請求項１記載のベクトル処理装置に係り、前記制御情報手段が、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてメモリアクセスに関する制御情報を生成することを特徴としている。
【００１４】
また、請求項５記載の発明は、請求項２記載のベクトル処理装置に係り、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴としている。
【００１５】
また、請求項６記載の発明は、請求項３記載のベクトル処理装置に係り、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴としている。
【００１６】
請求項７記載の発明は、請求項１乃至６の何れか1つに記載のベクトル処理装置に係り、ハードウエアモードにより、前記制御情報の有効、無効を切り替える機能を備えてなることを特徴としている。
【００１７】
請求項８記載の発明は、請求項１乃至６の何れか1つに記載のベクトル処理装置に係り、ソフトウエア指示又はハードウエアモードにより、前記制御情報をベクトル命令のみ、スカラ命令のみ、及びベクトル命令／スカラ命令両方のうちの何れかに切り替える手段を有してなることを特徴としている。
【００１８】
請求項９記載の発明は、複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムに係り、前記各ベクトルプロセッサが、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、メモリアクセスに関する制御情報を生成する制御情報手段を有すると共に、前記各メモリ制御部が、前記制御情報手段によって生成された前記制御情報に基づいて、メモリアクセス単位を切り替えるメモリバンクとを備えてなることを特徴としている。
【００１９】
また、請求項１０記載の発明は、複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムに係り、前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュが、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は／及び登録サイズを切り替えることを特徴としている。
【００２０】
請求項１１記載の発明は、複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムに係り、前記ベクトルプロセッサが、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、バンク単位に搭載されたバンクキャッシュを有し、前記各バンクキャッシュが、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は／及び登録サイズを切り替えることを特徴としている。
【００２１】
請求項１２記載の発明は、請求項９記載のベクトル処理システムに係り、前記制御情報手段が、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてメモリアクセスに関する制御情報を生成することを特徴としている。
【００２２】
請求項１３記載の発明は、請求項１０記載のベクトル処理システムに係り、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴としている。
【００２３】
請求項１４記載の発明は、請求項１１記載のベクトル処理システムに係り、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴としている。
【００２４】
請求項１５記載の発明は、請求項９乃至１４の何れか1つに記載のベクトル処理システムに係り、ハードウエアモードにより、前記制御情報の有効、無効を切り替える機能を備えてなることを特徴としている。
【００２５】
請求項１６記載の発明は、請求項９乃至１４の何れか1つに記載のベクトル処理システムに係り、ソフトウエア指示又はハードウエアモードにより、前記制御情報をベクトル命令のみ、スカラ命令のみ、及びベクトル命令／スカラ命令両方のうちの何れかに切り替える手段を有してなることを特徴としている。
【発明の効果】
【００２６】
この発明の構成によれば、キャッシュ制御やメモリアクセス制御を命令毎に最適に制御しているので、プロセッサとメモリ素子の性能差分を隠蔽でき、少ないハードウエア量でも、スループットの向上化を図ることができる。加えて、ベクトルプロセッサにポートキャッシュを設け、プロセッサ−メモリ間のデータ転送遅延の増加を抑制すると共に、メモリアクセス命令の内容によりキャッシュ方法、メモリアクセス方法を最適化することにより、キャッシュを効率的に用いることができるので、ハードウエア量の増加を抑制すると共にスループットの向上化を達成できる。
【発明を実施するための最良の形態】
【００２７】
この発明の実施形態が、上記従来のそれと大きく異なるところは、メモリアクセス制御部３３に、スカラ処理部から発行される命令内容から（登録方法の切替え等の）制御情報を生成する制御情報生成回路３９、及びベクトルプロセッサ３１、３２、…、３ｎ内部のメモリポート部に、メモリアクセスポートＱ０、Ｑ１、Ｑ２、Ｑ３ごとに独立した複数のキャッシュ（ポートキャッシュ３６、３６、…）を設けるようにした点である。このような構成によれば、命令内容によって登録方法（例えば、８バイト登録／１６バイト登録、キャッシュに登録する／しない等）を切り替えることができるので、効率的にキャッシュに格納でき、それゆえ、キャッシュ容量を抑えることができ、少ないハードウエア投資でもスループット性能を確保できる。
【実施例１】
【００２８】
図１は、この発明の第１実施例であるベクトル処理装置の電気的構成を示すブロック図である。
この例のベクトル処理装置（マルチベクトルプロセッサシステム）は、同図に示すように、それぞれが、パイプライン・ベクトル演算処理を行う複数（ｎ個：ｎは２以上の自然数）のべクトルプロセッサ（ＣＰＵ）３１、３２、…、３ｎと、それぞれが、メモリアドレスによってインタリーブされた共有メモリ型の主記憶装置である、複数（ｍ個：ｍは２以上の自然数）のメモリ制御部４１、４２、…、４ｍとを備え、これらのべクトルプロセッサ３１、３２、…、３ｎとメモリ制御部４１、４２、…、４ｍとが、クロスバー網で結合されることで、全てのべクトルプロセッサ３１、３２、…、３ｎが、いずれのメモリ制御部４１、４２、…、４ｍへもアクセスでき、並列処理することで、システム全体の処理速度の高速化を達成できる構成となっている。
この例のベクトル処理装置の構成が、上記従来のそれと大きく異なるところは、ベクトルプロセッサ３１、３２、…、３ｎに、メモリアクセスポートＱ０、Ｑ１、Ｑ２、Ｑ３ごとに独立したポートキャッシュ３６、３６、…を複数設けるようにした点である。
【００２９】
すなわち、各ベクトルプロセッサ３１、３２、…、３ｎは、同図に示すように、スカラ処理部３１と、ベクトル処理部３２と、メモリアクセス制御部３３と、クロスバスイッチ３４と、ポートキャッシュ３６、３６、…とから概略構成されている。上記スカラ処理部３１は、各種命令発行制御とスカラ演算処理とを行う役割を担っている。ベクトル処理部３２は、スカラ処理部３１からベクトル命令を受けると、複数のベクトルパイプラインによって、ベクトルを構成する多数の要素に対する同一の繰り返し操作（ベクトル演算処理）を高速で実行する。
【００３０】
ベクトル処理部３２には、ベクトル演算を高速に実行するために、メモリ制御部４１、４２、…、４ｍから読み出されたロードデータ（各種要素）や、演算結果の格納を要素ごとに行う、要素ごとにインタリーブされたベクトルレジスタ３５が内蔵されている。メモリアクセス制御部３３は、スカラ処理部３１から発行されたメモリアクセス命令を受けると、メモリアドレスを生成してメモリアクセスパケットを生成する。
【００３１】
クロスバスイッチ３４は、メモリアクセス制御部３３から受け取ったメモリアクセスパケットやベクトル処理部３２から受け取ったメモリストアデータをアドレスによりインタリーブされた所望のメモリポートＱ０、Ｑ１、Ｑ２、Ｑ３にスイッチする一方、メモリ制御部４１、４２、…、４ｍ又はポートキャッシュ３６、３６、…から読み出されたロードデータをベクトル処理部３２の要素ごとにインタリーブされたベクトルレジスタ１５に送るためのスイッチ操作も実行する。
【００３２】
上記ポートキャッシュ３６、３６、…は、メモリアクセスの遅延を隠蔽するために、ベクトルプロセッサ３１、３２、…、３ｎに設けられたライトスルー型のキャッシュメモリであり、同図に示すように、メモリポートＱ０、Ｑ１、Ｑ２、Ｑ３ごとに独立して設置されている。
【００３３】
各ポートキャッシュ３６、３６、…は、メモリアクセス制御部３３から受け取ったメモリアクセスパケットがロードのときは、アドレスによりヒット、ミスヒットを判定し、ヒットならば、自身にキャッシュされたデータをクロスバスイッチ３４に返し、ミスヒットならば、メモリ制御部４１、４２、…、４ｍにメモリアクセスパケットを発行し、この後、メモリ制御部４１、４２、…、４ｍからロードデータが戻ってきたら、自身のキャッシュに登録すると共に、クロスバスイッチ３４を介して、ベクトルレジスタ３５にロードデータを送る。
【００３４】
一方、ポートキャッシュ３６、３６、…は、メモリアクセス制御部３３から受け取ったメモリアクセスパケットがストアのときは、アドレスによりヒット、ミスヒットを判定し、アドレスがミスすれば、そのままメモリ制御部４１、４２、…、４ｍへ送り、ヒットすれば、自身のキャッシュを書き換えると共に、メモリ制御部４１、４２、…、４ｍにもストアパケットを送る。
【００３５】
次に、各メモリ制御部４１、４２、…、４ｍは、同図に示すように、クロスバスイッチ４１と、バンク制御部４２と、バンクキャッシュ４３と、メモリバンク４４とから構成されている。上記クロスバスイッチ４１は、ｎ個のベクトルプロセッサ３１、３２、…、３ｎのいずれからでも、メモリアクセスパケットを受け取ると、アドレスによりインタリーブされた所望のメモリポートＰ０、Ｐ１、Ｐ２、Ｐ３へスイッチする。
【００３６】
ここで、同図に示すように、メモリポートＰ０、Ｐ１、Ｐ２、Ｐ３ごとに、バンク制御部４２と、バンクキャッシュ４３と、メモリバンク４４とが設置されていて、バンク制御部４２は、前段のクロスバスイッチ４１からのメモリアクセスパケットを受け取ると、アドレスでインタリーブされたメモリバンク４４内の所望のメモリ素子にアクセスするための制御を行う。
【００３７】
上記バンクキャッシュ４３は、メモリバンク４４を構成するメモリ素子の遅延を隠蔽するための少容量のライトスルー型メモリであり、メモリバンク４４ごとに独立に設けられている。バンクキャッシュ４３は、バンク制御部４２から受け取ったメモリアクセスパケットがロードのときは、アドレスによりヒット、ミスヒットを判定し、ヒットならば、自身にキャッシュされたデータを前段のクロスバスイッチ４１に返し、ミスヒットならば、後段のメモリバンク４４にメモリアクセスパケットを発行し、この後、メモリバンク４４からロードデータが戻ってきたら、自身のキャッシュに登録すると共に、バンク制御部４２及びクロスバスイッチ４１を介して、メモリアクセスパケットを発行したベクトルプロセッサ３１、３２、…、３ｎにロードデータを送る。一方、バンクキャッシュ４３は、バンク制御部４２から受け取ったメモリアクセスパケットがストアのときは、アドレスによりヒット、ミスヒットを判定し、アドレスがミスすれば、そのまま、後段のメモリバンク４４へ送り、ヒットすれば、自身のキャッシュを書き換えると共に、メモリバンク４４にもストアパケットを送る。
【００３８】
図２は、この例のベクトルプロセッサ３１、３２、…、３ｎを構成するメモリアクセス制御部３３の詳細な電気的構成を示すブロック図、また、図３は、同メモリアクセス制御部の制御情報生成回路で生成される各種制御情報例を示す概念図である。
メモリアクセス制御部３３は、図２に示すように、メモリリクエスト生成部３７とメモリアドレス生成部３８とから構成され、メモリリクエスト生成部３７には、制御情報生成回路３９が含まれている。メモリアドレス生成部３８は、メモリアクセスすべきアドレスを生成する。メモリリクエスト生成部３７は、スカラ処理部３１から受けるメモリアクセス命令に基づいてメモリアクセスパケットを生成し、例えば、ベクトルロード命令やベクトルストア命令であれば、命令は１つで済むが、命令内容には、ベースアドレス、ディスタンス（距離）、及び要素数が含まれており、これらの情報から、要素ごと・要素数分のメモリアクセスパケットを生成する。
【００３９】
制御情報生成回路３９では、スカラ処理部３１から受けるロード／ストア命令内容から、各種制御情報が生成される。具体的には、制御情報生成回路３９は、１６バイトアクセスパケットにするか８バイトアクセスパケットにするか等、メモリアクセスパケットの生成に使用される他にも、この例では、各種制御情報例として図３に示すように、例えば、ポートキャッシュ３６に登録するBIT［１、１］、登録しないBIT［１、０］、バンクキャッシュ４３に登録するBIT［２、１］、登録しないBIT［２、０］、パケットは８バイトアクセスであるが、メモリバンク４４（メモリ素子）へのアクセスやバンクキャッシュ４３への登録は１６バイトにするBIT［０、１］（１６Ｂリクエスト発行）、８バイトのままにするBIT［０、０］（８Ｂリクエスト発行）、等の制御情報を生成する。生成された制御情報は、メモリアクセスパケットに付与されて、その制御情報が必要な回路まで持ちまわることになる。
【００４０】
図４は、この例のベクトルプロセッサ３１、３２、…、３ｎのポートキャッシュ３６、３６、…の詳細な電気的構成を示すブロック図である。
この例では、４ポート構成のポートキャッシュ３６、３６、…がメモリアクセスポートＱ０、Ｑ１、Ｑ２、Ｑ３ごとに設けられていていて、各ポートキャッシュ３６、３６、…は、同図に示すように、ラインあたり１６バイトのデータ幅を持ち、同一ライン（横方向）にはアドレスとして連続する１６バイトが格納される構成となっている。ポートキャッシュ３６、３６、…は、互いに完全に独立しており、図示していないが、各メモリアクセスポートＱ０、Ｑ１、Ｑ２、Ｑ３ごとにアドレスアレイを持ってキャッシュ制御する機能を有している。また、ライン数は任意であり、図示していないがウエイ数も任意に持つことができる。
【００４１】
ポートキャッシュ３６、３６、…は、メモリアクセス制御部３３から付与された制御情報に基づいて、キャッシュの制御を切り替えることができるようになっている。例えば、ポートキャッシュ３６には登録しない旨の制御情報（図３）が付与されたメモリアクセスパケットが来ると、フィルされたデータは、キャッシュには登録せずに、そのままクロスバスイッチ３４を介してベクトルレジスタ３５に送る構成となっていて、このような構成とすることで、キャッシュが荒らされてヒット率が低下するのを防止している。
【００４２】
図５は、この例のメモリ制御部４１、４２、…、４ｍを構成するバンクキャッシュ４３、４３、…の詳細な電気的構成を示すブロック図である。
この例では、４バンク構成のバンクキャッシュ４３、４３、…がメモリポートＰ０、Ｐ１、Ｐ２、Ｐ３ごとに設けられていて、各バンク４３、４３、…は、互いに独立で、図示していないがアドレスアレイを持っており、キャッシュ制御する機能を有している。なお、ベクトル処理装置は、各ベクトルプロセッサ３１、３２、…、３ｎ間で依存関係がなく、ベクトルプロセッサ（ＣＰＵ）３１、３２、…、３ｎ毎に別のプロセスが動作しているため、バンクキャッシュ４３、４３、…は、図５に示すように、ベクトルプロセッサ３１、３２、…、３ｎ毎に別々のラインとしてキャッシュする構成となっている。同図では、ラインサイズは、連続する１６バイトを格納する例が示されている。
【００４３】
バンクキャッシュ４３、４３、…においても、ポートキャッシュ３６、３６、…と同様にメモリアクセス制御部３３にて付与された制御情報（図３）に基づいて、キャッシュの制御を切り替えることができ、バンクキャッシュ４３内容の最適化を行うことができるようになっている。例えば、バンクキャッシュ４３には登録しない旨の制御情報（図３）が付与されたメモリアクセスパケットが来ると、フィルされたデータは、キャッシュには登録せずに、そのまま、バンク制御部４２及びクロスバスイッチ４１を介して、ベクトルプロセッサ３１、３２、…、３ｎ（ベクトルレジスタ３５）に送る構成となっていて、このような構成とすることで、キャッシュが荒らされてヒット率が低下するのを防止している。
【００４４】
図６は、ベクトルプロセッサ（ＣＰＵ）３１、３２、…、３ｎと、メモリ制御部４１、４２、…、４ｍとの間のインタフェースの詳細例（メモリリクエストの形式例）を示す概念図である。同図には、メモリアクセス制御部３３の制御情報生成回路３９にて生成された制御情報（図３）をメモリアクセスパケットに付与し、持ちまわるパケット構成例が示されている。ベクトルプロセッサ（ＣＰＵ）３１、３２、…、３ｎからメモリアクセス制御部３３方向への信号の流れ（以下、ＣＰＵ→メモリ制御部方向という）では、１６バイトロード、８バイトロードとも、同図に示すように、アドレスと制御情報とで１パケット幅のデータラインを使い、ストアの場合は、アドレスと制御情報とで１パケット幅のデータラインを使い、さらに、ストアデータも８バイトごとにパケットを増やして追加する構成となっている。それゆえ、この例では、１６バイトストアでは、３パケット構成、８バイトストアでは、２パケット構成となる。同様に、メモリアクセス制御部３３からベクトルプロセッサ（ＣＰＵ）３１、３２、…、３ｎ方向への信号の流れ（以下、メモリ制御部→ＣＰＵ方向という）でも、８バイトロードデータと制御情報とで１パケットを構成しており、８バイトロードで、１パケット構成、１６バイトロードで、２パケット構成となるようにしている。
【００４５】
次に、図２、図３、図７、図８及び図９を参照して、この例の動作（とくに、制御情報の作成方法）について説明する。
ベクトルロード／ストア命令は、ベースアドレスとディスタンス（距離）と要素数とによって決定される。
例えば、４ポート構成のポートキャッシュ３６、３６、…が、メモリアドレスによりインタリーブされている構成（図９）では、ベースアドレスが０、ディスタンスが８Ｂであると、データ（要素１、要素２、…）は、図７に示すように、ＶＬＤ（Volatile Logical Destination、非蓄積型論理あて先）８バイトとびのインタリーブ配列で格納されることになる。このような格納構成では、キャッシュメモリの連続領域をロードすることになる。この場合、８バイトアクセスとしてメモリアクセスするよりも、１６バイトアクセスとしてメモリアクセスした方がスループット上有利である。これは、図６のメモリリクエストの形式例で示すように、１６バイトロードであれば、ＣＰＵ→メモリ制御部方向のパケット構成は、１６バイトあたり１パケットとなり、８バイトロードの場合の８バイト当たり１パケットに対し、２倍のスループットが確保できることになるからである。命令がストアであれば、１６バイトストアで３パケットに対し、８バイトストアで２パケットであり、４／３倍のスループットが得られる。したがって、メモリアクセス制御部３３は、ディスタンスが８Ｂを検出すると、１６バイトアクセスに切り替える。さらに、このデータをポートキャッシュ３６、３６、…に登録した場合、連続する１６バイトが常に有効なデータであるため、再利用する場合にもヒット率が向上する。
【００４６】
一方、ベースアドレスが０、ディスタンスが３２Ｂであると、データ（要素１、要素２、…）は、図８に示すように、ＶＬＤ３２バイトとびのインタリーブ配列で格納されることになる。この格納構成では、同図から判るように、連続した１６バイトに必要なデータが、１６バイト分存在することは無い。この場合は、１６バイトアクセスとしてメモリアクセスするよりも８バイトアクセスとしてメモリアクセスした方が、スループット上有利である。これは、図６のメモリリクエストの形式例で示すように、メモリ制御部→ＣＰＵ方向のパケット構成は１６バイトが２パケット、８バイトが１パケットとなるので、１６バイトロードであれば、必要な８バイトを確保するために、不必要な８バイト分のデータ１パケットが存在する１６バイトロードの方が、メモリスループット上不利益になる。さらに、データをキャッシュに登録した場合、１６バイトラインサイズの中で有効データが８バイトしかなく、さらに、ポートキャッシュ３６、３６、…間で偏りができるためキャッシュを荒らすことになりヒット率が低下するため、ポートキャッシュ３６、３６、…に登録しないという判断も可能となる。
【００４７】
なお、４バンク構成のバンクキャッシュ４３、４３、…へのキャッシュ登録やメモリバンク（メモリ素子）２４、２４、…へのアクセス等についても、４ポート構成のポートキャッシュ３６、３６、…のキャッシュ動作で述べたと同様の動作であるので、その説明を省略する。これらのキャッシュやメモリバンクは、それぞれの命令によって最適な制御方法に設定されることができる。
【００４８】
このように、この例の構成によれば、キャッシュ制御やメモリアクセス制御を命令毎に最適に制御しているので、プロセッサとメモリ素子の性能差分を隠蔽でき、性能の向上化を図ることができる。加えて、キャッシュ制御やメモリアクセス制御を命令毎に最適に制御しているので、少ないハードウエア量でも性能を確保できる。
【実施例２】
【００４９】
図１０は、この発明の第２実施例で適用される、ソフトウェア指示によるメモリアクセス制御例を示す概念図である。
この第２実施例の構成が、上述の第２実施例のそれと大きく異なるところは、メモリアクセス制御部３３の制御情報生成回路３９で生成する制御情報の内容及び生成方法に工夫を凝らして、ハードウエアでの切り替えのみならず、ソフトウエアによっても制御できるようにした点である。すなわち、この例では、図１０に示すように、ロード／ストア命令に強制ポートキャッシュ登録やバンクキャッシュ登録、あるいは、強制１６バイトロード、プリフェッチ指示等を指示するフラグが追加されている。
【００５０】
この第２実施例の構成によれば、第１実施例の構成（制御情報）に拘わらず、ソフトウエア的に判断可能な再利用性の高いデータ（要素）に対して、強制的にキャッシュに登録できる等、容易に性能チューニングすることができる。
【００５１】
以上、この発明の実施例を図面を参照して詳述してきたが、具体的な構成はこの実施例に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。例えば、上述の実施例では、ソフトウェア構成で、キャッシュに登録した方が良いか否かを判断して、制御情報の生成を行うようにしたが、これに限らず、ｊｏｂによっては、ハードウエアモードによって制御情報の生成を切り替えるようにしても良い。また、上記以外の制御方法についても、ソフトウェア構成に限らず、ハードウェア構成によっても、最適な制御方法に設定するようにしても良い。キャッシュ制御やメモリアクセス制御をハードウエアモードやソフトウエアによって変更できるようにすれば、容易に性能のチューニングができる。
【００５２】
また、この発明は、スカラ処理部から発行されるスカラ命令のメモリアクセスについても、ベクトル命令同様、メモリアクセス制御部にて制御情報の生成ができる。とくに、スカラ処理部に持つ、命令キャッシュ、オペランドキャッシュのキャッシュミス時のフィル動作についても、ベクトル命令のディスタンス８Ｂと同様に連続領域のメモリアクセスであるので、１６バイト処理が可能である。さらに、ポートキャッシュを２次キャッシュとしても使用できる。
この際も、ハードウエアモードのみならず、ソフトウエア制御も行うことにより、性能チューニングも可能となる。関連してポートキャッシュをベクトル用のキャッシュとしてのみ動作、あるいは、スカラ処理用の２次キャッシュとしてのみ動作、あるいは、スカラ、ベクトル両方のキャッシュとして動作させる等、ハードウエアモードやソフトウエアでの制御も可能である。
【産業上の利用可能性】
【００５３】
この発明は、高速演算装置（スーパコンピュータ）や高速画像処理システム（スーパＣＡＤ）等に適用できる。
【図面の簡単な説明】
【００５４】
【図１】この発明の第１実施例であるベクトル処理装置（マルチベクトルプロセッサシステム）の電気的構成を示すブロック図である。
【図２】同ベクトル処理装置のベクトルプロセッサを構成するメモリアクセス制御部の詳細な電気的構成を示すブロック図である。
【図３】同メモリアクセス制御部の制御情報生成回路で生成される各種制御情報例を示す概念図である。
【図４】同ベクトル処理装置のベクトルプロセッサを構成するポートキャッシュの詳細な電気的構成を示すブロック図である。
【図５】同ベクトル処理装置のメモリ制御部を構成するバンクキャッシュの詳細な電気的構成を示すブロック図である。
【図６】同ベクトル処理装置における、ベクトルプロセッサ（ＣＰＵ）とメモリ制御部との間のインタフェースの詳細例（メモリリクエストの形式例）を示す概念図である。
【図７】同ベクトル処理装置の動作（制御情報の作成方法）の説明に供される図で、データがインタリーブされて、４ポート構成のポートキャッシュに格納されている状態を示す概念図である。
【図８】同ベクトル処理装置の動作（制御情報の作成方法）の説明に供される図で、データがインタリーブされて、４ポート構成のポートキャッシュに格納されている状態を示す概念図である。
【図９】同ベクトル処理装置の動作（メモリインタリーブ例）の説明に供される概念図である。
【図１０】この発明の第２実施例で適用される、ソフトウェア指示によるメモリアクセス制御例を示す概念図である。
【図１１】従来のベクトル処理装置の電気的構成を示すブロック図である。
【００５５】
３１、３２、…、３ｎ        ベクトルプロセッサ（ＣＰＵ）
３１        スカラ処理部
３２        ベクトル処理部
３３        メモリアクセス制御部
３７        メモリリクエスト生成部
３８        メモリアドレス生成部
３９        制御情報生成回路
３４        クロスバスイッチ
３５        ベクトルレジスタ
３６        ポートキャッシュ
４１、４２、…、４ｍ        メモリ制御部
４１        クロスバスイッチ
４２        バンク制御部
４３        バンクキャッシュ
４４        メモリバンク
Ｑ０、Ｑ１、Ｑ２、Ｑ３        メモリアクセスポート
Ｐ０、Ｐ１、Ｐ２、Ｐ３        メモリポート
【図１】
2008250926.tif 000003
【図２】
2008250926.tif 000004
【図３】
2008250926.tif 000005
【図４】
2008250926.tif 000006
【図５】
2008250926.tif 000007
【図６】
2008250926.tif 000008
【図７】
2008250926.tif 000009
【図８】
2008250926.tif 000010
【図９】
2008250926.tif 000011
【図１０】
2008250926.tif 000012
【図１１】
2008250926.tif 000013