説明

ベクトル処理装置及びベクトル処理システム

【課題】プロセッサ−メモリ間のデータ転送遅延を抑制し、処理の迅速化を図る。
【解決手段】ベクトルプロセッサ3、3、…、3とメモリ制御部4、4、…、4とを備えるベクトル処理装置であって、ベクトルプロセッサ3、3、…、3は、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、メモリアクセスに関する制御情報を生成するメモリアクセス制御部(制御情報生成回路9)33とを有してなるとともに、生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えるポートキャッシュ36とを有すると共に、前記メモリ制御部4、4、…、4は、生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えるバンクキャッシュ44と、メモリアクセス単位を切り替えるメモリバンク44とを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ベクトル処理装置及びベクトル処理システムに係り、とくに、高速ベクトル演算処理に用いて好適なベクトル処理装置及びベクトル処理システムに関する。
【背景技術】
【0002】
図11は、従来のマルチベクトルプロセッサシステム(以下、簡単に、ベクトル処理装置ともいう)の電気的構成を示すブロック図である。
従来のベクトル処理装置は、同図に示すように、それぞれが、パイプライン・ベクトル演算処理を行う複数(n個:nは2以上の自然数)のべクトルプロセッサ(CPU)1、1、…、1と、それぞれが、メモリアドレスによってインタリーブされた共有メモリ型の主記憶装置である、複数(m個:mは2以上の自然数)のメモリ制御部2、2、…、2とを備え、これらのべクトルプロセッサ1、1、…、1とメモリ制御部2、2、…、2とが、クロスバー網で結合されることで、全てのべクトルプロセッサ1、1、…、1が、いずれのメモリ制御部2、2、…、2へもアクセスでき、並列処理してシステム全体の処理速度の高速化を達成できる構成となっている。
【0003】
各ベクトルプロセッサ1、1、…、1は、同図に示すように、スカラ処理部11と、ベクトル処理部12と、メモリアクセス制御部13と、クロスバスイッチ14とから概略構成されている。上記スカラ処理部11は、各種命令発行制御とスカラ演算処理とを行う役割を担っている。ベクトル処理部12は、スカラ処理部11からベクトル命令を受けると、複数のベクトルパイプラインによって、ベクトルを構成する多数の要素に対する同一の繰り返し操作(ベクトル演算処理)を高速で実行する。ベクトル処理部12には、ベクトル演算を高速に実行するために、メモリ制御部2、2、…、2から読み出されたロードデータ(各種要素)や、演算結果の格納を行う、要素ごとにインタリーブされたベクトルレジスタ15が内蔵されている。上記メモリアクセス制御部13は、スカラ処理部11から発行されたメモリアクセス命令を受けると、メモリアドレスを生成してメモリアクセスパケットを生成する。また、クロスバスイッチ14は、メモリアクセス制御部13から受け取ったメモリアクセスパケットやベクトル処理部12から受け取ったメモリストアデータをアドレスによりインタリーブされた所望のメモリアクセスポートQ、Q、Q、Qにスイッチする一方、メモリ制御部2、2、…、2から読み出されたロードデータをベクトル処理部12の要素ごとにインタリーブされたベクトルレジスタ15に送るためのスイッチ操作も実行する。
【0004】
次に、各メモリ制御部2、2、…、2は、同図に示すように、クロスバスイッチ21と、バンク制御部22、22、…と、バンクキャッシュ23、23、…と、メモリバンク24、24、…とから構成されている。上記クロスバスイッチ21は、n個のベクトルプロセッサ1、1、…、1のいずれからでも、メモリアクセスパケットを受け取ると、アドレスによりインタリーブされた所望のメモリポートP、P、P、Pへスイッチする。ここで、同図に示すように、メモリポートP、P、P、Pごとに、バンク制御部22と、バンクキャッシュ23と、メモリバンク24とが設置されていて、バンク制御部22は、クロスバスイッチ21からのメモリアクセスパケットを受け取ると、アドレスでインタリーブされたメモリバンク24内の所望のメモリ素子にアクセスするための制御を行う。
【0005】
バンクキャッシュ23は、メモリバンク24を構成するメモリ素子の遅延を隠蔽するための少容量のライトスルー型キャッシュメモリであり、メモリバンク24ごとに独立に設けられて、次のように動作する。バンクキャッシュ23は、バンク制御部22から受け取ったメモリアクセスパケットがロードのときは、アドレスによりヒット、ミスヒットを判定し、ヒットならば、自身にキャッシュされたデータをクロスバスイッチ21に返し、ミスヒットならば、メモリバンク24にメモリアクセスパケットを発行し、この後、メモリバンク24からロードデータが戻ってきたら、自身のキャッシュに登録すると共に、バンク制御部22及びクロスバスイッチ21を介して、メモリアクセスパケットを発行したベクトルプロセッサ1、1、…、1にロードデータを送る。一方、バンクキャッシュ23は、バンク制御部22から受け取ったメモリアクセスパケットがストアのときは、アドレスによりヒット、ミスヒットを判定し、アドレスがミスすれば、そのままメモリバンク24へ送り、ヒットすれば、自身のキャッシュを書き換えると共に、メモリバンク24にもストアパケットを送る。
【0006】
しかしながら、上記従来のベクトル処理装置においては、昨今のテクノロジの進歩によりプロセッサ性能は向上したものの、メモリ素子のアクセス性能の進歩はそれほどではなく、メモリバンド幅の増加やメモリレイテンシ短縮による大量データの並列処理により高性能を引き出すベクトルプロセッサにとっては、メモリ素子とプロセッサとの間の性能格差が広がり、メモリ素子の性能ネックに起因して、システムの全体性能が低下してしまう、という問題があった。これは、メモリ素子のスループットが相対的に遅いため、プロセッサ−メモリ間のデータ転送遅延が大きくなり、プロセッサ側のベクトル演算処理の開始が相対的に遅れてしまうためである。
これを解消するためには、データ幅を広げることで、メモリ側のスループットの向上を図ることができるが、そうすると、メモリ側により大きなハードウエア量の追加が必要となるので、コストの増加を招き、不都合である。
【0007】
このような不都合を解消する手段として、命令語中に主記憶上の隣接するデータをロードするか否かを指定する動作指示フィールドを持ち、該動作指示フィールドの情報によって主記憶から読み出す読出しデータ幅が4バイトか8バイトかを決定するようにした、特許文献1に記載のベクトル処理装置が提案されている。特許文献2にも、特許文献1に類似する技術が開示されている。
【特許文献1】特開平09−062654号公報
【特許文献2】特開平01−292453号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、互いに独立して演算処理を実行する複数のベクトルプロセッサにあっては、命令語中に主記憶上の隣接するデータをロードするか否かを指定する(特許文献1に記載の)動作指示フィールドのみでは、ベクトル命令の処理の高速化を達成するには限界がある。
【0009】
この発明は、上述の事情に鑑みてなされたもので、プロセッサ−メモリ間のデータ転送遅延の増加を抑制すると共に、メモリアクセス命令の内容によりキャッシュ方法、メモリアクセス方法を変更することにより、キャッシュを効率的に用い、ハードウエア量の増加を抑制すると共にスループットの向上を図ることができるベクトル処理装置及びベクトル処理システムを提供することを目的としている。
【課題を解決するための手段】
【0010】
上記課題を解決するために、請求項1記載の発明は、ベクトルプロセッサとメモリ制御部とを備えるベクトル処理装置に係り、前記ベクトルプロセッサが、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、メモリアクセスに関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部が、前記制御情報手段によって生成された前記制御情報に基づいて、メモリアクセス単位を切り替えるメモリバンクとを備えてなることを特徴としている。
【0011】
また、請求項2記載の発明は、ベクトルプロセッサを備えるベクトル処理装置に係り、前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュが、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴としている。
【0012】
また、請求項3記載の発明は、ベクトルプロセッサとメモリ制御部とを備えるベクトル処理装置に係り、前記ベクトルプロセッサが、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部が、バンク単位に搭載されたバンクキャッシュを有し、前記各バンクキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴としている。
【0013】
また、請求項4記載の発明は、請求項1記載のベクトル処理装置に係り、前記制御情報手段が、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてメモリアクセスに関する制御情報を生成することを特徴としている。
【0014】
また、請求項5記載の発明は、請求項2記載のベクトル処理装置に係り、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴としている。
【0015】
また、請求項6記載の発明は、請求項3記載のベクトル処理装置に係り、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴としている。
【0016】
請求項7記載の発明は、請求項1乃至6の何れか1つに記載のベクトル処理装置に係り、ハードウエアモードにより、前記制御情報の有効、無効を切り替える機能を備えてなることを特徴としている。
【0017】
請求項8記載の発明は、請求項1乃至6の何れか1つに記載のベクトル処理装置に係り、ソフトウエア指示又はハードウエアモードにより、前記制御情報をベクトル命令のみ、スカラ命令のみ、及びベクトル命令/スカラ命令両方のうちの何れかに切り替える手段を有してなることを特徴としている。
【0018】
請求項9記載の発明は、複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムに係り、前記各ベクトルプロセッサが、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、メモリアクセスに関する制御情報を生成する制御情報手段を有すると共に、前記各メモリ制御部が、前記制御情報手段によって生成された前記制御情報に基づいて、メモリアクセス単位を切り替えるメモリバンクとを備えてなることを特徴としている。
【0019】
また、請求項10記載の発明は、複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムに係り、前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュが、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴としている。
【0020】
請求項11記載の発明は、複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムに係り、前記ベクトルプロセッサが、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、バンク単位に搭載されたバンクキャッシュを有し、前記各バンクキャッシュが、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴としている。
【0021】
請求項12記載の発明は、請求項9記載のベクトル処理システムに係り、前記制御情報手段が、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてメモリアクセスに関する制御情報を生成することを特徴としている。
【0022】
請求項13記載の発明は、請求項10記載のベクトル処理システムに係り、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴としている。
【0023】
請求項14記載の発明は、請求項11記載のベクトル処理システムに係り、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴としている。
【0024】
請求項15記載の発明は、請求項9乃至14の何れか1つに記載のベクトル処理システムに係り、ハードウエアモードにより、前記制御情報の有効、無効を切り替える機能を備えてなることを特徴としている。
【0025】
請求項16記載の発明は、請求項9乃至14の何れか1つに記載のベクトル処理システムに係り、ソフトウエア指示又はハードウエアモードにより、前記制御情報をベクトル命令のみ、スカラ命令のみ、及びベクトル命令/スカラ命令両方のうちの何れかに切り替える手段を有してなることを特徴としている。
【発明の効果】
【0026】
この発明の構成によれば、キャッシュ制御やメモリアクセス制御を命令毎に最適に制御しているので、プロセッサとメモリ素子の性能差分を隠蔽でき、少ないハードウエア量でも、スループットの向上化を図ることができる。加えて、ベクトルプロセッサにポートキャッシュを設け、プロセッサ−メモリ間のデータ転送遅延の増加を抑制すると共に、メモリアクセス命令の内容によりキャッシュ方法、メモリアクセス方法を最適化することにより、キャッシュを効率的に用いることができるので、ハードウエア量の増加を抑制すると共にスループットの向上化を達成できる。
【発明を実施するための最良の形態】
【0027】
この発明の実施形態が、上記従来のそれと大きく異なるところは、メモリアクセス制御部33に、スカラ処理部から発行される命令内容から(登録方法の切替え等の)制御情報を生成する制御情報生成回路39、及びベクトルプロセッサ3、3、…、3内部のメモリポート部に、メモリアクセスポートQ、Q、Q、Qごとに独立した複数のキャッシュ(ポートキャッシュ36、36、…)を設けるようにした点である。このような構成によれば、命令内容によって登録方法(例えば、8バイト登録/16バイト登録、キャッシュに登録する/しない等)を切り替えることができるので、効率的にキャッシュに格納でき、それゆえ、キャッシュ容量を抑えることができ、少ないハードウエア投資でもスループット性能を確保できる。
【実施例1】
【0028】
図1は、この発明の第1実施例であるベクトル処理装置の電気的構成を示すブロック図である。
この例のベクトル処理装置(マルチベクトルプロセッサシステム)は、同図に示すように、それぞれが、パイプライン・ベクトル演算処理を行う複数(n個:nは2以上の自然数)のべクトルプロセッサ(CPU)3、3、…、3と、それぞれが、メモリアドレスによってインタリーブされた共有メモリ型の主記憶装置である、複数(m個:mは2以上の自然数)のメモリ制御部4、4、…、4とを備え、これらのべクトルプロセッサ3、3、…、3とメモリ制御部4、4、…、4とが、クロスバー網で結合されることで、全てのべクトルプロセッサ3、3、…、3が、いずれのメモリ制御部4、4、…、4へもアクセスでき、並列処理することで、システム全体の処理速度の高速化を達成できる構成となっている。
この例のベクトル処理装置の構成が、上記従来のそれと大きく異なるところは、ベクトルプロセッサ3、3、…、3に、メモリアクセスポートQ、Q、Q、Qごとに独立したポートキャッシュ36、36、…を複数設けるようにした点である。
【0029】
すなわち、各ベクトルプロセッサ3、3、…、3は、同図に示すように、スカラ処理部31と、ベクトル処理部32と、メモリアクセス制御部33と、クロスバスイッチ34と、ポートキャッシュ36、36、…とから概略構成されている。上記スカラ処理部31は、各種命令発行制御とスカラ演算処理とを行う役割を担っている。ベクトル処理部32は、スカラ処理部31からベクトル命令を受けると、複数のベクトルパイプラインによって、ベクトルを構成する多数の要素に対する同一の繰り返し操作(ベクトル演算処理)を高速で実行する。
【0030】
ベクトル処理部32には、ベクトル演算を高速に実行するために、メモリ制御部4、4、…、4から読み出されたロードデータ(各種要素)や、演算結果の格納を要素ごとに行う、要素ごとにインタリーブされたベクトルレジスタ35が内蔵されている。メモリアクセス制御部33は、スカラ処理部31から発行されたメモリアクセス命令を受けると、メモリアドレスを生成してメモリアクセスパケットを生成する。
【0031】
クロスバスイッチ34は、メモリアクセス制御部33から受け取ったメモリアクセスパケットやベクトル処理部32から受け取ったメモリストアデータをアドレスによりインタリーブされた所望のメモリポートQ、Q、Q、Qにスイッチする一方、メモリ制御部4、4、…、4又はポートキャッシュ36、36、…から読み出されたロードデータをベクトル処理部32の要素ごとにインタリーブされたベクトルレジスタ15に送るためのスイッチ操作も実行する。
【0032】
上記ポートキャッシュ36、36、…は、メモリアクセスの遅延を隠蔽するために、ベクトルプロセッサ3、3、…、3に設けられたライトスルー型のキャッシュメモリであり、同図に示すように、メモリポートQ、Q、Q、Qごとに独立して設置されている。
【0033】
各ポートキャッシュ36、36、…は、メモリアクセス制御部33から受け取ったメモリアクセスパケットがロードのときは、アドレスによりヒット、ミスヒットを判定し、ヒットならば、自身にキャッシュされたデータをクロスバスイッチ34に返し、ミスヒットならば、メモリ制御部4、4、…、4にメモリアクセスパケットを発行し、この後、メモリ制御部4、4、…、4からロードデータが戻ってきたら、自身のキャッシュに登録すると共に、クロスバスイッチ34を介して、ベクトルレジスタ35にロードデータを送る。
【0034】
一方、ポートキャッシュ36、36、…は、メモリアクセス制御部33から受け取ったメモリアクセスパケットがストアのときは、アドレスによりヒット、ミスヒットを判定し、アドレスがミスすれば、そのままメモリ制御部4、4、…、4へ送り、ヒットすれば、自身のキャッシュを書き換えると共に、メモリ制御部4、4、…、4にもストアパケットを送る。
【0035】
次に、各メモリ制御部4、4、…、4は、同図に示すように、クロスバスイッチ41と、バンク制御部42と、バンクキャッシュ43と、メモリバンク44とから構成されている。上記クロスバスイッチ41は、n個のベクトルプロセッサ3、3、…、3のいずれからでも、メモリアクセスパケットを受け取ると、アドレスによりインタリーブされた所望のメモリポートP、P、P、Pへスイッチする。
【0036】
ここで、同図に示すように、メモリポートP、P、P、Pごとに、バンク制御部42と、バンクキャッシュ43と、メモリバンク44とが設置されていて、バンク制御部42は、前段のクロスバスイッチ41からのメモリアクセスパケットを受け取ると、アドレスでインタリーブされたメモリバンク44内の所望のメモリ素子にアクセスするための制御を行う。
【0037】
上記バンクキャッシュ43は、メモリバンク44を構成するメモリ素子の遅延を隠蔽するための少容量のライトスルー型メモリであり、メモリバンク44ごとに独立に設けられている。バンクキャッシュ43は、バンク制御部42から受け取ったメモリアクセスパケットがロードのときは、アドレスによりヒット、ミスヒットを判定し、ヒットならば、自身にキャッシュされたデータを前段のクロスバスイッチ41に返し、ミスヒットならば、後段のメモリバンク44にメモリアクセスパケットを発行し、この後、メモリバンク44からロードデータが戻ってきたら、自身のキャッシュに登録すると共に、バンク制御部42及びクロスバスイッチ41を介して、メモリアクセスパケットを発行したベクトルプロセッサ3、3、…、3にロードデータを送る。一方、バンクキャッシュ43は、バンク制御部42から受け取ったメモリアクセスパケットがストアのときは、アドレスによりヒット、ミスヒットを判定し、アドレスがミスすれば、そのまま、後段のメモリバンク44へ送り、ヒットすれば、自身のキャッシュを書き換えると共に、メモリバンク44にもストアパケットを送る。
【0038】
図2は、この例のベクトルプロセッサ3、3、…、3を構成するメモリアクセス制御部33の詳細な電気的構成を示すブロック図、また、図3は、同メモリアクセス制御部の制御情報生成回路で生成される各種制御情報例を示す概念図である。
メモリアクセス制御部33は、図2に示すように、メモリリクエスト生成部37とメモリアドレス生成部38とから構成され、メモリリクエスト生成部37には、制御情報生成回路39が含まれている。メモリアドレス生成部38は、メモリアクセスすべきアドレスを生成する。メモリリクエスト生成部37は、スカラ処理部31から受けるメモリアクセス命令に基づいてメモリアクセスパケットを生成し、例えば、ベクトルロード命令やベクトルストア命令であれば、命令は1つで済むが、命令内容には、ベースアドレス、ディスタンス(距離)、及び要素数が含まれており、これらの情報から、要素ごと・要素数分のメモリアクセスパケットを生成する。
【0039】
制御情報生成回路39では、スカラ処理部31から受けるロード/ストア命令内容から、各種制御情報が生成される。具体的には、制御情報生成回路39は、16バイトアクセスパケットにするか8バイトアクセスパケットにするか等、メモリアクセスパケットの生成に使用される他にも、この例では、各種制御情報例として図3に示すように、例えば、ポートキャッシュ36に登録するBIT[1、1]、登録しないBIT[1、0]、バンクキャッシュ43に登録するBIT[2、1]、登録しないBIT[2、0]、パケットは8バイトアクセスであるが、メモリバンク44(メモリ素子)へのアクセスやバンクキャッシュ43への登録は16バイトにするBIT[0、1](16Bリクエスト発行)、8バイトのままにするBIT[0、0](8Bリクエスト発行)、等の制御情報を生成する。生成された制御情報は、メモリアクセスパケットに付与されて、その制御情報が必要な回路まで持ちまわることになる。
【0040】
図4は、この例のベクトルプロセッサ3、3、…、3のポートキャッシュ36、36、…の詳細な電気的構成を示すブロック図である。
この例では、4ポート構成のポートキャッシュ36、36、…がメモリアクセスポートQ、Q、Q、Qごとに設けられていていて、各ポートキャッシュ36、36、…は、同図に示すように、ラインあたり16バイトのデータ幅を持ち、同一ライン(横方向)にはアドレスとして連続する16バイトが格納される構成となっている。ポートキャッシュ36、36、…は、互いに完全に独立しており、図示していないが、各メモリアクセスポートQ、Q、Q、Qごとにアドレスアレイを持ってキャッシュ制御する機能を有している。また、ライン数は任意であり、図示していないがウエイ数も任意に持つことができる。
【0041】
ポートキャッシュ36、36、…は、メモリアクセス制御部33から付与された制御情報に基づいて、キャッシュの制御を切り替えることができるようになっている。例えば、ポートキャッシュ36には登録しない旨の制御情報(図3)が付与されたメモリアクセスパケットが来ると、フィルされたデータは、キャッシュには登録せずに、そのままクロスバスイッチ34を介してベクトルレジスタ35に送る構成となっていて、このような構成とすることで、キャッシュが荒らされてヒット率が低下するのを防止している。
【0042】
図5は、この例のメモリ制御部4、4、…、4を構成するバンクキャッシュ43、43、…の詳細な電気的構成を示すブロック図である。
この例では、4バンク構成のバンクキャッシュ43、43、…がメモリポートP、P、P、Pごとに設けられていて、各バンク43、43、…は、互いに独立で、図示していないがアドレスアレイを持っており、キャッシュ制御する機能を有している。なお、ベクトル処理装置は、各ベクトルプロセッサ3、3、…、3間で依存関係がなく、ベクトルプロセッサ(CPU)3、3、…、3毎に別のプロセスが動作しているため、バンクキャッシュ43、43、…は、図5に示すように、ベクトルプロセッサ3、3、…、3毎に別々のラインとしてキャッシュする構成となっている。同図では、ラインサイズは、連続する16バイトを格納する例が示されている。
【0043】
バンクキャッシュ43、43、…においても、ポートキャッシュ36、36、…と同様にメモリアクセス制御部33にて付与された制御情報(図3)に基づいて、キャッシュの制御を切り替えることができ、バンクキャッシュ43内容の最適化を行うことができるようになっている。例えば、バンクキャッシュ43には登録しない旨の制御情報(図3)が付与されたメモリアクセスパケットが来ると、フィルされたデータは、キャッシュには登録せずに、そのまま、バンク制御部42及びクロスバスイッチ41を介して、ベクトルプロセッサ3、3、…、3(ベクトルレジスタ35)に送る構成となっていて、このような構成とすることで、キャッシュが荒らされてヒット率が低下するのを防止している。
【0044】
図6は、ベクトルプロセッサ(CPU)3、3、…、3と、メモリ制御部4、4、…、4との間のインタフェースの詳細例(メモリリクエストの形式例)を示す概念図である。同図には、メモリアクセス制御部33の制御情報生成回路39にて生成された制御情報(図3)をメモリアクセスパケットに付与し、持ちまわるパケット構成例が示されている。ベクトルプロセッサ(CPU)3、3、…、3からメモリアクセス制御部33方向への信号の流れ(以下、CPU→メモリ制御部方向という)では、16バイトロード、8バイトロードとも、同図に示すように、アドレスと制御情報とで1パケット幅のデータラインを使い、ストアの場合は、アドレスと制御情報とで1パケット幅のデータラインを使い、さらに、ストアデータも8バイトごとにパケットを増やして追加する構成となっている。それゆえ、この例では、16バイトストアでは、3パケット構成、8バイトストアでは、2パケット構成となる。同様に、メモリアクセス制御部33からベクトルプロセッサ(CPU)3、3、…、3方向への信号の流れ(以下、メモリ制御部→CPU方向という)でも、8バイトロードデータと制御情報とで1パケットを構成しており、8バイトロードで、1パケット構成、16バイトロードで、2パケット構成となるようにしている。
【0045】
次に、図2、図3、図7、図8及び図9を参照して、この例の動作(とくに、制御情報の作成方法)について説明する。
ベクトルロード/ストア命令は、ベースアドレスとディスタンス(距離)と要素数とによって決定される。
例えば、4ポート構成のポートキャッシュ36、36、…が、メモリアドレスによりインタリーブされている構成(図9)では、ベースアドレスが0、ディスタンスが8Bであると、データ(要素1、要素2、…)は、図7に示すように、VLD(Volatile Logical Destination、非蓄積型論理あて先)8バイトとびのインタリーブ配列で格納されることになる。このような格納構成では、キャッシュメモリの連続領域をロードすることになる。この場合、8バイトアクセスとしてメモリアクセスするよりも、16バイトアクセスとしてメモリアクセスした方がスループット上有利である。これは、図6のメモリリクエストの形式例で示すように、16バイトロードであれば、CPU→メモリ制御部方向のパケット構成は、16バイトあたり1パケットとなり、8バイトロードの場合の8バイト当たり1パケットに対し、2倍のスループットが確保できることになるからである。命令がストアであれば、16バイトストアで3パケットに対し、8バイトストアで2パケットであり、4/3倍のスループットが得られる。したがって、メモリアクセス制御部33は、ディスタンスが8Bを検出すると、16バイトアクセスに切り替える。さらに、このデータをポートキャッシュ36、36、…に登録した場合、連続する16バイトが常に有効なデータであるため、再利用する場合にもヒット率が向上する。
【0046】
一方、ベースアドレスが0、ディスタンスが32Bであると、データ(要素1、要素2、…)は、図8に示すように、VLD32バイトとびのインタリーブ配列で格納されることになる。この格納構成では、同図から判るように、連続した16バイトに必要なデータが、16バイト分存在することは無い。この場合は、16バイトアクセスとしてメモリアクセスするよりも8バイトアクセスとしてメモリアクセスした方が、スループット上有利である。これは、図6のメモリリクエストの形式例で示すように、メモリ制御部→CPU方向のパケット構成は16バイトが2パケット、8バイトが1パケットとなるので、16バイトロードであれば、必要な8バイトを確保するために、不必要な8バイト分のデータ1パケットが存在する16バイトロードの方が、メモリスループット上不利益になる。さらに、データをキャッシュに登録した場合、16バイトラインサイズの中で有効データが8バイトしかなく、さらに、ポートキャッシュ36、36、…間で偏りができるためキャッシュを荒らすことになりヒット率が低下するため、ポートキャッシュ36、36、…に登録しないという判断も可能となる。
【0047】
なお、4バンク構成のバンクキャッシュ43、43、…へのキャッシュ登録やメモリバンク(メモリ素子)24、24、…へのアクセス等についても、4ポート構成のポートキャッシュ36、36、…のキャッシュ動作で述べたと同様の動作であるので、その説明を省略する。これらのキャッシュやメモリバンクは、それぞれの命令によって最適な制御方法に設定されることができる。
【0048】
このように、この例の構成によれば、キャッシュ制御やメモリアクセス制御を命令毎に最適に制御しているので、プロセッサとメモリ素子の性能差分を隠蔽でき、性能の向上化を図ることができる。加えて、キャッシュ制御やメモリアクセス制御を命令毎に最適に制御しているので、少ないハードウエア量でも性能を確保できる。
【実施例2】
【0049】
図10は、この発明の第2実施例で適用される、ソフトウェア指示によるメモリアクセス制御例を示す概念図である。
この第2実施例の構成が、上述の第2実施例のそれと大きく異なるところは、メモリアクセス制御部33の制御情報生成回路39で生成する制御情報の内容及び生成方法に工夫を凝らして、ハードウエアでの切り替えのみならず、ソフトウエアによっても制御できるようにした点である。すなわち、この例では、図10に示すように、ロード/ストア命令に強制ポートキャッシュ登録やバンクキャッシュ登録、あるいは、強制16バイトロード、プリフェッチ指示等を指示するフラグが追加されている。
【0050】
この第2実施例の構成によれば、第1実施例の構成(制御情報)に拘わらず、ソフトウエア的に判断可能な再利用性の高いデータ(要素)に対して、強制的にキャッシュに登録できる等、容易に性能チューニングすることができる。
【0051】
以上、この発明の実施例を図面を参照して詳述してきたが、具体的な構成はこの実施例に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。例えば、上述の実施例では、ソフトウェア構成で、キャッシュに登録した方が良いか否かを判断して、制御情報の生成を行うようにしたが、これに限らず、jobによっては、ハードウエアモードによって制御情報の生成を切り替えるようにしても良い。また、上記以外の制御方法についても、ソフトウェア構成に限らず、ハードウェア構成によっても、最適な制御方法に設定するようにしても良い。キャッシュ制御やメモリアクセス制御をハードウエアモードやソフトウエアによって変更できるようにすれば、容易に性能のチューニングができる。
【0052】
また、この発明は、スカラ処理部から発行されるスカラ命令のメモリアクセスについても、ベクトル命令同様、メモリアクセス制御部にて制御情報の生成ができる。とくに、スカラ処理部に持つ、命令キャッシュ、オペランドキャッシュのキャッシュミス時のフィル動作についても、ベクトル命令のディスタンス8Bと同様に連続領域のメモリアクセスであるので、16バイト処理が可能である。さらに、ポートキャッシュを2次キャッシュとしても使用できる。
この際も、ハードウエアモードのみならず、ソフトウエア制御も行うことにより、性能チューニングも可能となる。関連してポートキャッシュをベクトル用のキャッシュとしてのみ動作、あるいは、スカラ処理用の2次キャッシュとしてのみ動作、あるいは、スカラ、ベクトル両方のキャッシュとして動作させる等、ハードウエアモードやソフトウエアでの制御も可能である。
【産業上の利用可能性】
【0053】
この発明は、高速演算装置(スーパコンピュータ)や高速画像処理システム(スーパCAD)等に適用できる。
【図面の簡単な説明】
【0054】
【図1】この発明の第1実施例であるベクトル処理装置(マルチベクトルプロセッサシステム)の電気的構成を示すブロック図である。
【図2】同ベクトル処理装置のベクトルプロセッサを構成するメモリアクセス制御部の詳細な電気的構成を示すブロック図である。
【図3】同メモリアクセス制御部の制御情報生成回路で生成される各種制御情報例を示す概念図である。
【図4】同ベクトル処理装置のベクトルプロセッサを構成するポートキャッシュの詳細な電気的構成を示すブロック図である。
【図5】同ベクトル処理装置のメモリ制御部を構成するバンクキャッシュの詳細な電気的構成を示すブロック図である。
【図6】同ベクトル処理装置における、ベクトルプロセッサ(CPU)とメモリ制御部との間のインタフェースの詳細例(メモリリクエストの形式例)を示す概念図である。
【図7】同ベクトル処理装置の動作(制御情報の作成方法)の説明に供される図で、データがインタリーブされて、4ポート構成のポートキャッシュに格納されている状態を示す概念図である。
【図8】同ベクトル処理装置の動作(制御情報の作成方法)の説明に供される図で、データがインタリーブされて、4ポート構成のポートキャッシュに格納されている状態を示す概念図である。
【図9】同ベクトル処理装置の動作(メモリインタリーブ例)の説明に供される概念図である。
【図10】この発明の第2実施例で適用される、ソフトウェア指示によるメモリアクセス制御例を示す概念図である。
【図11】従来のベクトル処理装置の電気的構成を示すブロック図である。
【0055】
、3、…、3 ベクトルプロセッサ(CPU)
31 スカラ処理部
32 ベクトル処理部
33 メモリアクセス制御部
37 メモリリクエスト生成部
38 メモリアドレス生成部
39 制御情報生成回路
34 クロスバスイッチ
35 ベクトルレジスタ
36 ポートキャッシュ
、4、…、4 メモリ制御部
41 クロスバスイッチ
42 バンク制御部
43 バンクキャッシュ
44 メモリバンク
、Q、Q、Q メモリアクセスポート
、P、P、P メモリポート

