JPS63118875A - Array processor - Google Patents

Array processor

Info

Publication number
JPS63118875A
JPS63118875A JP26637487A JP26637487A JPS63118875A JP S63118875 A JPS63118875 A JP S63118875A JP 26637487 A JP26637487 A JP 26637487A JP 26637487 A JP26637487 A JP 26637487A JP S63118875 A JPS63118875 A JP S63118875A
Authority
JP
Japan
Prior art keywords
vector
instruction
array
data
scalar
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP26637487A
Other languages
Japanese (ja)
Inventor
Giichi Tanaka
義一 田中
Shunichi Torii
鳥井 俊一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP26637487A priority Critical patent/JPS63118875A/en
Publication of JPS63118875A publication Critical patent/JPS63118875A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

Abstract

PURPOSE:To obtain an array processor of simple constitution that can carry out double DO loop processing at a high speed, by applying the pipeline control to carry out each inside loop processing of the double DO loop processing and at the same time carrying out these DO loop processings in parallel with each other. CONSTITUTION:A central vector processing unit VPC fetches and decodes a vector instruction or an array instruction. Then the vector instruction if decoded is carried out. While the vector processing units PE1-PEM are started when the array instruction is decoded. Each of these units PE1-PEM decodes the instruction fetched by the unit VPC when it is started by the VPC (in array instruction mode) and carries out an arithmetic operation designated by an instruction to a single vector array of the array data designated by the decoded instruction and to undergo an arithmetic operation.

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はアレイ演算が高速で実行可能なアレイ処理向き
ディジタル形電子計算機(以下これをアレイプロセッサ
と呼ぶ)に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Application of the Invention] The present invention relates to a digital electronic computer suitable for array processing (hereinafter referred to as an array processor) capable of executing array operations at high speed.

〔背景技術〕[Background technology]

科学技術計算においては、第1図のフォートランプログ
ラムで示される二次元のアレイ計算の高速化が要求され
ている。以下、一次元、二次元のアレイを簡単化のため
それぞれベクトル、アレイと呼ぶ。アレイ計算の高速化
のためには現在まで次の2つのアプローチがとられてい
る。第1は、多数のプロセッサを二次元に並列配置し、
多数のアレイ要素に対して同時に並列実行するアレイプ
ロセッサ方式である。このアプローチは、プロセッサ数
を増すことによって、原理的にはその数に比例した性能
向上が期待できる。しかし、処理すべきアレイ要素数が
設置プロセッサより少ない場合など、プロセッサの可動
率が低く、経済的に引き合わない。第2は、ベクトルレ
ジスタとパイプライン制御の演算器を用いて、ベクトル
処理を高速化するベクトルプロセッサ方式である。
In scientific and technical calculations, there is a demand for faster two-dimensional array calculations as shown in the Fortran program shown in FIG. Hereinafter, one-dimensional and two-dimensional arrays will be referred to as vectors and arrays, respectively, for simplicity. To date, the following two approaches have been taken to speed up array calculations. The first is to arrange many processors in parallel in two dimensions,
This is an array processor method that simultaneously executes parallel processing on a large number of array elements. With this approach, by increasing the number of processors, performance can be expected to improve in principle in proportion to the number of processors. However, in cases where the number of array elements to be processed is smaller than the number of installed processors, the utilization rate of the processors is low and it is not economically advantageous. The second method is a vector processor method that uses vector registers and pipeline-controlled arithmetic units to speed up vector processing.

その代表的なものは米国特許4,128,880に記載
されているものである。ベクトルプロセッサでは一重の
Doループに関する処理を高速化できるが、二重ループ
処理の高速化には限界がある。
A representative example thereof is described in US Pat. No. 4,128,880. A vector processor can speed up processing related to a single Do loop, but there is a limit to speeding up double loop processing.

第1図のプログラムは通常第2図のように一重のループ
処理A1〜AMに分けられ、これらのループ処理A1〜
AMを時系列的に実行せざるを得ないからである。
The program in Figure 1 is usually divided into single loop processing A1 to AM as shown in Figure 2, and these loop processing A1 to
This is because AM has no choice but to be executed in chronological order.

〔発明の目的〕[Purpose of the invention]

本発明は二重のDoループ処理の内側のループ処理の各
々をパイプライン制御で実行し、かつ。
The present invention executes each of the inner loop processes of the double Do loop process under pipeline control, and.

これらのDoループ処理を互いに並列に実行することに
より、二重Doループ処理を高速に実行できる。構成の
簡単なアレープロセッサを提供することを目的とする。
By executing these Do loop processes in parallel, the double Do loop process can be executed at high speed. The purpose of the present invention is to provide an array processor with a simple configuration.

〔発明の概要〕[Summary of the invention]

このため、本発明では、複数のベクトルレジスタと、パ
イプライン制御の演算器とを有し、ベクトル処理を要求
する命令(ベクトル命令)を実行する中央ベクトル処理
ユニットと、複数のベクトルレジスタとパイプライン制
御の演算器とを有し。
For this reason, the present invention provides a central vector processing unit that has a plurality of vector registers and a pipeline-controlled arithmetic unit and executes an instruction (vector instruction) that requests vector processing, and a central vector processing unit that has a plurality of vector registers and a pipeline-controlled arithmetic unit; It has a control calculator.

アレイ処理を要求する命令(アレイ命令)を実行するた
めの、複数のベクトル処理ユニットとしてアレイプロセ
ッサが構成される。中央ベクトル処理ユニットではベク
トル命令又はアレイ命令をフェッチして解読し、解読し
た命令がベクトル命令のときにはその命令を実行し、解
読した命令がアレイ命令のときには、これらのベクトル
処理ユニットを起動する。各ベクトル処理ユニットでは
中央ベクトル処理ユニットにより起動された時(アレイ
命令の時)中央ベクトル処理ユニットによりフェッチさ
れた命令を解読し、その命令で指定される演算の対象と
なるアレイデータの一つのベクトルデータに対して命令
で指定される演算を実行する。アレイ命令で指定される
演算結果がベクトルデータのときには、各ベクトル処理
ユニットではこの結果ベクトルの一つの要素を算出し、
それを内蔵のスカラレジスタに格納するとともに、中央
ベクトル処理ユニット内のベクトルレジスタに格納する
ために中央ベクトル処理ユニットに送出する。アレイ命
令で指定される演算結果がアレイデータのときには、各
ベクトルと処理ユニットではこの結果アレイデータの一
つのベクトルデータを算出し、それを内蔵のベクトルレ
ジスタに格納する。
An array processor is configured as a plurality of vector processing units for executing instructions that require array processing (array instructions). The central vector processing unit fetches and decodes vector instructions or array instructions, executes the decoded instruction when it is a vector instruction, and activates these vector processing units when the decoded instruction is an array instruction. Each vector processing unit, when activated by the central vector processing unit (in the case of an array instruction), decodes the instruction fetched by the central vector processing unit and generates one vector of array data to be subjected to the operation specified by the instruction. Performs the operation specified by the instruction on the data. When the operation result specified by the array instruction is vector data, each vector processing unit calculates one element of this result vector,
It is stored in an internal scalar register and sent to the central vector processing unit for storage in a vector register within the central vector processing unit. When the operation result specified by the array instruction is array data, each vector and processing unit calculates one vector data of the resulting array data and stores it in a built-in vector register.

〔発明の実施例〕[Embodiments of the invention]

第3図に示すように、本発明によるアレイプロセッサは
、スカラ処理ユニットSP、中央ベクトル処理ユニット
VPC,M台のベクトル処理ユニットPE工〜PEM、
これらに共通に設けられた主記憶装置(MS)C51,
主記憶制御ユニット(SCU)C52を有する。主記憶
装置C51には、スカラ命令列とベクトル命令、すなわ
ち、アレイ処理は要求せず、ベクトル処理を要求する命
令およびアレイ命令、すなわちアレイ処理を要求する命
令、からなるベクトル・アレイ命令列が区分して記憶さ
れ、それ以外にスカラ、ベクトルとアレイデータが記憶
されていて、これら1士主記憶制御ユニットC52によ
りアクセスされる。以下では、ベクトル命令、アレイ命
令のいずれをも単にベクトル・アレイ命令と呼ぶことが
ある。
As shown in FIG. 3, the array processor according to the present invention includes a scalar processing unit SP, a central vector processing unit VPC, M vector processing units PE to PEM,
Main memory device (MS) C51 provided in common to these,
It has a main storage control unit (SCU) C52. The main memory C51 is divided into a vector array instruction string consisting of a scalar instruction string, a vector instruction, that is, an instruction that does not request array processing but requests vector processing, and an array instruction, that is, an instruction that requests array processing. In addition, scalar, vector, and array data are stored and accessed by the main storage control unit C52. Hereinafter, both vector instructions and array instructions may be simply referred to as vector array instructions.

スカラ処理ユニットSPは、スカラ命令レジスタ(SI
R)MS1.汎用レジスタ(G R)MS2、スカラ演
算器C53とこれらを制御する制御部SC○を有し、こ
れらにより主記憶装置C51内のスカラ命令列を実行す
る。このスカラ命令列には、一般的なスカラ命令、たと
えばIBM社発行のマニュアルr S ystem/ 
370Principles  of  0perat
ionJ   (G C−22−7000)に記載され
ている命令が含まれる。スカラ処理ユニットSPは、こ
れらの命令により汎用レジスタM52または主記憶装置
C5l内のスカラデータについてのスカラ演算を行い、
その結果を、汎用レジスタM52または主記憶装置C5
1に格納する。さらにスカラ処理ユニットSPは、これ
らのスカラ命令以外に、中央ベクトル処理ユニットvP
Cおよびベクトル処理ユニットPE1〜PEMが動作す
るに必要なデータを汎用レジスタM52から読出し、中
央ベクトル処理ユニット■PCへ線37を通して与える
ためのス゛カラ命令および中央ベクトル処理ユニットv
Pcの起動を指示するスカラ命令を実行する(詳細後述
)。
The scalar processing unit SP has a scalar instruction register (SI
R) MS1. It has a general-purpose register (GR) MS2, a scalar arithmetic unit C53, and a control unit SC○ that controls these, and executes a scalar instruction string in the main memory C51. This scalar instruction string includes general scalar instructions, such as the manual r system/
370Principles of 0perat
ionJ (GC-22-7000). The scalar processing unit SP performs a scalar operation on the scalar data in the general-purpose register M52 or the main memory C5l according to these instructions,
The result is stored in general-purpose register M52 or main memory C5.
Store in 1. In addition to these scalar instructions, the scalar processing unit SP also has a central vector processing unit vP.
A scalar instruction and a central vector processing unit v for reading data necessary for the operation of C and vector processing units PE1 to PEM from a general-purpose register M52 and providing it to the central vector processing unit PC through a line 37.
Executes a scalar instruction that instructs PC startup (details will be described later).

中央ベクトル処理ユニット■PCはスカラ処理ユニット
SPにより起動されて、ベクトルアレイ命令列を主記憶
装置C51よりフェッチし、フェッチされた命令がベク
トル命令のときはこれを実行し、フェッチされた命令が
アレイ命令のときには、ベクトル処理ユニットPE1〜
PEMを起動する。さらに中央ベクトル処理ユニットv
Pcはベクトル処理ユニットPE1〜PEMでのアレイ
処理に必要なベクトルデータをベクトル処理により求め
線44を介してこれらのユニットPE1〜PEMにセッ
トアツプする。
The central vector processing unit PC is activated by the scalar processing unit SP, fetches a vector array instruction sequence from the main memory C51, executes it when the fetched instruction is a vector instruction, and stores the fetched instruction in the array. In the case of an instruction, vector processing units PE1 to
Start PEM. Furthermore, the central vector processing unit v
Pc sets up vector data necessary for array processing in the vector processing units PE1 to PEM via the search line 44 in these units PE1 to PEM by vector processing.

ベクトル処理ユニットPE1〜PEMは組合さって、一
つのアレイ命令を実行するもので、各ベクトル処理ユニ
ットPE、は、あるアレイ命令で指定されるアレイデー
タの一つの列ベクトル又は行ベクトルに対してそのアレ
イ命令で指定される演算を他のベクトル処理ユニットP
E、と並列に実行する。
The vector processing units PE1 to PEM are combined to execute one array instruction, and each vector processing unit PE performs one column vector or one row vector of array data specified by a certain array instruction. The operation specified by the array instruction is executed by another vector processing unit P.
Execute in parallel with E.

本実施例では、ベクトル処理ユニットPE、〜PEMは
演算の結果がアレイデータ又はベクトルデータとなるア
レイ命令のみを実行し、演算の結果がスカラーデータと
なるアレイ命令は実行しないように構成されている。こ
の結果、演算の結果がスカラーデータとなるアレイ処理
は、演算の結果がベクトルデータとなるアレイ命令と、
この結果ベクトルを用いてスカラーデータを得るための
ベクトル命令により実行される。これらのアレイ命令と
ベクトル命令はそれぞれベクトル処理ユニットPEユ〜
PEMと中央ベクトル処理ユニットvPCにより実行さ
れる。このために、中央ベクトル処理ユニットvPCが
ベクトル処理ユニットPE1〜PEMでのアレイ処理の
結果ベクトルを利用するために、ベクトル処理ユニット
PE1〜PEMから演算結果ベクトルを線471〜47
Mを介して受取るように構成されている。
In this embodiment, the vector processing units PE, ~PEM are configured to execute only array instructions whose operation result is array data or vector data, and not to execute array instructions whose operation result is scalar data. . As a result, array processing in which the result of an operation is scalar data is different from an array instruction in which the result of an operation is vector data.
This result vector is used to execute a vector instruction to obtain scalar data. These array instructions and vector instructions are processed by the vector processing unit PE.
It is implemented by PEM and central vector processing unit vPC. For this purpose, in order for the central vector processing unit vPC to utilize the result vectors of the array processing in the vector processing units PE1 to PEM, the calculation result vectors are transferred from the vector processing units PE1 to PEM to the lines 471 to 471.
It is configured to receive via M.

さらに、アレイ処理の内、アレイデータとスカラデータ
とを用いるアレイ処理はベクトル処理ユニットPE1〜
PEMでは実行されない、このようなアレイ処理を実行
するときには、中央ベクトル処理ユニットVPCにより
、このスカラデータからその同じスカラデータ番要素と
するベクトルデータを作るベクトル命令を実行し、この
ベクトルデータをベクトル処理ユニットPE1〜PEM
に転送し、それらにおいてアレイデータとこのベクトル
データとの演算を指令するアレイ命令が実行される。こ
のため、中央ベクトル処理ユニットvPCはベクトル演
算により得られたベクトルデータをベクトル処理ユニッ
トPE1〜PEMに線44を介して転送するように構成
されている。
Furthermore, among array processing, array processing using array data and scalar data is performed by vector processing units PE1 to
When performing such array processing, which is not performed by PEM, the central vector processing unit VPC executes a vector instruction that creates vector data from this scalar data as an element of the same scalar data number, and then performs vector processing on this vector data. Unit PE1~PEM
An array instruction is executed that directs an operation on the array data and this vector data. For this purpose, the central vector processing unit vPC is configured to transfer the vector data obtained by the vector operations to the vector processing units PE1 to PEM via the line 44.

本実施例では、スカラ処理ユニットSPは、スカラ命令
、スカラデータのフェッチあるいはスカラデータの主記
憶装置C51への格納を行うために、主記憶制御装置C
52にアクセス要求を出す。
In this embodiment, the scalar processing unit SP uses the main memory control device C51 to fetch scalar instructions, scalar data, or store scalar data in the main memory device C51.
52 to issue an access request.

また、中央ベクトル処理ユニットvPCはベクトル・ア
レイ命令、ベクトルデータのフェッチあるいはベクトル
データの主記憶装置C51への格納を行うために、主記
憶制御装置C52にアクセス要求を出す。一方、ベクト
ル処理ユニットPE1〜PEMはそれぞれアレイデータ
内の一つの行又は列ベクトルをフェッチ又はストアする
ためのアクセス要求を主記憶制御装置C52に出す。
The central vector processing unit vPC also issues an access request to the main memory controller C52 in order to perform a vector array command, fetch vector data, or store vector data in the main memory C51. On the other hand, each of the vector processing units PE1 to PEM issues an access request to the main memory controller C52 to fetch or store one row or column vector in the array data.

