JPS60136876A - Vector processor - Google Patents

Vector processor

Info

Publication number
JPS60136876A
JPS60136876A JP58244043A JP24404383A JPS60136876A JP S60136876 A JPS60136876 A JP S60136876A JP 58244043 A JP58244043 A JP 58244043A JP 24404383 A JP24404383 A JP 24404383A JP S60136876 A JPS60136876 A JP S60136876A
Authority
JP
Japan
Prior art keywords
random number
vector
bus
instruction
register
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
JP58244043A
Other languages
Japanese (ja)
Inventor
Tomoo Aoyama
青山 智夫
Koichi Ishii
石井 幸一
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
Hitachi Computer Engineering Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Computer Engineering Co 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, Hitachi Computer Engineering Co Ltd filed Critical Hitachi Ltd
Priority to JP58244043A priority Critical patent/JPS60136876A/en
Publication of JPS60136876A publication Critical patent/JPS60136876A/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

Abstract

PURPOSE:To allow optional vector operation processing in which random number columns are used by using plural random number generators, and generating the optional random number columns in parallel. CONSTITUTION:A control circuit 2 reads the vector instruction from a main storage device 1 by using a bus 10, and decodes the instruction. When a vector register 4 specifiers random number generation and the person who has written the generated random number, the control circuit 2 starts a random number generator 6 through a bus 15. In addition, the control circuit 2 makes a switching circuit 18 operate by using a bus 12, and gives the instruction to write the results in the vector register 4 by using a bus 18. When the bector instruction is the operation instruction, the control circuit 2 connects input buses between the vector register 4 and vector operator 5.

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は乱数発生器を具備したベクトル処理装置に係υ
、特に高渚に乱数列を発生する必要のあるモンテカルロ
シミュレーション実M に好適なベクトル処理装置に関
する。
[Detailed Description of the Invention] [Field of Application of the Invention] The present invention relates to a vector processing device equipped with a random number generator.
In particular, the present invention relates to a vector processing device suitable for Monte Carlo simulations in which it is necessary to generate a random number sequence in Takagi.

〔発明の背景〕[Background of the invention]

従来のベクトル処理装置によって、乱数列を用いたベク
トル演算処理(たとえばモンテカルロ・シミュレーショ
ンなど)を実施する場合、ベクトル演算処理の基になる
乱数列は主記憶装置内をこ保存し、これをメモリリクエ
スタによってベクトルレジスタにロードするか、1次1
teration命◆によって合同法によってベクトル
レジスタ上に乱数列を生成する方法が採用されて来た。
When performing vector arithmetic processing using a random number sequence (for example, Monte Carlo simulation) using a conventional vector processing device, the random number sequence that is the basis of the vector arithmetic processing is stored in the main memory, and is transferred to the memory requester. or load it into a vector register by
A method has been adopted in which a random number sequence is generated on a vector register by a congruence method according to the teration command ◆.

しかし前者の方法では、主記憶装置内ら乱数列をローデ
ィングするために、複数メモリリクエスタ間の競合によ
るデータ転送速度の低下、および主記憶上の制約からも
たらされる不十分な乱数個数等の欠点を有していた。一
方後者の方法では、1次1teration命◆即ち、
x;、+1=x;、 + a;、 −1−4g、 ’*
型の計算の逐次性から来るベクトル演算速度の低下(最
近のベークトル計算機では上記の逐次型計算シ他の一般
のベクトル計算に比べ約AOa度の処理速度が限度であ
る。)によって、乱数列生成に多くの計算機時間を費す
欠点があった。
However, the former method loads a random number sequence from the main memory, so it suffers from drawbacks such as a reduction in data transfer speed due to contention between multiple memory requesters, and an insufficient number of random numbers due to main memory constraints. had. On the other hand, in the latter method, the first-order 1teration order ◆ that is,
x;, +1=x;, + a;, -1-4g, '*
Due to the slowdown in vector calculation speed due to the sequential nature of type calculations (recent vector calculations have a processing speed of approximately AOa degrees, which is the limit for the above-mentioned sequential type calculations compared to other general vector calculations), it is difficult to generate random number sequences. had the disadvantage of consuming a lot of computer time.

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

本発明の目的は、ベクトル処理装置内に、複数個の乱数
発生器を備え、当該発生器によって任意の乱数列を並列
的に発生せしめ、かつ当該乱数列をベクトル命令によっ
て複数個のベクトルレジスタに移行せしめ、該ベクトル
レジスタ上の乱数列を用いて任意のベクトル処理を行う
ことを可能としたベクトル処理装置を提供することにあ
る。
An object of the present invention is to provide a vector processing device with a plurality of random number generators, use the generators to generate arbitrary random number sequences in parallel, and store the random number sequences in a plurality of vector registers using vector instructions. The object of the present invention is to provide a vector processing device that can perform arbitrary vector processing using a random number sequence on the vector register.

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

ベクトル処理装置において、乱数列を生成する場合、そ
の乱数列が満足すべき条件は、1)再現性がある、 2)乱数発生速度がマシンサイクルピッチに近い高速度
で、かつ乱数列がスカラー(逐次)計算機と同様であシ
、かつ並列的に複数個の乱数発生器から乱数列を得るこ
とができ、3)任意の乱数列を容易ζこ指定できる必要
がある0 以上の3条件を満足するアルゴリズムの一つとして、「
合同法」による乱数発生法がある。
When generating a random number sequence in a vector processing device, the conditions that the random number sequence must satisfy are: 1) it is reproducible, 2) the random number generation speed is high, close to the machine cycle pitch, and the random number sequence is a scalar ( (sequential) similar to a computer, and can obtain a random number sequence from multiple random number generators in parallel, and (3) satisfies the above three conditions: it must be possible to easily specify any random number sequence. As one of the algorithms to
There is a random number generation method using the congruence method.

しかし、この方法は次のような逐次計算を行うので、 xj、+、= mod (x↓妊α、θ) ・・・曲■
ベクトル処理装置のベクトル演算器に適合しない。ここ
でθは任意の正数(通常231にとられる)、αは正の
奇数、modは剰余をとることを意味する。α、θの値
については、 ’ Seminumerical Algorithm
s 、 Random Numbers 。
However, this method performs the following sequential calculations, so xj, +, = mod (x↓pregnancy α, θ)... Song ■
It is not compatible with the vector arithmetic unit of the vector processing device. Here, θ is any positive number (usually taken as 231), α is a positive odd number, and mod means the remainder. For the values of α and θ, 'Seminumerical Algorithm
s, Random Numbers.

the art of Computer Progr
aming Volume II (2nded 、 
) ’、 D 、E 、Knuth 、 19EN 、
 Addison −Wesleyに説明されている。
the art of Computer Progr.
aming Volume II (2nded,
)', D, E, Knuth, 19EN,
Addison-Wesley.

■式を次のように変形すると、 x、+2二mtrcL (mod (x4 餐a 、θ
)簀α、θ)= mod (mad (αζθ)+xB
、θ )・・旧■合同法の漸化式はXお+2とxLの関
係を示すものになシ、2インデツクス離れた式となる。
■If we transform the formula as follows, we get x, +2 mtrcL (mod (x4 supper a, θ
) α, θ) = mod (mad (αζθ) + xB
, θ )...The recurrence formula of the old congruence method does not represent the relationship between X+2 and xL, and is a formula that is two indexes apart.

このことはX。、”1なる2個の初期値(x、はX。か
ら逐次処理でめられる)から出発して、”O→x2→X
→・・・・・・、X、→X、→xs→・・・・・・ と
計算を進めていくことによシ、2並列に乱数列を発生で
きることを示す。
This is X. , "Starting from two initial values of 1 (x, is found by sequential processing from X), "O→x2→X
By proceeding with the calculation as →...,X, →X, →xs→..., we show that it is possible to generate two random number sequences in parallel.

同様にしてルインデクス離れた式、 x4+、Z= mocL (mod (an 、θ)*
JA、θ) −=・・・■と”ON ”j 、・・・・
・・xnなる初期値よシ、ル並列に乱数列を発生できる
In the same way, the formula that is separated by the index is x4+, Z= mocL (mod (an, θ)*
JA, θ) -=...■ and "ON"j,...
...A random number sequence can be generated in parallel based on the initial value xn.

この性質を利用しn−1ステ一ジ段数のパイプライン乗
算器に連続的に(”Ol”j、・・・・・・xn) 列
を入力することによシ、第1図に示すように、マシンサ
イクルピッチに乱数列をめることができる。この方式は
逐次的な合同法による乱数発生方式をベクトル演算器の
ステージ段数個+1の独立な演算方式に変換したことを
意味している。従ってこの方式をさらに拡張し、m個の
複数ベクトル乗算器群から成る乱数発生速度こ適用する
場合、ベクトル乗算器のステージ段数をn−1とすると
、m+nの独立演算式を作れば良いことになる。このm
餐ル独立式は、前述の0式の61項をαm”ルとすれば
よい。即ち、第1図の処理を実現する論理構成のベクト
ル乗算器を複数個並列に設置し、乗数mad (αル、
θ)をmod(α7L+ m 、θ)と置換するだけで
、合同法による乱数列を4マシンサイクルピツチiこベ
クトルレジスタ上に得ることが出来る。この並列乱数発
生器を具備したベクトル処理装置によシ、乱数列を用い
るベクトル演算処理を従来処理装置では不可能であった
ような超高速で実施できる。
Utilizing this property, by continuously inputting ("Ol"j,...xn) columns to a pipeline multiplier with n-1 stages, the In addition, it is possible to insert a random number sequence into the machine cycle pitch. This method means that the random number generation method using the sequential congruence method has been converted into an independent calculation method using the number of stages of the vector arithmetic unit +1. Therefore, if this method is further expanded and applied to the random number generation rate consisting of a group of m multiple vector multipliers, if the number of stages of the vector multiplier is n-1, it is sufficient to create m+n independent calculation formulas. Become. This m
For the independent equation, the 61st term of the above-mentioned equation 0 can be set to αm''.In other words, a plurality of vector multipliers with a logical configuration that realizes the processing shown in FIG. 1 are installed in parallel, and the multiplier mad (α le,
By simply replacing θ) with mod(α7L+m, θ), a random number sequence by the congruence method can be obtained on the vector register at a pitch of 4 machine cycles. A vector processing device equipped with this parallel random number generator can perform vector arithmetic processing using a random number sequence at an extremely high speed that was not possible with conventional processing devices.

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

以下、本発明の一実施例を第2.3図を用いて説明する
Hereinafter, one embodiment of the present invention will be described using FIG. 2.3.

第2図は本発明を適用したベクトル処理装置の一例であ
る。第2図において、1は主記憶装置−12は制御回路
、3はメモリリクエスタ、4はベクトルレジスタ、5は
ベクトル演算器、6は乱数発生器、7および8はベクト
ルレジスタの出力とベクトル演算器、メモリリクエスタ
(以後両者を総称してリソースと呼ぶ)間のデータバス
を動的に生成するスイッチング回路である。
FIG. 2 shows an example of a vector processing device to which the present invention is applied. In FIG. 2, 1 is the main memory, 12 is the control circuit, 3 is the memory requester, 4 is the vector register, 5 is the vector arithmetic unit, 6 is the random number generator, and 7 and 8 are the output of the vector register and the vector arithmetic unit. , a switching circuit that dynamically generates a data bus between memory requesters (hereinafter both will be collectively referred to as resources).

メモリリクエスタ3、ベクトルレジスタ4、ベクトル演
算器5および乱数発生器6の右下に表示されている×ル
は当該回路が複数個存在することを示し、nに意味はな
い。
The x displayed at the lower right of the memory requester 3, vector register 4, vector arithmetic unit 5, and random number generator 6 indicates that a plurality of such circuits exist, and n has no meaning.

第2図に示されたベクトル処理装置が起動されると、制
御回路2はバス10を用いてベクトル命令を主記憶装置
1から読出し、次いで解読する。ベクトル命令列に主記
憶からのロード又はストアが指定されている場合でかつ
処理を行っていないメモリリクエスタ6が存在する場合
、制御回路2はバス11を用いてメモIJ IJクエス
タ3に起動を指示する。同時にロード命令の場合ζバス
12を介してスイッチング回路8に作用し、ベクトル命
令で指定されたベクトルレジスタtと起動対象となった
メモリリクエスタの出力バス16との結合を行い、主記
憶装置1のベクトル命令で指定されたアドレスからデー
タを読出し、・指定されたベクトルレジスタ4に格納す
る。ストア命令の場合、制御回路2はバス16を介して
スイッチング回路7に作用し、ベクトルレジスタ4とバ
ス17、メモリリクエスタ60間のデータバスを生成す
る。
When the vector processing device shown in FIG. 2 is activated, control circuit 2 uses bus 10 to read vector instructions from main memory 1 and then decode them. When a load or store from main memory is specified in the vector instruction sequence and there is a memory requester 6 that is not performing processing, the control circuit 2 uses the bus 11 to instruct the memory requester 3 to start up. do. At the same time, in the case of a load instruction, it acts on the switching circuit 8 via the ζ bus 12, connects the vector register t specified by the vector instruction with the output bus 16 of the memory requester targeted for activation, and Read data from the address specified by the vector instruction and store it in the specified vector register 4. In the case of a store instruction, the control circuit 2 acts on the switching circuit 7 via the bus 16 to generate a data bus between the vector register 4, the bus 17, and the memory requester 60.

ベクトル命令が演算命令の場合で当該演算器が使用可能
状態の場合、制御回路2はバス13を介してベクトル命
令のオペランドに指定されているベクトルレジスタ4と
ベクトル演算器50入力パス間の結合を行う。同時にバ
ス14を介してベクトル演算器5を起動し、かつバス1
2を介゛して演算結果を書込むベクトルレジスタ4との
間のデータバスの結合を行う。
When the vector instruction is an arithmetic instruction and the arithmetic unit is in a usable state, the control circuit 2 connects the input path of the vector register 4 specified as the operand of the vector instruction to the vector arithmetic unit 50 via the bus 13. conduct. At the same time, the vector calculator 5 is activated via the bus 14, and the bus 1
2, a data bus is connected to the vector register 4 into which the operation results are written.

ベクトル命令で乱数発生と発生乱数の書込先ベクトルレ
ジスタ4が指定されると、制御回路2はバス15を介し
て乱数発生器6を起動し、かつバス12を用いてスイッ
チング回路8を動作させ、結果をバス18を用いてベク
トルレジスタ4に書込むように指示を与える。
When random number generation and the write destination vector register 4 of the generated random numbers are specified by a vector instruction, the control circuit 2 activates the random number generator 6 via the bus 15 and operates the switching circuit 8 using the bus 12. , gives an instruction to write the result into the vector register 4 using the bus 18.

以上の基本的処理を組合せて、ユーザの目的とする乱数
列を用いるベクトル演算処理、たとえばシミュレーショ
ン等をベクトル処理装置によって行うことが出来る。
By combining the above-mentioned basic processes, the vector processing device can perform vector calculation processing using a random number sequence, such as simulation, etc., as desired by the user.

第5図は第2面の乱数発生器6の概略を示したものであ
る。当該発生器に起動指示が制御回路2によって行われ
るよシ以前、乱数発生器内に存在するベクトル長保持レ
ジスタ20、および乗数即ちmod (αル、θ)を保
持するレジスタ21に、適切な値が乱数発生指示ベクト
ル命令とは異なるセットアツプ命令によって、制御回路
2およびバス15の2種類のオーダ情報信号線15aお
よ。
FIG. 5 schematically shows the random number generator 6 on the second side. Before the control circuit 2 instructs the generator to start, appropriate values are stored in the vector length holding register 20 and the register 21 holding the multipliers, mod (alpha, θ), which are present in the random number generator. The two types of order information signal lines 15a and 15 of the control circuit 2 and the bus 15 are activated by a set-up instruction different from the random number generation instruction vector instruction.

び15bを用いてセットされる。レジスタ20.21に
セットされた値が乱数列の性質を決定するので、ユーザ
はこの値をプログラムによって可変とし、任意の性質を
持った乱数列を生成するこ゛とができる。
and 15b. Since the values set in the registers 20 and 21 determine the properties of the random number sequence, the user can change these values by a program to generate a random number sequence with arbitrary properties.

バス15ヲ介してのセットアツプが終了した後4・当該
乱数−発生器に起動がかけられると、セレクタ22.2
3.25.26およびスイッチング回路24がイニシャ
ライズされ、特定の入力(以下詳細に説明する)と出力
バスの結合を行う。
After the setup via the bus 15 is completed, the random number generator is activated and the selector 22.2 is activated.
3.25.26 and switching circuit 24 are initialized to provide coupling of specific inputs (described in detail below) and output buses.

次に乱数発生器内のメモリリクエスタ28はバス50を
介して主記憶装置1に乱数初期値(、ro、”1 、”
2 、・・・・・・、21−ユ;ここでルは乗算器のス
テージL数から1を加算した値である)を読出すようデ
Next, the memory requester 28 in the random number generator stores the random number initial value (, ro, "1," in the main memory 1 via the bus 50).
2, .

求する。当該読出し要求に対して、主記憶装置1はメモ
リサイクルタイム後、読出データが有効であることを示
すための信号である読出しバリッドとデータ〜をバス5
1上に送出する。メモリリクエスタ28は当該データを
バリッドとデータに分離し、それぞれバス52.53 
杏こ送出する。この時セレクタ22はセットアツプ処理
により、バリッドカウンタ29とバス52を結合してい
る。
seek In response to the read request, after the memory cycle time, the main memory device 1 sends read valid and data signals to the bus 5, which are signals to indicate that the read data is valid.
Send on 1. The memory requester 28 separates the data into valid data and data, and sends them to buses 52 and 53, respectively.
Anko is sent out. At this time, the selector 22 connects the valid counter 29 and the bus 52 through the setup process.

主記憶装置1からの乱数初期値読出しバリッドはル個存
在する。このバリッドをカウンタ29によって積算し、
カウントアツプ値をバス54上に送出する。一方リクエ
スタ28によって分離されたデータ信号は、ラッチ30
に保持され、必要なバリッドカウンタ29の演算が完了
するまでの間のタイミングディレィをかけられて後、セ
レクタ26を介してRAM31にストアされる。ここで
はバリッドカウンタ29の処理を1クロツクとした。当
該処理がルクロックの場合、ラッチ回路30はル段必要
となる。バリッドカウンタ29のパス54上の出力値は
RAM 31の書込アドレスを示す。以上で乱数初期値
(”01”1、・・・・、Jcn)がRAM31上にセ
ットされる。
There are two valid random number initial value reads from the main storage device 1. This valid value is accumulated by the counter 29,
The count up value is sent on bus 54. On the other hand, the data signal separated by the requester 28 is transmitted to the latch 30.
The data is held in the RAM 31 via the selector 26 after being subjected to a timing delay until the necessary calculation of the valid counter 29 is completed. Here, the processing of the valid counter 29 is set to one clock. When the processing is a double clock, two stages of the latch circuit 30 are required. The output value on path 54 of valid counter 29 indicates the write address of RAM 31. With the above steps, the random number initial value ("01" 1, . . . , Jcn) is set on the RAM 31.

バリッドカウンタ29の値は毎クロツク比較回路32に
よって比較される。乱数発生器6が起動゛された際、セ
レクタ23は、乗算器のステージ段数+1の定数を保持
するROM55の出力を比較回路62へ送出するようデ
ータバス接続を行っているため、主記憶装置1から送出
されるバリッドの数がル個になると、パス55上の比較
回路32の出力は′1′となる。スイッチング回路24
は乱数発生器6が起動される際、パス55と56を結合
するようリセットがかけられているので、主記憶装置1
からのバリッド積算数がル個となった時、当該検出情報
はパス56を介して、メモリリクエスタ28の動作を停
止させ、セレクタ22に作用し、タイミングジェネレー
タ64のクロックパルスをバリッドカウンタ290入力
とし、バリッドカウンタ29をリセット(0クリア)シ
、カッカラ/り35に作用しカウント値を+1する。こ
こでカウンタ35はその値が0→1→2→0→・・とな
るサイクルカウンタである。またセレクタ37に作用し
、カウンタ29のバリッド信号とアドレスをパス18a
上に送出できるようパス54と18aの結合を行う。−
以後、本発明のベクトル処理装置ではパス18a、bを
通じてベクトルレジスタ4上に乱数をローディングでき
る。
The value of the valid counter 29 is compared by a comparison circuit 32 every clock. When the random number generator 6 is activated, the selector 23 connects the data bus so that the output of the ROM 55 holding a constant equal to the number of multiplier stages + 1 is sent to the comparator circuit 62. When the number of valid signals sent from the path 55 becomes 1, the output of the comparison circuit 32 on the path 55 becomes '1'. switching circuit 24
is reset to connect paths 55 and 56 when the random number generator 6 is activated, so the main memory 1
When the number of valid accumulated values from 1 to 1 reaches 1, the detection information is passed through the path 56 to stop the operation of the memory requester 28, act on the selector 22, and input the clock pulse of the timing generator 64 to the valid counter 290. , resets the valid counter 29 (clears it to 0), acts on the count/return 35, and increases the count value by 1. Here, the counter 35 is a cycle counter whose value changes from 0→1→2→0→.... It also acts on the selector 37 and passes the valid signal and address of the counter 29 to the path 18a.
The paths 54 and 18a are connected so that they can be sent upward. −
Thereafter, in the vector processing device of the present invention, random numbers can be loaded onto the vector register 4 through the paths 18a and 18b.

次にタイミングジェネレータ34の出力に同期して、カ
ウンタ29が0→1→2・・・・・とカウントアツプさ
れる。この値はパス54を通してRAM31の読出アド
レスと読出されたデータはそれぞれパス18a、 18
bを通って第2図のベクトルレジスタ4に書込まれると
同時に、セレクタ25を介してベクトル乗算器36へ送
られる。ベクトル乗算器36はレジスタ21に保持され
ている乗数との乗算を行い、演算時のオーバーフローに
よるキャリーを無視しく即ち、乗算器のデータ巾の剰余
をとることを意味する)、結果をパス57上に送出する
。この時の結果は:cn+1 、”fL+2 −1−と
いう乱数列である。レジスタ21上の乗数がmotl 
(αル+1.θ)ならば出力される乱数列はxrLやア
。1%L+m+2、・・・・・となる。
Next, in synchronization with the output of the timing generator 34, the counter 29 is counted up in the order of 0→1→2, and so on. This value is passed through the path 54, and the read address and read data of the RAM 31 are passed through the paths 18a and 18, respectively.
b and is written into the vector register 4 in FIG. The vector multiplier 36 performs multiplication with the multiplier held in the register 21, ignores carry due to overflow during operation (in other words, takes the remainder of the data width of the multiplier), and sends the result onto the path 57. Send to. The result at this time is a random number sequence of cn+1, "fL+2 -1-.The multiplier on register 21 is motl
If (α+1.θ), the output random number sequence is xrL or a. 1%L+m+2,...

