JPH02165286A - Computer driven by data - Google Patents

Computer driven by data

Info

Publication number
JPH02165286A
JPH02165286A JP32157488A JP32157488A JPH02165286A JP H02165286 A JPH02165286 A JP H02165286A JP 32157488 A JP32157488 A JP 32157488A JP 32157488 A JP32157488 A JP 32157488A JP H02165286 A JPH02165286 A JP H02165286A
Authority
JP
Japan
Prior art keywords
data
destination node
node number
memory
address
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.)
Granted
Application number
JP32157488A
Other languages
Japanese (ja)
Other versions
JP2522372B2 (en
Inventor
Nobufumi Komori
伸史 小守
Hirono Tsubota
浩乃 坪田
Kenji Shima
憲司 嶋
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 JP63321574A priority Critical patent/JP2522372B2/en
Priority to US07/450,653 priority patent/US5218706A/en
Publication of JPH02165286A publication Critical patent/JPH02165286A/en
Priority to US08/012,063 priority patent/US5363491A/en
Application granted granted Critical
Publication of JP2522372B2 publication Critical patent/JP2522372B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PURPOSE:To widely compress a bit width for storing a destination node number in a program memory and to make a memory scale small by designating the destination node number using a relative address, for example, from an address for storing a current instruction. CONSTITUTION:The coincidence of a bucket 101 is detected using a matching memory 10 and outputted to a bucket 102, a node number <0> (103) at this time is inputted to a program memory 11. Thus, the 0th address of the memory is accessed, and an instruction code '+' and a destination node number <2> for the other party are read out and respectively written in an instruction code register 131 and a destination node number register 132. While the instruction code is directly outputted from the register 131, the number <2> is sent from the register 132 to an adder 13, added with the previously inputted number <0> (103) here, and an absolute value <2> 106 of the destination node number is obtained. Thus, a bucket 108 composed of the code '+', the number <2>, and data [G] from an instruction execution part 12 is supplied to the memory 10 again, and the whole of the program is executed.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、処理対象のデータ相互間の依存関係に基づい
て処理を駆動する方式を採用している、所謂データ駆動
形計算機に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a so-called data-driven computer that employs a method of driving processing based on mutual dependencies between data to be processed.

〔従来の技術〕[Conventional technology]

従来のデータ駆動形計算機の代表的な例が、科学技術用
高速計算システム研究開発成果発表会講演予稿集(昭和
59年6月25日)の19頁から22頁及びIEEE 
COMPCON ’845PRING予稿集(英文)の
486頁から490頁に開示されている。これらの公知
資料は、いずれもSigma−1と呼ばれるデータ駆動
形計算機の構成と動作について述べている。以下、これ
らの公知資料に基づいて、従来技術を説明する。
Typical examples of conventional data-driven computers are pages 19 to 22 of the Proceedings of the Conference on Research and Development Results of High-Speed Computing Systems for Science and Technology (June 25, 1980) and the IEEE
It is disclosed on pages 486 to 490 of the COMPCON '845 PRING proceedings (English). All of these publicly known materials describe the configuration and operation of a data-driven computer called Sigma-1. The prior art will be described below based on these publicly known materials.

第5図は上述の従来のデータ駆動形計算機の構成を示し
ている。
FIG. 5 shows the configuration of the conventional data-driven computer mentioned above.

このデータ駆動形計算機は、計算器外部とのインタフェ
イスであるネットワークインタフェース14、処理対象
の各データから行先ノード番号が一致する二つのデータ
を検出するマツチングメモリIO、ノード番号に基づい
て演算命令のコードを取出す命令取出部15、命令コー
ドに従って演算処理を実行する命令実行部12、演算処
理後のデータの次の行先ノード番号を指定するための行
先指定部16等とこれらを接続するデータ経路から構成
されている。
This data-driven computer has a network interface 14 that is an interface with the outside of the computer, a matching memory IO that detects two pieces of data with matching destination node numbers from each data to be processed, and a calculation command 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

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

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

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

一方、命令取出部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のメモリ構成を第6図fatに示す。The memory configuration of the instruction fetching section 15 is shown in FIG. 6 fat.

次に、命令取出部15に入力された行先ノード番号<Q
>は、そのままノード番号< 0 > (20)として
行先指定部16に送られる。また、命令取出部15で読
み出された命令コードr + J (205)は、デー
タ対[A]、  [B]のパケット206と共にパケッ
ト207として命令実行部12に与えられる。このとき
、行先指定部16においては、第4図のデータフローグ
ラフ中のノード番号〈0〉に対応する演算である加算の
結果データが次に行くべきノードl12を表す< 2 
> (208)が読出される。
Next, the destination node number input to the instruction fetching unit 15 <Q
> is sent as is to the destination specifying unit 16 as the node number <0> (20). Further, the instruction code r + J (205) read out by the instruction extraction unit 15 is given to the instruction execution unit 12 as a packet 207 together with the packet 206 of the data pair [A] and [B]. 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. 4 represents the next node l12 to go to <2
> (208) is read out.

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

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

以上の様な処理の連鎖によって、第4図に示したデータ
フローグラフの全ノードに相当する演算が施され、プロ
グラムの実行が終了する。このとき、データ依存関係が
存在するノード、例えば、ノードlOとノードI2とに
おける処理はこの順に逐次的にのみ実行可能であるが、
データ依存関係が存在しないノード、例えば、ノードl
lOとノード#1とにおける処理は処理vt源の許す限
りにおいて並列に実行可能である。
Through the chain of processing as described above, operations corresponding to all nodes of the data flow graph shown in FIG. 4 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 IO and node I2, can only be executed sequentially in this order.
Nodes with no data dependencies, e.g. node l
The processing at IO and node #1 can be executed in parallel as long as the processing vt source allows.

なおここで、データ依存関係とは、二つのノード間の接
続関係において、一方のノードの処理が完了することに
よってはじめて他方の処理を行うために必要な入力デー
タが供給されるような接続関係にあることを指している
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のメモリ構成を、前述
の如く、第6図+a+及び中)にそれぞれ示す。各々の
情報のビット幅は、公知資料では明確に記述されていな
いので、ここでは、命令コードのビット幅を4ビツト、
行先ノード番号のビット幅を16ビツトと仮定した。ま
た、上記公知資料には、データコピー操作に関する具体
的な記述がないので、データコピーについては広く一般
的に知られている手法を用いることを仮定した。
The memory configurations of the instruction fetch section 15 and destination designation section 16 are shown in FIGS. 6+a+ and 6, respectively, as described above. The bit width of each piece of information is not clearly described in publicly known materials, so here, the bit width of the instruction code is 4 bits,
It is assumed that the bit width of the destination node number is 16 bits. Furthermore, since the above-mentioned publicly known materials do not have any specific description regarding data copy operations, it was assumed that a widely and generally known method would be used for data copying.

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

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

