JPH05334465A - 演算器・記憶装置・データ転送装置必要数計数装置 - Google Patents

演算器・記憶装置・データ転送装置必要数計数装置

Info

Publication number
JPH05334465A
JPH05334465A JP4141225A JP14122592A JPH05334465A JP H05334465 A JPH05334465 A JP H05334465A JP 4141225 A JP4141225 A JP 4141225A JP 14122592 A JP14122592 A JP 14122592A JP H05334465 A JPH05334465 A JP H05334465A
Authority
JP
Japan
Prior art keywords
condition code
execution condition
flow graph
data flow
control data
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
JP4141225A
Other languages
English (en)
Inventor
Kazutoshi Wakabayashi
一敏 若林
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP4141225A priority Critical patent/JPH05334465A/ja
Publication of JPH05334465A publication Critical patent/JPH05334465A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 自動機能合成や自動並列化コンパイラで、演
算を並列化した際に必要な演算器の数を計数する。 【構成】 制御データフローグラフ1を制御データフロ
ーグラフ読み込み装置2で読み込み、グラフ内の演算の
実行条件を表すビット列を各演算に実行条件符号生成装
置3で付与し、各演算の実行条件符号を解析してそれら
の演算を実現するために必要な演算器数の下限値を必要
演算器数計数装置4で出力する。 【効果】 自動機能合成や自動並列化コンパイラにおい
て必要な演算器数が即座に求まるため、ある演算器数の
制約化で並列化する場合の効率を高めることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、回路の動作の制御およ
びデータの流れを表す制御データフローグラフの演算を
並列に実行する場合に必要な演算器,記憶要素(レジス
タ等),データ転送装置の数を計数する装置に関する。
【0002】
【従来の技術】条件分岐を含む回路の制御およびデータ
の流れを表わす制御データフローグラフからその演算の
実行順序を決定しその実行ステップを決定するスケジュ
ーリングを行なうためには、各ステップで必要な演算器
数を算出する必要がある。
【0003】制御データフローフラグの演算が並列化さ
れた結果、1ステップで並列に実行される演算を行なう
のに必要な演算器数は、単純に各ステップに割り当てら
れた演算ノードの数に等しい。しかしながら条件分岐が
ある場合、すべての演算は同時に実行されるとは限ら
ず、実行条件が排他な場合は一つの演算器を共用できる
ため、必要な演算器数は割り付けられたノード数以下に
なる。
【0004】従来、複数の演算間の排他性が判明して
も、最終的に必要な演算の数を簡便に算出する方法は提
案されていない。例えば、A,B,C,D,Eの5つの
演算の間の排他条件が図9のような時に必要な演算器数
は2であるが、これは例えば(A,B)(C,D,E)
の2つのグループ内の演算が互いに実行条件が排他なた
めそれぞれのグループ内の演算が1つの演算器を共用で
きるからである。
【0005】このような仕様条件に排他性を持つ演算を
最小のグループに分割するのはグラフのクリーク分割問
題に帰着され、NP完全な計算量が必要とされる。した
がってグラフ化して必要最小限の演算器数を求めるのは
困難である。
【0006】
【発明が解決しようとする課題】上記のような方法で
は、演算の数が増えると必要最小限の演算器数を求める
のに多大な時間を必要としてしまう問題点があった。
【0007】本発明の目的は、このような問題点を除去
して、実行条件が排他な関係を持つ複数の演算を一度に
実行するために必要最小限な演算器の数を演算数に比例
するという少ない計算量で求めることが可能な演算器・
記憶装置・データ転送装置必要数計数装置を提供するこ
とである。
【0008】さらに、その制御データフローグラフが陽
に示しておらずデータ依存関係を解析しないと判明しな
いような演算間の排他性は排他としないため、必要な演
算器数が多く算定されてしまうという問題があった。
【0009】本発明の第二の目的は、このような制御デ
ータフローグラフに陽に示されていない演算間の排他性
を考慮して必要な演算器数を、演算数に比例するという
少ない計算量で求めることが可能な演算器・記憶装置・
データ転送装置必要数計数装置を提供することである。
【0010】また、従来のスケジューリングや並列化コ
ンパイラでは、分岐内演算が条件分岐の分岐演算よりも
先に実行されるようなスケジューリングを想定していな
かった。このような場合には演算の排他性が条件分岐演
算が実行済みかどうかで動的に変化するが、そのような
動的な排他性を考慮にいれて必要演算器数を求めること
ができないという問題点があった。
【0011】本発明の第三の目的は、このような動的な
演算間の排他性を利用して必要演算器数を求めることが
可能な演算器・記憶装置・データ転送装置必要数計数装
置を提供することである。
【0012】
【課題を解決するための手段】本発明の演算器・記憶装
置・データ転送装置必要数計数装置は、回路の動作の制
御およびデータの流れを表す制御データフローグラフを
入力とし前記制御データフローグラフの演算を実行する
のに必要な演算器数を計数する装置であって、制御デー
タフローグラフ読み込み装置と、その読み込まれた制御
データフローグラフを入力とする実行条件符号生成装置
と、前記実行条件符号生成装置の出力を入力とし必要な
演算器数を出力する必要演算器数計数装置とを有する。
【0013】また、本発明の演算器・記憶装置・データ
転送装置必要数計数装置は、制御データフローグラフに
陽に示されていない演算間の排他性をデータ依存関係か
ら導きだし、その演算間の排他性を示す演算実行条件符
号を生成するデータ依存実行条件符号生成装置を含む。
【0014】さらに、本発明の演算器・記憶装置・デー
タ転送装置必要数計数装置は、演算の動作ステップを入
力し、条件分岐の分岐を決定する条件判定演算が終了し
た場合としない場合で動的に変化する分岐内演算の排他
性を示す演算実行条件符号を生成する動的実行条件符号
生成装置を含む。
【0015】
【作用】本発明の演算器・記憶装置・データ転送装置必
要数計数装置は、制御データフローグラフを制御データ
フローグラフ読み込み装置によって読み込み、そのグラ
フの条件分岐内の各演算に対し、演算実行条件符号生成
装置によって後にのべる演算実行条件符号を付与し、必
要演算器数計数装置はある演算器で実行されるすべての
演算の演算実行条件符号を用いてその演算器の必要数を
計算し出力する。
【0016】また、本発明の演算器・記憶装置・データ
転送装置必要数計数装置は、制御データフローグラフを
制御データフローグラフ読み込み装置によって読み込
み、そのグラフの条件分岐内の各演算に対し、演算実行
条件符号生成装置によってデータ依存関係に基づき制御
データフローグラフに陽に示されていない演算の実行条
件を導き、それを示すような演算実行条件符号を付与
し、必要演算器数計数装置はある演算器で実行されるす
べての演算の演算実行条件符号を用いてその演算器の必
要数を計数し出力する。
【0017】さらに、本発明の演算器・記憶装置・デー
タ転送装置必要数計数装置は、制御データフローグラフ
を制御データフローグラフ読み込み装置によって読み込
み、そのグラフの条件分岐内の各演算に対し、演算実行
条件符号生成装置によって条件分岐演算が実行済みか否
かによって動的に変化する演算間の排他性を示すような
演算実行条件符号を付与し、必要演算器数計数装置はあ
る演算器で実行されるすべての演算の演算実行条件符号
を用いてその演算器の必要数を計数し出力する。
【0018】
【実施例】図1は本発明の第一の実施例を示す説明図で
ある。同図において本発明の演算器・記憶装置・データ
転送装置必要数計数装置は、制御データフローグラフ1
を読み込む制御データフローグラフ読み込み装置2と、
グラフ内の演算の実行条件を表すビット列を各演算に付
与する実行条件符号生成装置3と、各演算の実行条件符
号を解析してそれらの演算を実現するために必要な演算
器数を決定する必要演算器数計数装置4とを有する。
【0019】最初に制御データフローグラフ1を制御デ
ータフローグラフ読み込み装置2によってよみこむ。デ
ータフローグラフの演算ノード及び記憶要素ノード(以
後「レジスタノード」と呼ぶ),データの転送を示すノ
ード(以後「転送ノード」)それぞれに、実行条件演算
符号生成装置3によってそれぞれの演算の実行条件符号
(以後「条件符号」とよぶ)を付与する。(以後、演算
ノードとレジスタノード,転送ノードはその排他性解析
に関しては同様に扱えるので一般に演算とレジスタ、転
送のこと単に演算と記し、演算ノードでレジスタノード
や転送ノードを代表する。) 条件符号は以下の様な性質を持った符号であり、制御デ
ータフローグラフの演算ノード,レジスタノード,転送
ノードの実行条件を示す。
【0020】図4は動作記述および条件符号の例を示す
説明図、図5は図4の分岐構造を示す説明図である。条
件符号は、条件分岐の葉となる条件(分岐構造を見た時
の葉に相当する条件)の数だけの長さの符号で葉条件が
一つだけ‘1’を持つように定義する。図4の動作記述
の分岐構造は図5のようであり、分岐の葉は3つある。
よって、条件符号は3ビットとなる。図では上の方から
順に左から1を立てているが、順番は任意である。
【0021】図5に示すように葉条件以外はその子ども
の条件の符号の論理和(符号をベクタと考えた時の論理
和)で与えられる。図4の(あ)に(1)から(6)の
それぞれの演算に対応する条件符号を示す。
【0022】実行条件符号生成装置3はこのように決め
られた条件符号を制御データフローグラフ上のノードに
付与する。定義からある二つの条件符号が互いに同一場
所に‘1’成分を持たない時互いに排他的である。その
場合、その二つの条件符号をもったノードは同一の演算
器(またはレジスタ等)を共用できる。
【0023】図2は本発明の第二の実施例を示す説明図
である。同図において本発明の演算器・記憶装置・デー
タ転送装置必要数計数装置は、データ依存実行条件符号
生成装置3aを含む。すなわち、生成する条件符号がデ
ータ依存関係に基づく相互排他性を示す。
【0024】ある演算結果がその後ろにつづく条件分岐
のすべての葉条件で利用されず、かつそれ以降でも利用
されない時、その演算結果を計算する演算とその結果を
利用しない条件で実行される演算は排他的である。例え
ば図4の(1)のxの値は(6)の葉条件では利用され
ない。よって(6)が実行される条件が成立する時はx
の値は計算する必要がない。したがって(1)と(6)
が実行されるのは排他的である。
【0025】このようなデータ依存の実行条件符号は制
御データフローグラフの分岐終了ノードの直前の演算ノ
ードに第一の実施例で説明した条件符号を与え、それ以
外のノードは自分の直後ノード(直後にあるノード)の
条件符号の論理和で条件符号を得る。例えば演算2と演
算5は分岐終了ノードの直前ノードであり〔100〕と
〔001〕という条件符号をつける。演算1の直後ノー
ドは演算2と5であるから演算1の条件符号は〔10
1〕となる。この時、図4の(1)(図6の演算1)と
図4の(6)(図6の演算4)の条件符号は〔101〕
と〔010〕となり、これは上述したデータ依存関係に
もとづく相互排他性を示している。図4の(い)にも上
記の条件符号を示す。なお、図6は図4についてデータ
依存関係を示す説明図である。
【0026】図3は本発明の第三の実施例を示す説明図
である。同図において本発明の演算器・記憶装置・デー
タ転送装置必要数計数装置は、動的実行条件符号生成装
置3bを含む。すなわち生成する条件符号が動的な相互
排他性を示す。
【0027】動的な相互排他性は条件分岐の分岐テスト
が実行済みか否かで動的に変化する相互排他性のことで
ある。例えば、図6の制御データフローグラフの演算の
動作ステップが図7のように決定していたとする。する
と演算4,演算5を実行する時には、条件演算7の実行
が終了していない。よって、演算4と演算5のどちらを
実行したらいいのか動作ステップS2では決定できない
から両方の演算を実行しなければならず、この二つの演
算は相互に排他ではなく、演算器を共用できない。この
ように条件演算がある演算の実行より前に終了している
かどうかで演算間の排他性は動的に変化する。
【0028】このような動的な実行条件符号は、実行の
終了していない条件演算の条件符号と条件符号をもとめ
たい演算の条件符号の論理和をとることによって得られ
る。ただし、ここで分岐条件演算は対象となる演算の実
行を制御する分岐テスト演算に限る。即ち条件演算を求
めたい演算の条件符号と条件演算の条件符号が同じ位置
に‘1’をもたなければお互い無関係であり、このよう
な条件演算とは論理和をとらない。
【0029】図7に上記の動作ステップが与えらえた時
の条件符号を示す。また、図4の(う)(え)に条件演
算(2)と(5)がそれぞれ未実行な場合、実行した場
合の条件符号を示す。
【0030】次に、上記のようにして付与された条件符
号を必要演算器数計数装置4に入力し、ある演算器で実
現されるすべての演算の条件符号のベクトル和をとり、
その和ベクトルの最大成分を必要演算器数とする。なぜ
ならば、条件符号の和ベクトルの各成分は条件符号の各
ビットの成立条件でその演算を実行するのに必要な演算
器数を表すので、その中で最大の成分が必要な演算器数
を示すからである。
【0031】図8は上記の演算器・記憶装置・データ転
送装置必要数計数装置の動作例を示す説明図である。同
図において各演算の条件符号は各演算の下のベクタで示
す。この時、加算器に対応する演算(加算演算)の条件
符号のベクトル和はS+に示すとおり〔3,2,1〕と
なる。よって、加算器の必要数は3とわかる。同様に減
算器はS−に示すとおり、〔0,1,1〕となり減算器
の必要数は1となる。
【0032】次に、加算,減算を算術論理演算回路(A
LU)で実行する場合を考える。算術論理演算回路AL
Uに対応するベクトル和は、加算,減算の条件符号の総
和であるから〔3,3,2〕となる。よって、算術論理
演算回路は3つ必要である。加算器・減算器別々では合
計4つの演算器が必要であったが、算術論理演算回路を
利用すると演算器が3つで済んでいる。
【0033】このように、本発明は算術論理演算回路等
の多関数演算回路の必要数も計数することができる。例
えば、図9の場合にA,B,C,D,Eの条件符号が図
示したようであると、これらの条件符号のベクタ和は
〔2,2,2〕となり、演算器の必要数はベクタ和の最
大成分2であることが即座にわかる。
【0034】
【発明の効果】本発明によれば、コンパイラや自動機能
設計の時、制御データフローグラフの構造を解析するこ
となく演算ノードや記憶要素ノードが同一の演算器やレ
ジスタを共用できるかどうかを判定し、それぞれの演算
器の必要最低限の数を得る装置を提供することが可能で
ある。
【0035】さらに、明示的に示された演算間の相互排
他性より広い相互排他性を求めることができるため、よ
り多くの演算が同一の演算器を共有することができる。
したがって、コンパイラが出力する機械語や自動機能設
計が合成する合成回路の品質(速度,面積,記憶容量)
を向上可能であるが、このような場合にも必要演算器数
を得ることができる。
【0036】また、動的な相互排他性が求められるの
で、コンパイラや自動機能設計に用いた際条件分岐内の
演算を条件分岐のテストを行なう演算より先に実行する
ような場合にも同一演算を共用可能かどうか判定でき
る。したがってコンパイラや自動機能設計システムの機
能を改善できるとともに、このような動的に演算間の排
他性が変化する場合にも必要演算器数を得ることができ
る。
【図面の簡単な説明】
【図1】本発明の第一の実施例を示す説明図。
【図2】第二の実施例を示す説明図。
【図3】第三の実施例を示す説明図。
【図4】動作記述および条件符号の例を示す説明図。
【図5】図4の分岐構造を示す説明図。
【図6】図4についてデータ依存関係を示す説明図。
【図7】図4について動的実行条件を示す説明図。
【図8】本発明の動作例を示す説明図。
【図9】実行条件の例を示す説明図。
【符号の説明】
1 制御データフローグラフ 2 制御データフローグラフ読み込み装置 3 実行条件符号生成装置 4 必要演算器数計数装置

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 回路の動作の制御およびデータの流れを
    表す制御データフローグラフを入力とし前記制御データ
    フローグラフの演算を実行するのに必要な演算器数を計
    数する装置であって、制御データフローグラフ読み込み
    装置と、その読み込まれた制御データフローグラフを入
    力とする実行条件符号生成装置と、前記実行条件符号生
    成装置の出力を入力とし必要な演算器数を出力する必要
    演算器数計数装置とを有することを特徴とする演算器・
    記憶装置・データ転送装置必要数計数装置。
  2. 【請求項2】 制御データフローグラフに陽に示されて
    いない演算間の排他性をデータ依存関係から導きだし、
    その演算間の排他性を示す演算実行条件符号を生成する
    データ依存実行条件符号生成装置を含むことを特徴とす
    る請求項1記載の演算器・記憶装置・データ転送装置必
    要数計数装置。
  3. 【請求項3】 演算の動作ステップを入力し、条件分岐
    の分岐を決定する条件判定演算が終了した場合としない
    場合で動的に変化する分岐内演算の排他性を示す演算実
    行条件符号を生成する動的実行条件符号生成装置を含む
    ことを特徴とする請求項1または2記載の演算器・記憶
    装置・データ転送装置必要数計数装置。
JP4141225A 1992-06-02 1992-06-02 演算器・記憶装置・データ転送装置必要数計数装置 Pending JPH05334465A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4141225A JPH05334465A (ja) 1992-06-02 1992-06-02 演算器・記憶装置・データ転送装置必要数計数装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4141225A JPH05334465A (ja) 1992-06-02 1992-06-02 演算器・記憶装置・データ転送装置必要数計数装置

Publications (1)

Publication Number Publication Date
JPH05334465A true JPH05334465A (ja) 1993-12-17

Family

ID=15287033

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4141225A Pending JPH05334465A (ja) 1992-06-02 1992-06-02 演算器・記憶装置・データ転送装置必要数計数装置

Country Status (1)

Country Link
JP (1) JPH05334465A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324680B1 (en) * 1999-08-30 2001-11-27 International Business Machines Corporation Synthesis of arrays and records
JP2009211614A (ja) * 2008-03-06 2009-09-17 Nec Corp 動作合成装置、動作合成方法、および、プログラム
JP2009217778A (ja) * 2008-03-13 2009-09-24 Nec Corp 動作合成装置、動作合成方法、および、プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324680B1 (en) * 1999-08-30 2001-11-27 International Business Machines Corporation Synthesis of arrays and records
JP2009211614A (ja) * 2008-03-06 2009-09-17 Nec Corp 動作合成装置、動作合成方法、および、プログラム
JP2009217778A (ja) * 2008-03-13 2009-09-24 Nec Corp 動作合成装置、動作合成方法、および、プログラム

Similar Documents

Publication Publication Date Title
US11106437B2 (en) Lookup table optimization for programming languages that target synchronous digital circuits
US6934938B2 (en) Method of programming linear graphs for streaming vector computation
Srivastava et al. Accelerating face detection on programmable SoC using C-based synthesis
JP2021517301A (ja) 確率的丸めロジック
Maiti et al. Scheduling precedence-constrained jobs on related machines with communication delay
CN110704193B (zh) 一种适合向量处理的多核软件架构的实现方法及装置
Amellal et al. Scheduling of a control data flow graph
Nielsen et al. Design of a delay-insensitive multiply-accumulate unit
JPH05334465A (ja) 演算器・記憶装置・データ転送装置必要数計数装置
Khan et al. Accelerating SpMV multiplication in probabilistic model checkers using GPUs
JP2014035548A (ja) 並列化方法、システム、及びプログラム
Xiao et al. An optimal algorithm for enumerating connected convex subgraphs in acyclic digraphs
Bruce et al. Parallel fuzzy qualitative reasoning
EP3764249A1 (en) A streaming compiler for automatic adjoint differentiation
Fehling Algorithms for massively parallel generic hp-adaptive finite element methods
JPH05334391A (ja) 制御回路生成装置
Emelyanov et al. Factorization of Boolean polynomials: Parallel algorithms and experimental evaluation
US5257394A (en) Logical expression processing pipeline using pushdown stacks for a vector computer
JPH05334466A (ja) 演算器・記憶装置・データ転送装置共有可能性判定装置
Hannig et al. Dynamic piecewise linear/regular algorithms
JP2004334297A (ja) 並列演算処理装置及び並列演算処理方法
Ma et al. Buffer minimization for rate-optimal scheduling of synchronous dataflow graphs on multicore systems
Froemmer et al. Flexible data flow architecture for embedded hardware accelerators
JP3017300B2 (ja) ファジー推論装置
JPH0313624B2 (ja)

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000118