一方、カウンタ29の出力が乗算器のステージ段数+1
になると、比較回路32の出力は再び′1′となる。こ
の時スイッチング回路24はパス55と58を接続して
いるので、パス58を介してセレクタ26はRAM 5
1と乗算器出力パス57との結合を行う。またパス58
上の信号によって、セレクタ25はパス57と乗算器入
力バスとの結合を行い、セレクタ23はベクトル長レジ
スタ20と比較回路32との結合を行う。同時にパス5
8上の信号によってサイクルカウンタ35はカウントア
ツプされる。この時点までの乱数発生器の動作と発生し
た乱数の要素番号を第4図に示した( time −2
の時点)。tll’5図において、カウンタ29カ(ル
+1)を示す時、セレクタ26上のパス57上のデータ
は第4図で示すと乱数列f、n+4(又はxn+□、)
である。従ってRAMglには乱数列”yl+ 1Xユ
+2、・・・・・・が1クロツクピツチに書込まれてい
く。
On the other hand, the output of the counter 29 is the number of stages of the multiplier +1
Then, the output of the comparison circuit 32 becomes '1' again. At this time, the switching circuit 24 connects the paths 55 and 58, so the selector 26 connects the RAM 5 via the path 58.
1 and the multiplier output path 57. Also pass 58
The above signals cause selector 25 to couple path 57 to the multiplier input bus, and selector 23 to couple vector length register 20 to comparison circuit 32. Pass 5 at the same time
The cycle counter 35 is counted up by the signal on the signal 8. The operation of the random number generator up to this point and the element numbers of the generated random numbers are shown in Figure 4 (time -2
). In Figure tll'5, when the counter 29 indicates number +1, the data on the path 57 on the selector 26 is a random number sequence f, n+4 (or xn+□,) as shown in Figure 4.
It is. Therefore, a random number sequence "yl+1Xu+2, . . . is written into RAMgl at one clock pitch.