ところで、上述のような従来のデータ駆動形計算機には
、プログラムメモリの規模が大きくなるという問題があ
る。
By the way, the conventional data-driven computer as described above has a problem in that the scale of the program memory becomes large.

現在、広く一般に用いられているノイマン形計算機の場
合、プログラムに記述された順序に従って逐次処理を行
うので、プログラムカウンタと呼ばれる一個のレジスタ
で実行番地が一元的に管理されている。従って、分岐命
令以外は次に実行すべき命令の番地(飛び先番地)を特
に指定する必要がなく、データ駆動形計算機に比して小
さい規模のプログラムメモリで同一内容のプログラムを
格納することができる。これに対して、データ駆動形計
算機の場合には、各命令の処理を並列的に実行するため
、実行番地を一元的に管理することが不可能である。こ
のため、データ駆動形計算機では、原理的に総ての命令
に対して次に実行すべき命令の番地(行先ノード番号)
を指定しておく必要があり、プログラムメモリの規模が
拡大する原因となっている。上述の従来例においても、
1命令当りのビット幅21ビツト(命令コード4ビツト
十行先ノード番号17ビツト)の内、16ビツトを行先
ノード番号が占めている。
In the case of the Neumann type computer which is currently widely used, processing is performed sequentially according to the order written in the program, so the execution address is centrally managed by a single register called a program counter. 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. 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 a data-driven computer, in principle, for every instruction, the address of the next instruction to be executed (destination node number)
must be specified, which causes the size of the program memory to expand. Also in the conventional example mentioned above,
The destination node number occupies 16 bits out of the 21-bit bit width per instruction (instruction code 4 bits, 10 rows destination node number 17 bits).

