JPH03223980A - Computer system - Google Patents
Computer systemInfo
- Publication number
- JPH03223980A JPH03223980A JP657289A JP657289A JPH03223980A JP H03223980 A JPH03223980 A JP H03223980A JP 657289 A JP657289 A JP 657289A JP 657289 A JP657289 A JP 657289A JP H03223980 A JPH03223980 A JP H03223980A
- Authority
- JP
- Japan
- Prior art keywords
- program
- data
- variable
- shift register
- processor
- 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
Links
- 230000006386 memory function Effects 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 abstract description 36
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007373 indentation Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明は電子計算機の計算方式に関するものであって、
特にデータ駆動による並列処理を取入れ効率的な演算の
可能な計算機方式に関わる。[Detailed Description of the Invention] [Field of Industrial Application] The present invention relates to a calculation method for an electronic computer,
Particularly concerned with computer systems that incorporate data-driven parallel processing and are capable of efficient calculations.
[従来の技術]
従来、演算方式の異なる主な電子計算機の方式として、
ノイマン方式、アレイプロセッサ方式、データフロ一方
式などがあった。[Conventional technology] Conventionally, the main electronic computer systems with different calculation methods were:
There were the Neumann method, the array processor method, and the data flow one-way method.
これらの内、ノイマン方式は、命令の連鎖として書かれ
たプログラムを逐次的に実行するものである。Among these, the Neumann method sequentially executes a program written as a chain of instructions.
また、アレイプロセッサ方式は、多数のプロセッサを並
列に動作させることによって、処理の高速化を図るもの
である。Furthermore, the array processor method aims to speed up processing by operating a large number of processors in parallel.
一方、データフロ一方式の電子計算機は、上述の2方式
と異なり、各々の演算がオペランドデータの揃った時点
で実行される方式(これをデータ駆動方式という)とな
っており、効率の良い並列動作が期待できる。On the other hand, data-flow type electronic computers differ from the two methods mentioned above in that each operation is executed when the operand data is ready (this is called the data-driven method), allowing for efficient parallel operation. can be expected.
[発明が解決しようとする問題点]
上述したような、従来の各電子計算機の方式において、
ノイマン方式の電子計算機のばあいは、命令を1つずつ
逐次的に実行するので、演算制御が単純なもので済むと
いう利点があるが、基本的に別個の命令を並行して行う
ことが困難であり、さらにはメモリアクセスに要する時
間によって演算速度が制約を受けるという問題点があっ
た。[Problems to be solved by the invention] In each conventional computer system as described above,
Neumann type electronic computers have the advantage of simple arithmetic control because they execute instructions one by one sequentially, but it is basically difficult to execute separate instructions in parallel. Furthermore, there is a problem in that the calculation speed is limited by the time required for memory access.
また、アレイプロセッサ方式の電子計算機の場合は、プ
ロセッサ間の同期化や通信の制御が複雑になる上に、ジ
ョブの内容やプロセッサ構成などを考慮してプログラム
を作成しなければ効率が上がらないという問題点があっ
た。In addition, in the case of array processor type computers, synchronization and communication control between processors is complicated, and efficiency cannot be improved unless programs are created taking into account job contents and processor configuration. There was a problem.
一方、データフロ一方式の電子計算機の場合は前述のよ
うにデータ駆動による処理を行うため、効率の良い並列
動作が期待できるものであるが、並列処理の余地の少な
い直列的なプログラムではノイマン方式の方が効率的で
あるという問題点があった。On the other hand, in the case of a data-flow type electronic computer, efficient parallel operation can be expected because the processing is data-driven as described above, but for serial programs with little room for parallel processing, the Neumann method is The problem was that it was more efficient.
本発明は一ヒ記問題点を解決するため創案されたもので
あり、その目的はプログラムの並列処理に適した計算部
分はデータ駆動による処理を行い、その他の部分はノイ
マン方式による処理を行うことによって効率的な計算を
行うことの可能な電子計算機を提供することにある。The present invention was created in order to solve the problems mentioned above, and its purpose is to perform data-driven processing on the calculation parts suitable for parallel processing of the program, and to perform processing on the other parts using the Neumann method. The object of the present invention is to provide an electronic computer that can perform efficient calculations.
[問題点を解決するための手段]
任意の語基後の全ての語を語単位で繰り上げる機能ある
いは任意の範囲の連続する敷詰を語単位で繰り下げる機
能のいずれか一方と、連想記憶機能によりデータの書き
込みを行う機能を有する記憶装置をシフトレジスターフ
ァイルと呼び、変数名あるいはその変数の格納領域のア
ドレスとそれらに対応するデータのいずれか、シフトレ
ジスターファイルの語に一時的に割り当てられるレジス
ター識別子、即値データ、あるいは算術演算等を示す演
算子をプログラム要素と呼び、逆ポーランド形式あるい
はそれに類する形式に照らして意味のあるプログラム要
素の並びをプログラム文と呼ぶとき、
本発明による電子計算機は以下のような特徴を有する。[Means for solving the problem] Either a function to move up all words after a given base word by word or a function to move down consecutive spreads in a given range word by word, and an associative memory function. A storage device that has the function of writing data is called a shift register file, and either the variable name or the address of the storage area of that variable and the corresponding data, or a register identifier temporarily assigned to a word in the shift register file. , immediate data, or an operator indicating an arithmetic operation is called a program element, and a sequence of program elements that has meaning in terms of reverse Polish format or a similar format is called a program statement. It has the following characteristics.
(イ)プログラム文をプログラム要素ごとに順次放送す
る主プロセッサと、
イ′ンターリーブに分割された複数のメモリバンクと、
メモリバンクに対応して設けられた、プログラム文を実
行する複数の副プロセッサとを具備する。(b) A main processor that sequentially broadcasts program statements for each program element, a plurality of memory banks divided into interleaved sections, and a plurality of sub-processors provided corresponding to the memory banks that execute program statements. Equipped with.
(rl)上記副プロセッサは主プロセッサから放送され
てきたプログラム文を格納するシフトレジスターファイ
ルと演算ユニットとを具備する。(rl) The sub-processor is equipped with a shift register file for storing program statements broadcast from the main processor and an arithmetic unit.
(ハ)上記シフトレジスターファイルへのプログラム文
の書き込みは、プログラム要素ごとに既に書き込まれて
いる領域の直後に行われる。(c) Program statements are written to the shift register file immediately after the area where each program element has already been written.
(ニ)変数名あるいはその変数に相当する領域のアドレ
スに対応するデータは連想記憶機能によりシフトレジス
ターファイルの該当する語に書き込まれる。(d) Data corresponding to the variable name or the address of the area corresponding to the variable is written into the corresponding word of the shift register file by the associative memory function.
(ホ)上記シフトレジスターファイル内に、データが揃
って実行可能となったプログラム文が検出されると、こ
のプログラム文は演算ユニットに送出されそこで演算が
実行される、演算結果はシフトレジスターファイルの上
記プログラム文が格納されていた領域に対応する語に連
想記憶機能により書き込まれる。(e) When a program statement whose data is complete and can be executed is detected in the shift register file, this program statement is sent to the arithmetic unit and the arithmetic operation is executed there.The result of the arithmetic operation is stored in the shift register file. The word corresponding to the area where the program statement was stored is written by the associative memory function.
前記電子計算機において、主プロセッサは従来のノイマ
ン型プロセッサと制御ユニットを含む構成とするとき、
主プロセッサの内臓メモリにプログラム文を保持し、ノ
イマン型プロセッサがそのプログラム文の副プロセッサ
への放送を制御ユニットに委託することにより計算を実
行させることができる。In the electronic computer, when the main processor includes a conventional Neumann type processor and a control unit,
Program statements can be held in the built-in memory of the main processor, and the Neumann processor can perform calculations by entrusting the control unit with broadcasting the program statements to the sub-processors.
[作泪]
主プロセッサから変数の計算を意味するプログラム文が
全ての副プロセッサに放送されると、演ζ算を実行する
副プロセッサでは上記プログラム文がシフトレジスター
ファイルに書き込まれ、演算のオペランドの格納領域に
直接アクセスできる副プロセッサでは上記演算を実行す
る副プロセッサ内のシフトレジスターファイルにオペラ
ンドデータを送信するように設定される−
上記演算を実行する副プロセッサ内のシフトレジスター
ファイルに送信されてきたオペランドデータは連想記憶
機能により変数名の一致する語に書き込まれる。 (本
明細書では「変数名」をその変数の格納領域のアドレス
あるいはレジスター識別子を含めた意味で用いる)
シフトレジスターファイル内に、データが揃って実行可
能となったプログラム文が検出されると、このプログラ
ム文は演算ユニットに送出される。[Sakuten] When the main processor broadcasts a program statement meaning the calculation of a variable to all the subprocessors, the subprocessor that executes the operation writes the above program statement to the shift register file and stores the operands of the operation. A subprocessor that can directly access the storage area is set to send operand data to the shift register file in the subprocessor that executes the above operation - Operands sent to the shift register file in the subprocessor that executes the above operation Data is written to words that match variable names using the associative memory function. (In this specification, "variable name" is used to include the address of the variable's storage area or register identifier.) When a program statement whose data is complete and becomes executable is detected in the shift register file, This program statement is sent to the arithmetic unit.
その際、シフトレジスターファイルでは、送出されるプ
ログラム文が格納されている領域の1語はレジスター識
別子に書換えられ、残りの語については送出と共に、以
後(以前)に位置する全ての語が繰り上がる(下がる)
ことにより間隔が詰められる。At that time, in the shift register file, one word in the area where the program statement to be sent is stored is rewritten to a register identifier, and for the remaining words, all words located after (previously) are carried forward along with the sending. (goes down)
This will narrow the gap.
演算ユニットにおいて求められた演算結果はシフトレジ
スターファイルからプログラム文が送出された際に割り
当てられたレジスター識別子をもとに、シフトレジスタ
ーファイルの該当する語に連想記憶機能により書き込ま
れる。The operation result obtained in the operation unit is written into the corresponding word of the shift register file by the associative memory function based on the register identifier assigned when the program statement was sent from the shift register file.
シフトレジスターファイル内に(変数名、データ、=)
(変数名=データを意味する)のように語が並んだ直接
的なデータの代入の形式のプログラム文が検出されると
、変数の格納領域にデータが格納される。その際、その
プログラム文が格納されているシフトレジスターファイ
ルの領域は、その以後(以前)に位置する全ての語が繰
り上がる(下がる)ことにより間隔が詰められる。In the shift register file (variable name, data, =)
When a program statement in the form of direct data assignment in which words are arranged like (variable name = data) is detected, the data is stored in the variable storage area. At this time, the space in the area of the shift register file where the program statement is stored is narrowed by moving up (down) all the words located after (before) the program statement.
[実施例]
第1図は本発明の一実施例のブロック図であって、 1
は主プロセッサ、2は通信網、 31〜3nはそれぞれ
副プロセッサ、4.〜4゜はそれぞれメモリバンクを表
している。[Embodiment] FIG. 1 is a block diagram of an embodiment of the present invention, including: 1
2 is a main processor, 2 is a communication network, 31 to 3n are sub processors, and 4. ~4° each represents a memory bank.
第1図において、インターリーブに分割されたメモリバ
ンク41〜4nは、その各々に対応して設けられた副プ
ロセッサ31〜3oのそれぞれと双方性に接続されてお
り、これらの副プロセッサは通信網2を介することによ
り互いに他の副プロセッサ3.〜311及び主プロセッ
サ1に対し双方性の接続となっている。In FIG. 1, interleaved memory banks 41 to 4n are bidirectionally connected to respective sub-processors 31 to 3o provided correspondingly, and these sub-processors are connected to a communication network 2. to each other through the other sub-processors 3. .about.311 and the main processor 1.
第2図は主プロセッサと副プロセッサの詳細な10−
構成を示した説明図であフて、11はノイマン型プロセ
ッサ、12は制御ユニット、13は内臓メモリ、51は
シフトレジスターファイル、61は後述するデータ転送
制御用メモリ、ハは後述する未格納変数リスト、81は
後述するフェッチアドレスキュー 91は演算ユニット
を表している。FIG. 2 is an explanatory diagram showing a detailed 10-configuration of the main processor and sub-processor, in which 11 is a Neumann type processor, 12 is a control unit, 13 is a built-in memory, 51 is a shift register file, and 61 is described later. C represents an unstored variable list to be described later, 81 represents a fetch address queue to be described later, and 91 represents an arithmetic unit.
なお、演算ユニットは、演算量を複数個有しそれらが並
列に動作できる構成とすることが可能である。Note that the arithmetic unit can have a configuration in which a plurality of arithmetic operations can be performed in parallel.
データ転送制御用メモリは、オペランドの格納域に直接
アクセスできる副プロセッサにおいて、演算を実行する
副プロセッサにオペランドデータを送信するための宛先
を記憶するもので、オペランドデータが得られたときに
その宛先への送信を可能とするものである。Data transfer control memory stores the destination for transmitting operand data to a subprocessor that executes an operation in a subprocessor that can directly access the operand storage area, and when operand data is obtained, it is sent to that destination. This enables the transmission of
未格納変数リストは主プロセッサより放送されてきたプ
ログラム文によって計算が指示された変数名の内で、そ
の意図された格納領域への格納が未実現であるものを記
憶するものである。The unstored variable list stores variables that have not yet been stored in the intended storage area among the variable names whose calculations have been instructed by the program statements broadcast from the main processor.
また、フェッチアドレスキューは、メモリパン=11
りからフェッチするデータの格納領域のアドレスを記憶
するキューの構成となっている。Furthermore, the fetch address queue is configured as a queue that stores the address of the storage area of the data to be fetched from the memory pan=11.
全ての副プロセッサは同じ構成となっている。All subprocessors have the same configuration.
以下に本実施例の各構成要素ごとにその詳細な構成と動
作を説明する。The detailed configuration and operation of each component of this embodiment will be explained below.
(a) 主プロセッサ
主プロセッサはノイマン型プロセッサ11.制御ユニッ
ト12、及び内臓メモリ13で構成される。(a) Main processor The main processor is a Neumann type processor 11. It is composed of a control unit 12 and a built-in memory 13.
ノイマン型プロセッサはプログラムの中でデータ駆動に
よる処理に適した部分の実行を制御ユニットに委託する
。つまり、主プロセッサは内臓メモリに逆ポーランド記
法に従ってプログラム要素を配列したプログラム文を保
持し、制御ユニットはノイマン型プロセッサの指示があ
ればそのプログラム文の副プロセッサ群への放送を行う
。A Neumann processor delegates execution of parts of a program suitable for data-driven processing to a control unit. That is, the main processor holds in its built-in memory a program statement in which program elements are arranged according to reverse Polish notation, and the control unit broadcasts the program statement to the sub-processors when instructed by the Neumann processor.
いずれかの副プロセッサにおいて、シフトレジスターフ
ァイル、データ転送制御用メモリ、未格納変数リスト、
フェッチアドレスキューのどれかが溢れそうになった場
合、あるいは主プロセッサ12−
から放送されてきたプログラム文において計算が指示さ
れる変数名がデータ転送制御用メモリの転送変数名の欄
、未格納変数リストのどちらかにその変数名が記憶され
ているものである場合(これは主プロセッサあるいは副
プロセッサで使用中の変数データの改訂を意味する)に
はI!I御ユニットに通知され、プログラム文の放送は
中断される。In either sub-processor, shift register file, data transfer control memory, unstored variable list,
If one of the fetch address queues is about to overflow, or if the variable name whose calculation is instructed in the program statement broadcast from the main processor 12- is in the transfer variable name column of the data transfer control memory or an unstored variable. If the variable name is stored in either of the lists (this means a revision of the variable data in use by the main processor or the subprocessor), then I! The I control unit is notified and the broadcast of the program statement is interrupted.
上記の条件が解消されると再び副プロセッサから制御ユ
ニットに通知され、プログラム文の放送は再開される。When the above condition is resolved, the sub-processor notifies the control unit again, and broadcasting of the program statement is resumed.
制御ユニットはノイマン型プロセッサから委託されたプ
ログラム文の放送が終了すると、ノイマン型プロセッサ
に割り込み等によって通知する。When the control unit finishes broadcasting the program text entrusted to it by the von Neumann processor, it notifies the von Neumann processor by an interrupt or the like.
ノイマン型プロセッサの処理と副プロセッサの処理の間
で整合性をとるために、主プロセッサ内に計算を副プロ
セッサ群へ委託した変数名のリスト(図示してない)を
用意し、ノイマン型プロセッサは内臓メモリをアクセス
するたびにその変数名リストを検索し、副プロセッサか
ら計算結果が届いていない変数の場合には、ノイマン型
プロセ3−
ッサは待機状態となる。In order to ensure consistency between the processing of the von Neumann-type processor and the processing of the sub-processors, a list (not shown) of variable names whose calculations are delegated to the sub-processors is prepared in the main processor, and the von Neumann-type processor Each time the built-in memory is accessed, the variable name list is searched, and in the case of a variable for which a calculation result has not been received from the sub-processor, the Neumann type processor 3-3 enters a standby state.
制御ユニットはプログラム文の放送の際に上記変数名リ
ストの書き込みをおこない、副プロセッサから送られて
きた計算結果が内臓メモリに格納されるごとにその変数
名が変数名リストから削除する。The control unit writes the variable name list when broadcasting a program statement, and deletes the variable name from the variable name list each time the calculation result sent from the subprocessor is stored in the built-in memory.
副プロセッサが全ての計算結果を主プロセッサに送信す
る必要はないが、少なくとも計算結果の格納先のアドレ
スが主プロセッサの内臓メモリにコピーされている範囲
に含まれている場合には、主プロセッサへの計算結果の
送信が必要となる。It is not necessary for the secondary processor to send all calculation results to the main processor, but at least if the address where the calculation results are stored is included in the range that has been copied to the internal memory of the main processor, It is necessary to send the calculation results.
このため、副プロセッサにおいて計算結果を主プロセッ
サに送信すべきか否かを判断するために、制御ユニット
はプログラム要素ごとにそのためのタグを付与する等の
ことが考えられる。Therefore, in order to determine whether or not the sub-processor should transmit the calculation result to the main processor, the control unit may assign a tag for each program element.
なお、変数名、データ、演算子等の間の区別、変数名の
場合にはオペランドの格納領域を示しているのか、それ
とも計算結果の格納先を示すのかの区別、ベクトル変数
の記述、演算子の場合にはオペランドの個数の表示等を
可能とするタグをプ4
ログラム要素に付与することが望ましい。In addition, the distinction between variable names, data, operators, etc., the distinction between whether a variable name indicates the storage area of an operand or the storage location of a calculation result, the description of a vector variable, and the operator. In this case, it is desirable to add a tag to the program element that allows the number of operands to be displayed.
(b) シフトレジスターファイル
第3図は、シフトレジスターファイルの詳細な構成を示
す説明図である。シフトレジスターファイル51は51
i、52i〜の各部から構成されており、そのそれぞれ
の語は第1フイールド5111.5211〜 第2フイ
ールド5121.522i〜 及び演算制御フィールド
5131.523i〜から成っている。(b) Shift Register File FIG. 3 is an explanatory diagram showing the detailed structure of the shift register file. Shift register file 51 is 51
i, 52i~, and each word consists of first field 5111.5211~ second field 5121.522i~ and arithmetic control field 5131.523i~.
第1フイールドには変数名あるいは変数の格納領域のア
ドレス、演算ユニットで得られた演算結果を記入する語
を識別するために一時的に割り当てられるレジスター識
別子等が書き込まれ、第2フイールドには算術演算等を
示す演算子、即値データ、あるいは第1フイールドに書
き込みがあればその内容に対応するデータ等が書き込ま
れる。The first field is written with a variable name, the address of the variable storage area, a register identifier temporarily assigned to identify the word in which the calculation result obtained by the calculation unit is written, and the second field is written with an arithmetic If there is an operator indicating an operation, immediate value data, or the first field, data corresponding to the contents are written.
シフトレジスターファイルは、第1フイールドを照合フ
ィールドとして変数名等の一致する語の第2フイールド
にデータの書き込みを行うような連想記憶機能を有する
。The shift register file has an associative memory function that uses the first field as a collation field and writes data into the second field of matching words such as variable names.
15−
演算制御フィールドは、各々の語め内容が計算結果の格
納先、オペランド、演算子のうちのいずれを意味するの
か、演算子の場合にはオペランドの数はいくつか、オペ
ランドの場合には第2フイールドにデータの書き込みが
終了しているかどうかというような制御情報等の格納域
である。15- The calculation control field indicates whether each word means a storage location for the calculation result, an operand, or an operator; if it is an operator, how many operands there are; if it is an operand, it is This is an area for storing control information such as whether data has been written to the second field.
第5図はシフトレジスターファイルの動作を具体的に示
した説明図であり、以下においてこの図をもとにシフト
レジスターファイルの動作を説明する。 (ここでは、
実行のステップが進むととの、その時々のシフトレジス
ターファイル51の内容を示すために各部の符号の後尾
にハイフンとステップに対応する数字を添えることとす
る。)主プロセッサからプログラム文が例えば(Ai、
α、5、木、=)(Ai=α*5を意味する。またAi
の添字iはメモリバンクの番号を表す。)のように放送
されると、副プロセッサ31内部のシフトレジスターフ
ァイル51に51−1のように書き込まれる。ここでオ
ペランドの変数名は521−1のように第1フイールド
、その他のプロ16−
ダラム要素は第2フイールドに書き込まれる。FIG. 5 is an explanatory diagram specifically showing the operation of the shift register file, and the operation of the shift register file will be explained below based on this diagram. (here,
In order to indicate the contents of the shift register file 51 at each step of execution, a hyphen and a number corresponding to the step are added to the end of the code of each part. ) The program statements from the main processor are e.g. (Ai,
α, 5, tree, =) (means Ai = α * 5. Also, Ai
The subscript i represents the memory bank number. ), it is written to the shift register file 51 inside the sub-processor 31 as 51-1. Here, the variable name of the operand is written in the first field, such as 521-1, and the other pro-16-Durham elements are written in the second field.
変数αの値′3′が他の副プロセッサあるいはデータ転
送制御用メモリ61から送られてくると、連想記憶機能
により、第1フイールドに変数名〔α〕の書き込みのあ
る語52i−2の第2フイールドにこの値′3′が書き
込まれる。When the value '3' of the variable α is sent from another sub-processor or the data transfer control memory 61, the associative memory function stores the value '3' of the word 52i-2 in which the variable name [α] is written in the first field. This value '3' is written into field 2.
そうすると52i−2,53i−2,54i2の3語か
ら成るプログラム文(3,5、*)(3*5を意味する
)は実行可能となるので、演算ユニット91に送られる
と共に、51−3に示されるように52i−3の第1フ
イールドにレジスター識別子〔■i〕が書き込まれ(第
2フイールドは未記入)、55i−2,56i−2〜の
各部が全て2語分繰り上がりそれぞれ53i−3,54
1−3〜に移動する。レジスター識別子は各々のシフト
レジスターファイルにおいて重複することのないように
割り当てられるものとする。Then, the program statement (3, 5, *) (meaning 3*5) consisting of the three words 52i-2, 53i-2, and 54i2 becomes executable, so it is sent to the arithmetic unit 91 and is sent to the 51-3 As shown in , the register identifier [■i] is written in the first field of 52i-3 (the second field is left blank), and each part of 55i-2, 56i-2 ~ are all carried forward by two words to become 53i, respectively. -3,54
Move to 1-3~. Register identifiers shall be assigned in each shift register file so as not to be duplicated.
演算ユニット91よりl 3 * 5jの実行結果の値
′ 15′が送られてくると連想記憶機能により第1フ
イールドにレジスター識別子〔■i〕の書17−
き込みのある語52i−4の第2フイールドにこの値′
15′が書き込まれる。When the value '15' of the execution result of l3*5j is sent from the arithmetic unit 91, the associative memory function writes the register identifier [■i] in the first field. 2 fields with this value'
15' is written.
そうすると、51 i −4,52i −4,53i−
4の3語から成るプログラム文(Ai、15、=)(A
i=15を意味する。)は変数Alの値が定まったこと
を示すので、変数Aiの格納先、場合によってはデータ
転送制御用メモリ61にデータが送られると共に、54
i−4以下の各部が全て3語分繰り上がり51i−5以
下に位置することになる。変数Aiのデータの格納が終
了すると後述する未格納変数リストから変数名(Ai)
が削除される。Then, 51 i −4, 52i −4, 53i −
Program statement (Ai, 15, =) (Ai, 15, =) (A
means i=15. ) indicates that the value of the variable Ai has been determined, so the data is sent to the storage location of the variable Ai, or in some cases, the data transfer control memory 61, and the data is sent to the data transfer control memory 61.
All the parts below i-4 are moved up by three words and are located below 51i-5. When the data storage of variable Ai is completed, the variable name (Ai) is selected from the list of unstored variables described later.
will be deleted.
なお、本実施例においてはシフトレジスターファイルが
任意の語基後の全ての語を語単位で繰り上げる機能を有
するものとして説明しているが、本発明におけるシフト
レジスターファイルは上記の機能の代わりに任意の範囲
の連続する敷詰を語単位で繰り下げる機能を有するもの
とすることが可能である。In this embodiment, the shift register file is described as having the function of incrementing all words after an arbitrary word base in units of words, but the shift register file in the present invention has an arbitrary function instead of the above function. It is possible to have a function to move down consecutive indentations in the range of , word by word.
(c) データ転送制御用メモリ
18
データ転送制御用メモリは、オペランドの格納域に直接
アクセスできる副プロセッサにおいて、演算を実行する
副プロセッサにオペランドデータを送信するための宛先
を記憶するもので、オペランドデータが得られたときに
その宛先への送信を可能とするものである。(c) Data transfer control memory 18 The data transfer control memory stores the destination for transmitting operand data to a subprocessor that executes an operation in a subprocessor that can directly access the operand storage area. When a message is obtained, it can be sent to that destination.
第4図は、データ転送制御用メモリの詳細な構成を示す
説明図である。データ転送制御用メモリ6jは61i、
62i〜の各部から構成されており、そのそれぞれの語
は宛先の格納域6111.6211〜 転送変数名の格
納域6121.6221〜 転送データの格納域613
1.6231〜、及び転送制御フィールド6141.6
241〜から成って−いる。FIG. 4 is an explanatory diagram showing the detailed configuration of the data transfer control memory. The data transfer control memory 6j is 61i,
62i~, and each word is a destination storage area 6111.6211~, a transfer variable name storage area 6121.6221~, and a transfer data storage area 613.
1.6231~, and transfer control field 6141.6
It consists of 241~.
データ転送制御用メモリは、転送変数名の格納域を照合
フィールドとして変数名の一致する語の転送データの格
納域にデータの書き込みを行うような連想記憶機能を有
する。The data transfer control memory has an associative memory function that uses the storage area of transfer variable names as a collation field to write data into the storage area of transfer data of words with matching variable names.
転送制御フィールドは、各々の語について転送変数名の
格納域、転送データの格納域の書き込み19−
の有無などの制御情報等の格納域である。The transfer control field is a storage area for each word, including control information such as a storage area for a transfer variable name and the presence/absence of writing 19- in a storage area for transfer data.
次に、データ転送制御用メモリの動作を説明する。Next, the operation of the data transfer control memory will be explained.
各々の副プロセッ□すにおいて、主プロセッサから放送
されてくるプログラム文中に示されるオペランドの格納
域が直接アクセス可能なものであると認められるごとに
、データ転送制御用メモリの未使用の語の宛先の欄と転
送変数名の欄に書き込みが行わ九る。この場合の宛先は
演算を実行する副プロセッサを指すものであり、各々の
プログラム文の放送の間、図示してないレジスターに保
持されているものとする。転送変数名はオペランドの変
数名である。ただし、データ転送制御用メモリ内に、同
じ宛先、同じ転送変数名の書き込みのある語が認められ
る場合には別の語に新たに書き込む必要はない。In each subprocess, each time the operand storage area indicated in the program statement broadcast from the main processor is recognized to be directly accessible, the destination of an unused word in the data transfer control memory is determined. Writing is done in the column and the transfer variable name column. In this case, the destination refers to the subprocessor that executes the calculation, and is held in a register (not shown) during the broadcast of each program statement. The transfer variable name is the variable name of the operand. However, if a word with the same destination and the same transfer variable name written in the data transfer control memory is recognized, there is no need to newly write in another word.
また、計算結果を主プロセッサに送信すべきことがタグ
等により指示されている場合、あるいは主プロセッサが
データの送信をコマンド等により要求した場合にも、デ
ータ転送制御用メモリの末20−
使用の語の宛先の欄と転送変数名の欄に書き込みが行わ
れる。この場合の宛先は主プロセッサとなる。Also, when a tag or the like indicates that calculation results should be sent to the main processor, or when the main processor requests data transmission via a command or the like, the end of the data transfer control memory 20- Writing is performed in the word destination field and the transfer variable name field. In this case, the destination is the main processor.
転送変数名に対応する転送データはシフトレジスターフ
ァイル51あるいはメモリバンク41等から送られてく
る。転送データの書き込みは連想記憶機能を利用して変
数名の一致する語の転送データの格納域に行われる。Transfer data corresponding to the transfer variable name is sent from the shift register file 51, memory bank 41, or the like. Writing of transfer data is performed in the storage area of transfer data of words with matching variable names using an associative memory function.
転送データの書貴込みが終了し、通信網が利用可能とな
ると転送が実施されると共にデータ転送制御用メモリの
該当の語は空白とされ、別の変数データの転送のために
使用可能となる。When the writing of the transfer data is completed and the communication network becomes available, the transfer is carried out and the corresponding word in the data transfer control memory becomes blank and can be used to transfer another variable data. .
(d) 未格納変数リスト
未格納変数・リストは、変数データの改訂による混乱を
避けるために、副プロセッサ内に主プロセッサから計算
を委託された変数のうちでその格納先への格納が未実現
である変数名のリストである。(d) Unstored variable list The unstored variable/list is a list of variables whose calculations have been entrusted to the sub-processor by the main processor but have not yet been stored in the storage location, in order to avoid confusion due to revisions to variable data. is a list of variable names.
各々の副プロセッサにおいて、主プロセッサから放送さ
れてくるプログラム文中に示される変数名が直接アクセ
ス可能なものであると認められる21−
ごとに以下の動作が行われる。In each sub-processor, the following operation is performed every 21- when the variable name shown in the program statement broadcast from the main processor is recognized to be directly accessible.
■計算結果の格納先のアドレスとして示される変数名が
未格納変数リスト中にもデータ転送制御用メモリの転送
変数名の欄にも存在しなかった場合、プログラム文の末
尾を待って未格納変数リストに加える。計算結果の格納
先として示される変数名は、各々のプログラム文の放送
の間、図示してないレジスターに保持されているものと
する。■If the variable name indicated as the address of the storage destination of the calculation result does not exist in the unstored variable list or in the transfer variable name column of the data transfer control memory, wait until the end of the program statement and change the unstored variable name to Add to list. It is assumed that the variable name indicated as the storage location of the calculation result is held in a register (not shown) during the broadcast of each program statement.
■計算結果の格納先のアドレスとして示される変数名が
データ転送制御用メモリの転送変数名の欄に存在した場
合、主プロセッサにプログラム文の放送を中断するよう
要請する。その後、データ転送制御用メモリにおいて、
その同じ変数名に対応するデータの書き込みが終了する
と、主プロセッサにプログラム文の放送を再開するよう
要請し、プログラム文の末尾を待ってその変数名を未格
納変数リストに再び書き込む。(2) If the variable name indicated as the address of the storage destination of the calculation result exists in the transfer variable name column of the data transfer control memory, the main processor is requested to interrupt the broadcast of the program statement. After that, in the data transfer control memory,
When the writing of data corresponding to the same variable name is completed, the main processor is requested to resume broadcasting the program statement, waits for the end of the program statement, and writes the variable name to the unstored variable list again.
■計算結果の格納先のアドレスとして示される変数名が
未格納変数リスト中に存在した場合、主プロセッサにプ
ログラム文の放送を中断するよう22−
要請する。その後、その同じ変数名が未格納変数リスト
より削除されると、主プロセッサにプログラム文の放送
を再開するよう要請し、プログラム文の末尾を待ってそ
の変数名を未格納変数リストに再び書き込む。(22-) If the variable name indicated as the address of the storage destination of the calculation result exists in the unstored variable list, the main processor is requested to interrupt the broadcast of the program statement. Thereafter, when that same variable name is deleted from the unstored variable list, it requests the main processor to resume broadcasting the program statement, waits for the end of the program statement, and writes that variable name back to the unstored variable list.
■オペランドの格納領域のアドレスとして示される変数
名が未格納変数リスト中にもデータ転送制御用メモリの
転送変数名の欄にも存在しなかった場合、その変数名が
フェッチアドレスキューに書き込まれメモリバンクがア
クセスされることになる。■If the variable name indicated as the address of the operand storage area does not exist in the unstored variable list or in the transfer variable name column of the data transfer control memory, that variable name is written to the fetch address queue and memory The bank will be accessed.
■オペランドの格納領域のアドレスとして示される変数
名がデータ転送制御用メモリの転送変数名の欄に存在し
た場合、その゛変数データはシフトレジスターファイル
或はメモリバンクからデータ転送制御用メモリに送られ
てくるはずである。■If the variable name indicated as the address of the operand storage area exists in the transfer variable name column of the data transfer control memory, the variable data is sent from the shift register file or memory bank to the data transfer control memory. It should come.
■オペランドの格納領域のアドレスとして示される変数
名がデータ転送制御用メモリの転送変数名の欄に存在し
ないが未格納変数リスト中に存在した場合、その変数デ
ータをシフトレジスターフ23−
アイルからデータ転送制御用メモリに送るようにしてや
ればよい。■If the variable name indicated as the address of the operand storage area does not exist in the transfer variable name column of the data transfer control memory but exists in the unstored variable list, the variable data is transferred from the shift register 23- isle. All you have to do is send it to the transfer control memory.
計算結果の格納先への格納が終了すると、その変数名は
未格納変数リストより削除される。When the storage of the calculation result in the storage destination is completed, the variable name is deleted from the unstored variable list.
(e) フェッチアドレスキュー
フェッチアドレスキューは、メモリバンクからフェッチ
するデータの格納領域のアドレスを記憶するキューの構
成となっている。(e) Fetch Address Queue The fetch address queue is configured as a queue that stores the address of a storage area for data to be fetched from a memory bank.
各々の副プロセッサにおいて、主プロセッサから放送さ
れてくるプログラム文中にオペランドの格納領域のアド
レスとして示される変数名がフェッチアドレスキューに
書き込まれるのは以下の2つの条件が成立した場合であ
る。In each sub-processor, the variable name indicated as the address of the operand storage area in the program statement broadcast from the main processor is written into the fetch address queue when the following two conditions are met.
(I)各々の副プロセッサにパおいて直接アクセス可能
であること。つまり、その変数の格納領域が、各々の副
プロセッサに対応するメモリバンク中に存する。(I) Direct access to each sub-processor at the processor. That is, a storage area for the variable exists in a memory bank corresponding to each sub-processor.
(n)同じ変数名がフェッチアドレスキュー、未格納変
数リスト、データ転送t!I抑用メモリの転送変数名の
欄のいずれの中にも存在しないこと。(n) Same variable name is fetch address queue, unstored variable list, data transfer t! It must not exist in any of the transfer variable name columns of I-restricted memory.
24−
フェッチアドレスキューに記入されたアドレスのデータ
読み出し要求が順次、各々の副プロセッサに対応するメ
モリバンクに送られ、゛そのフェッチデータがデータ転
送制御用メモリに届けられる。24- Data read requests for addresses written in the fetch address queue are sequentially sent to the memory bank corresponding to each sub-processor, and the fetch data is delivered to the data transfer control memory.
第6図、第7図はメモリバンクが4+と42の2つある
場合の副プロセッサ31.32の動作を具体的に示した
説明図であり、以下においてこれらの図を参照しつつ説
明を行う。 (ここでも、実行のステップが進むととの
、その時々の状態を示すために各部の符号の後尾にハイ
フンとステップに対応する数字を添えることとする。ま
た、変数名の後部の1.2は変数の属するメモリバンク
の番号を表す。)
最初は、副プロセッサ31.32の中にあるシフトレジ
スターファイル、データ転送制御用メモリ、未格納変数
リスト、フェッチアドレスキューの全てについて、書き
込みはないものとする。FIG. 6 and FIG. 7 are explanatory diagrams specifically showing the operation of the sub-processors 31 and 32 when there are two memory banks, 4+ and 42, and the explanation will be given below with reference to these diagrams. . (Again, we will add a hyphen and a number corresponding to the step to the end of the code of each part to indicate the state at the time as the execution step progresses. Also, 1.2 at the end of the variable name represents the number of the memory bank to which the variable belongs.) Initially, no writing is done to the shift register file, data transfer control memory, unstored variable list, and fetch address queue in the subprocessors 31 and 32. shall be.
主プロセッサがプログラム文を(Xi、Al。The main processor executes program statements (Xi, Al.
B2.+、=)(Xl=A1+B2を意味する)のよう
に放送したとする。計算される変数X1の−
格納域はメモリバンク41に属するので、副プロセッサ
31においてシフトレジスターファイル5にプログラム
文が51−1のように書き込まれ、未格納変数リストア
1に変数名〔X1〕がハ1のように書き込まれる。また
、オペランドの変数A1のデータをメモリバンク41か
ら取り出すためにフェッチアドレスキュー8.に変数名
〔A1〕が81−1のように書き込まれ、この取り出さ
れたデータをシフトレジスターファイル51に送るため
にシフトレジスターファイル61に61−1のように書
き込まれる。 (宛先の欄の′ 1′は副プロセッサの
番号を表す。)変数B2についても同様に副プロセッサ
32において62−1.82−1のように書き込まれる
。B2. +, =) (meaning Xl=A1+B2). Since the storage area of the variable X1 to be calculated belongs to the memory bank 41, the program statement is written as 51-1 in the shift register file 5 in the sub-processor 31, and the variable name [X1] is written in the unstored variable restore 1. It is written as H1. Also, in order to retrieve the data of the operand variable A1 from the memory bank 41, the fetch address queue 8. The variable name [A1] is written as 81-1, and in order to send the extracted data to the shift register file 51, it is written as 61-1 in the shift register file 61. ('1' in the destination column represents the number of the sub-processor.) Similarly, variable B2 is written in the sub-processor 32 as 62-1.82-1.
上記のプログラム文に続いて、プログラム文が(Y2.
X、1. C1,4,*、 −=) (Y2
=Xl−(C1*4)を意味する)のように放送された
とする。計算される変数Y2の格納域はメモリバンク4
2に属するので、副プロセッサ32においてシフトレジ
スターファイル52にプロゲラ26−
4文が52−2のように書き込まれ、未格納変数リスト
ア2に変数名〔Y2〕が72−2のように書き込まれる
。また、オペランドの変数X1と01のデータが副プロ
セッサ32に送られるように、データ転送制御用メモリ
61に61−2のように書き込まれると共に、フェッチ
アドレスキュー8に変数名〔C1〕が81−2のように
書き込まれる。変数名〔X1〕は7I−2のように未格
納変数リストア1中に認められるので、シフトレジスタ
ーファイル51よりデータ転送制御用メモリ61に変数
XIのデータを送るようにすれば、メモリバンク41を
アクセスする必要はなく、フェッチアドレスキューには
書き込まれない。この間に変数AIのデータのフェッチ
要求がフェッチアドレスキュー81からメモリバンク4
1に送られ、フェッチされたデータIr1l がデータ
転送制御用メモリ6Iに送られ、連想記憶機能により6
12の先頭の語のように書き込まれている。変数B2に
ついても同様である。Following the above program statement, the program statement (Y2.
X, 1. C1,4,*, -=) (Y2
=Xl-(C1*4)). The storage area for the variable Y2 to be calculated is memory bank 4.
2, the progera 26-4 statement is written in the shift register file 52 in the sub-processor 32 as 52-2, and the variable name [Y2] is written in the unstored variable restore 2 as 72-2. Further, so that the data of the operand variables X1 and 01 are sent to the subprocessor 32, they are written as 61-2 in the data transfer control memory 61, and the variable name [C1] is written as 81-2 in the fetch address queue 8. It is written as 2. Since variable name [X1] is recognized during unstored variable restore 1 like 7I-2, if the data of variable XI is sent from the shift register file 51 to the data transfer control memory 61, the memory bank 41 can be It does not need to be accessed and is not written to the fetch address queue. During this time, a fetch request for the data of variable AI is sent from the fetch address queue 81 to the memory bank 4.
1, the fetched data Ir1l is sent to the data transfer control memory 6I, and the associative memory function
It is written like the first word of 12. The same applies to variable B2.
データ転送制御用メモリ61−2の先頭の語で27−
規定される変数A1のデータ′ ハの転送によりシフト
レジスターファイル51−3の先頭から2番目の語の第
2フイールドにデータ17′が連想記憶機能を利用して
書き込まれる。この際、データ転送制御用メモリ6Iで
は、データ転送の実行と共に、先頭の語が空白とされる
。データ転送制御用メモリ62−2の先頭の語で規定さ
れる変数B2のデータの転送についても同様の処理がさ
れている。Data 17' is associated with the second field of the second word from the beginning of the shift register file 51-3 by the transfer of the data 'c' of variable A1 defined in the first word of the data transfer control memory 61-2. Written using the memory function. At this time, in the data transfer control memory 6I, the first word is blanked out at the same time as the data transfer is executed. Similar processing is performed for the transfer of data of variable B2 defined by the first word of data transfer control memory 62-2.
シフトレジスターファイル51−3において先頭から数
えて2番目、3番目、4番目の3語から成るプログラム
文(7,3、十)(7+3を意味する)は実行可能とな
るので、演算ユニット9゜に送られる。この際、先頭か
ら2番目の語の第1フイールドにレジスター識別子〔■
1〕が書き込まれ(第2フイールドは未記入)、5番目
以後の全ての語が2語分繰り上がる。演算ユニット91
から演算結果′ 10′が送られてくると、第1フイー
ルドにレジスター識別子〔■1〕の書き込みのある先頭
から2番目の語の第2フイールドにこ一邦一
の値’10″が連想記憶機能を用いて書き込まれる。以
上の過程を経てシフトレジスターファイル51は51−
4のような内容となる。The program statement (7, 3, 10) (meaning 7+3) consisting of the second, third, and fourth three words counted from the beginning in the shift register file 51-3 is executable, so the arithmetic unit 9. sent to. At this time, the register identifier [■
1] is written (the second field is left blank), and all words after the fifth are moved up by two words. Arithmetic unit 91
When the calculation result '10' is sent from , this value '10' is stored in the associative memory in the second field of the second word from the beginning where the register identifier [■1] is written in the first field. After the above process, the shift register file 51 becomes 51-
The content will be similar to 4.
シフトレジスターファイル51−4において先頭からの
3語から成るプログラム文(Xi、 10゜=)
(X1=10を意味する)は変数X1の値が定まったこ
とを示すので、そのデータがその格納先であるメモリバ
ンク41及びデータ転送制御用メモリ61に送られると
共に、先頭から4番目以後の全ての語が3語分繰り上が
り、5+5のような内容となる。データ転送制御用メモ
リにおいては変数名〔X1〕に対応するデータ110′
は連想記憶機能を利用して6I−5のように書き込まれ
る。変数X1のデータのその格納先であるメモリバンク
41への格納が終了すると、未格納変数リストにおいて
変数名(Xl、)が削除される。Program statement consisting of the first three words in the shift register file 51-4 (Xi, 10°=)
(meaning X1=10) indicates that the value of variable All words are moved up by three words, resulting in something like 5+5. In the data transfer control memory, data 110' corresponding to variable name [X1]
is written as 6I-5 using the associative memory function. When the storage of the data of the variable X1 in the memory bank 41, which is the storage destination thereof, is completed, the variable name (Xl,) is deleted from the unstored variable list.
以下、同様な動作が順次行われ、最終的には変数Y2の
値が22′と求められ、メモリバンク4にこのデータが
格納され、上記2つのプログラム文に対する処理が終了
する。Thereafter, similar operations are performed one after another, and finally the value of variable Y2 is determined to be 22', this data is stored in memory bank 4, and the processing for the above two program statements is completed.
=29=
なお、第6図、第7図で示した各ステップの状態と完全
に一致する状態が必ずしも実現するわけではない。各々
の動作の実行時間とタイミングは、その時々の通信網そ
の他の状態やハードウェアの詳細な構成などによるから
である。=29= Note that a state that completely matches the state of each step shown in FIGS. 6 and 7 is not necessarily realized. This is because the execution time and timing of each operation depend on the current state of the communication network and other conditions, the detailed configuration of the hardware, etc.
また、上記実施例においてはメモリバンクと副プロセッ
サが2組ずつ設けられた場合について説明したが、本発
明は、例えば4.8.16組等の2の累乗組を設けた構
成とすることが可能である。Further, in the above embodiment, the case where two sets of memory banks and two sub-processors are provided has been described, but the present invention can also be configured to provide sets of powers of 2 such as 4, 8, and 16 sets. It is possible.
さらに演算ユニット内の演算器をパイプライン化したり
、演算器を複数個設けてそれらを並列に動作させること
も考えられる。Furthermore, it is also conceivable to pipeline the arithmetic units in the arithmetic unit or to provide a plurality of arithmetic units and operate them in parallel.
ベクトル変数を規定し、これをプログラム文中に用いて
、ベクトル演算を実行させることが可能である。ベクト
ル変数とスカラー変数の区別はタグ等によって成される
。ベクトル変数は例えば先頭のベクトル要素のアドレス
、ベクトル要素間のアドレス間隔、及びベクトル長等を
指定することにより記述される。各々の副プロセッサは
、それぞれに対応するメモリバンクに属するベクトル要
3〇−
素が存在するかどうかを判断し、存在すればそれらにつ
いて、スカラー演算が個別に行われる場合と同様な動作
を行う構成とすればよい。It is possible to define vector variables and use them in program statements to perform vector operations. Vector variables and scalar variables are distinguished by tags and the like. A vector variable is described by specifying, for example, the address of the first vector element, the address interval between vector elements, and the vector length. Each sub-processor is configured to determine whether vector elements belonging to the corresponding memory bank exist, and if so, perform operations on them in the same way as when scalar operations are performed individually. And it is sufficient.
[発明の効果] 本発明の方式によれば次のような利点がある。[Effect of the invention] The method of the present invention has the following advantages.
(A)プログラムの並列処理に適した部分はデータ駆動
による処理を行い、それ以外の部分はノイマン方式によ
る処理を行うことによって効率的な計算の実行が可能で
ある。(A) Efficient calculation can be performed by performing data-driven processing on parts of the program that are suitable for parallel processing, and processing other parts using the Neumann method.
(B)各々の副プロセッサはそれぞれ独立にデータ駆動
による動作を行うので副プロセッサ群の制御構造が単純
であり、プログラミングの際にこの制御構造をさほど意
識する必要がない。(B) Since each sub-processor independently performs data-driven operations, the control structure of the sub-processor group is simple, and there is no need to be aware of this control structure during programming.
(C)主プロセッサは従来のノイマン型プロセッサを包
含する構成とすれば、オペレーティング・システム等の
基本ソフトウェアは従来技術の利用が可能である。特に
、高級言語から逆ポーランド記法への変換は直接的であ
るのでコンパイラの負担は軽減される。(C) If the main processor is configured to include a conventional Neumann type processor, conventional technology can be used for basic software such as an operating system. In particular, since the conversion from a high-level language to reverse Polish notation is straightforward, the burden on the compiler is reduced.
31−31-
第1図は本発明の一実施例のブロック図、第2図は主プ
ロセッサと副プロセッサの詳細な構成を示すブロック図
、第3図はシフトレジスターファイルの詳細な構成を示
す説明図、第4図はデータ転送制御用メモリの詳細な構
成を示す説明図、第5図は動作が行わ九る毎のシフトレ
ジスターファイルの内容を示す説明図、第6図、第7図
は副プロセッサ及びメモリバンクが2組ずつ設けられた
場合の、動作が行われる毎のシフトレジスターファイル
、データ転送制御用メモリ、未格納変数リスト、フェッ
チアドレスキューの内容を示す説明図である。
1 ・−一−−−−−〜−−−−−−−−−−−−一主
プロセッサ11 ・−一一一−−−−−−−−−−−−
−−ノイマン型プロセッサ12 −−−−−−−−−−
−−−−−−−−− gig御ユニット13 −−−−
−−−−−−−−−−−−−−一内臓メモリ2 ・−一
−−−−−−−−−−−−−−−−−−一通信網31〜
31〜3n−副プロセッサ
32−
〜41
〜5
〜6
〜7
〜8i
〜9
〜4o−メモリバンク
〜5n−シフトレジスターファイル
〜6n−データ転送制御用メモリ
〜7o−未格納変数リスト
〜8o−7エツチアドレスキユー
〜9o−演算ユニットFIG. 1 is a block diagram of an embodiment of the present invention, FIG. 2 is a block diagram showing the detailed configuration of the main processor and sub-processor, FIG. 3 is an explanatory diagram showing the detailed configuration of the shift register file, and FIG. The figure is an explanatory diagram showing the detailed configuration of the data transfer control memory, Figure 5 is an explanatory diagram showing the contents of the shift register file each time an operation is performed, and Figures 6 and 7 are the sub-processor and memory bank. FIG. 4 is an explanatory diagram showing the contents of a shift register file, a data transfer control memory, an unstored variable list, and a fetch address queue each time an operation is performed when two sets of data are provided. 1 ・−1−−−−−−−−−−−−−−−−−−1 Main processor 11 ・−11−−−−−−−−−−−−−
---Neumann type processor 12 ---
---------- Gig control unit 13 ----
−−−−−−−−−−−−−−1 built-in memory 2 ・−1 −−−−−−−−−−−−−−−−−−1 communication network 31 ~
31-3n-Sub-processor 32--41-5-6-7-8i-9-4o-Memory bank-5n-Shift register file-6n-Data transfer control memory-7o-Unstored variable list ~8o-7 Etsuchi address skew~9o-calculation unit
Claims (2)
能あるいは任意の範囲の連続する数語を語単位で繰り下
げる機能のいずれか一方と、連想記憶機能によりデータ
の書き込みを行う機能を有する記憶装置をシフトレジス
ターファイルと呼び、変数名あるいはその変数の格納領
域のアドレスとそれらに対応するデータのいずれか、シ
フトレジスターファイルの語に一時的に割り当てられる
レジスター識別子、即値データ、あるいは算術演算等を
示す演算子をプログラム要素と呼び、逆ポーランド形式
あるいはそれに類する形式に照らして意味のあるプログ
ラム要素の並びをプログラム文と呼ぶとき、 以下のような特徴を有する電子計算機。 (イ)プログラム文をプログラム要素ごとに順次放送す
る主プロセッサと、 インターリーブに分割された複数のメモリバンクと、 メモリバンクに対応して設けられた、プログラム文を実
行する複数の副プロセッサとを具備する。 (ロ)上記副プロセッサは主プロセッサから放送されて
きたプログラム文を格納するシフトレジスターファイル
と演算ユニットとを具備する。 (ハ)上記シフトレジスターフアイルへのプログラム文
の書き込みは、プログラム要素ごとに既に書き込まれて
いる領域の直後に行われる。 (ニ)変数名あるいはその変数に相当する領域のアドレ
スに対応するデータは連想記憶機能によりシフトレジス
ターファイルの該当する語に書き込まれる。 (ホ)上記シフトレジスターファイル内に、データが揃
って実行可能となったプログラム文が検出されると、こ
のプログラム文は演算ユニットに送出されそこで演算が
実行される、演算結果はシフトレジスターファイルの上
記プログラム文が格納されていた領域に対応する語に連
想記憶機能により書き込まれる。(1) It has either the function of moving all words after a given word forward word by word or the function of moving down a certain range of consecutive words word by word, and the function of writing data using an associative memory function. The storage device is called a shift register file, and it stores either the variable name or the address of the variable's storage area and the corresponding data, a register identifier temporarily assigned to a word in the shift register file, immediate value data, or arithmetic operations. An electronic computer that has the following characteristics: An operator that indicates the following is called a program element, and a sequence of program elements that has meaning in the reverse Polish format or a similar format is called a program statement. (b) Equipped with a main processor that sequentially broadcasts program statements for each program element, a plurality of interleaved memory banks, and a plurality of sub-processors provided corresponding to the memory banks that execute the program statements. do. (b) The sub-processor is equipped with a shift register file for storing program statements broadcast from the main processor and an arithmetic unit. (c) Program statements are written to the shift register file immediately after the area in which each program element has already been written. (d) Data corresponding to the variable name or the address of the area corresponding to the variable is written into the corresponding word of the shift register file by the associative memory function. (e) When a program statement whose data is complete and can be executed is detected in the shift register file, this program statement is sent to the arithmetic unit and the arithmetic operation is executed there.The result of the arithmetic operation is stored in the shift register file. The word corresponding to the area where the program statement was stored is written by the associative memory function.
サは従来のノイマン型プロセッサと制御ユニットを含む
構成とするとき、主プロセッサの内臓メモリにプログラ
ム文を保持し、ノイマン型プロセッサがそのプログラム
文の副プロセッサへの放送を制御ユニットに委託するこ
とを特徴とする計算機方式。(2) In the electronic computer according to claim 1, when the main processor has a configuration including a conventional von Neumann type processor and a control unit, a program statement is held in the built-in memory of the main processor, and the von Neumann type processor stores the program statement. A computer method characterized by entrusting broadcasting to subprocessors to a control unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP657289A JPH03223980A (en) | 1989-01-12 | 1989-01-12 | Computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP657289A JPH03223980A (en) | 1989-01-12 | 1989-01-12 | Computer system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03223980A true JPH03223980A (en) | 1991-10-02 |
Family
ID=11642050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP657289A Pending JPH03223980A (en) | 1989-01-12 | 1989-01-12 | Computer system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH03223980A (en) |
-
1989
- 1989-01-12 JP JP657289A patent/JPH03223980A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4468736A (en) | Mechanism for creating dependency free code for multiple processing elements | |
US4466061A (en) | Concurrent processing elements for using dependency free code | |
Baer | A survey of some theoretical aspects of multiprocessing | |
JP2818249B2 (en) | Electronic computer | |
EP0243892A2 (en) | System for guaranteeing the logical integrity of data | |
KR940018742A (en) | Method and apparatus for dispatching a plurality of instructions in a single cycle in a superscalar processor system | |
JPH0131214B2 (en) | ||
JPS58151655A (en) | Information processing device | |
JP2898105B2 (en) | Method of minimizing interruption of hardware pipeline processing by using software scheduling technique during compilation | |
JP2001249808A (en) | Information processing device | |
JPH0916409A (en) | Microcomputer | |
EP0096574B1 (en) | System and method of renaming data items for dependency free code | |
US7191315B2 (en) | Method and system for tracking and recycling physical register assignment | |
JPH03223980A (en) | Computer system | |
AU626263B2 (en) | Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system | |
JP2814683B2 (en) | Instruction processing unit | |
JP3022398B2 (en) | Virtual computer system | |
Ostheimer | Parallel Functional Computation on STAR: DUST— | |
JPS63168762A (en) | Multiprocessor starting device | |
JPH0279122A (en) | floating point arithmetic mechanism | |
JPH0628186A (en) | Method and processor for parallel processing of plural process arithmetic units | |
JPH03182945A (en) | Transfer system for data in main storage | |
Barbacci | Software Support for Heterogeneous Machines | |
JPS5834859B2 (en) | Multiprocessor system information | |
JPH0260018B2 (en) |