中央ベクトル処理ユニットvPCからの命令フェッチ要
求に基づきフェッチされたベクトル・アレイ命令は線6
3を介して中央ベクトル処理ユニットvPCとベクトル
処理ユニットPE工〜PEMにも入力されるようになっ
ており、このフェッチされた命令がアレイ命令のときに
のみベクトル処理ユニットPE1〜PEMに取り込まれ
るようになっている(詳細後述)。
Vector array instructions fetched based on an instruction fetch request from the central vector processing unit vPC are shown on line 6.
3, it is also input to the central vector processing unit vPC and vector processing units PE to PEM, and this fetched instruction is taken into the vector processing units PE1 to PEM only when it is an array instruction. (Details will be explained later).

主記憶制御ユニットC52は、スカラ処理ユニッ1〜S
Pの制御部SCOからの、スカラデータまたはスカラ命
令の、読出し要求に応答して、スカラ処理ユニットSP
の制御部SCOから与えられるアドレスにて指定される
スカラデータまたはスカラ命令を主記憶装置C51から
読出し、スカラデータをスカラ処理ユニットSPの汎用
レジスタM52又はスカラ演算器C53へ送出し、スカ
ラ命令をスカラ命令レジスタM51に送出する。また、
主記憶制御ユニットC52は、スカラ処理ユニットSP
の制御部SCOからのデータの書込み要求に応答して、
そのユニットSPの制御部SCOから与えられるアドレ
スにて指定される主記憶装置C51内の位置に、そのユ
ニットSPの汎用レジスタM52又はスカラ演算器C5
3から与えられるスカラデータを格納する。
The main memory control unit C52 includes scalar processing units 1 to S.
In response to a read request for scalar data or a scalar instruction from the control unit SCO of P, the scalar processing unit SP
The scalar data or scalar instruction specified by the address given from the control unit SCO is read from the main memory C51, the scalar data is sent to the general-purpose register M52 of the scalar processing unit SP or the scalar arithmetic unit C53, and the scalar instruction is sent to the scalar processing unit SP. It is sent to the instruction register M51. Also,
The main memory control unit C52 includes a scalar processing unit SP
In response to a data write request from the control unit SCO,
The general-purpose register M52 or scalar arithmetic unit C5 of that unit SP is stored at the location in the main memory C51 specified by the address given from the control unit SCO of that unit SP.
Stores the scalar data given from 3.

同様に、主記憶制御ユニットC52は、中央ベクトル処
理ユニットvPCからの、データまたはベクトル・アレ
イ命令の、読出し要求側ご応答して、そのユニットVP
Cから線64または71でそれぞれ与えられるデータア
ドレス又は命令アドレスにて指定されるデータまたはベ
クトル・アレイ命令を主記憶袋[C51から読出し、そ
れぞれ線43または63を通して中央ベクトル処理ユニ
ットVPCへ送出する。線63上のベクトル・アレイ命
令はベクトル処理ユニットPE1〜PEMにも入力され
る。また、主記憶制御ユニットC52は、中央ベクトル
処理ユニットvPCからのデータの書込み要求に応答し
て、そのユニット■PCから線64で与よられるアドレ
スにて指定される主記憶装置C51内の位置に、線40
上のデータを格納する。
Similarly, main memory control unit C52, in response to a read request for data or vector array instructions from central vector processing unit vPC,
The data or vector array instructions specified by the data or instruction addresses provided from C on lines 64 or 71, respectively, are read from the main memory bag [C51 and sent on lines 43 or 63, respectively, to the central vector processing unit VPC. Vector array instructions on line 63 are also input to vector processing units PE1-PEM. In addition, in response to a data write request from the central vector processing unit vPC, the main memory control unit C52 writes data to the location in the main memory C51 specified by the address given by the line 64 from the unit PC. , line 40
Store the above data.

同様に、主記憶制御ユニットC52は、ベクトル処理ユ
ニットPEi (+=1〜M)からのデータ読出し要求
に応答して、アドレス線1301にて指定されるデータ
を主記憶装置C51から読出し、線119.を通してベ
クトル処理ユニットPE1へ送出する。また、主記憶制
御ユニットC52は、ベクトル処理ユニットPE工から
のデータの書込み要求に応答して、アドレス線1301
にて指定される主記憶装置C51内の位置に、線118
1上のデータを格納する。
Similarly, main memory control unit C52 reads data specified by address line 1301 from main memory device C51 in response to a data read request from vector processing unit PEi (+=1 to M), and .. The data is sent to the vector processing unit PE1 through the vector processing unit PE1. In addition, the main memory control unit C52 responds to a data write request from the vector processing unit PE, and the address line 1301
A line 118 is placed at the location in the main storage device C51 specified by
Store the data on 1.

このように、本発明による記憶制御ユニットC52は、
スカラ処理ユニットSP、中央ベクトル処理ユニットv
PC1およびM台のベクトル処理ユニットPE□〜PE
Mからのアクセス要求に。
In this way, the storage control unit C52 according to the present invention:
Scalar processing unit SP, central vector processing unit v
PC1 and M vector processing units PE□~PE
In response to an access request from M.

別々に応答するように構成されている。configured to respond separately.

中央ベクトル処理ユニットvPCは、第4図(a)に示
すように、ベクトル長MのL本のベクトルレジスタVC
I〜VCL、Z本のスカラレジスタSCI〜SCZを有
する。また、各々のベクトル処理ユニットPEiも、ベ
クトル長Nのに本のベクトルレジスタV、1〜VIK、
中央ベクトル処理ユニットvPCのベクトルレジスタの
本数と同数のL本のスカラレジスタS = l −8i
 Lを有する。これらのレジスタ群を第4図(b)〜(
d)のように再構成することにより、スカラデータを扱
う概念上のスカラレジスタSR、ベクトルデータを扱う
概念上のベクトルレジスタVR1そしてアレイデータを
扱う概念上のアレイレジスタARを規定する。すなわち
、中央ベクトル処理ユニットvPCのスカラレジスタS
CI〜SC2、ベクトルレジスタVC1〜VCLをそれ
ぞれ、そのまま概念上のスカラレジスタSRI〜SRZ
As shown in FIG. 4(a), the central vector processing unit vPC has L vector registers VC of vector length M.
It has I to VCL and Z scalar registers SCI to SCZ. Each vector processing unit PEi also has vector registers V, 1 to VIK, of vector length N,
L scalar registers S = l −8i, the same number as the vector registers of the central vector processing unit vPC
It has L. These register groups are shown in Figure 4(b) to (
By reconfiguring as in d), a conceptual scalar register SR that handles scalar data, a conceptual vector register VR1 that handles vector data, and a conceptual array register AR that handles array data are defined. That is, the scalar register S of the central vector processing unit vPC
CI to SC2 and vector registers VC1 to VCL are converted into conceptual scalar registers SRI to SRZ, respectively.
.

ベクトルレジスタVTjl〜VRLと規定する。また、
第4図(c)に示すように、各々のベクトル処理ユニッ
トPE1〜PEMの同一番号スカラレジスタ、例えばS
01〜SM1を順に並べたものも概念上の1番ベクトル
レジスタVRIと規定する。同様に2番〜L番の概念上
のベクトルレジスタVR2〜VRLが規定される。本実
施例では中央ベクトル処理ユニットVPCのベクトルレ
ジスタVCJと、ベクトル処理ユニットPE1〜PEM
のスカラレジスタ84〜SMのいずれによっても同一の
概念上のベクトルレジスタVR,,が規定されるため、
後に詳述するように、ベクトルレジスタvCjとスカラ
レジスタ5iJ−3,AJの内容が同一となるように制
御される。またベクトル処理ユニッl−P E 、〜P
EMの同一番号ベクトルレジスタ、例えばVil〜vM
lを第4図(d)のように順に並べたものを概念上の1
番アレイレジスタARIと規定する。同様に概念上のア
レイレジスタAR2〜ARKが規定される。
Vector registers VTjl to VRL are defined. Also,
As shown in FIG. 4(c), the same number scalar registers of each vector processing unit PE1 to PEM, for example S
The sequential arrangement of 01 to SM1 is also defined as the conceptual first vector register VRI. Similarly, conceptual vector registers VR2 to VRL numbered 2 to L are defined. In this embodiment, the vector register VCJ of the central vector processing unit VPC and the vector processing units PE1 to PEM
Since the same conceptual vector register VR, , is defined by all of the scalar registers 84 to SM,
As will be described in detail later, the contents of vector register vCj and scalar registers 5iJ-3 and AJ are controlled to be the same. Also, vector processing units l-P E , ~P
Same number vector register of EM, e.g. Vil~vM
1 arranged in order as shown in Figure 4(d) is conceptually 1.
The number array register ARI is defined as the number array register ARI. Similarly, conceptual array registers AR2-ARK are defined.

この結果、本実施例は概念上のレジスタとして、NXM
構成のアレイレジスタARをに本、ベクトル長Mのベク
トルレジスタVRを5本、そしてスカラレジスタをZ本
有する。
As a result, this embodiment uses NXM as a conceptual register.
It has two array registers AR, five vector registers VR of vector length M, and Z scalar registers.

本実施例では中央ベクトル処理ユニットvPCとベクト
ル処理ユニットPE、〜PEMがアクセスできる概念上
のレジスタは異なる。つまり、中央ベクトル処理ユニッ
ト■PCは5本の概念上のベクトルレジスタVRJ  
(j =1〜L)と2個の概念上のスカラレジスタSR
よ (i=1〜2)が扱え、概念上のに個のアレイレジ
スタARk (k=1〜K)を扱うことができない。ま
た、ベクトル処理ユニットPE、〜PEMは概念上のア
レイレジスタARk (k=1〜K)と概念上のベクト
ルレジスタVRa(j=l〜K)が扱え、スカラレジス
タSR1(i=1〜Z)を扱うことができない。このこ
とから、このシステムではアレイデータとスカラデータ
の演算はベクトル処理ユニットPE1〜PEMにより直
接実行できない。
In this embodiment, the conceptual registers that can be accessed by the central vector processing unit vPC and the vector processing units PE, -PEM are different. In other words, the central vector processing unit PC has five conceptual vector registers VRJ.
(j = 1 to L) and two conceptual scalar registers SR
(i=1 to 2), but cannot conceptually handle 2 array registers ARk (k=1 to K). In addition, vector processing units PE, ~PEM can handle conceptual array register ARk (k = 1 ~ K) and conceptual vector register VRa (j = l ~ K), and can handle scalar register SR1 (i = 1 ~ Z). can't handle it. For this reason, in this system, operations on array data and scalar data cannot be directly executed by the vector processing units PE1 to PEM.

概念上のスカラレジスタSR1の内容を概念上のベクト
ルレジスタVRjに転送したのち、その概念上のベクト
ルレジスタVR,jと概念上のアレイレジスタARkと
を用いて、ベクトル処理ユニットPE1〜PEMにより
実行される。つまり、概念上のベクトルレジスタVR,
は中央ベクトル処理ユニットvPCとベクトル処理ユニ
ットPE1〜PEMのインタフェースとなっている。
After transferring the contents of the conceptual scalar register SR1 to the conceptual vector register VRj, the processing is executed by the vector processing units PE1 to PEM using the conceptual vector register VR,j and the conceptual array register ARk. Ru. In other words, the conceptual vector register VR,
serves as an interface between the central vector processing unit vPC and the vector processing units PE1 to PEM.

逆にベクトル処理ユニットPE1〜PEMで実行された
アレイデータについ−ての演算の結果得られたベクトル
データを用いて他のスカラデータとのベクトル演算を行
う場合、中央ベクトル処理ユニットが概念上のベクトル
レジスタvRJにある上述の結果ベクトルデータを用い
てベクトル演算を行う。このため、概念上のベクトルレ
ジスタVRJを構成するベクトルレジスタvCJおよび
スカシレジスタ群S I J ””” S M jの内
容が同一になるように制御される。すなわちベクトル処
理ユニットPE1〜PEMがアレイデータについての演
算を行った結果ベタ1−ルデータが得られる場合、この
ベクトルデータはスカシレジスタ群S1.j〜SMJに
格納されるとともに、ベクトルレジスタV CJにも格
納される。逆に中央ベクトル処理ユニットvPCがベク
トルデータについての演算を行った結果、ベタ1〜ルデ
ータが得られる場合、このベクトルデータはベクトルレ
ジスタVCIにス1−アされるとともにスカシレジスタ
群Sx=〜SM□にもストアされる。なお、以下では簡
単化のために概念上のスカラレジスタ、ベクトルレジス
タ、アレイレジスタを単にスカラレジスタSR。
Conversely, when performing vector operations with other scalar data using vector data obtained as a result of operations on array data executed by the vector processing units PE1 to PEM, the central vector processing unit A vector operation is performed using the above-mentioned result vector data in register vRJ. For this reason, the contents of the vector register vCJ and the space register group S I J """ S M j that constitute the conceptual vector register VRJ are controlled to be the same. That is, the vector processing units PE1 to PEM process the array data. When vector data is obtained as a result of the calculation for , this vector data is stored in the square register group S1.j to SMJ and also stored in the vector register V CJ.On the contrary, the central vector processing unit When vPC performs an operation on vector data, when solid data is obtained, this vector data is stored in the vector register VCI and also in the blank register group Sx=~SM□. In the following, for the sake of simplicity, conceptual scalar registers, vector registers, and array registers will simply be referred to as scalar registers SR.

ベクトルレジスタVR,アレイレジスタARと呼ぶ。ま
た第1番目の概念上のスカラレジスタを単にスカラレジ
スタSR,と呼ぶ。概念上のベクトルレジスタ、アレイ
レジスタについても同様である。なお、以下では、スカ
ラレジスタSCI〜SCZ、S t 1〜S I L、
 S 2 l−82L、 7・・・=−8M1〜SML
をそれぞれまとめてスカラレジスタsc、s、、s2.
・・・・・・tsMと呼ぶことがある。同様にベクトル
レジスタVCI〜VCL。
They are called vector register VR and array register AR. Further, the first conceptual scalar register is simply referred to as a scalar register SR. The same holds true for conceptual vector registers and array registers. Note that in the following, scalar registers SCI to SCZ, S t 1 to S I L,
S 2 l-82L, 7...=-8M1~SML
are collectively stored in scalar registers sc, s, , s2 .
...It is sometimes called tsM. Similarly, vector registers VCI to VCL.

V11〜Vt K、V21−V2に、□・・・・・、V
MI〜vMKをそれぞれまとめてベクトルレジスタVC
,V t −V 2−・・・・・・eVMと呼ぶことが
ある。
V11-Vt K, V21-V2, □..., V
MI to vMK are collectively stored in vector register VC.
, V t -V 2-... Sometimes called eVM.

第5図は本発明のプレイプロセッサで用いるベクトル命
令、アレイ命令を記述する命令語のフォーマットを示す
。OPフィールドは命令コードを指定し、R1フィール
ドは原則として演算結果が格納されるレジスタの番号を
、R2,R3フィールドは原則として演算の入力となる
レジスタの番号を指定する。Aよ、■1ビットはR1フ
ィールドで指定されるレジスタがアレイレジスタAR/
ベクトルレジスタVR/スカラレジスタSRのいずれで
あるかの識別に用いられ、第6図に示すように、これら
が711178の時は、アレイレジスタARは reo
lrrの時はベクトルレジスタVRを、そして′″00
″の時はスカラレジスタSRを示す。
FIG. 5 shows the format of instruction words describing vector instructions and array instructions used in the play processor of the present invention. The OP field specifies the instruction code, the R1 field basically specifies the number of the register where the result of the operation is stored, and the R2 and R3 fields basically specify the number of the register that will be the input of the operation. A, ■1 bit indicates that the register specified by the R1 field is the array register AR/
It is used to identify whether it is a vector register VR or a scalar register SR, and as shown in FIG. 6, when these are 711178, the array register AR is reo.
When lrr, vector register VR, and '''00
'' indicates the scalar register SR.

同様にA2.■2ビットおよびA3.V3ビットはそれ
ぞれR2,R3フィールドが指定するレジスタの種類を
示す。このように、命令コードとレジスタ番号と、レジ
スタ種別を分離することにより、第7図のように同一命
令コードで、種々のレジスタに関する演算が統一的に指
定できる。
Similarly A2. ■2 bit and A3. The V3 bit indicates the type of register specified by the R2 and R3 fields, respectively. By separating the instruction code, register number, and register type in this way, operations regarding various registers can be specified uniformly with the same instruction code as shown in FIG.

第7図(a)〜(d)にはそれぞれの左側部分に記載さ
れたプログラム部分を実行するための本発明による命令
語を示す。ここでMtJLTは乗算に対する命令コード
を表わす。
FIGS. 7(a) to 7(d) show instruction words according to the invention for executing the program portions described in the respective left-hand portions. Here, MtJLT represents the instruction code for multiplication.

第7図(a)の場合には、アレイレジスタAR2,AR
3にそれぞれストアされたアレイデータB (I、J)
C(I、J)の積をアレイレジスタA(I、J)に格納
することにより、第7図(a)のプログラムが実行され
る。この積の実行は、アレイレジスタ番号のみを含む命
令語−つで指示できる。
In the case of FIG. 7(a), array registers AR2, AR
Array data B (I, J) respectively stored in 3
The program of FIG. 7(a) is executed by storing the product of C(I, J) in array register A(I, J). Execution of this product can be instructed by an instruction word containing only the array register number.

同様に第7図(b)のプログラムではアレイレジスタΔ
R2にあるデー’lr3 (■t J)  (r=1〜
N、J=1〜M)と、ベクトルレジスタVRLにあるベ
クトルデータX (J)の積A (I、J)をアレイレ
ジスタAR,1に格納する。この積を指定する命令語は
図示されているようにアレイレジスタ番号とベクトルレ
ジスタ番号を含む。
Similarly, in the program of FIG. 7(b), the array register Δ
Day'lr3 (■t J) in R2 (r=1~
The product A (I, J) of vector data X (J) in the vector register VRL is stored in the array register AR,1. The instruction word specifying this product includes an array register number and a vector register number as shown.

第7図(c)では、ベクトルレジスタVR2゜VR3に
それぞれあるベクトルデータY (J) 。
In FIG. 7(c), vector data Y (J) respectively located in vector registers VR2 and VR3.

Z(J)(J=1〜M)の積X (J)をベクトルレジ
スタVRIに格納することにより図のプログラムが実行
される。この積の実行を指定する命令語は図のようにベ
クトルレジスタ番号のみからなる。
The program shown in the figure is executed by storing the product X (J) of Z(J) (J=1 to M) in the vector register VRI. The instruction word specifying the execution of this product consists only of vector register numbers as shown in the figure.

第7図(d)ではベクトルレジスタVR2にあるベクト
ルデータY (J)とスカラレジスタSRIにあるスカ
ラデータSの積X (J)を求めて、ベクトルレジスタ
VRLに格納することにより図のプログラムが実行され
る。この積の実行を指定する命令語はスカラレジスタ番
号とベクトルレジスタ番号を含む。このように、アレイ
レジスタ間の乗算、アレイレジスタとベクトルレジスタ
間の乗算、ベクトルレジスタ間の乗算、ベクトルレジス
タとスカシレジスタ間の乗算であっても同じ命令コード
と命令フォーマットを用いることができる。利用するレ
ジスタの種類の相違は、A i rBiビットの値の違
いに反映されるのみである。
In FIG. 7(d), the program shown in the figure is executed by calculating the product X (J) of vector data Y (J) in vector register VR2 and scalar data S in scalar register SRI and storing it in vector register VRL. be done. The instruction word specifying the execution of this product includes a scalar register number and a vector register number. In this way, the same instruction code and instruction format can be used for multiplication between array registers, multiplication between array registers and vector registers, multiplication between vector registers, and multiplication between vector registers and spacing registers. The difference in the type of register used is only reflected in the difference in the value of the A i rBi bit.

命令のR1,R2,R3フィールドのいずれかでアレイ
レジスタを指定している命令を以下、アレイ命令と呼ぶ
。アレイレジスタの指定が1つもなく、ベクトルレジス
タの指定がある命令をベクトル命令と定義する。
An instruction that specifies an array register in any of the R1, R2, and R3 fields of the instruction is hereinafter referred to as an array instruction. An instruction in which no array register is specified and a vector register is specified is defined as a vector instruction.

また、アレイ命令による演算又は処理をそれぞれ以下で
はアレイ演算又はアレイ処理と呼ぶ。同様にベクトル命
令による演算又は処理をそれぞれベタ1−ル演算又はベ
クトル処理と呼ぶ。
In addition, an operation or process using an array instruction is hereinafter referred to as an array operation or an array process, respectively. Similarly, operations or processing using vector instructions are called vector operations or vector processing, respectively.

第8図、第9図はそれぞれ、中央ベクトル処理ユニット
vpc、ベクトル処理ユニッI−P E Lの詳細を示
す。以下、これらの装置の動作の詳細を第11図(a)
のアレイ演算のプログラムに基づき説明する。
8 and 9 show details of the central vector processing unit vpc and vector processing unit I-PEL, respectively. The details of the operation of these devices are shown below in Figure 11(a).
The explanation will be based on the array operation program.

今、仮定として、アレイデータA、B、Cはいずれも1
00X100の要素からなり各要素は8バイト長とする
。さらに、アレイデータAの各要素は主記憶装置C51
上に第13図に示すように、同一の制御変数Jを有する
要素が制御変数丁の大きさの順に、連続して記憶される
ものとする。アレイデータB、Cの各要素の配列も同様
と仮定する。
Now, as an assumption, array data A, B, and C are all 1
It consists of 00x100 elements, and each element is 8 bytes long. Furthermore, each element of array data A is stored in the main memory C51.
As shown in FIG. 13 above, it is assumed that elements having the same control variable J are successively stored in order of the size of the control variable J. It is assumed that the arrangement of each element of array data B and C is also similar.

第11図(a)のプログラムでは、制御変数Jを順次1
からMまで変化させ、かつJの各値に対して制御変数■
を1からJ+1まで順次変化させ、■とJとの各組合せ
に対して、アレイ要素B(I。
In the program shown in FIG. 11(a), the control variable J is sequentially set to 1.
to M, and for each value of J, the control variable ■
is sequentially changed from 1 to J+1, and for each combination of ■ and J, array element B(I.

J)とC(1,J)の和A (I、J)を求める。Find the sum A (I, J) of J) and C (1, J).

Mの値を指定するステートメントは簡m化のために図示
されていない。制御変数Jがある値のときに、制御変数
Iを変化して得られるデータすなわち、内側ループによ
り処理されるデータA(T。
Statements specifying the value of M are not shown for simplicity. When the control variable J has a certain value, the data obtained by changing the control variable I, that is, the data A(T) processed by the inner loop.

J)、l3(I、J)、C(1,J)は、一つのベクト
ルデータとなる。したがって、アレイデータ、たとえば
Aは、それぞれ異なるJの値に対応するベクトルデータ
の集合となる。
J), l3(I, J), and C(1, J) become one vector data. Therefore, array data, for example A, is a collection of vector data each corresponding to a different value of J.

本実施例では、ベクトル処理ユニットPE工は内側のル
ープで処理されるベクトルデータ、すなわち、制御変数
Jの値がiである一つの列ペクト/L/データA (1
,i)  (I=1〜i、+I)  をパイプライン的
にベクトル処理をし、各バク1−ル処理ユニットPE1
〜PEMでのベタ1〜ル処理は互いに並列に実行される
In this embodiment, the vector processing unit PE processes the vector data processed in the inner loop, that is, one column pect/L/data A (1
, i) (I = 1 to i, +I) in a pipeline manner, and each backup processing unit PE1
〜Betta 1〜 processing in PEM is executed in parallel with each other.

このようにして、アレイデータの処理が高速に行なわれ
る。この場合、各列ベクトルのベクトル長は異なるが本
実施例は、各ベクトル処理ユニットPElはそれぞれ必
要な任意のベクトル長についての演算が可能なように構
成されている。
In this way, processing of array data is performed at high speed. In this case, although the vector length of each column vector is different, in this embodiment, each vector processing unit PEl is configured to be able to perform calculations for any necessary vector length.

本実施例ではプログラムが要求するベクトル演算又はア
レイ演算を実行するのに必要なデータをIg!備するた
めに次のようなセットアツプ処理が必要となる。なお、
以下のセットアツプ処理の内、スカラ処理はスカラ処理
ユニットSPにて実行され、ベクトル処理は中央ベクト
ル処理ユニットvpcにて実行される。
In this embodiment, Ig! In order to prepare, the following setup processing is required. In addition,
Among the following setup processes, scalar processing is executed by the scalar processing unit SP, and vector processing is executed by the central vector processing unit vpc.

セットアツプ1;アレイ演算を示す二重Doループの制
御変数I、Jのとり得る値の個数を計算する。側倒Do
ループの制御変数Jのとり得る値の個数をベクトル長V
Lと呼ぶことにする。この計算はスカラ処理ユニットS
Pで行なう(スカラ処理)。今の例では、Jの範囲から
ベクトル長VLはMとなる。また、内側Doループの制
御変数Iのとり得る値の個数をベクトル長ALと呼ぶ。
Setup 1: Calculate the number of possible values of control variables I and J of a double Do loop indicating array operation. Do sideways
The number of possible values of the control variable J of the loop is defined as the vector length V
I'll call it L. This calculation is performed by the scalar processing unit S
Perform this using P (scalar processing). In the present example, the vector length VL is M from the range of J. Further, the number of possible values of the control variable I of the inner Do loop is called vector length AL.

べθトル長ALは一般に外側DOループの制御変数Jの
関数でベクトル量であるので、以下、AL(J)と表わ
す。このベクトル長AL (J)は各ベクi−ル処理ユ
ニットPE工が処理するべきベクトル長を示す。この計
算はスカラ処理およびベクトル処理によって行なわれる
。今の例では、■の範囲からベクトル長ΔL (J)は
、J=1.2゜・・・・・・1Mに対してそれぞれ2I
3.・・・9M+1となる。
Since the vector θ torque length AL is generally a function of the control variable J of the outer DO loop and is a vector quantity, it is hereinafter expressed as AL(J). This vector length AL (J) indicates the vector length to be processed by each vector processing unit PE. This calculation is performed by scalar processing and vector processing. In the present example, the vector length ΔL (J) from the range of ■ is 2I for each J=1.2°...1M
3. ...9M+1.

なお、実行すべきプログラムが一重ループからなるとき
、すなわち、ベクトル演算を必要とする場合は、この−
重Doループの制御変数の取りうる範囲を処理すべきベ
クトル長VLとして計算する(スカラ処理)。
Note that when the program to be executed consists of a single loop, that is, when vector operations are required, this -
The possible range of the control variable of the heavy Do loop is calculated as the vector length VL to be processed (scalar processing).

セットアツプ2:ベクトル又はアレイ処理をすべきベク
トル又はアレイデータの主記憶上の記憶位置の先頭アド
レスVADRを計算する(スカラ処理)。今の例ではア
レイデータA、B、Cの先頭アドレスとして、それぞれ
A(1,1)、B(1,1)、C(1,1)のアドレス
が求められる。
Setup 2: Calculate the start address VADR of the storage location in the main memory of vector or array data to be subjected to vector or array processing (scalar processing). In the present example, the addresses A(1,1), B(1,1), and C(1,1) are obtained as the start addresses of array data A, B, and C, respectively.

セットアツプ3ニアレイデータA、B、Cのそれぞれの
外側DOループの制御変数Jに関する隣接要素たとえば
A (I、j)とA (I、j+1)の間のアドレス増
分値INCVを計算する(スカラ処理)。今の例のアレ
イデータA、B、Cのいずれに関しても、制御変数Jに
関するアドレス増分値INCVは7L/イデータAが1
00X100のアレイであり、1語8バイトであるため
Setup 3 Calculate the address increment value INCV between adjacent elements such as A (I, j) and A (I, j+1) with respect to the control variable J of the outer DO loop of each of near array data A, B, C (scalar process). For any of the array data A, B, and C in the current example, the address increment value INCV regarding the control variable J is 7L/I data A is 1.
Because it is an array of 00x100 and one word is 8 bytes.

800となる。また、アレイデータの内側Doループの
制御変数■に関する隣接要素、たとえばA (i、J)
とA (i+1.J)の間のアドレスの増分値INCA
を制御変数Jの関数として計算する。
It becomes 800. Also, the adjacent elements regarding the control variable ■ of the inner Do loop of the array data, for example, A (i, J)
Incremental value INCA of address between and A (i+1.J)
is calculated as a function of the control variable J.

一般にはこの増分値INCA (J)はベクトルデータ
であるので、スカラ処理およびベクトル処理により求め
られる。今の例ではアレイデータA。
Since this increment value INCA (J) is generally vector data, it is obtained by scalar processing and vector processing. In this example, it is array data A.

B、Cに関しては制御変数■に関する隣接要素間の増分
値INCA (J)は、各要素が8バイ1−であるので
制御変数Jの値にかかわらず8となる。
Regarding B and C, the increment value INCA (J) between adjacent elements regarding the control variable ■ is 8 regardless of the value of the control variable J because each element is 8 by 1-.

なお、実行すべきプログラムがベクトル演算を必要とす
る一重Doループの場合は、DOループの制御変数によ
る隣接データ間のアドレスの増分値を計算し、これをI
NCVとする(スカラ処理)。
Note that if the program to be executed is a single Do loop that requires vector operations, the increment value of the address between adjacent data using the control variable of the DO loop is calculated, and this is
NCV (scalar processing).

セットアツプ4ニアレイデータA、B、Cのそれぞれに
ついての先頭アドレスVADRとアドレス増分値INC
Vより二重DOループの内側り。
Start address VADR and address increment value INC for each of set-up 4 near array data A, B, and C
Inside the double DO loop from V.

ループの制御変数Iを変数とするベクトルデータA (
I、J) 、B (I、JL、C(I、J)、(1=l
−J+1)の先頭要素のアドレスA A D RA(J
 )を計算する(ベクトル処理)。
Vector data A (
I, J), B (I, JL, C(I, J), (1=l
-J+1) address of the first element A A D RA(J
) (vector processing).

今の例ではアレイデータAの先頭アドレスAADRA(
J)(J= 1〜M)はA (1,1)。
In the current example, the start address of array data A is AADRA (
J) (J=1-M) is A (1,1).

A(1,2)・・・A(1,M)のアドレスとなる。A(1,2)...This is the address of A(1,M).

アレイデータB、Cについても同様である。なお、プロ
グラムが一重DOループからなるときには、そのDoル
ープで処理されるデータの先頭要素のアドレスA A 
D Rn (J ) 、 A A D Rc (J )
が求められる。
The same applies to array data B and C. Note that when a program consists of a single DO loop, the address A of the first element of the data processed in that Do loop is
D Rn (J), A A D Rc (J)
is required.

セットアツプ5:主記憶装置C51上にあるべクトル・
アレイ命令列の先頭命令アドレスの計算を行なう (ス
カラ処理)。
Setup 5: Vector files on main memory C51
Calculates the first instruction address of the array instruction string (scalar processing).

第11図(b)は、第11図(a)で示したプログラム
を実行するための命令列を書いたものである。ベクトル
・アレイ命令列v1〜Vllを中央ベクトル処理ユニッ
トvPCとベクトル処理ユニットPE1〜PEMにて開
始させるにあたり。
FIG. 11(b) shows an instruction sequence for executing the program shown in FIG. 11(a). In starting the vector array instruction sequence v1 to Vll in the central vector processing unit vPC and the vector processing units PE1 to PEM.

スカラ処理ユニットSPは、スカラ命令列S1およびス
カラ命令S2を行なう。
The scalar processing unit SP executes a scalar instruction sequence S1 and a scalar instruction S2.

(スカラ命令列St) 命令列S1は前述のセットアツプ処理のうちスカラ処理
と示した処理を実行する。スカラ処理ユニットSPは特
願昭56−42314号で示すスカラ処理ユニットを簡
単化したものを用いる。すなわち、上記出願では、一般
的なスカラ命令のほかに次の6つの命令が実行できる構
成をとっている。(1) 5tart Vector 
Processor (S V P )命令(2) S
et Vector Address RefXist
er(SVAR)命令(3) Set Vector 
AddressI ncrement Registe
r (S V A I R)命令(4) Set 5c
alar Register (S S R)命令(5
) Read 5calar Register (R
S R)命令(6) Te5t、 Vector Pr
ocessor (T V P )命令。   □本発
明のアレイプロセッサのスカラ処理ユニットSPでは、
このうちsvp命令、SSR命令。
(Scalar Instruction Sequence St) The instruction sequence S1 executes a process indicated as a scalar process among the aforementioned set-up processes. The scalar processing unit SP uses a simplified version of the scalar processing unit shown in Japanese Patent Application No. 56-42314. That is, the above application has a configuration in which the following six instructions can be executed in addition to general scalar instructions. (1) 5tart Vector
Processor (S V P ) instruction (2) S
et Vector Address RefXist
er (SVAR) instruction (3) Set Vector
AddressIcrement Register
r (SV A I R) instruction (4) Set 5c
alar Register (SSR) instruction (5
) Read 5calar Register (R
S R) Instruction (6) Te5t, Vector Pr
ocessor (T V P ) instruction. □In the scalar processing unit SP of the array processor of the present invention,
Among these, svp instruction and SSR instruction.

TVP命令を実行できる構成とする。すなわち。The configuration is such that it can execute TVP instructions. Namely.

上記出願のスカラ処理ユニットより、5VAR命令、5
VATR命令、R5R命令のデコードの結果がセットさ
れるフリップフロップおよびその出力線、そしてR8R
命令実行のためのデータ線を省いた構成とする。
From the scalar processing unit of the above application, 5 VAR instructions, 5
A flip-flop and its output line where the decoding results of the VATR and R5R instructions are set, and the R8R
The configuration does not include data lines for executing instructions.

命令列S1はセットアツプ処理としてベクトル・アレイ
命令の実行のために必要な前述のスカラデータを算出し
、これらのデータの内、ベクトル長VLと先頭命令アド
レス以外のデータを中央ベクトル処理ユニットvPCの
スカラレジスタScにセットする。
The instruction sequence S1 calculates the aforementioned scalar data necessary for executing the vector array instruction as a set-up process, and among these data, data other than the vector length VL and the first instruction address are sent to the central vector processing unit vPC. Set in scalar register Sc.

この処理のためには、通常のスカラ命令により必要なデ
ータを演算して汎用レジスタGR(第3図)に格納し、
SSR命令により、汎用レジスタGRのスカラデータを
スカラレジスタSCにセットする6 SSR命令がスカラ処理ユニッl−S Pでデコードさ
れると、中央ベクトル処理ユニット■PC(第8図)に
は線37から(選択された)汎用レジスタOR内のデー
タが、線35からこの命令により指定されたスカラレジ
スタSCのレジスタ番号が入力される。セレクタL24
.L25はこのときリセット状態にあるフリップフロッ
プ(以下FFと略す)F5の出力線36上の1101t
信号に対応し、線35.37上のレジスタ番号およびス
カラデータをそれぞれ選択する。スカラレジスタSCに
は線70を介してスカラ処理ユニッhSPから、SSR
命令をデコードして得られる書込み18号が与えられる
。マルチプレクサr、26はセレクタL24から出力さ
れるレジスタ番号に対応する一つのスカラレジスタSC
iに、セレクタL25から出力されるスカラデータを送
出する。
For this processing, the necessary data is calculated using a normal scalar instruction and stored in the general-purpose register GR (Figure 3).
The SSR instruction sets the scalar data in the general-purpose register GR to the scalar register SC.6 When the SSR instruction is decoded by the scalar processing unit l-SP, the central vector processing unit ■PC (Fig. 8) receives data from line 37. The data in the (selected) general-purpose register OR is input from line 35 to the register number of the scalar register SC specified by this instruction. Selector L24
.. L25 is 1101t on the output line 36 of the flip-flop (hereinafter abbreviated as FF) F5 which is in the reset state at this time.
Select the register number and scalar data on lines 35 and 37, respectively, corresponding to the signal. The scalar register SC is connected via line 70 from the scalar processing unit hSP to the SSR register SC.
Write No. 18 obtained by decoding the instruction is given. The multiplexer r, 26 is one scalar register SC corresponding to the register number output from the selector L24.
The scalar data output from selector L25 is sent to i.

こうして、SSR命令で指定されるスカラレジスタSC
8にスカラデータが書込まれる。なお、FF、F5は、
スカラ処理ユニットSPが動作中の時は”o” 、中央
ベクトル処理ユニットvPcまたはベクトル処理ユニッ
トPEiが動作中の時は111 IIがセットされてい
る・ 以上の処理によりスカラレジスタSCに次のスカラデー
タがセットすることができる。
Thus, the scalar register SC specified by the SSR instruction
Scalar data is written to 8. In addition, FF and F5 are
When the scalar processing unit SP is in operation, "o" is set, and when the central vector processing unit vPc or vector processing unit PEi is in operation, 111 II is set. The next scalar data is stored in the scalar register SC by the above processing. can be set.

スカラレジスタSC1にはアレイデータAの先頭アドレ
スVADR(A)が格納される。同様に、スカラレジス
タSC2にはアレイデータBの先頭アドレスVADR(
B) 、スカラレジスタSC3にはアレイデータCの先
頭アドレスVADR(C)、スカラレジスタSC4には
アレイデータへの制御変数Jに関するアドレス増分値I
 NCV(アレイデータB、Cのアドレス増分値t N
CVもこのプログラムでは同一の値)、SC5にはアレ
イデータAの制御変数Iに関するアドレス増分値INC
A(アレイデータB、CのI NCAもこの場合、同一
の値)、スカラレジスタSC6にはベクトル長ΔLの計
算のために必要なスカラデータ″′2″が格納される。
The start address VADR(A) of array data A is stored in the scalar register SC1. Similarly, the scalar register SC2 contains the start address VADR (
B) The scalar register SC3 contains the start address VADR(C) of the array data C, and the scalar register SC4 contains the address increment value I regarding the control variable J to the array data.
NCV (address increment value t N of array data B, C
CV is also the same value in this program), and SC5 contains the address increment value INC regarding control variable I of array data A.
A (INCA of array data B and C are also the same value in this case), scalar data "'2" necessary for calculating the vector length ΔL is stored in the scalar register SC6.

(命令S2)SSR命令列によるセットアツプが完了す
ると、中央ベクトル処理ユニットvPCに対し、ベクト
ル・アレイ命令の実行の開始を指示するためのSvP命
令が実行される。SVP命令が実行されると、この命令
で指定される汎用レジスタGRから、ベクトル長VLお
よびベクトル・アレイ命令列の先頭命令アドレスが読み
出され、それぞれ線60および37を介して中央バク1
−ル処理ユニットvPCに送出される。さらにスカラ処
理ユニットSPより線57にSvP命令デコード信号が
出力される。この信号に応答して、線60上のベクトル
長VLを、VLRレジスタM4にストアする。
(Instruction S2) When the setup using the SSR instruction sequence is completed, an SvP instruction is executed to instruct the central vector processing unit vPC to start executing the vector array instruction. When the SVP instruction is executed, the vector length VL and the first instruction address of the vector array instruction sequence are read from the general-purpose register GR specified by this instruction, and are sent to the central back 1 via lines 60 and 37, respectively.
- sent to the file processing unit vPC. Furthermore, an SvP instruction decode signal is output to a line 57 from the scalar processing unit SP. In response to this signal, vector length VL on line 60 is stored in VLR register M4.

さらに、セレクタL35は、線57上のSvP命令デコ
ード信号に応答して、線37にのせられているベクトル
・アレイ命令列の先頭命令アドレスを選択し、命令アド
レスレジスタ(IAR)M5にストアする。そして線5
7上の信号はFF。
Furthermore, in response to the SvP instruction decode signal on line 57, selector L35 selects the first instruction address of the vector array instruction string placed on line 37, and stores it in instruction address register (IAR) M5. and line 5
The signal above 7 is FF.

F5に入力され、これをセットし、そのセット出力が線
36を介してベクトル命令制御回路(1)C1に入力さ
れ、ベクトル・アレイ処理の実行開始を指示する。この
ようにして中央ベクトル処理ユニットvPCを起動後、
スカラ処理ユニットspは命令S3(第11図)を行な
う。(命令S3) この命令はTVP命令である。
The set output is input to the vector instruction control circuit (1) C1 via line 36 to instruct the start of execution of vector array processing. After starting the central vector processing unit vPC in this way,
The scalar processing unit sp executes instruction S3 (FIG. 11). (Instruction S3) This instruction is a TVP instruction.

TVP命令は中央バク1〜ル処理ユニットvPCおよび
ベクトル処理ユニットPE、の動作状態を、FF、F5
の出力信号をもとにテストし、条件コードを設定する命
令である。中央ベクトル処理ユニットvPCまたはベク
トル処理ユニットPE工が動作中のときには、条件コー
ドはlに、動作中でないときは0にセットされる。条件
コードは。
The TVP instruction changes the operating status of the central vector processing unit vPC and vector processing unit PE to FF, F5.
This is an instruction that tests based on the output signal of and sets a condition code. The condition code is set to 1 when the central vector processing unit vPC or vector processing unit PE is in operation, and 0 otherwise. The condition code is.

IBM社発行のマニュアルr S yStem/ 37
0PrincipleSof 0peration (
G C−22−7000)Jに記載されているような条
件付分岐命令に利用され、条件コードlのときは、TV
P命令と条件対分岐命令とが繰り返され、条件コードが
0となった時1次のスカラ命令の実行に移る。
Manual published by IBM SystemStem/37
0PrincipleSof 0operation (
G C-22-7000) J is used for conditional branch instructions, and when condition code l, TV
The P instruction and the conditional branch instruction are repeated, and when the condition code becomes 0, execution moves to the first scalar instruction.

次に中央ベクトル処理ユニットVPC(第8図)とベク
トル処理ユニットPE1(第9図)の動作を説明する。
Next, the operations of the central vector processing unit VPC (FIG. 8) and vector processing unit PE1 (FIG. 9) will be explained.

中央ベクトル処理ユニットvPCのベクトル命令制御回
路(1)C1が起動されると。
When the vector command control circuit (1) C1 of the central vector processing unit vPC is activated.

命令アドレスレジスタM5内にセットされた命令アドレ
ス線71を介して、主記憶制御ユニットC52に送られ
、このアドレスに基づき、主記憶装置C51内のベクト
ル・アレイ命令列の先頭の命令が読出され、主記憶制御
ユニツI” C52と線63を介して命令レジスタM1
にセットされる。
The instruction is sent to the main memory control unit C52 via the instruction address line 71 set in the instruction address register M5, and based on this address, the first instruction of the vector array instruction string in the main memory C51 is read out. Main memory control unit I" C52 and instruction register M1 via line 63.
is set to

第11図(a)の例では、最初のベクトル・アレイ命令
v1がレジスタMlにセットされる。
In the example of FIG. 11(a), the first vector array instruction v1 is set in register M1.

命令がレジスタM1にセットされると、そのフィールド
M71〜M73.M75.M76゜M78.M79にそ
れぞれあるの命令コードOP。
When an instruction is set in register M1, its fields M71-M73 . M75. M76°M78. Instruction code OP for each M79.

AI、Vlビット、A2.V2ビット、A3゜■3ビッ
トが線1を介してベクトル命令制御回路(1)、C1に
入力される。回路C1は、命令コードOPに基づきベク
トル演算器C3その他の回路を制御し、At、Vl、A
2.V2.A3゜■3ビットに基づき、スカラレジスタ
SC,ベクトルレジスタVCの読出、書込みを指示する
。なお書込みを行うべきスカラレジスタSC1又はベク
トルレジスタ■C1の番号は、後述するセレクタL24
およびアンドゲートL14からそれぞれ与えられる。
AI, Vl bit, A2. The V2 bit and the A3°3 bit are input via line 1 to the vector instruction control circuit (1), C1. The circuit C1 controls the vector arithmetic unit C3 and other circuits based on the instruction code OP, and controls At, Vl, A
2. V2. Based on the A3°■3 bits, reads and writes to the scalar register SC and vector register VC. Note that the number of the scalar register SC1 or vector register ■C1 to which writing is to be performed is determined by the selector L24, which will be described later.
and from AND gate L14, respectively.

また、コノ命令(7)At、Vx、A2.A3ビットは
さらにそれぞれ線2,3,4.6を介してORゲートL
4.ANDゲートL8.F9゜LIO,Lllからなる
回路に入力されその結果、ベクトル・アレイ命令が4つ
に分類され、対応するFF、Fl−F4の1つがセット
される。FF。
Also, Kono instruction (7) At, Vx, A2. The A3 bit is further connected to the OR gate L via lines 2, 3, and 4.6, respectively.
4. AND gate L8. The vector array instruction is input to a circuit consisting of F9°LIO and Lll, and as a result, the vector array instruction is classified into four, and one of the corresponding FFs, Fl-F4, is set. FF.

Flはアレイ命令で、かつ演算結果をアレイレジスタA
Rに書き込む命令すなわち、A1=1の命令によりセッ
トされ、FF、F2はアレイ命令で、かつ演算結果をベ
クトルレジスタVRに書き込む命令すなわち、八〇=0
でかつA2又はA3=1の命令によりセットされ、FF
、F3はベクトル命令で、かつ演算結果をベクトルレジ
スタVRに書き込む命令、すなわちA工” A 2 =
 A 3 = 01vt=iの命令によりセットされ、
FF、F4はベクトル命令で、かつ演算結果をスカラレ
ジスタSRに書き込む命令すなわち、A l =A 2
 =A 3=O,V、=Oの命令によりセットされる。
Fl is an array instruction, and the operation result is stored in array register A.
It is set by an instruction to write to R, that is, A1=1, FF and F2 are array instructions, and an instruction to write the operation result to vector register VR, that is, 80=0.
and set by an instruction with A2 or A3 = 1, and the FF
, F3 is a vector instruction and an instruction to write the operation result to the vector register VR, that is, "A" A 2 =
Set by the instruction A 3 = 01vt=i,
FF and F4 are vector instructions and instructions to write the operation result to the scalar register SR, that is, A l =A 2
=A 3=O, V, =O is set by the command.

また命令が指定するレジスタ番号を中央ベクトル処理ユ
ニットvPCの対応するレジスタに送出するために、命
令(7)V t  (M 73) 、 V 2(M76
) + V a  (M79) フィJL/ドとレジス
タ番号R1(M74)、R2(M77)、R3′(M2
O)がそれぞれ線3,5.7および線14゜15.16
を介してANDゲートL13.R14゜R15,R16
,R17,R18に入力される。
Further, in order to send the register number specified by the instruction to the corresponding register of the central vector processing unit vPC, the instruction (7) V t (M 73), V 2 (M 76
) + V a (M79) FiJL/do and register numbers R1 (M74), R2 (M77), R3' (M2
O) are lines 3, 5.7 and 14°15.16 respectively
via AND gate L13. R14゜R15, R16
, R17, and R18.

ANDゲートL13.R15,R17はそれぞれR1,
R2又はR3がスカラレジスタSCの番号のとき、すな
わち、Vl、V2又はv3が0のときにそれぞれ線22
.24又は26上にレジスタ番号R1,R2又はR3を
出力し、ANDゲートL14.R16,R18はそれぞ
れR1,R2又はR3がベクトルレジスタVCの番号の
とき、すなわち、それぞれVl、V2.V3が1のとき
に線23,25.27上にそれぞれレジスタ番号R1,
R2,R3を出力する。
AND gate L13. R15 and R17 are R1, respectively
When R2 or R3 is the number of the scalar register SC, that is, when Vl, V2 or v3 are 0, the line 22
.. 24 or 26 and outputs register number R1, R2 or R3 on AND gate L14. R16, R18 are respectively Vl, V2 . When V3 is 1, register numbers R1 and R1 are placed on lines 23 and 25.27, respectively.
Output R2 and R3.

以下、ベクトル・アレイ命令vt−vtt(第11図)
を説明する。命令v1はベクトル長AL(J)、命令v
2〜v5は7L/イデータA、B。
Below, vector array instruction vt-vtt (Figure 11)
Explain. Instruction v1 has vector length AL(J), instruction v
2-v5 are 7L/ideta A, B.

Cの各々の先頭アドレスA A D RA(J )〜A
ADRc (J)、命令v6は、アレイデータA。
Each start address of C A A D RA (J) ~ A
ADRc (J), instruction v6 is array data A.

B、Cに共通なアドレス増分値INCA (J)の計算
を行なう。以上はペクト・ル処理によるセットアツプで
ある。命令v7〜v8でアレイデータB。
An address increment value INCA (J) common to B and C is calculated. The above is the setup using Pectro processing. Array data B with instructions v7 to v8.

Cを主記憶装置C51から読み出し、命令v9でアレイ
データB、Cの加算を行ない、命令vlOで演算結果を
主記憶装置C51に書き込む。命令Vllでベクトル・
アレイ命令列が終了したことを知らせる。なお、命令V
l−V6が指定する、概念上のスカラレジスタSR1〜
6を実現するスカラレジスタSCI〜6には、すでに述
べたように、必要なスカラデータがセットされている。
C is read from the main memory device C51, array data B and C are added with an instruction v9, and the operation result is written into the main memory device C51 with an instruction vlO. Vector
Notifies that the array instruction sequence has ended. In addition, the instruction V
Conceptual scalar register SR1~ specified by l-V6
As already mentioned, the necessary scalar data is set in the scalar registers SCI to SCI-6 that implement 6.

また概念上のベクトルレジスタVR2を具体化するベク
トルレジスタVCの1〜M番のレジスタおよびベクトル
処理ユニットPE1〜PEMのスカラレジスタS12〜
SM2には0.■、・・・、M−1の定数ベクトルがあ
らかじめ格納されていると仮定する。(命令Vt) 命令Vlは概念上のベクトルレジスタVRIに書き込む
ベクトル命令であるため、FF、F3がセラ1−され、
線23,25.26上にはレジスタ番号# 1 u 、
  II 21+、  1157+がそれぞれセットさ
れる。
In addition, registers 1 to M of the vector register VC that embody the conceptual vector register VR2 and scalar registers S12 to M of the vector processing units PE1 to PEM
0 for SM2. (2) Assume that constant vectors of M-1, . . . , are stored in advance. (Instruction Vt) Since the instruction Vl is a vector instruction that writes to the conceptual vector register VRI, FF and F3 are set to 1-,
On lines 23, 25, and 26 are register numbers # 1 u,
II 21+ and 1157+ are respectively set.

セレクタL 27は線22,24.26から入力される
レジスタ番号によりそれぞれ指定されるスカラレジスタ
の内容をそれぞれセレクタL3゜1.32.R31に出
力するようにのなっている。
The selector L27 selects the contents of the scalar registers designated by the register numbers input from the lines 22, 24, 26, respectively, to the selectors L3, 1, 32, . It is designed to be output to R31.

今の場合、スカラレジスタSC6の内容゛′2″′がセ
レクタL31に出力される。セレクタL28は線23,
25.27から入力されるレジスタ番号によりそれぞれ
ま指定されるベクトルレジスタを選択して、それぞれセ
レクタL3.L32゜R31に接続するようになってい
る。今の場合。
In this case, the contents of the scalar register SC6 ``'2'''' are output to the selector L31.The selector L28 is connected to the line 23,
25. The vector registers specified by the register numbers input from 27 are selected respectively, and the respective selectors L3. It is designed to connect to L32°R31. In this case.

ベタ1−ルレジスタvC2が選択され、セレクタL32
に接続される。セレクタL31は、線5を介して入力さ
れる命令のビットv2が0か1かによリセレクタL27
又はR28の出力を選択する。
Beta register vC2 is selected and selector L32
connected to. Selector L31 selects reselector L27 depending on whether bit v2 of the instruction input via line 5 is 0 or 1.
Or select the output of R28.

セレクタ1,32は線7を介して入力される命令のビッ
トv3が0かlかによりセレクタL27又はL 28の
出力を選択する。今の場合、V2=1゜v3=0である
ノテ、−t!レクタL32.R31によりそれぞれセレ
クタL27.L28が選択される。したがって、スカラ
レジスタSC6とベクトルレジスタVC2の出力がベク
トル演算器C3に入力される。
Selectors 1 and 32 select the output of selector L27 or L28 depending on whether bit v3 of the instruction input via line 7 is 0 or 1. In this case, note that V2=1°v3=0, -t! Rector L32. R31 respectively selector L27. L28 is selected. Therefore, the outputs of the scalar register SC6 and vector register VC2 are input to the vector arithmetic unit C3.

命令VlはスカシレジスタSR6内にある定数2とベク
トルレジスタVR2内にある定数0〜M−1からなるベ
クトルとを加算して、定数2〜M+1からなるベクトル
をベクトルレジスタVRIに格納する命令である。この
結果ベクトルは、内側Doループで処理されるベクトル
長AL (J)を表わす。
The instruction Vl is an instruction to add the constant 2 in the square register SR6 and the vector consisting of the constants 0 to M-1 in the vector register VR2, and store the vector consisting of the constants 2 to M+1 in the vector register VRI. . This result vector represents the vector length AL (J) processed in the inner Do loop.

ベクトル命令制御回路(1)CIは、命令コードOPを
解読し、その実行を制御するもので。
The vector instruction control circuit (1) CI decodes the instruction code OP and controls its execution.

ADD命令の場合、ベクトルレジスタVCとスカラレジ
スタSCに一要素ずつ連続して読み出すことを指令し、
かつベクトル演算器C3を起動する。
In the case of the ADD instruction, it commands the vector register VC and scalar register SC to read one element at a time,
And the vector calculator C3 is activated.

ベクトル演算器C3は、スカラレジスタSC2から入力
された定数2とベクトルレジスタVC2から入力された
定数ベクトルの各要素について、公知のパイプラインモ
ードで加算を行い、定数2〜M+1からなるベクトルを
得る。ベクトル命令制御回路H)ctは、ベタ1−ル演
算の結果が線54上に出力され次第、命令で指定される
スカラレジスタSC又はベクトルレジスタVRにストア
指令を送出する。セレクタL24.L25は線36上の
FF、F5の出力が11171の時ベクトル命令で指定
された書き込みスカラレジスタ番号(線22)とデータ
C線54)をそれぞれ選択する。またセレクタL40は
、後述するLOAD命令の時にベクトル命令制御回路(
1)CIによって出される信号(線55)により、線7
7を選択し、それ以外の時は線54を選択する。従って
、ADD命令の場合には、セレクタL40により線上5
4の演算結果が選択され線44に読み出される。またセ
レクタL30は、上述の信号線55およびFF、F2が
セットされているか否かを示す線19上の信号により選
択される。FF、F2がセットされている場合は線45
の上のデータが、LOAD命令の時は線43上のデータ
が、他の場合は線44上のデータがそれぞれ選択される
。従って今の場合は、線44上の演算結果ベクトルが選
択され、線23上の書込みレジスタ番号のベクトルレジ
スタvC1にマルチプレクサL29により入力され演算
結果ベクトルの各要素が順次ストアされる。
Vector arithmetic unit C3 performs addition in a well-known pipeline mode for each element of constant 2 input from scalar register SC2 and constant vector input from vector register VC2, and obtains a vector consisting of constants 2 to M+1. The vector command control circuit H)ct sends a store command to the scalar register SC or vector register VR designated by the command as soon as the result of the beta 1-al operation is output on the line 54. Selector L24. L25 selects the write scalar register number (line 22) and data C line 54) designated by the vector instruction when the output of FF and F5 on line 36 is 11171, respectively. In addition, the selector L40 controls the vector instruction control circuit (
1) The signal issued by CI (line 55) causes line 7 to
7, otherwise select line 54. Therefore, in the case of the ADD instruction, selector L40 selects 5 on the line.
4 is selected and read out on line 44. Further, the selector L30 is selected by the signal on the line 19 indicating whether or not the signal line 55 and FF and F2 are set. If FF and F2 are set, line 45
When the data on the line 43 is a LOAD command, the data on the line 44 is selected, and in other cases, the data on the line 44 is selected. Therefore, in this case, the operation result vector on line 44 is selected and input to the vector register vC1 of the write register number on line 23 by multiplexer L29, and each element of the operation result vector is stored in sequence.

ベクトルデータのある要素iについての演算と、その前
の要素(i−1)についての演算結果の格納は、並列に
行なわれる。
The calculation for a certain element i of vector data and the storage of the calculation result for the previous element (i-1) are performed in parallel.

また、II”F、F3がセットされる命令では、同一の
概念上のベクトルレジスタVR2を実現するベクトルレ
ジスタVC2とベクトル処理ユニットPE1〜PEM内
のスカラレジスタS、2〜SM2の両方に同一演算結果
を書込む。このため、線44上の演算結果を各ベクトル
処理ユニットPE1〜PEMに順に送る必要がある。F
F。
Furthermore, in an instruction in which II"F and F3 are set, the same operation result is applied to both the vector register VC2 that realizes the same conceptual vector register VR2 and the scalar registers S and 2 to SM2 in the vector processing units PE1 to PEM. Therefore, it is necessary to send the calculation results on line 44 to each vector processing unit PE1 to PEM in order.
F.

F3がセットされると、その出力が線20を介して演算
結果送出信号回路C4に送出される。演算結果送出信号
回路C4は、カウンタ(図示せず)およびデコーダ(図
示せず)を有し、このカウンタはFF、F3の出力によ
りリセットされ、ベクトル演算器C3から線53に出力
される要素ごとの演算結果終了信号をカウントするもの
で、ベクトル処理ユニットPE1〜PEMのそれぞれに
結合されている信号線521〜52Mの内、このカウン
ト値に対応したものに送出信号を送る。またV L R
レジスタM4にセットされているベクトル長■Lを線5
0を介して読み出し、カウント値と比較し、演算終了判
定を行ない、演算終了の場合は線48を介してFF、F
3をリセットする。この間、演算結果はセレクタL40
を介して線44からベタ1〜ル処理ユニットPE1〜P
EMに送られる。また、FF、F3の出力は線20を介
してベクトル処理ユニットPE1〜PEMに送られ。
When F3 is set, its output is sent via line 20 to the calculation result sending signal circuit C4. The calculation result sending signal circuit C4 has a counter (not shown) and a decoder (not shown). , and sends a sending signal to one of the signal lines 521 to 52M connected to each of the vector processing units PE1 to PEM, which corresponds to this count value. Also V L R
Vector length ■L set in register M4 is line 5
0, and compares it with the count value to determine the completion of the calculation. If the calculation is completed, the data is read from FF and F via the line 48.
Reset 3. During this time, the calculation result is sent to selector L40.
from the line 44 to the flat processing units PE1 to P
Sent to EM. Further, the outputs of FF and F3 are sent via line 20 to vector processing units PE1 to PEM.

m44上のデータの取込みを指示する。また、書込みベ
タ1〜ルレジスタ番号が線23からこれらのユニットに
送られる。
Instructs to import data on m44. Further, write register numbers 1 to 1 are sent from line 23 to these units.

一方、各ベクトル処理ユニットPE1(第9図)では、
線20上のFF、F3の出力信号1によりセレクタし1
08が線44上のデータを選択し、セレクタL107が
中央ベタ1−ル処理ユニットvPCよりの線23上のレ
ジスタ番号(今の場合は番号1)を選択する。マルチプ
レクサL109によってこの番号のスカラレジスタSl
lに線44上のデータが入力され、線52□から演算結
果送出信号が入力されたときにストアされる。こうして
命令v1の処理が終わる。
On the other hand, in each vector processing unit PE1 (FIG. 9),
Select 1 by output signal 1 of FF, F3 on line 20
08 selects the data on line 44, and selector L107 selects the register number (number 1 in this case) on line 23 from the central solid processing unit vPC. The scalar register Sl of this number is selected by multiplexer L109.
The data on the line 44 is input to 1, and is stored when the calculation result sending signal is input from the line 52□. Thus, the processing of instruction v1 ends.

また、演算結果送出回路C4により、FF。Further, the calculation result sending circuit C4 outputs FF.

F3がリセットされるとFF、Fl〜F4の出力信号が
入力されているNORゲートL21の出力が1となり、
この出力が線32を介してベクトル命令制御回路(1)
CIに入力される。ベクトル・アレイ命令が実行される
ときはFF、Fl〜F4の1つがセットされ、演算が終
了するとセラ1〜されたFFをリセットする機構になっ
ているため、演算終了時には線32の信号はn 171
となる。
When F3 is reset, the output of NOR gate L21 to which the output signals of FF and Fl to F4 are input becomes 1,
This output is transmitted via line 32 to the vector instruction control circuit (1).
Input to CI. When a vector array instruction is executed, one of the FFs, Fl to F4, is set, and when the operation is completed, the FFs set from Sera1 to F4 are reset, so when the operation is completed, the signal on line 32 is n. 171
becomes.

ベクトル命令制御回路(1)C1は、このG号に同期し
て、+1加算回路C6からセレクタL35を介して与え
られる次の命令アドレスを命令アドレスレジスタM5に
セラ1−する。このセットされた次の命令アドレスが、
線71を介して主記憶制御装置C52に送られ、主記憶
装置C51から次のベクトル・アレイ命令がベクトル・
アレイ命令レジスタM1にセラ1〜される。(命令V2
〜V6)命令v2〜v6は命令v1と同じ種類のレジス
タを用いるもので、FF、F3がセラl−され命令v1
と同様に処理される。ここで、命令v2の命令コードM
 U L Tは乗算、命令v6の命令コードMOVEは
転送を意味する。なおMOVE命令にはR3フィールド
M80がない。命令v2はスカラレジスタSR4(すな
わち、スカラレジスタ5C4)にストアされている外側
ループ処理のアドレス増分値INCVと、ベクトルレジ
スタVR2すなわちベクトルレジスタVC2およびスカ
シレジスタ群8□2〜SM2に格納されている定数ベク
トル0〜M−1との積を求めて、ベクトルレジスタVR
3(すなわちベクトルレジスタVC3およびスカラレジ
スタ313〜5M3)に格納する命令である。さらに、
命令■3は、スカラレジスタSRIにストアされている
アレイデータAの先頭アドレスVADRと、ベクトルレ
ジスタVR3に命令v2により格納されたベクトルデー
タO〜(M−1)XINCVとの和をベクトルレジスタ
VR4に格納する命令である。したがって5ベクトルレ
ジスタVR4には、命令v3により内側ループで処理さ
れ、異なるJに対するアレイデータAの列ベクトルA 
(I、J)(I=1〜J+1)の先頭要素A (1,J
)のアドレスAADRA(J)からなるベクトルが格納
される。
The vector instruction control circuit (1) C1, in synchronization with this G number, stores the next instruction address given from the +1 addition circuit C6 via the selector L35 into the instruction address register M5. This set next instruction address is
The next vector array instruction is sent to the main memory controller C52 via line 71 from the main memory controller C51.
Sera 1~ are stored in the array instruction register M1. (Instruction V2
~V6) Instructions v2 to v6 use the same type of register as instruction v1, and FF and F3 are set to cell l-, and instruction v1
is processed in the same way. Here, the instruction code M of instruction v2
ULT means multiplication, and instruction code MOVE of instruction v6 means transfer. Note that the MOVE instruction does not have the R3 field M80. Instruction v2 includes the outer loop processing address increment value INCV stored in scalar register SR4 (i.e., scalar register 5C4), and constants stored in vector register VR2, that is, vector register VC2 and scalar register group 8□2 to SM2. Find the product of vectors 0 to M-1 and set the vector register VR
3 (ie, vector register VC3 and scalar registers 313 to 5M3). moreover,
Instruction 3 writes the sum of the start address VADR of array data A stored in scalar register SRI and vector data O~(M-1)XINCV stored in vector register VR3 by instruction v2 to vector register VR4. This is an instruction to store. Therefore, 5-vector register VR4 contains column vector A of array data A for different J, which is processed in the inner loop by instruction v3.
First element A of (I, J) (I=1 to J+1) (1, J
) is stored.

命令v4はスカラレジスタSR2にあるアレイデータB
の先頭アドレスVADRn (J )を用いて命令v3
と同じように、アレイデータBの、内側ループにて処理
される列ベクトルB (I、J)(I=l−J+1)の
先頭要素B (1,J)のアドレスA A D Re 
(J )からなるベクトルをベクトルレジスタVR5に
格納する。
Instruction v4 reads array data B in scalar register SR2.
instruction v3 using the start address VADRn (J) of
Similarly, the address A A D Re of the first element B (1, J) of the column vector B (I, J) (I=l-J+1) processed in the inner loop of array data B
(J) is stored in vector register VR5.

同様に命令v5は、アレイデータCの異なるJに対する
先頭アドレスA A D Rc (J )からなるベク
トルをベクトルレジスタVR6に格納する。
Similarly, instruction v5 stores a vector consisting of start addresses A A D Rc (J) for different J of array data C in vector register VR6.

命令v6はスカラレジスタS R5にあるアレイデータ
A、B、Cに共通である、アドレス増分値INCVをベ
クトルレジスタVR7の各要素レジスタにそのまま書込
む命令である。この命令は、スカラレジスタS C5に
ある増分値INCVをベクトル演算器C3を素通りして
ベクトルレジスタVC7およびスカラレジスタ817〜
sM7に書き込むことにより実行される。こうして、各
要素がアドレス増分値I NCVに等しいベタ1−ルが
ベタ1−ルレジスタVR7にス1へアされる。
Instruction v6 is an instruction for writing the address increment value INCV, which is common to array data A, B, and C in scalar register SR5, into each element register of vector register VR7 as it is. This instruction passes the increment value INCV in the scalar register SC5 through the vector arithmetic unit C3 to the vector register VC7 and the scalar registers 817 to 817.
This is executed by writing to sM7. In this way, the beta 1-ball, each element of which is equal to the address increment value INCV, is stored in the beta 1-ball register VR7.

(命令V7) この命令はベクトルレジスタV R5にある先頭アドレ
スA A D Rn (J )のベクトルの各要素を先
頭アドレスとと、ベクトルレジスタVR7にある増分値
INCVのベクトルの各要素を増分値とする複数のベク
トルデータを主記憶装置C51よリフエッチして、アレ
イレジスタARIに格納する命令である。
(Instruction V7) This instruction sets each element of the vector with the start address AAD Rn (J) in the vector register VR5 as the start address, and each element of the vector with the increment value INCV in the vector register VR7 as the increment value. This is an instruction to refetch a plurality of vector data from the main memory C51 and store it in the array register ARI.

命令v7が命令レジスタMlにセットされると。When instruction v7 is set in instruction register Ml.

FF、Flがセラ1−される。線18上のFF。FF and Fl are activated. FF on line 18.

F” 1の出力信号はOr(ゲー1へL 22に入力さ
れ、その出力は線30を介してベクトル命令制御回路(
1)C1と各ベクトル処理ユニットPE1のベクトル命
令制御回路(2)C1ot、(第9図)に入力される。
The output signal of F"1 is input to L22 to Or(gate 1), and its output is connected to the vector instruction control circuit (
1) Input to C1 and the vector instruction control circuit of each vector processing unit PE1 (2) C1ot (FIG. 9).

ORゲートL22は、FF、Fl〜F2の出力が入力さ
れており〜アレイ命令の時に出力がrt I IFとな
る。ベクトル命令制御回路(1)C1はR30を介して
信号ビ′が人力された時。
The outputs of the FFs, Fl to F2 are input to the OR gate L22, and the output becomes rt I IF in the case of an array command. Vector command control circuit (1) C1 receives signal B' manually through R30.

デコードを中止する。また、ベクトル命令制御回路(2
)C1otは線30を介して信号ビ′が人力された時、
線63上にあるアレイ命令をアレイ命令レジスタMIO
Iにセラ1へする。
Stop decoding. In addition, the vector instruction control circuit (2
) C1ot is when the signal B' is inputted via line 30,
The array instruction on line 63 is stored in the array instruction register MIO.
Set I to Sera 1.

レジスタMIOIにセットされた命令のフィールドM1
71〜M + 73 、 M 175 、 M I 7
6 。
Field M1 of the instruction set in register MIOI
71~M+73, M175, MI7
6.

R178,M]79にそれぞれある命令コー]くOP、
At、Vl、A2.V2.A3.V3は線102を介し
てベクトル命令制御回路(2)Cl0Iに入力される。
The command codes in R178 and M79 are OP,
At, Vl, A2. V2. A3. V3 is input via line 102 to vector instruction control circuit (2) Cl0I.

回路C101は命令コード○Pに基づきベクトル演算器
ClO3その他の回路を制御して命令を実行するととも
に、スカシレジスタS1.ベクトルレジスタViの書込
み。
The circuit C101 controls the vector arithmetic unit ClO3 and other circuits based on the instruction code ○P to execute instructions, and also executes the instructions in the scan registers S1. Write to vector register Vi.

読出しを制御する。なお、書込みを行うべきスカラレジ
スタSiJあるいはベクトルレジスタVi、+の番号j
は、それぞれセレクタL107とアンドゲート■、10
2から与えられる。
Control reading. Note that the number j of the scalar register SiJ or vector register Vi,+ to which writing is to be performed
are selector L107 and AND gate ■, 10 respectively.
Given from 2.

命令が指定するレジスタ番号R1〜R3をベクトル処理
ユニットPE、の対応するレジスタに送出するためにA
工、A2.A3フィールドとレジスタ番号R1(M17
4)、R2(M177)。
A to send the register numbers R1 to R3 specified by the instruction to the corresponding registers of the vector processing unit PE.
Engineering, A2. A3 field and register number R1 (M17
4), R2 (M177).

R3(M2B5)が線103,105,107および線
104,106,108をそれぞれ介してANDゲート
LIOI、LiO2,LiO2゜LiO2,Li2S、
L106に入力される。
R3 (M2B5) connects AND gates LIOI, LiO2, LiO2°LiO2, Li2S,
It is input to L106.

ANDゲートLLOL、LiO2,Li2Sはそれぞれ
レジスタ番号R1,R2,R3がベクトルレジスタVR
に対するとき、すなわち、それぞれ、A1=O,A2=
O,A3=Oのときに線109.111,113に、そ
れぞれレジスタ番号R1,R2,R3を送出する。AN
DゲートL102.LiO2,LloGはそれぞれR1
゜R2,R3がアレイレジスタに対するとき、すなわち
、それぞれAI=1.Δ2=l、A3=1のときにそれ
ぞれ線110,112,114にレジスタ番号R1,R
2,R3を出力する。命令■7の場合、線110,11
1,113上にはレジスタ番号1111 、  LI5
H、11711がそれぞれセラ1〜される。
AND gates LLOL, LiO2, and Li2S have register numbers R1, R2, and R3, respectively, as vector registers VR.
, that is, A1=O, A2=, respectively.
When O, A3=O, register numbers R1, R2, and R3 are sent to lines 109, 111, and 113, respectively. AN
D gate L102. LiO2 and LloG are each R1
゜When R2 and R3 are for array registers, that is, AI=1. When Δ2=l and A3=1, register numbers R1 and R are applied to lines 110, 112, and 114, respectively.
2, output R3. In the case of instruction ■7, lines 110, 11
On 1,113 is register number 1111, LI5
H, 11711 are respectively set to Sera 1~.

命令v7が解読されると、ベクトル命令制御回路(2)
C1otは、線163により入力される1番目のスカラ
レジスタS ll内のベクトル長ALのi番目の要素A
L (i)をベクトル参照制御回路ClO2に与えて、
これを起動する。この命令により指定されるアレイのア
ドレスA D D Rn (i )のi番目の要素と増
分値INCAがそれぞれ格納されているスカラレジスタ
S、5.Si7の番号5,7はそれぞれ線111.11
3を介してセレクタL110に入力され、セレクタLI
IOはAADRo(i)とINCAをそれぞれ線115
.liGに読み出しベクトル参照制御回路ClO2に送
出する。
When instruction v7 is decoded, vector instruction control circuit (2)
C1ot is the i-th element A of the vector length AL in the first scalar register Sll input by line 163.
Applying L (i) to the vector reference control circuit ClO2,
Start this. 5. A scalar register S in which the i-th element of the array address A D D Rn (i) specified by this instruction and the increment value INCA are stored, respectively; Numbers 5 and 7 of Si7 are lines 111.11 respectively
3 to the selector L110, and the selector LI
IO connects AADRo(i) and INCA to line 115 respectively.
.. liG to the read vector reference control circuit ClO2.

先頭アドレスA A D Re (i )およびアレイ
データBのインクリメントrNVA (i)はそれぞれ
B (1,i)と8に等しい回路ClO2は、これらの
読み出しデータに基づき、アレイデータBのi番目の列
ベクトル i+1)を読み出すために先頭アドレスAADRu (
i)のi番目の要素を順次増分値I NCAだけ更新し
たアドレスを発生し,線130□を介してS CU, 
C 5 2に順次入力する。
The start address A AD Re (i) and the increment rNVA (i) of array data B are equal to B (1, i) and 8, respectively. Based on these read data, the circuit ClO2 reads the i-th column of array data B. To read the vector i+1), start address AADRu (
generates an address in which the i-th element of i) is sequentially updated by an increment value INCA, and sends it via line 130□ to SCU,
Input C 5 2 sequentially.

この結果、線1191上に、アレイデータBのi番目の
列ベクトルの要素が順次読み出される。−方,線119
□上の読み出されたデータはセレクタL113によりベ
クトル命令制御回路(2)C101からの線120上の
L O A D命令デコード信号で選択され、線110
上にある書き込みレジスタ番号により制御されるセレク
タ■、112により、1番目のベタ1−ルレジスタVi
1にス1−アされる。必要なベクトル長AL (i)の
データが読み出され演算が終了すると,ベクトル命令制
御回路(2)CIOIは,線61tを介して中央ベクト
ル処理ユニットvPCへその報告を行なう。以上の処理
を各ベクトル処理ユニッl− P E iが並列に動作
し,アレイデータBの必要な列ベクトルがすべてアレイ
レジスタARIにストアされる。
As a result, the elements of the i-th column vector of array data B are sequentially read out on line 1191. - direction, line 119
□The read data above is selected by the selector L113 with the L O A D instruction decode signal on the line 120 from the vector instruction control circuit (2) C101, and is sent to the line 110.
The selector 112 controlled by the write register number located above selects the first solid register Vi.
1. When the data of the required vector length AL (i) is read and the operation is completed, the vector instruction control circuit (2) CIOI reports it to the central vector processing unit vPC via the line 61t. The above processing is performed in parallel by each vector processing unit l-PEi, and all necessary column vectors of array data B are stored in array register ARI.

一方、中央ベクトル処理ユニットvPCでは。On the other hand, in the central vector processing unit vPC.

その終了報告を、線61工〜61Mを介してFF。The completion report is sent to FF via line 61-61M.

F6t〜F6M(第8図)に受ける。そして、その出力
をANDゲート1.88に入力し、すべてのベクトル処
理ユニットPE,が演算終了した時に、信号11 1 
I+を線56上に出力する。この命令の場合のように、
FF,Flがセラ1〜されている時は、ANDゲートL
23、線34を介してFF,Flがリセットされる。
It is received from F6t to F6M (Fig. 8). Then, the output is input to the AND gate 1.88, and when all the vector processing units PE have completed their calculations, the signal 11 1
Output I+ on line 56. As in the case of this command,
When FF and Fl are set to 1~, AND gate L
23, FF and Fl are reset via line 34.

また、FF,F6z〜F6Mのりセラ1−は線62を介
して、次の命令デコード時に,ベタ1ヘル命令制御回路
(1)CIによって行なわれる。
Further, FF, F6z to F6M are decoded via line 62 by solid 1 hell instruction control circuit (1) CI at the time of next instruction decoding.

(命令v8〜v10) 命令v8〜v10も、命令v7と同様に、FF。(Instructions v8 to v10) Instructions v8 to v10 are also FFs like instruction v7.

Flがセットされる命令であり、ベクトル処理ユニット
PEiで実行される。
This is an instruction to which Fl is set, and is executed by the vector processing unit PEi.

命令v8により、アレイレジスタAR2に主記憶装置C
51上のアレイデータCがストアされる。
By instruction v8, main memory C is stored in array register AR2.
Array data C on 51 is stored.

ADD命令■9の処理は次のように行なわれる。The processing of ADD instruction (2) 9 is performed as follows.

ベクトル処理ユニツl−P E lでは、線112゜1
14にANDゲートL104.LiO2からレジスタ番
号1.2が出力され、セレクタLlllによりベクトル
レジスタvi t、V、2がそれぞれセレクタL115
.LI14に接続される。セレクタLl 15.Ll 
14は、それぞれ、線107.105に命令レジスタM
101から出力されるA3.A2ビットが1のときにセ
レクタL 111を選択する。こうして、ベクトルレジ
スタV、1.Vi2がベクトル演算器ClO3に接続さ
れる。
In the vector processing unit l-P E l, the line 112°1
14 and AND gate L104. Register number 1.2 is output from LiO2, and vector registers vi t, V, and 2 are set to selector L115 by selector Lllll.
.. Connected to LI14. Selector Ll 15. Ll
14 are connected to the instruction register M on lines 107 and 105, respectively.
A3. output from 101. Selector L 111 is selected when the A2 bit is 1. Thus, vector registers V, 1 . Vi2 is connected to vector operator ClO3.

ベクトル命令制御回路(2)CIOIは、命令v9の命
令コードに応答して、ベクトルレジスタVよ1 e V
 12からアレイデータB、Cのi番目の列ベクトルB
(1,i)〜R(i+1+i)およびC(1,i)〜C
(i+L、i)を順次、1要素ずつ読出す。
Vector instruction control circuit (2) CIOI responds to the instruction code of instruction v9 by registering vector register V1 e V
12 to i-th column vector B of array data B, C
(1,i)~R(i+1+i) and C(1,i)~C
(i+L, i) is read out one element at a time.

ベクトル演算器ClO3は、入力されたデータの各要素
に対して、公知のパイプラインモードでベクトル命令制
御回路(2)ctolの制御下で、命令で指定された演
算を行う。命令v9の場合は、加算を行ない、アレイデ
ータAのi番目の列ベクトルA(1,i)〜A(i+l
、i)を順次出力する。演算結果は線117を介してセ
レクタLL13.L108に入力される。セレクタL1
13.L10Bはそれぞれ線20,120上の信号が0
なので、線117をともに選択する。
The vector arithmetic unit ClO3 performs an operation specified by an instruction on each element of input data under the control of a vector instruction control circuit (2) ctol in a known pipeline mode. In the case of instruction v9, addition is performed and the i-th column vector A(1,i) to A(i+l
, i) are sequentially output. The calculation result is sent via line 117 to selector LL13. It is input to L108. Selector L1
13. For L10B, the signals on lines 20 and 120 are 0, respectively.
Therefore, line 117 is selected together.

しかしセレクタし108の出力が入力されるマルチプレ
クサし109にはセレクタし107からはレジスタ番号
が入力されない。セレクタL107はアントゲ−1−L
 101を選択するが、アンドゲートL101からは、
命令v9のA1ビットが1のため、レジスタ番号が出力
されないからである。
However, the register number is not input from the selector 107 to the multiplexer 109 to which the output of the selector 108 is input. Selector L107 is Antogame-1-L
101 is selected, but from AND gate L101,
This is because the A1 bit of instruction v9 is 1, so the register number is not output.

一方、セレクタLL13の出力が入力されるマルチプレ
クサL112にはアンドゲートL102からレジスタ番
号3が入力される。こうして、ベクトルレジスタV t
 3に演算結果が転送されベクトル命令制御回路(2)
C1otの制御下でストアされる。
On the other hand, register number 3 is inputted from the AND gate L102 to the multiplexer L112 to which the output of the selector LL13 is inputted. Thus, vector register V t
The calculation result is transferred to vector instruction control circuit (2).
Stored under control of C1ot.

こうして、ベクトルレジスタVよ3にアレイデータAの
i番目の列ベタ1〜ルA(1,i)〜A(i+l、t)
がストアされる。ベタ1〜ル処理ユニットPE1〜PE
Mがこの処理を並列に実行するので、アレイデータAが
アレイレジスタAR3に格納されたことになる。
In this way, the i-th column vectors 1 to A(1,i) to A(i+l,t) of array data A are stored in vector register V3.
is stored. Solid 1~le processing unit PE1~PE
Since M executes this process in parallel, array data A is stored in array register AR3.

5TORE命令VIOの実行時には各ユニットPE、に
おいてLOAD命令v7又は■8と同じくこの命令のR
2,R3フィールドで指定したアレイデータAのi番目
の列ベクトルの先頭アドレスAADRAと、増分値IN
CAをもつスカラレジスタS > 4 r S > 7
の内容がセレクタL110により選択されてベクトル参
照制御回路ClO2に入力される。
5 When the TORE instruction VIO is executed, the R of this instruction is
2. The start address AADRA of the i-th column vector of array data A specified in the R3 field and the increment value IN
Scalar register with CA S > 4 r S > 7
The contents of are selected by selector L110 and input to vector reference control circuit ClO2.

ベクトル命令制御回路(2)CIOIはスカラレジスタ
S、1内にあるベクトル長ベク1−ルALのi番目の要
素A(i)を受は取り、さらにこれをベクトル参照制御
回路ClO2に送出して、これを起動する。回路ClO
2はこれらのデータより主記憶装置C51上にアレイデ
ータAのil目の列ベクトルA(1,i)〜A(i+1
.i)の各要素を格納すべきアドレスを順次発生し、線
130□を介して、S CU、 C52に送る。また格
すべきアレイデータAのi番目の列ベクトルA(i、i
)〜A (i+l、i)を格納したべりl−ルレジスタ
V□3がこの命令R1フィールドに応答するセレクタL
lllと、この命令のAtフィールドに応答するセレク
タL130により選択され、これらのデータが一要素ず
つ順次線1181上に読み出され、ベクトル参照制御回
路ClO2から出力されるアドレスに基づいて主記憶装
置C51にス1−アされる。
Vector instruction control circuit (2) CIOI receives the i-th element A(i) of vector length vector 1-AL in scalar register S1, and further sends it to vector reference control circuit ClO2. , launch this. circuit ClO
2 stores the il-th column vectors A(1,i) to A(i+1) of array data A on the main memory C51 from these data.
.. Addresses to store each element of i) are sequentially generated and sent to the SCU, C52 via line 130□. Also, the i-th column vector A(i, i
)~A (i+l,i) is stored in the selector L register V□3 that responds to this instruction R1 field.
Ill and the selector L130 responsive to the At field of this instruction, these data are sequentially read out onto the line 1181 one element at a time, and are stored in the main memory C51 based on the address output from the vector reference control circuit ClO2. is read.

(命令V11) E A P命令Vllは、R1,R2,R37,r−ル
ドがなく、命令コードOP、M71だけもつ命令である
。この命令がベクトル・アレイ命令レジスタMlにセッ
トされると、ベクトル命令制御回路(1)CIは、線5
8を介して、FF、F5をリセットし、ベクトル・アレ
イ処理が終了したことをスカラ処理ユニットSPに知ら
せる。
(Instruction V11) The EAP instruction Vll is an instruction that does not have R1, R2, R37, or r-old, but only has instruction codes OP and M71. When this instruction is set in the vector array instruction register Ml, the vector instruction control circuit (1) CI
8, it resets the FF, F5, and notifies the scalar processing unit SP that the vector array processing has ended.

以上で第11図のプログラムによる動作説明は終わるが
、このプログラムでは現われなかったFF、F2又はF
4をセットする命令について以下で説明する。
This concludes the explanation of the operation using the program shown in Figure 11, but FF, F2, or F
The instruction to set 4 will be explained below.

第12図(a)にはプログラム例とそのベクトル・アレ
イ命令列の後半の一部が示しである。
FIG. 12(a) shows an example program and part of the latter half of its vector array instruction sequence.

(命令VIOI) 命令VIOIは演算結果をベクトルレジスタVRに格納
する命令であるのでFF、F2がセットされ、FF、F
lがセットされた場合と同様に、オアゲートL22から
の腺30上の信号により。
(Instruction VIOI) Since the instruction VIOI is an instruction to store the operation result in the vector register VR, FF and F2 are set, and FF and F2 are set.
By the signal on gland 30 from or gate L22, as if l were set.

ベクトル処理ユニットPE、の命令レジスタMIOIに
線63上のアレイ命令がセットされる。
The array instruction on line 63 is set in instruction register MIOI of vector processing unit PE.

命令制御ユニツI−(2)C1otは命令コード部OP
、M171を解読する。PROD命令は内積命令を意味
する。
Instruction control unit I-(2) C1ot is instruction code section OP
, decipher M171. The PROD instruction means an inner product instruction.

各ベクトル処理ユニットPE、ではベクトルレジスタ番
号1とV工2にそれぞれあるアレイデータA、Bのそれ
ぞれの1番目の列ベクトルA(1,i)〜A (N、i
)とB (1,i)〜R(N、i)の内積がとられその
結果S (i)をスカラレジスタ3.3にストアする。
In each vector processing unit PE, the first column vectors A(1,i) to A(N,i
) and B (1, i) to R (N, i) is taken and the result S (i) is stored in the scalar register 3.3.

そして演算終了の報告を中央ベクトル処理ユニツt−v
 p cに対しベクトル命令制御回路(2)ctotが
線61tを介して行なう。また、演算結果S (+)は
次のようにして中央ベクトル処理ユニット■PCにある
ベクトルレジスタVC3にもストアされる。
Then, a report on the completion of the calculation is sent to the central vector processing unit tv.
The vector command control circuit (2) ctot performs the command for pc via the line 61t. Further, the operation result S (+) is also stored in the vector register VC3 in the central vector processing unit PC as follows.

FF、F2がセットされるとその出力は線19を介して
演算結果送出要求回路C5に送られる。
When FF and F2 are set, their outputs are sent via line 19 to the calculation result sending request circuit C5.

回路C5の詳細は第10図に示される。第10図を参照
するに、まずFF、F2のセット時に、その出力線19
によりFF、F2011〜F201M、FF、F202
□〜F202Mはリセットされる。各ベクトル処理ユニ
ットPE1からの線611上の演算終了信号によりFF
Details of circuit C5 are shown in FIG. Referring to FIG. 10, first, when setting FF and F2, the output line 19
FF, F2011~F201M, FF, F202
□ to F202M are reset. The FF is activated by the operation end signal on line 611 from each vector processing unit PE1.
.

FjOltがセットされる。FF、F202□は、ベク
トル処理ユニットPElに対する演算結果送出要求信号
をI@ 51 l上にエンコーダC201が後述のよう
にして出した時に線2021を介してエンコーダC20
1から出力される信号によりセットされる。FF、F2
01 、の出力とFF。
FjOlt is set. FF, F202□ sends a request signal to the vector processing unit PEl to the encoder C20 via the line 2021 when the encoder C201 outputs the calculation result sending request signal on I@51l as described below.
It is set by the signal output from 1. FF, F2
01, output and FF.

F202tの出力の反転信号とFF2021−0の出力
がそれぞれは線2041,203.。
The inverted signal of the output of F202t and the output of FF2021-0 are connected to lines 2041, 203. .

2031−1を介してANDゲートL300.につなが
りその出力は線2011を通してエンコーダC201に
入力される。エンコーダC201は信号1が入力される
と、線511へ演算結果送出要求を出力する。
2031-1 through AND gate L300. and its output is input to encoder C201 through line 2011. When the encoder C201 receives the signal 1, it outputs a calculation result sending request to the line 511.

この結果、エンコーダC201は、ベクトル順次処理ユ
ニットPE、からPEMに対して演算結果送出要求をそ
れぞれ線51□〜51Mを介して送ることができる。こ
の際、処理ユニッI〜PEでの演算が終了した後でなけ
れば処理ユニツ1−PE1に対するこの要求は送出され
ない。そしてエンコーダC201は、線50を介して入
力されるVLRレジタ、M4のベクトル長VLと送出要
求した回数を比べ、送出要求がすべて終了した後、線4
9を介してFF、F2をリセットする。
As a result, the encoder C201 can send a calculation result sending request from the vector sequential processing units PE to PEM via the lines 51□ to 51M, respectively. At this time, this request to the processing units 1-PE1 is not sent until after the calculations in the processing units I-PE are completed. Then, the encoder C201 compares the vector length VL of the VLR register M4 inputted via the line 50 with the number of transmission requests, and after all the transmission requests are completed, the encoder
FF and F2 are reset via 9.

一方、ベクトル処理ユニットPE工は、演算結果S (
i)をベクトル命令制御回路(2)、C101の制御に
よりFF、FIOIにセットしており、線51.を介し
て送出要求信号が送られた時、ANDゲートL116に
より演算結果を線47、に出力する。
On the other hand, the vector processing unit PE engineer calculates the calculation result S (
i) is set to FF and FIOI under the control of the vector instruction control circuit (2) and C101, and the line 51. When a transmission request signal is sent via the AND gate L116, the calculation result is outputted to the line 47.

また、中央ベタ1〜ル処理ユニットvPCは、各ベクト
ル処理ユニットPE□から線471〜47Mを介して送
られてくるデータをORアゲ−−L33により線45を
介してセレクタL30に送出する。
Further, the central vector processing unit vPC sends the data sent from each vector processing unit PE□ via the lines 471 to 47M to the selector L30 via the line 45 via the OR game L33.

セレクタL30はFF、F2の出力により線45を選択
し、マルチプレクサL29は線23を介してアンドゲー
トL14から入力される書込みベクトルレジスタ番号3
によりベタ1−ルレジスタVC3のi要素口に書き込む
Selector L30 selects line 45 by the output of FF, F2, and multiplexer L29 selects write vector register number 3 input from AND gate L14 via line 23.
writes to the i element port of the flat register VC3.

(命令v102〜V103) 命令V102.V103は、以前に述べたLOAD、A
DD命令で、とも4:FF、F3をセットする命令であ
る。
(Instructions v102 to V103) Instruction V102. V103 is the previously mentioned LOAD, A
Both are DD commands, which set 4:FF and F3.

中央ベタ1−ル処理ユニットvPCではLOAD命令v
102により、R2,R3フィールドで指定されるスカ
ラレジスタSCI、SC2から、ベクトルDの先頭アド
レスVADR,アドレスの増分値INCVがそれぞれ線
39.38上に読み出されベクトル参照制御回路C2に
入力される。回路C2はこれらのデータをもとに、ベク
トルDの要素の内、ベクトル長レジスタM4により指定
されたベクトル長Vの要素D(1)〜D (M)を読み
出すために、それらの記憶アドレスを腺64を介して、
SCU、C52に順次入力する。この結果、線43上に
ベクトル要素D (1)〜D (M)が順次読み出され
、ベクトル命令制御回路(1)から線55に送出される
It I H信号と、FF。
In the central processing unit vPC, the LOAD command v
102, the start address VADR and address increment value INCV of the vector D are read out onto lines 39 and 38 from the scalar registers SCI and SC2 specified by the R2 and R3 fields, respectively, and input to the vector reference control circuit C2. . Based on these data, the circuit C2 reads out the storage addresses of elements D(1) to D(M) of the vector length V specified by the vector length register M4 among the elements of the vector D. Through gland 64,
Sequentially input to SCU and C52. As a result, the vector elements D (1) to D (M) are sequentially read out on the line 43, and the It I H signal and the FF are sent from the vector instruction control circuit (1) to the line 55.

F2の0”出力とアンドゲートL14からのレジスタ番
号゛″4″に基づきセレクタL29゜F30が制御され
ベク1へルレジスタVC4にストアされる。
Based on the 0'' output of F2 and the register number ``4'' from the AND gate L14, the selector L29°F30 is controlled and stored in the vector 1 register VC4.

命令■103によりベクトルレジスタVC3内のデータ
5(1)〜S (M)とべりトルレジスタVC4内のデ
ータD(1)〜D(M)との間の加算を行ない、結果C
(t)〜C(M)をベクトルレジスタVC5に書込む。
Instruction 103 performs addition between data 5(1) to S(M) in vector register VC3 and data D(1) to D(M) in vector register VC4, resulting in C.
(t) to C(M) are written to vector register VC5.

第12図にはFF、F4をセットする命令を含むプログ
ラム例とこれを実行するための命令が示しである。
FIG. 12 shows an example of a program including an instruction to set FF and F4, and an instruction for executing the program.

(命令V104) 命令Vl 04はFF、F4をセットする命令の例であ
る。
(Instruction V104) Instruction Vl 04 is an example of an instruction to set FF and F4.

ここでは簡単のために、ベクトルレジスタVR7とVR
8にそれぞれバク1−ルデータx、yがすでにストアさ
れていると仮定する。命令v104はこれらのベクトル
データの内積Sを求めて、スカラレジスタSR7に書込
む命令である。
Here, for simplicity, vector registers VR7 and VR
It is assumed that backup data x and y have been stored in 8 and 8 respectively. Instruction v104 is an instruction to obtain the inner product S of these vector data and write it to the scalar register SR7.

この命令Vl 04が命令レジスタMlにセットされる
と、ベクトル命令制御回路(1)、C1の制御の下でベ
クトル演算器C3にてベクトルレジスタVC7とVO2
内のデー9X (1) 〜X (M)トY (+)〜Y
 (M)の内積が求められ、結果Sをセレクタr−25
、マルチプレクサI426を介してスカラレジスタSC
7に書込まれる。
When this instruction Vl 04 is set in the instruction register Ml, the vector register VC7 and VO2 are set in the vector operator C3 under the control of the vector instruction control circuit (1) and C1.
Day 9X (1) ~X (M) ToY (+) ~Y
The inner product of (M) is calculated and the result S is sent to the selector r-25
, scalar register SC via multiplexer I426
7 is written.

なお、以上の実施例においてはベクトル処理ユニッl−
P E 1〜PEMの数Mと同じ数の要素についての演
算を行う外側Doループについて説明したが、外側Do
ループでの演算要素数がMより大きいときには、ベタ1
−ル処理ユニットPE□〜p r> 、を繰り返し用い
ればよい。また外側Doループの演算要素がMより小さ
い値M′のときには、みかけ上処理ユニットPE1〜P
EMをすべて動作させ、処理ユニットPEM’ や、〜
PEMの演算結果を利用しない、ように制御すればよい
Note that in the above embodiment, the vector processing unit l-
Although we have explained the outer Do loop that performs operations on the same number of elements as the number M of P E 1 to PEM, the outer Do
When the number of calculation elements in the loop is larger than M, solid 1
- processing units PE□ to pr> may be used repeatedly. Furthermore, when the calculation element of the outer Do loop has a value M' smaller than M, the apparent processing units PE1 to P
All EMs are operated, and the processing units PEM' and ~
Control may be performed so that the PEM calculation results are not used.

以上の実施例で示したアレイプロセッサでは次の効果が
ある。
The array processor shown in the above embodiment has the following effects.

(1)  ベグ1−ル・アレイ演算を、ベクトル演算を
行なう中央ベクトル処理ユニットとアレイ演算を行なう
複数台のベクトル処理ユニットに分割するが、それぞれ
のベクトルレジスタとスカラレジスタをインタフェース
とする構成により、アレイデータとアレイデータ、バク
1−ルデータとベクトルデータとの演算ばがりでなく、
アレイデータとベクトルデータ、ベク!−ルデータとス
カラデータ等の演算も高速に処理できる。
(1) Veg1-array operations are divided into a central vector processing unit that performs vector operations and multiple vector processing units that perform array operations, but by using a configuration in which the vector register and scalar register of each unit are used as interfaces, Not only calculations between array data and array data, backup data and vector data,
Array data and vector data, vector! - Operations on scalar data and scalar data can be processed at high speed.

(2)  アレイ処理にベクトルレジスタを有するベク
J−ルプロセッサを使用したため、演算の中間値をベク
トルレジスタに保て、従来の並列側−2’):機のネッ
クである主記憶に対する負荷が減る。
(2) Because a vector processor with vector registers is used for array processing, intermediate values of calculations can be kept in vector registers, reducing the load on main memory, which is the bottleneck of conventional parallel processing. .

(3)  アレイ演算のための複数台のベクトル処理ユ
ニットのそれぞれにベクトル長Aを指定するスカラレビ
スタを設けたため、長方形領域ばかり任意領域のアレイ
演算ができる。
(3) Since each of the plurality of vector processing units for array calculations is provided with a scalar register for specifying the vector length A, array calculations can be performed on arbitrary areas, including rectangular areas.

(4)本発明のアレイプロセッサの動作を規定する命令
仕様を、演算を指示する命令コード部と、オペランドの
データ形式を示す部分に分はしたため、データ形式を示
す部分に対する簡mなデコード回路により、アレイデー
タとアレイデータ、アレイデータとベクトルデータ等の
演算データ形式の組み合わせの決定が容易にできる。
(4) Since the instruction specifications that define the operation of the array processor of the present invention are divided into an instruction code section that instructs operations and a section that indicates the data format of the operands, a simple decoding circuit for the section that indicates the data format can be used. , combinations of arithmetic data formats such as array data and array data, array data and vector data, etc. can be easily determined.

また、演算データ形式の異なる組合せに対しても同じ命
令コードが使える。
Furthermore, the same instruction code can be used for different combinations of calculation data formats.

(5)  ベクトル・アレイ演算部のプロセッサを、中
央ベクトル処理ユニットと複数台のベクトル処理ユニッ
1−の階層構造にしたため、アレイ演算のための複数台
のベクトル処理ユニットへのセットアツプ処理がベクト
ル演算で行なえ高速化される。中央ベクトル処理ユニッ
トのない構成では、セットアツプ処理がスカラ処理ユニ
ットによる時系列的処理となり性能上の大きな足かせと
なる。
(5) The processor of the vector array calculation section has a hierarchical structure consisting of a central vector processing unit and multiple vector processing units 1-1, so the setup process for multiple vector processing units for array calculation is performed by vector calculation. This will speed up the process. In a configuration without a central vector processing unit, setup processing is performed in a time-series manner by a scalar processing unit, which becomes a major hindrance in terms of performance.

また以上の実施例では、簡単のため中央ベクトル処理ユ
ニットvPCのベクトルレジスタVC□と、ベクトル処
理ユニットPE1〜PEMのスカラレジスタSli−3
Miの内容の同一性を保証したが、他方のユニットに転
送する必要のないレジスタ書き込みに対しては(例えば
中間値の作成)転送を行なわない制御にすることも、転
送を行なわないレジスタ番号をきめることにより容易に
実現できる。
Further, in the above embodiment, for simplicity, the vector register VC□ of the central vector processing unit vPC and the scalar register Sli-3 of the vector processing units PE1 to PEM are
Although the identity of the contents of Mi is guaranteed, register writes that do not need to be transferred to the other unit (for example, creating an intermediate value) can be controlled so that no transfer is performed, or register numbers that do not transfer can be set. This can be easily achieved by making a decision.

以上述べたように、本発明によれば、ベクトルレジスタ
を用いたベクトルプロセッサによるベクトル処理の高速
化の効果とその処理の並列化によリアレイ演算が高速に
実行できる。
As described above, according to the present invention, relay calculations can be executed at high speed due to the effect of speeding up vector processing by a vector processor using vector registers and parallelization of the processing.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は、アレイ処理される演算の FORTRANプログラムの一例を示す図、第2図は、
従来のベクトルプロセッサにおける第1図のFORTR
ANプログラムの実行手順を示す図。 第3図は、本発明によるアレイプロセッサの全体構成図
、第4図(a)は、第3図のアレイプロセッサで用いる
レジスタの説明図、第4図(b)〜(d)はそれぞれ概
念上のスカラ、ベクトル、アレイレジスタを示す図、第
5図は、第3図のアレイプロセッサを動作させるための
ベグ1−ル命令又はアレイ命令のフォーマットを示す図
、第6図は第5図の命令が指示するレジスタの種類の説
明図、第7図は、第3図の装置における命令の異なる使
用例を示す図、第8図は、第3図の装置に用いる中央ベ
クトル処理ユニットの構成を示す図、第9図は、第3図
の装置に用いるベクトル処理ユニットの構成を示す図、
第10図は、第3図の装置に用いる演算結果送出要求回
路の構成を示す図、第1+図は、アレイ処理を要するF
ORTRANプログラムの例とそれに対するベクトル・
アレイ命令列を示す図、第12図は、アレイ処理のFO
RT”RANプログラムの他の例とそれに対応するとベ
クトル・アレイ命令列の例を示す図、第13図はメモリ
上のアレイデータの配列を示す図である。 =) Do  10  J−7,、H DOZOI=  7.N A (1,J) = 6(r、 :J) t C(I、
’f)20 C0NTI7JuE 1o  こONT/HUE 第2囚 第夕囚 第7図 第 7 目 (L:L) (b) −f)0 7θ J=7.Fl (こ) (d−9 ’E)0 70 、f−7,?−4 X(J)=γ(、T)六S      )4υLT  
VB2.VB25;R77θ C0NT/NUと 第 77目 (L) (b) スカラノ’Iklリ            tり7ト
ル・アレイ補9か多IJ第72目 (久) (b) DO70JメIJバ 5=SfX(J)”Y(J)            
    PROD  SK’7.l/R7,VRI〜V
llf170  CO?J7’/h/L/E 第 ノ3 Bコ
FIG. 1 is a diagram showing an example of a FORTRAN program for calculations that are processed in an array, and FIG.
FORTR in Figure 1 in a conventional vector processor
The figure which shows the execution procedure of AN program. FIG. 3 is an overall configuration diagram of an array processor according to the present invention, FIG. 4(a) is an explanatory diagram of registers used in the array processor of FIG. 3, and FIGS. 4(b) to (d) are conceptual diagrams. 5 is a diagram showing the format of a vector instruction or an array instruction for operating the array processor of FIG. 3, and FIG. 6 is a diagram showing the format of the instruction of FIG. 5. 7 is a diagram showing different usage examples of instructions in the device of FIG. 3, and FIG. 8 is a diagram showing the configuration of the central vector processing unit used in the device of FIG. 3. 9 are diagrams showing the configuration of a vector processing unit used in the apparatus of FIG. 3,
FIG. 10 is a diagram showing the configuration of the arithmetic result sending request circuit used in the device of FIG. 3, and FIG.
An example of an ORTRAN program and its vector
A diagram showing the array instruction sequence, FIG. 12, is the FO of array processing.
FIG. 13 is a diagram showing another example of the RT"RAN program and a corresponding example of a vector array instruction sequence, and FIG. 13 is a diagram showing the arrangement of array data on the memory. DOZOI = 7.N A (1, J) = 6 (r, :J) t C (I,
'f) 20 C0NTI7JuE 1o ONT/HUE 2nd Prisoner 2nd Evening Prisoner Figure 7 7th (L:L) (b) -f)0 7θ J=7. Fl (ko) (d-9'E)0 70, f-7,? −4 X(J)=γ(,T)6S )4υLT
VB2. VB25; R77θ C0NT/NU and 77th (L) (b) Scarano'Iklli tri 7tor array supplement 9 or multi IJ 72nd (ku) (b) DO70J MeIJ bar 5 = SfX (J) ”Y(J)
PROD SK'7. l/R7, VRI~V
llf170 CO? J7'/h/L/E No. 3 B

Claims (1)

【特許請求の範囲】 1、一次元アレイデータに対する演算を指令するベクト
ル命令を実行し、一次元アレイデータ又はスカラデータ
を得るための第1の手段と、二次元アレイデータに対す
る演算を指令するアレイ命令を実行するための、複数の
第2の手段であって、各々が二次元アレイデータを構成
する一つの一次元アレイデータに対して該アレイ命令で
指令された演算を実行し、該アレイ命令が結果データと
して一次元アレイデータを要求するときには、該結果と
しての一次元アレイデータの一つの要素を求め、該アレ
イ命令が結果データとして、二次元アレイデータを要求
するときとしては該結果としての二次元アレイデータを
構成する一つの一次元アレイデータを算出するものとか
らなり、 該第1の手段は、複数の第1のベクトルレジスタと、複
数の第1のスカラレジスタと、第1のパイプライン演算
器と、ベクトル命令又はアレイ命令をフェッチする手段
と、フェッチされた命令がベクトル命令かアレイ命令か
を解読し、解読された命令がベクトル命令のときには該
第1のベクトルレジスタと第1のスカラレジスタと該第
1のパイプライン演算器を制御して該解読されたベクト
ル命令を実行する手段と、該フェッチされたベクトル命
令の演算結果が一次元アレイデータのときには、該一次
元アレイデータの各要素を該複数の第2の手段の対応す
る一つに送出する手段と、該複数の手段の各々により算
出された該一次元アレイデータの要素を該第1のベクト
ルレジスタの一つに格納する手段とを有し、 該第2の手段の各々は、 複数の第2のベクトルレジスタと、複数の第2のスカラ
レジスタと、第2のパイプライン演算器と、該フェッチ
された命令がアレイ命令のときには、該第2のベクトル
レジスタと、該第2のスカラレジスタと、該第2のパイ
プライン演算器を制御して、該フェッチされた命令が指
示する二次元アレイデータの一つの一次元アレイデータ
に対して該フェッチされたアレイ命令を実行する手段と
、該実行の結果データが一次元アレイデータの一つの要
素のときには、該一つの要素を該第1の手段に送出する
手段と、該第1の手段より送出された該要素の一つを該
第2のスカラレジスタの一つに格納する手段とを有する
アレイプロセッサ。 2、主記憶装置であって、スカラデータ、ベクトルデー
タとアレイデータを記憶するとともに、スカラ命令列と
ベクトル・アレイ命令列を区分して記憶するものと、該
主記憶装置から該スカラ命令列およびスカラデータを読
出し、該読出されたスカラ命令を解読し、実行し、該実
行によって得られるスカラデータを該主記憶装置に格納
するスカラ命令実行手段と、該主記憶装置から、該ベク
トル命令またはアレイ命令列、ベクトルデータまたはア
レイデータを読出し、該実行によって得られたベクトル
またはアレイデータを該主記憶装置に格納するベクトル
・アレイ命令実行手段と、該スカラ命令実行手段はベク
トル・アレイ命令列の実行のために必要なデータを、該
スカラ命令に応答して発生する手段を有するアレイプロ
セッサ。 3、該ベクトル・アレイ命令実行手段は、該主記憶装置
より、該ベクトル・アレイ命令を読出し、ベクトル命令
がアレイ命令を区別し、該ベクトル・アレイ命令がベク
トル命令の場合、該主記憶装置からベクトルデータを読
出し、実行し、該実行によって得られるベクトルデータ
を該主記憶装置に格納する主ベクトル命令実行手段と、
該ベクトル・アレイ命令がアレイ命令の場合、該主記憶
装置からアレイデータを読出し、実行し、該実行によっ
て得られるアレイデータを該主記憶装置に格納するアレ
イ命令実行手段から構成される第2項のアレイプロセッ
サ。 4、該アレイ命令実行手段は、アレイ命令を、ベクトル
命令として解読し、アレイデータを主記憶装置より複数
のベクトルデータに分けて並列に読み出し、並列に実行
し、該実行によって得られる複数のベクトルデータを並
列にアレイデータとして該主記憶装置へ格納する複数の
ベクトル命令実行手段から構成される第3項のアレイプ
ロセッサ。 5、該主ベクトル命令実行手段は、該複数のベクトル命
令実行手段の実行に必要なデータと、該アレイ命令に必
要なベクトルデータを該複数命令実行手段に転送する手
段を有する第4項のアレイプロセッサ。 6、該複数のベクトル命令実行手段は、該主ベクトル命
令実行手段が行なうベクトル命令実行に必要なベクトル
データを該主ベクトル命令実行手段に転送する手段を有
する第3項のアレイプロセッサ。 7、該アレイ命令実行手段を構成する各ベクトル命令実
行手段は該転送手段で転送される、各ベクトル命令実行
手段がそれぞれ独立に処理すべきベクトル長、処理すべ
き該主記憶上のベクトルデータの先頭アドレス、該ベク
トルデータのアドレス増分値を保持し、かつ制御に用い
る手段を有する第4項のアレイプロセッサ。
[Claims] 1. A first means for obtaining one-dimensional array data or scalar data by executing a vector instruction that instructs an operation on one-dimensional array data; and an array that instructs an operation on two-dimensional array data. a plurality of second means for executing the instruction, each of which executes an operation instructed by the array instruction on one one-dimensional array data constituting the two-dimensional array data; When the command requests one-dimensional array data as result data, one element of the resultant one-dimensional array data is obtained, and when the array instruction requests two-dimensional array data as result data, it obtains one element of the resultant one-dimensional array data. The first means includes a plurality of first vector registers, a plurality of first scalar registers, and a first pipe. a line arithmetic unit, a means for fetching a vector instruction or an array instruction, a means for decoding whether the fetched instruction is a vector instruction or an array instruction, and when the decoded instruction is a vector instruction, the first vector register and the first means for controlling the scalar register and the first pipeline arithmetic unit to execute the decoded vector instruction; and when the operation result of the fetched vector instruction is one-dimensional array data, the one-dimensional array data is means for sending each element to a corresponding one of the plurality of second means, and storing the element of the one-dimensional array data calculated by each of the plurality of means in one of the first vector registers; each of the second means comprises a plurality of second vector registers, a plurality of second scalar registers, a second pipeline arithmetic unit, and an array in which the fetched instructions are arranged. At the time of the instruction, the second vector register, the second scalar register, and the second pipeline arithmetic unit are controlled to fetch one dimension of the two-dimensional array data specified by the fetched instruction. means for executing the fetched array instruction on array data; and when the execution result data is one element of one-dimensional array data, means for sending the one element to the first means; means for storing one of the elements sent by the first means into one of the second scalar registers. 2. A main memory that stores scalar data, vector data, and array data, and stores scalar instruction sequences and vector/array instruction sequences separately; scalar instruction execution means for reading scalar data, decoding and executing the read scalar instruction, and storing the scalar data obtained by the execution in the main storage device; A vector array instruction execution means reads an instruction sequence, vector data, or array data and stores the vector or array data obtained by the execution in the main storage device, and the scalar instruction execution means executes the vector array instruction sequence. an array processor having means for generating data necessary for the scalar instruction in response to the scalar instruction. 3. The vector array instruction execution means reads the vector array instruction from the main memory, and if the vector instruction is distinguished from the array instruction and the vector array instruction is a vector instruction, the vector array instruction is read from the main memory. main vector instruction execution means for reading and executing vector data, and storing vector data obtained by the execution in the main storage device;
If the vector array instruction is an array instruction, a second item comprising array instruction execution means for reading array data from the main memory, executing it, and storing array data obtained by the execution in the main memory. array processor. 4. The array instruction execution means decodes the array instruction as a vector instruction, divides the array data into a plurality of vector data from the main memory, reads them in parallel, executes them in parallel, and reads the array data into a plurality of vector data obtained by the execution. 4. The array processor according to claim 3, comprising a plurality of vector instruction execution means for storing data in parallel as array data in the main memory. 5. The main vector instruction execution means is an array according to item 4, having means for transferring data necessary for execution of the plurality of vector instruction execution means and vector data necessary for the array instruction to the plurality of instruction execution means. processor. 6. The array processor according to item 3, wherein the plurality of vector instruction execution means includes means for transferring vector data necessary for vector instruction execution performed by the main vector instruction execution means to the main vector instruction execution means. 7. Each vector instruction execution means constituting the array instruction execution means transfers the length of the vector to be processed independently by each vector instruction execution means and the vector data on the main memory to be processed, which is transferred by the transfer means. 4. The array processor according to item 4, having means for holding a start address and an address increment value of the vector data, and for use in control.
JP26637487A 1987-10-23 1987-10-23 Array processor Pending JPS63118875A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26637487A JPS63118875A (en) 1987-10-23 1987-10-23 Array processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26637487A JPS63118875A (en) 1987-10-23 1987-10-23 Array processor

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP57014989A Division JPS58134357A (en) 1982-02-03 1982-02-03 Array processor

Publications (1)

Publication Number Publication Date
JPS63118875A true JPS63118875A (en) 1988-05-23

Family

ID=17430053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26637487A Pending JPS63118875A (en) 1987-10-23 1987-10-23 Array processor

Country Status (1)

Country Link
JP (1) JPS63118875A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02131713A (en) * 1988-11-14 1990-05-21 Naka Tech Lab Front part structure of mail box

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5479532A (en) * 1977-12-07 1979-06-25 Fujitsu Ltd Array data arithmetic processing unit
JPS5652469A (en) * 1979-07-10 1981-05-11 Texas Instruments Inc Microvector multiprocessor
JPS5685157A (en) * 1979-12-15 1981-07-11 Toshiba Corp Information processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5479532A (en) * 1977-12-07 1979-06-25 Fujitsu Ltd Array data arithmetic processing unit
JPS5652469A (en) * 1979-07-10 1981-05-11 Texas Instruments Inc Microvector multiprocessor
JPS5685157A (en) * 1979-12-15 1981-07-11 Toshiba Corp Information processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02131713A (en) * 1988-11-14 1990-05-21 Naka Tech Lab Front part structure of mail box
JPH0551285B2 (en) * 1988-11-14 1993-08-02 Naka Tech Lab

Similar Documents

Publication Publication Date Title
JPS6363945B2 (en)
CA1068825A (en) Computer vector register processing
US4881168A (en) Vector processor with vector data compression/expansion capability
EP0138451B1 (en) Vector data processing system for indirect address instructions
EP0460599B1 (en) Massively parallel processor including queue-based message delivery system
US11860790B2 (en) Streaming engine with separately selectable element and group duplication
US11714646B2 (en) Streaming engine with early exit from loop levels supporting early exit loops and irregular loops
Fernstrom et al. LUCAS associative array processor: design, programming and application studies
US20180173532A1 (en) Streaming engine with multi dimensional circular addressing selectable at each dimension
US11847453B2 (en) Stream engine with element promotion and decimation modes
US6269435B1 (en) System and method for implementing conditional vector operations in which an input vector containing multiple operands to be used in conditional operations is divided into two or more output vectors based on a condition vector
US11804858B2 (en) Butterfly network on load data return
US20200050573A1 (en) Superimposing butterfly network controls for pattern combinations
US5297255A (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
US20240054098A1 (en) Fetching vector data elements with padding
JP2753240B2 (en) Parallel processor
US20190004853A1 (en) Streaming engine with short cut start instructions
US5710932A (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
EP0521486B1 (en) Hierarchical structure processor
JPS63118875A (en) Array processor
EP0326164A2 (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
US20240126549A1 (en) Stream engine with element promotion and decimation modes
JPS60173653A (en) Dma controller
JPS6160473B2 (en)
JPH0248770A (en) Information processing device