本発明は、このような事情に鑑み、プログラムメモリの
規模を圧縮することにより、データ駆動形計算機のハー
ドウェア規模の低減を図り、同時にメモリ規模の圧縮に
伴うメモリアクセスタイムの短縮による性能向上を図ら
んとするものである。
In view of these circumstances, the present invention aims to reduce the hardware scale of a data-driven computer by compressing the program memory scale, and at the same time improves performance by shortening memory access time due to memory scale compression. This is not intended.

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

本明細書のデータ駆動形計算機は、プログラムメモリ内
の行先ノード番号を、例えば、現在の命令の格納番地か
らの相対番地で格納する構成を採っている。
The data-driven computer of this specification has a configuration 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.

〔作用〕[Effect]

本発明に係るデータ駆動形計算機においては、次に実行
すべき命令の格納番地を、例えば現在の命令に対する相
対番地で表わしているため、次の命令の格納番地は、現
在の命令の番地に次の命令の相対番地を加える処理によ
り得られる。
In the data-driven computer according to the present invention, the storage address of the next instruction to be executed is expressed as a relative address to the current instruction, so the storage address of the next instruction is the next one to the address of the current instruction. It is obtained by adding the relative address of the instruction.

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

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

第1図は本発明に係るデータ駆動形計算機の一実施例の
構成を示すブロック図である。
FIG. 1 is a block diagram showing the configuration of an embodiment of a data-driven computer according to the present invention.

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

このような本発明のデータ駆動形計算機により、第3図
のプログラム(データフローグラフ)を実行する場合に
ついて動作を説明する。なお、第3図に示すデータフロ
ーグラフは、前述の第4図のプログラムと全く同一のプ
ログラムであるが、本発明の説明のためにノード番号の
割付は方を異ならせである。
The operation of the data-driven computer of the present invention when executing the program (data flow graph) shown in FIG. 3 will be described. The data flow graph shown in FIG. 3 is the same program as the program shown in FIG. 4 described above, but the node numbers are assigned differently for the purpose of explaining the present invention.

このデータフローグラフは、データAとBとをノードl
lOにおいて加算し、この結果のデータGと別のデータ
Cとをノード12において乗算してその結果データIを
求め、他方ではデータDとEとをノード1)において加
算し、この結果のデータGと別のデータCとをノードI
5において乗算してその結果データJを求め・・・、デ
ータWとXとをノード#7096において乗算し、この
結果データYと先に求められているデータ■とをノード
# 7097において加算してその結果データZを求め
・・・というように構成されている。
This data flow graph connects data A and B to node l.
The resulting data G and another data C are multiplied at node 12 to obtain the resulting data I, and on the other hand, the data D and E are added at node 1) and the resulting data G and another data C to node I
5 to obtain the result data J... Data W and X are multiplied at node #7096, and this result data Y and the previously obtained data ■ are added at node #7097 As a result, data Z is obtained, and so on.

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

本発明のデータ駆動形計算機においては、2サイクルの
パイプライン処理が行われる。その初段はマツチングメ
モ1月0におけるデータの待合わせである。外部から入
力されたパケットlotは、マツチングメモリ10に送
られるが、この際、2項演算「+」の相手のデータ[B
]を含むパケットが未到着の場合には、入力されたパケ
ットIOIはマツチングメモリ内に一旦格納され、デー
タ[B]を含むパケットの到着を待つ、また、既にもう
一方のデータ[B]を含むパケットが到着してマツチン
グメモリ内に格納されている場合には、これら二つのパ
ケ7)の行先ノード番号く0〉が一致していることが検
出され、入カバケソト101にデータ[B]を付加した
パケット102がマツチングメモリ10から送出される
In the data-driven computer of the present invention, two-cycle pipeline processing is performed. The first stage is the data waiting for the matching memo January 0. A packet lot input from the outside is sent to the matching memory 10, but at this time, the data [B
] has not arrived, the input packet IOI is temporarily stored in the matching memory and waits for the packet containing data [B] to arrive, or if the packet containing data [B] has already been received When the containing packet arrives and is stored in the matching memory, it is detected that the destination node numbers 0> of these two packets 7) match, and data [B] is stored in the input packet 101. The packet 102 with the added .

