JP2002508102A - 高水準プログラミング言語をコンパイルするための方法 - Google Patents
高水準プログラミング言語をコンパイルするための方法Info
- Publication number
- JP2002508102A JP2002508102A JP50587699A JP50587699A JP2002508102A JP 2002508102 A JP2002508102 A JP 2002508102A JP 50587699 A JP50587699 A JP 50587699A JP 50587699 A JP50587699 A JP 50587699A JP 2002508102 A JP2002508102 A JP 2002508102A
- Authority
- JP
- Japan
- Prior art keywords
- group
- task
- time
- code block
- scheduling
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
Claims (1)
- 【特許請求の範囲】 1. 高水準プログラミング言語で書かれたコンピュータプログラムを、マイ クロプロセッサと接続された1つ以上の特定用途向け集積回路による実行のため のプログラムへ自動的にコンパイルするための、コンピュータにより実行される 方法であって、 前記1つ以上の特定用途向け集積回路により実行されるべき特別命令であって 、前記マイクロプロセッサによる実行用に書かれた所定の入力コンピュータプロ グラムに関する相対的な性能向上という結果となる1つ以上の特別命令のセット を自動的に決定する段階と、 前記1つ以上の特別命令を有するコードを生成する段階と を具備することを特徴とする方法。 2. 前記コードを生成する段階は、前述の機能のローディングおよび活性化 のための命令を有する、前記マイクロプロセッサによる実行用のコードを生成す る段階を具備することを特徴とする請求項1に記載の方法。 3. 前記1つ以上の特定用途向け集積回路内の回路構成により実行されるべ き機能を有するコードブロックを選択する段階と、 前記コードブロックを、領域制約および実行時間制約のうちの少なくとも1つ に基づいてグループにまとめる段階と、 前記機能のローディングを予定する段階と、 前記機能の活性化を予定する段階と をさらに具備することを特徴とする請求項2に記載の方法。 4. 前記回路構成の詳細な集積回路レイアウトを生成する段階をさらに具備 することを特徴とする請求項2に記載の方法。 5. 前記機能に関するコンフィギュレーションデータを生成する段階をさら に具備することを特徴とする請求項4に記載の方法。 6. 前記命令は、特定用途向け集積回路上において実行される、ロード、活 性化、呼び出し、および/または解放機能に対する特別命令を備えることを特徴 とする請求項2に記載の方法。 7. 前記グループにまとめる段階は、前記選択されたコードブロックに関す る開始時間と終了時間とを計算する段階であることを特徴とする請求項2に記載 の方法。 8. 前記開始時間および前記終了時間は、前記選択されたコードブロックが 各々の並列動作に関して固定されたオーバーヘッドと並列に実行されると仮定し て計算されることを特徴とする請求項7に記載の方法。 9. 前記固定されたオーバーヘッドは、OV=I+A+Lとして計算され、 ここでIは、前記特定用途向け集積回路をコプロセッサ命令として呼び出すため に必要とされる平均時間であり、Aは、活性化コンフィギュレーション命令を発 行するために必要とされる平均時間+活性化のための平均ストール時間であり、 Lは、ロードコンフィギュレーションを発行するために必要とされる平均時間+ ローディングのための平均ストール時間であることを特徴とする請求項8に記載 の方法。 10. 前記グループにまとめる段階は、グループ内において最も遅い終了時 間と最も早い終了時間との間の差が最小とされるように実行されることを特徴と する請求項7に記載の方法。 11. 前記グループにまとめる段階は、各々のグループに関して、そのグル ープの機能を実行するための回路構成が特定用途向け集積回路のブロックの指定 された容量を超過しないように実行されることを特徴とする請求項7に記載の方 法。 12. 前記グループにまとめる段階は、 ゼロの総割り当て領域を備える新たなグループを開く段階と、 前記コードブロックを所定の順序でソートしかつ横断する段階と、 各々のコードブロックに関して、前記ブロックの前記領域+前記グループの割 り当て領域が、単一のグループ用に指定された最大領域を超過しなければ、前記 コードブロックを前記グループへ追加し、かつ、前記コードブロックの前記領域 を前記グループの割り当て領域へ追加し、そうでなければ、新たなグループを開 いて、前記コードブロックを前記新たなグループへ追加し、かつ、前記コードブ ロックの前記領域を前記新たなグループの割り当て領域へ追加する段階と を具備することを特徴とする請求項7に記載の方法。 13. 前記所定の順序は、終了時間の増加方向の順序を一次鍵とし、かつ、 開始時間の増加方向の順序を二次鍵とする形式であることを特徴とする請求項1 2に記載の方法。 14. 前記グループにまとめる段階は、 前記コードブロックを、前記終了時間の減少方向の順序に横断する段階と、 各々のコードブロックに関して、前記コードブロックが属するグループの開始 幅と終了幅とを決定する段階と、 前記コードブロックの領域+異なるグループの割り当てられた領域が単一のグ ループ用に指定された最大領域を超過せず、かつ、前記コードブロックを再度割 り当てることが、前記コードブロックが属するグループと、異なるグループとに 関する前記開始幅と前記終了幅のうちの少なくとも1つにおける正味の向上とい う結果となれば、前記コードブロックを前記異なるグループへ再度割り当てる段 階とをさらに具備し、 前記開始幅は、同じグループに属する全てのコードブロックの最も遅い開始時 間と最も早い開始時間との間の差であり、前記終了幅は、同じグループに属する 全てのコードブロックの最も遅い終了時間と最も早い終了時間との間の差である ことを特徴とする請求項13に記載の方法。 15. 前記選択する段階は、前記コンピュータプログラムが単一のマイクロ プロセッサ上で実行されるときに、各々のコードブロックに費やされた時間の百 分率をサンプリングする段階を具備することを特徴とする請求項2に記載の方法 。 16. 前記選択する段階は、 前記高水準プログラミング言語を、前記コンピュータプログラムの制御依存性 とデータ依存性とを表す中間データ構造に構文解析する段階と、 前記中間データ構造における暗黙並列処理の総計を解析する段階と をさらに具備することを特徴とする請求項15に記載の方法。 17. 前記選択する段階は、前記コンピュータプログラムの前記コードブロ ックのうちの少なくとも幾つかに関して、特定用途向け集積回路内の回路構成を 用いてコードブロックを実装することに関するコストおよび利益を見積もる段階 をさらに具備することを特徴とする請求項16に記載の方法。 18. 前記コードブロックを実装することに関するコストおよび利益を見積 もる段階は、 前記コードブロックが特定用途向け集積回路として実装されれば、実行時間の 縮小を見積もる段階と、 前記コードブロックが特定用途向け集積回路として実装されれば、必要とされ るレイアウト領域を見積もる段階と を具備することを特徴とする請求項17に記載の方法。 19. 前記選択する段階は、 特定用途向け集積回路の単一ブロックの最大領域を表す第1ランタイムパラメ ータと、特定用途向け集積回路として実装するために考慮すべき全てのブロック のための最大総領域を表す第2ランタイムパラメータを受け入れる段階と、 前記第1および第2ランタイムパラメータを満たしかつ実行時間の見積もり総 縮小量を最大にするコードブロックのセットを選択する段階と をさらに具備することを特徴とする請求項18に記載の方法。 20. 前記第1および第2ランタイムパラメータを満たしかつ実行時間の見 積もり総縮小量を最大にするコードブロックのセットを選択する段階は、 前記コードブロックを、実行時間の縮小量が減少していく順序にソートしかつ 横断する段階と、 各々のコードブロックに関して、 前記縮小がゼロに等しければ、終了する段階と、 前記必要とされるレイアウトを見積もる段階と、 前記領域が、特定用途向け集積回路の単一のブロック用に指定された最大領 域を超過しなければ、このコードブロックをスキップする段階と、 前記全てのブロック用に指定された最大総領域を、1より大きな一定値だけ 増加させる段階と、 以前選択されたコードブロックの総領域+現在のコードブロック用に見積も られた必要なレイアウト領域が、前記一定値だけ増加された指定された最大総領 域を超過すれば、終了する段階と、 そうでなければ、前記コードブロックを選択する段階と、 前記選択されたコードブロック上においてさらなる選択を行うために、ナッ プサック・アルゴリズムと前記最大総領域とを用いる段階と を具備することを特徴とする請求項19に記載の方法。 21. 前記実行時間の縮小が、R=T(1−1/P)という式にしたがって 見積もられ、ここでTは、前記コードブロックに費やされた実行時間の百分率で あり、Pは、前記コードブロックにおいて並列に実行され得るパスの数であるこ とを特徴とする請求項18に記載の方法。 22. 前記中間データ構造は、ノードを有するツリー構造であり、かつ、前 記レイアウト領域を見積もる段階は、 前記ツリー構造の上向きの横断を実行する段階と、 前記ツリー内の各々のノードを回路プリミティブのライブラリからのセルにマ ッピングする段階と、 前記マッピングされたセルの総領域を計算する段階と、 セルの相互接続のために必要とされるさらなる領域を計算する段階と を具備することを特徴とする請求項18に記載の方法。 23. 前記マッピングは、レジスタへのスカラー変数マップ、レジスタファ イルへのアレイマップ、加算器への加算および減算演算子マップ、加算器へのイ ンクリメントおよびデクリメント演算子マップ、乗算器への乗算および除算演算 子マップ、比較器への等式および不等式演算子マップ、アキュムレータへの+= ,−=演算子マップ、乗算−アキュムレータへの*=,/=演算子マップ、シフ トレジスタへの<<,>>演算子マップ、ブールゲートへの&,|,〜,^演算 子マップ、ステートマシンへの分岐マップ、およびステートマシンへのループマ ップのうちの少なくとも1つを有する多数の所定のマッピングにしたがって実行 されることを特徴とする請求項22に記載の方法。 24. 前記マッピングは、前記コンピュータプログラムにより期待されるデ ータ精度をサポートするために必要とされる有効ピット数を決定することを有す ることを特徴とする請求項22に記載の方法。 25. 前記相互接続のために必要とされるさらなる領域を計算する段階は、 領域=max(0,(A−B))という式にしたがって実行され、ここで、Aは、 相互接続のために必要とされる総領域の椎定値であり、Bば、前記相互接続によ る使用のためにマッピングされたセル内において有効な領域の推定値であること を特徴とする請求項22に記載の方法。 26. 前記Aは、相互接続の幅と、前記マッピングされたセル数の平方根の 分数倍として計算された相互接続の平均長さと、相互接続の総数とに関するラン タイムパラメータの積として計算されることを特徴とする請求項25に記載の方 法。 27. 前記Bは、相互接続のためのセル領域の分数と、前記マッピングされ た全セルの総領域とに関するランタイムパラメータの積として計算されることを 特徴とする請求項25に記載の方法。 28. 各々のグループに関する実行時間の縮小を見積もる段階をさらに具備 することを特徴とする請求項16に記載の方法。 29. スケジューリングの活性化は、領域制約および実行時間制約のうちの 少なくとも1つを条件として、実行時間全体が最小にされるように実行されるこ とを特徴とする請求項28に記載の方法。 30. 前記スケジューリングの活性化は、グループ内の全てのコードブロッ クのデータ依存性および制御依存性が侵害されないように実行されることを特徴 とする請求項29に記載の方法。 31. 前記スケジューリングの活性化は、特定用途向け回路の同時ブロック の指定された数が超過されないように実行されることを特徴とする請求項29に 記載の方法。 32. 前記スケジューリングは、 各々のグループを別個のタスクとしてモデリングする段階と、 特定用途向け集積回路上において再構成可能なロジックの各々の有効ブロック をプロセッサとしてモデリングする段階と、 変更されたマイクロプロセッサ・スケジューリング・アルゴリズムを実行する 段階と をさらに具備することを特徴とする請求項29に記載の方法。 33. 前記中間データ構造は、アークが依存性を表すグラフであり、 前記各々のグループを別個のタスクとしてモデリングする段階は、 各々のグループに関して、ノードを前記グラフに加える段階と、 グループに割り当てられた各々のコードブロックに関して、以前にノードの代 わりに前記コードブロックの地点を指していたアークが前記グループを表すよう に前記グラフを変更する段階と、 前記グループに割り当てられたコードブロックの最も遅い終了時間と最も早い 開始時間との間の差を決定する段階と、 前記差と等しい、前記グループの必要とされる時間を設定する段階と を具備することを特徴とする請求項32に記載の方法。 34. 前記変更されたマイクロプロセッサ・スケジューリング・アルゴリズ ムを実行する段階は、 標準リストスケジューリング・マイクロプロセッサ・スケジューリング・アル ゴリズムを実行する段階と、 前記アルゴリズムの実行中に、新たに準備状態となったタスクの準備ができた ときにどのプロセッサも有効ではない場合に、 プロセッサが有効となるまでストール時間を計算する段階と、 新たに準備状態となったタスクと、該新たに準備状態となったタスクの準備が できた時刻に実行するように予定されたタスクとを備える競合するタスクのリス トを作成する段階と、 最小に見積もられた実行時間の縮小を伴う競合するタスクを見つける段階とを 具備することを特徴とする請求項32に記載の方法。 35. 前記変更されたマイクロプロセッサ・スケジューリング・アルゴリズ ムを実行する段階は、前記ストール時間が前記最小の縮小以下であれば、プロセ ッサが有効となったときに実行するための新たに準備状態となったタスクをスケ ジューリングし、かつ、前記マイクロプロセッサ・スケジューリング・アルゴリ ズムを実行し続ける段階とをさらに具備することを特徴とする請求項34に記載 の方法。 36. 前記変更されたマイクロプロセッサ・スケジューリング・アルゴリズ ムを実行する段階は、前記ストール時間が前記最小の縮小よりも長ければ、前記 最小の縮小を伴うタスクを捨て、かつ、前記マイクロプロセッサ・スケジューリ ング・アルゴリズムを実行し続ける段階をさらに具備することを特徴とする請求 項35に記載の方法。 37. 前記変更されたマイクロプロセッサ・スケジューリング・アルゴリズ ムを実行する段階は、前記ストール時間が前記最小の縮小よりも長ければ、 前記新たに準備状態となったタスクを、2つの新たなタスクに置き換える段階 と、 前記新たに準備状態となったタスクの準備ができる時刻に実行するように予定 されたそれそれのタスクを、2つの新たなタスクそれぞれに置き換える段階とを さらに具備し、前記2つの新たなタスクのうち、 第1の新たなタスクは、プロセッサが有効となるときより後の開始時間を有す る前記新たに準備状態となったタスクのコードブロックを有し、 第2の新たなタスクは、前記新たに準備状態となったタスクの他のコードブロ ックを有することをさらに具備することを特徴とする請求項35に記載の方法。 38. 前記変更されたマイクロプロセッサ・スケジューリング・アルゴリズ ムを実行する段階は、 前記新たなタスクのうち、最小の実行時間の縮小を伴うタスクを見つける段階 と、 前記最小の実行時間の縮小を伴うタスクを捨てる段階と をさらに具備することを特徴とする請求項37に記載の方法。 39. スケジューリング・ローディングは、領域制約および実行時間制約の うちの少なくとも1つを条件として、実行時間全体が最小にされるように実行さ れることを特徴とする請求項28に記載の方法。 40. 前記スケジューリング・ローディングは、各々の機能の活性化がロー ディングによって先行されるように実行されることを特徴とする請求項39に記 載の方法。 41. 前記スケジューリング・ローディングは、特定用途向け回路のブロッ クのためにロードされた共存するグループ用に指定された容量が超過されないよ うに実行されることを特徴とする請求項39に記載の方法。 42. 前記データ構造は、制御フローグラフを有し、 前記スケジューリング・ローディングは、 各々のグループをタスクとして、かつ、特定用途向け集積回路の各々の有効ブ ロックを、指定された最大数の同時タスクを備えたプロセッサとしてモデリング する段階と、 首尾よく予定された活性化を伴う各々のグループに関して、前記グループを表 すタスクの終了時間と等しい終了時間と、前記グループを表す前記タスクの開始 時間から、グループをロードするために必要な時間を指定するランタイムパラメ ータを差し引いたものに等しい開始時間とを有する新たなロード_グループタス クを作成する段階と を具備することを特徴とする請求項39に記載の方法。 43. 前記スケジューリング・ローディングは、各々の新たなロード_グル ープタスクに関して、ノードを前記制御フローグラフ内に挿入する段階をさらに 具備することを特徴とする請求項42に記載の方法。 44. 前記スケジューリング・ローディングは、活性化の直前に先行する前 記制御フローグラフ内に分岐ノードを見つける段階と、 ロード_グループタスクのストール時間を、前記分岐ノードの終了時間から前 記ロード_グループタスクの開始時間を差し引いたものとして計算する段階と、 前記ストール時間が前記グループ用に見積もられた実行時間の縮小以下であれ ば、前記分岐ノードから前記ロード_グループタスクへの制御フローアークを作 成し、そうでなければ、前記ロード_グループタスクを捨て、かつ、前記グルー プを捨てる段階と をさらに具備することを特徴とする請求項42に記載の方法。 45. 前記スケジューリング・ローディングは、変更されたリスト処理マイ クロプロセッサ・スケジューリング・アルゴリズムを実行する段階をさらに具備 することを特徴とする請求項43または請求項44に記載の方法。 46. 前記変更されたリスト処理マイクロプロセッサ・スケジューリング・ アルゴリズムを実行する段階は、 指定された最大数の同時タスクをプロセッサ毎に伴うリストスケジューリング ・マイクロプロセッサ・スケジューリング・アルゴリズムを実行する段階と、 前記アルゴリズムの実行中に、新たに準備状態となったタスクの準備ができた ときにどのプロセッサも有効ではない場合に、 プロセッサが有効となるまでストール時間を計算する段階と、 新たに準備状態となったタスクと、該新たに準備状態となったタスクの準備が できた時刻に実行するように予定されたタスクとを備える競合するタスクのリス トを作成する段階と、 最小に見積もられた実行時間の縮小を伴う競合するタスクを見つける段階とを 具備することを特徴とする請求項45に記載の方法。 47. 前記変更されたマイクロプロセッサ・スケジューリング・アルゴリズ ムを実行する段階は、 前記ストール時間が前記最小の縮小以下であれば、プロセッサが有効となった ときに実行するための新たに準備状態となったタスクをスケジューリングし、対 応するグループタスクのために前記スケジューリングを調整し、かつ、前記マイ クロプロセッサ・スケジューリング・アルゴリズムを実行し続ける段階をさらに 具備することを特徴とする請求項46に記載の方法。 48. 前記変更されたマイクロプロセッサ・スケジューリング・アルゴリズ ムを実行する段階は、前記ストール時間が前記最小の縮小よりも長ければ、前記 最小の縮小を伴うタスクとその対応するグループとを捨て、かつ、前記マイクロ プロセッサ・スケジューリング・アルゴリズムを実行し続ける段階を具備するこ とを特徴とする請求項46に記載の方法。 49. 前記変更されたマイクロプロセッサ・スケジューリング・アルゴリズ ムを実行する段階は、 前記制御フローグラフにおいて、捨てられたロード_グループタスクを表すノ ードと、前記対応するグループの活性化を表すノードとの間に分岐ノードが介在 すれば、 活性化の直前に先行する前記制御フローグラフ内に分岐ノードを見つける段階 と、 ロード_グループタスクのストール時間を、前記分岐ノードの終了時間から前 記ロード_グループタスクの開始時間を差し引いたものとして計算する段階と、 前記ストール時間が前記グループ用に見積もられた実行時間の縮小以下であれ ば、前記分岐ノードから前記ロード_グループタスクへの制御フローアークを作 成し、そうでなければ、前記ロード_グループタスクを捨て、かつ、前記グルー プを捨てる段階と をさらに具備することを特徴とする請求項48に記載の方法。 50. 前記変更されたマイクロプロセッサ・スケジューリング・アルゴリズ ムを実行する段階は、前記ストール時間が前記最小の縮小よりも長ければ、 前記新たに準備状態となったタスクを、2つの新たなそれそれのタスクおよび 対応するグループに置き換える段階と、 前記新たに準備状態となったタスクの準備ができる時刻に実行するように予定 されたそれそれのタスクを、2つの新たなタスクおよび対応するグループに置き 換える段階と をさらに具備し、 第1の新たなグループは、プロセッサが有効となるときより後の開始時間を有 する前記新たに準備状態となったタスクのコードブロックを有し、 第2の新たなグループは、前記新たに準備状態となったタスクの他のコードブ ロックを有することをさらに具備することを特徴とする請求項48に記載の方法 。 51. 前記変更されたマイクロプロセッサ・スケジューリング・アルゴリズ ムを実行する段階は、 前記新たなタスクのうち、最小の実行時間の縮小を有する対応するグループを 伴うタスクを見つける段階と、 前記最小の縮小を有する対応する区画を伴うタスクを捨てる段階と をさらに具備することを特徴とする請求項50に記載の方法。 52. 前記変更されたマイクロプロセッサ・スケジューリング・アルゴリズ ムを実行する段階は、 前記制御フローグラフにおいて、捨てられたロード_グループタスクを表すノ ードと、前記対応グループの活性化を表すノードとの間に分岐ノードが介在すれ ば、 活性化の直前に先行する前記制御フローグラフ内に分岐ノードを見つける段階 と、 ロード_グループタスクのストール時間を、前記分岐ノードの終了時間から前 記ロード_グループタスクの開始時間を差し引いたものとして計算する段階と、 前記ストール時間が前記グループ用に見積もられた実行時間の縮小以下であれ ば、前記分岐ノードから前記ロード_グループタスクへの制御フローアークを作 成し、そうでなければ、前記ロード_グループタスクを捨て、かつ、前記グルー プを捨てる段階と をさらに具備することを特徴とする請求項51に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/884,377 | 1997-06-27 | ||
US08/884,377 US5966534A (en) | 1997-06-27 | 1997-06-27 | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
PCT/US1998/013563 WO1999000731A1 (en) | 1997-06-27 | 1998-06-29 | Method for compiling high level programming languages |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002508102A true JP2002508102A (ja) | 2002-03-12 |
JP2002508102A5 JP2002508102A5 (ja) | 2005-11-24 |
Family
ID=25384489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50587699A Ceased JP2002508102A (ja) | 1997-06-27 | 1998-06-29 | 高水準プログラミング言語をコンパイルするための方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US5966534A (ja) |
EP (1) | EP0991997A4 (ja) |
JP (1) | JP2002508102A (ja) |
KR (1) | KR100614491B1 (ja) |
AU (1) | AU8275498A (ja) |
CA (1) | CA2290649A1 (ja) |
WO (1) | WO1999000731A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7191312B2 (en) | 2001-05-24 | 2007-03-13 | Ipflex Inc. | Configurable interconnection of multiple different type functional units array including delay type for different instruction processing |
JP2010146577A (ja) * | 2002-10-31 | 2010-07-01 | Src Computers Inc | 高級プログラミング言語におけるプログラムをハイブリッド計算プラットフォームの統一された実行可能要素に変換するためのプロセス |
JP2012089154A (ja) * | 2005-09-30 | 2012-05-10 | Coware Inc | マルチコアアーキテクチャにおけるスケジューリング |
JP2019506695A (ja) * | 2016-01-26 | 2019-03-07 | アイキャット・エルエルシー | 再構成可能アルゴリズムによるパイプラインコアおよびアルゴリズムマッチングパイプラインコンパイラを有するプロセッサ |
JP7461380B2 (ja) | 2019-05-23 | 2024-04-03 | ザイリンクス インコーポレイテッド | ヘテロジニアスプログラマブルデバイスのためのハードウェアソフトウェア設計時のフロー収束 |
Families Citing this family (190)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6077315A (en) * | 1995-04-17 | 2000-06-20 | Ricoh Company Ltd. | Compiling system and method for partially reconfigurable computing |
US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
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 |
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 |
DE19654846A1 (de) | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
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.) |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
DE19704728A1 (de) * | 1997-02-08 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines |
DE19704742A1 (de) * | 1997-02-11 | 1998-09-24 | Pact Inf Tech Gmbh | Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand |
US6330659B1 (en) | 1997-11-06 | 2001-12-11 | Iready Corporation | Hardware accelerator for an object-oriented programming language |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
JP3539613B2 (ja) * | 1997-12-03 | 2004-07-07 | 株式会社日立製作所 | ループ飛び出し文を含むループに対する配列サマリ解析方法 |
US7565461B2 (en) | 1997-12-17 | 2009-07-21 | Src Computers, Inc. | Switch/network adapter port coupling a reconfigurable processing element to one or more microprocessors for use with interleaved memory controllers |
US6076152A (en) * | 1997-12-17 | 2000-06-13 | Src Computers, Inc. | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem |
US7373440B2 (en) | 1997-12-17 | 2008-05-13 | Src Computers, Inc. | Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
EP1351154A2 (en) | 1998-11-20 | 2003-10-08 | Altera Corporation | Reconfigurable programmable logic device computer system |
US6286138B1 (en) * | 1998-12-31 | 2001-09-04 | International Business Machines Corporation | Technique for creating remotely updatable programs for use in a client/server environment |
US6477683B1 (en) | 1999-02-05 | 2002-11-05 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
US6453407B1 (en) * | 1999-02-10 | 2002-09-17 | Infineon Technologies Ag | Configurable long instruction word architecture and instruction set |
WO2002013000A2 (de) | 2000-06-13 | 2002-02-14 | Pact Informationstechnologie Gmbh | Pipeline ct-protokolle und -kommunikation |
DE19910863A1 (de) * | 1999-03-11 | 2000-09-21 | Siemens Ag | Vorrichtung und Verfahren zum Verarbeiten von Aufträgen |
DE10081643D2 (de) | 1999-06-10 | 2002-05-29 | Pact Inf Tech Gmbh | Sequenz-Partitionierung auf Zellstrukturen |
WO2001013583A2 (en) | 1999-08-16 | 2001-02-22 | Iready Corporation | Internet jack |
CA2348261C (en) | 1999-08-30 | 2006-02-14 | Ip Flex Inc. | Program product and data processor |
US6714978B1 (en) * | 1999-12-04 | 2004-03-30 | Worldcom, Inc. | Method and system for processing records in a communications network |
US6986128B2 (en) * | 2000-01-07 | 2006-01-10 | Sony Computer Entertainment Inc. | Multiple stage program recompiler and method |
US6625797B1 (en) | 2000-02-10 | 2003-09-23 | Xilinx, Inc. | Means and method for compiling high level software languages into algorithmically equivalent hardware representations |
US6681383B1 (en) | 2000-04-04 | 2004-01-20 | Sosy, Inc. | Automatic software production system |
US7334216B2 (en) * | 2000-04-04 | 2008-02-19 | Sosy, Inc. | Method and apparatus for automatic generation of information system user interfaces |
WO2001090887A1 (fr) * | 2000-05-25 | 2001-11-29 | Fujitsu Limited | Procede de traitement de programme permettant un traitement haute vitesse au moyen d'un materiel a reconfiguration dynamique et programme permettant d'executer ce procede de traitement |
US7340596B1 (en) * | 2000-06-12 | 2008-03-04 | Altera Corporation | Embedded processor with watchdog timer for programmable logic |
US7168069B1 (en) | 2000-07-12 | 2007-01-23 | Stmicroelectronics, Inc. | Dynamic generation of multimedia code for image processing |
JP2002049652A (ja) * | 2000-08-03 | 2002-02-15 | Hiroshi Yasuda | デジタル回路設計方法、そのコンパイラーおよびシミュレータ |
US7343594B1 (en) | 2000-08-07 | 2008-03-11 | Altera Corporation | Software-to-hardware compiler with symbol set inference analysis |
EP1356401A2 (en) * | 2000-08-07 | 2003-10-29 | Altera Corporation | Software-to-hardware compiler |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
AU2002220600A1 (en) * | 2000-10-06 | 2002-04-15 | Pact Informationstechnologie Gmbh | Cell system with segmented intermediate cell structure |
US20040015899A1 (en) * | 2000-10-06 | 2004-01-22 | Frank May | Method for processing data |
JP2002123563A (ja) * | 2000-10-13 | 2002-04-26 | Nec Corp | コンパイル方法および合成装置ならびに記録媒体 |
US6904105B1 (en) * | 2000-10-27 | 2005-06-07 | Intel Corporation | Method and implemention of a traceback-free parallel viterbi decoder |
US6834291B1 (en) | 2000-10-27 | 2004-12-21 | Intel Corporation | Gold code generator design |
US7039717B2 (en) | 2000-11-10 | 2006-05-02 | Nvidia Corporation | Internet modem streaming socket method |
US7379475B2 (en) | 2002-01-25 | 2008-05-27 | Nvidia Corporation | Communications processor |
WO2005045692A2 (en) | 2003-08-28 | 2005-05-19 | Pact Xpp Technologies Ag | Data processing device and method |
US9037807B2 (en) * | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US20090210653A1 (en) * | 2001-03-05 | 2009-08-20 | Pact Xpp Technologies Ag | Method and device for treating and processing data |
US9250908B2 (en) | 2001-03-05 | 2016-02-02 | Pact Xpp Technologies Ag | Multi-processor bus and cache interconnection system |
US9436631B2 (en) | 2001-03-05 | 2016-09-06 | Pact Xpp Technologies Ag | Chip including memory element storing higher level memory data on a page by page basis |
US9411532B2 (en) | 2001-09-07 | 2016-08-09 | Pact Xpp Technologies Ag | Methods and systems for transferring data between a processing device and external devices |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US9552047B2 (en) | 2001-03-05 | 2017-01-24 | Pact Xpp Technologies Ag | Multiprocessor having runtime adjustable clock and clock dependent power supply |
US9141390B2 (en) | 2001-03-05 | 2015-09-22 | Pact Xpp Technologies Ag | Method of processing data with an array of data processors according to application ID |
US20070299993A1 (en) * | 2001-03-05 | 2007-12-27 | Pact Xpp Technologies Ag | Method and Device for Treating and Processing Data |
US20090300262A1 (en) * | 2001-03-05 | 2009-12-03 | Martin Vorbach | Methods and devices for treating and/or processing data |
US7210129B2 (en) * | 2001-08-16 | 2007-04-24 | Pact Xpp Technologies Ag | Method for translating programs for reconfigurable architectures |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US7624204B2 (en) * | 2001-03-22 | 2009-11-24 | Nvidia Corporation | Input/output controller node in an adaptable computing environment |
US6836839B2 (en) | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7962716B2 (en) | 2001-03-22 | 2011-06-14 | Qst Holdings, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7325123B2 (en) | 2001-03-22 | 2008-01-29 | Qst Holdings, Llc | Hierarchical interconnect for configuring separate interconnects for each group of fixed and diverse computational elements |
US7752419B1 (en) | 2001-03-22 | 2010-07-06 | Qst Holdings, Llc | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture |
US7433909B2 (en) | 2002-06-25 | 2008-10-07 | Nvidia Corporation | Processing architecture for a reconfigurable arithmetic node |
US7653710B2 (en) | 2002-06-25 | 2010-01-26 | Qst Holdings, Llc. | Hardware task manager |
US7489779B2 (en) * | 2001-03-22 | 2009-02-10 | Qstholdings, Llc | Hardware implementation of the secure hash standard |
US20040133745A1 (en) | 2002-10-28 | 2004-07-08 | Quicksilver Technology, Inc. | Adaptable datapath for a digital processing system |
US6577678B2 (en) | 2001-05-08 | 2003-06-10 | Quicksilver Technology | Method and system for reconfigurable channel coding |
US6618434B2 (en) * | 2001-05-31 | 2003-09-09 | Quicksilver Technology, Inc. | Adaptive, multimode rake receiver for dynamic search and multipath reception |
US10031733B2 (en) * | 2001-06-20 | 2018-07-24 | Scientia Sol Mentis Ag | Method for processing data |
EP1402382B1 (de) * | 2001-06-20 | 2010-08-18 | Richter, Thomas | Verfahren zur bearbeitung von daten |
CA2458199A1 (en) * | 2001-08-16 | 2003-02-27 | Pact Xpp Technologies Ag | Method for the translation of programs for reconfigurable architectures |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US20030037319A1 (en) * | 2001-08-20 | 2003-02-20 | Ankur Narang | Method and apparatus for partitioning and placement for a cycle-based simulation system |
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 |
US7046635B2 (en) | 2001-11-28 | 2006-05-16 | Quicksilver Technology, Inc. | System for authorizing functionality in adaptable hardware devices |
US8412915B2 (en) | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements |
US6986021B2 (en) | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
US7215701B2 (en) | 2001-12-12 | 2007-05-08 | Sharad Sambhwani | Low I/O bandwidth method and system for implementing detection and identification of scrambling codes |
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 |
US20030120460A1 (en) * | 2001-12-21 | 2003-06-26 | Celoxica Ltd. | System, method, and article of manufacture for enhanced hardware model profiling |
US7403981B2 (en) | 2002-01-04 | 2008-07-22 | Quicksilver Technology, Inc. | Apparatus and method for adaptive multimedia reception and transmission in communication environments |
AU2003214046A1 (en) * | 2002-01-18 | 2003-09-09 | Pact Xpp Technologies Ag | Method and device for partitioning large computer programs |
EP1483682A2 (de) | 2002-01-19 | 2004-12-08 | PACT XPP Technologies AG | Reconfigurierbarer prozessor |
AU2003214003A1 (en) | 2002-02-18 | 2003-09-09 | Pact Xpp Technologies Ag | Bus systems and method for reconfiguration |
WO2004088502A2 (de) * | 2003-04-04 | 2004-10-14 | Pact Xpp Technologies Ag | Verfahren und vorrichtung für die datenverarbeitung |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
EP1518186A2 (de) * | 2002-03-21 | 2005-03-30 | PACT XPP Technologies AG | Verfahren und vorrichtung zur datenverarbeitung |
US9170812B2 (en) | 2002-03-21 | 2015-10-27 | Pact Xpp Technologies Ag | Data processing system having integrated pipelined array data processor |
US6732354B2 (en) * | 2002-04-23 | 2004-05-04 | Quicksilver Technology, Inc. | Method, system and software for programming reconfigurable hardware |
JP4647307B2 (ja) * | 2002-04-25 | 2011-03-09 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | スケーラブルプロセッサにおける自動タスク分散 |
USRE43393E1 (en) | 2002-05-13 | 2012-05-15 | Qst Holdings, Llc | Method and system for creating and programming an adaptive computing engine |
US7328414B1 (en) | 2003-05-13 | 2008-02-05 | Qst Holdings, Llc | Method and system for creating and programming an adaptive computing engine |
US7660984B1 (en) | 2003-05-13 | 2010-02-09 | Quicksilver Technology | Method and system for achieving individualized protected space in an operating system |
US6931612B1 (en) * | 2002-05-15 | 2005-08-16 | Lsi Logic Corporation | Design and optimization methods for integrated circuits |
EP1509861A2 (en) * | 2002-05-23 | 2005-03-02 | Koninklijke Philips Electronics N.V. | Integrated circuit design method |
US20030233639A1 (en) * | 2002-06-11 | 2003-12-18 | Tariq Afzal | Programming interface for a reconfigurable processing system |
US7024654B2 (en) * | 2002-06-11 | 2006-04-04 | Anadigm, Inc. | System and method for configuring analog elements in a configurable hardware device |
US7802108B1 (en) | 2002-07-18 | 2010-09-21 | Nvidia Corporation | Secure storage of program code for an embedded system |
US20110238948A1 (en) * | 2002-08-07 | 2011-09-29 | Martin Vorbach | Method and device for coupling a data processing unit and a data processing array |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
WO2004021176A2 (de) | 2002-08-07 | 2004-03-11 | Pact Xpp Technologies Ag | Verfahren und vorrichtung zur datenverarbeitung |
US8108656B2 (en) | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
AU2003289844A1 (en) * | 2002-09-06 | 2004-05-13 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
US7502915B2 (en) * | 2002-09-30 | 2009-03-10 | Nvidia Corporation | System and method using embedded microprocessor as a node in an adaptable computing machine |
US7346902B2 (en) * | 2002-10-22 | 2008-03-18 | Sun Microsystems, Inc. | System and method for block-based concurrentization of software code |
US7603664B2 (en) | 2002-10-22 | 2009-10-13 | Sun Microsystems, Inc. | System and method for marking software code |
US7222218B2 (en) * | 2002-10-22 | 2007-05-22 | Sun Microsystems, Inc. | System and method for goal-based scheduling of blocks of code for concurrent execution |
US7937591B1 (en) | 2002-10-25 | 2011-05-03 | Qst Holdings, Llc | Method and system for providing a device which can be adapted on an ongoing basis |
US7225324B2 (en) | 2002-10-31 | 2007-05-29 | Src Computers, Inc. | Multi-adaptive processing systems and techniques for enhancing parallelism and performance of computational functions |
US8949576B2 (en) * | 2002-11-01 | 2015-02-03 | Nvidia Corporation | Arithmetic node including general digital signal processing functions for an adaptive computing machine |
US8276135B2 (en) | 2002-11-07 | 2012-09-25 | Qst Holdings Llc | Profiling of software and circuit designs utilizing data operation analyses |
US7225301B2 (en) | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
SE0300742D0 (sv) * | 2003-03-17 | 2003-03-17 | Flow Computing Ab | Data Flow Machine |
US7373640B1 (en) * | 2003-07-31 | 2008-05-13 | Network Appliance, Inc. | Technique for dynamically restricting thread concurrency without rewriting thread code |
US8296764B2 (en) | 2003-08-14 | 2012-10-23 | Nvidia Corporation | Internal synchronization control for adaptive integrated circuitry |
US20050039189A1 (en) * | 2003-08-14 | 2005-02-17 | Todd Anderson | Methods and apparatus to preemptively compile an application |
US7174432B2 (en) | 2003-08-19 | 2007-02-06 | Nvidia Corporation | Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture |
DE10349349A1 (de) * | 2003-10-23 | 2005-05-25 | Kuka Roboter Gmbh | Verfahren zum Bestimmen und Bereitstellen von Laufzeitinformationen für Roboter-Steuerprogramme |
US7685587B2 (en) * | 2003-11-19 | 2010-03-23 | Ecole Polytechnique Federal De Lausanne | Automated instruction-set extension |
US7689958B1 (en) | 2003-11-24 | 2010-03-30 | Sun Microsystems, Inc. | Partitioning for a massively parallel simulation system |
US7899913B2 (en) | 2003-12-19 | 2011-03-01 | Nvidia Corporation | Connection management system and method for a transport offload engine |
US8065439B1 (en) | 2003-12-19 | 2011-11-22 | Nvidia Corporation | System and method for using metadata in the context of a transport offload engine |
US7260631B1 (en) | 2003-12-19 | 2007-08-21 | Nvidia Corporation | System and method for receiving iSCSI protocol data units |
US8176545B1 (en) | 2003-12-19 | 2012-05-08 | Nvidia Corporation | Integrated policy checking system and method |
US8549170B2 (en) | 2003-12-19 | 2013-10-01 | Nvidia Corporation | Retransmission system and method for a transport offload engine |
US7624198B1 (en) | 2003-12-19 | 2009-11-24 | Nvidia Corporation | Sequence tagging system and method for transport offload engine data lists |
KR100552675B1 (ko) * | 2003-12-26 | 2006-02-20 | 한국전자통신연구원 | 확장 인스트럭션 선택 장치 및 그 방법 |
US7206872B2 (en) | 2004-02-20 | 2007-04-17 | Nvidia Corporation | System and method for insertion of markers into a data stream |
US7249306B2 (en) | 2004-02-20 | 2007-07-24 | Nvidia Corporation | System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity |
US7343378B2 (en) * | 2004-03-29 | 2008-03-11 | Microsoft Corporation | Generation of meaningful names in flattened hierarchical structures |
US7698413B1 (en) | 2004-04-12 | 2010-04-13 | Nvidia Corporation | Method and apparatus for accessing and maintaining socket control information for high speed network connections |
US7765539B1 (en) | 2004-05-19 | 2010-07-27 | Nintendo Co., Ltd. | System and method for trans-compiling video games |
US7353488B1 (en) * | 2004-05-27 | 2008-04-01 | Magma Design Automation, Inc. | Flow definition language for designing integrated circuit implementation flows |
US7487497B2 (en) * | 2004-08-26 | 2009-02-03 | International Business Machines Corporation | Method and system for auto parallelization of zero-trip loops through induction variable substitution |
US8984496B2 (en) * | 2004-09-20 | 2015-03-17 | The Mathworks, Inc. | Extensible internal representation of systems with parallel and sequential implementations |
US7957379B2 (en) | 2004-10-19 | 2011-06-07 | Nvidia Corporation | System and method for processing RX packets in high speed network applications using an RX FIFO buffer |
US7343482B2 (en) * | 2004-10-20 | 2008-03-11 | Arm Limited | Program subgraph identification |
US7318143B2 (en) * | 2004-10-20 | 2008-01-08 | Arm Limited | Reuseable configuration data |
US7350055B2 (en) * | 2004-10-20 | 2008-03-25 | Arm Limited | Tightly coupled accelerator |
KR20070097051A (ko) * | 2004-11-30 | 2007-10-02 | 동경 엘렉트론 주식회사 | 동적으로 재구성 가능한 프로세서 |
US7426708B2 (en) * | 2005-01-31 | 2008-09-16 | Nanotech Corporation | ASICs having programmable bypass of design faults |
US20090031104A1 (en) * | 2005-02-07 | 2009-01-29 | Martin Vorbach | Low Latency Massive Parallel Data Processing Device |
US20060225049A1 (en) * | 2005-03-17 | 2006-10-05 | Zhiyuan Lv | Trace based signal scheduling and compensation code generation |
TWI306215B (en) | 2005-04-29 | 2009-02-11 | Ind Tech Res Inst | Method and corresponding apparatus for compiling high-level languages into specific processor architectures |
US7401314B1 (en) * | 2005-06-09 | 2008-07-15 | Altera Corporation | Method and apparatus for performing compound duplication of components on field programmable gate arrays |
KR100731976B1 (ko) * | 2005-06-30 | 2007-06-25 | 전자부품연구원 | 재구성 가능 프로세서의 효율적인 재구성 방법 |
US9774699B2 (en) * | 2005-09-20 | 2017-09-26 | The Mathworks, Inc. | System and method for transforming graphical models |
US7890686B2 (en) * | 2005-10-17 | 2011-02-15 | Src Computers, Inc. | Dynamic priority conflict resolution in a multi-processor computer system having shared resources |
WO2007062327A2 (en) * | 2005-11-18 | 2007-05-31 | Ideal Industries, Inc. | Releasable wire connector |
US7716100B2 (en) * | 2005-12-02 | 2010-05-11 | Kuberre Systems, Inc. | Methods and systems for computing platform |
JP2007156926A (ja) * | 2005-12-06 | 2007-06-21 | Matsushita Electric Ind Co Ltd | 割込制御装置 |
JP2009524134A (ja) | 2006-01-18 | 2009-06-25 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | ハードウェア定義方法 |
JP4528728B2 (ja) | 2006-01-31 | 2010-08-18 | 株式会社東芝 | デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム |
US20070220235A1 (en) * | 2006-03-15 | 2007-09-20 | Arm Limited | Instruction subgraph identification for a configurable accelerator |
JP2007286671A (ja) * | 2006-04-12 | 2007-11-01 | Fujitsu Ltd | ソフトウェア/ハードウェア分割プログラム、および分割方法。 |
US7761817B2 (en) * | 2006-05-22 | 2010-07-20 | Coherent Logix, Incorporated | Designing an ASIC based on execution of a software program on a processing system |
US7693257B2 (en) * | 2006-06-29 | 2010-04-06 | Accuray Incorporated | Treatment delivery optimization |
WO2008061557A1 (en) * | 2006-11-20 | 2008-05-29 | Freescale Semiconductor, Inc. | System, apparatus and method for translating data |
KR100893527B1 (ko) * | 2007-02-02 | 2009-04-17 | 삼성전자주식회사 | 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법 |
US8250556B1 (en) * | 2007-02-07 | 2012-08-21 | Tilera Corporation | Distributing parallelism for parallel processing architectures |
EP1975791A3 (en) * | 2007-03-26 | 2009-01-07 | Interuniversitair Microelektronica Centrum (IMEC) | A method for automated code conversion |
US7987065B1 (en) | 2007-04-17 | 2011-07-26 | Nvidia Corporation | Automatic quality testing of multimedia rendering by software drivers |
US7996798B2 (en) * | 2007-05-24 | 2011-08-09 | Microsoft Corporation | Representing binary code as a circuit |
KR100940362B1 (ko) | 2007-09-28 | 2010-02-04 | 고려대학교 산학협력단 | 모드 집합을 사용하는 명령어 처리기에서의 모드 명령어최적화 방법 |
JP5175524B2 (ja) * | 2007-11-13 | 2013-04-03 | 株式会社日立製作所 | コンパイラ |
JP5109764B2 (ja) * | 2008-03-31 | 2012-12-26 | 日本電気株式会社 | 記述処理装置、記述処理方法およびプログラム |
JP5576605B2 (ja) * | 2008-12-25 | 2014-08-20 | パナソニック株式会社 | プログラム変換装置およびプログラム変換方法 |
KR101511273B1 (ko) * | 2008-12-29 | 2015-04-10 | 삼성전자주식회사 | 멀티 코어 프로세서를 이용한 3차원 그래픽 렌더링 방법 및시스템 |
US8667474B2 (en) * | 2009-06-19 | 2014-03-04 | Microsoft Corporation | Generation of parallel code representations |
JP5990466B2 (ja) | 2010-01-21 | 2016-09-14 | スビラル・インコーポレーテッド | ストリームに基づく演算を実装するための汎用複数コアシステムのための方法および装置 |
US9176845B2 (en) * | 2010-03-19 | 2015-11-03 | Red Hat, Inc. | Use of compiler-introduced identifiers to improve debug information pertaining to user variables |
US8601013B2 (en) | 2010-06-10 | 2013-12-03 | Micron Technology, Inc. | Analyzing data using a hierarchical structure |
US8661424B2 (en) * | 2010-09-02 | 2014-02-25 | Honeywell International Inc. | Auto-generation of concurrent code for multi-core applications |
WO2012051577A1 (en) | 2010-10-15 | 2012-04-19 | Coherent Logix, Incorporated | Disabling communication in a multiprocessor system |
US20130232471A1 (en) * | 2010-11-11 | 2013-09-05 | Thomas Henties | Method and Apparatus for Assessing Software Parallelization |
EP2668574B1 (en) | 2011-01-25 | 2021-11-24 | Micron Technology, INC. | Utilizing special purpose elements to implement a fsm |
WO2012103151A2 (en) | 2011-01-25 | 2012-08-02 | Micron Technology, Inc. | State grouping for element utilization |
CN103443767B (zh) | 2011-01-25 | 2016-01-20 | 美光科技公司 | 展开量化以控制自动机的入度和/或出度 |
JP5763783B2 (ja) | 2011-01-25 | 2015-08-12 | マイクロン テクノロジー, インク. | 正規表現をコンパイルするための方法および装置 |
US8533698B2 (en) * | 2011-06-13 | 2013-09-10 | Microsoft Corporation | Optimizing execution of kernels |
US8997065B2 (en) * | 2011-12-06 | 2015-03-31 | The Mathworks, Inc. | Automatic modularization of source code |
US8959469B2 (en) | 2012-02-09 | 2015-02-17 | Altera Corporation | Configuring a programmable device using high-level language |
JP2013242700A (ja) * | 2012-05-21 | 2013-12-05 | Internatl Business Mach Corp <Ibm> | コード最適化方法、プログラム及びシステム |
US8819618B2 (en) * | 2012-09-26 | 2014-08-26 | The Mathworks, Inc. | Behavior invariant optimization of maximum execution times for model simulation |
JP6849371B2 (ja) * | 2015-10-08 | 2021-03-24 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 側面発光レーザ光源、及びそれを含む三次元映像取得装置 |
US11477302B2 (en) | 2016-07-06 | 2022-10-18 | Palo Alto Research Center Incorporated | Computer-implemented system and method for distributed activity detection |
US20220321403A1 (en) * | 2021-04-02 | 2022-10-06 | Nokia Solutions And Networks Oy | Programmable network segmentation for multi-tenant fpgas in cloud infrastructures |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870308A (en) * | 1990-04-06 | 1999-02-09 | Lsi Logic Corporation | Method and system for creating and validating low-level description of electronic design |
US5625797A (en) * | 1990-08-10 | 1997-04-29 | Vlsi Technology, Inc. | Automatic optimization of a compiled memory structure based on user selected criteria |
US5513124A (en) * | 1991-10-30 | 1996-04-30 | Xilinx, Inc. | Logic placement using positionally asymmetrical partitioning method |
US5485455A (en) * | 1994-01-28 | 1996-01-16 | Cabletron Systems, Inc. | Network having secure fast packet switching and guaranteed quality of service |
US5511067A (en) * | 1994-06-17 | 1996-04-23 | Qualcomm Incorporated | Layered channel element in a base station modem for a CDMA cellular communication system |
US5603063A (en) * | 1994-06-27 | 1997-02-11 | Quantum Corporation | Disk drive command queuing method using two memory devices for storing two types of commands separately first before queuing commands in the second memory device |
US5548587A (en) * | 1994-09-12 | 1996-08-20 | Efficient Networks, Inc. | Asynchronous transfer mode adapter for desktop applications |
US5752035A (en) * | 1995-04-05 | 1998-05-12 | Xilinx, Inc. | Method for compiling and executing programs for reprogrammable instruction set accelerator |
US5794062A (en) * | 1995-04-17 | 1998-08-11 | Ricoh Company Ltd. | System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization |
US5729705A (en) * | 1995-07-24 | 1998-03-17 | Symbios Logic Inc. | Method and apparatus for enhancing throughput of disk array data transfers in a controller |
US5794044A (en) * | 1995-12-08 | 1998-08-11 | Sun Microsystems, Inc. | System and method for runtime optimization of private variable function calls in a secure interpreter |
GB2317245A (en) * | 1996-09-12 | 1998-03-18 | Sharp Kk | Re-timing compiler integrated circuit design |
US5864535A (en) * | 1996-09-18 | 1999-01-26 | International Business Machines Corporation | Network server having dynamic load balancing of messages in both inbound and outbound directions |
US5898860A (en) * | 1996-10-01 | 1999-04-27 | Leibold; William Steven | System and method for automatically generating a control drawing for a real-time process control system |
US6078736A (en) * | 1997-08-28 | 2000-06-20 | Xilinx, Inc. | Method of designing FPGAs for dynamically reconfigurable computing |
US6212650B1 (en) * | 1997-11-24 | 2001-04-03 | Xilinx, Inc. | Interactive dubug tool for programmable circuits |
US6075935A (en) * | 1997-12-01 | 2000-06-13 | Improv Systems, Inc. | Method of generating application specific integrated circuits using a programmable hardware architecture |
US6510546B1 (en) * | 2000-07-13 | 2003-01-21 | Xilinx, Inc. | Method and apparatus for pre-routing dynamic run-time reconfigurable logic cores |
-
1997
- 1997-06-27 US US08/884,377 patent/US5966534A/en not_active Expired - Lifetime
-
1998
- 1998-06-29 AU AU82754/98A patent/AU8275498A/en not_active Abandoned
- 1998-06-29 KR KR1019997012384A patent/KR100614491B1/ko not_active IP Right Cessation
- 1998-06-29 EP EP98932983A patent/EP0991997A4/en not_active Withdrawn
- 1998-06-29 US US09/446,758 patent/US6708325B2/en not_active Expired - Fee Related
- 1998-06-29 WO PCT/US1998/013563 patent/WO1999000731A1/en not_active Application Discontinuation
- 1998-06-29 CA CA002290649A patent/CA2290649A1/en not_active Abandoned
- 1998-06-29 JP JP50587699A patent/JP2002508102A/ja not_active Ceased
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7191312B2 (en) | 2001-05-24 | 2007-03-13 | Ipflex Inc. | Configurable interconnection of multiple different type functional units array including delay type for different instruction processing |
US7577821B2 (en) | 2001-05-24 | 2009-08-18 | Ipflex Inc. | IC containing matrices of plural type operation units with configurable routing wiring group and plural delay operation units bridging two wiring groups |
JP2010146577A (ja) * | 2002-10-31 | 2010-07-01 | Src Computers Inc | 高級プログラミング言語におけるプログラムをハイブリッド計算プラットフォームの統一された実行可能要素に変換するためのプロセス |
JP2012089154A (ja) * | 2005-09-30 | 2012-05-10 | Coware Inc | マルチコアアーキテクチャにおけるスケジューリング |
US8732439B2 (en) | 2005-09-30 | 2014-05-20 | Synopsys, Inc. | Scheduling in a multicore processor |
US8751773B2 (en) | 2005-09-30 | 2014-06-10 | Synopsys, Inc. | Scheduling in a multicore architecture |
US9164953B2 (en) | 2005-09-30 | 2015-10-20 | Synopsys, Inc. | Scheduling in a multicore architecture |
US9286262B2 (en) | 2005-09-30 | 2016-03-15 | Synopsys, Inc. | Scheduling in a multicore architecture |
US9442886B2 (en) | 2005-09-30 | 2016-09-13 | Synopsys, Inc. | Scheduling in a multicore architecture |
JP2019506695A (ja) * | 2016-01-26 | 2019-03-07 | アイキャット・エルエルシー | 再構成可能アルゴリズムによるパイプラインコアおよびアルゴリズムマッチングパイプラインコンパイラを有するプロセッサ |
JP7015249B2 (ja) | 2016-01-26 | 2022-02-02 | アイキャット・エルエルシー | 再構成可能アルゴリズムによるパイプラインコアおよびアルゴリズムマッチングパイプラインコンパイラを有するプロセッサ |
JP7461380B2 (ja) | 2019-05-23 | 2024-04-03 | ザイリンクス インコーポレイテッド | ヘテロジニアスプログラマブルデバイスのためのハードウェアソフトウェア設計時のフロー収束 |
Also Published As
Publication number | Publication date |
---|---|
EP0991997A1 (en) | 2000-04-12 |
AU8275498A (en) | 1999-01-19 |
KR100614491B1 (ko) | 2006-08-22 |
WO1999000731A1 (en) | 1999-01-07 |
EP0991997A4 (en) | 2004-12-29 |
US6708325B2 (en) | 2004-03-16 |
KR20010020544A (ko) | 2001-03-15 |
US5966534A (en) | 1999-10-12 |
CA2290649A1 (en) | 1999-01-07 |
US20030014743A1 (en) | 2003-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002508102A (ja) | 高水準プログラミング言語をコンパイルするための方法 | |
US7886283B2 (en) | Phantom serializing compiler and method of operation of same | |
Gokhale et al. | NAPA C: Compiling for a hybrid RISC/FPGA architecture | |
Rau | Iterative modulo scheduling: An algorithm for software pipelining loops | |
US7797691B2 (en) | System and method for automatic parallelization of sequential code | |
Gupta et al. | Coordinated parallelizing compiler optimizations and high-level synthesis | |
Venkataramani et al. | C to asynchronous dataflow circuits: An end-to-end toolflow | |
Corporaal et al. | Using transport triggered architectures for embedded processor design | |
Eles et al. | VHDL system-level specification and partitioning in a hardware/software co-synthesis environment | |
Plevyak et al. | Obtaining sequential efficiency for concurrent object-oriented languages | |
Rim et al. | Global scheduling with code-motions for high-level synthesis applications | |
Bringmann et al. | Resource sharing in hierarchical synthesis | |
Gupta et al. | Constrained software generation for hardware-software systems | |
Bezati | High-level synthesis of dataflow programs for heterogeneous platforms: design flow tools and design space exploration | |
Wall | Experience with a software-defined machine architecture | |
JP3311381B2 (ja) | コンパイラにおける命令スケジューリング処理方法 | |
Giorgi | Accelerating haskell on a dataflow architecture: a case study including transactional memory | |
Scheichenzuber et al. | Global hardware synthesis from behavioral dataflow descriptions | |
Roh et al. | Generation and quantitative evaluation of dataflow clusters | |
Lin | Compiler support for predicated execution in superscalar processors | |
Ping Seng et al. | Flexible instruction processors | |
Saint-Mleux et al. | SHard: a Scheme to hardware compiler | |
Tremblay et al. | Partners in platform design | |
Fernandes | A clustered VLIW architecture based on queue register files | |
Ferrandi et al. | Automatic parallelization of sequential specifications for symmetric mpsocs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050224 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060808 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20061108 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20061225 |
|
A313 | Final decision of rejection without a dissenting response from the applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A313 Effective date: 20070323 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070424 |