JPH0721144A - 多重プロセッサアーキテクチャにおけるプログラム自動展開方法 - Google Patents
多重プロセッサアーキテクチャにおけるプログラム自動展開方法Info
- Publication number
- JPH0721144A JPH0721144A JP6073505A JP7350594A JPH0721144A JP H0721144 A JPH0721144 A JP H0721144A JP 6073505 A JP6073505 A JP 6073505A JP 7350594 A JP7350594 A JP 7350594A JP H0721144 A JPH0721144 A JP H0721144A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- tasks
- task
- allocation
- physical
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 様々な多重プロセッサアーキテクチャ中の複
雑な問題を有するタスクのアロケーションの改良を行な
う。 【構成】 多重プロセッサアーキテクチャ内のプロセッ
サに複雑な問題を有するタスクを展開させることを可能
にするため、問題の解決の実行に導く各タスクを事前割
り当て及び事前スケジュールする問題解決のデータフロ
ーグラフを使用し、事前割り当て及び事前スケジュール
のサブグラフ実行プログラムから得られたオブジェクト
コードが展開されるときに利用可能な資源に応じて目標
ハードウエアに展開させる。
雑な問題を有するタスクのアロケーションの改良を行な
う。 【構成】 多重プロセッサアーキテクチャ内のプロセッ
サに複雑な問題を有するタスクを展開させることを可能
にするため、問題の解決の実行に導く各タスクを事前割
り当て及び事前スケジュールする問題解決のデータフロ
ーグラフを使用し、事前割り当て及び事前スケジュール
のサブグラフ実行プログラムから得られたオブジェクト
コードが展開されるときに利用可能な資源に応じて目標
ハードウエアに展開させる。
Description
【0001】
【産業上の利用分野】本発明は、多重プロセッサアーキ
テクチャに関し、特に、ソフトウエア手順処理を効率よ
く並列に実行する多重プロセッサアーキテクチャにおい
てソフトウエア手順処理を自動展開する方法に関する。
テクチャに関し、特に、ソフトウエア手順処理を効率よ
く並列に実行する多重プロセッサアーキテクチャにおい
てソフトウエア手順処理を自動展開する方法に関する。
【0002】
【従来の技術】並列式プロセッサアーキテクチャ等の多
重プロセッサアーキテクチャは大量のデータにアクセス
し高速で多くの数のタスクを同時に処理するために相互
に接続した多くのプロセッサを備えている。多くの多重
プロセッサは、データアレイであるオペランドを備えた
命令を実行することができ、ペクタプロセッサ又はアレ
イプロセッサと呼ばれている。多重プロセッサの最大活
用のためには、できるだけ多くのタスクが各プロセッサ
において同時に実行されるように予めする必要がある。
更に、各タスクが実行可能にあるときには入力オペラン
ドの利用可能を確かにするために様々なタスクの相互関
係は連続的に考慮されなければならない。必要な入力デ
ータの欠落で1のプロセッサの処理が複数の他のプロセ
ッサより遅れることにより、並列処理により引き出され
る全体の利益を失わないようにタスクの処理順番は注意
して定めなければならない。
重プロセッサアーキテクチャは大量のデータにアクセス
し高速で多くの数のタスクを同時に処理するために相互
に接続した多くのプロセッサを備えている。多くの多重
プロセッサは、データアレイであるオペランドを備えた
命令を実行することができ、ペクタプロセッサ又はアレ
イプロセッサと呼ばれている。多重プロセッサの最大活
用のためには、できるだけ多くのタスクが各プロセッサ
において同時に実行されるように予めする必要がある。
更に、各タスクが実行可能にあるときには入力オペラン
ドの利用可能を確かにするために様々なタスクの相互関
係は連続的に考慮されなければならない。必要な入力デ
ータの欠落で1のプロセッサの処理が複数の他のプロセ
ッサより遅れることにより、並列処理により引き出され
る全体の利益を失わないようにタスクの処理順番は注意
して定めなければならない。
【0003】データフローグラフ(DFG:Data Flow
Graph)は個々の処理タスクやそれらの相互関係を視覚
的に明らかにするために科学者や技術者にしばしば利用
される。データフローグラフではエッジ(相互接続)が
データの流れを示し、ノードがデータを処理する機能や
タスクである。十分なデータがノードの各入力エッジで
利用できるときノードのファイアリングと呼ばれるタス
クの実行が起きる。入力エッジと関連して閾値と呼ばれ
るプロパティがある。データが入力エッジの各々の閾値
に一致又はそれを越えたときノードは動作する。ノード
が動作する毎にノードの各入力端からいくらかの量のデ
ータが消費される。消費されるデータ量は閾値以下であ
る。また、ノードが動作する毎にいくらかのデータが生
成され、その出力エッジに出力される。通常、このデー
タは他のノードで消費される。
Graph)は個々の処理タスクやそれらの相互関係を視覚
的に明らかにするために科学者や技術者にしばしば利用
される。データフローグラフではエッジ(相互接続)が
データの流れを示し、ノードがデータを処理する機能や
タスクである。十分なデータがノードの各入力エッジで
利用できるときノードのファイアリングと呼ばれるタス
クの実行が起きる。入力エッジと関連して閾値と呼ばれ
るプロパティがある。データが入力エッジの各々の閾値
に一致又はそれを越えたときノードは動作する。ノード
が動作する毎にノードの各入力端からいくらかの量のデ
ータが消費される。消費されるデータ量は閾値以下であ
る。また、ノードが動作する毎にいくらかのデータが生
成され、その出力エッジに出力される。通常、このデー
タは他のノードで消費される。
【0004】ここで使用される用語について理解を容易
にするために次に説明する。 (1)プリミティブ/タスク データフローグラフのノードによって表されるタスクや
機能がプリミティブである。プリミティブは特定のタス
クを行うために予めプログラムされた処理やプログラム
のライブラリから利用される。 (2)ノード ブリミティプの視覚的表示である。データフローグラフ
のノードはプロセッサで行なわれるが、用語としてのノ
ードはプロセッサを表しておらず、プロセッサによって
実行される特定のプリミティブである。 (3)閾値 ノードが動作する前に各入力エッジは適切に実行するタ
スクのために必要なデータアイテムを少なくと含んでい
る必要がある。閾値のパラメータはノードが動作するこ
とができる前に特定の入力エッジで必要とされるデータ
の最小量を指定する。 (4)サブグラフ実行プログラム プロセッサで順次実行する1又はそれ以上のプリミティ
ブから構成されるプログラムである。サブグラフ実行プ
ログラムは1つのプログラムとして実行し、その中のプ
リミティブタスクは所定の順番に次々実行する。 (5)アロケーション(Allocation) 余分のプロセッサ資源を利用するためにサブグラフ実行
プログラムを論理プロセッサに割り当てることによって
物理プロセッサ利用を管理する処理である。 (6)展開(Deployment) データフローグラフで定められたアルゴリズムをプロセ
ッサに並列に実行させるコードのように、多重プロセッ
サにおけるプロセッサへのオブジェクトコードの分配で
ある。 (7)事前スケジューリング(Pre-scheduling) 各プリミティブがどのくらいデータを消費及び生成する
のかに基づいてプログラムが判断する取り決め(スケジ
ューリング)方法である。
にするために次に説明する。 (1)プリミティブ/タスク データフローグラフのノードによって表されるタスクや
機能がプリミティブである。プリミティブは特定のタス
クを行うために予めプログラムされた処理やプログラム
のライブラリから利用される。 (2)ノード ブリミティプの視覚的表示である。データフローグラフ
のノードはプロセッサで行なわれるが、用語としてのノ
ードはプロセッサを表しておらず、プロセッサによって
実行される特定のプリミティブである。 (3)閾値 ノードが動作する前に各入力エッジは適切に実行するタ
スクのために必要なデータアイテムを少なくと含んでい
る必要がある。閾値のパラメータはノードが動作するこ
とができる前に特定の入力エッジで必要とされるデータ
の最小量を指定する。 (4)サブグラフ実行プログラム プロセッサで順次実行する1又はそれ以上のプリミティ
ブから構成されるプログラムである。サブグラフ実行プ
ログラムは1つのプログラムとして実行し、その中のプ
リミティブタスクは所定の順番に次々実行する。 (5)アロケーション(Allocation) 余分のプロセッサ資源を利用するためにサブグラフ実行
プログラムを論理プロセッサに割り当てることによって
物理プロセッサ利用を管理する処理である。 (6)展開(Deployment) データフローグラフで定められたアルゴリズムをプロセ
ッサに並列に実行させるコードのように、多重プロセッ
サにおけるプロセッサへのオブジェクトコードの分配で
ある。 (7)事前スケジューリング(Pre-scheduling) 各プリミティブがどのくらいデータを消費及び生成する
のかに基づいてプログラムが判断する取り決め(スケジ
ューリング)方法である。
【0005】一般に、多重プロセッサでデータフローグ
ラフを実行するためには2つの方法がある。一方の方法
は「ランタイムレディ」アセスメントマネジャーを用い
るノードを割り当てることである。他方の方法は事前ス
ケジューリングと呼ばれ、データフローグラフの実行よ
り前に各タスクのための所定のスケジュールを定めるこ
とである。
ラフを実行するためには2つの方法がある。一方の方法
は「ランタイムレディ」アセスメントマネジャーを用い
るノードを割り当てることである。他方の方法は事前ス
ケジューリングと呼ばれ、データフローグラフの実行よ
り前に各タスクのための所定のスケジュールを定めるこ
とである。
【0006】ランタイムレディアセスメントは、データ
フローグラフのプリミティブの各入力の流れはランタイ
ムプログラムによって検出されるスケジューリング方法
である。プリミティブのための全ての入力の流れの閾値
に合致したときプリミティブは実行されるべき準備状態
にある。いくつかのプリミティブは一度に実行する準備
状態にあるかもしれない。ランタイムプログラムは準備
状態のプリミティブを見つけると何らかの順番で実行す
る。
フローグラフのプリミティブの各入力の流れはランタイ
ムプログラムによって検出されるスケジューリング方法
である。プリミティブのための全ての入力の流れの閾値
に合致したときプリミティブは実行されるべき準備状態
にある。いくつかのプリミティブは一度に実行する準備
状態にあるかもしれない。ランタイムプログラムは準備
状態のプリミティブを見つけると何らかの順番で実行す
る。
【0007】スケジューリングに加えて、プロセッサへ
のプリミティブの割り当ては多重プロセッサシステムで
は必要である。プリミティブの割り当てがランタイムの
間に終了しないならば、「ランタイムの意味ある量は計
算し、プロセッサ通信資源は消費される。」ランタイム
スケジューリング及び割り当てプロシージャで重要な問
題がある。第1の問題はヒックキャップ(hiccup)と呼
ばれ、プリミティブの実行列が予め設定されたリアルタ
イムの最終に達したとき起こる。第2の問題は最適な多
重プロセッサ割り当て及びスケジューリングの急速な発
見である。そのような問題はNP−完全解(complete s
olution)である。
のプリミティブの割り当ては多重プロセッサシステムで
は必要である。プリミティブの割り当てがランタイムの
間に終了しないならば、「ランタイムの意味ある量は計
算し、プロセッサ通信資源は消費される。」ランタイム
スケジューリング及び割り当てプロシージャで重要な問
題がある。第1の問題はヒックキャップ(hiccup)と呼
ばれ、プリミティブの実行列が予め設定されたリアルタ
イムの最終に達したとき起こる。第2の問題は最適な多
重プロセッサ割り当て及びスケジューリングの急速な発
見である。そのような問題はNP−完全解(complete s
olution)である。
【0008】NP−完全解は閉ざされた形式の解決を持
った問題の分類である。しかしながら、適切な解決は徹
底的なサーチによって見つけ出すことである。古典的な
NP−完全解は、セールスマンが巡回し停止点に到達し
ない中では最も有効なルートを確立することを望む巡回
するセールスマンの問題である。そのような問題は、全
ての可能性の徹底的なサーチによって解決される。最適
な解決を定めるため各サーチの繰り返しの結果のその後
の分析によって続けられる。全ての可能性の徹底的なサ
ーチは長いランタイムを必要とする。その時間は入力セ
ットのサイズに応じて指数関数的に長くなる。よって、
ランタイムレディスケジューラはかなりの計算力を必要
とし、適切なスケジューリング及びプリミティブの割り
当てに達するために内部プロセッサ通信資源の過渡の使
用を必要とする。
った問題の分類である。しかしながら、適切な解決は徹
底的なサーチによって見つけ出すことである。古典的な
NP−完全解は、セールスマンが巡回し停止点に到達し
ない中では最も有効なルートを確立することを望む巡回
するセールスマンの問題である。そのような問題は、全
ての可能性の徹底的なサーチによって解決される。最適
な解決を定めるため各サーチの繰り返しの結果のその後
の分析によって続けられる。全ての可能性の徹底的なサ
ーチは長いランタイムを必要とする。その時間は入力セ
ットのサイズに応じて指数関数的に長くなる。よって、
ランタイムレディスケジューラはかなりの計算力を必要
とし、適切なスケジューリング及びプリミティブの割り
当てに達するために内部プロセッサ通信資源の過渡の使
用を必要とする。
【0009】ランタイムスケジューリング及び割り当て
のために述べた問題はDFGを実行する前に各タスクの
スケジュールを予め定めることによって避けることがで
きる。そのような事前スケジュールはその機能の1つと
してプリミティブの事前割り当てを含んでいる。事前割
り当て及び事前スケジュールは、実行のためのオブジェ
クトコードの展開の前に最適な解決を見つけるに当たっ
て指数関数的なランタイムを招くかもしれないので、発
見的で蓋然的近似方法が用いられる。事前割り当て及び
事前スケジュールは、必要な手順処理のDFG表現を使
用して最適なものを定めるため複数の割り当て/スケジ
ュールの繰り返しを続ける各プログラマーによって慣例
的に用いられている。これは時間消費で無駄であり、多
重プロセッサへの科学問題のアプリケーションを遅らせ
る。
のために述べた問題はDFGを実行する前に各タスクの
スケジュールを予め定めることによって避けることがで
きる。そのような事前スケジュールはその機能の1つと
してプリミティブの事前割り当てを含んでいる。事前割
り当て及び事前スケジュールは、実行のためのオブジェ
クトコードの展開の前に最適な解決を見つけるに当たっ
て指数関数的なランタイムを招くかもしれないので、発
見的で蓋然的近似方法が用いられる。事前割り当て及び
事前スケジュールは、必要な手順処理のDFG表現を使
用して最適なものを定めるため複数の割り当て/スケジ
ュールの繰り返しを続ける各プログラマーによって慣例
的に用いられている。これは時間消費で無駄であり、多
重プロセッサへの科学問題のアプリケーションを遅らせ
る。
【0010】近時、ソフトウエアパッケージは多重プロ
セッサでのタスクの自動スケジューリングの高いレベル
の達成を可能にするようになってきた。そのようなソフ
トウエアパッケージはトレミー(Ptolemy)というタイ
トルであり、「"トレミー:C++の合成パラディムシ
ュミレーション/プロトタイピングプラットホーム",技
術カレッジ内部文書, カルホルニア大学 バークレー,
カリホルニア」に述べられている。更にソフトウエアパ
ッケージはハイパー(Hyper)と呼ばれ、それは"ハイパ
ー合成システムにおけるハードウエアマッピング及びモ
ジュール選択", C.チュー,メモランダム UCB/ERL M9
2/46,(1992), 技術カレッジ, カルホルニア大学 バー
クレー,カリホルニア」及び「"高レベル合成のアルゴ
リズム:アプローチに基づく資源利用", M.パトコン
ヤック(Potkonjak), メルモ(Mermo) No UCB/ERL M9
2/10,(1992)技術カレッジ, カルホルニア大学 バーク
レー,カリホルニア」に記述されている。
セッサでのタスクの自動スケジューリングの高いレベル
の達成を可能にするようになってきた。そのようなソフ
トウエアパッケージはトレミー(Ptolemy)というタイ
トルであり、「"トレミー:C++の合成パラディムシ
ュミレーション/プロトタイピングプラットホーム",技
術カレッジ内部文書, カルホルニア大学 バークレー,
カリホルニア」に述べられている。更にソフトウエアパ
ッケージはハイパー(Hyper)と呼ばれ、それは"ハイパ
ー合成システムにおけるハードウエアマッピング及びモ
ジュール選択", C.チュー,メモランダム UCB/ERL M9
2/46,(1992), 技術カレッジ, カルホルニア大学 バー
クレー,カリホルニア」及び「"高レベル合成のアルゴ
リズム:アプローチに基づく資源利用", M.パトコン
ヤック(Potkonjak), メルモ(Mermo) No UCB/ERL M9
2/10,(1992)技術カレッジ, カルホルニア大学 バーク
レー,カリホルニア」に記述されている。
【0011】トレミーはDFGとしてプログラムされる
べき複雑な科学問題を可能にし、ここで、プリミティブ
は存在する多重プロセッサアーキテクチャにおいてプロ
セッサに割り当てられる。ハイパーはASIC(Applic
ation Specific IntegratedCircuit)に1つのDFGを
描くことを除きトレミーと同じである。ハイパーはアプ
リケーションを処理するディジタル信号に限定される。
両プログラム共にタスクに事前割り当て及び事前スケジ
ュールのコンセプトを使用し、知られたプロセッサ又は
集積回路アーキテクチャ中のタスクのアロケーションを
可能にする。
べき複雑な科学問題を可能にし、ここで、プリミティブ
は存在する多重プロセッサアーキテクチャにおいてプロ
セッサに割り当てられる。ハイパーはASIC(Applic
ation Specific IntegratedCircuit)に1つのDFGを
描くことを除きトレミーと同じである。ハイパーはアプ
リケーションを処理するディジタル信号に限定される。
両プログラム共にタスクに事前割り当て及び事前スケジ
ュールのコンセプトを使用し、知られたプロセッサ又は
集積回路アーキテクチャ中のタスクのアロケーションを
可能にする。
【0012】
【発明が解決しようとする課題】しかしながら、それら
プログラム又は発明者に知っているその他のものも様々
な多重プロセッサアーキテクチャへの事前割り当て及び
事前スケジュールタスクのランタイムアロケーションを
可能にしない。従来技術は事前割り当て及び事前スケジ
ュールされたDFGの固定のプロセッサアロケーション
への適用の可能性を制限している。
プログラム又は発明者に知っているその他のものも様々
な多重プロセッサアーキテクチャへの事前割り当て及び
事前スケジュールタスクのランタイムアロケーションを
可能にしない。従来技術は事前割り当て及び事前スケジ
ュールされたDFGの固定のプロセッサアロケーション
への適用の可能性を制限している。
【0013】よって、本発明の目的は、様々な多重プロ
セッサアーキテクチャ中の複雑な問題のタスクのアロケ
ーションの改良方法を提供することである。本発明の他
の目的は、論理プロセッサにおいて事前割り当て及び事
前スケジュールされ、選択した多重プロセッサアーキテ
クチャ内のプロセッサに描かせたタスクのアロケーショ
ンの改良方法を提供することである。
セッサアーキテクチャ中の複雑な問題のタスクのアロケ
ーションの改良方法を提供することである。本発明の他
の目的は、論理プロセッサにおいて事前割り当て及び事
前スケジュールされ、選択した多重プロセッサアーキテ
クチャ内のプロセッサに描かせたタスクのアロケーショ
ンの改良方法を提供することである。
【0014】
【課題を解決するための手段】本発明のプログラム自動
展開方法は、多重プロセッサアーキテクチャ内のプロセ
ッサに複雑な問題を有するるタスクを展開させることを
可能にするため、問題の解決の実行に導く各タスクを事
前割り当て及び事前スケジュールする問題解決のDFG
を使用し、多重プロセッサアーキテクチャ内の多数の物
理プロセッサに問題を備えるタスクを事前割り当て及び
事前スケジューリングし、複数の目標アーキテクチャの
いくつかに配列された前記多数の物理プロセッサに前記
タスクの割り当てを可能にする方法であって、問題を解
決するために実行されるべきタスクのデータフローグラ
フを構成するステップaと、各タスク及び前記問題の費
用値を決定するステップbと、データ構造を備えている
論理プロセッサに前記タスクを事前割り当てするステッ
プcと、事前割り当てされたタスクを性能基準に基づい
て事前スケジューリングするステップdと、タスクをマ
シンコードに変換するステップeと、各論理プロセッサ
及び前記目標多重プロセッサアーキテクチャ内に配置さ
れた前記多数の物理プロセッサに事前割り当てされたタ
スクからなる前記マシンコードを展開するステップfと
を備え、そのステップfの展開は、選択した目標多重プ
ロセッサアーキテクチャについてのデータと、物理プロ
セッサにおいて各論理プロセッサ及び事前割り当てされ
たタスクマシンコードをマップするため選択した目標多
重プロセッサアーキテクチャに配置された物理プロセッ
サの現利用率を示すデータとを用いることを特徴として
いる。
展開方法は、多重プロセッサアーキテクチャ内のプロセ
ッサに複雑な問題を有するるタスクを展開させることを
可能にするため、問題の解決の実行に導く各タスクを事
前割り当て及び事前スケジュールする問題解決のDFG
を使用し、多重プロセッサアーキテクチャ内の多数の物
理プロセッサに問題を備えるタスクを事前割り当て及び
事前スケジューリングし、複数の目標アーキテクチャの
いくつかに配列された前記多数の物理プロセッサに前記
タスクの割り当てを可能にする方法であって、問題を解
決するために実行されるべきタスクのデータフローグラ
フを構成するステップaと、各タスク及び前記問題の費
用値を決定するステップbと、データ構造を備えている
論理プロセッサに前記タスクを事前割り当てするステッ
プcと、事前割り当てされたタスクを性能基準に基づい
て事前スケジューリングするステップdと、タスクをマ
シンコードに変換するステップeと、各論理プロセッサ
及び前記目標多重プロセッサアーキテクチャ内に配置さ
れた前記多数の物理プロセッサに事前割り当てされたタ
スクからなる前記マシンコードを展開するステップfと
を備え、そのステップfの展開は、選択した目標多重プ
ロセッサアーキテクチャについてのデータと、物理プロ
セッサにおいて各論理プロセッサ及び事前割り当てされ
たタスクマシンコードをマップするため選択した目標多
重プロセッサアーキテクチャに配置された物理プロセッ
サの現利用率を示すデータとを用いることを特徴として
いる。
【0015】
【実施例】以下、本発明の実施例を図面を参照しつつ詳
細に説明する。本発明は、多重プロセッサアーキテクチ
ャ内のプロセッサに複雑な問題からなるタスクを展開さ
せることを可能にするため、問題の解決の実行に導く各
タスクを事前割り当て及び事前スケジュールする問題解
決のDFGを使用する。各タスクは論理プロセッサに割
り当てられる。論理プロセッサは起こり得る物理プロセ
ッサの機能及び性能の必要条件を定めるデータ構成であ
る。割り当てたタスクに加えて、各論理プロセッサは、
そのタスク又は論理プロセッサによって実行されるべき
タスクが選ばれた多重プロセッサアーキテクチャの物理
プロセッサで展開されるとき満たさなければならない割
り当てられた基準である。事前割り当て及び事前スケジ
ュールのタスクの展開は、物理プロセッサの現在の利用
及び相互関係を示した情報と共に、多重プロセッサアー
キテクチャの利用できる物理プロセッサのマップを用い
ることにより成し得る。
細に説明する。本発明は、多重プロセッサアーキテクチ
ャ内のプロセッサに複雑な問題からなるタスクを展開さ
せることを可能にするため、問題の解決の実行に導く各
タスクを事前割り当て及び事前スケジュールする問題解
決のDFGを使用する。各タスクは論理プロセッサに割
り当てられる。論理プロセッサは起こり得る物理プロセ
ッサの機能及び性能の必要条件を定めるデータ構成であ
る。割り当てたタスクに加えて、各論理プロセッサは、
そのタスク又は論理プロセッサによって実行されるべき
タスクが選ばれた多重プロセッサアーキテクチャの物理
プロセッサで展開されるとき満たさなければならない割
り当てられた基準である。事前割り当て及び事前スケジ
ュールのタスクの展開は、物理プロセッサの現在の利用
及び相互関係を示した情報と共に、多重プロセッサアー
キテクチャの利用できる物理プロセッサのマップを用い
ることにより成し得る。
【0016】本発明は図1に述べていることによってよ
く理解できる。DFGソフトウエアパッケージを使用す
るプログラマーは選択した問題の解決を達成する手順処
理からなる様々なタスクを示すフローグラフ10を作成
する。そのような問題はデータアレイを含み、高並列の
多重プロセッサアーキテクチャでの問題解決に役立つ。
DFG10は模範的な問題の解決に用いられる複数のタ
スク/プリミティブの間の関係を示している。そのDF
Gへのデータ入力は入力ノード12及び14を介してさ
れる。プリミティブA〜Fの各々が複雑さの広い範囲を
表し、各々が予め定められタスクで、また詳細な性能デ
ータ及びコードのオブジェクトファイルネームがDFG
を構築するために用いられるワークステーション等のデ
ータ処理システムのデータベースに既に存在するタスク
からなる。
く理解できる。DFGソフトウエアパッケージを使用す
るプログラマーは選択した問題の解決を達成する手順処
理からなる様々なタスクを示すフローグラフ10を作成
する。そのような問題はデータアレイを含み、高並列の
多重プロセッサアーキテクチャでの問題解決に役立つ。
DFG10は模範的な問題の解決に用いられる複数のタ
スク/プリミティブの間の関係を示している。そのDF
Gへのデータ入力は入力ノード12及び14を介してさ
れる。プリミティブA〜Fの各々が複雑さの広い範囲を
表し、各々が予め定められタスクで、また詳細な性能デ
ータ及びコードのオブジェクトファイルネームがDFG
を構築するために用いられるワークステーション等のデ
ータ処理システムのデータベースに既に存在するタスク
からなる。
【0017】DFG10が一旦作成されると、プログラ
マーはノード相互接続ファイル(Node Interconnect Fi
le)16及び目的画面位置ファイル(Object Screen Po
sitional File)18を含むグラフデータベース15を
作成する。ノード相互接続ファイル16はDFG10の
エッジ(edges)の各々の完全な記述を備え、目的画面
位置ファイル18に関連させてDFG10について述べ
ている。
マーはノード相互接続ファイル(Node Interconnect Fi
le)16及び目的画面位置ファイル(Object Screen Po
sitional File)18を含むグラフデータベース15を
作成する。ノード相互接続ファイル16はDFG10の
エッジ(edges)の各々の完全な記述を備え、目的画面
位置ファイル18に関連させてDFG10について述べ
ている。
【0018】グラフデータベース15は2つの付加ファ
イルを備えいている。ノード割り当てデータファイル2
0は、サブグラフ実行プログラム(SEP)を割り当て
た論理プロセッサのリスト、そのSEPの処理の間に使
用されるべき特定のプリミティブ及び相互依存プログラ
ム間の通信遅延基準を備えられる。ファイル22はノー
ド割り当てデータファイル20にリストされた各論理プ
ロセッサと関係するプリミティブの各々の実行の順番を
定める各SEPの事前スケジュールを含む。
イルを備えいている。ノード割り当てデータファイル2
0は、サブグラフ実行プログラム(SEP)を割り当て
た論理プロセッサのリスト、そのSEPの処理の間に使
用されるべき特定のプリミティブ及び相互依存プログラ
ム間の通信遅延基準を備えられる。ファイル22はノー
ド割り当てデータファイル20にリストされた各論理プ
ロセッサと関係するプリミティブの各々の実行の順番を
定める各SEPの事前スケジュールを含む。
【0019】図2においては、事前割り当て及び事前ス
ケジュールの処理手順が述べられている。グラフデータ
ベース15内のファイル16からのノード相互接続デー
タはSEPの構築を達成するようにDFG10内のプリ
ミティブを区分けし複数の論理プロセッサにおいてそれ
らのプリミティブをマッピングする処理手順からなる事
前割り当てソフトウエアツール24に供給される。論理
プロセッサは物理プロセッサとは区別されるべきであ
る。論理プロセッサはDFG10からSEPの実行を成
すために物理プロセッサによって行なわれる必要がある
機能を述べているだけである。それに続く展開手順処理
(図3に述べられている)の間、予め設定された必要条
件に合致しかつSEPを取り込むための利用処理時間を
有する論理プロセッサに割り当てられたSEPはいずれ
かの物理プロセッサにおいて展開される。
ケジュールの処理手順が述べられている。グラフデータ
ベース15内のファイル16からのノード相互接続デー
タはSEPの構築を達成するようにDFG10内のプリ
ミティブを区分けし複数の論理プロセッサにおいてそれ
らのプリミティブをマッピングする処理手順からなる事
前割り当てソフトウエアツール24に供給される。論理
プロセッサは物理プロセッサとは区別されるべきであ
る。論理プロセッサはDFG10からSEPの実行を成
すために物理プロセッサによって行なわれる必要がある
機能を述べているだけである。それに続く展開手順処理
(図3に述べられている)の間、予め設定された必要条
件に合致しかつSEPを取り込むための利用処理時間を
有する論理プロセッサに割り当てられたSEPはいずれ
かの物理プロセッサにおいて展開される。
【0020】事前割り当てツール24は目標ハードウエ
ア性能データを含むファイル25からの入力を受ける。
その目標ハードウエアはDFGを実行するために用いら
れるべきいくつかの選択された多重プロセッサアーキテ
クチャである。選択のアーキテクチャに一致させるため
にファイル25のデータを変換することにより事前割り
当て及び事前スケジュール動作はその選択のアーキテク
チャに一致させる。ファイル25のデータは物理プロセ
ッサ能力及び相互接続ラインの時間遅延詳細に関して目
標ハードウエアのアーキテクチャを定める。例えば、物
理プロセッサは1以上のクロスバースイッチによって分
離される。クロスバースイッチは接続したプロセッサの
メモリバンク間の伝播遅延を与える。伝播遅延は特定さ
れ各々のプロセッサの仕様と共にあり、目標アーキテク
チャの類似をもたらす論理プロセッサの合成を可能にす
る。
ア性能データを含むファイル25からの入力を受ける。
その目標ハードウエアはDFGを実行するために用いら
れるべきいくつかの選択された多重プロセッサアーキテ
クチャである。選択のアーキテクチャに一致させるため
にファイル25のデータを変換することにより事前割り
当て及び事前スケジュール動作はその選択のアーキテク
チャに一致させる。ファイル25のデータは物理プロセ
ッサ能力及び相互接続ラインの時間遅延詳細に関して目
標ハードウエアのアーキテクチャを定める。例えば、物
理プロセッサは1以上のクロスバースイッチによって分
離される。クロスバースイッチは接続したプロセッサの
メモリバンク間の伝播遅延を与える。伝播遅延は特定さ
れ各々のプロセッサの仕様と共にあり、目標アーキテク
チャの類似をもたらす論理プロセッサの合成を可能にす
る。
【0021】プリミティブライブラリファイル27は目
標ハードウエアの各プリミティブを実行するために必要
なクロックサイクルの数を定めるファイル29内のプリ
ミティブ性能データに含まれる。そのようなデータは実
際のハードウエアを基にした定数を用いて個々のタスク
及び全部の問題の費用を計算する事前割り当てツール2
4を使用可能にする。重要なことは、ファイル25及び
27を用いることにより事前割り当てツール24は全く
異なる目標ハードウエア構成/性能データピクチャに応
じてDFG10内のノードを区分けするため制御され得
ることである。
標ハードウエアの各プリミティブを実行するために必要
なクロックサイクルの数を定めるファイル29内のプリ
ミティブ性能データに含まれる。そのようなデータは実
際のハードウエアを基にした定数を用いて個々のタスク
及び全部の問題の費用を計算する事前割り当てツール2
4を使用可能にする。重要なことは、ファイル25及び
27を用いることにより事前割り当てツール24は全く
異なる目標ハードウエア構成/性能データピクチャに応
じてDFG10内のノードを区分けするため制御され得
ることである。
【0022】事前割り当てはノード相互接続ファイル1
6及びプリミティブ性能ファイルからの情報を一旦受け
ると、SEP中へDFG10の初期区分けを形成する。
区分け/割り当て動作はNP−完全解であり、組み合わ
せのサーチアルゴリズムによって達成される。それは、
事前割り当てツール24がSEP(及びプリミティブ)
が論理プロセッサに割り当てられることを判別し、事前
スケジュールツール26が各SEPのプリミティブの実
行の順番を指定することを思い起こさせる。
6及びプリミティブ性能ファイルからの情報を一旦受け
ると、SEP中へDFG10の初期区分けを形成する。
区分け/割り当て動作はNP−完全解であり、組み合わ
せのサーチアルゴリズムによって達成される。それは、
事前割り当てツール24がSEP(及びプリミティブ)
が論理プロセッサに割り当てられることを判別し、事前
スケジュールツール26が各SEPのプリミティブの実
行の順番を指定することを思い起こさせる。
【0023】事前割り当てツールは、問題のための全費
用値と同様にDFG10内の各プリミティブのための費
用値を初めに計算する。問題のための全費用値は事前割
り当ての量を示す単位のない値であり、好ましくは少な
くとも次のエレメント、論理プロセッサ資源費用、スケ
ジューリングの困難性の基準及びプロセッサ間通信遅延
を含んでいる。
用値と同様にDFG10内の各プリミティブのための費
用値を初めに計算する。問題のための全費用値は事前割
り当ての量を示す単位のない値であり、好ましくは少な
くとも次のエレメント、論理プロセッサ資源費用、スケ
ジューリングの困難性の基準及びプロセッサ間通信遅延
を含んでいる。
【0024】論理プロセッサ資源費用値は使用された論
理プロセッサの数及び各々により消費されたクロックサ
イクルの関数である。論理プロセッサ資源費用は論理プ
ロセッサに割り当てられた各プリミティブの実行のため
に使用されたクロックサイクルの数を合計することによ
って算出される。各プリミティブのためのスケジューリ
ングの困難性は各プリミティブ毎にプリミティブがDF
G内で処理できるとき可能な限り早い(ASAP)時間
及び可能な限り遅い(ALAP)時間を示す値を判別す
ることにより定められる。ASAP時間はプリミティブ
が与えられた問題を実行することかできる最も早い時間
である。ALAP時間は与えられた特定問題を実行する
ことができる最も遅い時間である。プリミティブのスラ
ック(遊び)時間はASAP時刻とALAP時間との間
であり、プリミティブが実行を開始しなければならない
間の時間の長さを定める。2つのプリミティブの間のオ
ーバラップ時間はそれらがほぼ同時に実行されるなら
ば、各スラック時間の重なりであり、2つのプリミティ
ブ間の干渉のレベルを示す。
理プロセッサの数及び各々により消費されたクロックサ
イクルの関数である。論理プロセッサ資源費用は論理プ
ロセッサに割り当てられた各プリミティブの実行のため
に使用されたクロックサイクルの数を合計することによ
って算出される。各プリミティブのためのスケジューリ
ングの困難性は各プリミティブ毎にプリミティブがDF
G内で処理できるとき可能な限り早い(ASAP)時間
及び可能な限り遅い(ALAP)時間を示す値を判別す
ることにより定められる。ASAP時間はプリミティブ
が与えられた問題を実行することかできる最も早い時間
である。ALAP時間は与えられた特定問題を実行する
ことができる最も遅い時間である。プリミティブのスラ
ック(遊び)時間はASAP時刻とALAP時間との間
であり、プリミティブが実行を開始しなければならない
間の時間の長さを定める。2つのプリミティブの間のオ
ーバラップ時間はそれらがほぼ同時に実行されるなら
ば、各スラック時間の重なりであり、2つのプリミティ
ブ間の干渉のレベルを示す。
【0025】スケジューリングの困難性は特定のプリミ
ティブに特定の論理プロセッサを割り当てることからの
結果が、1つのプリミティブとオーバラップしている他
のプリミティブとの間のオーバラップ時間を判別するこ
とにより見つけ出される。スケジューリングの困難性は
プリミティブの各々のスラック時間の長さに応じてい
る。オーバラップのプリミティブのスラック時間が大き
くなるほど、オーバラップの量が小さいならば干渉は少
なくなる。このファンクション(関数)は次の式(1)
に示した如く算出される。
ティブに特定の論理プロセッサを割り当てることからの
結果が、1つのプリミティブとオーバラップしている他
のプリミティブとの間のオーバラップ時間を判別するこ
とにより見つけ出される。スケジューリングの困難性は
プリミティブの各々のスラック時間の長さに応じてい
る。オーバラップのプリミティブのスラック時間が大き
くなるほど、オーバラップの量が小さいならば干渉は少
なくなる。このファンクション(関数)は次の式(1)
に示した如く算出される。
【0026】
【数1】
【0027】ここで、Lpjは論理プロセッサj、ASLは
プリミティブAのスラック時間、BSLはプリミティブB
のスラック時間、OABはプリミティブA,Bのスラック
時間のオーバラップである。DFG問題の全スケジュー
リング費用は全てのプリミティブに亘る合計である。費
用ファンクションの項はプロセッサ間の通信遅延の費用
である。プロセッサ間の通信遅延値はASAP時間、A
LAP時間を固持するとき相互に関係するタスクを実行
する論理プロセッサ間で調整することができるクロック
サイクルの時間遅延を示す。他のプロセッサ間の通信費
用は必要なデータを伝達するために要求される合計時間
である。
プリミティブAのスラック時間、BSLはプリミティブB
のスラック時間、OABはプリミティブA,Bのスラック
時間のオーバラップである。DFG問題の全スケジュー
リング費用は全てのプリミティブに亘る合計である。費
用ファンクションの項はプロセッサ間の通信遅延の費用
である。プロセッサ間の通信遅延値はASAP時間、A
LAP時間を固持するとき相互に関係するタスクを実行
する論理プロセッサ間で調整することができるクロック
サイクルの時間遅延を示す。他のプロセッサ間の通信費
用は必要なデータを伝達するために要求される合計時間
である。
【0028】費用ファンクションは上記の費用エレメン
ト各々の合計であり、特定の事前割り当ての動作の程度
を形成する。事前割り当てツール24によって実行され
た動作はSEPへのノード及び論理プロセッサへのSE
Pの割り当てを見つけ出す。その割り当ては全部の問題
に対する解決のための最小費用ファンクションを与え
る。事前割り当て問題の解決は組み合わせの最適化を含
む。最初に事前割り当てが行われ、それに続いてその費
用ファンクションの計算が行われ、そして、それに続く
その他のことが行なわれる。各行為の後、割り当ての変
化方向がより良い割り当てに導かれていることを示して
いる減少した費用ファンクションにより費用ファンクシ
ョンが増加又は減少したか判別される。
ト各々の合計であり、特定の事前割り当ての動作の程度
を形成する。事前割り当てツール24によって実行され
た動作はSEPへのノード及び論理プロセッサへのSE
Pの割り当てを見つけ出す。その割り当ては全部の問題
に対する解決のための最小費用ファンクションを与え
る。事前割り当て問題の解決は組み合わせの最適化を含
む。最初に事前割り当てが行われ、それに続いてその費
用ファンクションの計算が行われ、そして、それに続く
その他のことが行なわれる。各行為の後、割り当ての変
化方向がより良い割り当てに導かれていることを示して
いる減少した費用ファンクションにより費用ファンクシ
ョンが増加又は減少したか判別される。
【0029】事前割り当ての動作の結果は割り当てられ
た特定のSEPを有する論理プロセッサのリストにあ
る。各SEPは論理プロセッサによって実行されるべき
割り当てられたプリミティブを示す。論理プロセッサに
伴う割り当てスケジュールは例えば、処理状態が他から
の入力に応ずる論理プロセッサで動作する互いに関係す
るSEP間としての必要なプロセッサ間の通信遅延時間
を定める。
た特定のSEPを有する論理プロセッサのリストにあ
る。各SEPは論理プロセッサによって実行されるべき
割り当てられたプリミティブを示す。論理プロセッサに
伴う割り当てスケジュールは例えば、処理状態が他から
の入力に応ずる論理プロセッサで動作する互いに関係す
るSEP間としての必要なプロセッサ間の通信遅延時間
を定める。
【0030】DFG10に示した模範的問題において、
ノード割り当てデータファイル20に示されたように、
事前割り当てツール24は3つの論理プロセッサLP1
〜LP3に3つのSEPの割り当てをさせる。SEP1
は論理プロセッサLP1に割り当てられ、プリミティブ
A,B,Eを使用する。SEP2は論理プロセッサLP
2で実行され、プリミティブC,Dを使用する。SEP
3は論理プロセッサLP2に割り当てられ、プリミティ
ブFを使用する。
ノード割り当てデータファイル20に示されたように、
事前割り当てツール24は3つの論理プロセッサLP1
〜LP3に3つのSEPの割り当てをさせる。SEP1
は論理プロセッサLP1に割り当てられ、プリミティブ
A,B,Eを使用する。SEP2は論理プロセッサLP
2で実行され、プリミティブC,Dを使用する。SEP
3は論理プロセッサLP2に割り当てられ、プリミティ
ブFを使用する。
【0031】初期の事前割り当てデータは、各SEPの
プリミティブの各々の実行の順番が取り決められるよう
に今、ノード割り当てファイル20から事前スケジュー
ルツール26へ移動される。事前スケジュールツール2
6はDFG10内のプリミティブを位相幾何学的に分類
(ソート)することによって得られるASAP基準を使
用する。この動作はDFG10内のノードのリニアリス
ト(linear list)を構築することによって達成され、
その構築は他のノードに関係がないデータ入力を有する
第1ノードと、そのリストのうちの早期のノードにだけ
関係する入力を有する中間ノードとに応じて行なわれ
る。事前スケジュールツール26への他の入力は目標ハ
ードウエア性能データファイル25及びプリミティブ性
能データファイル29から供給される。
プリミティブの各々の実行の順番が取り決められるよう
に今、ノード割り当てファイル20から事前スケジュー
ルツール26へ移動される。事前スケジュールツール2
6はDFG10内のプリミティブを位相幾何学的に分類
(ソート)することによって得られるASAP基準を使
用する。この動作はDFG10内のノードのリニアリス
ト(linear list)を構築することによって達成され、
その構築は他のノードに関係がないデータ入力を有する
第1ノードと、そのリストのうちの早期のノードにだけ
関係する入力を有する中間ノードとに応じて行なわれ
る。事前スケジュールツール26への他の入力は目標ハ
ードウエア性能データファイル25及びプリミティブ性
能データファイル29から供給される。
【0032】事前スケジュールツール26は各SEPで
用いられた各プリミティブの実行の順番を取り決めるた
めファイル25及び27からのデータに関連してノード
のリニアリストを使用する。よって、事前スケジュール
ツール26は、そのリニアリストから、プリミティブA
がプリミティブEより上にリストされ、またプリミティ
ブEがプリミティブBの下にあるかを判別することがで
きる。割り当てた事前スケジュールはSEP1がA,
B,Eの順番でプリミティブを実行することである。残
りのSEPも同様にプリミティブの順番が取り決められ
る。
用いられた各プリミティブの実行の順番を取り決めるた
めファイル25及び27からのデータに関連してノード
のリニアリストを使用する。よって、事前スケジュール
ツール26は、そのリニアリストから、プリミティブA
がプリミティブEより上にリストされ、またプリミティ
ブEがプリミティブBの下にあるかを判別することがで
きる。割り当てた事前スケジュールはSEP1がA,
B,Eの順番でプリミティブを実行することである。残
りのSEPも同様にプリミティブの順番が取り決められ
る。
【0033】利用可能な時間内において特定の論理プロ
セッサのためにプリミティブの順番が取り決められない
こと、又はあまりにも早期にいくつかのプリミティブの
順番が取り決められることは起こり得る。この問題はD
FG10内の各プリミティブを優先順位を付けることに
よって解決される。リニアリストの第1のプリミティブ
に代わって高い優先順位のプリミティブが選択される。
いくつかのプリミティブの優先順位はそのプリミティブ
とDFGの終了位置との間の長さを判別することによっ
て得られる。最も高い優先順位のプリミティブはDFG
の終了位置までのノードの距離を判別することにより設
定される。この優先順位の技術は、各プリミティブが物
理プロセッサに最終的に展開されるとき最も遠くのプリ
ミティブが他のプリミティブより前に実行されること常
に確実にする。事前スケジュールが一度得られると、そ
れはSEP事前スケジュールファイル22に記憶され、
品質値はSEP事前スケジュールの性能品質を示したも
のとして算出される。品質基準の数値が用いられるが、
好ましい基準はギャップ(gap)時間である。ギャップ
時間は論理プロセッサが不動作で、タスクを終了し必要
なデータを備えて前の論理プロセッサを待っている時間
である。スケジュール品質データは個々の論理プロセッ
サ用のギャップ時間及びDFG内の全てのSEPのため
の全部のギャップ時間の合計を含んで良い。
セッサのためにプリミティブの順番が取り決められない
こと、又はあまりにも早期にいくつかのプリミティブの
順番が取り決められることは起こり得る。この問題はD
FG10内の各プリミティブを優先順位を付けることに
よって解決される。リニアリストの第1のプリミティブ
に代わって高い優先順位のプリミティブが選択される。
いくつかのプリミティブの優先順位はそのプリミティブ
とDFGの終了位置との間の長さを判別することによっ
て得られる。最も高い優先順位のプリミティブはDFG
の終了位置までのノードの距離を判別することにより設
定される。この優先順位の技術は、各プリミティブが物
理プロセッサに最終的に展開されるとき最も遠くのプリ
ミティブが他のプリミティブより前に実行されること常
に確実にする。事前スケジュールが一度得られると、そ
れはSEP事前スケジュールファイル22に記憶され、
品質値はSEP事前スケジュールの性能品質を示したも
のとして算出される。品質基準の数値が用いられるが、
好ましい基準はギャップ(gap)時間である。ギャップ
時間は論理プロセッサが不動作で、タスクを終了し必要
なデータを備えて前の論理プロセッサを待っている時間
である。スケジュール品質データは個々の論理プロセッ
サ用のギャップ時間及びDFG内の全てのSEPのため
の全部のギャップ時間の合計を含んで良い。
【0034】事前割り当てツール24は事前スケジュー
ルツール26からのスケジュール品質データに応答して
結果としてのギャップ時間を少なくするために各論理プ
ロセッサへのタスク割り当てを変更する。この動作は、
タスク割り当て変更の有効性について判断がされるよう
にユーザに変更したギャップ時間の報告を含む。事前割
り当てツール24及び事前スケジュールツール26の両
方の動作は、所定の回数だけ繰り返すか又はスケジュー
ル品質データが複数の繰り返しに亘って良くなっている
ことを示す基準により決定される回数だけ繰り返して良
い。全ての繰り返しの終了においては、ノード割り当て
ファイル20及びSEP事前スケジュールファイル22
がDFG10の後の最適事前割り当て及び事前スケジュ
ールを含むと推測される。
ルツール26からのスケジュール品質データに応答して
結果としてのギャップ時間を少なくするために各論理プ
ロセッサへのタスク割り当てを変更する。この動作は、
タスク割り当て変更の有効性について判断がされるよう
にユーザに変更したギャップ時間の報告を含む。事前割
り当てツール24及び事前スケジュールツール26の両
方の動作は、所定の回数だけ繰り返すか又はスケジュー
ル品質データが複数の繰り返しに亘って良くなっている
ことを示す基準により決定される回数だけ繰り返して良
い。全ての繰り返しの終了においては、ノード割り当て
ファイル20及びSEP事前スケジュールファイル22
がDFG10の後の最適事前割り当て及び事前スケジュ
ールを含むと推測される。
【0035】ファイル22の内容は各SEP用にリスト
するソースを発生するグラフコンパイラ30に供給され
る。図2に示した例において、SEPソースコードファ
イルはC言語であると仮定されている。SEP1,2,
3の各々用のグラフコンパイラの結果のファイルは標準
のCコンパイラ32に供給される。コンパイラ32は標
準コンパイラ動作に応じてSEPソースファイルの各々
のために中間コードを生成する。標準リンカ34はコン
パイラ32からの中間コードを、プリミティブライブラ
リ27のプリミティブオブジェクトコードファイル36
から各プリミティブについて述べているオブジェクトコ
ードと共に受ける。リンカ34は各SEP1,2,3用
の実行可能なオブジェクトコードを生成し、グラフオブ
ジェクトファイル40の中にそのオブジェクトコードを
ロードする。
するソースを発生するグラフコンパイラ30に供給され
る。図2に示した例において、SEPソースコードファ
イルはC言語であると仮定されている。SEP1,2,
3の各々用のグラフコンパイラの結果のファイルは標準
のCコンパイラ32に供給される。コンパイラ32は標
準コンパイラ動作に応じてSEPソースファイルの各々
のために中間コードを生成する。標準リンカ34はコン
パイラ32からの中間コードを、プリミティブライブラ
リ27のプリミティブオブジェクトコードファイル36
から各プリミティブについて述べているオブジェクトコ
ードと共に受ける。リンカ34は各SEP1,2,3用
の実行可能なオブジェクトコードを生成し、グラフオブ
ジェクトファイル40の中にそのオブジェクトコードを
ロードする。
【0036】グラフオブジェクトファイル40のグラフ
ヘッダ部分42にはSEPの制約条件がロードされる。
制約条件は相互に関係するSEPのために定める。制約
条件である最大時間距離は選択された物理プロセッサ間
に存在することができ、相互に関係するSEPの実行を
まだ可能にする。例えば、グラフヘッダ42に示したよ
うに、SEP1はSEP2を実行するプロセッサから倍
の距離より大きく離れていない論理プロセッサにおいて
実行されなければならない。グラフヘッダ部分42は、
また各々割り当てられたSEPの実行につく論理プロセ
ッサの動作性能能力の基準を各SEPについて有してい
る。
ヘッダ部分42にはSEPの制約条件がロードされる。
制約条件は相互に関係するSEPのために定める。制約
条件である最大時間距離は選択された物理プロセッサ間
に存在することができ、相互に関係するSEPの実行を
まだ可能にする。例えば、グラフヘッダ42に示したよ
うに、SEP1はSEP2を実行するプロセッサから倍
の距離より大きく離れていない論理プロセッサにおいて
実行されなければならない。グラフヘッダ部分42は、
また各々割り当てられたSEPの実行につく論理プロセ
ッサの動作性能能力の基準を各SEPについて有してい
る。
【0037】SEPの制約条件、利用率及びSEPオブ
ジェクトコードファイルは、目標多重プロセッサアーキ
テクチャ54内の複数の物理プロセッサにおけるオブジ
ェクトコードの展開動作において制御プロセッサ50
(図3に示す)によって用いられる。制御プロセッサ5
0はグラフヘッダファイル42からのデータ及びSEP
1,2,3用のオブジェクトコードファイルの各々のデ
ータにアクセスする。グラフヘッダファイル42内のデ
ータは制御プロセッサ50内のランタイムグラフアロケ
ーション手順処理部56に供給される。また、制御プロ
セッサ50は各物理プロセッサの利用率と共に多重プロ
セッサアーキテクチャ54内の全ての物理プロセッサ5
2の利用率を記録するファイル58を含む。ランタイム
グラフ管理手順処理部60は多重プロセッサアーキテク
チャ54内の複数の物理プロセッサのうちの選択した1
つにSEP1,2,3のオブジェクトコード表の各々を
展開するランタイムグラフアロケーション手順処理部5
6を制御する。
ジェクトコードファイルは、目標多重プロセッサアーキ
テクチャ54内の複数の物理プロセッサにおけるオブジ
ェクトコードの展開動作において制御プロセッサ50
(図3に示す)によって用いられる。制御プロセッサ5
0はグラフヘッダファイル42からのデータ及びSEP
1,2,3用のオブジェクトコードファイルの各々のデ
ータにアクセスする。グラフヘッダファイル42内のデ
ータは制御プロセッサ50内のランタイムグラフアロケ
ーション手順処理部56に供給される。また、制御プロ
セッサ50は各物理プロセッサの利用率と共に多重プロ
セッサアーキテクチャ54内の全ての物理プロセッサ5
2の利用率を記録するファイル58を含む。ランタイム
グラフ管理手順処理部60は多重プロセッサアーキテク
チャ54内の複数の物理プロセッサのうちの選択した1
つにSEP1,2,3のオブジェクトコード表の各々を
展開するランタイムグラフアロケーション手順処理部5
6を制御する。
【0038】各論理プロセッサ及びそれと関連するSE
Pはランタイムグラフアロケーション手順処理部56に
よってアクセスされる。制約条件及び利用率を含むSE
Pは多重プロセッサアーキテクチャ54内の使用可能な
物理プロセッサ52に対し比較され、特定の論理プロセ
ッサのSEPが割り当てられるべきである物理プロセッ
サについて判別される。物理プロセッサがSEPのプロ
セッサ利用率必要条件が合致する使用可能な処理容量を
有し、また相互接続のSEP(そこには時間距離制約条
件が存在する)を実行する他の物理プロセッサについて
物理的に位置させている限り、選択された物理プロセッ
サに対しSEPの展開をなすことができる。もし様々な
SEPの全ての資源要求が多重プロセッサアーキテクチ
ャ54内の物理プロセッサによって満たされるならば、
ランタイムグラフアロケーション手順処理部56はロー
ドしたオブジェクトコードのランタイム実行を生成し、
オブジェクトコードがロードされている各物理プロセッ
サ(グラフ外部入力列を含む)に入力データが供給され
るようにする。
Pはランタイムグラフアロケーション手順処理部56に
よってアクセスされる。制約条件及び利用率を含むSE
Pは多重プロセッサアーキテクチャ54内の使用可能な
物理プロセッサ52に対し比較され、特定の論理プロセ
ッサのSEPが割り当てられるべきである物理プロセッ
サについて判別される。物理プロセッサがSEPのプロ
セッサ利用率必要条件が合致する使用可能な処理容量を
有し、また相互接続のSEP(そこには時間距離制約条
件が存在する)を実行する他の物理プロセッサについて
物理的に位置させている限り、選択された物理プロセッ
サに対しSEPの展開をなすことができる。もし様々な
SEPの全ての資源要求が多重プロセッサアーキテクチ
ャ54内の物理プロセッサによって満たされるならば、
ランタイムグラフアロケーション手順処理部56はロー
ドしたオブジェクトコードのランタイム実行を生成し、
オブジェクトコードがロードされている各物理プロセッ
サ(グラフ外部入力列を含む)に入力データが供給され
るようにする。
【0039】上記の記述は本発明の1つの実施例を示し
てに過ぎない。本発明から外れることなく様々な他の方
法や変更がこの分野の当業者には考えることができる。
よって、本発明はそのような他の方法、変更及び付加ク
レームの範囲内の変化を含んでいる。
てに過ぎない。本発明から外れることなく様々な他の方
法や変更がこの分野の当業者には考えることができる。
よって、本発明はそのような他の方法、変更及び付加ク
レームの範囲内の変化を含んでいる。
【0040】
【発明の効果】上記のことから、複雑な処理のDFG表
現は事前ロードの目標ハードウエア性能データに基づい
て複数の論理プロセッサに事前割り当て及び事前スケジ
ュールをされることが理解できる。そして、事前割り当
て及び事前スケジュールのSEPから得られたオブジェ
クトコードが展開されるときには、利用可能な資源に応
じて目標ハードウエアに展開させることができる。異な
る多重プロセッサアーキテクチャの性能を表す時間デー
タ(実行時間、データ相互接続時間)を事前割り当て及
び事前スケジュールの各ツールに供給することによって
上記した手順処理が続けられ、ソフトウエアツールに変
更なく様々な多重プロセッサアーキテクチャに展開され
るべきことを元々のDFGに可能にするのである。
現は事前ロードの目標ハードウエア性能データに基づい
て複数の論理プロセッサに事前割り当て及び事前スケジ
ュールをされることが理解できる。そして、事前割り当
て及び事前スケジュールのSEPから得られたオブジェ
クトコードが展開されるときには、利用可能な資源に応
じて目標ハードウエアに展開させることができる。異な
る多重プロセッサアーキテクチャの性能を表す時間デー
タ(実行時間、データ相互接続時間)を事前割り当て及
び事前スケジュールの各ツールに供給することによって
上記した手順処理が続けられ、ソフトウエアツールに変
更なく様々な多重プロセッサアーキテクチャに展開され
るべきことを元々のDFGに可能にするのである。
【図1】本発明の方法の動作のためにメインデータベー
スを備えるグラフデータベースに供給するDFGを示す
図である。
スを備えるグラフデータベースに供給するDFGを示す
図である。
【図2】割り当て及びスケジュールされたSEPのオブ
ジェクトコードへの変換を含む事前割り当て及び事前ス
ケジューリング機能を示す図である。
ジェクトコードへの変換を含む事前割り当て及び事前ス
ケジューリング機能を示す図である。
【図3】割り当てられたSEPを有する論理プロセッサ
が多重プロセッサアーキテクチャ内の物理プロセッサに
展開される手順処理を示す図である。
が多重プロセッサアーキテクチャ内の物理プロセッサに
展開される手順処理を示す図である。
10 DFG 24 事前割り当てツール 26 事前スケジュールツール 27 プリミティブライブラリ 40 グラフオブジェクトファイル 42 グラフヘッダファイル 50 制御プロセッサ 52 物理プロセッサ 54 多重プロセッサアーキテクチャ
フロントページの続き (72)発明者 ジョン ケー.エリオット アメリカ合衆国 カリフォルニア州 94566プリーサントン ドローズ コート 450 (72)発明者 リチャード ジェイ.トビアス アメリカ合衆国 カリフォルニア州 95120サン ジョセ クイーンズブリッジ ウェイ 1123 (72)発明者 アラン ジェイ.ハーリング アメリカ合衆国 カリフォルニア州 95125サン ジョセ ジェラルド ウェイ 2668 (72)発明者 クライグ アール.モーガン アメリカ合衆国 カリフォルニア州 95133サン ジョセ ケープ タウン プ レース 839 (72)発明者 ジョン エー.ヒラー アメリカ合衆国 カリフォルニア州 94306パロ アルト ラモナ ストリート 2699
Claims (11)
- 【請求項1】 多重プロセッサアーキテクチャ内の多数
の物理プロセッサに問題を備えるタスクを事前割り当て
及び事前スケジューリングし、複数の目標アーキテクチ
ャのいくつかに配列された前記多数の物理プロセッサに
前記タスクの割り当てを可能にする方法であって、 前記問題を解決するために実行されるべきタスクのデー
タフローグラフを構成するステップaと、 各タスク及び前記問題の費用値を決定するステップb
と、 データ構造を備えている論理プロセッサに前記タスクを
事前割り当てするステップcと、 前記事前割り当てされたタスクを性能基準に基づいて事
前スケジューリングするステップdと、 前記タスクをマシンコードに変換するステップeと、 各論理プロセッサ及び前記目標多重プロセッサアーキテ
クチャ内に配置された前記多数の物理プロセッサに事前
割り当てされたタスクからなる前記マシンコードを展開
するステップfとを備え、 そのステップfの展開は、前記選択した目標多重プロセ
ッサアーキテクチャについてのデータと、前記物理プロ
セッサにおいて各前記論理プロセッサ及び事前割り当て
されたタスクマシンコードをマップするため前記選択し
た目標多重プロセッサアーキテクチャに配置された前記
物理プロセッサの現利用率を示すデータとを用いること
を特徴とするプログラム自動展開方法。 - 【請求項2】 前記ステップbにおいて決定される前記
費用値は各タスク及び前記問題のための実行時間に関係
した要因を含むことを特徴とする請求項1記載の方法。 - 【請求項3】 前記ステップcの事前割り当ては相互に
関係するタスクが割り当てられる論理プロセッサのため
にプロセッサ間の通信遅延基準を決定し、前記事前割り
当ては問題を備えた全てのタスクのために最小費用値を
達成すべく行なうことを特徴とする請求項2記載の方
法。 - 【請求項4】 前記ステップfの前記展開は前記ステッ
プcで決定されたプロセッサ間通信遅延基準を満たすよ
うに相互に関係するタスクを備えた論理プロセッサが前
記物理プロセッサにおいてマップされることを特徴とす
る請求項3記載の方法。 - 【請求項5】 選択された目標アーキテクチャについて
の詳細を含むデータベースが備えられ、前記ステップc
の事前割り当て及び前記ステップdの事前スケジューリ
ングでは無関係及び相互に関係する両方のタスクが前記
物理プロセッサに割り当てされるべきであるかを決定す
るに当たって前記詳細を利用することを特徴とする請求
項1記載の方法。 - 【請求項6】 前記ステップfは利用率記録を保持する
ことにより物理プロセッサの現在の利用の決定を行な
い、前記利用率記録は、前記論理プロセッサ及びそれの
事前割り当てのタスクの展開のために物理プロセッサが
活用されているかの決定に用いることを特徴とする請求
項5記載の方法。 - 【請求項7】 利用可能な物理プロセッサに第1の論理
プロセッサ及び割り当てられた第1のタスクを展開する
ことにおいて、前記ステップfはプロセッサ間遅延基準
を満たす他の物理プロセッサが前記プロセッサ間遅延基
準を必要とする第2の論理プロセッサの割り当て及び割
り当てられた第2のタスクのために利用可能か否かを決
定し、利用可能でない場合には前記プロセッサ間遅延基
準を満たす物理プロセッサに第1及び第2の論理プロセ
ッサの少なくとも1の展開を行なうことを特徴とする請
求項6記載の方法。 - 【請求項8】 前記ステップdにおいて定められた前記
性能基準は、各タスクが可能な限り早い(ASAP)方
式で実行されることであることを特徴とする請求項1記
載の方法。 - 【請求項9】 前記DFGの位相幾何学的ソートに基づ
いて各タスクのためにASAP時間及び可能な限り遅い
(ALAP)時間が設定され、前記位相幾何学的ソート
はタスクのリニアリストを得ており、前記リニアリスト
の各タスクは、入力を必要としない前記他のタスク及び
前記リニアリストの前記他のタスクに続く全てのタスク
より先に位置することを特徴とする請求項8記載の方
法。 - 【請求項10】 前記ステップaは、更に、事前スケジ
ュールの品質基準を設定するために前記事前割り当てさ
れたタスクの事前スケジュールを分析し、変化した事前
割り当てとなるように前記ステップbを繰り返し、前記
変化した事前割り当ては前記品質基準が改善された否か
を判別するために繰り返しの再スケジューリングステッ
プと再スケジューリングの分析ステップとによることを
特徴とする請求項1記載の方法。 - 【請求項11】 論理プロセッサの前記品質基準は、1
つのタスクが前記論理プロセッサで実行される前に前記
論理プロセッサが他の論理プロセッサからの入力を待た
なければならないギャップ時間の量であることを特徴と
する請求項10記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/046,028 US5418953A (en) | 1993-04-12 | 1993-04-12 | Method for automated deployment of a software program onto a multi-processor architecture |
| US08/046028 | 1993-04-12 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0721144A true JPH0721144A (ja) | 1995-01-24 |
Family
ID=21941193
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6073505A Pending JPH0721144A (ja) | 1993-04-12 | 1994-04-12 | 多重プロセッサアーキテクチャにおけるプログラム自動展開方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5418953A (ja) |
| EP (1) | EP0624842A3 (ja) |
| JP (1) | JPH0721144A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004509386A (ja) * | 2000-06-30 | 2004-03-25 | タレス ネデルラント ベー.フェー. | 複数のプロセッサにソフトウェア機能を自動的に割り当てる方法 |
| US7331045B2 (en) | 2003-08-08 | 2008-02-12 | International Business Machines Corporation | Scheduling technique for software pipelining |
| JP2021034020A (ja) * | 2019-08-15 | 2021-03-01 | インテル・コーポレーション | ワークロードのスタティックマッピングの順不同にパイプライン化された実行を可能にする方法及び装置 |
Families Citing this family (90)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5522041A (en) * | 1992-12-17 | 1996-05-28 | Hitachi, Ltd. | Data processor and data transfer method |
| US5551051A (en) * | 1994-09-20 | 1996-08-27 | Motorola, Inc. | Isolated multiprocessing system having tracking circuit for verifyng only that the processor is executing set of entry instructions upon initiation of the system controller program |
| US5631856A (en) * | 1995-01-17 | 1997-05-20 | International Business Machines Corporation | Test sequence optimization process for a circuit tester |
| GB2302742B (en) * | 1995-06-26 | 2000-02-16 | Sony Uk Ltd | Interactive interface system |
| US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
| US5889989A (en) * | 1996-09-16 | 1999-03-30 | The Research Foundation Of State University Of New York | Load sharing controller for optimizing monetary cost |
| DE19651075A1 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
| US6064660A (en) * | 1996-12-12 | 2000-05-16 | Optimay Corporation | GSM transceiver with portable protocol stack |
| DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
| ATE243390T1 (de) | 1996-12-27 | 2003-07-15 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.) |
| US6212576B1 (en) | 1997-01-27 | 2001-04-03 | Optimay Corporation | Operating system interface for use with multitasking GSM protocol stacks |
| US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
| US6112023A (en) * | 1997-02-24 | 2000-08-29 | Lucent Technologies Inc. | Scheduling-based hardware-software co-synthesis of heterogeneous distributed embedded systems |
| US6230303B1 (en) | 1997-02-24 | 2001-05-08 | Lucent Technologies Inc. | Proximity-based cluster allocation for hardware-software co-synthesis of heterogeneous distributed embedded systems |
| US6110220A (en) * | 1997-02-24 | 2000-08-29 | Lucent Technologies Inc. | Concurrent hardware-software co-synthesis of hard real-time aperiodic and periodic specifications of embedded system architectures |
| US6117180A (en) * | 1997-02-24 | 2000-09-12 | Lucent Technologies Inc. | Hardware-software co-synthesis of heterogeneous distributed embedded systems for low overhead fault tolerance |
| US6178542B1 (en) | 1997-02-24 | 2001-01-23 | Lucent Technologies Inc. | Hardware-software co-synthesis of embedded system architectures using quality of architecture metrics |
| JPH1125134A (ja) * | 1997-05-09 | 1999-01-29 | Toshiba Corp | 論理回路自動設計方法及びシステム並びにその自動設計処理を行うプログラムを記憶した媒体 |
| US6023680A (en) * | 1997-05-15 | 2000-02-08 | Panasonic Technologies, Inc. | Methods, apparatus and computer program products for automated visual inspection |
| US6366876B1 (en) * | 1997-09-29 | 2002-04-02 | Sun Microsystems, Inc. | Method and apparatus for assessing compatibility between platforms and applications |
| US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
| US5999734A (en) * | 1997-10-21 | 1999-12-07 | Ftl Systems, Inc. | Compiler-oriented apparatus for parallel compilation, simulation and execution of computer programs and hardware models |
| DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
| US6256679B1 (en) * | 1997-12-23 | 2001-07-03 | Simmonds Precision Products, Inc. | Blackboard-centric layered software architecture for an embedded airborne fuel gauging subsystem |
| US6097886A (en) * | 1998-02-17 | 2000-08-01 | Lucent Technologies Inc. | Cluster-based hardware-software co-synthesis of heterogeneous distributed embedded systems |
| US6415384B1 (en) | 1998-10-30 | 2002-07-02 | Lucent Technologies Inc. | Hardware/software co-synthesis of dynamically reconfigurable embedded systems |
| US7003660B2 (en) | 2000-06-13 | 2006-02-21 | Pact Xpp Technologies Ag | Pipeline configuration unit protocols and communication |
| JP3780732B2 (ja) * | 1999-03-10 | 2006-05-31 | 株式会社日立製作所 | 分散制御システム |
| FR2791789B1 (fr) * | 1999-04-02 | 2001-08-10 | Thomson Csf | Procede generique d'aide au placement d'applications de traitement de signal sur calculateurs paralleles |
| DE10081643D2 (de) | 1999-06-10 | 2002-05-29 | Pact Inf Tech Gmbh | Sequenz-Partitionierung auf Zellstrukturen |
| JP4475614B2 (ja) * | 2000-04-28 | 2010-06-09 | 大正製薬株式会社 | 並列処理方法におけるジョブの割り当て方法および並列処理方法 |
| US7876748B1 (en) | 2000-09-07 | 2011-01-25 | International Business Machines Corporation | Stable hash-based mapping computation for a dynamically varying target set |
| AU2002220600A1 (en) * | 2000-10-06 | 2002-04-15 | Pact Informationstechnologie Gmbh | Cell system with segmented intermediate cell structure |
| US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
| US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
| US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
| US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
| US7581076B2 (en) * | 2001-03-05 | 2009-08-25 | Pact Xpp Technologies Ag | Methods and devices for treating and/or processing data |
| WO2002103532A2 (de) | 2001-06-20 | 2002-12-27 | Pact Xpp Technologies Ag | Verfahren zur bearbeitung von daten |
| US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
| US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
| US20030056091A1 (en) * | 2001-09-14 | 2003-03-20 | Greenberg Craig B. | Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations |
| US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
| US20030149962A1 (en) * | 2001-11-21 | 2003-08-07 | Willis John Christopher | Simulation of designs using programmable processors and electronically re-configurable logic arrays |
| US7328195B2 (en) | 2001-11-21 | 2008-02-05 | Ftl Systems, Inc. | Semi-automatic generation of behavior models continuous value using iterative probing of a device or existing component model |
| US7577822B2 (en) | 2001-12-14 | 2009-08-18 | Pact Xpp Technologies Ag | Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization |
| AU2003208266A1 (en) | 2002-01-19 | 2003-07-30 | Pact Xpp Technologies Ag | Reconfigurable processor |
| WO2003071432A2 (de) * | 2002-02-18 | 2003-08-28 | Pact Xpp Technologies Ag | Bussysteme und rekonfigurationsverfahren |
| US7245616B1 (en) * | 2002-03-20 | 2007-07-17 | Applied Micro Circuits Corporation | Dynamic allocation of packets to tasks |
| US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
| US7254812B1 (en) * | 2002-05-31 | 2007-08-07 | Advanced Micro Devices, Inc. | Multi-processor task scheduling |
| US7159099B2 (en) * | 2002-06-28 | 2007-01-02 | Motorola, Inc. | Streaming vector processor with reconfigurable interconnection switch |
| US7140019B2 (en) * | 2002-06-28 | 2006-11-21 | Motorola, Inc. | Scheduler of program instructions for streaming vector processor having interconnected functional units |
| US7415601B2 (en) * | 2002-06-28 | 2008-08-19 | Motorola, Inc. | Method and apparatus for elimination of prolog and epilog instructions in a vector processor using data validity tags and sink counters |
| US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
| AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
| WO2004038599A1 (de) | 2002-09-06 | 2004-05-06 | Pact Xpp Technologies Ag | Rekonfigurierbare sequenzerstruktur |
| US8146063B2 (en) * | 2003-02-20 | 2012-03-27 | Koninklijke Philips Electronics N.V. | Translation of a series of computer instructions |
| JP4700611B2 (ja) | 2003-08-28 | 2011-06-15 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | データ処理装置およびデータ処理方法 |
| US7290122B2 (en) * | 2003-08-29 | 2007-10-30 | Motorola, Inc. | Dataflow graph compression for power reduction in a vector processor |
| JP4057989B2 (ja) * | 2003-09-26 | 2008-03-05 | 株式会社東芝 | スケジューリング方法および情報処理システム |
| US7607132B2 (en) * | 2004-04-08 | 2009-10-20 | Taiwan Semiconductor Manufacturing Co., Ltd. | Process scheduling system and method |
| US8898256B2 (en) | 2004-07-13 | 2014-11-25 | International Business Machines Corporation | Prioritization of application component distribution |
| US8171474B2 (en) * | 2004-10-01 | 2012-05-01 | Serguei Mankovski | System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface |
| JP4405365B2 (ja) * | 2004-10-27 | 2010-01-27 | パナソニック株式会社 | プログラム変換装置及び方法 |
| EP1854024A4 (en) | 2005-01-13 | 2008-11-05 | Hsbc North America Holdings In | COMPUTER SOFTWARE IMPLEMENTED FRAME FOR THE CONFIGURATION AND OUTPUT MANAGEMENT OF GROUP SYSTEM SOFTWARE AND METHOD THEREFOR |
| US20060195845A1 (en) * | 2005-02-28 | 2006-08-31 | Rhine Scott A | System and method for scheduling executables |
| US20070050774A1 (en) * | 2005-08-24 | 2007-03-01 | Eldson John C | Time-aware systems |
| US7895596B2 (en) * | 2005-09-13 | 2011-02-22 | Hewlett-Packard Development Company, L.P. | Processor assignment in multi-processor systems |
| WO2007082730A1 (de) | 2006-01-18 | 2007-07-26 | Pact Xpp Technologies Ag | Hardwaredefinitionsverfahren |
| US20080147221A1 (en) * | 2006-12-13 | 2008-06-19 | Garg Sukesh | Grid modeling tool |
| KR100893527B1 (ko) | 2007-02-02 | 2009-04-17 | 삼성전자주식회사 | 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법 |
| JP4811808B2 (ja) * | 2007-12-13 | 2011-11-09 | 株式会社リコー | 情報処理装置、情報処理方法、プログラムおよび記録媒体 |
| US7945768B2 (en) * | 2008-06-05 | 2011-05-17 | Motorola Mobility, Inc. | Method and apparatus for nested instruction looping using implicit predicates |
| US8261273B2 (en) * | 2008-09-02 | 2012-09-04 | International Business Machines Corporation | Assigning threads and data of computer program within processor having hardware locality groups |
| US8266477B2 (en) * | 2009-01-09 | 2012-09-11 | Ca, Inc. | System and method for modifying execution of scripts for a job scheduler using deontic logic |
| US8479216B2 (en) * | 2009-08-18 | 2013-07-02 | International Business Machines Corporation | Method for decentralized load distribution in an event-driven system using localized migration between physically connected nodes and load exchange protocol preventing simultaneous migration of plurality of tasks to or from a same node |
| US8479215B2 (en) * | 2009-08-18 | 2013-07-02 | International Business Machines Corporation | Decentralized load distribution to reduce power and/or cooling costs in an event-driven system |
| KR101086905B1 (ko) * | 2009-11-25 | 2011-11-24 | 한양대학교 산학협력단 | 파이프라인 멀티 코어 시스템 및 파이프라인 멀티 코어 시스템의 효과적인 태스크 할당 방법 |
| WO2011160695A1 (en) * | 2010-06-24 | 2011-12-29 | Abb As | Method and tool for automatic distribution of control code in a safety system |
| US20120158865A1 (en) * | 2010-12-20 | 2012-06-21 | Kixia, Inc. | Managing tasks and information |
| EP2703918A1 (en) * | 2012-09-04 | 2014-03-05 | ABB Research Ltd. | Configuration of control applications on multi-host controllers |
| CN103246556B (zh) * | 2013-05-21 | 2016-10-05 | 中国人民解放军防空兵学院 | 对空监视雷达通用性能仿真方法和构架 |
| US10191733B2 (en) * | 2013-06-25 | 2019-01-29 | Sap Se | Software change process orchestration in a runtime environment |
| AU2017261390B2 (en) * | 2016-05-06 | 2021-12-09 | Geoquest Systems B.V. | Seismic processing task predictive scheduler |
| US10310837B2 (en) | 2016-08-25 | 2019-06-04 | General Electric Company | Method and apparatus for updating industrial assets |
| US10200875B2 (en) * | 2017-04-17 | 2019-02-05 | DeepSig Inc. | Placement and scheduling of radio signal processing dataflow operations |
| US11080111B1 (en) * | 2020-02-24 | 2021-08-03 | Nvidia Corporation | Technique for sharing context among multiple threads |
| EP4177750A1 (en) * | 2021-11-04 | 2023-05-10 | Collins Aerospace Ireland, Limited | Scheduling tasks for execution by a processor system |
| CN115657634B (zh) * | 2022-09-30 | 2024-06-04 | 重庆赛力斯凤凰智创科技有限公司 | 汽车软件架构、模块关联方法、计算机设备和存储介质 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5021947A (en) * | 1986-03-31 | 1991-06-04 | Hughes Aircraft Company | Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing |
| US5247675A (en) * | 1991-08-09 | 1993-09-21 | International Business Machines Corporation | Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system |
-
1993
- 1993-04-12 US US08/046,028 patent/US5418953A/en not_active Expired - Lifetime
-
1994
- 1994-04-12 JP JP6073505A patent/JPH0721144A/ja active Pending
- 1994-04-12 EP EP94302565A patent/EP0624842A3/en not_active Withdrawn
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004509386A (ja) * | 2000-06-30 | 2004-03-25 | タレス ネデルラント ベー.フェー. | 複数のプロセッサにソフトウェア機能を自動的に割り当てる方法 |
| US7331045B2 (en) | 2003-08-08 | 2008-02-12 | International Business Machines Corporation | Scheduling technique for software pipelining |
| US7930688B2 (en) | 2003-08-08 | 2011-04-19 | International Business Machines Corporation | Scheduling technique for software pipelining |
| US7962907B2 (en) | 2003-08-08 | 2011-06-14 | International Business Machines Corporation | Scheduling technique for software pipelining |
| JP2021034020A (ja) * | 2019-08-15 | 2021-03-01 | インテル・コーポレーション | ワークロードのスタティックマッピングの順不同にパイプライン化された実行を可能にする方法及び装置 |
| US11847497B2 (en) | 2019-08-15 | 2023-12-19 | Intel Corporation | Methods and apparatus to enable out-of-order pipelined execution of static mapping of a workload |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0624842A2 (en) | 1994-11-17 |
| EP0624842A3 (en) | 1996-01-17 |
| US5418953A (en) | 1995-05-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0721144A (ja) | 多重プロセッサアーキテクチャにおけるプログラム自動展開方法 | |
| CN103530187B (zh) | 为多处理器系统设计程序 | |
| Park et al. | Edge-centric modulo scheduling for coarse-grained reconfigurable architectures | |
| US7107568B2 (en) | System and method for reducing wire delay or congestion during synthesis of hardware solvers | |
| Wolf | An architectural co-synthesis algorithm for distributed, embedded computing systems | |
| Hoang et al. | Scheduling of DSP programs onto multiprocessors for maximum throughput | |
| EP1138001B1 (en) | Reconfigurable programmable logic device computer system | |
| WO2000031652A9 (en) | Reconfigurable programmable logic device computer system | |
| CN115421897B (zh) | 一种面向芯粒的深度神经网络流水线并行调度方法及装置 | |
| Ly et al. | A generalized interconnect model for data path synthesis | |
| Polychronopoulos | Toward auto-scheduling compilers | |
| Rosvall et al. | Throughput propagation in constraint-based design space exploration for mixed-criticality systems | |
| Mendelson et al. | Mapping data flow programs on a VLSI array of processors | |
| Xie et al. | Co-synthesis with custom ASICs | |
| US20070028198A1 (en) | Method and apparatus for allocating data paths to minimize unnecessary power consumption in functional units | |
| Rosenstiel et al. | Scheduling and assignment in high level synthesis | |
| Bringmann et al. | Cross-level hierarchical high-level synthesis | |
| Haddad | Optimal Load Allocation for Parallel and Distributed Processing | |
| Rajan | Automatic synthesis of microprocessors | |
| Zhu et al. | Priority list scheduling algorithm for response time analysis optimization using dependency-driven non-critical nodes parallelism factor: Y. Zhu et al. | |
| Hsu et al. | High level synthesis in the THEDA system | |
| Falk et al. | Integrated modeling using finite state machines and dataflow graphs | |
| Dalkiliç et al. | Multi-schedule design space exploration: an alternative synthesis framework | |
| Srivastava et al. | Analysis of Power Minimization for Modified Force Directed Scheduling and Integer Linear Programming | |
| Majumder et al. | Task allocation strategies for fpga based heterogeneous system on chip |