パケット102に含まれている情報の内、行先ノード番
号< Q > (103)はプログラムメモリ1)及び
後述する加算器13に送られ、残りのデータ[A]。
Among the information contained in the packet 102, the destination node number <Q> (103) is sent to the program memory 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における処理と並列して実行され
るプログラムメモリ1)での処理について、以下に説明
する。
On the other hand, the processing in the program memory 1) that is executed in parallel with the processing in the instruction execution unit 12 will be described below.

第2図は、本発明に係るデータ駆動型計算機のプログラ
ムメモリ1)のメモリ!JI成を示している。
FIG. 2 shows the program memory 1) of the data-driven computer according to the present invention! It shows JI formation.

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

その下位側のビット“C0PY”は、従来例における“
C0PY”ビットと同様の意味を有し、このcopy”
ビットが“1”であれば、演算結果の行先ノードが複数
個あり、これらの各行先ノードに関する命令コードと行
先ノード番号の情報とが次の番地以降に格納されている
ことを示している。
The lower bit “C0PY” is the “C0PY” in the conventional example.
This bit has the same meaning as the "copy" bit.
If the bit is "1", this 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).

上述の如き本発明のデータ駆動型計算機の具体的な動作
を説明する。
The specific operation of the data-driven computer of the present invention as described above will be explained.

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

命令コードは命令コードレジスタ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 previously input input node number <
0 > (103) is added to obtain the absolute value of the destination node number < 2 > (106).

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

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

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

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

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

上述の如く、命令コードとデータは命令実行部12に送
られて乗算が実行され、結果データ[1]が出力される
。これと並行して、行先ノード番号〈2〉がプログラム
メモリ1)に送出され、行先ノード番号が読出される。
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 1) and the destination node number is read out.

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

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

行先ノード番号〈2〉を有するパケットがプログラムメ
モリ1)に入力されると、プログラムメモリ1)の第2
番地の内容が読出される(ステップS4)。
When a packet with destination node number <2> is input into the program memory 1), the second
The contents of the address are read (step S4).

続出された内容のうち、命令コード「+」が命令コード
レジスタ131に、また相対行先ノード番号〈4〉が行
先ノード番号レジスタ132の下位6ビツトに、即ちビ
ット(6: 0)にそれぞれ書込まれる(ステップS5
. S6)。
Of the successively outputted 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, bits (6:0). (Step S5
.. S6).

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

この際、読出されたワードのcopy“ピントが“1”
なので、読出しアドレス〈2〉をインクリメントすると
共に(ステップ510)、ループカウント〈L〉と行先
ノード番号レジスタ132の内容をクリアした後(ステ
ップS2.53)、インクリメント後のアドレスである
第3番地を読出す(ステップ54)。
At this time, the copy “focus” of the read word is “1”
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.53), the third address, which is the address after the increment, is Read out (step 54).

初回の読出しの際と同様に、続出したワード中の命令コ
ード「+」と相対行先ノード番号〈55〉(=“1)0
1)1″)とを、命令コードレジスタ131と行先ノー
ド番号レジスタ132の下位6ビノトにそれぞれ書込む
(ステップS5. S6)。読出したワードの’EXT
’ビットが′l”であるので(ステップS7)、読出し
アドレスをインクリメントして(ステップ5ll)、第
4番地の内容を読出し、読出したワードの下位10ビツ
トを、行先ノード番号レジスタ132のビット15から
ビット6に書込む(ステップ513)。
As with the first read, the instruction code "+" in successive words and the relative destination node number <55>(="1) 0
1) 1'') are written to the lower 6 bits of the instruction code register 131 and the destination node number register 132, respectively (steps S5 and S6).'EXT of the read word
Since the ``bit is ``l'' (step S7), the read address is incremented (step 5ll), the contents of the fourth address are read, and the lower 10 bits of the read word are transferred to bit 15 of the destination node number register 132. to bit 6 (step 513).