【特許請求の範囲】
【請求項1】
ベクトルプロセッサとメモリ制御部とを備えるベクトル処理装置であって、
前記ベクトルプロセッサは、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、メモリアクセスに関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、前記制御情報手段によって生成された前記制御情報に基づいて、メモリアクセス単位を切り替えるメモリバンクとを備えてなることを特徴とするベクトル処理装置。
【請求項2】
ベクトルプロセッサを備えるベクトル処理装置であって、
前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴とするベクトル処理装置。
【請求項3】
ベクトルプロセッサとメモリ制御部とを備えるベクトル処理装置であって、
前記ベクトルプロセッサは、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、バンク単位に搭載されたバンクキャッシュを有し、
前記各バンクキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴とするベクトル処理装置。
【請求項4】
前記制御情報手段は、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてメモリアクセスに関する制御情報を生成することを特徴とする請求項1記載のベクトル処理装置。
【請求項5】
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴とする請求項2記載のベクトル処理装置。
【請求項6】
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴とする請求項3記載のベクトル処理装置。
【請求項7】
ハードウエアモードにより、前記制御情報の有効、無効を切り替える機能を備えてなることを特徴とする請求項1乃至6の何れか1つに記載のベクトル処理装置。
【請求項8】
ソフトウエア指示又はハードウエアモードにより、前記制御情報をベクトル命令のみ、スカラ命令のみ、及びベクトル命令/スカラ命令両方のうちの何れかに切り替える手段を有してなることを特徴とする請求項1乃至6の何れか1つに記載のベクトル処理装置。
【請求項9】
複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムであって、
前記各ベクトルプロセッサは、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、メモリアクセスに関する制御情報を生成する制御情報手段を有すると共に、前記各メモリ制御部は、前記制御情報手段によって生成された前記制御情報に基づいて、メモリアクセス単位を切り替えるメモリバンクとを備えてなることを特徴とするベクトル処理システム。
【請求項10】
複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムであって、
前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴とするベクトル処理システム。
【請求項11】
複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムであって、
前記ベクトルプロセッサは、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、バンク単位に搭載されたバンクキャッシュを有し、
前記各バンクキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴とするベクトル処理システム。
【請求項12】
前記制御情報手段は、命令種別と、ベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてメモリアクセスに関する制御情報を生成することを特徴とする請求項9記載のベクトル処理システム。
【請求項13】
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴とする請求項10記載のベクトル処理システム。
【請求項14】
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴とする請求項11記載のベクトルシステム。
【請求項15】
ハードウエアモードにより、前記制御情報の有効、無効を切り替える機能を備えてなることを特徴とする請求項9乃至14の何れか1つに記載のベクトル処理システム。
【請求項16】
ソフトウエア指示又はハードウエアモードにより、前記制御情報をベクトル命令のみ、スカラ命令のみ、及びベクトル命令/スカラ命令両方のうちの何れかに切り替える手段を有してなることを特徴とする請求項9乃至14の何れか1つに記載のベクトル処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2008−250926(P2008−250926A)
【公開日】平成20年10月16日(2008.10.16)
【国際特許分類】
【出願番号】特願2007−94861(P2007−94861)
【出願日】平成19年3月30日(2007.3.30)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】