JPH02197970A - Object code generating device for data drive type computer - Google Patents

Object code generating device for data drive type computer

Info

Publication number
JPH02197970A
JPH02197970A JP1840989A JP1840989A JPH02197970A JP H02197970 A JPH02197970 A JP H02197970A JP 1840989 A JP1840989 A JP 1840989A JP 1840989 A JP1840989 A JP 1840989A JP H02197970 A JPH02197970 A JP H02197970A
Authority
JP
Japan
Prior art keywords
address
node
data
object code
destination node
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
JP1840989A
Other languages
Japanese (ja)
Inventor
Hironori Tsubota
浩乃 坪田
Nobufumi Komori
伸史 小守
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP1840989A priority Critical patent/JPH02197970A/en
Publication of JPH02197970A publication Critical patent/JPH02197970A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To perform a due process within such a paractical time range where the processing frequency is proportional to the number of nodes by producing an object code which shows a destination node number according to the address that is finally assigned by an extension address generating part and sending the node number to an object code output part. CONSTITUTION:A reading part 4 reads a conventional object code, and an extention address generating part 5 detects a node requiring an extension address. Then the part 5 produces the extension address and reassings a node number. An object code output part 6 produces an object code based on a decided node number and outputs it. In this case, a memory area 7 is used as a working area. Thus it is possible to finish a due process in the number of steps approximately proportional to the number of nodes of a program.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ相互間の依存関係に基づいて処理を駆
動する方式を採用した、所謂データ駆動形計算機のため
のオブジェクトコード生成装置に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to an object code generation device for a so-called data-driven computer that employs a method of driving processing based on inter-data dependencies.

〔従来の技術〕[Conventional technology]

従来技術の説明として、まず従来のデータ駆動形計算機
の説明を行う0次に、この従来のデータ駆動形計算機上
で動作するオブジェクトコードを生成する従来のデータ
駆動形計算機用オブジェクトコード生成装置について説
明を行い、その後更に本願出願人により先に出願されて
いる共に「データ駆動形計算機」と題された特願昭63
−*傘−準傘率号及び特願昭64− *軸***号の発
明について説明する。
To explain the prior art, we will first explain a conventional data-driven computer.Next, we will explain a conventional object code generation device for a data-driven computer that generates an object code that runs on this conventional data-driven computer. After that, a patent application filed in 1983 entitled "Data Driven Computer" was filed by the applicant of the present application.
The invention of -*Umbrella-Semi-Umbrella Ratio No. and Patent Application No. 1988- *Axle*** will be explained.

従来のデータ駆動形計算機の代表的な例が科学技術用高
速計算システム研究開発成果発表会講演予稿集(昭和5
9年6月25日)の第19頁から22頁、及びIEE[
! C0NPCON ’845PRING予稿集(英文
)の第486頁から第490頁に開示されている。
A typical example of a conventional data-driven computer is the Proceedings of the Presentation of Research and Development Results for High-Speed Computing Systems for Science and Technology (1932).
June 25, 2009), pages 19 to 22, and IEE [
! It is disclosed on pages 486 to 490 of the C0NPCON '845 PRING proceedings (English).

これらの公知資料は、いずれもSigeba−1と称さ
れるデータ駆動形計算機の構成と動作について説明され
ている。以下、これらの公知資料に基づいた第1の従来
例としての従来のデータ駆動形計算機について説明する
These publicly known materials all explain the configuration and operation of a data-driven computer called Sigeba-1. A conventional data-driven computer as a first conventional example based on these publicly known materials will be described below.

第8図は上述のデータ駆動形計算機の第1の従来例の構
成を示すブロック図である。
FIG. 8 is a block diagram showing the configuration of the first conventional example of the data-driven computer mentioned above.

このデータ駆動形計算機は、計算機外部とのインタフェ
イスであるネットワークインタフェース14、処理対象
の各データから行先ノード番号が1敗する二つのデータ
を検出するマツチングメモリlO、ノード番号に基づい
て演算命令のコードを取出す命令取出部15、命令コー
ドに従って演算処理を実行する命令実行部12、演算処
理後のデータの次の行先ノード番号を指定するための行
先指定部16等とこれらを接続するデータ経路から構成
されている。
This data-driven computer includes a network interface 14 that is an interface with the outside of the computer, a matching memory IO that detects two pieces of data whose destination node number is 1 out of each data to be processed, and a calculation instruction based on the node number. an instruction fetching section 15 for extracting the code, an instruction execution section 12 for executing arithmetic processing according to the instruction code, a destination specifying section 16 for specifying the next destination node number of the data after the arithmetic processing, and a data path connecting them. It consists of

また、第9図は従来のデータ駆動形計算機の具体的な動
作を説明するためのプログラム(データフローグラフ)
の例である。
In addition, Figure 9 is a program (data flow graph) for explaining the specific operation of a conventional data-driven computer.
This is an example.

このデータフローグラフは、データAとBとをノードI
Oにおいて加算し、この結果のデータGと別のデータC
とをノード12において乗算してその結果データIを求
め、他方ではデータDとEとをノード11において加算
し、この結果のデータHと別のデータFとをノード#4
において乗算してその結果データJを求め・・・、デー
タWとXとをノード# 7096において乗算し、この
結果データYと先に求められているデータIとをノード
#7097において加算してその結果データZを求め・
・・というように構成されている。
This data flow graph connects data A and B to node I
O, add this result data G and another data C
are multiplied at node 12 to obtain the resulting data I, and on the other hand, data D and E are added at node 11, and the resulting data H and another data F are added to node #4.
Multiply at node #7096 to obtain the resultant data J... Then, multiply data W and Find the result data Z.
It is structured as follows.

外部からネットワークインタフェース14を介して入力
されたパケット(タグ情報を有するデータ)A(201
)は、行先ノード番号〈0〉とデータ[A]とから構成
されている。このパケット201は、マツチングメモリ
lOに送られるが、これと同時に、パケット201の内
の行先ノード番号< O> (203)は命令取出部1
5にも送られる。データ[A]の2項演算の相手となる
データ[B]を有するパケットBが既に入力されてマツ
チングメモ1月O内で待機していると仮定すると、これ
ら2つのパケットA、Bの行先ノードは共にIIOで一
致するため、マツチングメモリ10はデータ[A]とデ
ータ[B]とを対にしたパケット206を出力する。
Packet (data with tag information) A (201) input from the outside via the network interface 14
) is composed of destination node number <0> and data [A]. This packet 201 is sent to the matching memory IO, but at the same time, the destination node number <O> (203) in the packet 201 is sent to the instruction fetching unit 1.
It will also be sent to 5. Assuming that packet B with data [B], which is the partner of the binary operation on data [A], has already been input and is waiting in matching memo January O, the destination nodes of these two packets A and B are Since both match in IIO, the matching memory 10 outputs a packet 206 in which data [A] and data [B] are paired.

一方、命令取出部15では、ノード番号〈0〉に相当す
るアドレスの内容である命令コード「+」(205)が
読出されて出力される。
On the other hand, the instruction fetching unit 15 reads and outputs the instruction code "+" (205), which is the content of the address corresponding to node number <0>.

命令取出部15のメモリ構成を第10図(alに示す。The memory configuration of the instruction fetching unit 15 is shown in FIG. 10 (al).

次に、命令取出部15に入力された行先ノード番号〈0
〉は、そのままノード番号< O> (20)として行
先指定部16に送られる。また、命令取出部15で読み
出された命令コード[+ j (205)は、データ対
[A]、  [B]のパケット206と共にパケット2
07として命令実行部12に与えられる。このとき、行
先指定部16においては、第9図のデータフローグラフ
中のノード番号〈0〉に対応する演算である加算の結果
データが次に行くべきノードI2を表す< 2 > (
208)が読出される。
Next, the destination node number <0
> is sent as is to the destination specifying unit 16 as the node number <O> (20). Further, the instruction code [+ j (205) read out by the instruction fetching unit 15 is included in the packet 2 together with the packet 206 of the data pair [A] and [B].
07 to the instruction execution unit 12. At this time, in the destination specifying unit 16, the result data of the addition which is the operation corresponding to the node number <0> in the data flow graph of FIG. 9 represents the next node I2 to go to <2> (
208) is read out.

行先指定部16のメモリ構成を、第9図(b)に示す。The memory configuration of the destination specifying section 16 is shown in FIG. 9(b).

また同時に、命令実行部12においては[A]+[B]
の演算が行われ、その演算結果データ[0](209)
が出力される0行先指定部16の出力208と命令実行
部12の出力209と、即ち行先ノード番号〈0〉とデ
ータ[G]とはパケット210としてネットワークイン
タフェース14を通過し、再び命令取出部15及びマツ
チングメモ1月0に送られる。
At the same time, in the instruction execution unit 12, [A]+[B]
The calculation is performed, and the calculation result data [0] (209)
The output 208 of the 0 destination designation unit 16 and the output 209 of the instruction execution unit 12, that is, the destination node number <0> and data [G], pass through the network interface 14 as a packet 210, and are sent to the instruction extraction unit again. 15 and matching memo sent on January 0.

以上の様な処理の連鎖によって、第9図に示したデータ
フローグラフの全ノードに相当する演算が施され、プロ
グラムの実行が終了する。このとき、データ依存関係が
存在するノード、例えば、ノード薯0とノードI2とに
おける処理はこの順に逐次的にのみ実行可能であるが、
データ依存関係が存在しないノード、例えば、ノードI
Oとノード雲1とにおける処理は処理資源の許す限りに
おいて並列に実行可能である。
Through the chain of processing as described above, operations corresponding to all nodes of the data flow graph shown in FIG. 9 are performed, and the execution of the program is completed. At this time, the processes at the nodes where there is a data dependency relationship, for example, node 0 and node I2, can only be executed sequentially in this order.
Nodes with no data dependencies, e.g. node I
Processing in O and node cloud 1 can be executed in parallel as far as processing resources allow.

なおここで、データ依存関係とは、二つのノード間の接
続関係において、一方のノードの処理が完了することに
よってはじめて他方の処理を行うために必要な入力デー
タが供給されるような接続関係にあることを指している
Note that a data dependency relationship here refers to a connection relationship between two nodes in which input data necessary for processing the other node is supplied only when the processing of one node is completed. It refers to something.

命令取出部15と行先指定部16のメモリ構成を、前述
の如く、第1O図fa)及び(blにそれぞれ示す、各
々の情報のビット幅は、公知資料では明確に記述されて
いないので、ここでは、命令コードのビット幅を4ビツ
ト、行先ノード番号のビット幅を16ビツトと仮定した
。また、上記公知資料には、データコピー操作に関する
具体的な記述がないので、データコピーについては広り
一般的に知られている手法を用いることを仮定した。
The memory configurations of the instruction fetching unit 15 and destination specifying unit 16 are shown in FIG. Here, we assume that the bit width of the instruction code is 4 bits and the bit width of the destination node number is 16 bits.Also, since there is no specific description of the data copy operation in the above-mentioned publicly known materials, data copying is not widely available. It was assumed that a commonly known method would be used.

行先指定部16内のメモリにおける最上位ビット−co
py“はコピービットであり、第9図に示したデータフ
ローグラフ中のあるノードにおける演算結果が複数のノ
ードに送出される場合に、データコピーを行ってそれぞ
れのデータに対して行先ノード番号を与えるために用い
られている0例えば、ノードI2における演算結果がノ
ード#7097とノードI5との両方に送出されている
のに対応して、上記メモリの第2番地のコピービットは
“1”が格納されており、この場合、行先ノード番号#
7097が読出されて演算結果[!]に付加されて出力
された後、連続的に次の番地(第3番地)が続出されて
行先ノード番号I5が同一の演算結果[!コに付加され
て出力される。
The most significant bit -co in the memory in the destination designation unit 16
py" is a copy bit, and when the calculation result at a certain node in the data flow graph shown in Figure 9 is sent to multiple nodes, data is copied and the destination node number is assigned to each data. For example, since the calculation result at node I2 is sent to both node #7097 and node I5, the copy bit at the second address of the memory is set to "1". is stored, in this case the destination node number #
7097 is read and the calculation result [! ] is added and output, the next address (third address) is continuously output, and the destination node number I5 is the same calculation result [! It is added to this and output.

このような従来のデータ駆動形計算機用のすブジエクト
コード生成装置は以下のようなものであった。
A conventional subject code generation device for a data-driven computer is as follows.

その−構成例は、情報処理学会第32回(昭和61年前
期)全国大会予稿集の第211頁から第212頁に「図
的データ駆動形言語υtiの言語処理系」として記述さ
れている。また、データ駆動形計算機用オブジェクトコ
ード生成装置への入力データの規定であるデータ駆動形
計算機用言語仕様については、電子通信学会論文誌D 
Vol、 J71−D  No、3pp、 501−5
081988年3月「データフロー言語DFCの設計と
実現」に発表されている。
An example of its configuration is described as ``Language processing system for graphical data-driven language υti'' on pages 211 to 212 of the proceedings of the 32nd National Conference of the Information Processing Society of Japan (first half of 1986). In addition, regarding the language specifications for data-driven computers, which are the regulations for input data to the object code generation device for data-driven computers, please refer to the Journal of the Institute of Electronics and Communication Engineers D
Vol, J71-D No, 3pp, 501-5
Published in March 1988 in "Design and Implementation of the Data Flow Language DFC".

これらの公知資料に基づいて第1の実施例のオブジェク
トコード生成装置の従来例について説明する。
A conventional example of the object code generation device according to the first embodiment will be described based on these publicly known materials.

第11図18)は、従来のオブジェクトコード生成装置
の一般的な構成を示すブロック図である。
FIG. 11 (18) is a block diagram showing the general configuration of a conventional object code generation device.

第11図(a)において、55はソースファイルである
In FIG. 11(a), 55 is a source file.

このソースファイル55は、たとえば図的データ駆動形
言語UL1.データフロー言語DFC等の記述言語の文
法に従って図形1文字あるいはバイナリデータによりソ
ースプログラムが記述されている。
This source file 55 is, for example, a graphical data-driven language UL1. A source program is described using a single graphic character or binary data according to the grammar of a description language such as the data flow language DFC.

56はオブジェクトコード生成装置であり、ソースファ
イル55からソースプログラムを読込んで最終的にはオ
ブジェクトコード57を生成する。このオブジェクトコ
ード生成装置56は、実行形式生成部58と物理形式生
成部63とにて構成されている。
Reference numeral 56 denotes an object code generation device, which reads a source program from the source file 55 and finally generates an object code 57. This object code generation device 56 is composed of an executable format generation section 58 and a physical format generation section 63.

第11図山)はデータフローグラフの一例を示している
。この第11開山)において、60はデータの動きを表
す矢印にて記述される所謂データフローグラフ全体を示
し、「○」はそれぞれのノードを示している。そして、
たとえば、ノード62はノード61の行先ノードと称さ
れる。なお、各ノードを示す「O」にはそれぞれ実行命
令、たとえば“NOP (N。
Figure 11) shows an example of a data flow graph. In this 11th opening), 60 indicates the entire so-called data flow graph described by arrows representing the movement of data, and "O" indicates each node. and,
For example, node 62 is referred to as the destination node of node 61. Note that "O" indicating each node has an execution command, for example, "NOP (N.

0peration)”+ ” + (加算)”等が記
述されている。
0operation)"+"+(addition)", etc. are written.

実行形式生成部58は、この第11図(blに示す如き
データフローグラフと等価な情報である実行形式59を
生成する。また、物理形式生成部63は実行形式生成部
58が生成した実行形式59からオブジェクトコード5
7を生成する。
The executable format generating section 58 generates an executable format 59 which is information equivalent to the data flow graph as shown in FIG. 59 to object code 5
Generate 7.

データフローグラフ60において、ノード61に入力さ
れたデータば、ノード61における実行命令が実行され
、その結果が矢印の経路を通って行先ノード62に伝達
され、このノード62への入力データの総てが揃うとこ
のノード62の実行命令が行われる。
In the data flow graph 60, when the data is input to the node 61, the execution command at the node 61 is executed, the result is transmitted to the destination node 62 through the path of the arrow, and all of the input data to this node 62 is transmitted. When these are completed, the execution command of this node 62 is executed.

実行形式生成部58は更に、ソースファイル55からソ
ースプログラムを読込んで文法チエツクなどを行うソー
スファイル処理部64と、実行形式59を生成するデー
タフロ1−情報生成部65とからなる。
The executable format generation section 58 further includes a source file processing section 64 that reads the source program from the source file 55 and performs a grammar check, etc., and a data flow 1 information generation section 65 that generates the executable format 59.

また、物理形式生成部63は、物理形式構築部66と物
理形式出力部67とからなる。
Further, the physical format generation section 63 includes a physical format construction section 66 and a physical format output section 67.

第2図はソースファイル55中に記述されているソース
プログラムの例であり、前述の第9図のデータフローグ
ラフが第2図のソースプログラムから生成された実行形
式と等価なデータフローグラフである。
FIG. 2 is an example of a source program written in the source file 55, and the data flow graph in FIG. 9 described above is a data flow graph equivalent to the executable format generated from the source program in FIG. .

第3図は実行形式実行形式59により生成される第9図
のデータフローグラフと等価なオブジェクトコードであ
る。
FIG. 3 shows an object code equivalent to the data flow graph of FIG. 9 generated by the executable format 59.

次に、上述の如き構成の従来のオブジェクトコード生成
装置の動作について、以下に説明する。
Next, the operation of the conventional object code generation device configured as described above will be explained below.

オブジェクトコード生成装置56では、まず実行形式生
成部58ソースファイル処理部64がソースファイル5
5からソースプログラムを読込む、ソースファイル55
が前述のULIのような図的言語にて記述されている場
合は、読込み処理は対話的なエディタ機能を有する0次
にソースファイル処理部64は、読込んだソースファイ
ル55が記述言語の文法に叶っているか否かをチエツク
する。そして、データフロー情報生成部65により、実
行されるべき命令の決定とデータの流れの検出とが行わ
れ、実行形式59のデータフロー情報が生成される。例
えば、第2図に示すソースプログラムでは、各式に対し
て、それぞれの入力となるデータの検出及び出力のデー
タのチエツクが行われる。
In the object code generation device 56, the executable format generation section 58 and source file processing section 64 first generate the source file 5.
Load the source program from 5, source file 55
If the source file 55 is written in a graphical language such as the above-mentioned ULI, the reading process has an interactive editor function. Check whether it is true or not. Then, the data flow information generation unit 65 determines the command to be executed and detects the flow of data, and generates data flow information in the execution format 59. For example, in the source program shown in FIG. 2, for each equation, detection of input data and checking of output data are performed.

たとえば、式 %式%) の場合、入力となるデータはデータ[A]、データ[B
]及びデータ[C]であり、データ[A]とデータ[B
]との間で実行命令「+」が行われ、その結果とデータ
[C]との間で実行命令「*」を行ってデータ[1Fが
出力されると認識され、式に対応するデータフローグラ
フが生成される。
For example, in the case of the formula %formula%), the input data are data[A], data[B
] and data [C], and data [A] and data [B
], an execution command "+" is executed between the result and data [C], and an execution command "*" is executed between the result and data [C], and it is recognized that data [1F is output, and the data flow corresponding to the expression A graph is generated.

同様に、各式に対してこのような解析が行われる。Similarly, such an analysis is performed for each expression.

次に、ソースプログラム上で先に記述された出力データ
と後で記述された入力データとがデータの流れとしての
繋がりを有するか否かが検出される。
Next, it is detected whether the output data written earlier and the input data written later on the source program have a connection as a data flow.

この例では、この出力データ[1] は、弐に←r+J z4−t+w*x の入力データ[11と繋げられ、式と式との間のデータ
の流れが決定する。その結果として、第9図のデータフ
ローグラフと等価な実行形式59が生成される。
In this example, this output data [1] is connected to the input data [11 of ←r+J z4-t+w*x ] to determine the flow of data between the expressions. As a result, an executable format 59 equivalent to the data flow graph of FIG. 9 is generated.

次に、物理形式生成部63の物理形式構築部66は各ノ
ードのノード番号を決定し、ノード番号の順にオブジェ
クトコード57が物理形式出力部67から出力される。
Next, the physical format construction section 66 of the physical format generation section 63 determines the node number of each node, and the object code 57 is outputted from the physical format output section 67 in the order of the node number.

オブジェクトコードは、第3図に示す如く、ノード番号
の順にデータのコピーが行われる場合は“copy”ビ
ットを“11にし、コピーが行われない場合は“C0P
Y“ビットを“O”にし、実行命令を計算機上で認識さ
れる命令コード(OPECODE)に変換し、行き先ノ
ードの情報に従って行き先ノードの番号一方、第2の従
来技術としての、本願出願人が先に出願した「データ駆
動形計算機」と題された特願昭63−申*傘*寧傘号及
び特願昭64−本*率傘*傘号の発明は以下のような内
容である。
As shown in Figure 3, the object code sets the "copy" bit to "11" when data is copied in the order of node numbers, and "C0P" when copying is not performed.
Y" bit is set to "O", the execution instruction is converted into an instruction code (OPECODE) recognized on the computer, and the number of the destination node is determined according to the information of the destination node. Meanwhile, as a second prior art, the applicant of the present application The inventions of the previously filed patent application entitled ``Data Driven Calculator'' entitled ``Sin*Kasa*Ning Kasa'' in 1983 and 1987 - Hon*Kasa*Kasa are as follows.

なお、上記発明が出願される以前のデータ駆動形計算機
は、以下の如き二つの問題点を有していた。
Note that data-driven computers prior to the filing of the above invention had the following two problems.

第一の問題点は、プログラムメモリの規模が一般的なノ
イマン形の計算機に比して大きいことである。
The first problem is that the scale of the program memory is larger than that of a typical Neumann type computer.

現在、広<一般に用いられているノイマン形計算機の場
合、プログラムに記述された順序に従ってステップ・パ
イ・ステップで逐次処理を行うので、プログラムカウン
タと称される一個のレジスタで実行番地が一元的に管理
されている。従って、分岐命令以外は次に実行すべき命
令の番地(飛び先番地)を特に指定する必要がなく、デ
ータ駆動形計算機に比して小さい規模のプログラムメモ
リで同一内容のプログラムを格納することができる。
In the case of the currently widely used Neumann type computer, processing is performed step-by-step sequentially according to the order written in the program, so the execution address is centrally stored in a single register called the program counter. Managed. Therefore, except for branch instructions, there is no need to specify the address of the next instruction to be executed (jump address), and programs with the same content can be stored in a smaller program memory than data-driven computers. can.

これに対して、データ駆動形計算機の場合には、各命令
の処理を並列的に実行するため、実行番地を一元的に管
理することが不可能である。このため、データ駆動形計
算機では、原理的に総ての命令に対して次に実行すべき
命令の番地(行先ノード番号)を指定しておく必要があ
り、必然的にプログラムメモリの規模が拡大する原因と
なっている。前述の第1の従来例においても、1命令当
りのビット幅21ビツト(命令コード4ビツト十行先ノ
ード番号17ビツト)の内、16ビツトを行先ノード番
号が占めている。
On the other hand, in the case of a data-driven computer, each instruction is processed in parallel, so it is impossible to centrally manage execution addresses. For this reason, in data-driven computers, it is in principle necessary to specify the address of the next instruction to be executed (destination node number) for every instruction, which inevitably increases the size of the program memory. It is the cause of this. In the first conventional example described above, the destination node number occupies 16 bits out of the 21-bit bit width (instruction code: 4 bits, 10 rows: destination node number: 17 bits).

第二の問題点は、プログラムメモリが命令取出部と行先
指定部とに分離されていることである。
The second problem is that the program memory is separated into an instruction fetch section and a destination specification section.

このため、第10図(al、 (blに示されているよ
うに、あるノードに着目してみると、これら二つのメモ
リに対する入力アドレスが全く同一であるにも拘わらず
、これらが別々のパイプライン段に配置されているため
、アクセスが同時には行われずに不要な処理時間を要し
、また入力アドレスラッチ及びアドレスデコーダを独立
に2組備える必要があり、ハードウェア規模を不要に大
きくすることになる。
For this reason, as shown in Figure 10 (al, (bl), if we focus on a certain node, we find that even though the input addresses to these two memories are exactly the same, they are connected to separate pipes. Because it is arranged in the line stage, accesses are not performed simultaneously, requiring unnecessary processing time, and it is necessary to provide two independent sets of input address latches and address decoders, which unnecessarily increases the hardware scale. become.

本願出願人により先に出願されたデータ駆動形計算機の
二つの発明の内の第1の発明、即ち特願昭63−傘*$
*傘傘号の発明は上述の第1の問題点の解決を目的とし
てなされたものであり、プログラムメモリの規模を圧縮
することにより、データ駆動形計算機のハードウェア規
模の低減を図り、同時にメモリ規模の圧縮に伴うメモリ
アクセスタイムの短縮による性能向上を図らんとするも
のである。
The first of the two inventions of a data-driven computer previously filed by the applicant of the present application, namely, the patent application 1986-Umbrella*$
*The invention of Kasa-Kago was made with the aim of solving the first problem mentioned above, and by compressing the scale of program memory, it was possible to reduce the hardware scale of data-driven computers, and at the same time reduce the memory size. The aim is to improve performance by reducing memory access time due to size reduction.

具体的には、上述の第1の問題点を解決するための手段
として、プログラムメモリ内の行先ノード番号を、たと
えば現在の命令の格納番地からの相対番地で格納するよ
うな構成を採っている。
Specifically, as a means to solve the first problem mentioned above, a configuration is adopted in which the destination node number in the program memory is stored, for example, at a relative address from the storage address of the current instruction. .

このような構成を採る結果、作用として、相対番地は絶
対番地に比してデータ量が少ないので、次に実行すべき
命令の格納番地は、現在の命令の番地に次の命令の相対
番地を加算することにより得られるので、プログラムメ
モリの規模を削減することが可能になる。
As a result of adopting this configuration, the relative address has a smaller amount of data than the absolute address, so the storage address of the next instruction to be executed is set to the relative address of the next instruction to the address of the current instruction. Since it is obtained by addition, it is possible to reduce the size of the program memory.

また、本願出願人により先に出願されたデータ駆動形計
算機の二つの発明の内の第2の発明、即ち特願昭54−
 ****+s傘号の発明は上述の第2の問題点の解決
を目的としてなされたものであり、データ処理時間を短
縮すると共に、不要なハードウェアの削減を図らんとす
るものである。
In addition, the second invention of the two inventions of a data-driven computer previously filed by the applicant, namely, the patent application filed in 1983-
The invention under the umbrella name ****+s was made with the aim of solving the second problem mentioned above, and aims to shorten data processing time and reduce unnecessary hardware. .

具体的には、従来のデータ駆動形計算機の命令取出し機
能と行先指定機能とを一つのプログラムメモリに統合し
、このプログラムメモリを命令実行部と並列配置するこ
とにより、冗長な入力アドレスランチあるいはデコーダ
を排除し、ハードウェア規模を削減し、更にプログラム
メモリと命令実行部とを並列配置することにより一つの
命令を実行するための基本サイクルを■マツチングメモ
リと■(プログラムメモリ+命令実行部)の二つのパイ
プライン段にて構成している。
Specifically, by integrating the instruction fetch function and destination specification function of conventional data-driven computers into one program memory, and arranging this program memory in parallel with the instruction execution section, redundant input address launch or decoder By eliminating this, reducing the hardware scale, and arranging the program memory and instruction execution section in parallel, the basic cycle for executing one instruction can be reduced by matching memory and ■ (program memory + instruction execution section). It consists of two pipeline stages.

このような構成を採る結果、命令コード及び行先ノード
番号の両方を格納したプログラムメモリを命令実行部と
並列配置しているので、現在の命令の実行処理と、次の
命令及び行先ノード番号の読出し処理とが並列して行わ
れ、このサイクルと一致検出部におけるデータ待合わせ
のサイクルとの計2サイクルで一つの命令の実行が完了
される。
As a result of this configuration, the program memory that stores both the instruction code and the destination node number is arranged in parallel with the instruction execution unit, so it is possible to execute the current instruction and read the next instruction and destination node number. The processing is performed in parallel, and execution of one instruction is completed in a total of two cycles: this cycle and the data waiting cycle in the coincidence detection section.

このような第3の従来例を図面を参照して以下に具体的
に説明する。
Such a third conventional example will be specifically explained below with reference to the drawings.

第12図は上述の第2の従来例としてのデータ駆動形計
算機の一構成例を示すブロック図である。
FIG. 12 is a block diagram showing an example of the configuration of the data-driven computer as the second conventional example mentioned above.

この第2の従来例のデータ駆動形計算機は、外部とのイ
ンタフェイスであるネットワークインタフェイス14、
処理対象の各データから行先ノード番号が一致する二つ
のデータを検出する一致検出部としてのマツチングメモ
リIO1ノード番号に基づいて演算命令のコードを取出
す機能と演算処理後のデータの次の行先ノード番号を指
定するための二つの機能を有するプログラムメモリ1に
命令コードに従って演算処理を実行する演算処理部とし
ての命令実行部12、行先ノード番号の更新処理のため
の演算手段としての加算器13等とこれらを接続するデ
ータ経路にて構成されている。
This second conventional data-driven computer has a network interface 14 which is an interface with the outside,
Matching memory as a match detection unit that detects two pieces of data with matching destination node numbers from each data to be processed A function to extract the code of an operation instruction based on the IO1 node number and the next destination node of the data after operation processing An instruction execution unit 12 as an arithmetic processing unit that executes arithmetic processing according to an instruction code in a program memory 1 having two functions for specifying a number, an adder 13 as an arithmetic means for updating a destination node number, etc. and a data path that connects them.

このような第3の従来例のデータWA劫形計″X機によ
り、第13図に示すプログラム(データフローグラフ)
を実行する場合について動作を説明する。
The program (data flow graph) shown in FIG.
The operation will be explained when executing.

なお、第13図に示すデータフローグラフは、前述の第
9図のプログラムと全(同一のプログラムであるが、説
明のためにノード番号の割付は方を異ならせである。
The data flow graph shown in FIG. 13 is the same program as the program shown in FIG. 9 described above, but for the sake of explanation, the node numbers are assigned differently.

このデータフローグラフは、データAとBとをノードl
Oにおいて加算し、この結果のデータGと別のデータC
とをノード嘗2において乗算してその結果データIを求
め、他方ではデータDとEとをノード11において加算
し、この結果のデータGと別のデータCとをノード15
において乗算してその結果データJを求め・・・、デー
タWとXとをノード# 7096において乗算し、この
結果データYと先に求められているデータIとをノード
#1091において加算してその結果データZを求め・
・・というように構成されている。
This data flow graph connects data A and B to node l.
O, add this result data G and another data C
are multiplied at node 2 to obtain the resultant data I, and on the other hand, data D and E are added at node 11, and this resultant data G and another data C are multiplied at node 15.
Multiply at node #7096 to obtain the resultant data J... Then, multiply data W and Find the result data Z.
It is structured as follows.

外部からネットワークインタフェース14を経由して入
力されたパケット101は、行先ノード番号くO〉、デ
ータ[A]及び命令コード「+」を含んでいる。
A packet 101 input from the outside via the network interface 14 includes a destination node number 〉O〉, data [A], and an instruction code ``+''.

この第2の従来例のデータ駆動形計算機においては、2
サイクルのパイプライン処理が行われる。
In this second conventional data-driven computer, 2
Pipelining of cycles is performed.

その初段はマツチングメモリ10におけるデータの待合
わせである。外部から入力されたバケツ) 101は、
マツチングメモリ10に送られるがこの際、2項演算「
+」の相手のデータ[B]を含むパケットが未到着の場
合は、入力されたパケット101はマツチングメモリ内
に一旦格納され、データ[B]を含むパケットの到着を
待つ、また、既にもう一方のデータ[B]を含むパケッ
トが到着してマツチングメモリ内に格納されている場合
には、これら二つのパケットの行先ノード番号<Q>が
−敗していることが検出され、入力パケット101にデ
ータ[B]を付加したパケット102がマツチングメモ
リ10から送出される。
The first stage is the waiting of data in the matching memory 10. bucket input from outside) 101 is
It is sent to the matching memory 10, but at this time, the binary operation "
+", if the packet containing data [B] has not yet arrived, the input packet 101 is temporarily stored in the matching memory and waits for the arrival of the packet containing data [B]. When a packet containing one data [B] arrives and is stored in the matching memory, it is detected that the destination node number <Q> of these two packets is - lost, and the input packet A packet 102 in which data [B] is added to 101 is sent out from the matching memory 10.

パケット102に含まれている情報の内、行先ノード番
号< O>(103)はプログラムメモ1月1及び後述
する加算器13に送られ、残りのデータ[A]。
Among the information contained in the packet 102, the destination node number <O> (103) is sent to the program memo January 1 and the adder 13, which will be described later, and the remaining data [A].

[B]及び命令コード「+」は、パケット104として
命令実行部12に送られる。
[B] and the instruction code “+” are sent to the instruction execution unit 12 as a packet 104.

命令実行部12では、命令コード「+」に従ってデータ
[A]と[B]との加算が行われ、加算結果データ[G
] (107)が出力される。
In the instruction execution unit 12, data [A] and [B] are added according to the instruction code "+", and the addition result data [G
] (107) is output.

一方、命令実行部12における処理と並列して実行され
るプログラムメモリ11での処理について、以下に説明
する。
On the other hand, the processing in the program memory 11 that is executed in parallel with the processing in the instruction execution unit 12 will be described below.

第4図はこの第3の従来例のデータ駆動形計算機のオブ
ジェクトコードの構成を示す模式図であるが、プログラ
ムメモ1月1のメモリ構成と一致している。
FIG. 4 is a schematic diagram showing the structure of the object code of the third conventional data-driven computer, which corresponds to the memory structure of the program memo January 1.

第4図のメモリにおいて、各ワードの最上位ビッビEX
T“は後述する拡張アドレスフラグである。
In the memory shown in Fig. 4, the most significant bit EX of each word
T" is an extended address flag to be described later.

その下位側のビット”copy″は、従来例における“
copy”ビットと同様の意味を有し、この“copy
’ビットが”l”であれば演算結果の行先ノードが複数
個あり、これらの各行先ノードに関する命令コードと行
先ノード番号の情報とが次の番地以降に格納されている
ことを示している。
The lower bit “copy” is “copy” in the conventional example.
This “copy” bit has the same meaning as the “copy” bit.
' If the bit is "l", it indicates that there are a plurality of destination nodes for the operation result, and that the instruction code and destination node number information regarding each of these destination nodes are stored at the next address or later.

この@copy”ビットに続く下位側4ビツトには、次
のサイクルで実行すべき命令コード(OPECODE)
が格納されており、その更に下位側の6ビツトには、行
先ノード番号が現在のノード番号に対する相対番地(R
NODE)で格納されている。
The lower 4 bits following this @copy” bit contain the instruction code (OPECODE) to be executed in the next cycle.
is stored, and in the lower 6 bits, the destination node number is a relative address (R
NODE).

上述の如く構成された第3の従来例としてのデータ駆動
型針3E機の具体的な動作を説明する。
The specific operation of the data-driven needle 3E machine as a third conventional example configured as described above will be explained.

パケット101がマツチングメモリ10において一致検
出されてパケット102が出力されると、パケット10
2のノード番号< 0 > (103)がプログラムメ
モ1月1に入力される。これにより、第4図に示したメ
モリの第0番地がアクセスされて、命令コード「+」と
、相対行先ノード番号く2〉が読出されて、命令コード
レジスタ(OPE−REG) 131及び行先ノード番
号レジスタ(DBST−REG) 132にそれぞれ書
込まれる。
When packet 101 is detected as a match in matching memory 10 and packet 102 is output, packet 10
2's node number <0> (103) is entered in the program memo January 1. As a result, address 0 of the memory shown in FIG. 4 is accessed, the instruction code "+" and the relative destination node number 2> are read out, and the instruction code register (OPE-REG) 131 and the destination node are read out. Each number is written to the number register (DBST-REG) 132.

命令コードは命令コードレジスタ131からそのまま出
力される。一方、相対行先ノード番号く2〉は行先ノー
ド番号レジスタ132から加算器13に送られ、加算器
13において、先に入力されている入力ノード番号< 
0 > (103)と加算されて行先ノード番号の絶対
値< 2 > (106)が得られる。
The instruction code is output as is from the instruction code register 131. On the other hand, the relative destination node number <2> is sent from the destination node number register 132 to the adder 13, and in the adder 13, the input node number <
0 > (103) is added to obtain the absolute value of the destination node number < 2 > (106).

このようにして得られた命令コード「+J1行先ノード
番号〈2〉及び命令実行部12から出力されるデータ[
G]にて構成されるパケット108が再びネットワーク
インタフェイス14を経由してマツチングメモi月0に
供給され、このような処理の反復によって、プログラム
の全体が実行される。
The instruction code “+J1 destination node number <2>” obtained in this way and the data output from the instruction execution unit 12 [
The packet 108 composed of [G] is again supplied to the matching memo i month 0 via the network interface 14, and the entire program is executed by repeating this process.

但し本発明では、相対行先ノード番号を格納するプログ
ラムメモリ11のメモリのビット幅を6ビツトに制限し
ているために、実際の相対行先ノード番号の値が255
(−2’ −1)を越えた場合に指温れが発生する。
However, in the present invention, since the bit width of the program memory 11 that stores the relative destination node number is limited to 6 bits, the actual value of the relative destination node number is 255.
(-2'-1), finger warmth occurs.

例えば、第13図のデータフローグラフにおけるノード
12からノード# 7079への矢印に対応する相対行
先ノード番号がこれに相当する。このような場合には、
各ノード番号に対応するプログラムメモリの最上位ビフ
ビEXT”を“ビとすることによって、溢れた桁を格納
するための拡張アドレスビット領域として次の番地を用
いることが可能なように本発明では構成しである。
For example, this corresponds to the relative destination node number corresponding to the arrow from node 12 to node #7079 in the data flow graph of FIG. In such a case,
The present invention is configured such that by setting the topmost BIFVI EXT of the program memory corresponding to each node number to B, the next address can be used as an extended address bit area for storing overflowing digits. It is.

第13図のノードI2における処理に必要な入力デ−夕
[G]と[C]とが揃い、マツチングメモリlOから行
先ノード番号く2〉1命令コード「+」。
Input data [G] and [C] necessary for processing at node I2 in FIG. 13 are complete, and destination node number 2>1 instruction code "+" is output from matching memory IO.

データ[G]及び[C]にて構成されるパケットが出力
された場合について説明する。
A case will be described in which a packet composed of data [G] and [C] is output.

上述の如く、命令コードとデータは命令実行部12に送
られて乗算が実行され、結果データ[1]が出力される
。これと並行して、行先ノード番号く2〉がプログラム
メモリ11に送出され、行先ノード番号が読出される。
As described above, the instruction code and data are sent to the instruction execution unit 12, multiplication is executed, and result data [1] is output. In parallel with this, the destination node number 2> is sent to the program memory 11, and the destination node number is read out.

入力されたノード番号が<N>であるときのプログラム
メモリ11の詳細な論理動作を、第14図のフローチャ
ートに示す。
The detailed logical operation of the program memory 11 when the input node number is <N> is shown in the flowchart of FIG.

このフローチャート中において、「IIEADM」はメ
モリのM番地を読出す動作、ビン) (6: 0)等は
ビット6からビット0にて構成されているビット列、”
I!XT’、“C0PY”はプログラムメモリ内の拡張
アドレスフラグビットとコピーフラグビットとの値をそ
れぞれ表わしている。
In this flowchart, "IIEADM" is an operation for reading address M in memory, and "bin" (6: 0), etc. is a bit string consisting of bits 6 to 0.
I! XT' and "C0PY" represent the values of the extended address flag bit and copy flag bit in the program memory, respectively.

行先ノード番号く2〉を有するパケットがプログラムメ
モ1月1に人力されると、プログラムメモI711の第
2番地の内容が読出される(ステップS4)。
When a packet having the destination node number 2> is manually entered in the program memo January 1, the contents of the second address of the program memo I711 are read out (step S4).

読出された内容のうち、命令コード「+」が命令コード
レジスタ131に、また相対行先ノード番号〈4〉が行
先ノード番号レジスタ132の下位6ビツトに、即ちビ
ット(6+ O)にそれぞれ書込まれる(ステップ35
. S6)。
Of the read contents, the instruction code "+" is written to the instruction code register 131, and the relative destination node number <4> is written to the lower 6 bits of the destination node number register 132, that is, bit (6+O). (Step 35
.. S6).

読出されたワードの“EXT” ビットは“θ″なので
(ステップS7)、命令コード及び行先ノード番号レジ
スタの値く4〉と入力されたノード番号(2〉との加算
器13による加算結果のく6〉が行先ノード番号として
出力される(ステップS8)。
Since the "EXT" bit of the read word is "θ" (step S7), the result of addition by the adder 13 between the instruction code and the value of the destination node number register (4) and the input node number (2) is 6> is output as the destination node number (step S8).

この際、読出されたワードの“copy”ビットが11
”なので、読出しアドレスく2〉をインクリメントする
と共に(ステップ510)、ループカウント<l、>と
行先ノード番号レジスタ132の内容をクリアした後(
ステップS2.S3)、インクリメント後のアドレスで
ある第3番地を読出す(ステップS4)。
At this time, the “copy” bit of the read word is 11.
” Therefore, after incrementing the read address <2> (step 510) and clearing the loop count <l,> and the contents of the destination node number register 132 (
Step S2. S3), the third address which is the address after incrementing is read out (step S4).

初回の読出しの際と同様に、読出したワード中の命令コ
ード「+」と相対行先ノード番号<55〉(−“11G
111’)とを、命令コードレジスタ131と行先ノー
ド番号レジスタ132の下位6ビツトにそれぞれ書込む
(ステップ55.56) 、読出したワードのI!X?
”ビットが11111であるので(ステップ37)、読
出しアドレスをインクリメントして(ステップS1り、
第4番地の内容を読出し、読出したワードの下位10ビ
ツトを、行先ノード番号レジスタ132のビット15か
らビット6に書込む(ステップ513)。
As with the first read, the instruction code “+” in the read word and the relative destination node number <55> (-“11G
111') are written to the lower 6 bits of the instruction code register 131 and the destination node number register 132, respectively (steps 55 and 56), and the I! of the read word is written. X?
” Since the bit is 11111 (step 37), the read address is incremented (step S1,
The contents of the fourth address are read and the lower 10 bits of the read word are written into bits 15 to 6 of the destination node number register 132 (step 513).

最後に読出したワードのEXTビットの値が′1′であ
るので(ステップ515)、現状の命令コード「+」及
び行先ノード番号レジスタ132の内容< 7095 
>(=“0001101110110111”)と入力
したノード番号12との加算結果< 7097 >を出
力する(ステップS8)。
Since the value of the EXT bit of the last read word is '1' (step 515), the current instruction code '+' and the contents of the destination node number register 132 < 7095
>(="0001101110110111") and the input node number 12, the addition result <7097> is output (step S8).

また、最後に読出したワードのcopyビットの値は“
0”なので(ステップS9)、ノード番号〈2〉を有す
る入力パケットに対する一連の処理を終了する。
Also, the value of the copy bit of the last read word is “
0'' (step S9), the series of processing for the input packet having the node number <2> ends.

上述のように、行先ノード番号を相対行先ノード番号で
与えた場合において、相対行先ノード番号が所定のビッ
ト幅を越えてオーバーフローしても、プログラムメモリ
の次の番地を相対行先ノード番号の拡張アドレス領域と
して用いることによって処理が完結され、どのような規
模の、またどのようなノード番号割付けが行われたプロ
グラムに対してもこの第2の従来例は実施可能である。
As mentioned above, when the destination node number is given as a relative destination node number, even if the relative destination node number overflows beyond the predetermined bit width, the next address in the program memory is set to the extended address of the relative destination node number. Processing is completed by using the area as an area, and this second conventional example can be implemented for programs of any size and with any node number allocation.

−aに、ノード間の接続は局所的であることから、プロ
グラム規模によらず、相対行先ノード番号が大きな値を
とることは稀であると考えられる。
-a, since connections between nodes are local, it is considered that the relative destination node number rarely takes a large value, regardless of the program scale.

実際に、3987ノードからなるテストプログラムに対
して、入力から順に近いノードに小さいノード番号を与
えるようにノード番号を割付けた場合に相対行先ノード
番号がどのような統計的分布を示すかを評価した。その
結果を第15図のグラフに示す、グラフの横軸は、相対
行先ノード番号を、縦軸は累積度数の百分率を、各区間
に対する数字はその区間内に含まれるノード敗をそれぞ
れ示している。
In fact, for a test program consisting of 3987 nodes, we evaluated the statistical distribution of relative destination node numbers when node numbers were assigned in such a way that nodes closest to the input were given smaller node numbers. . The results are shown in the graph of Figure 15. The horizontal axis of the graph shows the relative destination node number, the vertical axis shows the cumulative frequency percentage, and the number for each section shows the node failure included in that section. .

この第15図のグラフからは、全体の約9割(88χ)
は相対行先ノード番号が63番地以内であることが容易
に理解される。即ち、相対行先ノード番号のビット幅を
6ビツトとしても、前述の如き拡張ビソトを必要とする
可能性は約1割であることを意味している。
From the graph in Figure 15, approximately 90% (88χ) of the total
It is easily understood that the relative destination node number is within address 63. In other words, even if the bit width of the relative destination node number is 6 bits, there is a probability of approximately 10% that the above-mentioned extended bit width will be required.

前述の第1の従来例のプログラムメモリのビット幅が2
1ビツト(命令取り出し部4ビット+行き先指定部17
ビツト)であるのに対して、本実施例の場合は12ビツ
トであり、本発明を実施した場合に拡張アドレスを格納
するために余分に必要となるワード数が上述の統計から
10%程度あるとしても、メモリの規模は (12X 1.1) /21″= 0.63倍に圧縮さ
れる0本実施例ではプログラムメモリ空間を16ビツト
としたが、この圧縮効果はプログラムメモリ空間が大き
くなると一層顕著になる。
The bit width of the program memory in the first conventional example described above is 2.
1 bit (instruction fetch section 4 bits + destination specification section 17
In contrast, in the case of this embodiment, it is 12 bits, and the number of extra words required to store the extended address when implementing the present invention is approximately 10% from the above statistics. However, the size of the memory is compressed by (12X 1.1) / 21'' = 0.63 times. In this example, the program memory space is 16 bits, but this compression effect becomes larger as the program memory space becomes larger. It becomes even more noticeable.

例えば、プログラムメモリ空間を32ビツトとした場合
には、相対行先ノード番号空間を8ビツトに拡大し、拡
張アドレスビットが必要となる割合を20%と見積って
も、メモリ規模は (相対行先ノード番号+フラグ+命令コード)Xl、2
(行き先ノード番号十フラグ+命令コード)となり、実
際のビット数を代入すると (8+2+4)Xl、2 (32+ 1 + 4) 倍となり、半分以下に圧縮可能である。
For example, if the program memory space is 32 bits, even if you expand the relative destination node number space to 8 bits and estimate that the proportion of extended address bits required is 20%, the memory size will be (relative destination node number + flag + instruction code) Xl, 2
(destination node number ten flag + instruction code), and when the actual number of bits is substituted, it becomes (8+2+4)Xl, 2 (32+1+4) times, and can be compressed to less than half.

なお、上述の第2の従来例では説明の簡便化のために、
相対行先ノード番号を正の数に限定したが、符号付き数
(2の補数表現)とすることによって、出力側のノード
番号より小さいノード番号を有するノードに対してデー
タを送出することが可能になる。これによって、繰り返
し構造を含むプログラムに対しても、この第2の従来例
は実施可能である。
In addition, in the above-mentioned second conventional example, for the sake of simplicity of explanation,
Although the relative destination node number is limited to a positive number, by using a signed number (two's complement representation), it is possible to send data to a node with a smaller node number than the output side node number. Become. As a result, this second conventional example can be implemented even for programs including repetitive structures.

更に、この第2の従来例では、相対行先ノード番号の桁
溢れビットを拡張ビットに割り当てたが、他の手法とし
て、プログラムをページ単位に分割し、ページ内番地を
例えば6ビツトで表わし、ページを越えて行先ノードが
存在する場合に、相対ページ番号を拡張ビットに割当て
る手法を採ることも可能である。
Furthermore, in this second conventional example, the overflow bit of the relative destination node number is assigned to the extension bit, but another method is to divide the program into pages, express the address within the page with 6 bits, and It is also possible to adopt a method of assigning a relative page number to an extension bit when there are destination nodes beyond .

以上説明したように、この第2の従来例としてのデータ
駆動形計算機においては、プログラムメモリ内のけ先ノ
ード番号を、たとえば現在の命令の格納番地からの相対
番地で指定したことにより、行先ノード番号を格納する
ためのビット幅を大幅に圧縮し、プログラムメモリの規
模を低減することが可能になる。
As explained above, in the data-driven computer as the second conventional example, by specifying the destination node number in the program memory as a relative address from the storage address of the current instruction, the destination node It becomes possible to significantly compress the bit width for storing numbers and reduce the size of program memory.

更に、前述の第1の従来例に示したデータ駆動形計算機
の、命令取出部と行先指定部とを一つのプログラムメモ
リに統合し、このプログラムメモリを命令実行部と並列
配置したことにより、冗長な人力アドレスランチ及びデ
コーダ等を省略してハードウェア規模を低減することが
できる。
Furthermore, by integrating the instruction fetch section and destination specification section of the data-driven computer shown in the first conventional example above into one program memory, and arranging this program memory in parallel with the instruction execution section, redundancy can be reduced. The hardware scale can be reduced by omitting manual address launching, decoders, etc.

また、プログラムメモリと命令実行部を並列配置したこ
とにより、一つの命令を実行するための基本サイクルは
■マツチングメモリと■「プログラムメモリ+命令実行
部」の二つのパイプライン段にて構成されるので、従来
例のデータ駆動形計算機に比べて遜色のない短い基本サ
イクルが得られており、単発の命令に対する応答時間も
短く抑えることができる。
In addition, by arranging the program memory and instruction execution section in parallel, the basic cycle for executing one instruction consists of two pipeline stages: ■ matching memory and ■ "program memory + instruction execution section." Therefore, a short basic cycle comparable to that of conventional data-driven computers can be obtained, and the response time to a single command can also be kept short.

一般に、データ駆動形計算機は、並列分散処理に適した
計算モデルの上に構築されており、特別な制御を加えな
くてもマルチタスクが自律的に並列実行されるという際
だった特徴があると考えられている。しかしながら、マ
ルチタスクの各々を格納するプログラムメモリのアドレ
スが固定的に決められているような現状の方式の場合、
現在実行中のタスクTaとプログラムメモリの領域を共
有する虞れのある他のタスクTbとは、プログラムメモ
リに空き領域があっても同時には実行できない、従って
、現状のデータ駆動形計算機は、マルチタスクに通して
いるという本来有している特徴を充分に活用することが
出来ていないというのが実情である。
In general, data-driven computers are built on a computational model suitable for parallel distributed processing, and have the distinctive feature of autonomously executing multiple tasks in parallel without any special control. It is considered. However, in the case of the current system where the address of the program memory that stores each multitask is fixed,
Other tasks Tb that may share the program memory area with the currently executing task Ta cannot be executed at the same time even if there is free space in the program memory. The reality is that we are not able to take full advantage of our inherent ability to stay on task.

これに対して、上述の第2の従来例のデータ駆動形計算
機では、全てのノードのノード番号が他のノードからの
相対行先ノード番号で指定されるので、プログラムメモ
リに空き領域があれば絶対番地とは無関係に、任意の空
き領域に新たなタスクを外部からロードし、他のタスク
と並列に実行することができる。
On the other hand, in the data-driven computer of the second conventional example mentioned above, the node numbers of all nodes are specified by relative destination node numbers from other nodes, so if there is free space in the program memory, A new task can be externally loaded into any free space and executed in parallel with other tasks, regardless of address.

以上は、lプロセッサ上でのマルチタスク実行について
述べたものであるが、第16図に示すように、各プロセ
ッサに跨る個々のタスクが、各プロセッサ内で同一のプ
ログラムメモリ領域を占めるようにすれば、ネットワー
クを介して相互にパケット通信を行うマルチプロセッサ
に対しても、マルチタスク実行及びタスク生成を行わせ
ることが可能であり、複数のデータ駆動形計算機を用い
た〔発明が解決しようとする課題〕 本願出願人により先に出願された上述の如き第2の従来
例のデータ駆動形計算機用のオブジェクトコードは、現
ノードの番号に対して所定の演算を行うことにより、行
先ノードの情報が格納されている番号を得ることが出来
るように構成されている。そして、その行先ノードの情
報を格納する領域としては、小さなビット幅しか用意さ
れていない、このため、行先ノードの情報がそのビット
幅に納まらない場合は、拡張ビットの設定を行い、拡張
アドレスを発生させる必要がある。
The above describes multitasking execution on one processor, but as shown in Figure 16, it is possible to make individual tasks spanning each processor occupy the same program memory area within each processor. For example, it is possible to make multiprocessors that perform packet communication with each other via a network perform multitask execution and task generation, and it is possible to perform multitask execution and task generation using multiple data-driven computers. Problem] The object code for the data-driven computer of the second conventional example as described above, which was previously filed by the applicant of the present application, is capable of obtaining information about the destination node by performing a predetermined operation on the number of the current node. It is configured so that the stored number can be obtained. Only a small bit width is prepared as an area to store the information of the destination node. Therefore, if the information of the destination node does not fit into the bit width, set the extension bit and use the extension address. need to occur.

この拡張アドレスを発生させるための比較的容易な方法
は以下の如くである。
A relatively easy method for generating this extended address is as follows.

+1)ノード番号順に拡張アドレスが必要か否かのチエ
ツクを行う。
+1) Check whether extended addresses are necessary in order of node number.

伏)拡張アドレスを必要とするノードがある場合、その
ノードよりノード番号が大きな総てのノードは番号が一
つずつ増加する。このため、ノードの増加に伴って全ノ
ードに対してそれぞれのノードの行先ノードのノード番
号が増加したか否かをチエツクし、行先ノードの番号が
増加している場合にはそれに応じた処理を行う。
B) If there is a node that requires an extended address, all nodes with higher node numbers than that node will have their numbers incremented by one. For this reason, as the number of nodes increases, it is checked whether the node number of the destination node of each node has increased for all nodes, and if the number of the destination node has increased, processing is performed accordingly. conduct.

上述の(2)の処理は、拡張アドレスが発生する都度行
う必要があり、例えばio、oooノードのプログラム
の場合、その10%のノードで拡張アドレスが発生した
場合、(2)のそれぞれのチエツクは、0、 I X 
10000X I 0O00=107回に昇る。但しこ
れは、(2)の処理によるノード番号の変更に伴って更
に新たな拡張アドレスが発生した場合については考慮し
ていない、これを考慮すると、その処理は更に複雑且つ
膨大になり、非現実的な側面が生じる可能性があるとい
う問題点がある。
The process in (2) above needs to be performed every time an extended address occurs. For example, in the case of a program for io and ooo nodes, if an extended address occurs in 10% of the nodes, each check in (2) must be performed. is 0, I
10000X I 0O00 = 107 times. However, this does not take into account the case where a new extended address is generated due to the change of the node number in the process (2). If this is taken into account, the process becomes even more complex and huge, making it unrealistic. There is a problem in that there is a possibility that a negative aspect may occur.

本発明は以上のような問題点を解決するためになされた
ものであり、その処理回数がノード数に比例する程度の
現実的な時間内に実行可能であり、且つ単純な処理の反
復により、データ駆動形計算機用のオブジェクトコード
生成装置の提供を目的とする。
The present invention has been made to solve the above-mentioned problems, and can be executed within a realistic time in which the number of processing times is proportional to the number of nodes, and by simple repetition of processing, The purpose is to provide an object code generation device for data-driven computers.

〔課題を解決するための手段〕[Means to solve the problem]

本発明に係るデータ駆動形計算機用オブジェクトコード
生成装置の第1の発明は、拡張アドレスを必要とするノ
ードを検出し、拡張アドレスの発生に伴うノード番号の
再割当てを行う拡張アドレス発生部を備え、この拡張ア
ドレス発生部により最終的に割当てられたアドレスに従
って、行先ノード番号を表現したオブジェクトコードを
オブジェクトコード出力部に生成、出力させる。
A first aspect of the object code generation device for a data-driven computer according to the present invention includes an extended address generation section that detects a node that requires an extended address and reassigns a node number as the extended address is generated. , and causes the object code output unit to generate and output an object code expressing the destination node number according to the address finally assigned by the extended address generation unit.

また、本発明に係るデータ駆動形計算機用オブジェクト
コード生成装置の第2の発明は、総てのノードに対して
拡張アドレスが必要であると仮定した状態から拡張アド
レスを必要としないノードを検出し、仮定した拡張アド
レスを消滅させることに伴うノード番号の再割当てを行
う拡張アドレス消滅部を備え、この拡張アドレス消滅部
により最終的に割当てられたアドレスに従って、行先ノ
ード番号を表現したオブジェクトコードをオブジェクト
コード出力部に生成、出力させる。
Further, the second invention of the object code generation device for a data-driven computer according to the present invention detects nodes that do not require extended addresses from a state where it is assumed that extended addresses are required for all nodes. , is equipped with an extended address vanishing unit that reassigns a node number as the assumed extended address vanishes, and converts the object code representing the destination node number into an object according to the address finally assigned by this extended address vanishing unit. Generate and output to the code output section.

〔作用〕[Effect]

本発明のデータ駆動形計算機用オブジェクトコ−ド生成
装置の拡張アドレス発生部は、まず拡張アドレスが全く
発生しないノード番号を有すると仮定し、 ■仮定したノード番号に対して、固定ビット数のメモリ
領域に行先ノードの場所情報が入るかどうかを全ノード
に対して調べることにより拡張アドレスを発生させ、拡
張アドレスの発生に伴うノード番号の付替えが行われる
The extended address generation unit of the object code generation device for a data-driven computer of the present invention first assumes that the node number has a node number in which no extended address is generated, Extended addresses are generated by checking for all nodes whether the location information of the destination node is included in the area, and node numbers are reassigned as the extended addresses are generated.

■上述の■の処理で拡張アドレスが1つでも発生してい
た場合、拡張アドレスの発生に伴って行先ノードの場所
情報が変化するので、拡張アドレス発生後に付替えられ
たアドレスに対して■の処理が再度実行される。■の処
理で拡張アドレスの発生がなかった場合は、前回仮定し
たノード番号が必要な拡張アドレスを総て含むノード番
号となっているので、下記■の処理に移る。
■If even one extended address is generated in the process of ■ above, the location information of the destination node changes with the generation of the extended address, so the address reassigned after the extended address is The process will be executed again. If no extended address is generated in the process (2), the node number assumed last time is a node number that includes all necessary extended addresses, so the process moves to the process (2) below.

■上述の■、■の処理によって決定されたノード番号に
従って各ノードに対して行先ノードの場所情報の生成を
行い、最終的にオブジェクトコードが生成される。
(2) The location information of the destination node is generated for each node according to the node number determined by the processes (2) and (2) above, and finally an object code is generated.

本発明に係るデータ駆動形計算機用オブジェクトコード
生成装置の第2の発明は、まず総てのノードに拡張アド
レスがあるとした場合のアドレスを仮定し、 ■仮定したノード番号に対して、固定ビット数のメモリ
領域に行先ノードの場所情報が入るかどうかを全ノード
に対して調べることにより不要な拡張アドレスを消滅さ
せ、拡張アドレスの消滅に伴うノード番号が付替えられ
る。
The second invention of the object code generation device for a data-driven computer according to the present invention is to first assume an address when all nodes have an extended address, and then: By checking for all nodes whether the location information of the destination node can be stored in the memory area of the number, unnecessary extended addresses are deleted, and the node numbers are changed as the extended addresses are deleted.

■上述の■の処理で拡張アドレスの消滅が全くなかった
場合、下記■の処理に進む。拡張アドレスの消滅が1つ
でもあった場合、拡張アドレスの消滅に伴って行先ノー
ドの場所情報が変化するので、拡張アドレス消滅後に付
替えられたアドレスに対して■の処理が再度実行される
(2) If no extended address is deleted in the process (2) above, proceed to the process (2) below. If even one extended address disappears, the location information of the destination node changes as the extended address disappears, so the process (2) is executed again for the address that was replaced after the extended address disappeared.

■上記■、■の処理によって決定されたノード番号に従
って各ノードに対して行き先ノードの場所情報の生成を
行い、最終的にオブジェクトコードが生成される。
②Destination node location information is generated for each node according to the node number determined by the processes ① and ① above, and finally an object code is generated.

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

以下、本発明をその実施例を示す図面に基づいて詳述す
る。
DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will be described in detail below based on drawings showing embodiments thereof.

説明を明確にするために拡張アドレス発生後のノード番
号、即ち、再割当てによって得られるノード番号をノー
ドアドレスと称する。
For clarity of explanation, the node number after the extended address is generated, that is, the node number obtained by reallocation, will be referred to as a node address.

以下、まず第1の発明の実施例について説明する。本実
施例では、行先ノードの場所情報を相対アドレスで表現
し、符号なし6ビツトでプログラムメモリに格納する。
Hereinafter, first, an embodiment of the first invention will be described. In this embodiment, the location information of the destination node is expressed as a relative address and stored in the program memory as unsigned 6 bits.

符号なし6ビノトに格納できない大きなアドレスになっ
た場合は1.拡張アドレスを発生させる。
1. If the address is too large to be stored in an unsigned 6-bit address. Generate an extended address.

第1図は第1の発明に係るデータ駆動形計算機用のオブ
ジェクトコード生成装置の構成を示すブロック図である
FIG. 1 is a block diagram showing the configuration of an object code generation device for a data-driven computer according to the first invention.

図中1は、従来のデータ駆動形計算機用のオブジェクト
コード生成装置により生成されたオブジェクトコード、
2は、従来のオブジェクトコード1を読込み、本願出願
人により先に出願されているデータ駆動形計算機上にロ
ードし、実行されるべきオブジェクトコード3を生成す
るオブジェクトコード生成装置である。このオブジェク
トコード生成装置2は、読込部4.拡張アドレス発生部
5゜オブジェクトコード出力部6及びメモリ領域7にて
構成されている。
1 in the figure is an object code generated by a conventional object code generation device for a data-driven computer;
Reference numeral 2 denotes an object code generation device that reads a conventional object code 1, loads it onto a data-driven computer previously filed by the applicant of the present invention, and generates an object code 3 to be executed. This object code generation device 2 includes a reading section 4. The extended address generation section 5 is composed of an object code output section 6 and a memory area 7.

読込部4は、従来のオブジェクトコードの読込みを行う
、拡張アドレス発生部5は、拡張アドレスを必要とする
ノードを検出し、拡張アドレスを発生させノード番号の
再割付を行う、オブジェクトコード出力部6は、決定さ
れたノード番号に従ってオブジェクトコードを生成し、
出力する。メモリ領域7は、これらの処理を行う上でワ
ーキングエリアとして使用される。
A reading unit 4 reads conventional object code. An extended address generating unit 5 detects a node that requires an extended address, generates an extended address, and reallocates a node number. An object code output unit 6 generates object code according to the determined node number,
Output. The memory area 7 is used as a working area when performing these processes.

次に、上述の如く構成された本発明の第1の発明として
のオブジェクトコード生成装置の動作について以下に説
明する。
Next, the operation of the object code generation device as the first aspect of the present invention configured as described above will be described below.

なお、第2図はソースプログラムの模式図、第3図は第
2図に示したソースプログラムに対する従来のオブジェ
クトコードの構成を示す模式図であり、第4図はオブジ
ェクトコード3の構成を示す模式図である。また第5図
は、拡張アドレス発生部5の処理手順を示すフローチャ
ートである。
In addition, FIG. 2 is a schematic diagram of a source program, FIG. 3 is a schematic diagram showing the structure of a conventional object code for the source program shown in FIG. 2, and FIG. 4 is a schematic diagram showing the structure of object code 3. It is a diagram. Further, FIG. 5 is a flowchart showing the processing procedure of the extended address generation section 5.

読込部4により従来のオブジェクトコードlを読込み、
読込んだデータをメモリ領域7上に用意したノード数分
の配列“C0DE [] ”及び“NEXTMODE 
[] ”に対して、“copy”ビット及び0PIIC
ODE”を配列“C0DE [] ”のノード番号に対
応する要素に、また行先ノードを配列“NEXT  N
0DE [] ”のノード番号に対応する要素にそれぞ
れ格納する。
The reading unit 4 reads the conventional object code l,
The read data is placed in arrays “C0DE []” and “NEXTMODE” for the number of nodes prepared in the memory area 7.
[]”, the “copy” bit and 0PIIC
ODE” to the element corresponding to the node number of the array “C0DE []” and the destination node to the array “NEXT N
0DE[]'' are stored in the elements corresponding to the node numbers.

次に、拡張アドレス発生部5が拡張アドレスを発生する
。この処理手順の詳細を第5図のフローチャートを参照
して説明する。但し、ここでノード番号と称するのは、
各ノードに1番から順に付された順番であり、ノードア
ドレスと称するのは、各ノードの情報がオブジェクトコ
ードとして生成された際に先頭から何しコード目に格納
されるかを示す、レコードとは、第4図において1行に
示した12ビット単位のデータをルコードと称する。
Next, the extended address generator 5 generates an extended address. The details of this processing procedure will be explained with reference to the flowchart of FIG. However, what is referred to as the node number here is
The number is assigned to each node in order starting from number 1, and the node address is a record that indicates which code number from the beginning the information for each node is stored when it is generated as an object code. The 12-bit unit data shown in one line in FIG. 4 is called a code.

第5図において使用されている各変数について説明する
Each variable used in FIG. 5 will be explained.

coun t”は処理したノード数をカウントするため
の変数であり、”MAX  No’はノードの総数であ
る。
``count'' is a variable for counting the number of processed nodes, and ``MAX No'' is the total number of nodes.

”MODE [] ’は、’MAX  No’個の要素
からなる配列で、そのインデックスと同じノード番号を
有するノードのノードアドレスを格納する。
``MODE[]'' is an array consisting of ``MAX No'' elements, and stores the node address of the node having the same node number as its index.

EXT [] ”も、“MAX  No”個の要素から
なる配列であり、そのインデックスのノード番号のノー
ドに拡張アドレスが発生された場合は“l”が、発生さ
れてない場合は“0”がそれぞれ格納される。
EXT[]” is also an array consisting of “MAX No” elements, and if an extended address is generated for the node with the node number of that index, it will be “l”, otherwise it will be “0”. Each is stored.

ext  cnt”は新たに発生した拡張アドレスの個
数をカウントするための変数であり、“RET“は関数
のリターン値を受は取る変数である。
"ext cnt" is a variable for counting the number of newly generated extended addresses, and "RET" is a variable that receives the return value of the function.

ステップ321において、まず“count”が“θ″
に初期化された後、ステップ323で“count”が
ノードの総数“MAX  No″と等しくなるまで、ス
テップ322の処理が反復されて配列“N0DH[] 
”に拡張アドレスが全く発生しなかった場合のアドレス
が、また“EX↑[]“の各要素にはすべて“0“がそ
れぞれ初期設定として格納される。
In step 321, first, "count" is set to "θ".
After initialization in step 323, the process in step 322 is repeated until the array "N0DH[]" becomes equal to the total number of nodes "MAX No".
”, and “0” is stored as an initial setting in each element of “EX↑[]”.

次に、ステップ324において、拡張アドレス発生のた
めの初期設定として、ノード番号をカウントするカウン
タ”count″に“0′が、拡張アドレス発生の個数
をカウントするカウンタ″ext  cnt”に“0″
がそれぞれ設定される。
Next, in step 324, as initial settings for extended address generation, the counter "count" for counting the node number is set to "0", and the counter "ext cnt" for counting the number of extended addresses generated is set to "0".
are set respectively.

1回目のル−プL1では、ext  cnt″は頴”で
あるため、ステップ325では何等の処理も行われない
0次に、ステップ326において、countm番目の
ノードが拡張アドレスを必要とするか否かのチエツクが
行われる。このチエツクは関数@I!xt  orNo
t’により行われる。
In the first loop L1, since ext cnt" is "0", no processing is performed in step 325.Next, in step 326, it is determined whether the countmth node requires an extended address or not. A check will be made. This check is a function @I! xt orNo
This is done by t'.

まず、ステップ5265において、既に拡張アドレスが
発生しているか否かのチエツクが行われる。
First, in step 5265, a check is made to see if an extended address has already been generated.

拡張アドレスが既に発生していた場合はそれ以上の拡張
アドレスを確保する必要はないのでステップ5265に
おいて“RET”が“0”にされた後、リターンする。
If an extended address has already been generated, there is no need to secure any more extended address, and after "RET" is set to "0" in step 5265, the process returns.

拡張アドレスが発生していない場合は、ステップ526
2において、行先ノードへの相対番地が正の6ビツトで
表現可能か否か、即ち、“02以上“63′以下である
か否かがチエツクされる。この際、相対番地は配列“M
ODE [] ”に格納されている現ノードと行先ノー
ドとのノードアドレス差を用いてチエツクされる。この
ため、行先ノード番号が現在のノード番号より大きい場
合、拡張アドレス発生に伴う補正がまだ行われていない
、また、現ノードと行先ノードとの間に拡張アドレスが
発生した場合もこの時点の計算では最終的な値は得られ
ていない、6ビツト以内に納まった場合は、ステップ5
265により“RET”“0”にされた後、リターンす
る。6ビツト以内に収まらない場合はステップ5263
において拡張ビソビEXT [count ]  ″が
“ビに設定された後、ステップ5264において“RE
T”が“l″にされた後、リターンする。このようにし
て“R[!?−1”″がリターンされた場合が、拡張ア
ドレスが発生した場合である。
If no extended address has occurred, step 526
At step 2, it is checked whether the relative address to the destination node can be expressed with positive 6 bits, that is, whether it is between "02" and "63'". In this case, the relative address is the array “M
It is checked using the node address difference between the current node and the destination node stored in "ODE []". Therefore, if the destination node number is larger than the current node number, the correction due to the extended address generation has not yet been performed. Also, if an extended address occurs between the current node and the destination node, the final value has not been obtained in the calculation at this point. If it is within 6 bits, proceed to step 5.
After "RET" is set to "0" by H.265, the process returns. If it does not fit within 6 bits, step 5263
In step 5264, after the extended BISOVI EXT [count] is set to B, in step 5264
After T” is set to “l”, return. In this way, “R[! ? A case in which -1'' is returned is a case in which an extended address is generated.

そのためステップ327において、ext  cnt”
にリターン値“RUT“を加算することにより拡張アド
レスの発生数がカウントされる。その後、ノード番号″
coun t”がインクリメントされ、次のノードのチ
エ7りが行われる。この際、ステップS25では、現ノ
ードより前のノードで発生した拡張アドレスに対するア
ドレスの補正が行われる。
Therefore, in step 327, ext cnt”
The number of generated extended addresses is counted by adding the return value "RUT" to . Then the node number″
count'' is incremented, and the next node is checked. At this time, in step S25, the address is corrected for the extended address generated in the node before the current node.

全ノードに対してチエツクが終了するとステップ328
において、“NO”の方向に処理が進められ、ステップ
S29の処理が行われる。
When the check is completed for all nodes, step 328
In this case, the process proceeds in the direction of "NO", and the process of step S29 is performed.

ステップS29では、直前のループL1で拡張アドレス
が発生したか否かがチエツクされている。拡張アドレス
が1つでも発生した場合は、そのためニ配列“N0DE
 [] ′″に格納されているアドレスが変更されたは
ずである。ステップ5262の処理で“MODE []
”に格納されていたアドレスについて、固定の6ビツト
に格納可能かをチエツクしているので、拡張アドレスが
発生したノードを跨ぐようにジャンプしたノードが存在
する場合、拡張アドレスの発生に伴って固定の6ビント
に格納し切れない可能性がある。そのため、拡張アドレ
スの新たな発生がなくなるまで、ループL2が反復され
る。
In step S29, it is checked whether an extended address has occurred in the immediately preceding loop L1. If even one extended address occurs, then the array “N0DE
The address stored in [] ′” should have been changed. In the process of step 5262, “MODE []
Since the address stored in " is checked to see if it can be stored in a fixed 6 bits, if there is a node that jumps across the node where the extended address occurred, the fixed address will be Therefore, loop L2 is repeated until no new extended address is generated.

その後オブジェクトコード出力部6では、決定されたノ
ードアドレスに従ってノード番号°ビのノードに対して
は、拡張ビソビExt[k]”、 copyビア h 
、 0PECODE’code [k ]″9行先ノー
ドへの相対7)’!zス’″N0DII! [NEXT
  N0DH] −1JODE [k]  ”がノード
番号順に出力される。
Thereafter, in the object code output unit 6, for the node with the node number °B according to the determined node address, the extended bisobvi Ext[k]'', copy via h
, 0PECODE'code [k]''9 rows relative to destination node7)'!zsu'''N0DII! [NEXT
N0DH]-1JODE[k]'' are output in order of node number.

次に、第2の発明の実施例について、図面を参照して説
明する。
Next, an embodiment of the second invention will be described with reference to the drawings.

第6図は第2の発明に係るデータ駆動計算機用のオブジ
ェクトコード生成装置の構成を示すブロック図である。
FIG. 6 is a block diagram showing the configuration of an object code generation device for a data-driven computer according to the second invention.

なお、前述の第1の発明の説明に参照した第1図と同一
または相当部分には同一の参照符号を付与しである。
Note that the same reference numerals are given to the same or corresponding parts as in FIG. 1 referred to in the description of the first invention described above.

この第2の発明のオブジェクトコード生成装置では、第
1の発明のオブジェクトコード生成装置に備えられてい
た拡張アドレス発生部5の代わりに拡張アドレス消滅部
24がそなえらえている。この拡張アドレス消滅部24
は、総てのノードに対して拡張アドレスが存在すると仮
定して拡張アドレスを必要としないノードを槍出し、そ
のノードの拡張アドレスを消滅させる機能を有する。
In the object code generation device of the second invention, an extended address erasure unit 24 is provided in place of the extended address generation unit 5 provided in the object code generation device of the first invention. This extended address erasure section 24
has a function that assumes that extended addresses exist for all nodes, selects nodes that do not require extended addresses, and eliminates the extended addresses of those nodes.

なお、従来のオブジェクトコードの構成は第3図に示し
たものと同一であり、メモリ構成は第4図に示したもの
である。第7図は拡張アドレス消滅部24の処理手順を
示したフローチャートである。
The conventional object code structure is the same as that shown in FIG. 3, and the memory structure is shown in FIG. 4. FIG. 7 is a flowchart showing the processing procedure of the extended address erasure unit 24.

次にこの第2の発明のデータ駆動形計算機用のオブジェ
クトコード生成装置の動作について説明する。
Next, the operation of the object code generation device for a data-driven computer according to the second invention will be explained.

この第2の発明が第1の発明と異なる点は、拡張アドレ
ス発生部5の代わりに拡張アドレス消滅部24を備えて
いるという点のみであるので、拡張アドレス消滅部につ
いて説明を行う。
The second invention differs from the first invention only in that it includes an extended address erasing section 24 instead of the extended address generating section 5, so the extended address erasing section will be explained.

第7図において使用した変数の内、第4図と異なるのは
”unexL  cnt’のみである。この’unex
tcnt”は拡張アドレスの消滅数をカウントするため
に使用される。
Among the variables used in Fig. 7, only "unexL cnt" is different from Fig. 4.
tcnt” is used to count the number of extended address disappearances.

ステップS31において、まず“coun t”が“0
1に初期化された後、ステップS’33で“count
”がノードの総数“MAX  No″と等しくなるまで
、ステップ332の処理が反復されて配列“MODE 
[]  ”に拡張アドレスが存在した場合のアドレスが
、またEXT[]”の各要素にはすべて“1”がそれぞ
れ初期設定として格納される。
In step S31, first, “count” is “0”.
After being initialized to 1, “count
” is equal to the total number of nodes “MAX No”, the process of step 332 is repeated until the array “MODE
The address when an extended address exists in ``[]'' is stored, and ``1'' is stored in each element of EXT[]'' as an initial setting.

次に、ステップ334において、拡張アドレス消滅のた
めの初期設定としてノード番号をカウントするカウンタ
“coun L”に′01が、拡張アドレス消滅の個数
をカウントするカウンタ“une+rt  cnt″に
“0′がそれぞれ設定されている。
Next, in step 334, as an initial setting for extended address deletion, '01' is set to the counter "count L" that counts the node number, and "0" is set to the counter "une+rt cnt" that counts the number of extended address deletions. It is set.

1回目のJレープLllでは、unext  ant″
は“O”であるためステップS35においては何等の処
理も行われない。
In the first J rape Lll, unext ant''
is "O", so no processing is performed in step S35.

次に、ステップS36において’count”番目のノ
ードが拡張アドレスを必要とするかのチエツクが行われ
る。このチエツクは関数“No  Ext  orNo
t”により行われる。
Next, in step S36, a check is made to see if the 'count' node requires an extended address.This check is performed using the function 'No Ext or No
t”.

まず、ステップS36において、既に拡張アドレスが消
滅しているか否かのチエツクが行われる。
First, in step S36, a check is made to see if the extended address has already disappeared.

拡張アドレスが既に消滅していた場合は、それ以上はア
ドレスを消滅させる必要はないのでステップ3365に
おいて“l?ET″が′01にされた後、リターンする
If the extended address has already disappeared, there is no need to erase the address any further, and after "l?ET" is set to '01' in step 3365, the process returns.

拡張アドレスが消滅していない場合は、ステソブ536
2において、行先ノードへの相対番地が正の6ビツトで
表現可能か否か、即ち“0”以上“63”以下であるか
否かがチエツクされる。この際、相対番地は、配列“N
0DH[]”に格納されている現ノードと行先ノードと
のノードアドレス差を用いてチエツクされる。チエツク
の結果、6ビツト以内に格納されなかった場合は、ステ
ップ8365において“RUT”が“0”にされた後、
 リターンする。6ビツト以内に格納された場合はステ
ップ3363において、拡張ビッピEXT [coun
t ]“力びOmに設定された後、ステップ3364に
おいて“RUT”が“1′にされた後、リターンする。
If the extended address has not disappeared, SteSob 536
At step 2, it is checked whether the relative address to the destination node can be expressed with positive 6 bits, that is, whether it is greater than or equal to "0" and less than or equal to "63". In this case, the relative address is the array “N
It is checked using the node address difference between the current node and the destination node stored in "0DH[]". If the result of the check is that it is not stored within 6 bits, "RUT" is set to "0" in step 8365. ” After being
Return. If it is stored within 6 bits, in step 3363, the extended bit EXT [count
t]"After the force is set to Om, "RUT" is set to "1' in step 3364, and then the process returns.

このようにして°I?ET −1”がリターンされた場
合が、拡張アドレスが消滅した場合である。
In this way °I? ET-1" is returned, this is the case when the extended address disappears.

そのためステップS37において、unext  cn
t”にリターン値″RET”を加算することにより拡張
アドレスの消滅数がカウントされる。その後、ノード番
号@count’がインクリメントされ、次のノードの
チエツクが行われる。この際、ステップ335では、現
ノードより小さい番号のノードで消滅した拡張アドレス
の影響によるアドレスの補正が行われる。
Therefore, in step S37, unext cn
The number of deleted extended addresses is counted by adding the return value "RET" to "t". After that, the node number @count' is incremented and the next node is checked. At this time, in step 335, Addresses are corrected due to the influence of the extended address that disappeared at a node with a smaller number than the current node.

全ノードに対してチエツクが終了するとステップ338
から“NO”の方向に処理が進められ、ステップS39
の処理が行われる。ステップS39では、直前のループ
35で決定されたアドレスで要求されたサイズのオブジ
ェクトコードが生成可能か否かがチエツクされる。チエ
ツクの結果、要求されたオブジェクトサイズより大きい
場合は、処理はステップ540に゛進み、拡張アドレス
が消滅したか否かがチエツクされる。直前のループLl
lにおいて新たな拡張アドレスの消滅がなかった場合、
これ以上拡張アドレスが消滅することはないのでステッ
プ341でメツセージを出して処理を終了する。
When the check is completed for all nodes, step 338
The process proceeds in the direction of "NO" from step S39.
processing is performed. In step S39, it is checked whether an object code of the requested size can be generated at the address determined in the previous loop 35. If the result of the check is that the object size is larger than the requested object size, processing proceeds to step 540, where it is checked whether the extended address has disappeared. Previous loop Ll
If no new extended address disappears in l,
Since no more extended addresses will disappear, a message is issued in step 341 and the process is terminated.

要求サイズがないという場合にはステップS39及び3
41の処理を省くことにより、結果として第1の発明の
オブジェクトコード生成装置と全く同じオブジェクトコ
ードを得ることが出来る。
If there is no requested size, steps S39 and 3
By omitting the process in step 41, it is possible to obtain exactly the same object code as the object code generation device of the first invention.

なお上記実施例では、ソースファイルとして、従来のオ
ブジェクトコード生成装置によって生成されたオブジェ
クトコードを読込む場合について説明したが、第17図
及び第18図に示すように、ソースファイルとして従来
のオブジェクトコード生成装置と同様に、データ駆動形
計算機用の高級言語1図的言語、あるいはセンブラを直
接読込むような構成も可能である。
In the above embodiment, a case has been described in which an object code generated by a conventional object code generation device is read as a source file, but as shown in FIGS. 17 and 18, a conventional object code is read as a source file. Similar to the generation device, it is also possible to have a configuration in which a high-level graphical language for data-driven computers or an assembler is directly read.

またアドレスとしては、1ノードの情報を1アドレスと
して説明を行っているが、アドレスとして1バイトを1
アドレスとするような構成も勿論可能であり、1アドレ
スの長さには容易に対応可能である。
In addition, as for addresses, information on one node is explained as one address, but as an address, one byte is one address.
Of course, a configuration in which the address is used is also possible, and the length of one address can be easily accommodated.

また、特に第1の発明の実施例としては、拡張アドレス
のビット幅として可変なものにも、配列“EX? []
 ”に保持させる値を必要とするアドレス数とし、また
関数″[!xt  or  Not’の動作として、必
要となる拡張アドレスのアドレス数を計算し、用意され
ている拡張アドレスに格納可能かという条件に変更する
ことで、対応することが可能である。
In addition, especially as an embodiment of the first invention, the array “EX?
The value to be held in ``is the number of addresses required, and the function ``[! xt or Not' can be handled by calculating the number of necessary extension addresses and changing the condition to see if it can be stored in the prepared extension address.

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

以上に詳述した如く、本発明においては、拡張アドレス
を必要とするノードの検出と拡張アドレスの発生または
消滅に伴うアドレスの再割当てが単純な処理の反復によ
って実現される。また、拡張アドレス発生または消滅の
アルゴリズムは2重ループ構造を有しているが、外側の
ループは拡張アドレスの挿入に起因する新たな拡張アド
レスの発生に対応するために設けられたものである。そ
のため、外側のループはほぼ4乃至5回の反復でその処
理が終了すると考えられる。従って、たとえば1000
0ノードのプログラムでは、各々のノードに対する基本
的な処理は、10000X 5−5 X104となり、
更に出力処理に10000回の処理が加算されるとして
も、プログラムのノード数にほぼ比例したステップ数で
その処理を終了することが可能となる。
As detailed above, in the present invention, detection of a node requiring an extended address and reallocation of an address upon generation or disappearance of an extended address are realized by repeating simple processes. Further, the algorithm for generating or destroying an extended address has a double loop structure, and the outer loop is provided to cope with the generation of a new extended address due to insertion of an extended address. Therefore, it is considered that the outer loop completes its processing after approximately 4 to 5 iterations. Therefore, for example 1000
In a program with 0 nodes, the basic processing for each node is 10000X 5-5 X104,
Furthermore, even if 10,000 processes are added to the output process, the process can be completed with a number of steps approximately proportional to the number of nodes in the program.

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

第1図は第1の発明に係るデータ駆動形計算機用オブジ
ェクトコード生成装置の実施例の一構成例を示すブロッ
ク図である。 第2図はデータ駆動形計算機用プログラミング言語で記
述したソースプログラムの例を示す模式第3図は従来の
オブジェクトコードの構成を示す模式図である。 第4図は本発明に係るデータ駆動形計算機用オブジェク
トコード生成装置により生成されるオブジェクトコード
の構成を示す模式図であり、プログラムメモリのメモリ
構成と等価である。 第5図は第1の発明に係るデータ駆動形計算機用オブジ
ェクトコード生成装置の拡張アドレス発生部の処理手順
を示すフローチャートである。 第6図は第2の発明に係るデータ駆動形計算機用オブジ
ェクトデータ生成装置の実施例の一構成例を示すブロッ
ク図である。 第7図は第2の発明によるデータ駆動形計算機用オブジ
ェクトコード生成装置の拡張アドレス消滅部の処理手順
を示すフローチャートである。 第8図はデータ駆動形計算機の従来例の一構成例を示す
ブロック図である。 第9図は従来例のデータ駆動形計算機により実行される
プログラム(データフローグラフ)の−例を示す模式図
である。 第1O図(alは従来例のデータ駆動形計算機における
命令取出部のメモリ構成を示す模式図、第1O図(bl
は行先指定部のメモリ構成を示す模式図であり、いずれ
も第9図のプログラムを格納した場合のメモリ内容を示
している。 第11図は従来のデータ駆動形計算機用オブジェクトデ
ータ生成装置の一構成例を示すブロック図である。 第12図は本願出願人により既に出願された第2の従来
例としてのデータ駆動形計算機の一構成例を示すブロッ
ク図である。 第13図はそのデータ駆動形計算機により実行されるプ
ログラム(データフローグラフ)の−例を示す模式図で
あり、ノード番号の割付けを除いて第9図と同様のプロ
グラムである。 第14図は同じくそのデータ駆動形計算機のプログラム
メモリにおける詳細な処理手順を示すフローチャートで
ある。 第1511iJは相対行先ノード番号の値の分布を示す
グラフである。 第16図はマルチプロセッサ構成におけるマルチタスク
の実行状態におけるプログラムメモリのマツプを示す概
念図である。 第17図は第1の発明によるデータ駆動形計算機用オブ
ジェクトコード生成装置のその他の実施例を示す模式図
である。 第18図は第2の発明によるデータ駆動形計算機用オブ
ジェクトコード生成装置のその他の実施例を示す模式図
である。 2・・・オブジェクトコード生成装置  3・・・オブ
ジェクトコード  4・・・読込部  5・・・拡張ア
ドレス発生部  6・・・オブジェクトコード出力部7
・・・メモリ領域  24・・・拡張アドレス消滅部な
お、各図中同一符号は同−又は相当部分を示す。
FIG. 1 is a block diagram showing a configuration example of an embodiment of an object code generation device for a data-driven computer according to the first invention. FIG. 2 is a schematic diagram showing an example of a source program written in a data-driven computer programming language. FIG. 3 is a schematic diagram showing the structure of a conventional object code. FIG. 4 is a schematic diagram showing the structure of an object code generated by the object code generation device for a data-driven computer according to the present invention, and is equivalent to the memory structure of a program memory. FIG. 5 is a flowchart showing the processing procedure of the extended address generation section of the object code generation device for a data-driven computer according to the first invention. FIG. 6 is a block diagram showing a configuration example of an embodiment of an object data generation device for a data-driven computer according to the second invention. FIG. 7 is a flowchart showing the processing procedure of the extended address erasure unit of the object code generation device for a data-driven computer according to the second invention. FIG. 8 is a block diagram showing an example of the configuration of a conventional data-driven computer. FIG. 9 is a schematic diagram showing an example of a program (data flow graph) executed by a conventional data-driven computer. Figure 1O (al is a schematic diagram showing the memory configuration of the instruction fetching unit in a conventional data-driven computer; Figure 1O (bl)
9 is a schematic diagram showing the memory configuration of the destination designation section, and each shows the memory contents when the program shown in FIG. 9 is stored. FIG. 11 is a block diagram showing an example of the configuration of a conventional object data generation device for a data-driven computer. FIG. 12 is a block diagram showing an example of the configuration of a data-driven computer as a second conventional example already filed by the applicant of the present application. FIG. 13 is a schematic diagram showing an example of a program (data flow graph) executed by the data-driven computer, and is the same program as FIG. 9 except for the assignment of node numbers. FIG. 14 is a flowchart showing the detailed processing procedure in the program memory of the data-driven computer. 1511iJ is a graph showing the distribution of values of relative destination node numbers. FIG. 16 is a conceptual diagram showing a program memory map in a multitask execution state in a multiprocessor configuration. FIG. 17 is a schematic diagram showing another embodiment of the object code generation device for a data-driven computer according to the first invention. FIG. 18 is a schematic diagram showing another embodiment of the object code generation device for a data-driven computer according to the second invention. 2... Object code generation device 3... Object code 4... Reading section 5... Extended address generation section 6... Object code output section 7
. . . Memory area 24 . . Extended address erasure portion Note that the same reference numerals in each figure indicate the same or equivalent portions.

Claims (2)

【特許請求の範囲】[Claims] (1)処理対象のプログラムを記述したソースファイル
を読込むソースファイル読込部と、 ソースファイルの内容から得られる実行命 令群と各データ相互の依存関係との間の情報の内、少な
くとも実行命令と次に実行されるべきノードである行先
ノードとを示す情報を含むノード情報それぞれを所定の
固定ビット数の領域に格納し、行先ノードの場所情報が
前記領域に格納不可能な場合は、次のアドレス以降の必
要な領域を拡張アドレスとして格納不可能な情報を格納
する記憶部と、 前記記憶部に格納された各ノード情報の内、少なくとも
行先ノードを特定する情報をその前記記憶部に格納され
た際のアドレスを特定する場所情報に変換することによ
りオブジェクトコードを出力するオブジェクトコード出
力部と を備えたデータ駆動形計算機用オブジェク トコード生成装置において、 全ノードに拡張アドレスが発生しないとし て各ノードのアドレスを仮定し、 全ノードについて拡張アドレスの発生の有 無を順次調べ、拡張アドレスが発生する場合は他の各ノ
ードのアドレスを再仮定する第1の処理と、 該第1の処理で拡張アドレスが発生した場 合、再仮定後のアドレスに対して前記第1の処理を反復
させる第2の処理と、 前記第1及び第2の処理により仮定された アドレスに従って各ノードについての行先ノードの場所
情報を生成し、前記オブジェクトコード出力部へ与える
処理と を実行する拡張アドレス発生部を備えたこ とを特徴とするデータ駆動形計算機用オブジェクトコー
ド生成装置。
(1) A source file reading unit that reads a source file that describes a program to be processed, and at least an execution instruction among the information between the execution instruction group obtained from the contents of the source file and the interdependence relationship between each data. Each piece of node information, including information indicating the destination node which is the next node to be executed, is stored in an area of a predetermined fixed number of bits, and if the location information of the destination node cannot be stored in the area, the following a storage unit that stores information that cannot be stored by using a necessary area after the address as an extended address; and a storage unit that stores information that specifies at least a destination node among each node information stored in the storage unit. In an object code generation device for a data-driven computer, which is equipped with an object code output unit that outputs an object code by converting the address at the time of a search into location information that specifies the location information, each node is A first process assumes an address, sequentially checks whether an extended address has occurred for all nodes, and re-assumes the address of each other node if an extended address occurs; If the occurrence occurs, a second process of repeating the first process for the re-assumed address; and calculating destination node location information for each node according to the address assumed by the first and second processes. 1. An object code generation device for a data-driven computer, characterized in that the object code generation device for a data-driven computer is provided with an extended address generation section that executes a process of generating and providing the object code to the object code output section.
(2)処理対象のプログラムを記述したソースファイル
を読込むソースファイル読込部と、 ソースファイルの内容から得られる実行命 令群と各データ相互の依存関係との間の情報の内、少な
くとも実行命令と次に実行されるべきノードである行先
ノードとを示す情報を含むノード情報それぞれを所定の
固定ビット数の領域に格納し、行先ノードの場所情報が
前記領域に格納不可能な場合は、次のアドレス以降の必
要な領域を拡張アドレスとして格納不可能な情報を格納
する記憶部と、 前記記憶部に格納された各ノード情報の内、少なくとも
行先ノードを特定する情報をその前記記憶部に格納され
た際のアドレスを特定する場所情報に変換することによ
りオブジェクトコードを出力するオブジェクトコード出
力部と を備えたデータ駆動形計算機用オブジェク トコード生成装置において、 全ノードに拡張アドレスが発生するとして 各ノードのアドレスを仮定し、 全ノードについて拡張アドレスの発生の有 無を順次調べ、拡張アドレスが発生しないノードがある
場合はそのノードの拡張アドレスを消滅させると共に、
他の各ノードのアドレスを再仮定する第1の処理と、 該第1の処理で拡張アドレスが消滅した場 合、再仮定後のアドレスに対して前記第1の処理を反復
させる第2の処理と、 前記第1及び第2の処理により仮定された アドレスに従って各ノードについての行先ノードの場所
情報を生成し、前記オブジェクトコード出力部へ与える
処理と を実行する拡張アドレス消滅部を備えたこ とを特徴とするデータ駆動形計算機用オブジェクトコー
ド生成装置。
(2) A source file reading unit that reads a source file that describes a program to be processed, and at least one of the information between a group of execution instructions obtained from the contents of the source file and the interdependence relationship between each data. Each piece of node information, including information indicating the destination node which is the next node to be executed, is stored in an area of a predetermined fixed number of bits, and if the location information of the destination node cannot be stored in the area, the following a storage unit that stores information that cannot be stored by using a necessary area after the address as an extended address; and a storage unit that stores information that specifies at least a destination node among each node information stored in the storage unit. In an object code generation device for a data-driven computer, which is equipped with an object code output unit that outputs an object code by converting the address at the time of a call into specific location information, the Assuming an address, we sequentially check whether an extended address occurs for all nodes, and if there is a node where an extended address does not occur, we delete that node's extended address, and
a first process of re-assuming the address of each other node; and a second process of repeating the first process for the re-assumed address if the extended address disappears in the first process; , an extended address extinguishing unit that generates destination node location information for each node according to the addresses assumed in the first and second processes, and provides the information to the object code output unit. An object code generation device for a data-driven computer.
JP1840989A 1989-01-27 1989-01-27 Object code generating device for data drive type computer Pending JPH02197970A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1840989A JPH02197970A (en) 1989-01-27 1989-01-27 Object code generating device for data drive type computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1840989A JPH02197970A (en) 1989-01-27 1989-01-27 Object code generating device for data drive type computer

Publications (1)

Publication Number Publication Date
JPH02197970A true JPH02197970A (en) 1990-08-06

Family

ID=11970865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1840989A Pending JPH02197970A (en) 1989-01-27 1989-01-27 Object code generating device for data drive type computer

Country Status (1)

Country Link
JP (1) JPH02197970A (en)

Similar Documents

Publication Publication Date Title
JP2992223B2 (en) Computer system, instruction bit length compression method, instruction generation method, and computer system operation method
TW581950B (en) Multiple logical interfaces to a shared coprocessor resource
JP2905446B2 (en) Data string generation method, computer operation method, pixel value set generation method, and computer
JPS6217252B2 (en)
JP2002007211A (en) Processor having compressed instructions and method for compressing instruction for the processor
CN110832455A (en) Testing bit values inside vector elements
CN110598855A (en) Deep learning model generation method, device, equipment and storage medium
US20210096876A1 (en) Saving and restoring machine state between multiple executions of an instruction
KR20210055771A (en) Sort and merge instructions for general purpose processors
US20040205697A1 (en) Transferring data along with code for program overlays
US8407678B2 (en) Method of array interception using data-flow analysis
US20120011490A1 (en) Development system
US6198813B1 (en) System and method for providing call processing services using call independent building blocks
US5363491A (en) Data flow processor with data processing and next address determination being made in parallel
CN114826793B (en) ROP chain detection method, device and medium
TWI766056B (en) Method, apparatus, computer program, and computer-readable storage medium for data processing
US11635947B2 (en) Instruction translation support method and information processing apparatus
CN112955867A (en) Migration of partially completed instructions
JPH02197970A (en) Object code generating device for data drive type computer
US8881098B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
JP2021184246A (en) Instruction conversion support program, instruction conversion support method and information processing device
CN111279308B (en) Barrier reduction during transcoding
JP2522372B2 (en) Data driven computer
KR20210100076A (en) Generate vector predicate summary
JPH073655B2 (en) Organizing / editing processor