最後に読出したワードのEXTビットの値が“1″であ
るので(ステップ515)、現状の命令コード「+」及
び行先ノード番号レジスタ132の内容< 7095 
>(−“0001)01)101)01)1″)と入力
したノード番号I2との加算結果< 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
>(-"0001)01)101)01)1") and the input node number I2, the addition result <7097> is output (step S8).

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

上述のように、行先ノード番号を相対行先ノード番号で
与えた場合において、相対行先ノード番号が所定のビッ
ト幅を越えてオーバーフローしても、プログラムメモリ
の次の番地を相対行先ノード番号の拡張アドレス領域と
して用いることによって処理が完結され、どのような規
模の、またどのようなノード番号割付けが行われたプロ
グラムに対しても本発明が通用可能である。
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 the present invention is applicable to programs of any size and to which node numbers are assigned.

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

実際に、3987ノードからなるテストプログラムに対
して、入力から順に近いノードに小さいノード番号を与
えるようにノード番号を割付けた場合に相対行先ノード
番号がどのような統計的分布を示すかを評価した。その
結果を第8図のグラフに示す、グラフの横軸は、相対行
先ノード番号を、縦軸は累積度数の百分率を、各区間に
対する数字はその区間内に含まれるノード数をそれぞれ
示している。
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 in Figure 8. The horizontal axis of the graph shows the relative destination node number, the vertical axis shows the cumulative frequency percentage, and the numbers for each section indicate the number of nodes included in that section. .

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

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

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

なお、上記実施例では説明の簡便化のために、相対行先
ノード番号を正の数に限定したが、符号付き数(2の補
数表現)とすることによって、出力側のノード番号より
小さいノード番号をもつノードに対してデータを送出す
ることが可能になる。
Note that in the above embodiment, the relative destination node number is limited to a positive number to simplify the explanation, but by using a signed number (two's complement representation), a node number smaller than the output side node number can be used. It becomes possible to send data to a node with

これによって、繰返し構造を含むプログラムに対しても
、本発明を通用できる。
As a result, the present invention can be applied to programs including repetitive structures.

更に、本実施例では、相対行先ノード番号の桁溢れビッ
トを拡張ビットに割り当てたが、他の手法として、プロ
グラムをページ単位に分割し、ページ内番地を例えば6
ビツトで表わし、ページを越えて行先ノードが存在する
場合に、相対ページ番号を拡張ビットに割当てる手法を
採ることも可能である。
Furthermore, in this embodiment, 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 and set the address within the page to, for example, 6.
It is also possible to use a method in which the relative page number is expressed in bits, and when a destination node exists beyond the page, a relative page number is assigned to the extension bit.

なお上記実施例では、従来例に示したデータ駆動形計算
機の命令取出部と行先指定部とを一つのプログラムメモ
リに統合し、このプログラムメモリを命令実行部と並列
配置したことにより、冗長な入力アドレスラッチ及びデ
コーダ等を省略してハードウェア規模を低減している。
In the above embodiment, the instruction fetch section and destination specification section of the data-driven computer shown in the conventional example are integrated into one program memory, and this program memory is arranged in parallel with the instruction execution section, thereby eliminating redundant input. The hardware scale is reduced by omitting address latches, decoders, etc.

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

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

以上説明したように、本発明のデータ駆動形計算機にお
いては、プログラムメモリ内の行先ノード番号を、例え
ば、現在の命令の格納番地からの相対番地で指定したこ
とにより、行先ノード番号を格納するためのビット幅を
大幅に圧縮し、プログラムメモリの規模を低減すること
ができる。
As explained above, in the data-driven computer of the present invention, the destination node number in the program memory is specified by a relative address from the storage address of the current instruction, so that the destination node number can be stored. It is possible to significantly compress the bit width and reduce the size of program memory.

一般に、データ駆動形計算機は、並列分散処理に通した
計算モデルの上に構築されており、特別な制御を加えな
くてもマルチタスクが自律的に並列実行されるという際
だった特徴があると考えられている。しかしながら、マ
ルチタスクの各々を格納するプログラムメモリのアドレ
スが固定的に決められているような現状の方式の場合、
現在実行中のタスクTaとプログラムメモリの領域を共
有する恐れのある他のタスクTbとは、プログラムメモ
リに空き領域があっても同時には実行できない。従って
、現状のデータ駆動形計算機は、マルチタスクに通して
いるという本来有している特徴を充分に活用することが
出来ていないというのが実情である。
In general, data-driven computers are built on a computational model based on 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. Therefore, the reality is that current data-driven computers cannot fully utilize their inherent feature of multitasking.

これに対して、本発明のデータ駆動形針算機では、全て
のノードのノード番号が他のノードからの相対行先ノー
ド番号で指定されるので、プログラムメモリに空き領域
があれば絶対番地とは無関係に、任意の空き領域に新た
なタスクを外部からロードし、他のタスクと並列に実行
することができる。
In contrast, in the data-driven pointer of the present invention, 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, absolute addresses can be used. Regardless, a new task can be externally loaded into any free space and executed in parallel with other tasks.

以上は、1プロセツサ上でのマルチタスク実行について
述べたものであるが、第9図に示すように、ネットワー
クを介して複数のデータ駆動形計算機(プロセッサ)I
lO〜INが接続されているような構成において、各プ
ロセッサに跨る個々のタスクTa、 Tb、 Tcが、
各プロセッサ内で同一のプログラムメモリ領域を占める
ようにすれば、ネットワークを介して相互にバケット通
信を行うマルチプロセッサに対しても、マルチタスク実
行及びタスク生成を行わせることが可能であり、複数の
データ駆動形計算機を用いた高速並列分散処理を容易に
実現することができる。
The above describes multitasking execution on one processor, but as shown in Figure 9, multiple data-driven computers (processors) I
In a configuration in which lO to IN are connected, individual tasks Ta, Tb, and Tc spanning each processor are
If each processor occupies the same program memory area, it is possible to perform multitask execution and task generation even for multiprocessors that communicate with each other in buckets via a network. High-speed parallel distributed processing using data-driven computers can be easily realized.

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

第1図は本発明によるデータ駆動形計算機の一実施例を
示すブロック図、第2図は本発明によるデータ駆動形計
算機のプログラムメモリのメモリ構成、より具体的には
第3図のプログラムを格納した場合のメモリ内容を示す
模式図、第3図は本発明のデータ駆動形計算機により実
行されるプログラム(データフローグラフ)の−例を示
す模式図、第4図は従来例のデータ駆動形計算機で実行
するプログラム(データフローグラフ)の−例を示す模
式図であり、ノード番号の割付けを除いて第3図と同様
のプログラムを示し、第5図は従来例のデータ駆動形計
算機の一例を示すブロック図、第6図(alは従来例の
データ駆動形計算機における命令取出部のメモリ構成を
示す図、第6図(blは行先指定部のメモリ構成を示す
図模式図であり、いずれも第4図に示すプログラムを格
納した場合のメモリ内容を示し、第7図は本発明のデー
タ駆動形計算機のプログラムメモリにおける詳細な処理
手順を示すフローチャート、第8図は相対行先ノード番
号の値の分布を示すグラフ、第9図はマルチプロセッサ
構成におけるマルチタスクの実行状態におけるプログラ
ムメモリのマツプを示す概念図である。 10・・・マツチングメモリ  1)・・・プログラム
メモリ  12・・・命令実行部  13・・・加算器
なお、図において、同一符号は、同一または相当部分を
示している。 ア
FIG. 1 is a block diagram showing an embodiment of a data-driven computer according to the present invention, and FIG. 2 is a memory configuration of a program memory of the data-driven computer according to the present invention, and more specifically, the program shown in FIG. 3 is stored. FIG. 3 is a schematic diagram showing an example of a program (data flow graph) executed by the data-driven computer of the present invention, and FIG. 4 is a diagram of a conventional data-driven computer. Fig. 5 is a schematic diagram showing an example of a program (data flow graph) to be executed in a conventional data-driven computer. 6 (al is a diagram showing the memory configuration of the instruction fetching section in a conventional data-driven computer, and FIG. 6 (bl is a schematic diagram showing the memory configuration of the destination specifying section. FIG. 4 shows the memory contents when the program shown in FIG. The graph showing the distribution, FIG. 9, is a conceptual diagram showing a map of program memory in the execution state of multitask in a multiprocessor configuration. 10...Matching memory 1)...Program memory 12...Instruction execution Section 13... Adder In the figures, the same reference numerals indicate the same or corresponding parts.

Claims (1)

【特許請求の範囲】[Claims] (1)処理対象の各データに付属している行先ノード番
号が一致する二つのデータを検出する一致検出部と、該
一致検出部により一致検出がなされた二つのデータに対
してデータに付属している命令コードに従って演算処理
を施す演算処理部と、該演算処理部により処理されたデ
ータに付属している行先ノード番号をアドレスとしてそ
の内容が読出され、読出された内容に基づいて前記デー
タの行先ノード番号と命令コードとの更新を行うプログ
ラムメモリとを備えたデータ駆動形計算器において、 前記演算処理部により処理されたデータの 行先ノード番号とこれをアドレスとして前記プログラム
メモリから読出された内容との間で所定の演算を行う演
算手段を備え、 該演算手段による演算結果を更新後の行先 ノード番号とすべくなしてあることを特徴とするデータ
駆動形計算機。
(1) A match detection unit that detects two pieces of data that have matching destination node numbers attached to each data to be processed; An arithmetic processing unit performs arithmetic processing according to the instruction code, and the content is read out using the destination node number attached to the data processed by the arithmetic processing unit as an address, and the data is processed based on the read content. In a data-driven calculator equipped with a program memory that updates a destination node number and an instruction code, the destination node number of the data processed by the arithmetic processing unit and the content read from the program memory using this as an address 1. A data-driven computer comprising: arithmetic means for performing a predetermined arithmetic operation between said arithmetic means, and the result of the arithmetic operation by said arithmetic means is used as an updated destination node number.
JP63321574A 1988-12-19 1988-12-19 Data driven computer Expired - Fee Related JP2522372B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP63321574A JP2522372B2 (en) 1988-12-19 1988-12-19 Data driven computer
US07/450,653 US5218706A (en) 1988-12-19 1989-12-13 Data flow processor with next destination node determination
US08/012,063 US5363491A (en) 1988-12-19 1993-02-01 Data flow processor with data processing and next address determination being made in parallel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63321574A JP2522372B2 (en) 1988-12-19 1988-12-19 Data driven computer

Publications (2)

Publication Number Publication Date
JPH02165286A true JPH02165286A (en) 1990-06-26
JP2522372B2 JP2522372B2 (en) 1996-08-07

Family

ID=18134083

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63321574A Expired - Fee Related JP2522372B2 (en) 1988-12-19 1988-12-19 Data driven computer

Country Status (1)

Country Link
JP (1) JP2522372B2 (en)

Also Published As

Publication number Publication date
JP2522372B2 (en) 1996-08-07

Similar Documents

Publication Publication Date Title
US7383421B2 (en) Cellular engine for a data processing system
US5241635A (en) Tagged token data processing system with operand matching in activation frames
Grafe et al. The epsilon dataflow processor
Arvind et al. Dataflow architectures
JPH06195322A (en) Information processor used as general purpose neurocomputer
US4562538A (en) Microprocessor having decision pointer to process restore position
US5577256A (en) Data driven type information processor including a combined program memory and memory for queuing operand data
Amamiya et al. Datarol: A massively parallel architecture for functional languages
Miller et al. Configurable computers: A new class of general purpose machines
US6542989B2 (en) Single instruction having op code and stack control field
JPH07104784B2 (en) Digital data processor
US5363491A (en) Data flow processor with data processing and next address determination being made in parallel
Stepchenkov et al. Recurrent data-flow architecture: features and realization problems
US7047396B1 (en) Fixed length memory to memory arithmetic and architecture for a communications embedded processor system
Vick et al. Adptable Architectures for Supersystems
Ruggiero Throttle Mechanisms for the Manchester Dataflow Machine
US5542079A (en) Data driven processor for reading data from storage to apply prescribed operation in response to operation updating instruction and updating the contents of the storage
Halim A data-driven machine for OR-parallel evaluation of logic programs
JPH02165286A (en) Computer driven by data
Czaja Introduction to Distributed Computer Systems: Principles and Features
JPH02196385A (en) Data driving type computer
US5542080A (en) Method for controlling execution of data driven type information processor
JP2793357B2 (en) Parallel processing unit
JPH07110769A (en) Vliw type computer
JP2654451B2 (en) Data output method

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees