JP4482454B2 - 高級プログラミング言語におけるプログラムをハイブリッド計算プラットフォームの統一された実行可能要素に変換するためのプロセス - Google Patents
高級プログラミング言語におけるプログラムをハイブリッド計算プラットフォームの統一された実行可能要素に変換するためのプロセス Download PDFInfo
- Publication number
- JP4482454B2 JP4482454B2 JP2004549981A JP2004549981A JP4482454B2 JP 4482454 B2 JP4482454 B2 JP 4482454B2 JP 2004549981 A JP2004549981 A JP 2004549981A JP 2004549981 A JP2004549981 A JP 2004549981A JP 4482454 B2 JP4482454 B2 JP 4482454B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- flow graph
- cfg
- hardware
- dfg
- 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 - Lifetime
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
Description
この特許文献の開示の一部には、著作権保護の対象となる資料が含まれる。著作権所有者は、米国特許商標局の特許ファイルまたは特許記録に現われるように、特許開示の特許文献の何人による複製にも異議を唱えないが、それ以外ではいかなるすべての著作権を保有する。以下の表示は、適用可能であれは図面を含む以下に記載のソフトウェアおよびデータに適用される。(C)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 (4)
- 高級言語ソースコードを統一された実行可能ファイルに変換する方法であって、
当該高級言語ソースコードを制御フローグラフ表現に変換するステップと、
当該制御フローグラフ表現を制御データフローグラフ表現に変換するステップとを備え、当該制御データフローグラフ表現は、複数のブロックとブロック間を接続する辺とを含み、さらに
当該制御データフローグラフ表現を、命令プロセッサによって実行される第2の部分と当該再構成可能なハードウェアによって実行される第1の部分とに区分化するステップとを備え、前記区分化するステップは、所定のアルゴリズムに従って、ブロック単位で前記第1の部分と前記第2の部分とを区分することを含み、さらに
当該高級言語ソースコードの再構成可能なハードウェアによって実行される前記第1の部分からオブジェクトファイルを生成するステップと、
当該オブジェクトファイルを当該統一された実行可能ファイルに統合するステップとを備える、方法。 - 前記方法は、
当該再構成可能なハードウェアによって実行される前記第1の部分をハードウェア定義言語ファイルに変換するステップと、
当該ハードウェア定義言語ファイルを再構成可能なハードウェアビットストリームファイルに変換するステップと、
当該再構成可能なハードウェアビットストリームファイルを当該オブジェクトファイルに変換するステップとを含む、請求項1に記載の方法。 - 再構成可能なハードウェアと命令プロセッサとのハイブリッドなコンピュータで実行することのできる統一された実行可能ファイルを高級言語から生成するためのシステムであって、
前記高級言語を制御フローグラフ表現に変換するための高級言語コンバータと、
当該制御フローグラフ表現を制御データフローグラフデータに変換するための、制御フローグラフ表現から制御データフローグラフデータへのコンバータとを備え、当該制御デ
ータフローグラフデータは、複数のブロックとブロック間を接続する辺とを含み、さらに
当該制御データフローグラフデータを、再構成可能なハードウェアによって実行される第1の部分と命令プロセッサによって実行される第2の部分とに区分化するための区分化部を備え、前記区分化部は、所定のアルゴリズムに従って、ブロック単位で前記第1の部分と前記第2の部分とを区分するように構成され、さらに
当該制御データフローグラフデータの当該再構成可能なハードウェアによって実行される第1の部分を、ハードウェア定義言語ファイルに変換するための言語コンバータと、
当該ハードウェア定義言語ファイルをビットストリームファイルに変換するためのビットストリームコンバータと、
当該ビットストリームファイルをビットストリームオブジェクトファイルに変換するためのオブジェクトファイルコンバータと、
当該ビットストリームオブジェクトファイルを当該統一された実行可能ファイルに統合するためのリンカとを備える、システム。 - コンピュータ読取可能な記憶媒体であって、当該記憶媒体には統一された実行可能ファイルの生成を生じさせるためのコンピュータ読取可能プログラムコードが具現化されており、当該コンピュータ読取可能プログラムコードは、
前記高級言語を制御フローグラフ表現に変換するための高級言語コンバータと、
当該コンピュータに、当該制御フローグラフ表現を制御データフローグラフ表現に変換させるためのコンピュータ読取可能プログラムコードとを備え、当該制御データフローグラフ表現は、複数のブロックとブロック間を接続する辺とを含み、さらに
当該コンピュータに、当該制御データフローグラフ表現を命令プロセッサによって実行される第1の部分と再構成可能なハードウェアによって実行される第2の部分とに区分化させるためのコンピュータ読取可能プログラムコードを備え、当該区分化は、所定のアルゴリズムに従って、ブロック単位で前記第1の部分と前記第2の部分とを区分することを含み、さらに
当該コンピュータに、当該制御データフローグラフ表現の当該再構成可能なハードウェアによって実行される前記第2の部分をハードウェア定義言語部分に、および当該命令プロセッサによって実行される前記第1の部分を命令プロセッサオブジェクトファイルに変換させるためのコンピュータ読取可能プログラムコードと、
当該コンピュータに、当該ハードウェア定義言語部分を再構成可能なハードウェアビットストリームに変換させるためのコンピュータ読取可能プログラムコードと、
当該コンピュータに、当該再構成可能なハードウェアビットストリームを命令プロセッサが読取ることのできるビットストリームオブジェクトファイルに変換させるためのコンピュータ読取可能プログラムコードと、
当該統一された実行可能ファイルを生成するために、当該コンピュータに、当該ビットストリームオブジェクトファイルを当該命令プロセッサオブジェクトファイルに統合させるためのコンピュータ読取可能プログラムコードとを備える、コンピュータ読取可能な記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/285,299 US6983456B2 (en) | 2002-10-31 | 2002-10-31 | Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms |
PCT/US2003/030988 WO2004042929A2 (en) | 2002-10-31 | 2003-09-30 | Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009297725A Division JP5036801B2 (ja) | 2002-10-31 | 2009-12-28 | 高級プログラミング言語におけるプログラムをハイブリッド計算プラットフォームの統一された実行可能要素に変換するためのプロセス |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006505055A JP2006505055A (ja) | 2006-02-09 |
JP2006505055A5 JP2006505055A5 (ja) | 2006-11-09 |
JP4482454B2 true JP4482454B2 (ja) | 2010-06-16 |
Family
ID=32175150
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004549981A Expired - Lifetime JP4482454B2 (ja) | 2002-10-31 | 2003-09-30 | 高級プログラミング言語におけるプログラムをハイブリッド計算プラットフォームの統一された実行可能要素に変換するためのプロセス |
JP2009297725A Expired - Fee Related JP5036801B2 (ja) | 2002-10-31 | 2009-12-28 | 高級プログラミング言語におけるプログラムをハイブリッド計算プラットフォームの統一された実行可能要素に変換するためのプロセス |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009297725A Expired - Fee Related JP5036801B2 (ja) | 2002-10-31 | 2009-12-28 | 高級プログラミング言語におけるプログラムをハイブリッド計算プラットフォームの統一された実行可能要素に変換するためのプロセス |
Country Status (6)
Country | Link |
---|---|
US (3) | US6983456B2 (ja) |
EP (1) | EP1556758A4 (ja) |
JP (2) | JP4482454B2 (ja) |
AU (1) | AU2003275340A1 (ja) |
CA (1) | CA2502892A1 (ja) |
WO (1) | WO2004042929A2 (ja) |
Families Citing this family (220)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662354B1 (en) * | 1999-01-29 | 2003-12-09 | Unisys Corporation | Determining destinations of a dynamic branch |
US7337437B2 (en) * | 1999-12-01 | 2008-02-26 | International Business Machines Corporation | Compiler optimisation of source code by determination and utilization of the equivalence of algebraic expressions in the source code |
US8176108B2 (en) * | 2000-06-20 | 2012-05-08 | International Business Machines Corporation | Method, apparatus and computer program product for network design and analysis |
US7765329B2 (en) * | 2002-06-05 | 2010-07-27 | Silicon Graphics International | Messaging between heterogeneous clients of a storage area network |
US7640582B2 (en) | 2003-04-16 | 2009-12-29 | Silicon Graphics International | Clustered filesystem for mix of trusted and untrusted nodes |
US7617292B2 (en) | 2001-06-05 | 2009-11-10 | Silicon Graphics International | Multi-class heterogeneous clients in a clustered filesystem |
US8010558B2 (en) | 2001-06-05 | 2011-08-30 | Silicon Graphics International | Relocation of metadata server with outstanding DMAPI requests |
US20040139125A1 (en) | 2001-06-05 | 2004-07-15 | Roger Strassburg | Snapshot copy of data volume during data access |
US7024663B2 (en) | 2002-07-10 | 2006-04-04 | Micron Technology, Inc. | Method and system for generating object code to facilitate predictive memory retrieval |
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 |
JP3956131B2 (ja) * | 2002-12-26 | 2007-08-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム変換装置、プログラム変換方法及びプログラム |
US7143376B1 (en) * | 2003-03-04 | 2006-11-28 | Xilinx, Inc. | Method and apparatus for design verification with equivalency check |
SE0300742D0 (sv) * | 2003-03-17 | 2003-03-17 | Flow Computing Ab | Data Flow Machine |
US7302677B2 (en) * | 2003-05-08 | 2007-11-27 | Microsoft Corporation | Event driven graph explorer for model-based testing of software |
JP2005018626A (ja) * | 2003-06-27 | 2005-01-20 | Ip Flex Kk | 並列処理システムの生成方法 |
US7263692B2 (en) * | 2003-06-30 | 2007-08-28 | Intel Corporation | System and method for software-pipelining of loops with sparse matrix routines |
US7316009B2 (en) * | 2003-08-06 | 2008-01-01 | National Instruments Corporation | Emulation of a programmable hardware element |
US7171544B2 (en) * | 2003-12-15 | 2007-01-30 | International Business Machines Corporation | Run-time parallelization of loops in computer programs by access patterns |
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 |
US7426724B2 (en) * | 2004-07-02 | 2008-09-16 | Nvidia Corporation | Optimized chaining of vertex and fragment programs |
US8044951B1 (en) | 2004-07-02 | 2011-10-25 | Nvidia Corporation | Integer-based functionality in a graphics shading language |
US7746347B1 (en) * | 2004-07-02 | 2010-06-29 | Nvidia Corporation | Methods and systems for processing a geometry shader program developed in a high-level shading language |
US7958498B1 (en) | 2004-07-02 | 2011-06-07 | Nvidia Corporation | Methods and systems for processing a geometry shader program developed in a high-level shading language |
US7389490B2 (en) * | 2004-07-29 | 2008-06-17 | International Business Machines Corporation | Method, system and program product for providing a configuration specification language supporting selective presentation of configuration entities |
US7386825B2 (en) | 2004-07-29 | 2008-06-10 | International Business Machines Corporation | Method, system and program product supporting presentation of a simulated or hardware system including configuration entities |
US7493627B2 (en) * | 2004-08-19 | 2009-02-17 | Lenovo (Singapore) Pte. Ltd. | System and method for configuring computer for operation |
US7941794B2 (en) * | 2004-08-30 | 2011-05-10 | Sanyo Electric Co., Ltd. | Data flow graph processing method and processing apparatus provided with reconfigurable circuit |
US7506331B2 (en) * | 2004-08-30 | 2009-03-17 | International Business Machines Corporation | Method and apparatus for determining the profitability of expanding unpipelined instructions |
US8984496B2 (en) * | 2004-09-20 | 2015-03-17 | The Mathworks, Inc. | Extensible internal representation of systems with parallel and sequential implementations |
US7584465B1 (en) * | 2004-09-20 | 2009-09-01 | The Mathworks, Inc. | Memory mapping for single and multi-processing implementations of code generated from a block diagram model |
US7725887B2 (en) * | 2004-12-22 | 2010-05-25 | Intel Corporation | Method and system for reducing program code size |
US8418132B2 (en) * | 2005-04-29 | 2013-04-09 | Microsoft Corporation | Application description language |
US8275793B2 (en) * | 2005-04-29 | 2012-09-25 | Microsoft Corporation | Transaction transforms |
US8799857B2 (en) | 2005-04-29 | 2014-08-05 | Microsoft Corporation | XML application framework |
US8132148B2 (en) | 2005-04-29 | 2012-03-06 | Microsoft Corporation | XML application framework |
US20060245096A1 (en) * | 2005-04-29 | 2006-11-02 | Microsoft Corporation | Application framework phasing model |
US7840914B1 (en) | 2005-05-13 | 2010-11-23 | Massachusetts Institute Of Technology | Distributing computations in a parallel processing environment |
US8521752B2 (en) | 2005-06-03 | 2013-08-27 | Osr Open Systems Resources, Inc. | Systems and methods for arbitrary data transformations |
US9774699B2 (en) * | 2005-09-20 | 2017-09-26 | The Mathworks, Inc. | System and method for transforming graphical models |
JP4388518B2 (ja) * | 2005-11-01 | 2009-12-24 | 株式会社ソニー・コンピュータエンタテインメント | スレッドデバッグ装置、スレッドデバッグ方法及びプログラム |
US7716100B2 (en) * | 2005-12-02 | 2010-05-11 | Kuberre Systems, Inc. | Methods and systems for computing platform |
TW200725411A (en) * | 2005-12-30 | 2007-07-01 | Tatung Co Ltd | Method for automatically translating a high level programming language into an extended activity diagram |
US7813823B2 (en) * | 2006-01-17 | 2010-10-12 | Sigmatel, Inc. | Computer audio system and method |
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 |
JP2007286671A (ja) * | 2006-04-12 | 2007-11-01 | Fujitsu Ltd | ソフトウェア/ハードウェア分割プログラム、および分割方法。 |
WO2007139840A2 (en) * | 2006-05-24 | 2007-12-06 | Syver, Llc | Method and tool for automatic verification of software protocols |
US7788658B2 (en) * | 2006-05-31 | 2010-08-31 | International Business Machines Corporation | Computer code partitioning for enhanced performance |
WO2007145680A1 (en) * | 2006-06-13 | 2007-12-21 | Microsoft Corporation | Declarative management framework |
US7970746B2 (en) * | 2006-06-13 | 2011-06-28 | Microsoft Corporation | Declarative management framework |
US7730068B2 (en) * | 2006-06-13 | 2010-06-01 | Microsoft Corporation | Extensible data collectors |
US8154554B1 (en) | 2006-07-28 | 2012-04-10 | Nvidia Corporation | Unified assembly instruction set for graphics processing |
US7512748B1 (en) | 2006-08-17 | 2009-03-31 | Osr Open Systems Resources, Inc. | Managing lock rankings |
US8539228B1 (en) | 2006-08-24 | 2013-09-17 | Osr Open Systems Resources, Inc. | Managing access to a resource |
JP2008059279A (ja) * | 2006-08-31 | 2008-03-13 | Internatl Business Mach Corp <Ibm> | 文字列出力処理を最適化する技術 |
US7949907B2 (en) * | 2006-10-03 | 2011-05-24 | Wipro Limited | Method and device for data communication |
US8843906B1 (en) * | 2006-10-16 | 2014-09-23 | The Mathworks, Inc. | Inferring data types from compiler call site |
US7992139B2 (en) | 2006-11-29 | 2011-08-02 | International Business Machines Corporation | Method, system and program product for transforming a single language program into multiple language programs |
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 |
US8250556B1 (en) | 2007-02-07 | 2012-08-21 | Tilera Corporation | Distributing parallelism for parallel processing architectures |
US20080209405A1 (en) * | 2007-02-28 | 2008-08-28 | Microsoft Corporation | Distributed debugging for a visual programming language |
EP1965300A1 (en) * | 2007-03-02 | 2008-09-03 | Siemens Aktiengesellschaft | A method for validating a graphical workflow translation |
US8024433B2 (en) * | 2007-04-24 | 2011-09-20 | Osr Open Systems Resources, Inc. | Managing application resources |
US9658840B2 (en) | 2007-05-22 | 2017-05-23 | Philips Lighting Holding B.V. | Compiler and compiling method for a networked control system comprising a plurality of devices |
US7996798B2 (en) * | 2007-05-24 | 2011-08-09 | Microsoft Corporation | Representing binary code as a circuit |
US8196123B2 (en) * | 2007-06-26 | 2012-06-05 | Microsoft Corporation | Object model for transactional memory |
US7761690B2 (en) * | 2007-07-26 | 2010-07-20 | International Business Machines Corporation | Method, apparatus and computer program product for dynamically selecting compiled instructions |
JP4989354B2 (ja) * | 2007-08-09 | 2012-08-01 | 三洋電機株式会社 | データフローグラフ生成装置、設定データ生成装置、処理装置、及びデータフローグラフ生成方法 |
US8122229B2 (en) | 2007-09-12 | 2012-02-21 | Convey Computer | Dispatch mechanism for dispatching instructions from a host processor to a co-processor |
US9710384B2 (en) | 2008-01-04 | 2017-07-18 | Micron Technology, Inc. | Microprocessor architecture having alternative memory access paths |
US8561037B2 (en) * | 2007-08-29 | 2013-10-15 | Convey Computer | Compiler for generating an executable comprising instructions for a plurality of different instruction sets |
US8095735B2 (en) * | 2008-08-05 | 2012-01-10 | Convey Computer | Memory interleave for heterogeneous computing |
US9015399B2 (en) | 2007-08-20 | 2015-04-21 | Convey Computer | Multiple data channel memory module architecture |
US8156307B2 (en) * | 2007-08-20 | 2012-04-10 | Convey Computer | Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set |
US7949693B1 (en) | 2007-08-23 | 2011-05-24 | Osr Open Systems Resources, Inc. | Log-structured host data storage |
US20090064092A1 (en) * | 2007-08-29 | 2009-03-05 | Microsoft Corporation | Visual programming language optimization |
US7954093B2 (en) * | 2007-09-14 | 2011-05-31 | International Business Machines Corporation | Load time instruction substitution |
US8185883B2 (en) | 2007-09-14 | 2012-05-22 | International Business Machines Corporation | Instruction exploitation through loader late fix-up |
US20090112932A1 (en) * | 2007-10-26 | 2009-04-30 | Microsoft Corporation | Visualizing key performance indicators for model-based applications |
US7865862B2 (en) * | 2007-11-08 | 2011-01-04 | International Business Machines Corporation | Design structure for dynamically selecting compiled instructions |
US8402449B1 (en) | 2008-01-10 | 2013-03-19 | The Mathworks, Inc. | Technique for automatically assigning placement for pipeline registers within code generated from a program specification |
US20090193400A1 (en) * | 2008-01-30 | 2009-07-30 | Ivan Baev | Interprocedural register allocation for global variables |
WO2009102903A2 (en) * | 2008-02-12 | 2009-08-20 | Scrutiny, Inc. | Systems and methods for information flow analysis |
US8181155B2 (en) * | 2008-02-29 | 2012-05-15 | Microsoft Corporation | Unified expression and location framework |
US8516435B2 (en) * | 2008-06-19 | 2013-08-20 | International Business Machines Corporation | System and method for generating implementation artifacts for contextually-aware business applications |
US20100070951A1 (en) * | 2008-09-15 | 2010-03-18 | Horizon Semiconductors Ltd. | Generic assembler |
US8423980B1 (en) * | 2008-09-18 | 2013-04-16 | Google Inc. | Methods for handling inlined functions using sample profiles |
US8423983B2 (en) * | 2008-10-14 | 2013-04-16 | International Business Machines Corporation | Generating and executing programs for a floating point single instruction multiple data instruction set architecture |
US9652231B2 (en) * | 2008-10-14 | 2017-05-16 | International Business Machines Corporation | All-to-all permutation of vector elements based on a permutation pattern encoded in mantissa and exponent bits in a floating-point SIMD architecture |
US8327344B2 (en) * | 2008-10-14 | 2012-12-04 | International Business Machines Corporation | Array reference safety analysis in the presence of loops with conditional control flow |
US20100115233A1 (en) * | 2008-10-31 | 2010-05-06 | Convey Computer | Dynamically-selectable vector register partitioning |
US8205066B2 (en) | 2008-10-31 | 2012-06-19 | Convey Computer | Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor |
US8370822B2 (en) * | 2008-11-20 | 2013-02-05 | Apple Inc. | Compiling techniques for providing limited accuracy and enhanced performance granularity |
US8863101B2 (en) | 2008-12-10 | 2014-10-14 | International Business Machines Corporation | Compiler generator |
US8667476B1 (en) * | 2009-01-20 | 2014-03-04 | Adaptmicrosys LLC | Instruction grouping and ungrouping apparatus and method for an adaptive microprocessor system |
KR101553652B1 (ko) * | 2009-02-18 | 2015-09-16 | 삼성전자 주식회사 | 이종 프로세서에 대한 명령어 컴파일링 장치 및 방법 |
US8185693B2 (en) * | 2009-03-17 | 2012-05-22 | Microsoft Corporation | Cache-line aware collection for runtime environments |
US8356290B2 (en) * | 2009-04-27 | 2013-01-15 | National Instruments Corporation | Conversion of a class oriented data flow program with inheritance to a structure oriented data flow program |
US8423977B2 (en) * | 2009-04-27 | 2013-04-16 | National Instruments Corporation | Implementing a class oriented data flow program on a programmable hardware element |
US8311683B2 (en) | 2009-04-29 | 2012-11-13 | International Business Machines Corporation | Processor cooling management |
US8601458B2 (en) * | 2009-05-14 | 2013-12-03 | International Business Machines Corporation | Profile-driven data stream processing |
US8490072B2 (en) | 2009-06-23 | 2013-07-16 | International Business Machines Corporation | Partitioning operator flow graphs |
US8191019B2 (en) * | 2009-07-17 | 2012-05-29 | Achronix Semiconductor Corporation | Non-predicated to predicated conversion of asynchronous representations |
US9367582B2 (en) * | 2009-08-07 | 2016-06-14 | International Business Machines Corporation | Systems and methods involving information objects |
US8423745B1 (en) | 2009-11-16 | 2013-04-16 | Convey Computer | Systems and methods for mapping a neighborhood of data to general registers of a processing element |
US9063805B2 (en) | 2009-11-25 | 2015-06-23 | Freescale Semiconductor, Inc. | Method and system for enabling access to functionality provided by resources outside of an operating system environment |
JP4959774B2 (ja) * | 2009-11-30 | 2012-06-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アプリケーション生成システム、方法及びプログラム |
US8364946B2 (en) * | 2010-03-22 | 2013-01-29 | Ishebabi Harold | Reconfigurable computing system and method of developing application for deployment on the same |
US8683451B1 (en) * | 2010-04-30 | 2014-03-25 | The United States Of America As Represented By The Secretary Of The Navy | System and method for translating software code |
US9424010B2 (en) | 2010-08-30 | 2016-08-23 | International Business Machines Corporation | Extraction of functional semantics and isolated dataflow from imperative object oriented languages |
US8713518B2 (en) * | 2010-11-10 | 2014-04-29 | SRC Computers, LLC | System and method for computational unification of heterogeneous implicit and explicit processing elements |
US9043764B2 (en) * | 2011-03-09 | 2015-05-26 | International Business Machines Corporation | Cross-platform compiler for data transforms |
US10089277B2 (en) | 2011-06-24 | 2018-10-02 | Robert Keith Mykland | Configurable circuit array |
US20130007517A1 (en) * | 2011-06-30 | 2013-01-03 | International Business Machines Corporation | Checkpoint Recovery Utility for Programs and Compilers |
US9335977B2 (en) * | 2011-07-28 | 2016-05-10 | National Instruments Corporation | Optimization of a data flow program based on access pattern information |
US8799864B2 (en) * | 2011-09-13 | 2014-08-05 | Synopsys, Inc. | Providing SystemVerilog testing harness for a standardized testing language |
US8671397B2 (en) * | 2011-09-27 | 2014-03-11 | International Business Machines Corporation | Selective data flow analysis of bounded regions of computer software applications |
US8903874B2 (en) | 2011-11-03 | 2014-12-02 | Osr Open Systems Resources, Inc. | File system directory attribute correction |
US8806452B2 (en) | 2011-11-10 | 2014-08-12 | International Business Machines Corporation | Transformation of computer programs and eliminating errors |
US9304770B2 (en) * | 2011-11-21 | 2016-04-05 | Robert Keith Mykland | Method and system adapted for converting software constructs into resources for implementation by a dynamically reconfigurable processor |
US9633160B2 (en) | 2012-06-11 | 2017-04-25 | Robert Keith Mykland | Method of placement and routing in a reconfiguration of a dynamically reconfigurable processor |
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 |
WO2013100783A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Method and system for control signalling in a data path module |
US9361079B2 (en) * | 2012-01-30 | 2016-06-07 | Nvidia Corporation | Method for compiling a parallel thread execution program for general execution |
US20130212366A1 (en) * | 2012-02-09 | 2013-08-15 | Altera Corporation | Configuring a programmable device using high-level language |
US10430190B2 (en) | 2012-06-07 | 2019-10-01 | Micron Technology, Inc. | Systems and methods for selectively controlling multithreaded execution of executable code segments |
US10558437B1 (en) * | 2013-01-22 | 2020-02-11 | Altera Corporation | Method and apparatus for performing profile guided optimization for high-level synthesis |
US20160239461A1 (en) * | 2013-03-01 | 2016-08-18 | Synaptic Engines, Llc | Reconfigurable graph processor |
US9323502B2 (en) | 2013-03-15 | 2016-04-26 | Nvidia Corporation | System, method, and computer program product for altering a line of code |
US20140278328A1 (en) | 2013-03-15 | 2014-09-18 | Nvidia Corporation | System, method, and computer program product for constructing a data flow and identifying a construct |
US9015643B2 (en) | 2013-03-15 | 2015-04-21 | Nvidia Corporation | System, method, and computer program product for applying a callback function to data values |
US9015646B2 (en) | 2013-04-10 | 2015-04-21 | Nvidia Corporation | System, method, and computer program product for translating a hardware language into a source database |
US9021408B2 (en) * | 2013-04-10 | 2015-04-28 | Nvidia Corporation | System, method, and computer program product for translating a source database into a common hardware database |
US9171115B2 (en) | 2013-04-10 | 2015-10-27 | Nvidia Corporation | System, method, and computer program product for translating a common hardware database into a logic code model |
US9665396B2 (en) * | 2013-04-23 | 2017-05-30 | Ab Initio Technology Llc | Controlling tasks performed by a computing system using instructions generated to control initiation of subroutine execution |
US9177646B2 (en) | 2013-05-06 | 2015-11-03 | International Business Machines Corporation | Implementing computational memory from content-addressable memory |
US10102039B2 (en) | 2013-05-17 | 2018-10-16 | Entit Software Llc | Converting a hybrid flow |
US10741226B2 (en) | 2013-05-28 | 2020-08-11 | Fg Src Llc | Multi-processor computer architecture incorporating distributed multi-ported common memory modules |
US8806403B1 (en) * | 2013-06-21 | 2014-08-12 | Altera Corporation | Efficient configuration of an integrated circuit device using high-level language |
US9104432B2 (en) * | 2013-06-24 | 2015-08-11 | International Business Machines Corporation | Extracting stream graph structure in a computer language by pre-executing a deterministic subset |
WO2014209260A1 (en) | 2013-06-24 | 2014-12-31 | Hewlett-Packard Development Company, L.P. | Processing a data flow graph of a hybrid flow |
US9075624B2 (en) * | 2013-06-24 | 2015-07-07 | Xilinx, Inc. | Compilation of system designs |
US10331583B2 (en) | 2013-09-26 | 2019-06-25 | Intel Corporation | Executing distributed memory operations using processing elements connected by distributed channels |
JP6255880B2 (ja) | 2013-10-10 | 2018-01-10 | 株式会社ソシオネクスト | 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム |
CN103546342B (zh) * | 2013-10-18 | 2016-10-05 | 工业和信息化部电信传输研究所 | 一种终端一致性测试方法及用于该方法的api接口通用适配器 |
US9110672B2 (en) * | 2013-11-07 | 2015-08-18 | International Business Machines Corporation | Compiler generation of thunking code |
US9830329B2 (en) | 2014-01-15 | 2017-11-28 | W. Anthony Mason | Methods and systems for data storage |
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 |
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 |
US10318261B2 (en) * | 2014-11-24 | 2019-06-11 | Mentor Graphics Corporation | Execution of complex recursive algorithms |
CN104572072B (zh) * | 2014-12-01 | 2017-09-29 | 北京百度网讯科技有限公司 | 一种对基于mvc模式的程序的语言转换方法与设备 |
US9411613B1 (en) | 2015-04-22 | 2016-08-09 | Ryft Systems, Inc. | Systems and methods for managing execution of specialized processors |
US9542244B2 (en) | 2015-04-22 | 2017-01-10 | Ryft Systems, Inc. | Systems and methods for performing primitive tasks using specialized processors |
US9411528B1 (en) | 2015-04-22 | 2016-08-09 | Ryft Systems, Inc. | Storage management systems and methods |
US9984037B1 (en) | 2015-04-27 | 2018-05-29 | Synaptic Engines, Llc | Scheduler for a fine grained graph processor |
US10303498B2 (en) | 2015-10-01 | 2019-05-28 | Microsoft Technology Licensing, Llc | Performance optimizations for emulators |
US9805152B1 (en) * | 2016-02-17 | 2017-10-31 | Xilinx, Inc. | Compilation of system designs |
US10402168B2 (en) | 2016-10-01 | 2019-09-03 | Intel Corporation | Low energy consumption mantissa multiplication for floating point multiply-add operations |
US10824786B1 (en) * | 2016-10-05 | 2020-11-03 | Xilinx, Inc. | Extend routing range for partial reconfiguration |
US10572376B2 (en) | 2016-12-30 | 2020-02-25 | Intel Corporation | Memory ordering in acceleration hardware |
US10474375B2 (en) | 2016-12-30 | 2019-11-12 | Intel Corporation | Runtime address disambiguation in acceleration hardware |
US10416999B2 (en) | 2016-12-30 | 2019-09-17 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10558575B2 (en) | 2016-12-30 | 2020-02-11 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
JP6801460B2 (ja) * | 2017-01-11 | 2020-12-16 | 富士通株式会社 | 情報処理装置、プログラム、および情報処理方法 |
CN107239276B (zh) * | 2017-05-22 | 2021-01-12 | 广州安圣信息科技有限公司 | 一种基于c语言的异步延时执行方法及执行装置 |
US10346145B2 (en) * | 2017-06-23 | 2019-07-09 | Intel Corporation | Loop execution with predicate computing for dataflow machines |
US10467183B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods for pipelined runtime services in a spatial array |
US10445451B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features |
US10445234B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features |
US10469397B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods with configurable network-based dataflow operator circuits |
US10515046B2 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10387319B2 (en) | 2017-07-01 | 2019-08-20 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features |
US10515049B1 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Memory circuits and methods for distributed memory hazard detection and error recovery |
US10496574B2 (en) | 2017-09-28 | 2019-12-03 | Intel Corporation | Processors, methods, and systems for a memory fence in a configurable spatial accelerator |
US11086816B2 (en) | 2017-09-28 | 2021-08-10 | Intel Corporation | Processors, methods, and systems for debugging a configurable spatial accelerator |
US10445098B2 (en) | 2017-09-30 | 2019-10-15 | Intel Corporation | Processors and methods for privileged configuration in a spatial array |
US10380063B2 (en) | 2017-09-30 | 2019-08-13 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator |
US11204747B1 (en) * | 2017-10-17 | 2021-12-21 | Xilinx, Inc. | Re-targetable interface for data exchange between heterogeneous systems and accelerator abstraction into software instructions |
EP3707855A1 (en) * | 2017-11-09 | 2020-09-16 | Nchain Holdings Limited | System for securing verification key from alteration and verifying validity of a proof of correctness |
US10489541B1 (en) * | 2017-11-21 | 2019-11-26 | Xilinx, Inc. | Hardware description language specification translator |
EP3725028A1 (en) | 2017-12-13 | 2020-10-21 | Nchain Holdings Limited | System and method for securely sharing cryptographic material |
US10402176B2 (en) * | 2017-12-27 | 2019-09-03 | Intel Corporation | Methods and apparatus to compile code to generate data flow code |
US10417175B2 (en) | 2017-12-30 | 2019-09-17 | Intel Corporation | Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator |
US10445250B2 (en) | 2017-12-30 | 2019-10-15 | Intel Corporation | Apparatus, methods, and systems with a configurable spatial accelerator |
US10565134B2 (en) | 2017-12-30 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for multicast in a configurable spatial accelerator |
US10452367B2 (en) * | 2018-02-07 | 2019-10-22 | Microsoft Technology Licensing, Llc | Variable analysis using code context |
US10564980B2 (en) | 2018-04-03 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator |
US11307873B2 (en) | 2018-04-03 | 2022-04-19 | Intel Corporation | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging |
US10459866B1 (en) | 2018-06-30 | 2019-10-29 | Intel Corporation | Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator |
US11200186B2 (en) | 2018-06-30 | 2021-12-14 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
US10853073B2 (en) | 2018-06-30 | 2020-12-01 | Intel Corporation | Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator |
US10891240B2 (en) | 2018-06-30 | 2021-01-12 | Intel Corporation | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator |
US10705967B2 (en) * | 2018-10-15 | 2020-07-07 | Intel Corporation | Programmable interface to in-memory cache processor |
US10846449B1 (en) * | 2018-12-11 | 2020-11-24 | Xilinx, Inc. | Conversion of block model-based circuit designs into circuit implementations |
US10678724B1 (en) | 2018-12-29 | 2020-06-09 | Intel Corporation | Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator |
US11455153B2 (en) * | 2019-03-18 | 2022-09-27 | Advanced Micro Devices, Inc. | Dynamic instances semantics |
US11048479B2 (en) * | 2019-03-28 | 2021-06-29 | Sap Se | Software conversion simulation mode |
US10965536B2 (en) | 2019-03-30 | 2021-03-30 | Intel Corporation | Methods and apparatus to insert buffers in a dataflow graph |
US10915471B2 (en) | 2019-03-30 | 2021-02-09 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator |
US11029927B2 (en) | 2019-03-30 | 2021-06-08 | Intel Corporation | Methods and apparatus to detect and annotate backedges in a dataflow graph |
US10817291B2 (en) | 2019-03-30 | 2020-10-27 | Intel Corporation | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator |
US10853541B1 (en) * | 2019-04-30 | 2020-12-01 | Xilinx, Inc. | Data processing engine (DPE) array global mapping |
US11037050B2 (en) | 2019-06-29 | 2021-06-15 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator |
US11573790B2 (en) | 2019-12-05 | 2023-02-07 | International Business Machines Corporation | Generation of knowledge graphs based on repositories of code |
US11907713B2 (en) | 2019-12-28 | 2024-02-20 | Intel Corporation | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator |
US11194555B2 (en) * | 2020-04-13 | 2021-12-07 | International Business Machines Corporation | Optimization of execution of smart contracts |
WO2021211911A1 (en) * | 2020-04-16 | 2021-10-21 | Blackswan Technologies Inc. | Artificial intelligence cloud operating system |
CN111831285B (zh) * | 2020-06-23 | 2023-03-14 | 西安电子科技大学 | 一种面向内存计算平台的代码转换方法、系统及应用 |
US11275580B2 (en) * | 2020-08-12 | 2022-03-15 | Servicenow, Inc. | Representing source code as implicit configuration items |
US11042422B1 (en) * | 2020-08-31 | 2021-06-22 | Microsoft Technology Licensing, Llc | Hybrid binaries supporting code stream folding |
US11231918B1 (en) | 2020-08-31 | 2022-01-25 | Microsoft Technologly Licensing, LLC | Native emulation compatible application binary interface for supporting emulation of foreign code |
US11403100B2 (en) | 2020-08-31 | 2022-08-02 | Microsoft Technology Licensing, Llc | Dual architecture function pointers having consistent reference addresses |
US11138010B1 (en) | 2020-10-01 | 2021-10-05 | International Business Machines Corporation | Loop management in multi-processor dataflow architecture |
US11347490B1 (en) * | 2020-12-18 | 2022-05-31 | Red Hat, Inc. | Compilation framework for hardware configuration generation |
US11520570B1 (en) | 2021-06-10 | 2022-12-06 | Xilinx, Inc. | Application-specific hardware pipeline implemented in an integrated circuit |
US11815935B2 (en) | 2022-03-25 | 2023-11-14 | Micron Technology, Inc. | Programming a coarse grained reconfigurable array through description of data flow graphs |
US11954424B2 (en) | 2022-05-02 | 2024-04-09 | International Business Machines Corporation | Automatic domain annotation of structured data |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4885684A (en) * | 1987-12-07 | 1989-12-05 | International Business Machines Corporation | Method for compiling a master task definition data set for defining the logical data flow of a distributed processing network |
EP0360527B1 (en) * | 1988-09-19 | 1995-01-04 | Fujitsu Limited | Parallel computer system using a SIMD method |
US5175856A (en) * | 1990-06-11 | 1992-12-29 | Supercomputer Systems Limited Partnership | Computer with integrated hierarchical representation (ihr) of program wherein ihr file is available for debugging and optimizing during target execution |
US5293631A (en) * | 1991-08-06 | 1994-03-08 | Hewlett-Packard Company | Analysis and optimization of array variables in compiler for instruction level parallel processor |
US5666296A (en) * | 1991-12-31 | 1997-09-09 | Texas Instruments Incorporated | Method and means for translating a data-dependent program to a data flow graph with conditional expression |
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 |
US5675803A (en) * | 1994-01-28 | 1997-10-07 | Sun Microsystems, Inc. | Method and apparatus for a fast debugger fix and continue operation |
FR2718868B1 (fr) * | 1994-04-18 | 1996-05-31 | Bull Sa | Procédé de détection d'interblocages dans les systèmes multiprocesseurs à mémoire partagée. |
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 |
US5655122A (en) * | 1995-04-05 | 1997-08-05 | Sequent Computer Systems, Inc. | Optimizing compiler with static prediction of branch probability, branch frequency and function frequency |
US6077315A (en) * | 1995-04-17 | 2000-06-20 | Ricoh Company Ltd. | Compiling system and method for partially reconfigurable computing |
US5933642A (en) * | 1995-04-17 | 1999-08-03 | Ricoh Corporation | Compiling system and method for reconfigurable computing |
US5764951A (en) * | 1995-05-12 | 1998-06-09 | Synopsys, Inc. | Methods for automatically pipelining loops |
US5701489A (en) * | 1995-06-06 | 1997-12-23 | International Business Machines Corporation | System for partial in-line expansion of procedure calls during program compilation |
US5903771A (en) * | 1996-01-16 | 1999-05-11 | Alacron, Inc. | Scalable multi-processor architecture for SIMD and MIMD operations |
US6226789B1 (en) * | 1996-01-29 | 2001-05-01 | Compaq Computer Corporation | Method and apparatus for data flow analysis |
US5737766A (en) * | 1996-02-14 | 1998-04-07 | Hewlett Packard Company | Programmable gate array configuration memory which allows sharing with user memory |
US5926636A (en) * | 1996-02-21 | 1999-07-20 | Adaptec, Inc. | Remote procedural call component management method for a heterogeneous computer network |
US5892962A (en) * | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
US5930510A (en) * | 1996-11-19 | 1999-07-27 | Sun Microsystems, Inc. | Method and apparatus for an improved code optimizer for pipelined computers |
US5946492A (en) * | 1997-02-19 | 1999-08-31 | International Business Machines Corporation | Compiler that reduces call stack size through identification of stackless variables |
US6631518B1 (en) * | 1997-03-19 | 2003-10-07 | International Business Machines Corporation | Generating and utilizing organized profile information |
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 |
US5966534A (en) * | 1997-06-27 | 1999-10-12 | Cooke; Laurence H. | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
US5991539A (en) * | 1997-09-08 | 1999-11-23 | Lucent Technologies, Inc. | Use of re-entrant subparsing to facilitate processing of complicated input data |
US6226776B1 (en) * | 1997-09-16 | 2001-05-01 | Synetry Corporation | System for converting hardware designs in high-level programming language to hardware implementations |
US5937196A (en) * | 1997-09-19 | 1999-08-10 | International Business Machines Corporation | Compiling with partial copy propagation |
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 |
US6175948B1 (en) * | 1998-02-05 | 2001-01-16 | Motorola, Inc. | Method and apparatus for a waveform compiler |
JP3765923B2 (ja) * | 1998-02-26 | 2006-04-12 | シャープ株式会社 | ハードウェア合成方法およびハードウェア合成装置並びにハードウェア合成プログラムを記録した記録媒体 |
US6079032A (en) * | 1998-05-19 | 2000-06-20 | Lucent Technologies, Inc. | Performance analysis of computer systems |
US6192439B1 (en) * | 1998-08-11 | 2001-02-20 | Hewlett-Packard Company | PCI-compliant interrupt steering architecture |
GB9828381D0 (en) * | 1998-12-22 | 1999-02-17 | Isis Innovation | Hardware/software codesign system |
US6594822B1 (en) * | 1999-02-19 | 2003-07-15 | Nortel Networks Limited | Method and apparatus for creating a software patch by comparing object files |
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 |
US6069032A (en) * | 1999-08-17 | 2000-05-30 | United Silicon Incorporated | Salicide process |
US6374403B1 (en) * | 1999-08-20 | 2002-04-16 | Hewlett-Packard Company | Programmatic method for reducing cost of control in parallel processes |
US6507947B1 (en) * | 1999-08-20 | 2003-01-14 | Hewlett-Packard Company | Programmatic synthesis of processor element arrays |
US6567975B1 (en) * | 1999-11-08 | 2003-05-20 | Sun Microsystems, Inc. | Method and apparatus for inserting data prefetch operations using data flow analysis |
US6526572B1 (en) * | 2000-02-09 | 2003-02-25 | Hewlett-Packard Company | Mechanism for software register renaming and load speculation in an optimizer |
US6922830B1 (en) * | 2000-03-10 | 2005-07-26 | International Business Machines Corporation | Skip list data storage during compilation |
CA2321016A1 (en) * | 2000-09-27 | 2002-03-27 | Ibm Canada Limited-Ibm Canada Limitee | Interprocedural dead store elimination |
US6751792B1 (en) * | 2000-10-04 | 2004-06-15 | Sun Microsystems, Inc. | Using value-expression graphs for data-flow optimizations |
US6839893B2 (en) * | 2001-10-18 | 2005-01-04 | International Business Machines Corporation | Debugger capable of providing warnings for unreachable breakpoints |
US7043721B2 (en) * | 2002-03-18 | 2006-05-09 | International Business Machines Corporation | Initial object capacity determination |
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 |
US7299458B2 (en) * | 2002-10-31 | 2007-11-20 | Src Computers, Inc. | System and method for converting control flow graph representations to control-dataflow graph representations |
US7155708B2 (en) * | 2002-10-31 | 2006-12-26 | Src Computers, Inc. | Debugging and performance profiling using control-dataflow graph representations with reconfigurable hardware emulation |
US7500230B2 (en) * | 2005-03-25 | 2009-03-03 | Microsoft Corporation | Raising native software code |
-
2002
- 2002-10-31 US US10/285,299 patent/US6983456B2/en not_active Expired - Lifetime
-
2003
- 2003-01-14 US US10/345,082 patent/US7134120B2/en not_active Expired - Lifetime
- 2003-09-30 EP EP03759616A patent/EP1556758A4/en not_active Withdrawn
- 2003-09-30 JP JP2004549981A patent/JP4482454B2/ja not_active Expired - Lifetime
- 2003-09-30 WO PCT/US2003/030988 patent/WO2004042929A2/en active Search and Examination
- 2003-09-30 AU AU2003275340A patent/AU2003275340A1/en not_active Abandoned
- 2003-09-30 CA CA002502892A patent/CA2502892A1/en not_active Abandoned
-
2005
- 2005-10-04 US US11/243,498 patent/US7703085B2/en not_active Expired - Fee Related
-
2009
- 2009-12-28 JP JP2009297725A patent/JP5036801B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CA2502892A1 (en) | 2004-05-21 |
AU2003275340A1 (en) | 2004-06-07 |
US20060041872A1 (en) | 2006-02-23 |
JP5036801B2 (ja) | 2012-09-26 |
EP1556758A4 (en) | 2008-04-16 |
US20040088673A1 (en) | 2004-05-06 |
JP2006505055A (ja) | 2006-02-09 |
US20040088685A1 (en) | 2004-05-06 |
WO2004042929A3 (en) | 2004-11-25 |
US7134120B2 (en) | 2006-11-07 |
WO2004042929A2 (en) | 2004-05-21 |
US6983456B2 (en) | 2006-01-03 |
EP1556758A2 (en) | 2005-07-27 |
US7703085B2 (en) | 2010-04-20 |
JP2010146577A (ja) | 2010-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4482454B2 (ja) | 高級プログラミング言語におけるプログラムをハイブリッド計算プラットフォームの統一された実行可能要素に変換するためのプロセス | |
JP4403080B2 (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 | |
EP1159693A2 (en) | Automated processor generation system & method for designing a configurable processor | |
Qin et al. | Architecture Description Languages for Retargetable Compilation. | |
US7702499B1 (en) | Systems and methods for performing software performance estimations | |
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 | |
Wahlen | C Compiler Aided Design of Application-Specific Instruction-Set Processors Using the Machine Description Language LISA | |
SVOBODA | ARCHITECTURE INFORMATION FOR LLVM COMPILER OPTIMIZATIONS | |
Janssen | Enhancing the Move framework | |
Mittal | A compiler infrastructure for compiling assembly and binary programs onto FPGAS | |
Chang | High-level cycle-accurate specification of microprocessors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060920 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060920 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090519 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090810 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090901 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091228 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100208 |
|
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: 20100302 |
|
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: 20100319 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130326 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4482454 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: 20140326 Year of fee payment: 4 |
|
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 |
|
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 |