JPH01292437A - データ駆動型制御方法 - Google Patents

データ駆動型制御方法

Info

Publication number
JPH01292437A
JPH01292437A JP12173288A JP12173288A JPH01292437A JP H01292437 A JPH01292437 A JP H01292437A JP 12173288 A JP12173288 A JP 12173288A JP 12173288 A JP12173288 A JP 12173288A JP H01292437 A JPH01292437 A JP H01292437A
Authority
JP
Japan
Prior art keywords
instruction
queue
data
executed
execution
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
JP12173288A
Other languages
English (en)
Other versions
JP2760800B2 (ja
Inventor
Yukito Maejima
前島 幸仁
Tahei Suzuki
鈴木 太平
Hirotoshi Shirasu
白須 宏俊
Toshiaki Yamamoto
山本 利昭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP12173288A priority Critical patent/JP2760800B2/ja
Priority to US07/311,291 priority patent/US5185873A/en
Publication of JPH01292437A publication Critical patent/JPH01292437A/ja
Application granted granted Critical
Publication of JP2760800B2 publication Critical patent/JP2760800B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ駆動型制御方法に関し、特に、並列処理
に伴う命令の待合せ制御を簡略化することで、実行性能
を向上させ、かつ命令を逐次処理していくことで、トレ
ース効率を向上させることができるデータ駆動命令の制
御方法に関するものである。
〔従来の技術〕
データフロープログラムの特長として、(1)データの
依存関係のみで命令実行順序が決まり、しかも、プログ
ラム自身が図式表現されるため、理解性の向上が期待で
きる。(2)it列処理を陽に表現できるので、マルチ
プロセッサ構成により処理能力の向上が期待できる、等
がある。従来、データフロープログラムの命令実行の待
合せについては1例えば電子通信学会誌B分冊、Vol
J67−B  NO3,654ページから661ページ
で論じられている。前記方法においては、命令レベルの
並列実行による処理能力向上を図るために、マルチプロ
セッサ構成を採用し、命令はパケット形式でプロセッサ
間を流れ、しかも、命令実行の待合せのために先入れ先
出しくF I FO)のキューを用いている。この方法
によれば、処理能力の向上が期待できる反面、プログラ
ム内の局所的な並列処理と大局的な並列処理が区別なく
実行されてしまうので、命令実行のトレース効率はあま
り高くない。
そこで、(1)の理解性向上だけを目的とするならば、
命令レベルの並列性は失われるが、データフロープログ
ラムを従来のノイマン型マシン上で実行してもよい、こ
れはプロセッサとメモリがあれば安価に実現できる。し
かし、データ駆動をエミュレーションすることからその
オーバヘッドが問題となる。
〔発明が解決しようとする課題〕
前述のように、従来の技術においては、マルチプロセッ
サ構成のデータフローマシンそのものであり、処理能力
向上が期待できる反面、ハード量が多く、またプログラ
ム内の大局的な並列処理と局所的な並列処理の区別が難
しいことによるトレース効率の低下という問題がある。
そこで、データフロープログラムを従来の安価なノイマ
ン型マシン上で実行し、キューをソフト的に形成するこ
とが考えられる。しかし、キューを先入れ先出しで制御
するだけでは、プログラム内の大局的な並列処理と局所
的な並列処理の区別することは難しく、しかも、並列処
理による命令実行の待合せから、必ず1度キューに命令
を登録してからでないと該命令を実行することができな
いという2つの課題が生じる。
本発明の目的は、これらの課題を解決し、データ駆動型
制御におけるオーバヘッドに基因する処理能力低下を最
小に抑えることができ、かつ命令のトレース効率の良い
データ駆動型制御方法を提供することにある。
〔課題を解決するための手段〕
上記の目的を達成するため、本発明によれば、各命令対
応に、入力データ入手先と該入力データを用いた演算結
果の出力通知先と出力通知先数を示すデータと、該入力
データが準備されたことを示す入力データ数カウンタと
を格納した記憶手段を有するデータ駆動型制御方法にお
いて、該記憶手段に、命令の実行を待合せるための後入
れ先出しのキュー手段を設け、命令が実行可能となった
場合は、前記キューに該命令を登録し、命令を実行する
場合には、前記キューより後入れ先出しにしたがって命
令を取り出して、該命令を実行することに特徴がある。
また、実行した命令の演算結果を次命令の入力データと
して通知する場合に、該実行命令の出力通知先数が1で
、しかも入力データが準備されたことの通知を受け取っ
た次命令が実行可能な状態になれば、次命令を前記キュ
ーに登録しないで、直ちに次命令を実行することに特徴
がある。
〔作用〕
上記構成により、本発明によれば、データ駆動に基づい
て実行され、しかも並列実行可能な命令は、実行に先立
ち、後入れ先出しのキューにより並直列変換され、その
実行は逐次的すなわち水平的ではなく垂直的に実行され
るため、命令トレースを効率的に行うことができる。ま
た、該実行命令の出力通知先数が1で、かつ該出力通知
先の命令が実行可能状態になる場合には、前記キューに
命令を登録しないで直ちに命令を実行できるので、性能
の向上が期待できる。
〔実施例〕
以下1本発明の一実施例を図面により説明する。
第2図は本発明において適用されるデータフローグラフ
の記述例を示す図である。第2図において、ノード1(
IA〜IE)はデータ駆動で実行される演算命令を表し
ており、アーク2は命令間で授受されるデータの流路を
表している。そして。
命令はデータ駆動に基づいて実行されるので、命令の実
行に必要な入力データの全てが揃った時点で始めて演算
が実行される。
第2図では、入力データで指示されるパケット番号から
パケットアドレスに変換する命令IA、入力データで指
示されるパケットアドレスと構造体名で情報を読み出す
命令IB、IC1入力データのコードを変換する命令I
Dと2つの入力データを加算する命令IEとから構成さ
れる。演算は先ず入力されたパケット番号をパケットア
ドレスに変換し、パケットアドレスと構造体名で指示さ
れる2つのデータを読み出し、一方のデータはコード変
換を行い、その結果と、他方の読み出されたデータとを
加算することにより行われる。
第3図は本発明が適用される電子交換機のブロック構成
図である。ここでは、本発明を適用したデータフローグ
ラフ表現の電子交換機プログラムが実行される。また第
3図では、ノイマン型プロセッサが用いられる。
第3図の電子交換機では、通常のプログラム・カウンタ
制御によるノイマン型プロセッサ3と、記憶保護機能を
有するメモリ4と、空間分割型または時分割型の通話路
5とが、プロセッサ・バス6を介して接続されており、
かつその通話路5には、電話機7およびトランク8が収
容されている。
これらの電話機7およびトランク8は複数個が通話路5
に収容されているが、ここではそのうちの1個ずつが示
されている。
通話路5を介して電話機7とトランク8を接続する電子
交換機プログラムは、第2図に示すようなデータフロー
グラフで表現され、プログラム自体はメモリ4に格納さ
れている。プロセッサ3は電話機7またはトランク8か
らの交換接続要求に対して、メモリ4に格納されている
所定の電子交換機プログラムを選択し、そのプログラム
をデータ駆動に基づいて実行制御することにより、通話
路5を介して電話機7またはトランク8等の端末間の接
続を行う。
第1図は本発明の一実施例を示すデータ駆動型制御方法
の機能ブロック図であって、第3図の電子交換機プログ
ラムを構成する機能部の結合を示している。
第1図において、10は電話機7およびトランク8から
の交換接続要求を分析して、所定の交換接続動作を決定
する交換接続要求解析部、11はデータフローグラフで
表現されたプログラムの命令実行を待合せるキュー、1
2はデータフローグラフで表現されたプログラム命令を
データ駆動で実行するデータ駆動命令実行制御部、13
は命令の名称に対応する演算を行うための演算命令処理
部、14は交換接続動作をデータフローで記述したプロ
グラムの接続処理部、15は命令の実行に必要な入力デ
ータ数を指示するカウンタを初期設定するための命令ア
ドレスとカウンタの初期値からなる初期設定テーブルで
ある。
第4図は第1図の接続処理部14に規定された接続処理
1〜mのうち1つに該当する命令IA。
IB、IC,LD、IEの接続例を示しており、1つの
命令は9個のエリア20〜28から構成される。そして
、第4図に示すLA、IB、IC。
LD、IEの関係は第2図に示したデータフローグラフ
と等価であって、第2図のノードIA〜IEは第4図の
各ノードIA〜IEに該当する。
21のエリア内に演算命令コードが書き込まれている。
IAがアドレス変換、IB、ICがデータ読み出し、I
Dがコード変換、IEが加算の各命令である。なお、ノ
ードIAの命令を構成する各エリアだけに記号が付けら
れているが、他のノードIB、IC,ID、IEの各エ
リアの構成はIAと全く同じであるため、記号を省略し
ている。
第4図において、20は命令実行時に書き換えられるエ
リアのヘッダを示すランダムアクセスメモリアドレス、
21は命令の処理を規定する演算命令コード、22は入
力データ数、23は入力データの入手先を指示する入力
データ入手先アドレス、24は出力通知先数、25は出
力が与えられることを次命令に伝達するための出力通知
先アドレス、26は実行可能状態の命令をキューに登録
するためのリンケージポインタ、27は命令の実行に必
要な入力データの到着状況を示すカウンタ。
28は演算結果を格納する出力データ格納エリアである
1つの接続処理を構成する各ノードごとに、上記命令が
メモリ4に確保される。
ランダムアクセスメモリアドレス20.演算命令コード
21.命令の入力データ数22.入力データ入手先アド
レス23.出力通知先数24、および出力通知先アドレ
ス25はいずれもプログラムコンパイル時に決定される
。しかも、これらはプログラム実行時に書き換えられる
ことがないため、プログラムをメモリ4にローディング
した後。
記憶内容を保護するためのメモリプロテクトを施すこと
ができる。
一方、リンケージポインタ26.カウンタ27、および
出力データ格納エリア28は命令実行時に書き換えられ
るために、ランダムアクセスが可能なメモリ領域に割り
付けられる。これにより大部分のエリアの内容を保護す
ることができるので、プログラムが暴走しても、命令の
破壊を防止でき、信等性を向上できる。
次に、第5図により第1図の機能ブロックおよび第4図
のメモリエリアの動作を詳述する。第1図における矢印
の番号は処理を移す順序を示している。
先ず、第1図および第3図において、電話機7およびト
ランク8等の端末から接続要求が交換機に到着すると、
交換接続要求解析部10はこの接続要求を解析し、実行
すべき接続処理の1つを接続処理部14の接続処理1〜
mのうちから選択し決定した後(第1図の矢印(1))
 、その接続処理の先頭にある命令アドレスをキュー1
1の最後尾に登録する(第1図の矢印(2))、そして
、登録した接続処理名称をデータ駆動命令実行制御部1
2に引き継いで、データ駆動命令実行制御部12を起動
する(第1図の矢印(3))、起動を受けたデータ駆動
命令実行制御部12は第5図の動作フローに従って動作
する。
先ず、引き継いだ接続処理の名称に対応する初期設定テ
ーブル15を索引し、命令実行に必要な入力データ数を
指示するカウンタ27を初期設定する(ステップ30)
(第1図の矢印(4))。
そして、キュー11が空きでなければ(ステップ31)
、キュー11の最後尾から交換接続要求解析部10が登
録した接続処理の先頭の命令アドレスを抽出して、これ
を記憶した後(第1図の矢印(5) )、キュー11か
らその命令を取り外しくステップ32;第1図の矢印(
6))、命令内の演算命令コード21で定まる演算命令
処理部13を決定し、その命令アドレスを演算命令処理
部13に引き継いだ後(第1図の矢印(7))、その演
算命令処理部13を起動する(ステップ33)、起動さ
れた演算命令処理部13は、その命令アドレスで指示さ
れる命令内の入力データ入手先アドレス23から入力デ
ータを入手した後、その入力データを用いて所定の演算
を行い、演算結果をランダムアクセスメモリアドレス2
0でリンクされる出力データ格納エリア28に格納する
(ステップ34;第1図の矢印(8))、そして、制御
をデータ駆動命令実行制御部12に戻す(第1図の矢印
(9))。
次に、データ駆動命令実行制御部12は記憶していた命
令アドレスに基づいて、出力通知先数24を求め、出力
通知先数24が0でなく(ステップ35)、かつ出力通
知先数24が1であれば(ステップ36)、出力通知先
アドレス25を求め(ステップ37)、出力データすな
わち次命令の入力データが準備されたことを通知する(
第1図の矢印(10))−この通知は以下のようにして
行われる。先ず、出力通知先アドレス25で指示される
次命令のランダムアクセスメモリアドレス20を求め、
ランダムアクセスメモリアドレス20で指示されるカウ
ンタ27をr−IJL、、(ステップ38)、もしカウ
ンタ27がOであれば(ステップ39)、その命令が実
行可能であると判断し、前述のようにその命令アドレス
で指示される命令を実行する。また、カウンタ27が0
でなければ何もしないで1次に実行すべき命令アドレス
をキュー11の最後尾から取り出す処理(ステップ31
)に戻る。さらに、出力通知先数24が複数であれば、
出力通知先アドレス25を求め(ステップ40)、出力
データが準備されたことを通知する(第1図の矢印(1
0))、この通知は前述したように行われる。先ず、出
力通知先アドレス25で指示される次命令のランダムア
クセスメモリアドレス20を求め、ランダムアクセスメ
モリアドレス20で指示されるカウンタ27をr−IJ
L、(ステップ41)、もしカウンタ27が0であれば
(ステップ42)、その命令が実行可能であると判断し
、前述のようにその次命令アドレスをキュー11の最後
尾に登録する。このように出力通知先が複数あればその
数だけステップ40〜ステツプ44を繰り返し、全ての
出力通知先アドレス25へ出力データの通知が終了する
と。
次に実行すべき命令アドレスをキュー11から取り出す
処理(ステップ31)に戻る。一方、キュー11の最後
尾に登録されている命令アドレスがなければ(ステップ
31)、実行すべき命令がないものと判断して、データ
駆動命令実行制御部12は交換接続要求解析部10に制
御を戻して(第1図の矢印(12))、その接続処理を
終了する。
また、後入れ先出しキュー11により命令の実行順序は
、前述したように並列実行可能な部分が交互に実行され
るのではなく、1つの並列実行可能な部分が終了して、
初めて他の、並列実行可能な部分が実行されるので、命
令トレースが容易になる。
〔発明の効果〕
本発明によれば、データ駆動に基づく命令実行において
、出力通知先数が1で、しかも出力通知先が直ちに実行
可能状態になる場合は、キュー制御を簡略化できるので
、命令実行の性能を向上させることができる。さらに、
並列実行可能な命令群が複数ある場合でも、並列実行可
能な部分が交互に実行されるのではなく、1つの並列実
行可能な部分が終了するまで、他の部分の実行を待合せ
ることができるので、命令のトレース効率を向上できる
【図面の簡単な説明】
第1図は本発明の一実施例を示すデータ駆動型制御方法
の機能ブロック図、第2図はデータフローグラフの説明
図、第3図は本発明のデータフローグラフを適・用する
電子交換機のブロック構成図。 第4図は本発明の一実施例を示すデータ駆動命令を記憶
するメモリエリアの結合図、第5図は第1図におけるデ
ータ駆動命令実行制御部の動作フローチャートである。 LA、IB、IC,LD、IE・・・命令ノード、2・
・・アーク、3・・・プロセッサ、4・・・メモリ、5
・・・通話路、6・・・プロセッサ・バス、7・・・電
話機、8・・・トランク、10・・・交換接続要求解析
部、11・・・キュー、12・・・データ駆動命令実行
制御部、13・・・演算命令処理部、14・・・接続処
理部、15・・・初期設定テーブル、20・・・ランダ
ムアクセスメモリアドレス、21・・・演算命令コード
、22・・・入力データ数、23・・・入力データ入手
先アドレス、24・・・出力通知先数、25・・・出力
通知先アドレス、26・・・リンケージポインタ、27
・・・カウンタ、28・・・第1図 第2図 パケット番号 第3図 第4図 IA        IB       IE第5[i
!I!

Claims (1)

  1. 【特許請求の範囲】 1、各命令対応に、入力データ入手先と該入力データを
    用いた演算結果の出力通知先と出力通知先数を示すデー
    タと該入力データが準備されたことを示す入力データ数
    カウンタとを格納した記憶手段を有するデータ駆動型制
    御方法において、該記憶手段に、命令の実行を待合せる
    ための後入れ先出しキュー手段を設け、命令が実行可能
    となつた場合は、前記キューに該命令を登録し、命令を
    実行する場合には、前記キューより後入れ先出しにした
    がつて命令を取り出して、該命令を実行することを特徴
    とするデータ駆動型制御方法。 2、特許請求範囲の第1項において、実行した命令の演
    算結果を次命令の入力データとして通知する場合に、該
    実行命令の出力通知先数が1で、しかも入力データが準
    備されたことの通知を受け取つた次命令が実行可能な状
    態になれば、次命令を前記キューに登録しないで、直ち
    に次命令を実行することを特徴とするデータ駆動型制御
    方法。
JP12173288A 1988-02-19 1988-05-20 データ駆動型制御方法 Expired - Fee Related JP2760800B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP12173288A JP2760800B2 (ja) 1988-05-20 1988-05-20 データ駆動型制御方法
US07/311,291 US5185873A (en) 1988-02-19 1989-02-16 Control system with flag indicating two or less data inputs and counter indicating two or more controlling data driven execution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12173288A JP2760800B2 (ja) 1988-05-20 1988-05-20 データ駆動型制御方法

Publications (2)

Publication Number Publication Date
JPH01292437A true JPH01292437A (ja) 1989-11-24
JP2760800B2 JP2760800B2 (ja) 1998-06-04

Family

ID=14818511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12173288A Expired - Fee Related JP2760800B2 (ja) 1988-02-19 1988-05-20 データ駆動型制御方法

Country Status (1)

Country Link
JP (1) JP2760800B2 (ja)

Also Published As

Publication number Publication date
JP2760800B2 (ja) 1998-06-04

Similar Documents

Publication Publication Date Title
US8230144B1 (en) High speed multi-threaded reduced instruction set computer (RISC) processor
JP2002149424A (ja) 共有コプロセッサ・リソースに対する複数の論理インタフェース
EP1290560A2 (en) Distributed processing multi-processor computer
JP5030647B2 (ja) 複数処理ノードを含むコンピュータ・システムでプログラムをロードする方法、該プログラムを含むコンピュータ可読媒体、及び、並列コンピュータ・システム
EP0240108A2 (en) A data processing system
JPH01292437A (ja) データ駆動型制御方法
JPH0628499A (ja) データ駆動型情報処理装置
JP2745519B2 (ja) データ駆動型制御方法
US5185873A (en) Control system with flag indicating two or less data inputs and counter indicating two or more controlling data driven execution method
US5579495A (en) Information processing in which a simulation of parallelism is achieved
JPH08249018A (ja) マルチプロセッサ演算装置、および該装置を有するプログラマブルコントローラ
Crowley The design and implementation of a new UNIX kernel
JP2744152B2 (ja) データ駆動型データ処理装置
JPH07110769A (ja) Vliw型計算機
JP3646445B2 (ja) プログラマブルコントローラ
JPS58181168A (ja) 自律型プロセツサアレイ方式
JP2749058B2 (ja) データ駆動型制御方法
Ostheimer Parallel Functional Computation on STAR: DUST—
JPS6153754B2 (ja)
JPS61122754A (ja) マイクロプロセツサ
JP2560693B2 (ja) デ−タフロ−型計算機のプログラムリンク方式
WO1999004335A2 (en) A method and a processor adapted for the handling of conditional jumps
JPH0495129A (ja) 計算機
de Villiers Using formal validation techniques to develop a Microkernel
JPH08221271A (ja) パイプラインプロセッサ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees