JP4403080B2 - 再構成可能なハードウェアエミュレーションによる制御データフローグラフを用いたデバッグ - Google Patents
再構成可能なハードウェアエミュレーションによる制御データフローグラフを用いたデバッグ Download PDFInfo
- Publication number
- JP4403080B2 JP4403080B2 JP2004550001A JP2004550001A JP4403080B2 JP 4403080 B2 JP4403080 B2 JP 4403080B2 JP 2004550001 A JP2004550001 A JP 2004550001A JP 2004550001 A JP2004550001 A JP 2004550001A JP 4403080 B2 JP4403080 B2 JP 4403080B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- cfg
- dfg
- file
- code
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Description
この特許文献の開示の一部には、著作権保護の対象となる資料が含まれる。著作権所有者は、米国特許商標局の特許ファイルまたは特許記録に現われるように、特許開示の特許文献の何人による複製にも異議を唱えないが、それ以外ではいかなるすべての著作権を保有する。以下の表示は、適用可能であれは図面を含む以下に記載のソフトウェアおよびデータに適用される。(著作権)2002 エス・アール・シィ・コンピューターズ・インコーポレイテッド(SRC Computers, Inc.)
発明の背景
発明の分野
本発明は一般的に、高級言語プログラムをハイブリッドの再構成可能なハードウェア命令プロセッサの計算環境で動作するように適合させることに関する。より特定的に、本発明は、高級言語プログラムをハイブリッドの再構成可能なハードウェア命令プロセッサコンピュータで実行することのできる統一された実行可能要素に変換することに関する。
命令プロセッサが処理能力を急速に向上させ続ける中で、命令プロセッサはかつてスーパーコンピュータのみによって行なわれていたコンピュータを多用する計算を行なうために用いられることが多くなった。しかしながら、たとえば、現代の命令プロセッサで行なうにはまだ実用的でない、数値計算のイメージ処理および流体力学的なシミュレーションを含むコンピュータを多用するタスクが存在する。
本発明の一実施例は、高級言語ソフトコードを統一された実行可能要素に変換する方法を含み、上記方法は、高級言語ソースコードの再構成可能なハードウェア部分からオブジェクトファイルを生成するステップと、オブジェクトファイルを統一された実行可能な要素に統合するステップとを含む。
取可能プログラムコードを有するコンピュータ利用可能媒体を含み、上記コンピュータ読取可能プログラムコードは、コンピュータに高級言語ソースコードを制御フローグラフ表現に変換させるためのコンピュータ読取可能プログラムコード、コンピュータに制御フローグラフ表現を制御データフローグラフ表現に変換させるためのコンピュータ読取可能プログラムコード、コンピュータに制御データフローグラフを命令プロセッサ部分および再構成可能なハードウェア部分に区分化させるためのコンピュータ読取可能プログラムコード、コンピュータに制御データフローグラフの再構成可能なハードウェア部分をハードウェア定義言語部分に、および命令プロセッサ部分を命令プロセッサオブジェクトファイルに変換させるためのコンピュータ読取可能プログラムコード、コンピュータにハードウェア定義言語部分を再構成可能なハードウェアビットストリームに変換させるためのコンピュータ読取可能プログラムコード、コンピュータに再構成可能なビットストリームを命令プロセッサが読むことのできるビットストリームオブジェクトファイルに変換させるためのコンピュータ読取可能プログラムコード、およびコンピュータにビットストリームオブジェクトファイルを命令プロセッサオブジェクトファイルと統合して、統一された実行可能要素を形成させるためのコンピュータ読取可能プログラムコードとを含む。
システムの概観
ここで図1を参照すると、高級プログラミング言語で書かれたプログラムを、統一された実行可能要素に変換するためのハイブリッドの再構成可能なハードウェア命令プロセッサシステム100の実施例が示されている。一実施例において、システム100の再構成可能なハードウェア部分は、多重適応プロセッサ(MAP)を含み得、これはフィールド・プログラマブル・ゲートアレイ(FPGA)の再構成可能な回路をロジックと統合して、FPGAを制御し、システム100の命令プロセッサ部分と通信し得る。別の実施例において、システム100における再構成可能なハードウェアおよび命令プロセッサ間の電子通信は、スイッチ/ネットワークアダプタポートおよび/または多重MAPを命令プロセッサにリンクするためのスイッチの使用を含み得る。
level language))ファイルから統一された実行可能要素へのコンバータ104、サポートハードウェアロジックモジュール118、ユーザハードウェアロジックモジュール120およびランタイムライブラリ122を含むMAPプログラミング環境を含む。システム100の実施例において、HLLソースコードファイル102はコンバータ104に入力される。HLLソースコードファイル102は、たとえば特に、C,C++,Fortran,COBOL,BASIC,PASCALおよびJava(登録商標)等の従来の高級言語で書かれてもよい。
raph))表現に変換するHLLコンバータ106を含み得る。一実施例において、HLLコンバータ106は、高級言語ソースコードを読出し、ソースコードをパーズし、コードを内部表現およびシンボルテーブルに変換することによって、従来のコンパイルを開始するための論理命令を含むソフトウェアモジュールを含む。HLLコンバータ106は、ソースコードの構文および意味検査を行ない、かつソースコードにおけるエラーに応じて適切な診断メッセージを生成するための論理命令を含み得る。
、かつCFG表現および統一された実行可能要素を生成し得る。バイナリトランスレータは、実行可能なファイルを受入れ、これをCFG表現に変換し、かつこれをコンバータ104への二次入力に与えて、ソースコードの必要性を回避し得る。
ここで図2を参照すると、本発明の実施例に従って高級言語(HLL)を、統一された実行可能要素に変換する方法200が示されている。方法200は、ステップ202でHLLプログラムを制御フローグラフ(CFG)に変換することによって開始され得る。一実施例において、HLLプログラムの、指定されたCFGフォーマットへの変換202は、従来のHLLコンパイラによって行なわれ得る。HLLプログラムのCFGへの変換202では、HLLプログラムをCFG表現にパーズし、かつ命令プロセッサで実行可能な命令コードを生成するためにコンパイラが用いられてもよい。命令コードは次にオブジェクトファイルに書込まれ、このオブジェクトファイルはアドレスを解くリンカ・ローダとともにリンクされ得る。
構成し得る。
ロキシを生成し、一方でこの同じ部分がステップ414でハードウェア定義言語(HDL)コード(たとえばVerilog)に変換され、これは次にステップ418でハードウェアロジックバイナリに変換され得る。ハードウェアロジックバイナリは、ステップ424ですべての他のバイナリファイルとリンクされて、ハードウェアロジック実行可能要素426の一部になり得る。
例示の実施例において、ハードウェアロジックのために分離されかつ目標にされ得る、高級言語で書かれたソースコードの領域を識別するための方法が提供され、一方でコードの他の部分は、従来のプロセッサで実行するためにコンパイルされ得る。例示の方法では、コードのうちどの領域がハードウェアロジックで実行されるべきかを示す特別なブラケット構文が用いられ、ブラケット領域内に含まれる変数のスコーピング(scoping)情報が提供される。この情報を用いて、ユーザがさらに介入することなく、ハードウェアロジックで実行するように識別された領域の実行を容易にする通信およびデータ移動ルーチンを構築し得る。
によって生成される新しいサブプログラムに構築され得る。グローバルデータは同様の態様で処理されてデータの完全性が保護され得る。
コンパイルシステムのうち最初にコールされた構成要素が、いかなる命令プロセッサシステムでのコンパイルと同様の従来のコンパイル段階を開始する。この構成要素は、入力としていかなるプログラミング言語コードも受信し、ソースファイルから次にパーズすることのできるトークンを抽出する。パーズ段階が行なわれている間、意味解析も行なわれて、この段階の後でコードおよびシンボルテーブルの内部表現が生成されるようにしてもよい。意味上の誤り検査が行なわれて、適切な診断メッセージが出される。
有するコンパイルの混合モデルを用いて、共通の高級中間表現を生成する。この第1のレベルの表現は次に、制御フロー分析を含むさまざまな基本的な最適化に入力されるため、結果として生じる第2のレベルの中間表現は制御フロー表現と呼ぶことができる。制御フロー表現は、HLLコンバータが出力として生成する制御フロー情報における主要な構成要素となる。以下の文章では、このファイルおよびこの段階でのコンパイルの結果として生成することのできる追加のファイルの内容についての一層の詳細が示される。
た個々の命令を含む。これらの命令は、基本ブロックに分類され、その互いの関係は前のセクションで既に確立されている。これらはここで、コンパイルのプロセスで生成された順序で生成される。
なる。
コンパイルシステムの別の構成要素は、オペレータ、組込関数コール、および既存の(規定されたシステムの)ハードウェアロジックモジュールへのMAPプロシージャのソースにおけるプロシージャコールのマッピングを示すデータベースである。このデータベースはシステムinfoファイルと呼ばれる。
データフローグラフに加えて、CFG−DFGからHDLへのコンバータへの第2の入力ファイルがある。これは、CFG−DFGからHDLへのコンバータバイナリファイルであり、このファイルは、インターフェイスおよびハードウェアロジックモジュール情報ファイルに含まれるハードウェアロジックモジュールに関する情報を含む。本発明の実施例において、小さな実行可能要素を用いてもよく、この要素は、ASCIIハードウェアロジックモジュール情報ファイルをCFG−DFGからHDLへのコンバータの内部テーブルに翻訳し、CFG−DFGからHDLへのコンバータをコールする前にコンパイルの際に実行される。
valである。この翻訳プログラムは、ハードウェアロジックモジュール情報ファイルにおけるsigvalによって指定されたピンまたはワイヤ名の出現を、結果として生じるCFG−DFGからHDLへのコンバータテーブルにおけるストリングnewsigvalと置き換える。このオプションによって、CFG−DFGからHDLへのコンバータによって接続されるべきハードウェアロジックモジュールの入力および出力信号の改名が可能になる。CFG−DFGからHDLへのコンバータは、名前が“unconnected_”で始まるワイヤに接続されるべきいかなる接続も無視し得る。このオプションによって“unconnected_”ワイヤを改名することによって、これらはCFG−DFGからHDLへのコンバータによって処理され得る。−dオプションに関して、−rはVerilogのようなHDLを生成するときに有用であり、Verilogは、テストベンチまたはシミュレーション環境において用いられ、結果として生じるハードウェアロジックのために生成されたVerilogには実際に存在しない信号を有し得る。多重の−dおよび−rのオプションを指定してもよい。
が接続されるべき外部信号の名前を含む。−rコマンドラインオプションで指定された改名された信号のテーブルを検索して、信号が再びマップされたかどうかを見ることができる。再びマップされていれば、再びマップされた信号名が用いられる。そうでなければ、ハードウェアロジックモジュール情報ファイルで指定された名前が用いられる。外部信号名が指定さない場合、エラーが出される。PIN_NAMESテーブルエントリが、次に出力信号のために生成され得る。PIN_NAMESテーブルエントリは、現在のsubrefエントリのためのEQUIV_IN/EQUIV_OUTテーブル索引、出力信号のビット幅、この信号のために生成されるHELDテーブルエントリの索引、ハードウェアロジックモジュールの内部の信号名、および信号が出力でありかつ信号のためのHELDテーブルエントリがあることを示す2つのフラグを含む。これがsubref構造のために処理される最初の信号である場合、PIN_NAMESテーブルエントリの索引は、subrefのためのEQUIV_OUTテーブルエントリに挿入されるために保存される。
CFG表現をハイブリッドCDFG−DFG表現に変換するための実施例がここで説明される。もとのCFG表現は、ノードおよび有向の辺(directed edges)を含んでもよく、各ノードはコードの基本ブロックであるかもしれず、各辺は1つのブロックの終わりから別のブロックの始めへの制御の移動を示し得る。基本ブロックにおけるコードは、エン
トランスの単一の点、および単一の出口を有し得、すなわちこれは、始めおよび終わりのそれぞれ以外へ、またはそれ以外から分岐することのできない直線のシーケンスの文を示し得る。基本ブロックにおける文は連続しているかもしれない。
ることの安全性を推論することが可能であってもよい。たとえば、
で見られ、配置される項目は非常に小さな論理ブロックであってもよい。コンパイラが利用できるハードウェアロジックモジュールが指定された形状であると既に決定されている場合、コンパイラは、さらに高度な、したがってさらに単純な細分性のレベルで配置を行い、プロセスを潜在的にかなり高速化することができる。
)による。第2のセクションはコードブロックをリストにしたものである。この例においては、コードブロックはマージされていない。各々のブロックは一義的なID数および1組のデータフローノードを有する。各ブロックはいずれも、その始まりのノードおよび終わりのノードとしてSRC^INITIATE(開始)ノードおよびSRC^OUTPUT(出力)ノードを有する。各々のノードにつき以下の情報がある。すなわち、その機能、その入力および出力カウント、各々の入力のビット幅、入力が定数として指定される入力についての定数値、各々の出力のビット幅、各々の出力の目標リスト(すなわち他のノード入力ポートのうちどれがこの出力によって供給がなされるのか)、である。入力および出力ポートはまた括弧の中に一義的な擬似レジスタIDを有し得る。
R2から受取ると、エミュレートルーチンはユーザサブルーチンのパラメータについての初期値をロードし得る。次にdfg_simulateがコールされて、実行されるべきDFGファイルの名前が中へ通され得る。データフローシミュレータはトークン駆動シミュレーションを行ないEXITコードブロックの完了時に戻り得る。それからパラメータの終値が返されてこれにFR4ハンドシェイクが続き得る。次にルーチンはループの最上部へ戻って、実行すべき次の信号を待つことができる。
変数すべてのリストが作成され得る。DFGのヘッドとしてINITIATEノードが作成され、スカラの初期値を持ち込むためのLD_SCALARノードの層が作成され得る。データ構造の一時アレイが各々の変数のソースについての参照として作成され得る。この構造の一例を以下に示す。
/記憶とを区別し得る。DFG発生器はロードまたは記憶ノード(たとえばLDKRまたはSTKR)を見ると、そのアドレス入力を見ることでロード/記憶の種類を決定することができる。図14に示す形での何かを見ると、ACONノードを用いて変数の名前を見つけることができ、内部「変数」データ構造を調べてこれがスカラ変数であるかどうかを判断することができる。
調べられることを引き起こし得る。2つの入力は他のノードへの入力と同じ仕方で扱われ得る。すなわち、変数のソースが示され、LDKRノードがなくされ、そして入力がソースへ直接配線されるということがあり得る。出力については、入来する辺がなくされ、ACONノードを調べてどの変数が出力値を受取っているかが判断され、そしてこの出力をその変数の新たなソースとして示すということがあり得る。図20の右側においてDFGへの変換後の完全なコードブロックが示される。
されるが、それは、‘c’は条件文についてのいずれかの分岐において割当てられていないからである。このSELECTORはなくしてもよい。
次に図29を参照して、本発明の区分化部要素の一実施例を示す。一実施例において、区分化部要素は、アルゴリズムの一部が実行されることになるところを決定でき、したがってコンパイルプロセスの目標を決定できる。区分化部は、制御データフローグラフに対して、コンパイルされているアルゴリズムを定義するHLLの内部表現を演算し得る。区分化部により取られる制御データフローグラフは、CFGからCFG−DFGへのコンバータにより生成されるCFG−DFGであり得る。CFG−DFGは、コンパイルされているファイルの中に見つかり得る1組の関数のグラフである。決定プロセスの結果、命令プロセッサのための命令を目標としたコードのうちの部分と、多数の再構成可能プロセッサの中に入っている多数の再構成可能チップ内のロジックのうちの部分がもたらされる。
化構文または指示子に基づき区分ブロックに対するサブグラフの割当として定義され得る。
CFGからCFG−DFGへのコンバータの出力の1つは、コンパイルされているプロシージャについての変換されたデータフローグラフを表わすASCIIテキストファイルである。コンパイルにおける次のステップは、コンパイルにおける、CFG−DFGからHDLへのコンバータのVerilogコード生成段階により利用可能なフォーマットへと上記ファイル(すなわち.dfgファイル)を翻訳するステップである。MAPコンパイラは、CFG−DFGからHDLへのコンバータ「タプル」フォーマットでコンパイルされているプロシージャを表わす、CFG−DFGからHDLへのコンバータの内部フォーマット化テーブルへASCII.dfgファイルを翻訳する論理命令を含むソフトウェアモジュールを実現する。翻訳されたテーブルは、CFG−DFGからHDLへのコンバータへの入力の1つであるバイナリフォーマット化ファイル(.grfファイル)に書込まれ得る。
表現に用いられる内部データ構造は、CFGからCFG−DFGへのコンバータにより用いられるのと同じ構造である。上記2つの一次構造は、プロシージャ変数を表現する構造のアレイと、コンパイルされているプロシージャの実行可能部分を含む基本コードブロックを表現する構造のアレイとである。
いての最初および最後のCFG−DFGからHDLへのコンバータのRAW_NODESテーブルエントリに対する索引を含む。ブロックが終了ブロックであり、すなわちコンパイルされているプロシージャからの戻りを含むブロックであることを意味している場合、BLOCKSテーブルエントリにはこれ以上の情報は入れられない。ブロックがドロップスルーブロックであり、条件分岐で終わらないことを意味している場合、後継のブロックのためのBLOCKSテーブルエントリに対する索引が現在のブロックのBLOCKSテーブルエントリに入れられる。他ではブロックは条件分岐で終わることになる。この場合、2つのあり得る後継のブロック(分岐の真のブロックおよび分岐の偽ブロック)のBLOCKSテーブル索引が現在のブロックBLOCKSテーブルエントリに入れられる。
再構成可能FPGAチップについてのコンパイルシステムの一構成要素について説明する。このコンパイルシステムは、CやFortranのようなより高級な言語を、より大きな実行フレームワーク内で動作するFPGAのための構成ビットストリームにコンパイルする能力を有する。
。
はオペコード入力ファイルに担われる情報から生成される。一般的に、ファイル名は“.v”をサフィックスとする高級言語ファイルの「基底名」である。たとえば、“toto.c”と名付けられた高級言語ファイルは、結果として“toto.v”と名付けられたVerilog言語ファイルをもたらす。
れたハードウェアモジュールのMODULE索引を与える。このモジュール情報への索引はNODEテーブルに置かれる。
コンパイルシステムの1構成要素であって、ユーザの実行可能要素へと最終的に統合されることになるコンパイル可能なCコードへザイリンクス(Xilinx)ツールから作成されるビットストリームファイルを含める作業を行なう。この構成要素は、プログラミングデータのみを含むバイナリファイルの中にある1または2のFPGAビットストリームファイルを入力として取る。このコンパイル段階の結果は、一方が各々のFPGAビットストリームについてある2つの構造を含むCコードである。各々の構造は、下記のように、アレイの中に入ったFPGAビットストリームについてのパックされた表現;ビットストリームについての内部場所を指すポインタ;このビットストリームが表現するFPGAの数、ビットストリームアレイの長さ;ビットストリームアレイの始まりのアドレス;および、エミュレートに用いられるMAPルーチンのCバージョンを指すポインタ、を含む。
異なりしたがって一様でないプラットフォームに対して実行されるであろうオブジェクトファイルを作成した結果として、コンパイルプロセスにおける次のステップは、これらさまざまな構成要素を、「統一された実行可能要素」と称されるものを構築するようにまとめなければならない。次に、統一された実行可能要素は、命令プロセッサで実行されるマシンコードと、ハードウェアロジックプロセッサで実行されるマシンコードとの両方を含む。
統一されたバイナリが実行されるランタイム環境は、命令プロセッサバイナリが実行されるランタイム環境を超えて拡張され得る。MAPライブラリは、データフローグラフのエミュレートおよびシミュレーションのためのサポートルーチンを含み得る。ユーザの観点からは、ランタイム環境にはルーチンについて3つのカテゴリがある。すなわちメモリ管理、MAPリソース管理、およびMAP実行である。
環境との間で転送されるメモリのブロックはキャッシュの境界で開始することが必要な場合がある。このようなハードウェア制限が存在する場合でのキャッシュ整列を支援するための2つの関数が設けられる。
れれば、最も最近に割付けられたMAP IDは4および5である。
エミュレートは極めて有用なデバッグツールであるとともに、データフローグラフレベルでの性能プロファイリングを可能にするツールである。エミュレーションの能力は、MAPコンパイルシステムにより構築される実行可能要素のランタイム環境の中に構築される。
わりとなる。すなわち、通信リンク、オンボードメモリ、データレジスタ、およびフラグレジスタであり、これらリソースのソフトウェアエミュレートバージョンをもたらす。図31および図32はMAPエミュレータの構造を示す。
ドも、その入力に利用可能な値がある限り任意の時点で実行され得る。データ値は「トークン」と呼ばれ、トークンはノードの入力ポートで待ち行列を作ることができる。別の実施例においては、「クロック正確性(clock accurate)」シミュレーションが、システムクロックと機能ユニットの実行待ち時間とを考慮する。この場合、「同時」という語は意味を有する。
ータ関数へのコールを行なうことによりこれらノードを実行し得る。
「初期化された」フィールドが「偽」に設定される。状態を持つノードについてのノード実行ルーチンはこのフィールドを調べて、偽であれば初期化を実行することができる。これは典型的に、ノードタイプの状態のために適当なデータ構造を割付けて、これを指し示すように「状態」ポインタを設定することによって行なわれる。また、この構造のフィールドが適当な開始状態に設定される。それから、「初期化された」フィールドが「真」に設定され、こうしてノードにおける後続の発火が再初期化を試みないようにする。
Claims (13)
- 制御データフローグラフをシミュレートする方法であって、
プロセッサおよびメモリを有するコンピュータにおいて、現在のブロックを含む、再構成可能なプロセッサによって実現されたアルゴリズムのために再構成可能なロジックをエミュレートする、前記制御データフローグラフの内部表現を構築するステップと、
トリガトークンを前記現在のブロックに送るステップとを含み、前記トリガトークンは、前記現在のブロック全体の実行を開始し、前記現在のブロックの実行は、前記現在のブロックの最上部から前記現在のブロックの最下部まで進み、前記方法はさらに、
前記再構成可能なプロセッサによって実行されるアルゴリズムに関連付けられる変数の現在の値を前記メモリにロードするために、前記現在のブロックの最上部に複数のロードノードを設けるステップと、
前記制御データフローグラフの計算部分に前記ロードノードからの値を供給するステップと、
前記制御データフローグラフの前記計算部分の結果を受信し、前記再構成可能なプロセッサによって実行されるアルゴリズムに関連付けられる変数の更新値を前記メモリに記憶するために、前記現在のブロックの最下部に複数の記憶ノードを設けるステップと、
前記現在のブロックの出力値を生成するステップとを備え、前記出力値は後続のブロック実行を決定し、後続のブロック実行を決定する前記出力値を除いて、前記現在のブロックおよび各々の後続のブロックは、それぞれの制御データフローグラフ表現間にデータ接続のない独立した制御データフローグラフ表現であり、前記方法はさらに、
その後、前記現在のブロックを終了させるステップを含む、方法。 - 前記現在のブロックは付加的なノードを含み、
前記付加的なノードは、前記現在のブロックの上に位置する開始ノードである、請求項1に記載の方法。 - 前記現在のブロックにおける発火可能ノードに発火フラグをセットするステップと、
前記発火フラグがセットされた前記発火可能ノードを発火するステップとを備える、請求項1に記載の方法。 - 前記現在のブロック内に発火可能ノードがない、請求項3に記載の方法。
- 前記現在のブロック内に発火可能ノードがないことによるデッドロックエラーを生成するステップを備える、請求項4に記載の方法。
- 前記現在のブロックは終了を含む、請求項1に記載の方法。
- 前記現在のブロックの前記出力値を用いて新たな現在のブロックを設定するステップを備える、請求項6に記載の方法。
- 待ち行列をクリアして前記現在のブロック内の前記ノードの状態をリセットするステップを備える、請求項2に記載の方法。
- 前記ノードは、状態を持つノードを含む、請求項2に記載の方法。
- 前記ノードは、フラグレジスタ、データレジスタまたはオンボードメモリに書込み、
再構成可能ハードウェアエミュレータ関数へのコールを行なうことにより前記ノードを実行するステップをさらに備える、請求項2に記載の方法。 - 前記トークンはタイムスタンプを含む、請求項1に記載の方法。
- 前記記憶ノードによって記憶されている変数であって、実行しているプログラムの変数の前記更新値は、後続のブロックが使用するのに利用可能である、請求項1に記載の方法。
- 機械によって実行可能な複数の命令からなるプログラムを具体的に表現するためのコンピュータ読み取り可能な記憶媒体であって、前記複数の命令からなるプログラムは、制御データフローグラフをシミュレートするための複数のプログラムコードを含み、前記複数の命令からなるプログラムは、請求項1から12のいずれかに記載の方法を実行するためのプログラムコードを含む、コンピュータ読み取り可能な記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/285,389 US7155708B2 (en) | 2002-10-31 | 2002-10-31 | Debugging and performance profiling using control-dataflow graph representations with reconfigurable hardware emulation |
PCT/US2003/031646 WO2004042499A2 (en) | 2002-10-31 | 2003-10-06 | Debugging using control-dataflow graph with reconfigurable hardware emulation |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006508430A JP2006508430A (ja) | 2006-03-09 |
JP2006508430A5 JP2006508430A5 (ja) | 2006-11-24 |
JP4403080B2 true JP4403080B2 (ja) | 2010-01-20 |
Family
ID=32175180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004550001A Expired - Fee Related JP4403080B2 (ja) | 2002-10-31 | 2003-10-06 | 再構成可能なハードウェアエミュレーションによる制御データフローグラフを用いたデバッグ |
Country Status (6)
Country | Link |
---|---|
US (1) | US7155708B2 (ja) |
EP (1) | EP1558998A4 (ja) |
JP (1) | JP4403080B2 (ja) |
AU (1) | AU2003279851A1 (ja) |
CA (1) | CA2503085A1 (ja) |
WO (1) | WO2004042499A2 (ja) |
Families Citing this family (129)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
CN1378665A (zh) * | 1999-06-10 | 2002-11-06 | Pact信息技术有限公司 | 编程概念 |
JP2004506261A (ja) | 2000-06-13 | 2004-02-26 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | パイプラインctプロトコルおよびct通信 |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US7062749B2 (en) * | 2000-12-15 | 2006-06-13 | Promenix, Inc. | Measuring, monitoring and tracking enterprise communications and processes |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
US8281108B2 (en) | 2002-01-19 | 2012-10-02 | Martin Vorbach | Reconfigurable general purpose processor having time restricted configurations |
US20110161977A1 (en) * | 2002-03-21 | 2011-06-30 | Martin Vorbach | Method and device for data processing |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
WO2004088502A2 (de) * | 2003-04-04 | 2004-10-14 | Pact Xpp Technologies Ag | Verfahren und vorrichtung für die datenverarbeitung |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
EP1537486A1 (de) | 2002-09-06 | 2005-06-08 | PACT XPP Technologies AG | Rekonfigurierbare sequenzerstruktur |
US6983456B2 (en) * | 2002-10-31 | 2006-01-03 | Src Computers, Inc. | Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms |
US7051322B2 (en) | 2002-12-06 | 2006-05-23 | @Stake, Inc. | Software analysis framework |
US7353503B2 (en) * | 2002-12-27 | 2008-04-01 | Sun Microsystems, Inc. | Efficient dead code elimination |
US6986110B1 (en) * | 2003-01-02 | 2006-01-10 | Hewlett-Packard Development Company, L.P. | Automated method and system for backtracing of instruction parameters from specified instruction in test cases |
US8281297B2 (en) * | 2003-02-05 | 2012-10-02 | Arizona Board Of Regents | Reconfigurable processing |
US7143376B1 (en) * | 2003-03-04 | 2006-11-28 | Xilinx, Inc. | Method and apparatus for design verification with equivalency check |
US20050071812A1 (en) * | 2003-09-30 | 2005-03-31 | Intel Corporation | Combined emulation and simulation debugging techniques |
US7328429B2 (en) * | 2003-11-13 | 2008-02-05 | Intel Corporation | Instruction operand tracing for software debug |
US7797683B2 (en) * | 2003-12-29 | 2010-09-14 | Intel Corporation | Decoupling the number of logical threads from the number of simultaneous physical threads in a processor |
US7353279B2 (en) * | 2004-01-08 | 2008-04-01 | Hughes Electronics Corporation | Proxy architecture for providing quality of service(QoS) reservations |
US7379858B2 (en) * | 2004-02-17 | 2008-05-27 | Intel Corporation | Computation of all-pairs reaching probabilities in software systems |
US7353488B1 (en) * | 2004-05-27 | 2008-04-01 | Magma Design Automation, Inc. | Flow definition language for designing integrated circuit implementation flows |
US7971191B2 (en) * | 2004-06-10 | 2011-06-28 | Hewlett-Packard Development Company, L.P. | System and method for analyzing a process |
JP4275013B2 (ja) * | 2004-06-21 | 2009-06-10 | 三洋電機株式会社 | データフローグラフ処理装置、処理装置、リコンフィギュラブル回路。 |
US7464375B2 (en) * | 2004-06-24 | 2008-12-09 | International Business Machines Corporation | Method for flattening hierarchically structured flows |
US7574705B2 (en) * | 2004-06-29 | 2009-08-11 | Sun Microsystems, Inc. | Method and apparatus for efficiently resolving symbolic references in a virtual machine |
US20060020574A1 (en) * | 2004-07-21 | 2006-01-26 | Mentor Graphics Corporation | Area optimization of hardware for algorithms by optimizing sizes of variables of the algorithm |
EP1622009A1 (en) * | 2004-07-27 | 2006-02-01 | Texas Instruments Incorporated | JSM architecture and systems |
US7493606B2 (en) * | 2004-08-03 | 2009-02-17 | Université du Québec à Chicoutimi (UQAC) | Method for compiling and executing a parallel program |
AU2005277538C1 (en) | 2004-08-16 | 2010-02-04 | Qualcomm Incorporated | Methods and apparatus for managing group membership for group communications |
JP4535912B2 (ja) * | 2004-08-30 | 2010-09-01 | 三洋電機株式会社 | データフローグラフ生成装置 |
US8984496B2 (en) | 2004-09-20 | 2015-03-17 | The Mathworks, Inc. | Extensible internal representation of systems with parallel and sequential implementations |
US20060070042A1 (en) * | 2004-09-24 | 2006-03-30 | Muratori Richard D | Automatic clocking in shared-memory co-simulation |
US7412691B2 (en) * | 2004-12-27 | 2008-08-12 | International Business Machines Corporation | Dynamic configuration files |
JP2006243838A (ja) * | 2005-02-28 | 2006-09-14 | Toshiba Corp | プログラム開発装置 |
DE602006021001D1 (de) * | 2005-04-28 | 2011-05-12 | Univ Edinburgh | Umkonfigurierbares anweisungs-zellen-array |
US7900193B1 (en) * | 2005-05-25 | 2011-03-01 | Parasoft Corporation | System and method for detecting defects in a computer program using data and control flow analysis |
US8407785B2 (en) * | 2005-08-18 | 2013-03-26 | The Trustees Of Columbia University In The City Of New York | Systems, methods, and media protecting a digital data processing device from attack |
US7599755B2 (en) * | 2005-09-12 | 2009-10-06 | Adra Hosni I | System and method for dynamically simulating value stream and network maps |
US9774699B2 (en) | 2005-09-20 | 2017-09-26 | The Mathworks, Inc. | System and method for transforming graphical models |
US8074115B2 (en) * | 2005-10-25 | 2011-12-06 | The Trustees Of Columbia University In The City Of New York | Methods, media and systems for detecting anomalous program executions |
US7472103B1 (en) * | 2005-12-23 | 2008-12-30 | The Mathworks, Inc. | Registering rules for entity attributes for validation and inference |
US7788246B2 (en) * | 2006-02-15 | 2010-08-31 | Microsoft Corporation | Linguistic structure for data flow diagrams |
US20070245325A1 (en) * | 2006-04-04 | 2007-10-18 | Microsoft Corporation | Type inference for optimized XSLT implementation |
US8074166B2 (en) * | 2006-04-04 | 2011-12-06 | Microsoft Corporation | XSLT/XPATH focus inference for optimized XSLT implementation |
US7793268B2 (en) * | 2006-08-28 | 2010-09-07 | International Business Machines Corporation | Method, system, and program product for composing a virtualized computing environment |
US20080082517A1 (en) * | 2006-08-29 | 2008-04-03 | Sap Ag | Change assistant |
US7827528B2 (en) | 2006-08-29 | 2010-11-02 | Sap Ag | Delta layering |
US8131644B2 (en) * | 2006-08-29 | 2012-03-06 | Sap Ag | Formular update |
US7831637B2 (en) * | 2006-08-29 | 2010-11-09 | Sap Ag | System on the fly |
US7823124B2 (en) * | 2006-08-29 | 2010-10-26 | Sap Ag | Transformation layer |
US20080071555A1 (en) * | 2006-08-29 | 2008-03-20 | Juergen Sattler | Application solution proposal engine |
US20080059630A1 (en) * | 2006-08-29 | 2008-03-06 | Juergen Sattler | Assistant |
US8065661B2 (en) * | 2006-08-29 | 2011-11-22 | Sap Ag | Test engine |
US7908589B2 (en) * | 2006-08-29 | 2011-03-15 | Sap Ag | Deployment |
US20080127082A1 (en) * | 2006-08-29 | 2008-05-29 | Miho Emil Birimisa | System and method for requirements-based application configuration |
US7831568B2 (en) * | 2006-08-29 | 2010-11-09 | Sap Ag | Data migration |
US8418122B2 (en) * | 2006-10-13 | 2013-04-09 | Oracle America, Inc. | Incorporating functionality from an object file into an existing binary file |
US8135994B2 (en) | 2006-10-30 | 2012-03-13 | The Trustees Of Columbia University In The City Of New York | Methods, media, and systems for detecting an anomalous sequence of function calls |
US7904288B1 (en) * | 2006-11-06 | 2011-03-08 | Cadence Design Systems, Inc. | Hardware emulator having a variable input emulation group |
US8495592B2 (en) * | 2006-11-28 | 2013-07-23 | International Business Machines Corporation | Presenting completion progress status of an installer via join points |
US8656381B2 (en) * | 2006-12-07 | 2014-02-18 | International Business Machines Corporation | Presenting machine instructions in a machine-independent tree form suitable for post-link optimizations |
US8136091B2 (en) * | 2007-01-31 | 2012-03-13 | Microsoft Corporation | Architectural support for software-based protection |
US8613080B2 (en) | 2007-02-16 | 2013-12-17 | Veracode, Inc. | Assessment and analysis of software security flaws in virtual machines |
EP2220554A1 (de) * | 2007-11-17 | 2010-08-25 | Krass, Maren | Rekonfiguri erbare fliesskomma- und bit- ebenen datenverarbeitungseinheit |
US20110173596A1 (en) * | 2007-11-28 | 2011-07-14 | Martin Vorbach | Method for facilitating compilation of high-level code for varying architectures |
US20110119657A1 (en) * | 2007-12-07 | 2011-05-19 | Martin Vorbach | Using function calls as compiler directives |
US8769221B2 (en) * | 2008-01-04 | 2014-07-01 | International Business Machines Corporation | Preemptive page eviction |
US8677336B2 (en) * | 2008-01-17 | 2014-03-18 | Microsoft Corporation | Block count based procedure layout and splitting |
US8140313B2 (en) * | 2008-01-30 | 2012-03-20 | International Business Machines Corporation | Techniques for modeling variables in subprograms of hardware description language programs |
WO2009102903A2 (en) * | 2008-02-12 | 2009-08-20 | Scrutiny, Inc. | Systems and methods for information flow analysis |
US8423980B1 (en) * | 2008-09-18 | 2013-04-16 | Google Inc. | Methods for handling inlined functions using sample profiles |
US8135659B2 (en) * | 2008-10-01 | 2012-03-13 | Sap Ag | System configuration comparison to identify process variation |
US8645923B1 (en) * | 2008-10-31 | 2014-02-04 | Symantec Corporation | Enforcing expected control flow in program execution |
US8396893B2 (en) * | 2008-12-11 | 2013-03-12 | Sap Ag | Unified configuration of multiple applications |
US8255429B2 (en) * | 2008-12-17 | 2012-08-28 | Sap Ag | Configuration change without disruption of incomplete processes |
KR101553648B1 (ko) | 2009-02-13 | 2015-09-17 | 삼성전자 주식회사 | 재구성 가능한 구조의 프로세서 |
US8423965B2 (en) * | 2009-06-23 | 2013-04-16 | Microsoft Corporation | Tracing of data flow |
US8156457B2 (en) * | 2009-09-24 | 2012-04-10 | Synopsys, Inc. | Concurrent simulation of hardware designs with behavioral characteristics |
US8255847B1 (en) * | 2009-10-01 | 2012-08-28 | Altera Corporation | Method and apparatus for automatic hierarchical design partitioning |
EP2519876A1 (en) | 2009-12-28 | 2012-11-07 | Hyperion Core, Inc. | Optimisation of loops and data flow sections |
US8417998B2 (en) | 2010-06-07 | 2013-04-09 | Microsoft Corporation | Targeted black box fuzzing of input data |
WO2012154612A1 (en) * | 2011-05-06 | 2012-11-15 | Xcelemor, Inc. | Computing system with hardware scheduled reconfiguration mechanism and method of operation thereof |
US9170843B2 (en) | 2011-09-24 | 2015-10-27 | Elwha Llc | Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement |
US9575903B2 (en) | 2011-08-04 | 2017-02-21 | Elwha Llc | Security perimeter |
US9443085B2 (en) | 2011-07-19 | 2016-09-13 | Elwha Llc | Intrusion detection using taint accumulation |
US9098608B2 (en) | 2011-10-28 | 2015-08-04 | Elwha Llc | Processor configured to allocate resources using an entitlement vector |
US9798873B2 (en) * | 2011-08-04 | 2017-10-24 | Elwha Llc | Processor operable to ensure code integrity |
US9471373B2 (en) | 2011-09-24 | 2016-10-18 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9558034B2 (en) | 2011-07-19 | 2017-01-31 | Elwha Llc | Entitlement vector for managing resource allocation |
US9460290B2 (en) | 2011-07-19 | 2016-10-04 | Elwha Llc | Conditional security response using taint vector monitoring |
US9465657B2 (en) | 2011-07-19 | 2016-10-11 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9298918B2 (en) | 2011-11-30 | 2016-03-29 | Elwha Llc | Taint injection and tracking |
US9335977B2 (en) * | 2011-07-28 | 2016-05-10 | National Instruments Corporation | Optimization of a data flow program based on access pattern information |
KR101745392B1 (ko) * | 2011-08-12 | 2017-06-09 | (주)테크노니아 | 프로그램 분석 장치 및 분석용 프로그램을 기록한 컴퓨터 판독 가능한 저장매체 |
WO2013040598A1 (en) | 2011-09-15 | 2013-03-21 | The Trustees Of Columbia University In The City Of New York | Systems, methods, and media for detecting return-oriented programming payloads |
US9032380B1 (en) * | 2011-12-05 | 2015-05-12 | The Mathworks, Inc. | Identifying function calls and object method calls |
US20130157639A1 (en) | 2011-12-16 | 2013-06-20 | SRC Computers, LLC | Mobile electronic devices utilizing reconfigurable processing techniques to enable higher speed applications with lowered power consumption |
US9361079B2 (en) * | 2012-01-30 | 2016-06-07 | Nvidia Corporation | Method for compiling a parallel thread execution program for general execution |
US9286063B2 (en) | 2012-02-22 | 2016-03-15 | Veracode, Inc. | Methods and systems for providing feedback and suggested programming methods |
US8887138B2 (en) | 2012-05-25 | 2014-11-11 | Telefonaktiebolaget L M Ericsson (Publ) | Debugging in a dataflow programming environment |
US8909990B2 (en) | 2012-08-04 | 2014-12-09 | Microsoft Corporation | Historical software diagnostics using lightweight process snapshots |
JP6218833B2 (ja) * | 2012-08-20 | 2017-10-25 | キャメロン,ドナルド,ケヴィン | 処理リソース割り当て |
US8863099B2 (en) * | 2012-11-05 | 2014-10-14 | International Business Machines Corporation | Compilation and placement of instructions in a memory system |
US9177646B2 (en) | 2013-05-06 | 2015-11-03 | International Business Machines Corporation | Implementing computational memory from content-addressable memory |
US8806403B1 (en) * | 2013-06-21 | 2014-08-12 | Altera Corporation | Efficient configuration of an integrated circuit device using high-level language |
US10289411B2 (en) | 2013-11-18 | 2019-05-14 | Microsoft Technology Licensing, Llc | Diagnosing production applications |
US9846587B1 (en) * | 2014-05-15 | 2017-12-19 | Xilinx, Inc. | Performance analysis using configurable hardware emulation within an integrated circuit |
US9530483B2 (en) | 2014-05-27 | 2016-12-27 | Src Labs, Llc | System and method for retaining dram data when reprogramming reconfigurable devices with DRAM memory controllers incorporating a data maintenance block colocated with a memory module or subsystem |
US9153311B1 (en) | 2014-05-27 | 2015-10-06 | SRC Computers, LLC | System and method for retaining DRAM data when reprogramming reconfigurable devices with DRAM memory controllers |
US9632915B2 (en) | 2014-10-29 | 2017-04-25 | Microsoft Technology Licensing, Llc. | Historical control flow visualization in production diagnostics |
US9529587B2 (en) * | 2014-12-19 | 2016-12-27 | Intel Corporation | Refactoring data flow applications without source code changes or recompilation |
US9542244B2 (en) | 2015-04-22 | 2017-01-10 | Ryft Systems, Inc. | Systems and methods for performing primitive tasks using specialized processors |
US9411613B1 (en) | 2015-04-22 | 2016-08-09 | Ryft Systems, Inc. | Systems and methods for managing execution of specialized processors |
US9411528B1 (en) | 2015-04-22 | 2016-08-09 | Ryft Systems, Inc. | Storage management systems and methods |
US20160321039A1 (en) * | 2015-04-29 | 2016-11-03 | Wave Computing, Inc. | Technology mapping onto code fragments |
US10817406B2 (en) | 2018-03-30 | 2020-10-27 | Ab Initio Technology Llc | Debugging an executable control flow graph that specifies control flow |
US10846449B1 (en) * | 2018-12-11 | 2020-11-24 | Xilinx, Inc. | Conversion of block model-based circuit designs into circuit implementations |
US11455153B2 (en) * | 2019-03-18 | 2022-09-27 | Advanced Micro Devices, Inc. | Dynamic instances semantics |
US11194705B2 (en) * | 2020-05-11 | 2021-12-07 | International Business Machines Corporation | Automatically introducing register dependencies to tests |
US11270051B1 (en) | 2020-11-09 | 2022-03-08 | Xilinx, Inc. | Model-based design and partitioning for heterogeneous integrated circuits |
US11126574B1 (en) * | 2021-02-12 | 2021-09-21 | SambaNova Systems, Inc. | Instrumentation profiling for reconfigurable processors |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US1512693A (en) * | 1922-10-18 | 1924-10-21 | H Cuenod Sa Atel | Induction motor |
US4039875A (en) * | 1975-11-07 | 1977-08-02 | Computer Devices Corporation | Method and apparatus for interconnecting stator coils |
US4689023A (en) * | 1985-08-27 | 1987-08-25 | The Superior Electric Company | Programmable electrical connector |
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 |
EP0360527B1 (en) | 1988-09-19 | 1995-01-04 | Fujitsu Limited | Parallel computer system using a SIMD method |
US5491640A (en) * | 1992-05-01 | 1996-02-13 | Vlsi Technology, Inc. | Method and apparatus for synthesizing datapaths for integrated circuit design and fabrication |
US5802290A (en) | 1992-07-29 | 1998-09-01 | Virtual Computer Corporation | Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed |
US5438646A (en) * | 1992-08-19 | 1995-08-01 | Nec Electronics, Inc. | Feed-forward neural network |
US5804902A (en) * | 1994-04-06 | 1998-09-08 | Hill; Wolfgang | Multi-phase electric machine with joined conductor lanes |
US6052773A (en) | 1995-02-10 | 2000-04-18 | Massachusetts Institute Of Technology | DPGA-coupled microprocessors |
US5570040A (en) | 1995-03-22 | 1996-10-29 | Altera Corporation | Programmable logic array integrated circuit incorporating a first-in first-out memory |
US5903771A (en) | 1996-01-16 | 1999-05-11 | Alacron, Inc. | Scalable multi-processor architecture for SIMD and MIMD operations |
US5737766A (en) | 1996-02-14 | 1998-04-07 | Hewlett Packard Company | Programmable gate array configuration memory which allows sharing with user memory |
US5854929A (en) * | 1996-03-08 | 1998-12-29 | Interuniversitair Micro-Elektronica Centrum (Imec Vzw) | Method of generating code for programmable processors, code generator and application thereof |
US5831864A (en) * | 1996-10-31 | 1998-11-03 | Trustees Of Princeton University | Design tools for high-level synthesis of a low-power data path |
US5892962A (en) | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
US6233540B1 (en) * | 1997-03-14 | 2001-05-15 | Interuniversitair Micro-Elektronica Centrum | Design environment and a method for generating an implementable description of a digital system |
US6286135B1 (en) * | 1997-03-26 | 2001-09-04 | Hewlett-Packard Company | Cost-sensitive SSA-based strength reduction algorithm for a machine with predication support and segmented addresses |
US5978588A (en) * | 1997-06-30 | 1999-11-02 | Sun Microsystems, Inc. | Method and apparatus for profile-based code placement using a minimum cut set of the control flow graph |
US6226776B1 (en) | 1997-09-16 | 2001-05-01 | Synetry Corporation | System for converting hardware designs in high-level programming language to hardware implementations |
US6253373B1 (en) * | 1997-10-07 | 2001-06-26 | Hewlett-Packard Company | Tracking loop entry and exit points in a compiler |
JP4751510B2 (ja) * | 1997-12-10 | 2011-08-17 | 株式会社日立製作所 | メモリアクセス最適化方法 |
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 |
US6192439B1 (en) | 1998-08-11 | 2001-02-20 | Hewlett-Packard Company | PCI-compliant interrupt steering architecture |
US6505328B1 (en) * | 1999-04-27 | 2003-01-07 | Magma Design Automation, Inc. | Method for storing multiple levels of design data in a common database |
US6782511B1 (en) * | 1999-05-26 | 2004-08-24 | Cadence Design Systems, Inc. | Behavioral-synthesis electronic design automation tool business-to-business application service provider |
US6507947B1 (en) * | 1999-08-20 | 2003-01-14 | Hewlett-Packard Company | Programmatic synthesis of processor element arrays |
US6324680B1 (en) * | 1999-08-30 | 2001-11-27 | International Business Machines Corporation | Synthesis of arrays and records |
JP2001142922A (ja) * | 1999-11-15 | 2001-05-25 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置の設計方法 |
JP4007483B2 (ja) * | 2001-07-16 | 2007-11-14 | シャープ株式会社 | 高位合成装置および高位合成方法 |
-
2002
- 2002-10-31 US US10/285,389 patent/US7155708B2/en not_active Expired - Lifetime
-
2003
- 2003-10-06 CA CA002503085A patent/CA2503085A1/en not_active Abandoned
- 2003-10-06 WO PCT/US2003/031646 patent/WO2004042499A2/en active Application Filing
- 2003-10-06 JP JP2004550001A patent/JP4403080B2/ja not_active Expired - Fee Related
- 2003-10-06 EP EP03773178A patent/EP1558998A4/en not_active Withdrawn
- 2003-10-06 AU AU2003279851A patent/AU2003279851A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP1558998A4 (en) | 2008-04-09 |
JP2006508430A (ja) | 2006-03-09 |
AU2003279851A1 (en) | 2004-06-07 |
EP1558998A2 (en) | 2005-08-03 |
US20040088691A1 (en) | 2004-05-06 |
WO2004042499A2 (en) | 2004-05-21 |
CA2503085A1 (en) | 2004-05-21 |
WO2004042499A3 (en) | 2004-12-02 |
US7155708B2 (en) | 2006-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4403080B2 (ja) | 再構成可能なハードウェアエミュレーションによる制御データフローグラフを用いたデバッグ | |
JP4482454B2 (ja) | 高級プログラミング言語におけるプログラムをハイブリッド計算プラットフォームの統一された実行可能要素に変換するためのプロセス | |
US6964029B2 (en) | System and method for partitioning control-dataflow graph representations | |
US7299458B2 (en) | System and method for converting control flow graph representations to control-dataflow graph representations | |
US9582278B2 (en) | Automated processor generation system and method for designing a configurable processor | |
WO2000046704A2 (en) | Automated processor generation system and method for designing a configurable processor | |
Qin et al. | Architecture Description Languages for Retargetable Compilation. | |
Wirthlin et al. | Synthesizing RTL hardware from Java byte codes | |
Åkesson | An LLVM Back-end for REPLICA: Code Generation for a Multi-core VLIWProcessor with Chaining | |
Manual | Rough Draft User Manual (KiwiC Version Alpha 0.3. 2e)(Sept 2017) | |
Poulsen et al. | EPG source code instrumentation tools-user manual | |
Kuchcinski et al. | Parallelism extraction from sequential programs for VLSI applications | |
SVOBODA | ARCHITECTURE INFORMATION FOR LLVM COMPILER OPTIMIZATIONS | |
Janssen | Enhancing the Move framework | |
Chang | High-level cycle-accurate specification of microprocessors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060926 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060926 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090519 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090819 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090826 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090917 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091020 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091030 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4403080 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121106 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121106 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131106 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |