JPH06250837A - スケジューリング処理方式 - Google Patents

スケジューリング処理方式

Info

Publication number
JPH06250837A
JPH06250837A JP5061062A JP6106293A JPH06250837A JP H06250837 A JPH06250837 A JP H06250837A JP 5061062 A JP5061062 A JP 5061062A JP 6106293 A JP6106293 A JP 6106293A JP H06250837 A JPH06250837 A JP H06250837A
Authority
JP
Japan
Prior art keywords
scheduling
operator
extracting
block
parallelism
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
JP5061062A
Other languages
English (en)
Inventor
Takanori Yano
隆則 矢野
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP5061062A priority Critical patent/JPH06250837A/ja
Publication of JPH06250837A publication Critical patent/JPH06250837A/ja
Priority to US08/571,277 priority patent/US5557797A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

(57)【要約】 【目的】 並列に処理できる部分を抽出し、合成装置で
合成された回路の高速処理を可能とする。 【構成】 レジスタファイル1と、演算器群4a〜4c
と、相互接続ネットワーク部3と、制御ユニット部9
と、メモリ部2とから構成される。制御ユニット部9
は、データパス上のハードウェア資源をスケジューリン
グで決まった順序で動作させるために制御信号を発生
し、制御ステップでの処理状態を決める部分と、制御信
号でデータバス部に供給するデコーダと信号線とから成
る。入力されたプログラムが正しく動作するように、制
御構造に起因する動作の依存関係を越えた演算処理のク
リティカルパスの抽出と並列性を抽出する機能を有す
る。

Description

【発明の詳細な説明】
【0001】
【技術分野】本発明は、スケジューリング処理方式に関
し、より詳細には、LSI(LargeScale Integration:
大規模集積回路)自動合成装置内の処理方式あるいはア
ーキテクチャー(Architecture:回路構成)を有する計
算機上で動作されるプログラムを自動生成する時のスケ
ジューリング処理方式に関する。後者の例としては、マ
イクロプログラミングやO.S(Operating System)の
スケジューリングがある。なお、コンピュータアーキテ
クチャーは、機械語命令や通信方式など、コンピュータ
を構成する仕様の部分及びこれに依存するソフトウェア
を示すものである。
【0002】
【従来技術】一般に、LSIの機能合成は、次のような
手順によって処理される。すなわち、入力プログラム
(ソフトウェアアルゴリズム)を解析して、コントロー
ルフローおよびデータフロー関係を抽出する。データフ
ローは、処理対象であるデータがどのような順序で処理
されるかを示したもので、図48に示すような関係で与
えられる。このような有向グラフのことを、データフロ
ーグラフと言う。矢印は依存関係を示し、大文字英字は
データ,丸印は演算(オペレータ)である。丸印に付け
られた小文字英字はオペレータの識別記号である。同じ
識別記号をもつオペレータは、同じオペレータを指して
いる。入力プログラムの分析においては、図48に示す
ようなプログラム処理オペレーション間の依存関係を満
たすように抽出される。
【0003】スケジューリングにおいては、図48に示
されるようなデータフロー関係を分析し、プログラム処
理オペレーション間の依存関係を満たすようにスケジュ
ーリングする。例えば、図49のようなスケジューリン
グ結果が得られ、各演算やデータ転送の動作(制御)順
位が決まる。図中の数字はステップ番号に相当し、同じ
高さにあるオペレータは、同時に処理されるようにスケ
ジューリングされたことを表している。スケジューリン
グによって、各演算やデータ転送等がどの制御ステップ
で処理されるかが決まる。すなわち、動作記述の各演算
やデータ転送を、具体的にどの制御ステップで実行する
かを決定する。
【0004】ところで、このスケジューリング結果は、
図49に示すような有向グラフを用いて説明される。有
向グラフのノードはオペレータを表現し、ノード中の記
号は処理の種類を表している。矢印はオペレータ間の依
存関係を表している。図49の例では、オペレータaの
処理の後、オペレータb,cが実行され、オペレータb,
cの実行の後、オペレータdが実行されることを表して
いる。ここでは、オペレータの依存関係は、予め処理デ
ータの流れ等の規定によって決められている。スケジュ
ーリング処理は、有向グラフで与えられた依存関係の条
件を満たす範囲で、各オペレータの実行順位を決定する
ことである。
【0005】スケジューリング処理とは、依存関係(前
後関係)を満たすようにオペレータを処理ステップへ配
置する。この時、各処理ステップに配置されるオペレー
タの数が、なるべく少ないようにスケジューリングする
と、必要な演算器数を少なくすることができる。必要な
演算器数は、各処理ステップのノード(オペレータ+,
−)の数で決まる。図49の例では、処理ステップ1で
1個、処理ステップ2で2個、処理ステップ3で1個
が、各々必要であるということから、演算器は最大個数
である2個必要ということになる。
【0006】図49のようなスケジューリング結果を基
に、図50に示すようなデータパスの構成要素の種類と
数(構成)が決められ、処理の割り当て、すなわち演算
器とレジスタとメモリなどをアロケート(allocate:割
付け)し、図49のスケジューリング結果は、図50の
ようにアロケーション(allocation)される。
【0007】そして、アロケートされた結果としては、
必要な面積が小さく、動作速度が速い回路を合成するこ
とが望ましく、そのためには、全体で必要となる処理ス
テップ総数を少なくするとともに、各処理ステップにお
いて、同時に必要となる処理の数(演算器数)を最小に
するようにスケジューリングしなければならない。
【0008】条件分岐を含むプログラムの並列性抽出の
従来方式は、基本ブロック毎に独立に並列性を抽出する
ものである。例えば、IF A THEN B ELSE C という条
件付き分岐文について考えた時、基本ブロック単位にB
のブロックのオペレータの処理とCのブロックのオペレ
ータの処理は、別々に独立に処理されるようになってい
た。また、条件分岐(IF文あるいはCASE文等の分岐文)
が存在する時にも、この分岐部分の処理のように、オペ
レータが所属しているブロックにかかわらず、並列性を
抽出するという本発明で実現しているスケジューリング
処理方式は、実現が困難とされていた。
【0009】従来型のスケジューリング処理方式は、 プログラムの書かれたブロック構造を忠実に再現
し、分岐の先頭で分岐のテストを行い、その結果に基づ
いて分岐の実行をする回路を合成する。その合成は、基
本ブロック単位に独立に合成され、分岐処理の結果によ
り制御される。例えば、IF A THEN B ELSE C という
条件付き分岐文について考えた時、基本ブロック単位
に、Bのブロックの処理とCとブロックの処理の別々が
独立にスケジューリングされていた。 全ての分岐先の動作を実行し、分岐の結果に従って
正しい結果のみ使用するように制御する。分岐部分で互
いに独立で動作するので、分岐部分の資源は互いにブロ
ック毎に共有化する。
【0010】次に、並列性抽出方式の実現課題について
説明する。アーキテクチャーを有する計算機上で、入力
されたプログラムをスケジューリングする時の実現課題
としては、処理の高速性と資源の有効利用のためにオペ
レーションの並列性の抽出方式が課題となる。並列性の
抽出とは、あるオペレーションが他のどのオペレーショ
ンと同時に処理され得るかを抽出する処理のことであ
る。すなわち、多数の(オペレータを処理する)演算器
をどのように平行して利用するかを決めることである。
対象となるオペレーションの並列性の抽出の際には、以
下の条件を満たす並列実行可能なオペレーションを抽出
する方式の実現方法が課題となる。
【0011】 並列実行可能なオペレーションは、オ
ペレーション間で演算器及びデータ経路の共有がない。 並列実行可能なオペレーションは、互いにどのオペ
レーションも他のオペレーションの結果を必要としな
い。条件分岐を含むプログラムの並列性抽出の従来方式
の問題点は、本発明の基本ブロック間を越えて並列度を
得るスケジューリング処理方式と比較して、並列度は充
分に得られない欠点を持つことである。その理由は、本
発明のスケジューリング処理方式の方が、元々異なるブ
ロックにあるオペレータが互いに同時に動作することが
可能となり、その分広い範囲で並列に処理することが可
能となるためである。
【0012】実現困難であった理由としては、以下の
,の点があげられる。 ブロック間のオペレータ同士は互いに依存関係が存
在しない。例えば、図51の分岐モデルの例で、分岐部
分では分岐先同士であるB1とB2のオペレータ間に
は、どちらが先に処理されるべきかという依存関係が存
在しない。そのために、並列性を抽出する際に、依存関
係の明確な範囲で並列性を抽出する従来方式をそのまま
単純に適用することができない。条件分岐を越えて並列
性を抽出することは、実現困難であるとされていた。 ブロック間での並列性の抽出は、さまざまな並列に
処理される場合に対応する必要があるため、実現が困難
であった。分岐がある部分でのオペレータの並列性を、
抽出は分岐先がどこであろうと矛盾しないという条件下
で進める必要がある。ブロック間で分岐していないブロ
ック(図51の例ではAとかCのブロック)にあるオペ
レータが分岐先のブロック(図51の例ではB1,B2
…のブロック)と並列に動作する場合は、全ての分岐先
部分で並列に処理されるようにしなければならない。
【0013】次に、スケジューリング処理方式の実現課
題について説明する。高速かつ小面積の回路を自動合成
する装置の課題,少ない数の演算器をもつ回路を合成す
る手段(小面積であるチップを合成するためには、演算
器をできるだけ共有利用し、演算器の数を少なくするよ
うに合成する必要がある)の課題,アロケーションされ
た結果が、必要となる面積を小さくし、動作スピードが
速くなるようにスケジューリングしておくこと等の課題
がある。
【0014】アロケーションの時、必要となる演算器の
数は、各制御ステップの中で必要とされるその演算の合
計の最大値である。従って、あるブロックで少ない演算
数で済ませられても、あるステップで多くの演算数が必
要であると、演算器の数は多い方の演算数の数だけ必要
になる。そこで、全体の所要スピードを速くする(ステ
ップ数を小さくする)ことだけでなく、各ステップで同
時に必要な処理の数を少なくすることが課題となってい
る。また、作業計画においても、ある作業とある作業の
依存関係が作業対象の流れで決まり、その依存関係の条
件を満たす範囲内で、高速かつ同時に必要な作業者(あ
るいは作業機械)が少なく済ませられるようにスケジュ
ーリングすることが課題である。
【0015】プログラムの分岐部分(IFあるいはCASE文
等の分岐文)のスケジューリングの問題点を以下に説明
する。まず、従来型のスケジューリング処理方式の欠
点について説明する。基本ブロック毎に独立であるので
(分岐テストが行われる前に分岐内演算の先行実行をし
ておくスケジューリングができず)、大局的な演算処理
の並列化が行われない。ブロック毎に資源が多く必要な
ところと、そうでないところとのアンバランスが発生
し、ある基本ブロックで必要だった資源が、他のブロッ
クでは使われない場合が多く起こり得て、必ずしも面積
が効率的でないことになる。
【0016】次に、従来型のスケジューリング処理方式
の欠点について説明する。分岐先の処理が全て行われ
るので、不必要な処理をするための余分な処理ステップ
が必要となる。また、余分な演算器が必要になる。ある
ブロックで少ない演算数で済ませられても、あるブロッ
クで多くの演算数が必要であると、演算器は多い方の演
算数の数だけ必要になる。特に、あるブロック内のオペ
レータは、そのブロック内でのみ処理されるものとして
スケジューリングしているために、演算数を多く必要と
してしまうようなブロック部分の処理の負荷を軽減する
という処理が施されていないことが問題である。
【0017】図54は、従来のスケジューリング方式を
用いたスケジューリング結果の例を示す図で、ローカル
ベースのスケジューリング結果の例を示す図である。す
なわち、IF A THEN B1 ELSE B2;C;のプログラ
ムのデータフローグラフである。図において、必要な演
算器数は5(処理ステップB21の部分)である。ま
た、各ブロックA,B1,B2,C毎に独立に(別々
に)スケジュールしていた。演算器数を減らすことによ
り、高速処理を実現することが課題となっている。
【0018】
【目的】本発明は、上述のごとき実情に鑑みてなされた
もので、計算機における処理の中で最も時間のかかる部
分が抽出でき、処理速度を見積ることを可能にするこ
と、また、並列に処理できる部分をプログラムの構造に
かかわらずに抽出すること、さらに、合成装置で合成さ
れた回路の高速処理が可能となるようにしたスケジュー
リング処理方式を提供することを目的としてなされたも
のである。
【0019】
【構成】本発明は、上記目的を達成するために、(1)
アーキテクチャーを有する計算機上で、動作させるプロ
グラムを自動生成する時のスケジューリング処理方式に
おいて、入力されたプログラムが正しく動作するよう
に、制御構造に起因する動作の依存関係を越えた演算処
理のクリティカルパスを抽出する抽出手段を有するこ
と、或いは、(2)アーキテクチャーを有する計算機上
で、動作させるプログラムを自動生成する時のスケジュ
ーリング処理方式において、入力されたプログラムが正
しく動作するように、制御構造に起因する動作の依存関
係を越えた演算処理の並列性を抽出する抽出手段を有す
ること、或いは、(3)アーキテクチャーを有する回路
の自動合成装置のスケジューリング処理方式において、
合成された回路が入力されたプログラムの動作要求に基
づいて正しく動作するように、制御構造に起因する動作
の依存関係を越えた演算処理のクリティカルパスを抽出
する抽出手段を有し、該抽出手段を用いて、クリティカ
ルパスのステップからなる処理のスケジューリングをす
ること、或いは、(4)アーキテクチャーを有する回路
の自動合成装置のスケジューリング処理方式において、
合成された回路が入力されたプログラムの動作要求に基
づいて正しく動作するように、制御構造に起因する動作
の依存関係を越えた演算処理の並列性を抽出する抽出手
段を有し、該抽出手段を用いて、制御構造に起因する動
作の依存関係を越えたスケジューリングをすること、更
には、(5)前記(4)において、前記並列性を抽出す
る抽出手段を用いて、ある制御ステップで実行される可
能性を持つスケジューリング対象の総数と、あるスケジ
ューリング対象が配置され得る制御ステップの総数の両
方を調べながらスケジューリングすること、更には、
(6)前記(4)において、前記並列性を抽出する抽出
手段を用いて、制御構造に起因する動作の依存関係を越
えた全ての可能なスケジューリング結果を抽出するこ
と、更には、(7)前記(4)において、前記並列性を
抽出する抽出手段と、複数のスケジューリング結果を表
示する表示手段と、手動で結果を選択する選択手段とを
有すること、更には、(8)前記(4)において、前記
並列性を抽出する抽出手段を有し、スケジューリング対
象の種類別にスケジューリングすることを特徴としたも
のである。以下、本発明の実施例に基づいて説明する。
【0020】図1は、本発明によるスケジューリング処
理方式の一実施例を説明するための構成図で、合成され
る回路のアーキテクチャー例を示す図である。図中、1
はレジスタファイル、2はメモリ部、3は相互接続ネッ
トワーク部、4a〜4cは演算器、5はマイクロインス
トラクションレジスタ(μIR)、6はマイクロインス
トラクションメモリ(μIM)、7はマイクロプログラ
ムカウンタ(μPC)、8は加算器、9は制御ユニット
部である。
【0021】本発明は、図1で示すようなアーキテクチ
ャーを持つ計算機上で、動作させるプログラムを自動生
成する時のスケジューリング処理に関する方式及びこの
アーキテクチャーを持つ回路の自動合成方式に関してい
る。図1は、VLIW(VeryLong Instruction Words)
型のアーキテクチャーを持つ計算機の回路のブロックダ
イヤグラムである。VLIWは、多数の演算ユニットを
独立に制御できる機構のアーキテクチャーを総称したも
のであり、レジスタファイル1と演算器群4a〜4c及
び相互接続ネットワーク部3,制御ユニット部9,メモ
リ部2から構成される。以上の構成によれば、毎サイク
ル一つの命令(長命令語)を取り出す制御機構を有し、
命令カウンタは一つで、制御機構は一つである。また、
一つの命令は複数のオペレーションからなる。さらに、
データパスと演算器はオペレーション処理に充分な数持
っていて、各オペレーションはコンパイル時に予測可能
な(少ない)サイクル数で実行可能である。
【0022】制御系は、データパス上のハードウェア資
源をスケジューリングで決まった順序で動作させるため
に必要な制御信号を発生する部分である。各制御ステッ
プでの処理状態を決める部分と、制御信号をデータパス
部に供給するデコーダと、信号線から構成される。制御
方式は、マイクロプログラムコードによるものと布線論
理によるものが考えられる。マイクロプログラムコード
による方式(Horizontal Parallel Microsequence Cont
roller)の例を示している(図1の中の制御ユニット部
に示されている)。
【0023】次に、回路自動合成の一般的な実現方式に
ついて説明する。合成処理の全体の流れを図47に示
す。以下のような処理からなる。step1 :入力プログラム(処理手順)の解析を行う。 字句・構文解析を行い、プログラムの演算処理間の処理
の依存関係を抽出する(図48)。step2 :スケジューリングを行う(図49)。 演算処理間の依存関係を満たすように、動作記述の各演
算やデータ転送の動作の実行順位を決める。step3,4 :(データパス)アロケーションする(図5
0)。 データパス構成要素の種類と数を決め、処理の割当てを
行う。 演算器のアロケーション レジスタやメモリ等の記憶要素のアロケーション バスやマルチプレクサ等の結線要素のアロケーショ
step5 :制御回路の合成を行う。step6,7 :出力変換し、論理合成以下の合成処理を行う。 スケジューリング処理と合成回路の関係の説明について
は、図49のようにスケジューリングされた結果が図5
0のようにアロケーションされる。
【0024】次に、ブロックと基本ブロックについて説
明する。このことを、典型的な分岐モデル図51を用い
て説明する。分岐前の処理部A,分岐先の処理部B1,
B2…,分岐後の処理部Cより構成されるものとしてい
る。各々の処理部は、分岐を最後の文でしか含まない基
本ブロックとなっている。基本ブロックとは、ブロック
(処理列)の途中で処理の出入りがなく、上から入り下
から出るブロックをいう。
【0025】次に、コピーについて説明する。一度に一
方だけが実行される分岐部分の並列性の抽出では、他の
ブロックで実行されていたオペレータは、分岐先の両方
で実行されるようになっていないと、実行時の分岐条件
によって、そのブロックが実行される時は実行される
が、そうでない時は実行されないことになるため、オペ
レータは両者で実行されるようにしておく必要がある。
そのように、複数の所で実行されるようにしておく必要
があることを、コピーを伴う場合と呼ぶ。
【0026】次に、図52に示すプログラムと、図53
に示すデータフローグラフについて説明する。図53の
例では、ブロックB1とB2は、一度に一方だけが実行
されるようになっている。ブロックCで実行されるよう
になっているオペレータ14は、ブロックB1のクリテ
ィカルパス上のオペレータともブロックB2のクリティ
カルパス上のオペレータとも同時に実行可能であるが、
例えば、その片方だけのブロックでのみ実行されるとし
た時は、オペレータ14は、条件分岐によってそのブロ
ックが実行されない時は、実行されないことになる。そ
こで、並列性の抽出では、オペレータ14はB1,B2
両方のオペレータとのコピーを伴った並列処理可能性が
抽出されなくてはならない。
【0027】次に、条件分岐間並列性抽出方式(請求項
1,2)について説明する。本発明のスケジューリング
処理方式は、図1で示すようなアーキテクチャーを持つ
計算機上で、動作させるプログラムを自動生成する時の
スケジューリング処理に用いる。すなわち、条件分岐を
含む部分の並列性を抽出する方式であり、オペレータの
依存関係が明確である部分(分岐部分を含まない範囲)
に分割し、その各々の部分で依存関係に基づき、並列性
を抽出した後に融合するという並列性抽出方式である。
【0028】図2は、条件分岐が存在する場合の並列性
抽出アルゴリズムを示す図である。以下、各ステップに
従って順に説明する。step1 :まず、初期データの準備をする。step2 :次に、ブロック群への展開を行う。 ブロックのフローを解析し、分岐のないブロック群(ト
レース)の各々に分解し、抽出する。step3-1 :ブロック群毎にそれに属するクリティカルパ
ス及びオペレータのMobility(並列性の範囲)を抽出を
行う。step3-2 :ブロック群毎にASAP(As Soon As Possib
le)のスケジューリングを実行する。step3-3 :ブロック群毎にALAP(As Late As Possib
le)のスケジューリングを実行する。step3-4 :ブロック群毎にそれに属するオペレータの移
動範囲を抽出する。step3-5 :ブロック群毎にクリティカルパス(最もステ
ップ数のかかる処理経路)を抽出する。step4 :全体レベルでのクリティカルパスを抽出する。 ブロック群毎に抽出されたクリティカルパスを併合す
る。
【0029】step5:全体レベルでのオペレータのMobi
lityの抽出を行う。 オペレータのMobilityの範囲は、並列(同時)実行可能
なクリティカルパス番号群で与えられる。従って、前記
step4で得られたクリティカルパス上のオペレータに関
しては、そのままでよい。それ以外の各オペレータに関
して、以下の処理を行う。step5-1 :ブロック間のMobilityの抽出を行う。 オペレータの属するブロックに対し、ブロック間でのMo
bility(並列処理可能性)を抽出する。その時、ブロッ
クのコピーを伴うMobilityとそうでないMobilityとを区
別する。step5-2 :オペレータのMobilityの抽出を行う。 後述のstep3の結果、得られたブロック群毎のオペレー
タのMobilityに基づき、それらを併合することで、各オ
ペレータのMobilityを求める。この時、対応するブロッ
クがコピーを伴う場合に関しては、対象のオペレータの
コピーの組合せ(どことどこで同時に実行されるか)を
抽出する。
【0030】以下、前記step1〜5について、より詳細
に説明する。step1 :初期データの準備。 入力ソフトウェアアルゴリズム(プログラム)を解析
し、以下の3つのデータを用意する。 オペレータ識別番号,オペレータ種類識別番号(ex,
+,−,*,/),ブロック識別番号の対応関係 オペレータ依存関係 ブロックのフロー関係 図3は、の例になっていて、図53の有向グラフで表
現するオペレータ間の依存関係を表現している。依存関
係はブロック間にまたがって与えられている。図4は、
の例になっていて、オペレータがプログラム本体のど
のブロックで与えられたかを示すデータを含み、のオ
ペレータ識別番号,オペレータ種類識別番号,ブロック
識別番号の対応関係を表している。図5は、のブロッ
ク間の関係を示し、ブロックのフロー関係を表してい
る。この例は、IF A THEN B1 ELSE B2;C型のプ
ログラムで、ブロックAに1,2,3,ブロックB1に
4,5,6,15,ブロックB2に7,8,9,10,ブロックC
に11,12,13,14 のオペレータが属していることを意味し
ている。
【0031】step2:ブロック群への展開。 前記のブロックのフロー関係を解析し、分岐のないブ
ロック群(トレース)の各々に分解して抽出する。トレ
ースは、もし各分岐命令で分岐先を予測して分岐命令を
実質的になくしてしまった時に得られる。全て確実に実
行される長い命令(オペレーション)列である。図6
(a)の例では、トレースはA,B1,C(図6(b))と
A,B2,C(図6(c))である。全てのトレースを抽出
する方式として、ブロック間の依存関係を辿り、入口か
ら出口まで至る全ての経路(ルート)を見つける方式を
用いる。
【0032】step3 図17,18が図53で示すブロック関係に対して分解
処理した結果、抽出されたブロック群の例である。各々
のブロック群毎独立に(分岐部分を含まないため、全て
のオペレータ間の依存関係が明確であるので)、以下の
並列性抽出方式を用い並列性を抽出する。以下、図18
で示すブロック群の処理を例に用いて説明する。step3-1 :スケジューリング用データの準備。 例えば、図18の有向グラフで示すオペレータ関係に対
応する図7のようなオペレータの依存関係データが入力
として与えられる。スケジューリングでは、図7のデー
タを加工した直接一つ前あるいは後のオペレータとの依
存関係を表した図8,図9及び依存関係の連鎖を全て列
挙した図10,図11を用いる。
【0033】step3-2:ASAPのスケジューリング方
式。 スケジューリング結果として、図12に示すような出力
結果を得る。ASAPは、As Soon As Possible の略で
あり、ASAPスケジューリングにおいては、全てのオ
ペレーションは可能な限り早い段階で処理されるように
スケジューリングされる。入力として、図7にデータフ
ロー関係が与えられた時、図12のようなスケジューリ
ング結果を得る方式である。 (1)全てのオペレータのレベルを0とする。 (2)全てのオペレータに対し、以下の処理を行う。 図9を調べ、依存元が何もないオペレータに対し、 (2-1)そのオペレータのレベルを1とする。 (2-2)そのオペレータの依存先の全てのオペレータの
レベルをセットする。
【0034】step3-2-sub あるオペレータaの依存先の全てのオペレータのレベル
をセットする処理。 (1)図8を調べ、そのオペレータの依存先のオペレー
タを求める。 (2)そのオペレータの全てに対して以下の処理を行
う。 そのオペレータのレベルが元のオペレータaのレベルよ
りも小さいか等しければ、 (2-1)そのオペレータのレベルを元のオペレータaの
レベルよりも1大きくする。 (2-2)そのオペレータの依存先の全てのオペレータの
レベルをセットする。
【0035】step3-3:ALAPのスケジューリング。 スケジューリング結果として、図13に示すような出力
結果を得る。ALAPは、As Late As Possible の略で
あり、ALAPスケジューリングにおいては、全てのオ
ペレーションは、可能な限り遅い段階で処理されるよう
にスケジューリングされる。ASAPあるいはALAP
処理いずれにおいても、指示されたオペレーション同士
の依存関係が守られるようにスケジューリングされる。
入力として、図7のデータ依存関係が与えられた時、図
13のようなスケジューリング結果を得る方式である。 (1)全てのオペレータのレベルを0とする。 (2)全てのオペレータに対し以下の処理を行う。 図8を調べ、依存先が何もないオペレータに対し、 (2-1)そのオペレータのレベルを1とする。 (2-2)そのオペレータの依存元の全てのオペレータの
レベルをセットする。 (3)レベル番号を逆に設定し直す。
【0036】step3-3-sub あるオペレータaの依存先の全てのオペレータのレベル
をセットする処理 (1)図9を調べ、そのオペレータの依存元のオペレー
タを求める。 (2)そのオペレータの全てに対して以下の処理を行
う。 そのオペレータのレベルが元のオペレータaのレベルよ
りも小さいか等しければ、 (2-1)そのオペレータのレベルを元のオペレータaの
レベルよりも1大きくする。 (2-2)そのオペレータの依存先の全てのオペレータの
レベルをセットする。
【0037】step3-4:クリティカルパスの抽出 結果として、図15に示すような出力結果を得る。AS
APとALAPのスケジューリング結果を調べて、その
レベルの値が同じであるオペレータは他のレベルへ設定
される可能性がないので、クリティカルパスと見なす。
図18のオペレータ関係に対して求められたクリティカ
ルパスを図15に示す。
【0038】step3-5:並列処理可能性(Mobility)の
抽出 結果として、図20の並列処理可能テーブルに示すよう
な出力結果を得る。並列処理テーブルは、縦軸にクリテ
ィカルパス上のオペレータに対応した基準オペレータ
が、横軸に実行ステップが確定していないオペレータ
(変動オペレータ)番号が並んでいる。この例では、オ
ペレータ7の並列処理可能性(Mobility)は、クリティ
カルパス上のオペレータ(基準オペレータ)1と2と3
であり、図中の表の中では1と記載してある。ASAP
とALAPのスケジューリング結果を調べて、そのレベ
ルの値が同じでないオペレータは、そのASAPの結果
のレベルからALAPの結果のレベルに至る並列処理可
能性(Mobility)があると見なす。
【0039】step4 図14,図15は、ブロック群毎にクリティカルパスを
抽出したものである。ブロック群毎に抽出されたクリテ
ィカルパスを併合し、全体レベルでのクリティカルパス
を抽出したものが図16である。
【0040】step5 図17,図18に示すブロック群毎にアルゴリズム1を
適用した結果、求められた各々のMobilityが図19,図
20であり、全体レベルでのMobilityが図21である。step5-1 :ブロック間のMobilityの抽出 オペレータが同時に処理される可能性のある(クリティ
カルパス上のオペレータの含む)ブロック番号の組合せ
を全て抽出する。この時、コピーを伴う場合は、ブロッ
クの組合せが抽出される。 最上位のブロック番号から最下位のブロック番号へ
至る経路(ルート)で対象のオペレータのブロックを含
むルートを抽出し、重複しない全てのブロック番号を抽
出する。このブロックを条件xを満たすブロックとして
の処理をする(図23(a)の例では、ブロック6に属
しているオペレータがブロック1からブロック7までの
範囲で同時実行可能である場合で、抽出結果はブロック
1,3,4,5,6,7となる)。 最上位のブロックからそのオペレータが属するブロ
ックまで及びそのオペレータが属するブロックから最下
位のブロックまで以下の処理をし、結果を併合する。
【0041】 ブロックaからブロックb間のMobilit
yの抽出。 -1 ブロックaとブロックbが同じであれば、ブロッ
クaを返す。ブロック間の依存関係を調べ、 -2 ブロックaに依存するブロックが存在しなければN
ULLを返す。 -3 ブロックaに依存し、条件xを満たすブロックが
1つであれば、そのブロックからブロックb間のMobili
tyの抽出した結果に、ブロックaのみを持つものを加え
たものを返す。 -4 ブロックaに依存し、条件xを満たすブロックが
1つ以上あれば、各ブロックに対して、それに依存する
ブロックからブロックb間のMobilityを抽出した結果
(図23(b),(c)は、ブロック1の処理を進めている
時の結果である)が互いに重複化している部分に(図2
3(b),(c)の例では、ブロック1,3,6,7が重複部分
である)、互いに重複していない部分同志を複合化した
部分(図23(b),(c)の例では、ブロック4と5であ
る)を加え、結果として返す。後者がコピーを伴う並列
性の抽出結果となる。
【0042】step5-2:オペレータのMobilityの抽出 オペレータが並列(同時)実行可能なクリティカルパス
・オペレータのブロック番号を抽出し、step5-1の結
果、得られた移動可能なブロックの組合せを用いて、オ
ペレータのMobilityを抽出するオペレータがコピーを伴
う配置が可能である時は、Mobilityはオペレータの組合
せで表現される。最終結果として、並列実行可能なオペ
レータの組合せを得る。図53の例のオペレータ14に
対しては、step5-1の結果、コピーを伴う場合のブロッ
クの組合せはブロックB1,B2である。同時に処理可
能なブロック番号は、図24のようなテーブルで保持さ
れ、この例では、オペレータ14がブロックB1,B2
の中で同時処理可能なクリティカルパス上のオペレータ
番号は5及び9,10であることを示している。この
時、step5-1で得られたブロック番号B1,B2の組合
せを図24から抽出すれば、最終結果としてオペレータ
14の同時実行可能なオペレータの組合せは、コピー以
外のものも併せて、図22の並列処理抽出結果例に示す
ように、1,2,3,14,5と9,5と10である。
【0043】オペレータのMobilityの範囲は、並列(同
時)実行可能なクリティカルパス番号群で与えられる。
この与え方は、従来の方式と大きく異なっている訳でな
いのだが、図6に見られるような並列処理可能性の結果
を表現する時、縦軸にクリティカルパス上のオペレータ
番号を用いずに順序付けの番号(ステップ番号)をその
まま用いていた。その場合、分岐のない場合は、順序付
けが可能で順序付け番号をそのまま用いることができた
が、分岐のある場合は、分岐先同志のオペレータが互い
にどちらが先行するとも言えず、順序付けはできない。
例えば、図51では、分岐先のオペレータ5とオペレー
タ9のどちらが先かということを決定することはできな
い。
【0044】以上、条件分岐間並列性抽出方式につい
て、ステップ1〜5に基づいて説明した。次に、図1で
示すようなアーキテクチャーを持つ回路の自動合成方式
の中のスケジューリング処理方式について説明する。次
に、請求項3〜5の実施例について説明する。まず、以
下に用語の説明を行う。基準オペレータはクリティカル
パス上のオペレータであり、変動オペレータはクリティ
カルパス上にないオペレータである。スケジューリング
の処理はクリティカルパス上にないオペレータ(変動オ
ペレータ)が同時に実行されるクリティカルパス上のオ
ペレータ(基準オペレータ)を割り当てる処理を示して
いる。処理の順番は、クリティカルパス上のオペレータ
の依存関係の順となる。ある変動オペレータが、あるク
リティカルパス上のオペレータ(基準オペレータ)に割
当てられれば、そのオペレータはその基準オペレータと
同時に実行されることを意味する。
【0045】図26〜図41は、処理中使用するテーブ
ルを示している。図34〜図41は、変動オペレータテ
ーブルを示す。変動オペレータに対して、どの基準オペ
レータへ配置され得るかを示す。複数個の基準オペレー
タへの配置先を持つ場合がある。図34の変動オペレー
タテーブルでは、14番の変動オペレータが、基準オペ
レータ9と5あるいは10と5あるいは1あるいは2あ
るいは3あるいは12へ配置され得ることを意味する。
【0046】(1)基準オペレータの確定数:配置の確
定は、その基準オペレータへ配置された時と、他の基準
オペレータへ配置された時の二つがある。この設定され
た変動オペレータの数の合計値。 (2)確定ポイント:全ての基準オペレータの中の確定
数の最大値からその基準オペレータの確定値を引いた
値。確定ポイントの大きい基準オペレータ程、他と比較
してそこへ配置されていないことを意味する。 (3)配置ポイント:ある基準オペレータの確定されて
いない変動オペレータの総数。配置ポイントが小さい
程、その基準オペレータへ配置される可能性は低いこと
を意味する。 (4)配置確定フラグ:変動オペレータの基準オペレー
タへの配置が既に終わったかどうかを示すフラグ。配置
が終わった場合は1、そうでない場合は0を設定する。 (5)配置余裕ポイント:変動オペレータが配置される
先である基準オペレータの各々の確定ポイントの総和。
配置余裕ポイントの値が大きい程、可能な効果的な配置
が多いことを意味している。
【0047】図26〜図33は、基準オペレータテーブ
ルを示している。ある基準オペレータに対し、配置され
得る配置オペレータの番号を保持している。例えば、図
26の基準オペレータテーブルの例では基準オペレータ
2へ、変動オペレータ4,7,8,14,15が配置され得るこ
とを示している。 (1)配置確定フラグ:基準オペレータへの変動オペレ
ータの配置が既に終わったかどうかを示すフラグ。ある
基準オペレータへ配置され得る変動オペレータが、その
基準オペレータへ配置された場合は1に、その変動オペ
レータが他の基準オペレータへ配置された場合は2に、
それ以外の時は0となる。配置確定フラグは、基準オペ
レータテーブルの中では()の中の数値で示されてい
る。
【0048】図25は、請求項3〜5の順次割付戦略に
基づくスケジューリング方式を説明するためのアルゴリ
ズムを示す図である。以下、各ステップに従って順に説
明する。step1 :変動オペレータの移動範囲(同時可能性)を抽
出する。step2 :前記step1の結果から、基準オペレータテーブ
ル(図26)を用意し、テーブルの初期値が設定され
る。step3 :実行ステップが決められていないオペレータに
対し(実行ステップが決められていないオペレータがな
くなるまで)、以下の処理を繰り返し、順次実行ステッ
プを割り当てる。step3-1 :全ての変動オペレータの配置が終了していれ
ば、スケジューリングの処理を終了する。step3-2 :変動オペレータテーブルの書換え。配置確定
されていない変動オペレータに対し、各基準オペレータ
に対する確定ポイントと変動ポイントの値を設定する。step3-3 :変動オペレータテーブルを用いて、各変動オ
ペレータに対する配置可能先の基準オペレータの各々の
確定ポイントの和を計算し、その値を配置余裕ポイント
として設定する。
【0049】step3-4:未確定の変動オペレータに対し
ては、基準オペレータの中で確定ポイントが大きく、配
置ポイントが小さい基準オペレータの各々の値を取り出
して設定する。図34の未確定の変動オペレータテーブ
ルの例では、変動オペレータ4に対しては基準オペレー
タ1に対する確定ポイント0と配置ポイント1が取り出
される。step3-5 :前記step3-4で得られた変動オペレータに対す
る確定ポイントと配置ポイント,及び前記step3-3で得
られた配置余裕ポイントを変動オペレータ毎に互いに比
較し、配置余裕ポイントが小さく、確定ポイントが大き
く、配置ポイントが小さい変動オペレータを捜し、その
変動オペレータを基準オペレータに配置する。ここで、
比較は、配置余裕ポイント,確定ポイント,配置ポイン
トの順で優先し、ポイントが全て同じものが複数ある時
は、その中で任意に選択するものとする。
【0050】step3-6:基準オペレータの値を更新す
る。step3-7 :変動オペレータテーブルの配置が行われた変
動オペレータに対する確定フラグを1に設定する。step3-8 :変動オペレータテーブルの基準オペレータ配
置先に配置確定した基準オペレータ番号を記録する。 図26〜図41は、上記step3の処理のループの中で、
基準テーブルおよび変動テーブルの値が順次変更されて
いく様子を示している。スケジューリングの最終結果例
として、図42が得られる。図42において、点線で示
すように、オペレーショ14は、入力プログラムの指定
を行い、(基本)ブロックCで処理されるように指示す
る。そのスケジューリングの結果、ブロックB1とブロ
ックB2の両方で処理するように指示する(コピーを伴
った並列処理可能性が抽出された例になっている)。も
し、コピーが許されない場合は、オペレータ14はスケ
ジューリングされることになる。その場合、必要な演算
器数は3となる。
【0051】次に、請求項6の実施例について説明す
る。変動オペレータテーブルを調べ、変動オペレータの
配置の全ての可能な組合せに対して依存関係を調べ、与
えられた条件と矛盾しない組合せのものの中で、一番面
積を少なくする最適な組合せを抽出する。図34の例で
は、変動オペレータ14は基準オペレータと5,10と5,
1,2,3,12に配置され得ることを示している。そし
て、スケジューリング結果例としては、4が1,6が1
2,7が1,8が2,11が12,14が12,15が5というの
が組合せの一つとして考えられる。
【0052】図43は、請求項6の全ての可能なスケジ
ューリング結果をもれなく抽出する方式を説明するため
のアルゴリズムである。以下、各ステップに従って順に
説明する。step1 :まず、変動オペレータの移動範囲(同時可能
性)を抽出する(図22)。step2 :次に、可能な配置の組合せを順次抽出し、以下
のstep2-1〜step2-3を繰り返す。step2-1 :組合せを一つ取り出す。step2-2 :オペレータ間の依存条件をチェックする。 オペレータの配置はクリティカルパスの番号で指定され
ているので、オペレータ同士の処理の前後関係が条件と
して与えられている時は、対応するクリティカルパスの
前後関係が同じようになっているかどうかを調べればよ
い。step2-3 :条件を満たす場合、その組合せを保存する。step3 :一番最適な配置のものを結果として返す。 クリティカルパス上のオペレータの各々に配置されたオ
ペレータの総数を調べ、その最大値が最低である配置を
結果として出力する。
【0053】次に、請求項7の実施例について説明す
る。図44は、請求項7の手動スケジューリング方式を
説明するためのアルゴリズムを示す図である。以下、各
ステップに従って順に説明する。step1 :変動オペレータの移動範囲(同時可能性)を抽
出する。step2 :前記step1の結果から、基準オペレータテーブ
ル(図26)と表示用テーブル(図45(a))を用意
し、テーブルの初期値が設定される。step3 :実行ステップが決められていないオペレータに
対し(実行ステップが決められていないオペレータがな
くなるまで)、以下の処理を繰り返し、順次実行ステッ
プを割当てる。step3-1 :基準オペレータテーブルの内容を調べ、全て
の変動オペレータの配置が終了していれば、スケジュー
リングの処理を終了する。step3-2 :変動オペレータの配置先を手動で設定する。step3-3 :表示用テーブルに基づいて、スケジューリン
グの途中結果を表示する(図45(b))。step3-4 :基準オペレータテーブルの値の更新:配置確
定フラグを設定する。step3-5 :表示用テーブルの書換えを行う。
【0054】次に、請求項8の実施例について説明す
る。請求項3のスケジューリング方式の前に与えられた
依存関係の中で、オペレータの種類が同じもの別に依存
関係を分けて別々にスケジューリング処理をする。
【0055】図46は、スケジューリング結果の例を示
す図で、グローバルベースのスケジューリング結果の例
で、本方式のスケジューリング結果を示している。図4
6において、図中のFは元々のブロックB2の範囲を越
えて、別のブロックで実行するようにスケジューリング
されている。従来方式である図54と比較すると、処理
ステップB21の部分の演算器数は2であり、演算器数
が少なくなっていることがわかる。
【0056】
【効果】以上の説明から明らかなように、本発明による
と、以下のような効果がある。 (1)請求項1に対応する効果:入力されたプログラム
が正しく動作するように制御構造に起因する動作の依存
関係を越えた演算処理のクリティカルパスを抽出する機
能を有するので、計算機における処理の中で、最も時間
のかかる部分が抽出でき、処理速度を見積ることが可能
となる。 (2)請求項2に対応する効果:入力されたプログラム
が正しく動作するように制御構造に起因する動作の依存
関係を越えた演算処理の並列性を抽出する機能を有する
ので、並列に処理できる部分をプログラムの構造に関わ
らず抽出する手段を提供することができる。 (3)請求項3,4に対応する効果:クリティカルパス
を抽出する機能及び並列性を抽出する機能を用いて、制
御構造に起因する動作の依存関係を越えたスケジューリ
ングをするので、合成装置で合成された回路の高速処理
が可能となる。 (4)請求項5に対応する効果:合成装置で合成された
回路の構成要素である演算器の数を少なくすることがで
きる。また、ステップ数が最低で、同時に処理するオペ
レータの数が最低であるスケジューリング結果を確実に
抽出する手段を提供することができる。 (5)請求項6に対応する効果:処理結果を比較してス
ケジューリングする手段と、全ての可能なスケジューリ
ング結果をもれなく抽出する手段と、ステップ数が最低
で、同時に処理するオペレータの数が最低であるスケジ
ューリング結果を複数個もれなく抽出する手段を提供す
ることができる。 (6)請求項7に対応する効果:ステップ数が最低であ
る全ての可能なスケジューリング結果を容易に比較する
手段と、スケジューリング条件を満たすように任意にス
ケジューリングする手段を提供することができる。 (7)請求項8に対応する効果:スケジューリング対象
の種類毎に分けて別々にスケジューリングする手段を提
供することができる。
【図面の簡単な説明】
【図1】 本発明によるスケジューリング処理方式の一
実施例を説明するための構成図で、合成される回路のア
ーキテクチャー例を示す図である。
【図2】 本発明によるスケジューリング処理方式にお
ける並列性抽出アルゴリズムを示す図である。
【図3】 本発明のオペレータ依存関係を示す図であ
る。
【図4】 本発明のオペレータ・ブロック依存関係を示
す図である。
【図5】 本発明のブロック関係を示す図である。
【図6】 本発明のブロック関係及びブロック群を示す
図である。
【図7】 本発明のオペレータ依存関係データを示す図
である。
【図8】 本発明の直接依存先オペレータを示す図であ
る。
【図9】 本発明の直接依存元オペレータを示す図であ
る。
【図10】 本発明の全依存先オペレータを示す図であ
る。
【図11】 本発明の全依存元オペレータを示す図であ
る。
【図12】 本発明のASAPスケジューリング結果を
示す図である。
【図13】 本発明のALAPスケジューリング結果を
示す図である。
【図14】 本発明のブロック群1のクリティカルパス
を示す図である。
【図15】 本発明のブロック群2のクリティカルパス
を示す図である。
【図16】 本発明のクリティカルパスを示す図であ
る。
【図17】 本発明の分解例ブロック群1を示す図であ
る。
【図18】 本発明の分解例ブロック群2を示す図であ
る。
【図19】 本発明のブロック1の並列(同時)処理可
能テーブルを示す図である。
【図20】 本発明のブロック2の並列(同時)処理可
能テーブルを示す図である。
【図21】 本発明の並列(同時)処理可能テーブルを
示す図である。
【図22】 本発明の並列(同時)処理性抽出結果例を
示す図である。
【図23】 本発明のブロック間移動可能性を示す図で
ある。
【図24】 本発明のブロック間並列性抽出テーブルを
示す図である。
【図25】 本発明によるスケジューリング処理方式に
おける順次割付戦略に基づくスケジューリングのアリゴ
リズムを示す図である。
【図26】 本発明の基準オペレータテーブル(その
1)を示す図である。
【図27】 本発明の基準オペレータテーブル(その
2)を示す図である。
【図28】 本発明の基準オペレータテーブル(その
3)を示す図である。
【図29】 本発明の基準オペレータテーブル(その
4)を示す図である。
【図30】 本発明の基準オペレータテーブル(その
5)を示す図である。
【図31】 本発明の基準オペレータテーブル(その
6)を示す図である。
【図32】 本発明の基準オペレータテーブル(その
7)を示す図である。
【図33】 本発明の基準オペレータテーブル(その
8)を示す図である。
【図34】 本発明の変動オペレータテーブル(その
1)を示す図である。
【図35】 本発明の変動オペレータテーブル(その
2)を示す図である。
【図36】 本発明の変動オペレータテーブル(その
3)を示す図である。
【図37】 本発明の変動オペレータテーブル(その
4)を示す図である。
【図38】 本発明の変動オペレータテーブル(その
5)を示す図である。
【図39】 本発明の変動オペレータテーブル(その
6)を示す図である。
【図40】 本発明の変動オペレータテーブル(その
7)を示す図である。
【図41】 本発明の変動オペレータテーブル(その
8)を示す図である。
【図42】 本発明のスケジューリング結果例を示す図
である。
【図43】 本発明によるスケジューリング処理方式に
おける全ての可能なスケジューリング結果をもれなく抽
出するアルゴリズムを示す図である。
【図44】 本発明によるスケジューリング処理方式に
おける手動スケジューリングのアルゴリズムを示す図で
ある。
【図45】 本発明の表示テーブル例及びスケジューリ
ング途中結果表示例を示す図である。
【図46】 本発明のグローバルベースのスケジューリ
ング結果例を示す図である。
【図47】 従来の回路自動合成の一般的な実現方式を
示す図である。
【図48】 従来のオペレータ間依存関係データ例を示
す図である。
【図49】 従来のデータフローグラフ例を示す図であ
る。
【図50】 従来のアロケーション結果例を示す図であ
る。
【図51】 従来のブロック関係図例を示す図である。
【図52】 従来の入力プログラム例を示す図である。
【図53】 従来の全体オペレータ関係図例を示す図で
ある。
【図54】 従来のスケジューリング処理方式による結
果を示す図である。
【符号の説明】
1…レジスタファイル、2…メモリ部、3…相互接続ネ
ットワーク部、4a〜4c…演算器、5…マイクロイン
ストラクションレジスタ(μIR)、6…マイクロイン
ストラクションメモリ(μIM)、7…マイクロプログ
ラムカウンタ(μPC)、8…加算器、9…制御ユニッ
ト部。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 アーキテクチャーを有する計算機上で、
    動作させるプログラムを自動生成する時のスケジューリ
    ング処理方式において、入力されたプログラムが正しく
    動作するように、制御構造に起因する動作の依存関係を
    越えた演算処理のクリティカルパスを抽出する抽出手段
    を有することを特徴とするスケジューリング処理方式。
  2. 【請求項2】 アーキテクチャーを有する計算機上で、
    動作させるプログラムを自動生成する時のスケジューリ
    ング処理方式において、入力されたプログラムが正しく
    動作するように、制御構造に起因する動作の依存関係を
    越えた演算処理の並列性を抽出する抽出手段を有するこ
    とを特徴とするスケジューリング処理方式。
  3. 【請求項3】 アーキテクチャーを有する回路の自動合
    成装置のスケジューリング処理方式において、合成され
    た回路が入力されたプログラムの動作要求に基づいて正
    しく動作するように、制御構造に起因する動作の依存関
    係を越えた演算処理のクリティカルパスを抽出する抽出
    手段を有し、該抽出手段を用いて、クリティカルパスの
    ステップからなる処理のスケジューリングをすることを
    特徴とするスケジューリング処理方式。
  4. 【請求項4】 アーキテクチャーを有する回路の自動合
    成装置のスケジューリング処理方式において、合成され
    た回路が入力されたプログラムの動作要求に基づいて正
    しく動作するように、制御構造に起因する動作の依存関
    係を越えた演算処理の並列性を抽出する抽出手段を有
    し、該抽出手段を用いて、制御構造に起因する動作の依
    存関係を越えたスケジューリングをすることを特徴とす
    るスケジューリング処理方式。
  5. 【請求項5】 前記並列性を抽出する抽出手段を用い
    て、ある制御ステップで実行される可能性を持つスケジ
    ューリング対象の総数と、あるスケジューリング対象が
    配置され得る制御ステップの総数の両方を調べながらス
    ケジューリングすることを特徴とする請求項4記載のス
    ケジューリング処理方式。
  6. 【請求項6】 前記並列性を抽出する抽出手段を用い
    て、制御構造に起因する動作の依存関係を越えた全ての
    可能なスケジューリング結果を抽出することを特徴とす
    る請求項4記載のスケジューリング処理方式。
  7. 【請求項7】 前記並列性を抽出する抽出手段と、複数
    のスケジューリング結果を表示する表示手段と、手動で
    結果を選択する選択手段とを有することを特徴とする請
    求項4記載のスケジューリング処理方式。
  8. 【請求項8】 前記並列性を抽出する抽出手段を有し、
    スケジューリング対象の種類別にスケジューリングする
    ことを特徴とする請求項4記載のスケジューリング処理
    方式。
JP5061062A 1993-02-25 1993-02-25 スケジューリング処理方式 Pending JPH06250837A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5061062A JPH06250837A (ja) 1993-02-25 1993-02-25 スケジューリング処理方式
US08/571,277 US5557797A (en) 1993-02-25 1995-12-12 Scheduling method for automatically developing hardware patterns for integrated circuits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5061062A JPH06250837A (ja) 1993-02-25 1993-02-25 スケジューリング処理方式

Publications (1)

Publication Number Publication Date
JPH06250837A true JPH06250837A (ja) 1994-09-09

Family

ID=13160307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5061062A Pending JPH06250837A (ja) 1993-02-25 1993-02-25 スケジューリング処理方式

Country Status (2)

Country Link
US (1) US5557797A (ja)
JP (1) JPH06250837A (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3606387B2 (ja) * 1994-09-13 2005-01-05 松下電器産業株式会社 コンパイル装置
US6311265B1 (en) * 1996-03-25 2001-10-30 Torrent Systems, Inc. Apparatuses and methods for programming parallel computers
US5889999A (en) * 1996-05-15 1999-03-30 Motorola, Inc. Method and apparatus for sequencing computer instruction execution in a data processing system
US6075935A (en) * 1997-12-01 2000-06-13 Improv Systems, Inc. Method of generating application specific integrated circuits using a programmable hardware architecture
JP3717144B2 (ja) * 1999-06-03 2005-11-16 シャープ株式会社 高位合成装置および高位合成方法並びに高位合成プログラムを記録した記録媒体
US6862727B2 (en) 2001-08-24 2005-03-01 Formfactor, Inc. Process and apparatus for adjusting traces
US6678876B2 (en) * 2001-08-24 2004-01-13 Formfactor, Inc. Process and apparatus for finding paths through a routing space
US20030145313A1 (en) * 2002-01-30 2003-07-31 Sun Microsystems, Inc. Enhanced instruction scheduling after register allocation by employing traces
JP3783956B2 (ja) * 2002-07-23 2006-06-07 株式会社リコー 画像記録装置及び画像データ選択方法
US6901573B2 (en) * 2003-03-05 2005-05-31 Lsi Logic Corporation Method for evaluating logic functions by logic circuits having optimized number of and/or switches
DE10352172A1 (de) * 2003-11-05 2005-06-09 Robert Bosch Gmbh Verfahren und Vorrichtung zur Anpassung von Funktionen zur Steuerung von Betriebsabläufen
JP4618676B2 (ja) 2005-04-28 2011-01-26 株式会社リコー 構造化文書符号の転送方法、画像処理システム、サーバ装置、プログラム及び情報記録媒体
JP2008052062A (ja) * 2006-08-24 2008-03-06 Ricoh Co Ltd 表示装置、表示装置の表示方法、プログラム及び記録媒体
US20080225950A1 (en) * 2007-03-13 2008-09-18 Sony Corporation Scalable architecture for video codecs
EP1975791A3 (en) * 2007-03-26 2009-01-07 Interuniversitair Microelektronica Centrum (IMEC) A method for automated code conversion
US7851298B2 (en) * 2007-10-29 2010-12-14 Hynix Semiconductor Inc. Method for fabricating transistor in a semiconductor device utilizing an etch stop layer pattern as a dummy pattern for the gate electrode formation
US8402449B1 (en) 2008-01-10 2013-03-19 The Mathworks, Inc. Technique for automatically assigning placement for pipeline registers within code generated from a program specification
JP5081668B2 (ja) * 2008-02-28 2012-11-28 株式会社リコー 画像処理装置、情報処理方法及び情報処理プログラム

Also Published As

Publication number Publication date
US5557797A (en) 1996-09-17

Similar Documents

Publication Publication Date Title
JPH06250837A (ja) スケジューリング処理方式
Wolf An architectural co-synthesis algorithm for distributed, embedded computing systems
Baer A survey of some theoretical aspects of multiprocessing
Paulin et al. HAL: A multi-paradigm approach to automatic data path synthesis
Thomas et al. Automatic data path synthesis
Devadas et al. Algorithms for hardware allocation in data path synthesis
Kuehn et al. The Horizon supercomputing system: architecture and software
US5377122A (en) Logic compiler for design of circuit models
JP5209059B2 (ja) ソース・コード処理方法、システム、及びプログラム
US5950009A (en) Method and apparatus for profile-based reordering of program portions in a computer program
KR100759600B1 (ko) 병렬 시퀀서를 이용한 디지털 회로 구현
Amellal et al. Functional synthesis of digital systems with TASS
Sorel Real-time embedded image processing applications using the A/sup 3/methodology
JPS6081641A (ja) レジスタトレース方法
JPH05101141A (ja) 高位合成装置
Park Synthesis of high speed digital systems
Kifli et al. A unified scheduling model for high-level synthesis and code generation
Bergamaschi et al. Data-path synthesis using path analysis
Rosenstiel et al. Scheduling and assignment in high level synthesis
Bringmann et al. Cross-level hierarchical high-level synthesis
JPH08286896A (ja) ソフトウェア開発方法及びソフトウェア開発システム
Hsu et al. High level synthesis in the THEDA system
Mueller et al. Horizon: a retargetable compiler for horizontal microarchitectures
van Sas et al. Automated test pattern generation for the Cathedral-II/2nd architectural synthesis environment
Fuller PDP-11 40E microprogramming reference manual