(57)【要約】【課題】実行するプログラムの特性によって、マルチベクトルプロセッサシステムにおいて最適なプロセッサ構成を提供でき、これによってシステムとしての実行性能を向上させることができるマルチベクトルプロセッサシステムを提供する。【解決手段】共有メモリ型の複数のベクトルプロセッサ１０、２０を有するマルチベクトルプロセッサシステムにおいて、各ベクトルプロセッサ１０、２０を各々単独で動作する複数の分割プロセッサ１１、１２に分割して当該複数の分割プロセッサによる動作モード、あるいは分割した複数の分割プロセッサ１１、１２を連結してベクトルプロセッサ１０、２０による動作モードに切換え可能に設定する手段を備え、実行するプログラムの特性に応じてシステム性能が最適となる動作モードを設定する。【選択図】    図１
2004164455.tif 000002
【特許請求の範囲】
【請求項１】
共有メモリ型の複数のベクトルプロセッサを有するマルチベクトルプロセッサシステムにおいて、
前記各ベクトルプロセッサを各々単独で動作する複数の分割プロセッサに分割して当該複数の分割プロセッサによる動作モード構成、あるいは分割した前記複数の分割プロセッサを連結して前記ベクトルプロセッサによる動作モード構成に切換え可能に設定する手段を備え、
実行するプログラムの特性に応じてシステム性能が最適となる前記動作モード構成を設定することを特徴とするマルチベクトルプロセッサシステム。
【請求項２】
前記複数の分割プロセッサによる動作モード構成と前記ベクトルプロセッサによる動作モード構成の何れかのモードを示すモードフラグを備え、
前記モードフラグの内容に応じて前記モードの切換えを行うことを特徴とする請求項１に記載のマルチベクトルプロセッサシステム。
【請求項３】
前記ベクトルプロセッサが、複数のベクトル演算部を有し、前記分割プロセッサが、前記複数のベクトル演算部を所定数ずつ有するように前記ベクトルプロセッサを分割すると共に、前記各分割プロセッサ毎に、前記ベクトル演算部によるベクトル命令の実行を制御する命令制御を有することを特徴とする請求項１又は請求項２に記載のマルチベクトルプロセッサシステム。
【請求項４】
前記各ベクトル演算部によるメモリアクセスを制御するメモリアクセス制御部を有し、前記メモリアクセス制御部に、前記ベクトル演算部によるメモリアクセスを、前記ベクトルプロセッサによる動作モード構成におけるメモリアクセスと、前記分割プロセッサによる動作モード構成におけるメモリアクセスとに切換えるクロスバ切換え回路を設けたことを特徴とする請求項３に記載のマルチベクトルプロセッサシステム。
【請求項５】
前記分割プロセッサによる動作モード構成において、何れかの前記分割プロセッサに障害が発生した場合に、障害の発生した前記分割プロセッサをシステムから切離すプロセッサ切離し回路を備えることを特徴とする請求項１から請求項４の何れか１項に記載のマルチベクトルプロセッサシステム。
【請求項６】
前記動作モード構成を設定するための命令を用意し、当該命令により実行するプログラムの特性に応じて前記分割プロセッサによる動作モード構成と前記ベクトルプロセッサによる動作モード構成との切換えを行うことを特徴とする請求項１から請求項５の何れか１項に記載のマルチベクトルプロセッサシステム。
【請求項７】
ベクトルプロセッサにおいて、
各々が単独で動作する複数の分割プロセッサに分割して当該複数の分割プロセッサによる動作モード構成、あるいは分割した前記複数の分割プロセッサを連結して一の前記ベクトルプロセッサによる動作モード構成に切換え可能に設定する手段を備え、
実行するプログラムの特性に応じてプロセッサ性能が最適となる前記動作モード構成を設定することを特徴とするベクトルプロセッサ。
【請求項８】
前記複数の分割プロセッサによる動作モード構成と前記ベクトルプロセッサによる動作モード構成の何れかのモードを示すモードフラグを備え、
前記モードフラグの内容に応じて前記モードの切換えを行うことを特徴とする請求項７に記載のベクトルプロセッサ。
【請求項９】
複数のベクトル演算部を有し、前記分割プロセッサが、前記複数のベクトル演算部を所定数ずつ有するように前記ベクトルプロセッサを分割すると共に、前記各分割プロセッサ毎に、前記ベクトル演算部によるベクトル命令の実行を制御する命令制御を有することを特徴とする請求項７又は請求項８に記載のベクトルプロセッサ。
【請求項１０】
前記各ベクトル演算部によるメモリアクセスを制御するメモリアクセス制御部を有し、前記メモリアクセス制御部に、前記ベクトル演算部によるメモリアクセスを、前記ベクトルプロセッサによる動作モード構成におけるメモリアクセスと、前記分割プロセッサによる動作モード構成におけるメモリアクセスとに切換えるクロスバ切換え回路を設けたことを特徴とする請求項９に記載のベクトルプロセッサ。
【請求項１１】
前記分割プロセッサによる動作モード構成において、何れかの前記分割プロセッサに障害が発生した場合に、障害の発生した前記分割プロセッサをシステムから切離すプロセッサ切離し回路を備えることを特徴とする請求項７から請求項１０の何れか１項に記載のベクトルプロセッサ。
【請求項１２】
前記動作モード構成を設定するための命令を用意し、当該命令により実行するプログラムの特性に応じて前記分割プロセッサによる動作モード構成と前記ベクトルプロセッサによる動作モード構成との切換えを行うことを特徴とする請求項７から請求項１１の何れか１項に記載のベクトルプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のベクトルプロセッサを備える共有メモリ型のマルチベクトルプロセッサシステムに関し、特に実行するプログラムの特性に応じてシステムとして最適なプロセッサ構成をフレキシブルに構築できるマルチベクトルプロセッサシステムに関する。
【０００２】
【従来の技術】
従来、メモリを共有する複数のベクトルプロセッサを有するマルチベクトルプロセッサシステムは、例えば科学技術演算を行うスーパーコンピュータ等に用いられている。
【０００３】
このようなマルチプロセッサ型のコンピュータシステムにおいては、プログラムを並列化して複数プロセッサ（ＣＰＵ）にて計算することによりシステム性能を向上させるが、プログラムを並列化すると各プロセッサの同期待ちなどでオーバヘッドが生じ性能劣化の要因となる。このため一般にはシステムの全体性能が同じならば、単体の性能が低いプロセッサを多数有するよりも、単体の性能が高いプロセッサを少数有するほうが計算効率の良いマルチプロセッサシステムを構築することができる。
【０００４】
このような要求に答えるため、ベクトルプロセッサの場合、単体性能の向上を図るために、プロセッサ内のベクトル演算器を並列化し、一度に演算できるデータ幅を増やすなどの手法が提案されている。
【０００５】
この従来の手法においては、図９で示されるように、１つのＣＰＵ内に例えば８つのベクトル演算器８００〜８０７を設けることにより、８のベクトル演算を同時に実行することができ、１つの演算器の場合の８倍ＣＰＵ単体性能が向上する。そして、ベクトル演算器の数が多いほどプロセッサ（ＣＰＵ）の単体性能は向上する。
【０００６】
【発明が解決しようとする課題】
しかし、上述した従来技術には以下のような問題点がある。
【０００７】
まず、ピーク性能が上がっても実際のプログラムによっては実行性能が十分に上がらない場合があることである。
【０００８】
これはプログラムによってはベクトル化が十分にできない場合が有り、並列化して数を増やしたベクトル演算器を常に十分に動作させることができず、性能が劣化してしまうためである。
【０００９】
また、プログラムによっては、ベクトル化できたとしても１つのベクトル命令としてのデータ量が小さい、あるいはベクトル演算器数に端数が生じる場合には、並列化しデータ幅を増やしたベクトル演算器にて実行した場合、動作しない演算器が生じる、あるいはベクトル命令が動作するためのオーバヘッドが大きくなり十分な性能を得られないという問題もある。
【００１０】
また、逆に図１０に示すように、上記問題のためにプロセッサの持つベクトル演算器の数を少なくし（各プロセッサ毎に、ベクトル演算部９００〜９０３、ベクトル演算部９１０〜９１３のそれぞれ４つを有する）、プロセッサ数を増やした場合、高度にベクトル化できるプログラムについては、プログラムを並列化したオーバヘッドが大きくなってしまうという問題もある。高度にベクトル化できるプログラムの場合には、並列化したベクトル演算器の数がなるべく多いほうが効率的に計算できるためである。
【００１１】
なお、複数のベクトルプロセッサを備える情報処理装置であって、ベクトルパイプラインの数を増やし、ベクトル命令を複数のベクトルプロセッサ間で同期を取って実行することにより、ベクトル命令処理時間を短縮するための技術が、例えば、特開２００１−１８４３４０号公報に開示されている。この公報に開示される情報処理装置は、ベクトルパイプラインの割り付けを最適化してベクトルプロセッサの性能を向上させるものであるが、複数のベクトルプロセッサ間の同期をとるための回路機構が必要となり、ハードウェアが増大するという問題点を有する。また、実行するプログラムの特性に応じて、プロセッサシステムとしての性能が最適となるように、フレキシブルにプロセッサ構成を変更することはできない。
【００１２】
本発明の目的は、上記問題点を解消するために、実行するプログラムの特性によって、マルチベクトルプロセッサシステムにおいて最適なプロセッサ構成をフレキシブルに構築でき、これによってシステムとしての実行性能を向上させることができるマルチベクトルプロセッサシステムを提供することにある。
【００１３】
特に近年のテクノロジの進歩により複数のベクトルプロセッサを１チップの中に入れることが可能になってきたため、１チップ内でベクトル演算器を多数備える１つのベクトルプロセッサとする構成や、ベクトル演算器を少数備える複数のベクトルプロセッサとする構成等、実行プログラムによって自由に設定でき、効率的なシステムが構築できる環境を提供することができる。
【００１４】
【課題を解決するための手段】
上記目的を達成する本発明は、共有メモリ型の複数のベクトルプロセッサを有するマルチベクトルプロセッサシステムにおいて、前記各ベクトルプロセッサを各々単独で動作する複数の分割プロセッサに分割して当該複数の分割プロセッサによる動作モード構成、あるいは分割した前記複数の分割プロセッサを連結して前記ベクトルプロセッサによる動作モード構成に切換え可能に設定する手段を備え、実行するプログラムの特性に応じてシステム性能が最適となる前記動作モード構成を設定することを特徴とする。
【００１５】
請求項２の本発明によるマルチベクトルプロセッサシステムは、前記複数の分割プロセッサによる動作モード構成と前記ベクトルプロセッサによる動作モード構成の何れかのモードを示すモードフラグを備え、前記モードフラグの内容に応じて前記モードの切換えを行うことを特徴とする。
【００１６】
請求項３の本発明によるマルチベクトルプロセッサシステムは、前記ベクトルプロセッサが、複数のベクトル演算部を有し、前記分割プロセッサが、前記複数のベクトル演算部を所定数ずつ有するように前記ベクトルプロセッサを分割すると共に、前記各分割プロセッサ毎に、前記ベクトル演算部によるベクトル命令の実行を制御する命令制御を有することを特徴とする。
【００１７】
請求項４の本発明によるマルチベクトルプロセッサシステムは、前記各ベクトル演算部によるメモリアクセスを制御するメモリアクセス制御部を有し、前記メモリアクセス制御部に、前記ベクトル演算部によるメモリアクセスを、前記ベクトルプロセッサによる動作モード構成におけるメモリアクセスと、前記分割プロセッサによる動作モード構成におけるメモリアクセスとに切換えるクロスバ切換え回路を設けたことを特徴とする。
【００１８】
請求項５の本発明によるマルチベクトルプロセッサシステムは、前記分割プロセッサによる動作モード構成において、何れかの前記分割プロセッサに障害が発生した場合に、障害の発生した前記分割プロセッサをシステムから切離すプロセッサ切離し回路を備えることを特徴とする。
【００１９】
請求項６の本発明によるマルチベクトルプロセッサシステムは、前記動作モード構成を設定するための命令を用意し、当該命令により実行するプログラムの特性に応じて前記分割プロセッサによる動作モード構成と前記ベクトルプロセッサによる動作モード構成との切換えを行うことを特徴とする。
【００２０】
請求項７の本発明は、ベクトルプロセッサにおいて、各々が単独で動作する複数の分割プロセッサに分割して当該複数の分割プロセッサによる動作モード構成、あるいは分割した前記複数の分割プロセッサを連結して一の前記ベクトルプロセッサによる動作モード構成に切換え可能に設定する手段を備え、実行するプログラムの特性に応じてプロセッサ性能が最適となる前記動作モード構成を設定することを特徴とする。
【００２１】
請求項８の本発明によるベクトルプロセッサは、前記複数の分割プロセッサによる動作モード構成と前記ベクトルプロセッサによる動作モード構成の何れかのモードを示すモードフラグを備え、前記モードフラグの内容に応じて前記モードの切換えを行うことを特徴とする。
【００２２】
請求項９の本発明によるベクトルプロセッサは、複数のベクトル演算部を有し、前記分割プロセッサが、前記複数のベクトル演算部を所定数ずつ有するように前記ベクトルプロセッサを分割すると共に、前記各分割プロセッサ毎に、前記ベクトル演算部によるベクトル命令の実行を制御する命令制御を有することを特徴とする。
【００２３】
請求項１０の本発明によるベクトルプロセッサは、前記各ベクトル演算部によるメモリアクセスを制御するメモリアクセス制御部を有し、前記メモリアクセス制御部に、前記ベクトル演算部によるメモリアクセスを、前記ベクトルプロセッサによる動作モード構成におけるメモリアクセスと、前記分割プロセッサによる動作モード構成におけるメモリアクセスとに切換えるクロスバ切換え回路を設けたことを特徴とする。
【００２４】
請求項１１の本発明によるベクトルプロセッサは、前記分割プロセッサによる動作モード構成において、何れかの前記分割プロセッサに障害が発生した場合に、障害の発生した前記分割プロセッサをシステムから切離すプロセッサ切離し回路を備えることを特徴とする。
【００２５】
請求項１２の本発明によるベクトルプロセッサは、前記動作モード構成を設定するための命令を用意し、当該命令により実行するプログラムの特性に応じて前記分割プロセッサによる動作モード構成と前記ベクトルプロセッサによる動作モード構成との切換えを行うことを特徴とする。
【００２６】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。図１は本発明の実施の形態によるマルチベクトルプロセッサシステムの構成を示すブロック図である。
【００２７】
図２、図３を参照すると、本発明の一実施の形態として、複数のベクトルプロセッサを備える共有メモリ型のマルチベクトルプロセッサシステムの全体構成が示されている。
【００２８】
本発明では、マルチベクトルプロセッサが設定により複数の形態を取り得る構成となっており、図２、図３に示す形態では、例として２つの独立したＣＰＵ１０、２０として動作する場合と、ＣＰＵ１０、２０がそれぞれ分割され２つの分割ＣＰＵ１１、１２と２１、２２として動作する場合を示している。なお、以降分割プロセッサが連結されて１ＣＰＵとして動作するものを連結ＣＰＵ、連結ＣＰＵが分割され２つのＣＰＵとして動作するものを分割ＣＰＵと称する。
【００２９】
図２及び図３は、本発明により同一のハードウェアにて切換え設定可能な２種類の共有メモリ型のマルチベクトルプロセッサ構成を示している。
【００３０】
図２は、連結ＣＰＵが複数あるときの共有メモリ型マルチベクトルプロセッサ構成を示している。連結ＣＰＵ（０）１０と連結ＣＰＵ（１）２０はそれぞれベクトルプロセッサであり、連結ＣＰＵ（０）１０はパス４２０と４２１、連結ＣＰＵ（１）２０はパス４２３と４２４で共有メモリ５０と接続している。以下、連結ＣＰＵにより動作する構成を連結ＣＰＵ動作モードと称する。
【００３１】
一方、図３に示す構成においては、図２に示す連結ＣＰＵ（０）１０を２つの分割ＣＰＵ（０）１１と分割ＣＰＵ（１）１２に、連結ＣＰＵ（１）２０を２つの分割ＣＰＵ（２）２１と分割ＣＰＵ（３）２２にそれぞれ分割したときの共有メモリ型マルチベクトルプロセッサ構成を示している。
【００３２】
分割ＣＰＵ１１と１２、分割ＣＰＵ２１と２２はベクトルプロセッサであり、ＣＰＵ１１と１２は連結ＣＰＵ（０）１０を２つのベクトルプロセッサに分割したのもであり、ＣＰＵ２１、２２は連結ＣＰＵ（１）２０を２つのベクトルプロセッサに分割したのもである。以下、分割ＣＰＵにより動作する構成を分割ＣＰＵ動作モードと称する。
【００３３】
なお、それぞれの分割ＣＰＵ１１と１２、２１と２２は、パス４２０、４２１、４２３、４２４を介して共有メモリ５０と接続している。また、図２の連結ＣＰＵ（０）１０から共有メモリ５０と接続している２本のパス４２０，４２１によって図３の分割ＣＰＵ（０）１１０と分割ＣＰＵ（１）がそれぞれ共有メモリ５０と接続しているため、連結ＣＰＵ動作モード時にはメモリバンド幅が分割ＣＰＵ動作時の２倍であることを示している。
【００３４】
図１を参照すると、図２、図３に示す共有メモリ型のマルチベクトルプロセッサシステムにおける連結ＣＰＵ動作モード時の連結ＣＰＵ１０と２０及び分割ＣＰＵ１１と１２、２１と２２の詳細な構成を示している。なお、連結ＣＰＵ１０及び分割ＣＰＵ１１、１２の構成と連結ＣＰＵ２０及び分割ＣＰＵ２１、２２の構成は同じであるため、図１においては連結ＣＰＵ１０及び分割ＣＰＵ１１、１２の構成についてのみ説明する。
【００３５】
図１において、連結ＣＰＵ１０として動作する時のベクトルプロセッサの構成を示している。破線で示されている部分が、分割ＣＰＵ動作時における２つの分割ＣＰＵ（０）１１と分割ＣＰＵ（１）１２のそれぞれの構成範囲を示しており、メモリアクセス制御部１７を一部共用していることを示している。
【００３６】
連結ＣＰＵ１０には、動作モードを連結ＣＰＵ動作モードと分割ＣＰＵ動作モードの何れかに切換えるためのＣＰＵ動作モードフラグ１０１が設けられている。
【００３７】
連結ＣＰＵによる連結プロセッサ動作モードと分割ＣＰＵによる分割プロセッサ動作モードは、このＣＰＵ動作モードフラグ１０１を設定することにより切換えられ、例えばＣＰＵ動作モードフラグ１０１が「０」に設定されているときに連結ＣＰＵ動作モード、「１」に設定されているときに分割ＣＰＵ動作モードとなるように構成されている。
【００３８】
上記ＣＰＵ動作モードフラグ１０１の設定方法については、種々考えれられるけれども、一例としてマルチベクトルプロセッサシステムの外部に一般的に設けられているベクトルプロセッサの診断装置（機能）から実行するプログラムの特性（ベクトル命令の要素数等）に応じて設定することができるし、また実行するプログラムの特性に応じてＣＰＵ動作モードフラグ１０１を何れかに設定する特別な命令を用意して設定することもできる。
【００３９】
連結ＣＰＵ１０内において分割ＣＰＵ（０）１１と分割ＣＰＵ（１）１２は、それぞれ命令制御部１３、１４、ベクトル演算部１５０〜１５３、１６０〜１６３を含んでいる。
【００４０】
命令制御部１３、１４は、ベクトルプロセッサが実行する命令をそれぞれ制御している制御部であり、ベクトル演算部１５０〜１５３、１６０〜１６３、メモリアクセス制御部１７をそれぞれ制御している。
【００４１】
ベクトル演算部１５０〜１５３、１６０〜１６３は、それぞれベクトル演算器やベクトルレジスタを有している。ベクトル演算部を複数有するのは、ベクトル命令に従い命令制御部に割り当てられたベクトル演算やメモリアクセスを、それぞれベクトル演算部にて並列して処理することにより、ベクトル処理時間の短縮を図り性能向上するためである。
【００４２】
メモリアクセス制御部１７は、メモリアクセスアドレスの生成、メモリアクセスの競合調停、メモリアクセスの優先順位制御等のメモリアクセス制御、及びデータクロスバとしての機能を備えており、命令制御部１３、１４からのメモリアクセスリクエスト、各ベクトル演算部１５０〜１５３、１６０〜１６３からのメモリアクセスデータを受け取り、メモリアクセス制御部１７で制御した後、パス４２０を構成する４本のパス１９０〜１９３、パス４２１を構成する４本のパス１９４〜１９７にて共有メモリ５０にアクセスしている。また、共有メモリ５０からの読み出しデータは、リクエストの内容にしたがって命令制御部１３、１４、及びベクトル演算部１５０〜１５３、１６０〜１６３に送られる。
【００４３】
命令制御部１３、１４内にはそれぞれ、ＣＰＵ分割制御回路１３１、１４１が設けられている。ＣＰＵ分割制御回路１３１、１４１は、ＣＰＵ動作モードフラグ１０１の設定が「０」のとき、すなわち連結ＣＰＵ動作モード時には、ベクトル演算部１５０〜１５３、１６０〜１６６３の８個のベクトル演算部を並列動作させ１個のプロセッサとして制御するようにパス１８を介して連携して動作し、ＣＰＵ動作モードフラグ１０１が「１」のとき、すなわち分割ＣＰＵ動作モード時には命令制御部１３とベクトル演算部１５０〜１５３からなる第１の分割ＣＰＵ１１と、命令制御部１４とベクトル演算部１６０〜１６３からなる第２の分割ＣＰＵ１２を、２つのプロセッサとして別々に動作するように制御する機能を有している。
【００４４】
同様に、メモリアクセス制御部１７内にはクロスバ切換え回路１７１が設けられている。
【００４５】
このクロスバ切換え回路１７１は、ＣＰＵ動作モードフラグ１０１が「０」のとき、すなわち連結ＣＰＵ動作モード時には、命令制御部１３からのリクエストに応じて、ベクトル演算部１５０〜１５３、１６０〜１６３を所望の共有メモリ５０の番地に接続されたポート１９０〜１９３、１９４〜１９７に出力するようにメモリアクセス制御部１７７のクロスバ構成を切換えて１個のプロセッサとして動作させるようにメモリアクセス制御部１７のクロスバ構成を切換え制御する。
【００４６】
また、クロスバ切換え回路１７１は、ＣＰＵ動作モードフラグ１０１が「１」のとき、すなわち分割ＣＰＵ動作モード時には、分割ＣＰＵ（０）１１は、命令制御部１３からのリクエストにより、ベクトル演算部１５０〜１５３を所望の共有メモリ５０の番地に接続されたポート１９０〜１９３に出力し、分割ＣＰＵ（１）１２は、命令制御部１４からのリクエストにより、ベクトル演算部１６０〜１６３を所望の共有メモリ５０の番地に接続されたポート１９４〜１９７に出力する２個のプロセッサとして動作させるようにメモリアクセス制御部１７のクロスバ構成を切換え制御する。
【００４７】
以上説明したようにマルチベクトルプロセッサに、ＣＰＵ動作モードフラグ１０１、ＣＰＵ分割制御回路１３１、１４１及びクロスバ切換え回路１７１を設けることにより、１つのハードウェアにて連結ＣＰＵ構成、分割ＣＰＵ構成のそれぞれに切換えてシステムを構築することが可能となり、共有メモリ型のマルチベクトルプロセッサ構成がフレキシブルに構成可能となる。例えば、ベクトルプロセッサの構成をベクトル命令を実行するためのユーザプログラムの特徴に応じてフレキシブルに最適な構成に変更することができるようになる。
【００４８】
次に、上記のように構成される本実施の形態によるマルチベクトルプロセッサシステムの動作について説明する。
【００４９】
ベクトルプロセッサでは、複数データを１命令で処理するベクトル命令を用い、さらにベクトル演算部を複数備えることによって、並列演算、並列メモリアクセスを実行することにより、性能を向上させている。図９、図１０に示した２１従来の構成のうち、図９はベクトル演算部を８個持ち、８並列されたベクトルプロセッサの構成であり、図１０はベクトル演算部を４個づつ（ベクトル演算部９００〜９０３、ベクトル演算部９１０〜９１３）持ち、４並列されたベクトルプロセッサを２つ（ＣＰＵ０とＣＰＵ１）有する構成である。
【００５０】
本発明は、上述した図９と図１０に示すような２種類の構成のマルチベクトルプロセッサシステムを１つのハードウェアによって実現することを特徴としている。これは本実施の形態の構成で説明したように、連結ＣＰＵ動作モードと分割ＣＰＵ動作モードの２種類の構成を切換える機構を設けることにより実現している。
【００５１】
図１に示すＣＰＵ動作モードフラグ１０１が「０」の場合である連結ＣＰＵ動作モードについて説明する。
【００５２】
この場合、ＣＰＵ分割制御回路１３１、１４１、クロスバ切換え回路１７１により図２と同等の構成となる。
【００５３】
図１の命令制御部１３からベクトル命令が発行されるとベクトル演算部１５０〜１５３、１６０〜１６３では、同一命令で指示される複数のデータのなかで、自分に割り当てられた要素（８バイトデータ）を受け持つことになる。
【００５４】
ベクトル演算部１５０〜１５３、１６０〜１６３には、１命令で処理する個数分のベクトルレジスタを複数持つことにより演算、メモリアクセスが潤滑に行われるように制御されているが、図４にそれぞれのベクトル演算部に割り当てられた要素番号の一例（ベクトルレジスタ毎に要素番号を対応させている）を示す。
【００５５】
ここでは、ベクトル命令１命令あたり最大５１２要素としての例を示している。最大５１２個を８つのベクトル演算部１５０〜１５３、１６０〜１６３で並列に処理するため、１つのベクトル演算部が処理する要素数は６４個になる。つまり、演算をする場合、１つの演算器では全要素を演算するのに５１２×演算処理時間かかるものが、８並列すると６４×演算処理時間となり、性能は８倍になる。
【００５６】
また、図６を参照すると、連結ＣＰＵ動作モード時のメモリアクセスクロスバを示しているおり、図１のメモリアクセス制御部１７のクロスバ構成の一例を詳細に記述したものである。
【００５７】
図６において、クロスバの入力は図１のベクトル演算部１５０〜１５３、１６０〜１６３であり、図６では入力０〜７としている。またクロスバの出力は入力のメモリバンド幅と等しく出力０〜７の８出力である。クロスバの出力は共有メモリ５０の所望の番地にアクセスするために８個の入力が、どこの８個の出力にも送ることができるように８×８のクロスバ構成となっている。
【００５８】
この８×８のクロスバを実現するために図６では例として出力毎に８入力１出力のセレクタを設けている。これにより、８個のベクトル演算部で必要なデータを８個同時にメモリアクセスすることができる。また８×８の単位で制御しているため、この８×８クロスバはクロスバ単位としてメモリアクセスの順序保証を行うことが可能となる。
【００５９】
次に、図１のＣＰＵ動作モードフラグ１０１が「１」の場合である分割ＣＰＵ動作モードについて説明する。
【００６０】
この場合、ＣＰＵ分割制御回路１３１、１４１、クロスバ切換え回路１７１により図３と同等の構成となり、図１の２つの分割ＣＰＵ（０）１１と分割ＣＰＵ（１）１２による動作モードとなる。
【００６１】
２つの命令制御部１３、１４については、命令制御部１３が分割ＣＰＵ（０）１１用、命令制御部１４が分割ＣＰＵ（１）１２用としてそれぞれ独立に動作し、それぞれにベクトル演算部１５０〜１５３、１６０〜１６３が４つずつのため、１つの命令制御部は４並列動作として命令処理動作することになる。
【００６２】
命令制御部１３、１４からベクトル命令が発行されるとベクトル演算部１５０〜１５３、１６０〜１６３では、同一命令で指示される複数のデータのなかで、自分に割り当てられた要素（８Ｂデータ）を受け持つことになる。
【００６３】
図５にそれぞれのベクトル演算部１５０〜１５３、１６０〜１６３に割り当てられた要素番号の一例（ベクトルレジスタ毎に要素番号を対応させている）を示す。
【００６４】
ここでは、分割ＣＰＵＣＰＵ（０）１１、（１）１２毎にベクトル命令１命令あたり最大２５６要素としての例を示している。図４の場合には５１２要素だったが、各々のベクトル演算部では６４個であり、最大２５６個を４個のベクトル演算部１５０〜１５３、１６０〜１６３で並列に処理するため、１つのベクトル演算部が処理する要素数は６４個になる。これによりベクトルレジスタを連結ＣＰＵ動作モードと分割ＣＰＵ動作モードで共通に使用することが可能となり、ハードウェアが削減できるという効果がある。
【００６５】
また、演算する場合、１つのベクトル演算部では全要素を演算するのに２５６×演算処理時間かかるものが、４並列すると６４×演算処理時間となり、性能は４倍になる。なお、このとき分割ＣＰＵ（０）、（１）が２つあるのでトータルで考えると４倍×２ＣＰＵで８倍となり、連結ＣＰＵ動作モードの場合との性能差はない。ただ、分割ＣＰＵとして動作するか否かの差である。
【００６６】
図７を参照すると、分割ＣＰＵ動作モード時のメモリアクセスクロスバを示しており、図６に示す連結ＣＰＵ動作モードと同じハードウェアにて分割ＣＰＵ（０）１１と分割ＣＰＵ（１）１２として動作する場合のメモリアクセス制御部１７内のクロスバ構成を示している。
【００６７】
クロスバの構成は図６の場合と同じであり、入力０〜３が分割ＣＰＵ（０）１１のベクトル演算部１５０〜１５３からの入力、入力４〜７が分割ＣＰＵ（１）１２のベクトル演算部１６０〜１６３からの入力となっている。
【００６８】
このときクロスバは分割ＣＰＵ（０）１１と分割ＣＰＵ（１）１２用に分割して動作し、入力０〜３が出力０〜３のどの出力にもデータを送ることができるようにＣＰＵ０の４×４クロスバとして動作し、入力４〜７が出力４〜７のどの出力にもデータを送ることができるようにＣＰＵ１の４×４クロスバとして動作する。
【００６９】
これは図６で示すように８入力１出力のセレクタを、ＣＰＵ（０）１１系は入力４〜７までを使用せず、ＣＰＵ（１）１２系は入力０〜３までを使用しないように構成することによって実現しており、図１のクロスバ切換え回路１７１によりコントロールされる。
【００７０】
この２セットある４×４クロスバはクロスバ単位としてメモリアクセスの順序保証を行うことが可能となり、図６に示す連結ＣＰＵ動作モードの場合とハードウェアを共用しながら分割ＣＰＵ動作モード時には分割ＣＰＵ（０）１１、ＣＰＵ（１）１２の２つのプロセッサとして動作させることができる。
【００７１】
本発明の他の実施の形態として、その基本的構成は上記の通りであるが、ベクトルプロセッサ内部の障害発生時に分割ＣＰＵを切離す機能を有する図８に示すような構成も可能である。
【００７２】
これは何れかの分割ＣＰＵ１１、１２において障害が発生し、外部の診断装置からの障害発生検出の通知が送られると、その通知を受けてＣＰＵ切離し回路５００が障害の発生した分割ＣＰＵを分割ＣＰＵ単位で切り離すことを可能とした構成である。このような構成とすれば、例えば、図１のベクトル演算部１５０に障害が発生した場合、分割ＣＰＵ（０）１１を切り離すことにより、ダウンすることなくもう一方のＣＰＵ（１）１２のみの単独運用が可能となる。
【００７３】
また、さらに他の実施の形態として、ＣＰＵ動作モードを設定する命令を設けることである。これにより実行するプログラムの特性に応じて、より細かい単位でＣＰＵ動作モードを設定することが可能となり、さらに実行性能が向上する。
【００７４】
なお、本発明は上述した実施の形態に限定されるものではなく、その技術思想の範囲内において様々に変形して実施することができる。
【００７５】
例えば、上記実施の形態では、連結ＣＰＵ（プロセッサ）が２つでそれぞれが２つの分割ＣＰＵ（プロセッサ）を含む構成を説明したが、連結ＣＰＵの数が１以上で、分割ＣＰＵの数が２以上であれば、それらの数は上記実施の形態に限定されない。
【００７６】
【発明の効果】
以上説明したように本発明のマルチベクトルプロセッサシステムによれば、以下に述べるような効果が実現される。
【００７７】
第１に、ベクトル命令の要素数に応じてベクトルプロセッサ単位のベクトル演算器の数をフレキシブルに変更することができるため、高並列のプロセッサ構成としてプロセッサ単位のピーク性能を向上させることができる効果が得られる。
【００７８】
第２に、ベクトルプロセッサの構成をユーザプログラムの特徴に応じてフレキシブルに最適な構成に変更することができるため、プロセッサ単位の実行性能の向上を実現することができる。
【００７９】
第３に、ユーザプログラムの特徴に応じてマルチベクトルプロセッサシステムにおけるベクトルプロセッサの構成をフレキシブルに変更し最適化することができるため、プロセッサシステムとして実行性能を向上させることができる。
【００８０】
第４に、ベクトルプロセッサの演算器数の異なる複数種類の構成を同一ハードウェアで切り換えて設定できると共に、ハードウェアを共用しているため少ないハードウェア量で実現することができる。
【００８１】
第５に、ベクトルプロセッサを１チップにて実現した場合、ベクトルプロセッサを複数のベクトルプロセッサに分割できるため、分割したあるＣＰＵに故障が発生した場合でも、そのＣＰＵを切り離すことによりチップとして継続運転が可能なため、チップとしての信頼性及び稼動性が向上する。
【００８２】
第６に、命令にベクトルプロセッサの構成を変更する命令を新たに設けることにより、プログラム単位毎に、最適な実行性能が得られるようにすることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態によるマルチベクトルプロセッサシステムの構成を示すブロックである。
【図２】本発明の第１の実施の形態によるマルチベクトルプロセッサシステムの連結ＣＰＵ動作モードにおける構成を示すブロック図である。
【図３】本発明の第１の実施の形態によるマルチベクトルプロセッサシステムの分割ＣＰＵ動作モードにおける構成を示すブロック図である。
【図４】本発明の第１の実施の形態によるマルチベクトルプロセッサシステムの連結ＣＰＵ動作モードにおけるベクトルレジスタ構成の一例を示す図である。
【図５】本発明の第１の実施の形態によるマルチベクトルプロセッサシステムの分割ＣＰＵ動作モードにおけるベクトルレジスタ構成の一例を示す図である。
【図６】本発明の第１の実施の形態によるマルチベクトルプロセッサシステムの連結ＣＰＵ動作モードにおけるメモリアクセスクロスバ構成の一例を示す図である。
【図７】本発明の第１の実施の形態によるマルチベクトルプロセッサシステムの分割ＣＰＵ動作モードにおけるメモリアクセスクロスバ構成の一例を示す図である。
【図８】本発明の他の実施の形態によるマルチベクトルプロセッサシステムの構成を示すブロックである。
【図９】従来のマルチベクトルプロセッサシステムの一例を示すブロック図である。
【図１０】従来のマルチベクトルプロセッサシステムの他例を示すブロック図である。
【符号の説明】
１０、２０  連結ＣＰＵ
１１、１２、２１、２２  分割ＣＰＵ
１３、１４  命令制御部
１７  メモリアクセス制御部
１８  パス
５０  共有メモリ
１０１  ＣＰＵ動作モードフラグ
１３１、１４１  ＣＰＵ分割制御回路
１５０〜１５３、１６０〜１６３  ベクトル演算部
１７１  クロスバ切換え回路
１９０〜１９７  パス
２００  ベクトルレジスタ
３００  クロスバ
４２０、４２１、４２３、４２４  パス
５００  ＣＰＵ切離し回路
【図１】
2004164455.tif 000003
【図２】
2004164455.tif 000004
【図３】
2004164455.tif 000005
【図４】
2004164455.tif 000006
【図５】
2004164455.tif 000007
【図６】
2004164455.tif 000008
【図７】
2004164455.tif 000009
【図８】
2004164455.tif 000010
【図９】
2004164455.tif 000011
【図１０】
2004164455.tif 000012