カウンタ29の値がベクトル長に等しくなると、比較回
路32の出力は11′となり、パス15cを介して乗算
器36の動作を停止させる。同時にパス15(このパス
は双方向である)を介して制御回路2に乱数発生処理が
終了したことが報告される0 第2図において、ここで説明した乱数発生器の出力、即
ち乱数列はパス18を用いて、第4図のtime−1以
降、マシンサイクルピッチに読出し可能である。もみ当
該乱数発生器内のRAM 31が複数バンク構成からな
ル、それらを制御する制御回路を具備し、1マシンサイ
クルにRAMに対して読出し、書込みを行うことのでき
る機能 ゛を有する場合、第4図time−1以降の任
意のタイミングで乱数列をベクトルレジスタ4に読出し
乱数列を用いるベクトル演算処理に用いることができる
。また乱数発生が終了した後でも、第3図の乱数発生器
内のRAM31内に発生乱数列が保持されているので、
当該数列が必要となる任意のタイミングで数列をベクト
ルレジスタ4に移動させ、ベクトル演算処理を行うこと
ができる0 目的の乱数列を一度ベクトル長だけ発生させ、さらにも
う一度、前の結果を用いて、即ち連続する乱数列を発生
させる場合、前回の結果を主記憶装置1に書込み、次の
回の乱数発生時に当該結果の後半部分を第6図のRAM
31にイニシャルセットすれば良い。この処理をブ胃グ
ラムで連続的に行うよう指定することによシ、任意の長
さの乱数列を、主記憶とベクトルレジスタとのデータ転
送を行うことなく、ベクトル処理装置内に発生すること
ができる。
When the value of the counter 29 becomes equal to the vector length, the output of the comparison circuit 32 becomes 11', and the operation of the multiplier 36 is stopped via the path 15c. At the same time, the completion of the random number generation process is reported to the control circuit 2 via path 15 (this path is bidirectional). Using the path 18, it is possible to read data at machine cycle pitch from time-1 in FIG. 4 onwards. If the RAM 31 in the random number generator has a plurality of banks, is equipped with a control circuit to control them, and has a function that allows reading and writing to the RAM in one machine cycle, The random number sequence can be read into the vector register 4 at any timing after time-1 in FIG. 4 and used for vector calculation processing using the random number sequence. Furthermore, even after random number generation is finished, the generated random number sequence is retained in the RAM 31 in the random number generator shown in FIG.
The sequence of numbers can be moved to the vector register 4 at any timing when the sequence is needed, and vector calculation processing can be performed.0 Generate the desired random number sequence once for the length of the vector, and then use the previous result again to generate the desired random number sequence. That is, when generating a continuous random number sequence, the previous result is written to the main memory 1, and when the next random number is generated, the latter part of the result is written to the RAM shown in FIG.
Just initialize it to 31. By specifying that this processing is to be performed continuously using a vector program, a random number sequence of any length can be generated within the vector processing device without data transfer between the main memory and the vector register. I can do it.

