[0001]【発明の属する技術分野】本発明は、主記憶メモリを共有する複数のCPUを備え、各CPUがスカラ処理部と複数のベクトルパイプラインを構成するベクトル処理部を有してなる共有メモリ型ベクトル処理システムに関する。[0002]【従来の技術】図9に、従来のベクトル処理装置におけるCPUを用いた共有メモリ型並列処理システムの構成を示す。CPU100a~100nが1つの主記憶装置200を共有して接続されている。200.【0003】各CPU100a〜100nの詳細構成図を図10に示す。各CPU100a〜100nは、図示のように、スカラ処理部101、命令制御部102、ベクトル処理部104a〜104n及びメモリアクセスネットワーク部105を備えて構成される。105.【0004】スカラ処理部101から発行された外部処理命令「EX−RQ」は、命令制御部102へと転送される。命令制御部102では、自CPU内部にのみ存在するベクトル処理部104a〜104nのリソースを管理することによりベクトル処理命令「V−RQ」を発行する。CPU.【0005】従って、各CPU100a〜100n内部におけるスカラ処理部101とベクトルパイプラインとの構成は、常に一定であり変更することができない。constant.【0006】従来のベクトル処理装置の例が例えば特開昭63−127368号及び特開昭63−10263号等に開示されている。これらの公報に開示されるベクトル処理装置においては、何れもスカラ処理部とベクトルパイプラインとの構成が一定であり、スカラ処理部に付随するベクトルパイプライン数を用途に応じて柔軟に変更できる構成とはなっていない。[0007]【発明が解決しようとする課題】上述した従来のベクトル処理装置においては、以下のような問題点がある。problems.【0008】第1の問題点は、実行するアプリケーションによってベクトル化率等が異なるのに対して、適切なベクトル処理リソースを割り当てられないことである。resources.【0009】その理由は、各CPUにおけるベクトルパイプライン数は常に一定であるため、想定しているよりも低いベクトル化率のアプリケーションを実行した場合、ベクトルリソースの余剰が発生してしまう。逆に、より高いベクトル化率やより長いベクトル長のアプリケーションを実行しても、予め固定的に構成されたベクトルパイプライン構成によりベクトル処理性能の上限が固定されているため、更なる処理性能向上を行なうことができないからある。LSIとして開発する必要があることである。LSIとして開発することになってしまう。ところが、この方法ではLSIの開発工数が増大すること、LSIの開発品種数が増加すること、1種のLSI当たりの生産個数が減少することなどコスト増となる項目が多くなる。decrease.【0012】本発明の目的は、スカラ処理部に付随するベクトルパイプライン数を用途に応じて柔軟に変更できるベクトル処理システムを提供することにある。processor.【0013】本発明の他の目的は、独立する各プロセッサのスカラ処理部からの単一のベクトルパイプラインを共有しているように動作するベクトル処理システムを提供することにある。CPUマスターCPU情報とを比較し、転送された前記ベクトル処理命令に対する処理内容を決定するベクトル処理命令制御手段とを備えることを特徴とする。instruction命令制御手段を備えることを特徴とする。meansよる比較結果が一致の場合、前記ベクトル処理命令を命令スタックに格納し、比較結果が不一致の場合、前記前記ベクトル処理命令を無効化する無効化処理手段と、前記ベクトル処理手段のリソース状態に基づいて、前記命令スタックに格納された前記ベクトル処理命令に基づく命令発行を前記ベクトル処理手段に対して行なう命令発行処理手段とを備えることを特徴とする。前記ベクトル処理命令を命令スタックに格納し、比較結果が不一致の場合、前記前記ベクトル処理命令を無効化する無効化処理手段と、前記ベクトル処理手段のリソース状態に基づいて、前記命令スタックに格納された前記ベクトル処理命令に基づく命令発行を前記ベクトル処理手段に対して行なう命令発行処理手段とを備えることを特徴とする。onset行処理手段とを備えることを特徴とする。vectorル処理命令を格納することを特徴とする。自CPUがスレーブCPUである場合に、自CPUの前記スカラ処理手段の動作を停止させる停止手段を備えることを特徴とする。self-CPUの前記スカラ処理手段の動作停止信号を出力する比較手段とで構成されることを特徴とする。transferredる処理内容を決定することを特徴とする。match無効化を行なうことを特徴とする。instruction段に対して行なうことを特徴とする。ofを解放することを特徴とする。CPU手段の動作を停止させることを特徴とする。decreeムを格納した記憶媒体であることを特徴とする。Nauとを特徴とする。実施の形態について図面を参照して詳細に説明する。図1は、本発明の第1の実施の形態に係るベクトル処理システム全体の構成図である。CPU10a〜10nが単一の主記憶装置20を共有する共有メモリ型並列処理システムを構成している。CPU10a〜10nは、ベクトルリクエストバス30を介して互いに接続され、相互にベクトル処理に関するリクエストやリプライの送受信を行なうことができる。processing.【0031】上記各CPU10a〜10nの詳細な構成を図2に基づいて説明する。14a~14n、そしてメモリアクセスネットワーク部15から構成されている。14a〜14nへと発行される。4a~14n.【0034】ここで、図3は、ベクトル処理命令制御部13の詳細な構成を示すブロック図である。46に入力された後に、命令スタック47に格納される。48,ベクトル処理部14a〜14nに対して命令発行が行なわれる。performed.【0037】次いで、上記のように構成される第1の実施の形態によるベクトル処理システムの動作について説明する。above.【0038】図2において、スカラ処理部11では命令の解読を行ないスカラ処理命令の実行処理を行なう。ここで、主記憶装置20へのアクセス命令やベクトル処理命令などといった、スカラ処理部11では実行処理できない命令が出現した場合、スカラ処理部11はこれらの命令を外部処理命令「EX−RQ」としてメモリアクセス命令制御部12へと転送する。"EX-RQ」を解読し、主記憶アクセス系の命令「M−RQ」であれば、そのままメモリアクセスネットワーク部15に対して命令の発行を行なう。15.【0040】一方、ベクトル処理命令であった場合には、これをベクトルリクエストバス30に送出すると共に、自身のベクトル処理命令制御部13に対してもベクトルリクエストバス30を経由して発行を行なう。CPU〜14nに対してそのリソース状態を管理しながら命令を発行する。~14n.【0042】メモリアクセスネットワーク部15は、メモリアクセス命令制御部12からの主記憶アクセス命令「M−RQ」を受け取り、主記憶装置20に対して命令を発行すると共に、主記憶装置20からの読み出しデータを受け取り、命令種別に応じてデータをスカラ処理部11もしくはベクトル処理部14a〜14nに対して戻す。type.【0043】次で、図3と図4のフローチャートを参照して、ベクトル処理命令制御部13の動作について述べる。41にて命令を送出したCPUに関する情報とベクトル処理命令本体とに分離される(ステップ401)。CPUに対してマスターとして外部より設定されたCPUの番号を記憶しているレジスタ42と、自CPU番号を記憶しているレジスタ43とが備えられている。2つのレジスタ42、43に対しては、システムの起動前に初期化動作として上記番号をそれぞれ設定しておくものとする。system.【0046】本実施の形態では、共有メモリ型並列処理システムの各CPU10a〜10nをマスターCPUとスレーブCPUとに分けて設定する。マスターCPUはスカラ処理を実行すると共に、ベクトル処理命令を他のCPUに対して発行することができる。これに対してスレーブCPUは、マスターCPUから転送されてきたベクトル処理命令を受け取り、マスターCPU内のベクトル処理部14a〜14nと同期して多重ベクトルパイプラインとして動作することになる。13、及びメモリアクセスネットワーク部15のみが有効に機能することになる。number2と自CPU番号を格納したレジスタ43の内容は、比較器45で比較され(ステップ402)、不一致の場合には、自CPUがスレーブCPUであると判断され、自CPUのスカラ処理部11に対して動作を停止するよう制御する(ステップ403)。46に入力される(ステップ405)。具体的には、比較器44による比較結果に応じて、ベクトル処理命令に有効又は無効を示すフラグを付し、無効化処理部46では、そのフラグによって有効なベクトル処理命令のみを命令スタック47に格納する。Store.無効なベクトル処理命令は命令スタック47に格納しない。CPUとして動作しており、転送されてきたベクトル処理命令が自CPUの発行した命令であれば、比較器44の結果は一致を示すので無効化されることはない。CPU〜14nで処理すべき命令であることから、命令スタック47に受付順に格納される(ステップ408)。無効化されたベクトル処理命令は、命令スタック47に格納されずに破棄される。14a-14nを管理している。命令スタック47に格納された命令は、このリソース管理/命令発行処理部48において優先順位、ならびにベクトル処理部14a〜14nのリソース状況に応じて、発行が可能な順に自CPUのベクトル処理部14a〜14nに対して命令発行が行なわれる(ステップ409)。ここでは、命令スタック47への格納順には従わずに命令の追い越し発行も可能である。follow.【0053】なお、各スレーブCPUにおけるベクトル処理が終了した時点で、処理の終了がマスタCPUに通知される。マスタCPUでは、全てのスレーブCPUからの終了通知を受け取ったことを確認した上で次のベクトル処理命令の発行を行なうことになる。CPU.【0054】以上により、マスターCPUに設定されたCPUと、このCPU番号をマスターCPU番号として記憶している複数のCPUは、一体となって動作する多重ベクトルパイプラインのプロセッサと見なすことができるようになる。"HALT」により機能が停止されている。14a~14nにおいて並列動作によって処理されることになる。+2ベクトル処理部」のCPUが16個存在するシステムのように動作させることが可能となる。unit"のCPUを1つのシステムの中に混在させるような構成も取ることができる。マスターCPUとスレーブCPUの設定内容により、種々の構成を構築できるようになる。configurations.【0059】次いで、第2の実施の形態に係るベクトル処理システムについて説明する。embodiment.【0060】図5は、第2の実施の形態によるベクトル処理システムのベクトル処理命令制御部13の構成を示すブロック図である。ベクトル処理命令制御部13以外の構成については、上述の第1の実施の形態と同様である。numberと自CPU番号を記憶しているレジスタ43aを有しており、この2つのレジスタ42a、43aの内容を比較する比較器44aの出力に基づいて自CPUのスカラ処理部11の機能を停止させることについては、図3の構成の場合と同じである。このベクトル処理命令制御部13には、レジスタ42aのマスターCPU番号とベクトル処理命令に含まれる発行元CPU情報とを比較する機能と、比較結果に基づいて命令発行を制御する機能を有するリソース管理/命令発行制御部48aが備えられている。provided.【0062】このベクトル処理命令制御部13の動作を図6のフローチャートを参照して説明する。30を通って転送されてきたベクトル処理命令は、何も処理をせずそのまま命令スタック47aに順番に格納される(ステップ601)。従って、命令スタック47aには、ベクトル処理命令と共に、発行元CPU情報を格納しておくレコードが設けられている。602),不一致の場合には、自CPUがスレーブCPUであると判断され、自CPUのスカラ処理部11に対して動作を停止するよう制御する(ステップ603)。48aでは、ベクトル処理部への命令発行を行なう際に、ベクトル処理命令に付随している発行元CPU情報と、マスターCPU番号を記憶しているレジスタ42aの内容を比較することにより(ステップ604)、番号が不一致である場合には不適切なベクトル処理命令の発行を抑止すると共に、命令スタック47a中の該当エリアを解放する(ステップ605)。47aに格納する前に無効化処理を行なうのではなく、実際に命令発行を行なう際に無効化処理を行なうように構成している。issue.【0065】また、番号が一致する場合には、第1の実施の形態におけるリソース管理/命令発行制御部48と同様に、命令スタック47aに格納された命令が、優先順位、ならびにベクトル処理部14a〜14nのリソース状況に応じて、発行が可能な順に自CPUのベクトル処理部14a〜14nに対して命令発行が行なわれる(ステップ606)。48aによる命令発行処理の段階で、適切なベクトル処理命令のみを発行し、不適切なベクトル処理命令について命令スタック47aのエリアを解放する構成としている。従って、第1の実施の形態と第2の実施の形態とを比較した場合、ハードウェア量については第2に実施の形態の方が少なくて済み、命令スタックの記憶容量については第1の実施の形態の方が小さくすることができる。smaller.【0067】一方、よりスカラ性能を重視したシステム構成として複数の独立したスカラ処理部から共有される多重ベクトルパイプラインという構成も可能である。複数のプロセッサ中に存在するベクトルパイプラインを全てまとめて1つの多重ベクトルパイプラインと見なし、独立する各プロセッサのスカラ処理部から単一のベクトルパイプラインを共有しているように動作するシステム構成である。configuration.【0068】これを実現した第3の実施の形態に係るベクトル処理システムのベクトル処理命令制御部13の構成を図7に示す。ベクトル処理命令制御部13以外の構成については、上述した第1の実施の形態と同一であるので共通の符号を付して説明を省略する。61と、各CPU毎に設けられた命令スタック63a〜63nと、命令スタック63a〜63nに設定された優先順位に基づいて発行順の調停を行なう調停部62と、リソース管理/命令発行処理部64とで構成される。64.【0070】以下、本実施の形態によるベクトル処理命令制御部13の動作を図8のフローチャートを参照して説明する。the〜63nに格納される。14a〜12nからのリソース情報「V−RP」と共に、リソース管理/命令発行制御部64に入力された後に各ベクトル処理部14a〜14nに対して発行される。61で発行元のCPU番号が検査される(ステップ801)。CPU毎に設けられた命令スタック63a〜63nに分かれて格納される(ステップ802)。調停部62は、例えばラウンドロビン方式によって何れかの命令スタック63a〜63nから命令を発行するかを決定する。4).【0074】この際、発行元CPUが同一のベクトル処理命令については、命令スタックへの格納順序を越えて追い越し発行することはできないが、発行元CPUが異なっていればリソースの状況によって追い越し発行を行なってもデータ競合は起こらないため問題にはならない。従って、各命令スタック間での格納順序については、特に記憶しておく必要はない。CPUが同一のベクトル処理命令に関しても、アクセスアドレスを比較することで同一アドレスに対するアクセスを回避するための相応のリソース管理手段を準備すれば、追い越し発行が可能である。issued.【0075】以上により、各CPUから発行されたベクトル処理命令は全てのCPUのベクトル処理命令制御部に転送され発行処理が行なわれることになる。この時ベクトル処理命令の発行元CPU別に管理されるため、各CPUに存在するベクトル処理部は全CPUで統合された単一のベクトル処理部として、全CPUのスカラ処理部から共有されているように動作することになる。18に記録された、上述した各機能を実現するための制御プログラムによってソフトウェア的に実現することも可能である。CPU,上述したベクトル処理命令制御の機能を実現する。図4、図6及び図8に示される処理を実行する。8.【0077】なお、本発明は上述した実施の形態に限定されるものではなく、その技術思想の範囲内において様々に変形して実施することができる。CPU10a~10n間でベクトル処理命令を転送するためのベクトルリクエストバス30は、単一バスとして記述されている。bus.しかしながら、この転送手段は単一バスに限定されるものではなく、多重バスやクロスバスイッチなどあらゆる接続手段によって実現できることは明らかである。[0078]【発明の効果】以上説明したように本発明のベクトル処理システムとその制御方法によれば、以下に述べるような効果が得られる。below.【0079】第1に、マスタとなるプロセッサとスレーブとなるプロセッサとの割り当て方法を変更することにより、スカラ処理部に付随するベクトルパイプライン数を用途に応じて柔軟に変更できる構成としたので、ベクトル化率やベクトル長の異なる様々なアプリケーションに対して最適な多重ベクトルパイプライン構成を有するベクトル処理システムを提供することができる。statePU番号と発行元CPU番号が一致した場合にだけ転送されてきたベクトル処理命令を処理することができるためである。CPUPUを全てスレーブCPUとして動作される大規模でかつベクトル長が極めて長い処理向きの構成まで、柔軟にシステムを変更できる。system.【0082】第2に、前記第1の効果の延長線上にあるシステム形態として、よりスカラ処理性能を重視したアプリケーション向けに、複数のスカラ処理手段から共有される単一のベクトル処理手段を有した共有メモリ型並列処理システムを提供することができる。CPU中に存在するベクトル処理手段があたかも単一のベクトル処理手段として全てのCPUから共有されているように動作することが出来るためである。processor.【0084】これにより、ベクトル処理命令の出現頻度が極めて低いスカラスループット性能重視のアプリケーション分野に対しても、ベクトル処理リソースを有効利用してより効率の良い処理が可能なシステムを提供することができる。.【0085】第3に、スカラ処理手段とベクトル処理手段とを1チップに集積化したLSIを開発することが可能になり、開発工数やコストを軽減することができる。costs.【0086】これは、スカラ処理手段に対する多重ベクトルパイプラインの構成を外部からの設定により柔軟に変更できるようになったために、これまでは困難であったスカラ処理手段とベクトル処理手段を同一のLSIに集積化することが可能になり、その結果LSIの開発品種数が削減できることによる。本発明の第1の実施の形態に係るベクトル処理システム全体の構成図である。上記第1の実施の形態に係るベクトル処理システムの各CPUの詳細な構成を示すブロック図である。上記第1の実施の形態に係るベクトル処理システムのベクトル処理命令制御部の詳細を示すブロック図である。上記第1の実施の形態に係るベクトル処理システムのベクトル処理命令制御部の動作を説明するフローチャートである。第2の実施の形態に係るベクトル処理システムのベクトル処理命令制御部の構成を示すブロック図である。上記第2の実施の形態に係るベクトル処理システムのベクトル処理命令制御部の動作を説明するフローチャートである。第3の実施の形態に係るベクトル処理システムのベクトル処理命令制御部の構成を示すブロック図である。上記第3の実施の形態に係るベクトル処理システムのベクトル処理命令制御部の動作を説明するフローチャートである。従来のベクトル処理装置におけるCPUを用いた共有メモリ型並列処理システムの構成を示すブロック図である。CPU0の構成を示すブロック図である。転送された前記ベクトル処理命令に含まれる前記発行元CPU情報と、自CPUに設定されたマスターCPU情報とを比較し、転送された前記ベクトル処理命令に対する処理内容を決定するベクトル処理命令制御手段とを備えることを特徴とする共有メモリ型ベクトル処理システム。転送された前記ベクトル処理命令に含まれる前記発行元CPU情報と自CPUに設定されたマスターCPU情報とを比較し、一致する場合に転送された前記ベクトル処理命令に基づく命令発行を前記ベクトル処理手段に対して行ない、一致しない場合に前記ベクトル処理命令の無効化を行なうベクトル処理命令制御手段を備えることを特徴とする共有メモリ型ベクトル処理システム。前記ベクトル処理手段のリソース状態に基づいて、前記命令スタックに格納された前記ベクトル処理命令に基づく命令発行を前記ベクトル処理手段に対して行なう命令発行処理手段とを備えることを特徴とする請求項2に記載の共有メモリ型ベクトル処理システム。共有メモリ型ベクトル処理システム。前記命令スタックに格納された前記ベクトル処理命令に含まれる前記発行元CPU情報と、自CPUに設定されたマスターCPU情報とを比較し、比較結果が一致の場合、前記ベクトル処理命令に基づく命令発行を前記ベクトル処理手段に対して行ない、比較結果が不一致の場合、前記ベクトル処理命令に基づく命令発行を抑止し前記命令スタックの該当エリアを解放する命令発行処理手段とを備えることを特徴とする請求項2に記載の共有メモリ型ベクトル処理システム。CPU情報を含んだ状態で前記ベクトル処理命令を格納することを特徴とする請求項5に記載の共有メモリ型ベクトル処理システム。self-CPUがマスターCPUかスレーブCPUかを判断し、自CPUがスレーブCPUである場合に、自CPUの前記スカラ処理手段の動作を停止させる停止手段を備えることを特徴とする請求項2乃至請求項6のいずれかに記載の共有メモリ型ベクトル処理システム。前記ベクトル処理命令が転送された際に、前記格納手段に格納されたマスターCPU情報と自CPU情報とを比較し、不一致の場合に、自CPUの前記スカラ処理手段の動作停止信号を出力する比較手段とで構成されることを特徴とする請求項7に記載の共有メモリ型ベクトル処理システム。転送された前記ベクトル処理命令に含まれる前記発行元CPU情報と、自CPUに設定されたマスターCPU情報とを比較し、転送された前記ベクトル処理命令に対する処理内容を決定することを特徴とする共有メモリ型ベクトル処理システムの制御方法。無効化を行なうことを特徴とする共有メモリ型ベクトル処理システムの制御方法。前記ベクトル処理手段のリソース状態に基づいて、前記命令スタックに格納された前記ベクトル処理命令に基づく命令発行を前記ベクトル処理手段に対して行なうことを特徴とする請求項10に記載の共有メモリ型ベクトル処理システムの制御方法。比較結果が一致の場合、前記ベクトル処理命令に基づく命令発行を前記ベクトル処理手段に対して行ない、比較結果が不一致の場合、前記ベクトル処理命令に基づく命令発行を抑止し前記命令スタックの該当エリアを解放することを特徴とする請求項10に記載の共有メモリ型ベクトル処理システムの制御方法。自CPUがマスターCPUかスレーブCPUかを判断し、自CPUがスレーブCPUである場合に、自CPUの前記スカラ処理手段の動作を停止させることを特徴とする請求項10乃至請求項12のいずれかに記載の共有メモリ型ベクトル処理システムの制御方法。比較結果が一致する場合に転送された前記ベクトル処理命令に基づく命令発行を前記ベクトル処理手段に対して行ない、一致しない場合に前記ベクトル処理命令の無効化を行なう処理とを実行させるためのプログラムを格納した記憶媒体。前記ベクトル処理手段のリソース状態に基づいて、前記命令スタックに格納された前記ベクトル処理命令に基づく命令発行を前記ベクトル処理手段に対して行なう処理とを実行させることを特徴とする請求項14に記載のプログラムを格納した記憶媒体。比較結果が一致の場合、前記ベクトル処理命令に基づく命令発行を前記ベクトル処理手段に対して行ない、比較結果が不一致の場合、前記ベクトル処理命令に基づく命令発行を抑止し前記命令スタックの該当エリアを解放する処理とを実行させることを特徴とする請求項14に記載のプログラムを格納した記憶媒体。自CPUがスレーブCPUである場合に、自CPUの前記スカラ処理手段の動作を停止させる処理を実行させることを特徴とする請求項14乃至請求項16のいずれかに記載のプログラムを格納した記憶媒体。