(57)【特許請求の範囲】
【請求項１】
ベクトルデータおよび／またはスカラデータを格納するベクトルレジスタと、スカラデータとベクトルデータとのベクトル演算を行うベクトル演算器とを有する複数のベクトルプロセッサと、
ベクトルデータとスカラデータとのベクトル演算をするための命令を前記複数のベクトルプロセッサに対して発行するベクトル命令発行手段と、
各ベクトルプロセッサが有するベクトルレジスタから読み出されたスカラデータを、他のベクトルプロセッサに分配するパスとを備え、
前記複数のベクトルプロセッサはそれぞれ、
前記ベクトル命令発行手段が発行したベクトル演算命令をデコードするデコード手段と、
前記デコード手段によるデコードの結果、発行された命令で対象とするスカラデータが自己のベクトルレジスタ内にある場合、該ベクトルレジスタからスカラデータを読み出し、前記パスを介して他のベクトルプロセッサに分配する第１の読み出し手段と、
自己のベクトルレジスタから読み出されたスカラデータと他のベクトルプロセッサから前記パスを介して分配されてきたスカラデータとのいずれかを選択して、前記ベクトル演算器に供給する選択手段とを備える
ことを特徴とするベクトル演算装置。
【請求項２】
前記選択手段は、前記デコード手段によるデコードの結果、発行された命令で対象とするスカラデータが自己のベクトルレジスタ内にある場合、該ベクトルレジスタからのスカラデータを選択して前記ベクトル演算器に供給し、発行された命令で対象とするスカラデータが他のベクトルプロセッサが有するベクトルレジスタ内にある場合、前記パスを介して供給されたスカラデータを選択して前記ベクトル演算器に供給する
ことを特徴とする請求項１に記載のベクトル演算装置。
【請求項３】
各ベクトルプロセッサが有するベクトルレジスタは、いずれも発行された命令で対象とするベクトルデータを格納しており、
前記複数のベクトルプロセッサはそれぞれ、前記デコード手段によるデコードの結果に従って、自己のベクトルレジスタに格納されているベクトルデータを順次読み出し、前記ベクトル演算器に供給する第２の読み出し手段を備える
ことを特徴とする請求項１または２に記載のベクトル演算装置。
【請求項４】
前記複数のベクトルプロセッサはそれぞれ、複数のベクトルレジスタを備え、発行された命令で対象とするベクトルデータは、前記複数のベクトルプロセッサのすべてにおいて、いずれかのベクトルレジスタに格納されており、
発行された命令で対象とするスカラデータは、同じく発行された命令で対象とするベクトルデータが格納されていない、前記複数のベクトルプロセッサのうちのいずれかのベクトルレジスタに格納されており、
前記第１の読み出し手段は、前記デコード手段によるデコードの結果、発行された命令で対象とするスカラデータが自己のいずれかのベクトルレジスタ内にある場合、該ベクトルレジスタからスカラデータを読み出し、
前記選択手段は、前記第１の読み出し手段によって自己のいずれかのベクトルレジスタから読み出されたスカラデータを選択して前記ベクトル演算器に供給し、
前記第２の読み出し手段は、前記デコード手段によるデコードの結果、発行された命令で対象とするスカラデータが自己のいずれかのベクトルレジスタ内にある場合、自己のベクトルレジスタのうちでベクトルデータを格納するものからベクトルデータを順次読み出して前記ベクトル演算器に供給する
ことを特徴とする請求項３に記載のベクトル演算装置。
【請求項５】
前記複数のベクトルプロセッサが備える複数のベクトルレジスタには、ベクトルプロセッサ内で異なり、かつベクトルプロセッサ同士で同一の識別情報が付されており、
発行された命令で対象とするベクトルデータは、各ベクトルプロセッサにおいて同一の識別情報が付されたベクトルレジスタに格納されており、
前記命令発行手段が発行する命令は、対象とするベクトルデータを格納するベクトルレジスタの識別情報を含む
ことを特徴とする請求項４に記載のベクトル演算装置。
【請求項６】
前記命令発行手段が発行する命令は、対象とするスカラデータを格納するベクトルレジスタの識別情報と、ベクトルレジスタ内でのアドレスとを含む
ことを特徴とする請求項５に記載のベクトル演算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ベクトル演算装置に関し、特にスカラデータとベクトルデータとの演算を高速に行うベクトル演算装置に関する。
【０００２】
【従来の技術】
図５は、従来例にかかるベクトル演算装置の構成を示すブロック図である。このベクトル演算装置１０１でスカラデータとベクトルデータとのベクトル演算を行う場合、まず、ベクトル命令発行部１０７は、ベクトルレジスタ１１２または１１３、１２２または１２３からスカラデータを読み出し、スカラレジスタ１０８に格納する命令を、ベクトルプロセッサ１０４、１０５に発行する。
【０００３】
ベクトルプロセッサ１０４、１０５では、ベクトル制御部１０９、１１９がそれぞれ自らのベクトルレジスタ１１２または１１３、１２２または１２３に目的とするスカラデータが格納されているかどうか判断する。目的とするスカラデータが格納されていれば、アドレス制御部１１０、１２０、データ制御部１１１、１２１にデータの読み出しの指示を送り、ベクトルレジスタ１１２または１１３、１２２または１２３からスカラデータを読み出す。
【０００４】
読み出したスカラデータは、命令制御部１０６からの制御信号１４０に従って、読み出しを行ったのがベクトルレジスタ１１２、１１３、１２２、１２３のいずれであるかに応じてそれぞれパス１３０、１３１、１３２、１３３を経由して、スカラレジスタ１０８に格納される。
【０００５】
次に、ベクトル命令発行部１０７は、スカラレジスタ１０８に格納したスカラデータとベクトルデータとの演算を行う命令を、ベクトルプロセッサ１０４、１０５に発行する。ベクトルプロセッサ１０４、１０５では、ベクトル制御部１０９、１１９がベクトルデータを読み出す指示をアドレス制御部１１０、１２０、データ制御部１１１、１２１にそれぞれ送る。
【０００６】
ベクトルレジスタ１１２、１１３、１２２または１２３からベクトルデータが読み出されるのと同時に、命令制御部１０６は、スカラレジスタ１０８に格納されているスカラデータを読み出すための制御信号１４０を、スカラレジスタ１０８に対して送出する。スカラレジスタ１０８は、制御信号１４０に応答してスカラデータを読み出し、パス１２９を経由してベクトルプロセッサ１０４、１０５に分配する。かくしてベクトル演算器１１４、１２４にスカラデータとベクトルデータとが供給され、目的とするベクトル演算が実行される。
【０００７】
【発明が解決しようとする課題】
しかしながら、上記のベクトル演算装置１０１では、スカラデータとベクトルデータとのベクトル演算を実行するためには、２つの命令を発行しなければならない。このため、上記のベクトル演算装置１０１では、プログラムの実行時間が長くなってしまうという問題があった。
【０００８】
これに対して、近年、他の情報処理関連の分野でもプログラムの実行時間が高速化されているのと同様に、ベクトル演算装置によるプログラムの実行時間も高速化されることが要請されている。
【０００９】
このような高速化の要請に応えるために、従来より様々な手法が提案されている。例えば、特開昭６３−１０２６３号公報では、演算を行った後の結果を保持しておくための結果保持用スカラデータバッファを設けたベクトル演算装置が提案されている。また、特開平９−２７４６１２号公報では、スカラレジスタへのスカラレジスタの書き込みを、直接ベクトル命令で行い得るベクトル演算装置が提案されている。また、特開平１０−２５４８５３号公報では、ベクトル演算に必要なスカラデータを予め保持しておくためのスカラデータバッファをベクトルプロセッサ内に設けたベクトル演算装置が提案されている。
【００１０】
しかしながら、これらの公報に記載されたベクトル演算装置ではいずれも、任意のベクトルレジスタ内のスカラデータとベクトルデータとのベクトル演算を行う場合には、当該スカラデータを一旦スカラレジスタバッファに保持し、スカラレジスタバッファから読み出してから、各ベクトルプロセッサに分配しなければならない。つまり、スカラレジスタへのスカラデータの書き込み、スカラレジスタからのスカラデータの読み出しのための時間が必要となり、その分だけ演算の実行時間が長くなってしまうという問題があった。
【００１１】
本発明は、上記従来技術の問題点を解消すべくなされたものであり、スカラデータとベクトルデータとのベクトル演算を高速に実行することができるベクトル演算装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するため、本発明のベクトル演算装置は、
ベクトルデータおよび／またはスカラデータを格納するベクトルレジスタと、スカラデータとベクトルデータとのベクトル演算を行うベクトル演算器とを有する複数のベクトルプロセッサと、
ベクトルデータとスカラデータとのベクトル演算をするための命令を前記複数のベクトルプロセッサに対して発行するベクトル命令発行手段と、
各ベクトルプロセッサが有するベクトルレジスタから読み出されたスカラデータを、他のベクトルプロセッサに分配するパスとを備え、
前記複数のベクトルプロセッサは、
前記ベクトル命令発行手段が発行したベクトル演算命令をデコードするデコード手段と、
前記デコード手段によるデコードの結果、発行された命令で対象とするスカラデータが自己のベクトルレジスタ内にある場合、該ベクトルレジスタからスカラデータを読み出し、前記パスを介して他のベクトルプロセッサに分配する第１の読み出し手段と、
自己のベクトルレジスタから読み出されたスカラデータと他のベクトルプロセッサから前記パスを介して分配されてきたスカラデータとのいずれかを選択して、前記ベクトル演算器に供給する選択手段とを備える
ことを特徴とする。
【００１３】
ここで、前記選択手段は、前記デコード手段によるデコードの結果、発行された命令で対象とするスカラデータが自己のベクトルレジスタ内にある場合、該ベクトルレジスタからのスカラデータを選択して前記ベクトル演算器に供給し、発行された命令で対象とするスカラデータが他のベクトルプロセッサが有するベクトルレジスタ内にある場合、前記パスを介して供給されたスカラデータを選択して前記ベクトル演算器に供給するものとすることができる。
【００１４】
上記のベクトル演算装置では、１つの命令を発行するだけで、該命令で対象とするスカラデータとベクトルデータとをベクトル演算器に供給することができ、ベクトル演算を実行することができる。このため、命令の発行、デコードに要する時間を短くすることができ、スカラデータとベクトルデータとのベクトル演算を高速に実行することができる。
【００１５】
また、各ベクトルプロセッサは、発行された命令で対象とするスカラデータが自己のベクトルレジスタ内にない場合、他のベクトルプロセッサのベクトルレジスタから読み出されたスカラデータを、パスを介して直接受け取ることができる。このため、スカラデータを各ベクトルプロセッサに分配するために要する時間を短くすることができ、スカラデータとベクトルデータとのベクトル演算を高速に実行することができる。
【００１６】
上記のベクトル演算装置において、各ベクトルプロセッサが有するベクトルレジスタは、いずれも発行された命令で対象とするベクトルデータを格納するものとしてもよい。この場合、
前記複数のベクトルプロセッサはそれぞれ、前記デコード手段によるデコードの結果に従って、自己のベクトルレジスタに格納されているベクトルデータを順次読み出し、前記ベクトル演算器に供給する第２の読み出し手段を備えるものとすることができる。
【００１７】
上記のベクトル演算装置において、前記複数のベクトルプロセッサはそれぞれ、複数のベクトルレジスタを備えるものであってもよい。そして、
発行された命令で対象とするベクトルデータは、前記複数のベクトルプロセッサのすべてにおいて、いずれかのベクトルレジスタに格納され、
発行された命令で対象とするスカラデータは、同じく発行された命令で対象とするベクトルデータが格納されていない、前記複数のベクトルプロセッサのうちのいずれかのベクトルレジスタに格納されていてもよい。この場合、
前記第１の読み出し手段は、前記デコード手段によるデコードの結果、発行された命令で対象とするスカラデータが自己のいずれかのベクトルレジスタ内にある場合、該ベクトルレジスタからスカラデータを読み出すものとすることができ、
前記選択手段は、前記第１の読み出し手段によって自己のいずれかのベクトルレジスタから読み出されたスカラデータを選択して前記ベクトル演算器に供給するものとすることができ、
前記第２の読み出し手段は、前記デコード手段によるデコードの結果、発行された命令で対象とするスカラデータが自己のいずれかのベクトルレジスタ内にある場合、自己のベクトルレジスタのうちでベクトルデータを格納するものからベクトルデータを順次読み出して前記ベクトル演算器に供給するものとすることができる。
【００１８】
この場合において、前記複数のベクトルプロセッサが備える複数のベクトルレジスタには、ベクトルプロセッサ内で異なり、かつベクトルプロセッサ同士で同一の識別情報を付してもよい。そして、
発行された命令で対象とするベクトルデータは、各ベクトルプロセッサにおいて同一の識別情報が付されたベクトルレジスタに格納されていてもよく、
前記命令発行手段が発行する命令は、対象とするベクトルデータを格納するベクトルレジスタの識別情報を含むものとすることができる。
【００１９】
さらに、前記命令発行手段が発行する命令は、対象とするスカラデータを格納するベクトルレジスタの識別情報と、ベクトルレジスタ内でのアドレスとを含むものとすることができる。
【００２０】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【００２１】
図１は、この実施の形態において、ベクトル演算装置の構成を示すブロック図である。図示するように、このベクトル演算装置１は、主記憶装置２と、スカラプロセッサ３と、ｎ個のベクトルプロセッサ４（１番目）〜５（ｎ番目）とを備える。スカラプロセッサ３は、主記憶装置２に接続されている。ベクトルプロセッサ４〜５は、それぞれ主記憶装置２とスカラプロセッサ３とに接続されている。
【００２２】
スカラプロセッサ３は、命令制御部６と、ベクトル命令発行部７と、スカラレジスタ８とを有する。命令制御部６は、主記憶装置２に対してデータの要求を発行し、ベクトル命令の抽出処理を行う。ベクトル命令発行部７は、ベクトルプロセッサ４〜５のそれぞれに対してベクトル命令を発行すると共に、主記憶装置２に対してベクトルロード命令等のベクトルメモリアクセス命令を発行する。スカラレジスタ８は、主記憶装置２からのオペランドデータ、スカラ演算結果或いはベクトル演算結果を保持する。
【００２３】
ベクトルプロセッサ４は、ベクトル制御部９と、アドレス制御部１０と、データ制御部１１と、ベクトルレジスタ１２、１３と、ベクトル演算器１４と、セレクタ１５〜１８とを有する。
【００２４】
ベクトル制御部９は、ベクトル命令発行部７から発行された命令を受け取り、受け取った命令をデコードする。アドレス制御部１０は、ベクトル制御部９からのデコード情報に基づき、ベクトルレジスタ１２、１３のライトアドレスまたはリードアドレスを制御する。データ制御部１１は、ベクトルレジスタ１２、１３へのデータのライト、またはベクトルレジスタ１２、１３からのデータのリードを制御する。
【００２５】
ベクトルレジスタ１２、１３は、スカラデータおよび／またはベクトルデータを格納する。ベクトル演算器１４は、スカラデータとベクトルデータとのベクトル演算を行う。セレクタ１５、１６は、それぞれベクトルレジスタ１２、１３へライトするデータを選択する。セレクタ１７、１８は、それぞれベクトル演算器１４に供給するデータを選択する。
【００２６】
ベクトルプロセッサ５は、ベクトル制御部１９、アドレス制御部２０、データ制御部２１、ベクトルレジスタ２２、２３、ベクトル演算器２４及びセレクタ２５〜２８を有し、それぞれベクトルプロセッサ４の対応するものと同様に構成されている。また、図示しない２番目からｎ−１番目のベクトルプロセッサも、ベクトルプロセッサ４と同様の構成を有する。
【００２７】
ベクトルプロセッサ４とベクトルプロセッサ５とにおいて、ベクトルレジスタ１２と２２とは、同一のベクトルレジスタ番号を有し、それぞれベクトルプロセッサ毎にｎ（ベクトルプロセッサの数と同一）分割されたうちの１つである。ベクトルレジスタ１３と２３とに関しても同様である。
【００２８】
また、このベクトル演算装置１には、ベクトルレジスタ１２、１３、２２、２３から読み出したデータを、スカラプロセッサ３のスカラレジスタ８に転送すると同時に、他のベクトルプロセッサ４〜５に分配するためのパス３０〜３３が設けられている。
【００２９】
次に、ベクトル命令発行部７が発行する命令について説明する。図２は、ベクトル命令発行部７がベクトルレジスタ１２、１３、２２、２３内の１要素（単に要素という場合はアドレス毎のデータを意味するが、ここでの各要素はスカラデータのことである）とベクトルデータとの演算を行わせるために発行する命令を示す図である。図示するように、この命令は、オペレーションコード２０１と、ベクトルレジスタ内のスカラデータを指定するアドレス２０２と、ベクトルレジスタ番号２０３と、スカラデータとの演算を行うベクトルデータを指定するためのベクトルレジスタ番号２０４と、演算結果を格納するベクトルレジスタ番号２０５とからなる。
【００３０】
以下、この実施の形態にかかるベクトル演算装置の動作について説明する。以下の説明において、ベクトルレジスタ１２、１３、２２、２３内の各要素に対するアドレスを、ベクトルプロセッサ４〜５まで、順に１からｎ、ｎ＋１から２ｎ、２ｎ＋１から３ｎというように割り振る。また、ベクトルレジスタ１２と２２のベクトルレジスタ番号を１、ベクトルレジスタ１３と２３のベクトルレジスタ番号を２、スカラデータとベクトルデータとの演算を行う際のスカラデータがベクトルレジスタ１２のアドレス１に格納されているものとする。
【００３１】
より分かり易くするため、具体例で説明すると、ベクトルプロセッサが、図３に示すように、４つだとする（ｎ＝４）。各ベクトルプロセッサ内の１つのベクトルレジスタに注目し、（仮にベクトルレジスタ番号１のベクトルレジスタ１２，２２として）、１２〜２２の各要素に対して与えるアドレスを図３のように割り振る。この場合、スカラデータとするアドレス１に格納されているデータをスカラデータとすると、その場合のベクトルレジスタはベクトルレジスタ１２ということとなる。
【００３２】
まず、ベクトル命令発行部７は、ベクトルプロセッサ４〜５に対して、ベクトルレジスタのアドレスが１を示すベクトルレジスタ番号とベクトルレジスタ番号が２のベクトルデータとの演算を行う命令３４を発行する。このときにベクトル命令発行部７が発行する命令は、図４に示すように、オペレーションコード２０１がＯＰ（仮に設定する）、スカラデータを指定するアドレス２０２が“１”、ベクトルレジスタ番号２０３が“１”、ベクトルデータを指定するベクトルレジスタ番号２０４が“２”、演算結果を格納するベクトルレジスタ番号２０５が“１”となる。この命令がｎ個のベクトルプロセッサ４〜５に通知されると、それぞれのベクトル制御部が命令をデコードする。
【００３３】
ベクトルプロセッサ４（１番目）では、ベクトル制御部９が、オペレーションコード２０１とスカラデータを指定するアドレス２０２とから、対象となるスカラデータが自らのベクトルプロセッサ４内のベクトルレジスタ１２に格納されていることを認識する。
【００３４】
ベクトル制御部９は、ベクトルレジスタ１２、１３に読み出しと書き込みの制御を行うため、アドレス制御部１０に対して制御情報４１を通知する。制御情報４１は、上記した命令のうちのスカラデータを指定するアドレス２０２、ベクトルレジスタ番号２０３、ベクトルデータを指定するベクトルレジスタ番号２０４、及び演算結果を格納するベクトルレジスタ番号２０５からなる。
【００３５】
ベクトル制御部９は、また、ベクトル演算器１４に供給するデータの選択や、ベクトルレジスタ１２、１３に書き込むデータの選択を行うため、データ制御部１１に対して制御情報４２を通知する。制御情報４２は、上記した命令のうちのベクトルレジスタ番号２０３、ベクトルデータを指定するベクトルレジスタ番号２０４、及び演算結果を格納するベクトルレジスタ番号２０５からなる。
【００３６】
アドレス制御部１０は、通知されたアドレス２０２とベクトルレジスタ番号２０３に基づき、制御信号４３によりベクトルレジスタ１２に対してリードアドレスを“１”に設定する。これにより、目的とするスカラデータが、ベクトルレジスタ１２から読み出され、パス３０を通じてスカラレジスタ８に転送されると共に、他のベクトルプロセッサ５等に分配される。アドレス制御部１０は、また、通知されたベクトルレジスタ番号２０４に基づき、制御信号４４によりベクトルレジスタ１３に対してリードアドレスを“１”に設定してから順次インクリメントし、ベクトル長分のデータを読み出す。
【００３７】
データ制御部１１は、通知されたベクトルレジスタ番号２０３に基づき、ベクトルレジスタ１２から読み出したスカラデータをベクトル演算器１４に供給するため、パス３０を選択する制御信号４６をセレクタ１７に供給する。データ制御部１１は、また、通知されたベクトルレジスタ番号２０４に基づき、ベクトルレジスタ１３から読み出したベクトルデータをベクトル演算器１４に供給するため、パス３１を選択する制御信号４７をセレクタ１８に供給する。
【００３８】
ベクトル演算器１４は、こうして供給されたスカラデータとベクトルデータとのベクトル演算を行う。そして、アドレス制御部１０は、ベクトルレジスタ番号２０５に基づき、制御信号４３によりベクトルレジスタ１２に対してライトアドレスを“１”に設定してから順次インクリメントする。データ制御部１１は、ベクトルレジスタ番号２０５に基づき、ベクトル演算器１４の結果データ４９をベクトルレジスタ１２に格納するため、結果データ４９を選択する制御信号４５をセレクタ１５に供給する。ライトアドレスがインクリメントされることにより、ベクトル演算後の結果データ４９が、順次ベクトルレジスタ１２に格納される。
【００３９】
一方、ベクトルプロセッサ４以外のベクトルプロセッサ（２〜ｎ番目：以下では、ｎ番目のベクトルプロセッサ５を例とする）では、ベクトル制御部１９が、対象となるスカラデータが自らのベクトルプロセッサ５内のベクトルレジスタ２２、２３に格納されていないことを認識する。ベクトル制御部１９は、アドレス制御部２０及びデータ制御部２１に対してスカラデータを読み出すための制御情報を通知しない。
【００４０】
ベクトル制御部１９は、ベクトルデータの読み出しと演算後のベクトルデータの書き込みとを行うため、アドレス制御部２０に対して制御情報５０を通知する。制御情報５０は、上記した命令のうちのベクトルデータを指定するベクトルレジスタ番号２０４、及び演算結果を格納するベクトルレジスタ番号２０５からなる。
【００４１】
ベクトル制御部１９は、また、ベクトル演算器２４に供給するデータの選択や、ベクトルレジスタ２２、２３に書き込むデータの選択を行うため、データ制御部２１に対して制御情報５１を通知する。制御情報５１は、上記した命令のうちのベクトルデータを指定するベクトルレジスタ番号２０４、及び演算結果を格納するベクトルレジスタ番号２０５からなる。
【００４２】
アドレス制御部２０は、通知されたベクトルレジスタ番号２０４に基づき、制御信号５３によりベクトルレジスタ２３に対してリードアドレスを“１”に設定してから順次インクリメントし、ベクトル長分のデータを読み出す。が、スカラデータを読み出すための指示が通知されておらず、ベクトルレジスタ２２に対する読み出し動作は行わない。
【００４３】
データ制御部２１は、通知されたベクトルレジスタ番号２０４に基づき、ベクトルレジスタ２３から読み出したベクトルデータをベクトル演算器２４に供給するため、パス２１を選択する制御信号５６をセレクタ２８に供給する。一方、スカラデータを読み出すための指示が通知されておらず、他のベクトルプロセッサからのスカラデータ、ここではベクトルプロセッサ４からのスカラデータをベクトル演算器２４に供給するため、パス３０を選択する制御信号５５をセレクタ２７に供給する。
【００４４】
ベクトル演算器２４は、こうして供給されたスカラデータとベクトルデータとのベクトル演算を行う。そして、アドレス制御部２０は、ベクトルレジスタ番号２０５に基づき、制御信号５２によりベクトルレジスタ２２に対してライトアドレスを“１”に設定してから順次インクリメントする。データ制御部２１は、ベクトルレジスタ番号２０５に基づき、ベクトル演算器２４の結果データ５８をベクトルレジスタ２２に格納するため、結果データ５８を選択する制御信号５４をセレクタ２５に供給する。ライトアドレスがインクリメントされることにより、ベクトル演算後の結果データ５８が、順次ベクトルレジスタ２２に格納される。
【００４５】
以上がこの実施の形態にかかるベクトル演算装置１が、スカラデータとベクトルデータとのベクトル演算を行う際の動作である。もっとも、そのためにはスカラデータが予めベクトルレジスタ１２、１３、２２、２３に格納されていなければならない。そのためには、公知の方法を適用することができる。例えば、ベクトル命令発行部７からベクトルロード命令３６を発行することにより、主記憶装置２上のデータをパス３５を経由してベクトルレジスタ１２、１３、２２、２３へ格納する方法がある。また、ベクトル総和演算命令等によりベクトル演算器１４、２４の演算結果４９、５８として得られるスカラデータをベクトルレジスタ１２、１３、２２、２３に格納する方法がある。
【００４６】
以上説明したように、この実施の形態にかかるベクトル演算装置１では、スカラデータとベクトルデータとのベクトル演算を行う場合に、ベクトル命令発行部１０７は、１つのベクトル演算命令のみを発行すればよい。このため、このようなベクトル演算を終了するまでの間で命令の発行及びデコードに要する時間を短くすることができ、結果としてベクトル演算を高速に行えるようになる。
【００４７】
また、この実施の形態にかかるベクトル演算装置１では、スカラデータとベクトルデータとのベクトル演算を行う場合に、ベクトルレジスタ１２、１３、２２または２３から読み出したスカラデータを、直接他のベクトルプロセッサ４〜５に分配することができる。このため、スカラレジスタ８へのスカラデータの書き込み及びスカラレジスタ８からのスカラデータの読み出しを待つことなく、スカラデータを分配してベクトル演算を行うことができ、結果としてベクトル演算を高速に行えるようになる。
【００４８】
なお、上記の実施の形態では、１つのベクトルプロセッサ４、５内には、２個のベクトルレジスタ１２及び１３、２２及び２３と、１個のベクトル演算器１４、２４が設けられていた。しかしながら、本発明において、１つのベクトルプロセッサ内に設けるベクトルレジスタ及びベクトル演算器の数は、任意のものとすることができる。
【００４９】
【発明の効果】
以上説明したように、本発明のベクトル演算装置によれば、スカラデータとベクトルデータとのベクトル演算を高速に行うことができる。
【図面の簡単な説明】
【図１】本発明の実施の形態にかかるベクトル演算装置の構成を示すブロック図である。
【図２】図１のベクトル命令発行部が発行する命令を示す図である。
【図３】ベクトルレジスタに割り振られたアドレスを説明する図である。
【図４】図２の命令の具体例を示す図である。
【図５】従来例にかかるベクトル演算装置の構成を示すブロック図である。
【符号の説明】
１  ベクトル演算装置
２  主記憶装置
３  スカラプロセッサ
４、５  ベクトルプロセッサ
６  命令制御部
７  ベクトル命令発行部
８  スカラレジスタ
９、１９  ベクトル制御部
１０、２０  アドレス制御部
１１、２１  データ制御部
１２、１３、２２、２３  ベクトルレジスタ
１４、２４  ベクトル演算器
１５〜１８、２５〜２８  セレクタ
３０〜３３  パス
【図１】
0003607548.tif 000002
【図２】
0003607548.tif 000003
【図３】
0003607548.tif 000004
【図４】
0003607548.tif 000005
【図５】
0003607548.tif 000006