〔発明の効果〕〔Effect of the invention〕

本発明によれば複数個の乱数発生器を用いて、任意の乱
数列を並列的に発生でき、これをベクトルレジスタに格
納できるので、ベクトルレジスタのチェイニング機能等
によって種々のベクトル演算器に供給し、乱数列を用い
る任意のベクトル演算処理を高速に行うことができる。
According to the present invention, arbitrary random number sequences can be generated in parallel using a plurality of random number generators, and this can be stored in a vector register, so that it can be supplied to various vector arithmetic units using the chaining function of the vector register. However, arbitrary vector calculation processing using a random number sequence can be performed at high speed.

本発明の方式を用いた2並列モンテカルロシミュレーシ
ョンの概念図を第5図に示す。
FIG. 5 shows a conceptual diagram of a two-parallel Monte Carlo simulation using the method of the present invention.

第5図において、101は本発明の乱数発生器、102
はベクトルレジスタ、106はベクトル演算器である。
In FIG. 5, 101 is a random number generator of the present invention, 102
is a vector register, and 106 is a vector arithmetic unit.

シミュレーション時、乱数発生器101はマシンサイク
ルピッチにベクトルレジスタ102の各番号がつけられ
たレジスタの要素に乱数列(−A)を書込む。同時にベ
クトルレジスタ102のチェイニング動作によシ、当該
レジスタに書込まれつつある乱数列を用いて、書込みと
同時に乱数列を読出し、ベクトル演算器103はシミュ
レーション演算を並列的に行い、結果をベクトルレジス
タ102に書込む。
During simulation, the random number generator 101 writes a random number sequence (-A) into the register elements assigned respective numbers in the vector register 102 at machine cycle pitches. At the same time, by using the chaining operation of the vector register 102, the random number sequence being written to the register is used to read out the random number sequence at the same time as writing, and the vector arithmetic unit 103 performs simulation calculations in parallel, and converts the result into a vector. Write to register 102.

