(57)【特許請求の範囲】
【請求項１】
主記憶手段と、ベクトル・レジスタ手段と、ベクトル演算手段を具備し、ベクトル・レジスタに保持されている要素を読み出し、これを要素番号の方向にシフトして前記ベクトル・レジスタとは別のレジスタの異なる要素番号区分に格納するベクトル処理装置において、
前記ベクトル・レジスタ手段を複数のブロックにより構成し、通常のベクトル演算においては各ブロックが独立に動作し、ベクトル総和演算等の要素間の演算のために各ブロック間に専用データバスを設け、この専用データバスを用いてブロック間で要素の転送を行うとともに、
ベクトル・アクセス・パイプとは独立に並行してベクトルスライドを実行するベクトルスライド手段を設け、ベクトル演算器と独立に、並行してベクトルスライド処理を実行することを特徴とするベクトル処理装置。
【請求項２】
前記要素番号が１つ増加又は減少する方向に要素を格納することを特徴とする請求項１記載のベクトル処理装置。
【請求項３】
主記憶手段と、ベクトル・レジスタ手段と、ベクトルマスクレジスタ手段と、ベクトル演算手段を具備するベクトル処理装置において、
前記ベクトル・レジスタ手段を複数のブロックにより構成し、通常のベクトル演算においては各ブロックが独立に動作し、ベクトル総和演算等の要素間の演算のために各ブロック間に専用データバスを設け、この専用データバスを用いてブロック間で要素の転送を行うとともに、
ベクトル・レジスタに保持されている要素を読み出し、これを要素番号の方向にシフトして前記ベクトル・レジスタとは別のベクトル・レジスタの異なる要素番号区分に格納するとき、読み出し元のベクトル・レジスタの値と書き込み先のベクトル・レジスタの元の値をマージし、要素番号の方向に移動したときのベクトルマスクレジスタの対応するビットが「１」または「０」のいずれか一方の特定値である要素についてのみ格納を行うベクトル制御手段を具備したことを特徴とするベクトル処理装置。
【請求項４】
主記憶手段と、ベクトル・レジスタ手段と、ベクトル演算手段と、ベクトル・レジスタに保持されている要素を読み出し、これを要素番号の方向にシフトして前記ベクトル・レジスタとは別のレジスタの異なる要素番号区分に格納するベクトル処理装置において、
前記ベクトル・レジスタ手段を複数のブロックにより構成し、通常のベクトル演算においては各ブロックが独立に動作し、ベクトル総和演算等の要素間の演算のために各ブロック間に専用データバスを設け、この専用データバスを用いてブロック間で要素の転送を行うとともに、
ベクトル・アクセス・パイプとは独立にベクトル演算器と並行してベクトルスライドを実行するベクトルスライド手段を設け、ベクトル演算器と独立に、並行してベクトルスライド処理を実行することを特徴とするベクトル処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はベクトル処理装置に係り、特に主記憶からベクトル・レジスタへのベクトルロード命令の実行回数を削減することによりベクトル演算の高速化をはかるものである。
【０００２】
【従来の技術】
ベクトル処理装置においてベクトル演算を行う場合、図５に示す如く、主記憶１００上のデータをベクトル部１０１のベクトル・レジスタ部１１０のベクトル・レジスタＶＲ１、ＶＲ２にベクトルロードすることが必要である。主記憶１００上のデータをベクトル・レジスタ部１１０のベクトル・レジスタＶＲ１、ＶＲ２に格納する際に、ベクトル・アクセス・パイプ１１１を使用してベクトルロード命令を実行する。この場合、アドレスが１ワードずれた配列をベクトル・レジスタ１１０にロードする場合でも２回のベクトルロード命令を実行していた。
【０００３】
例えば下記のＤＯループ１０
ＤＯ  １０  Ｉ＝１、１００
Ａ（Ｉ）＝Ｂ（Ｉ）＋Ｂ（Ｉ＋１）
１０  ＣＯＮＴＩＮＵＥ
を実行する場合のように、同一配列Ｂで１ワードずれた場合でも、２回主記憶アクセスを行うことが必要であった。
【０００４】
なお上記ＤＯループ１０のプログラムは、下記の演算を行うことを示すものである。
Ａ（１）＝Ｂ（１）＋Ｂ（２）                ・・・・（１）
Ａ（２）＝Ｂ（２）＋Ｂ（３）                ・・・・（２）
Ａ（３）＝Ｂ（３）＋Ｂ（４）                ・・・・（３）
・
・
・
Ａ（１００）＝Ｂ（１００）＋Ｂ（１０１）        ・・・（１００）
このプログラムを実行するとき、第１回目のベクトルロード命令により右側の項のうちの１番目の要素Ｂ（１）、Ｂ（２）・・・Ｂ（１００）を主記憶１００からベクトル・レジスタ部１１０のベクトル・レジスタＶＲ１に格納する。それから第２回目のベクトルロード命令により２番目の要素Ｂ（２）、Ｂ（３）・・・Ｂ（１０１）を主記憶１００からベクトル・レジスタＶＲ２に格納する。
【０００５】
そしてベクトル演算器１１２により上記各式の演算を行い、その演算結果をベクトル・レジスタＶＲ３に順次格納する。
なお、図５において１０２はスカラ部、１１３はベクトル命令制御部である。
【０００６】
【発明が解決しようとする課題】
前記の如くベクトル演算を行うとき、ベクトル・レジスタＶＲ２に格納される各要素Ｂ（２）、Ｂ（３）・・・Ｂ（１０１）が、ベクトル・レジスタＶＲ１に格納されている各要素Ｂ（１）、Ｂ（２）・・・Ｂ（１００）と、主記憶１００上で１ワードしかずれていない配置の場合であっても、ベクトル・アクセス・パイプ１１１が主記憶に対するアクセスを２回行うことが必要であり、このため演算速度が遅くなり、性能低下の原因となっていた。
【０００７】
即ち、前記ＤＯループ１０の命令を実行するとき、ベクトル命令制御部１１３はベクトル・アクセス・パイプ１１１に対し、第１回目のベクトルロード命令を発行する。これによりベクトル・アクセス・パイプ１１１が主記憶１００から配列Ｂの要素（Ｉ）（Ｉ＝１〜１００）を読み出してベクトル・レジスタＶＲ１に格納する。このとき格納される対象は、Ｂ（１）〜Ｂ（１００）の１００要素でありＶＲ１（１）〜ＶＲ１（１００）に格納される。
【０００８】
次に第２回目のベクトルロード命令が発行され、ベクトル・アクセス・パイプ１１１はＢ（Ｉ＋１）を読み出し、ベクトル・レジスタＶＲ２に格納する。このとき格納される対象はＢ（２）〜Ｂ（１０１）の１００要素であり、ＶＲ２（１）〜ＶＲ２（１００）にそれぞれ格納される。
【０００９】
引続き、ベクトル・レジスタＶＲ１とＶＲ２が読み出され、ベクトル演算器１１２でベクトル加算が実行され、結果がベクトル・レジスタＶＲ３に格納される。そしてこのＶＲ３に格納された結果を主記憶１００上の配列Ａ（Ｉ）に格納して、このＤＯループの処理が終了する。
【００１０】
一般にベクトル・レジスタは主記憶から遠く、ベクトル・アクセス・パイプの性能は低い。このため２回ベクトルロードを実行することは大きいオーバヘッドとなり、性能低下の原因となる。
【００１１】
したがって本発明の目的はこのようなアクセス回数を減少して演算速度の向上を図るベクトル処理装置を提供することである。
【００１２】
【課題を解決するための手段】
前記目的を達成するための本発明の関連技術の構成を図１に示す。図１において、１は主記憶、２はベクトル部、３はスカラ部、１０はベクトル・レジスタ部、１１はベクトル・アクセス・パイプ、１２はベクトル演算器、１３はベクトル命令制御部である。ベクトル命令制御部１３は、図１に示す如く、例えば配列レジスタ番号ＶＲ１に格納された要素を配列レジスタ番号ＶＲ２にスライドすることができる。前記本発明の目的は、下記の（１）〜（４）に記載された構成により達成される。
【００１３】
（１）本発明のベクトル処理装置では、主記憶手段と、ベクトル・レジスタ手段と、ベクトル演算手段を具備し、ベクトル・レジスタに保持されている要素を読み出し、これを要素番号の方向にシフトして前記ベクトル・レジスタとは別のレジスタの異なる要素番号区分に格納するベクトル処理装置において、前記ベクトル・レジスタ手段を複数のブロックにより構成し、通常のベクトル演算においては各ブロックが独立に動作し、ベクトル総和演算等の要素間の演算のために各ブロック間に専用データバスを設け、この専用データバスを用いてブロック間で要素の転送を行うとともに、ベクトル・アクセス・パイプとは独立に並行してベクトルスライドを実行するベクトルスライド手段を設け、ベクトル演算器と独立に、並行してベクトルスライド処理を実行することを特徴とする。
【００１４】
（２）本発明のベクトル処理装置では、前記（１）において、前記要素番号が１つ増加又は減少する方向に要素を格納することを特徴とする。
【００１５】
（３）本発明のベクトル処理装置では、主記憶手段と、ベクトル・レジスタ手段と、ベクトルマスクレジスタ手段と、ベクトル演算手段を具備するベクトル処理装置において、前記ベクトル・レジスタ手段を複数のブロックにより構成し、通常のベクトル演算においては各ブロックが独立に動作し、ベクトル総和演算等の要素間の演算のために各ブロック間に専用データバスを設け、この専用データバスを用いてブロック間で要素の転送を行うとともに、ベクトル・レジスタに保持されている要素を読み出し、これを要素番号の方向にシフトして前記ベクトル・レジスタとは別のベクトル・レジスタの異なる要素番号区分に格納するとき、読み出し元のベクトル・レジスタの値と書き込み先のベクトル・レジスタの元の値をマージし、要素番号の方向に移動したときのベクトルマスクレジスタの対応するビットが「１」または「０」のいずれか一方の特定値である要素についてのみ格納を行うベクトル制御手段を具備したことを特徴とする。
【００１６】
（４）本発明のベクトル処理装置では、主記憶手段と、ベクトル・レジスタ手段と、ベクトル演算手段と、ベクトル・レジスタに保持されている要素を読み出し、これを要素番号の方向にシフトして前記ベクトル・レジスタとは別のレジスタの異なる要素番号区分に格納するベクトル処理装置において、前記ベクトル・レジスタ手段を複数のブロックにより構成し、通常のベクトル演算においては各ブロックが独立に動作し、ベクトル総和演算等の要素間の演算のために各ブロック間に専用データバスを設け、この専用データバスを用いてブロック間で要素の転送を行うとともに、ベクトル・アクセス・パイプとは独立にベクトル演算器と並行してベクトルスライドを実行するベクトルスライド手段を設け、ベクトル演算器と独立に、並行してベクトルスライド処理を実行することを特徴とする。
【００１７】
そしてこれにより次の如き作用効果を奏する。
（１）ベクトル・レジスタに保持されている要素を読み出し、これを要素番号の方向に移動してベクトル・レジスタの異なる要素番号区分に格納するベクトルスライド処理を行うことにより、ベクトルロード命令の回数が従来の２回から１回に削減され、高速ベクトル処理が実現できる。
【００１８】
（２）マスクレジスタを使用する場合でもベクトルロード命令の回数が削減され、高速ベクトル処理が実現できる。
【００１９】
（３）要素番号が１つ増加又は減少する方向に要素をスライド処理により格納するので、１ワードずれた配列を１回のベクトルロード命令により可能となり、ベクトルロード命令の回数を削減し、高速ベクトル処理ができる。しかもスライド処理制御のためのハード機構が簡単になり、制御も容易なものとなる。
【００２０】
（４）ベクトル・アクセス・パイプを使用せずにベクトル・アクセス・パイプとは独立に並行してベクトルスライドを実行することができるので、メモリアクセスを行いながらスライド処理を行うことができ、高速ベクトル処理ができる。
【００２１】
（５）ベクトル・レジスタ手段が複数のブロックにより構成されているときでも、従来から設けられている専用データバスを用いて要素の転送が可能となり、転送用の特別のピンを設ける必要なく、ベクトルロード命令の回数を削減するとともに、高速ベクトル処理ができる。
【００２２】
（６）専用のベクトルスライド手段を設けたので、ベクトル演算手段とは独立に並行してスライド処理を実行することができるので、スライド処理とベクトル演算とを同時に行うことができ、高速ベクトル処理ができる。
【００２３】
【発明の実施の形態】
本発明の関連技術を図１にもとづき説明する。図１において、１は主記憶、２はベクトル部、３はスカラ部、１０はベクトル・レジスタ部、１１はベクトル・アクセス・パイプ、１２はベクトル演算器、１３はベクトル命令制御部である。
【００２４】
主記憶１は、ベクトル処理装置を動作する各種のデータが記憶されるものであって、ベクトル演算されるべき配列の各要素が格納されたり、演算結果が格納されたり、ベクトル部２が実行すべき命令等が格納されるものである。
【００２５】
ベクトル部２は、主記憶１に格納されたデータにベクトル演算を行い、その演算結果を主記憶１に格納するものであって、ベクトル・レジスタ部１０、ベクトル・アクセス・パイプ１１、ベクトル演算器１２、ベクトル命令制御部１３等を具備している。
【００２６】
スカラ部３は主記憶１から命令を読み出し、これを解読してスカラ命令かベクトル命令かを識別し、スカラ命令であればこれを実行し、ベクトル命令であればこれをベクトル命令制御部１３に送出する。
【００２７】
ベクトル・レジスタ部１０は、ベクトル演算器１２でベクトル演算されるべき配列要素及びベクトル演算結果得られた配列要素を一時保持するものであり、主記憶１から読み出された配列Ｂの各要素Ｂ（１）、Ｂ（２）・・・Ｂ（１０１）が格納されるベクトル・レジスタＶＲ１と、ベクトル・レジスタＶＲ１の要素の一部Ｂ（２）、Ｂ（３）・・・Ｂ（１０１）がスライド格納されるベクトル・レジスタＶＲ２と、ベクトル・レジスタＶＲ１とベクトル・レジスタＶＲ２との各要素のベクトル演算結果が格納されるベクトル・レジスタＶＲ３等を具備している。
【００２８】
ベクトル・アクセス・パイプ１１は、主記憶１に対してベクトル要素をロードしたり、ストアするものであって、ロードの場合にはアクセス先のアドレス計算を行ったり、主記憶１に対してロード要求を発行し、これにより主記憶１から読み出された各要素を取り出してベクトル・レジスタ部１０に送出する。またストアの場合はアクセス先のアドレス計算を行い、主記憶１に対しストア要求を発行し、ストアすべき各要素を主記憶１に送出してこれらをストアするものである。
【００２９】
ベクトル演算器１２は、ベクトル・レジスタＶＲ１とＶＲ２の同一の要素番号の要素をそれぞれ読み出して演算を行い、演算結果をベクトル・レジスタＶＲ３の同一要素番号の区分に格納処理を行ったり、本発明の特徴とするスライド処理を行うものである。
【００３０】
このスライド処理は、ベクトル・レジスタＶＲ１から要素Ｂ（１）、Ｂ（２）・・・Ｂ（１０１）を読み出し、要素を、その番号が１つ減る方向の要素番号としてベクトル・レジスタＶＲ２に格納するものである。即ちベクトル・レジスタＶＲ１の要素番号２の要素Ｂ（２）は、２−１＝１つまりベクトル・レジスタＶＲ２の要素番号１の要素として格納され、ベクトル・レジスタＶＲ１の要素番号３の要素Ｂ（３）はベクトル・レジスタＶＲ２の要素番号２の要素として格納され、ベクトル・レジスタＶＲ１の要素番号１０１の要素Ｂ（１０１）はベクトル・レジスタＶＲ２の要素番号１００の要素として格納される。これにより図１に示すベクトル・レジスタＶＲ１の要素が、矢印に示す如く、ベクトル・レジスタＶＲ２の１つ減る方向に要素番号がずらして格納されることになる。
【００３１】
なお、図１に示す例は、ベクトル・レジスタＶＲ１から要素番号が１つ減る方向にずらしてベクトル・レジスタＶＲ２に格納されるものであるが、スライド処理はこれに限定されるものではなく、スライドされる量は１のみに限定されるものではなく２以上の任意の整数が選択されるものであり、また方向も減る方向のみならず要素番号の増加する方向にスライドすることもできる。
【００３２】
ベクトル命令制御部１３は、スカラ部３からベクトル命令を受け取ったときこれを解読して、その内容に応じてベクトル・レジスタ１０、ベクトル・アクセス・パイプ１１、ベクトル演算器１２等に対し選択的に制御指示を与えるものである。
【００３３】
次に、図１に示す本発明の関連技術に対する動作を、前記ＤＯループ１０の命令を実行する場合について説明する。
【００３４】
図示省略したコンパイラが、前記ＤＯループ１０の命令全体を認識することにより、これがベクトル命令であり、その演算に必要な要素は配列ＢのＢ（１）〜Ｂ（１０１）であること、そしてこれらの要素Ｂ（１）〜Ｂ（１０１）により前記（１）式〜（１００）式の演算を行うこと、またベクトル・レジスタＶＲ２に格納する要素は、ベクトル・レジスタＶＲ１に格納された要素を１つ減る方向にスライドしてＶＲ２に格納すればよいことを認識し、これらを実行する命令即ち後述するステップ１〜ステップ３を実行する命令を作成し、主記憶１に格納する。
【００３５】
（ステップ１）要素Ｂ（Ｉ）Ｉ＝１〜１０１を主記憶１から取り出し、ベクトル・レジスタＶＲ１に格納する。
【００３６】
（ステップ２）ベクトル・レジスタＶＲ１から要素Ｂ（１）〜Ｂ（１０１）を読み出し、要素を要素番号が１つ減る方向にずらしてベクトル・レジスタＶＲ２に格納する。従って、ベクトル・レジスタＶＲ２の要素番号１にはＢ（２）が格納され、要素番号２にはＢ（３）が格納され・・・要素番号（Ｉ）にはＢ（Ｉ＋１）が格納され・・・要素番号１００にはＢ（１０１）が格納される。これにより主記憶１から要素Ｂ（２）〜Ｂ（１０１）をＶＲ２に格納した場合と同じ結果が得られる。
【００３７】
（ステップ３）ベクトル・レジスタＶＲ１とＶＲ２をベクトル加算（Ｉ＝１〜１００）し、演算結果をベクトル・レジスタＶＲ３に格納する。
【００３８】
従って、コンパイラが作成した命令をスカラ部３が主記憶１から取り出し、これがベクトル命令であることが解読されると、これらの命令はベクトル命令制御部１３に送出される。
【００３９】
まず前記ステップ１を実行するベクトルロードがベクトル命令制御部１３からベクトル・アクセス・パイプ１１に送出され、ベクトル・アクセス・パイプ１１が主記憶１から配列Ｂの要素Ｂ（Ｉ）、（Ｉ＝１〜１０１）を読み出してベクトル・レジスタＶＲ１に格納する。このとき格納される対象はＢ（１）〜Ｂ（１０１）の１０１要素であり、ベクトル・レジスタＶＲ１（１）〜ＶＲ１（１０１）に格納される。
【００４０】
次にベクトル命令制御部１３は、前記ステップ２を実行するベクトルスライド命令をベクトル演算器１２に送出する。これによりベクトル演算器１２は、ベクトル・レジスタＶＲ１から要素Ｂ（１）〜Ｂ（１０１）を読み出し、その要素番号が１つ減る方向にずらしてベクトル・レジスタＶＲ２に格納する。
【００４１】
これにより、ベクトル・レジスタＶＲ１の要素番号２に格納されていた要素Ｂ（２）はベクトル・レジスタＶＲ２の要素番号１に格納され、ＶＲ１の要素番号３に格納されていた要素Ｂ（３）はＶＲ２の要素番号２に格納され、ＶＲ１の要素番号１０１に格納されていた要素Ｂ（１０１）はＶＲ２の要素番号１００に格納される。即ち、ＶＲ１の要素番号Ｉに格納されていた要素Ｂ（Ｉ）は、ＶＲ２の要素番号（Ｉ−１）に格納される。かくしてＶＲ１に格納された各データは１要素分上位方向にシフトしてＶＲ２に格納される。
【００４２】
このようにして、図１に示す如く、ＶＲ１の要素Ｂ（２）〜Ｂ（１０１）がＶＲ２にスライドされることになる。なお、ＶＲ１の要素番号１に格納されていた要素Ｂ（１）は、最初にＶＲ１から読み出されたとき、そのスライド先がＶＲ２には存在しないので、この読み出された要素Ｂ（１）は捨てられることになるが、ＶＲ１にはそのまま要素Ｂ（１）が残っているので、演算には何等の影響もない。
【００４３】
引き続き、前記ステップ３を実行する命令がベクトル命令制御部１３からベクトル演算器１２に送出される。これによりベクトル・レジスタＶＲ１とＶＲ２が読み出されてベクトル加算が実行され、その演算結果がベクトル・レジスタＶＲ３に格納される。
【００４４】
それからベクトル命令制御部１３は、ベクトル・アクセス・パイプ１１に対し演算結果格納命令を送出する。これによりベクトル・アクセス・パイプ１１は、ベクトル・レジスタＶＲ３に格納された演算結果を主記憶１上の配列Ａ（Ｉ）に格納し、これにより前記ＤＯループ１０のＤＯループの処理が終了する。
【００４５】
このようにして、本発明の関連技術では、図５に説明した従来例ではベクトルロード命令が２回発行されたのに比べて、その実行に長時間を必要とするベクトルロード命令の回数が１回ですみ、１回だけその回数を少なくすることができるため、オーバヘッドが小さく、高い性能を実現することができる。
【００４６】
図２に本発明の第１の実施の形態を説明する。図２において図１と同記号は同一部分を示し、１４はベクトルスライド部である。
【００４７】
ベクトルスライド部１４は、ベクトル命令制御部１３からの指示にもとづき、前記ステップ２等で説明したベクトルスライド処理を行うものである。このベクトルスライド部１４は、ベクトル演算器１２とは独立に、並行してベクトルスライド処理を実行することができる。
【００４８】
従って、ベクトル演算器１２で演算を行うことと並行してベクトルスライドを実行することができるので、ベクトル演算を高性能に行うことができる。
【００４９】
本発明の第２の実施の形態を図３にもとづき説明する。
ベクトル処理装置は、一般に複数のベクトル・レジスタ部と、複数のベクトル演算部で構成される。図３において、他図と同一記号は同一部を示し、ベクトル処理装置は、複数のベクトル・レジスタ・演算器ブロック（以下ブロックという）２１、２２、２３、２４で構成される。これらの各ブロックは同一構成であり、ブロック２２に代表的に例示されるように、ベクトル・レジスタ部１０とベクトル演算器１２を具備している。
【００５０】
ベクトル・レジスタ部１０は、図１に示す如く、複数のベクトル・レジスタＶＲ１、ＶＲ２・・・を具備し、ベクトル演算器１２は、ベクトル加算器１２−１、ベクトル乗算器１２−２、ベクトル除算器１２−３、全ブロックのベクトル・レジスタの要素の総和を求める総和演算器１２−４、前記の如きスライド処理を行うスライド機構１２−５等を具備している。
【００５１】
各ブロック２２に例示されるように、ブロック毎にベクトル・レジスタ部１０とベクトル演算器１２とは接続され、通常のベクトル演算においては、各ブロック毎に並行して独立に動作可能であり、ブロック間のデータ移動は通常発生しない。
【００５２】
ところでベクトル処理装置では、ベクトル総和演算等の各ブロックの要素間の演算を必要とする一部の特殊な命令を実行するときに、ブロック間をデータ移動するための、総和演算用データバスと称される特別なデータバスＢが設けられている。
【００５３】
またベクトル・レジスタの要素番号も、例えば１〜１００はブロック２１に、１０１〜２００はブロック２２というように、同一ブロック内に連続して配置すると、特定のブロックのみ動作状態となって負荷が集中する欠点が存在するのでブロック２１、２２、２３、２４に要素番号１、２、３、４を配置するという、いわゆるインタリーブ方式が採用される。
【００５４】
したがって前記スライド処理を行うとき、要素がブロック間にデータ移動することが発生する。このスライド処理専用のバスを設けることはそれだけピン数が多くなるので好ましいことではない。本発明では、このため、ベクトルスライド命令の場合も、総和演算等のためのデータバスＢを共用するように構成したので、ブロック間のデータバスのサイズを増加することなく、ベクトルスライド命令を実現するハードウエアを構成することが可能となった。
【００５５】
本発明の第３の実施の形態を図４により説明する。前記の如くベクトルスライド命令により、ベクトル・レジスタＶＲ１の要素が読み出されて要素番号が、例えば１つ減少する方向にスライドされる。即ちＶＲ１（Ｉ＋１）の要素をＶＲ２（Ｉ）に書き込む。第３の実施の形態では、マスクレジスタＭＲ３を設け、このとき対応するマスクレジスタＭＲ３（Ｉ）の値が例えば「１」の要素にはスライドした書き込みを行うが、「０」の要素には書き込みを行わない。したがって書き込みの行われなかった要素番号には、旧データがそのまま保持されるものとなる。
このようにして、スライド処理のときにマスク制御を行うことが可能となる。
【００５６】
本発明の第４の実施の形態を説明する。第４の実施の形態では、ベクトル・アクセス・パイプを使用せず、ベクトル・アクセス・パイプとは独立に並行してベクトルスライド処理を実行するものである。これにより主記憶に対するメモリアクセスを行いながらスライド処理を行うことができ、高速ベクトル処理が可能となる。
【００５７】
前記説明ではスライド量を要素番号が１つ減る方向にした場合について説明したが、本発明は勿論これに限定されるものではなく、増える方向にスライドしてもよく、スライド量も２以上にすることができる。
【００５８】
【発明の効果】
本発明によれば主記憶からの複数回のデータの読み出しを一回のベクトルロード命令の実行により行うことができるので、従来に比較してその実行に時間がかゝるベクトルロード命令の回数を減少することができ、ベクトルロードのオーバヘッドが削減され高速なベクトル処理が実現できる。
【図面の簡単な説明】
【図１】本発明の関連技術である。
【図２】本発明の第１の実施の形態である。
【図３】本発明の第２の実施の形態である。
【図４】本発明の第３の実施の形態である。
【図５】従来例である。
【符号の説明】
１  主記憶
２  ベクトル部
３  スカラ部
１０  ベクトル・レジスタ部
１１  ベクトル・アクセス・パイプ
１２  ベクトル演算器
１３  ベクトル命令制御部
【図１】
0003771682.tif 000002
【図２】
0003771682.tif 000003
【図３】
0003771682.tif 000004
【図４】
0003771682.tif 000005
【図５】
0003771682.tif 000006