以上のようにして2並列のモンテカルロシミュレーショ
ンがベクトル処理装置によって実現できる。2並列処理
をm並列処理に拡張することによ)、ユーザプログラム
から見た処理速度はマシンサイクルピッチから予想され
るそれのm倍となり、ベクトル処理装置の性能向上を期
待できる。
As described above, two-parallel Monte Carlo simulation can be realized by the vector processing device. By expanding 2-parallel processing to m-parallel processing), the processing speed seen from the user program becomes m times that expected from the machine cycle pitch, and an improvement in the performance of the vector processing device can be expected.

第5図の乱数発生は偶奇を分離しているが、シミュレー
ションの対象の現象によっては、(:to。
The random number generation shown in Fig. 5 separates even and odd numbers, but depending on the phenomenon to be simulated, (:to.

・・・・・−)と(:r:ユや1.・・・・・・−T2
rL)列を分離したシ、独立の乱数列(3:o、 、T
、 、・・・・・・翫)と(ya 、2+ 、・・・・
h)を2種連続的に発生した方がよく問題に適合する場
合がある。このような場合も、本発明のベクトル処理装
置に内蔵されている乱数発生器を用いることによυ、そ
のセットアツプ条件、即ち初期乱数列と乗数の剰余を目
的とする乱数列に合致させて乱数発生器に与えることに
よシ、何らハードウェアの変更を行うことなく目的乱数
列を高速に発生できる利点を有する。
......-) and (:r:yuya1.....-T2
rL) column is separated and an independent random number sequence (3:o, ,T
, , ... 翫) and (ya , 2+ , ...
There are cases where it is better to generate two types of h) in succession to better solve the problem. In such a case, by using the random number generator built into the vector processing device of the present invention, the set-up conditions, that is, the initial random number sequence and the remainder of the multiplier can be matched to the desired random number sequence. By supplying it to a random number generator, it has the advantage that a target random number sequence can be generated at high speed without making any hardware changes.

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

第1図は、乱数発生器内の乗算器の入力データ、演算処
理、および出力を概念的に示した図、第2図は本発明に
基づくベクトル処理装置の概略ブロック図、第6図は第
2図のベクトル処理装置内の乱数発生器の概略ブロック
図、第4図は第3図の乱数発生器の時間関係を示した図
、第5図は本発明に基づく乱数発生器を複数用いた並列
演算方式の概念図である。 1・・・主記憶装置、 2・・・制御回路、3・・・メ
モリリクエスタ、4・・・ベクトルレジスタ、5・・・
ベクトル演算器、6・・・乱数発生器、7.8・・スイ
ッチング回路、 28・・・内蔵メモリリクエスタ、 29・・・バリッドカウンタ、31・・・RAM 16
2・・・比較回路、 33・・・ROM 。 34・・、タイミングジェネレータ、 65・・・サイクルカウンタ、36・・・パイプライン
乗算器、50 、20 、21・・・レジスタ、第 1
 図 を更 第2図 第 3 図 第 + 何 11+e−1ttma−Z
FIG. 1 is a diagram conceptually showing input data, arithmetic processing, and output of a multiplier in a random number generator, FIG. 2 is a schematic block diagram of a vector processing device based on the present invention, and FIG. Figure 2 is a schematic block diagram of the random number generator in the vector processing device, Figure 4 is a diagram showing the time relationship of the random number generator in Figure 3, and Figure 5 is a diagram showing the time relationship of the random number generator in the vector processing device. FIG. 2 is a conceptual diagram of a parallel calculation method. DESCRIPTION OF SYMBOLS 1... Main memory device, 2... Control circuit, 3... Memory requester, 4... Vector register, 5...
Vector arithmetic unit, 6... Random number generator, 7.8... Switching circuit, 28... Built-in memory requester, 29... Valid counter, 31... RAM 16
2... Comparison circuit, 33... ROM. 34..., timing generator, 65... cycle counter, 36... pipeline multiplier, 50, 20, 21... register, first
Change the figure Figure 2 Figure 3 + What 11+e-1ttma-Z

Claims (1)

【特許請求の範囲】[Claims] 複数のベクトル・レジスタ、演算器およびメモリ・リク
エスタを備え、ベクトル命令を実行するベクトル処理装
置において、複数個の時分割パイプライン乱数発生器と
、当該乱数発生器で発生させられる乱数の初期値と当該
初期値を修飾する乗数値とを保持する記憶手段であって
前記初期値と乗数値がプログラムで設定されるものとを
設け、当該記憶手段に保持された前記初期値と乗数値と
に基づいてベクトル命令によシ算術乱数列を並列的に発
生せしめて複数個のベクトルレジスタに移行せしめ、当
該ベクトルレジスタ上の乱数列を用いて任意のベクトル
処理を行うことを特徴とするベクトル処理装置。
A vector processing device that is equipped with a plurality of vector registers, arithmetic units, and a memory requester and that executes vector instructions includes a plurality of time-sharing pipeline random number generators, and an initial value of the random number generated by the random number generator. A storage means for holding a multiplier value that modifies the initial value, the initial value and the multiplier value being set by a program, is provided, and based on the initial value and the multiplier value held in the storage means. A vector processing device characterized in that an arithmetic random number sequence is generated in parallel using a vector instruction and transferred to a plurality of vector registers, and arbitrary vector processing is performed using the random number sequence on the vector register.
JP58244043A 1983-12-26 1983-12-26 Vector processor Pending JPS60136876A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58244043A JPS60136876A (en) 1983-12-26 1983-12-26 Vector processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58244043A JPS60136876A (en) 1983-12-26 1983-12-26 Vector processor

Publications (1)

Publication Number Publication Date
JPS60136876A true JPS60136876A (en) 1985-07-20

Family

ID=17112864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58244043A Pending JPS60136876A (en) 1983-12-26 1983-12-26 Vector processor

Country Status (1)

Country Link
JP (1) JPS60136876A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6744012B2 (en) 2000-12-07 2004-06-01 Honda Giken Kogyo Kabushiki Kaisha Control method of arc welding and arc welder

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6744012B2 (en) 2000-12-07 2004-06-01 Honda Giken Kogyo Kabushiki Kaisha Control method of arc welding and arc welder

Similar Documents

Publication Publication Date Title
JP2501711B2 (en) One-chip digital signal processor
WO1994003860A1 (en) Massively parallel computer including auxiliary vector processor
WO1982003481A1 (en) A bit slice microprogrammable processor for signal processing applications
JP3954171B2 (en) How to fill a vector with scalar values on a computer
JPS618785A (en) Access control system for storage device
JPS6125188B2 (en)
JPS60136875A (en) Vector arithmetic device
JPS60136876A (en) Vector processor
JPS63147255A (en) Calculation processor having several series connection stages and computer and calculation applying the same
JPH02210576A (en) Integrated circuit accumulator
JPH0650512B2 (en) Data processing device
JPS6048785B2 (en) Main memory control method
JP2654451B2 (en) Data output method
JPS595941B2 (en) Data array engineering
TW202139002A (en) Multi-core processor circuit
JP3693873B2 (en) Mask bit number arithmetic unit, vector processing unit, information processing unit
JP2865483B2 (en) Data processing system and main storage controller
JPH02291073A (en) Vector data processing device
JPH05165875A (en) Vector arithmetic processor
JPS60140455A (en) Plural processing block controller
JPS63198144A (en) Direct memory access control system in multi-port memory
JPS60205647A (en) Data processor
JPS584477A (en) Control system for using pointer of plural operation devices
JPS6074080A (en) Vector data processor
JPS63262745A (en) Address forming circuit