JP3903193B2 - 命令プロセッサシステムおよび方法 - Google Patents
命令プロセッサシステムおよび方法 Download PDFInfo
- Publication number
- JP3903193B2 JP3903193B2 JP2002543290A JP2002543290A JP3903193B2 JP 3903193 B2 JP3903193 B2 JP 3903193B2 JP 2002543290 A JP2002543290 A JP 2002543290A JP 2002543290 A JP2002543290 A JP 2002543290A JP 3903193 B2 JP3903193 B2 JP 3903193B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- information
- fip
- implementation
- optimization
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Devices For Executing Special Programs (AREA)
- Logic Circuits (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
Description
本発明は、本明細書においてフレキシブル命令(インストラクション)プロセッサ(FIP)と呼ばれるような再プログラム可能な命令プロセッサの設計時および実行時環境に関する。
好適には、前記作動命令は、前記再プログラミング可能なハードウェアを用いてインプリメントされることになる前記インプリメンテーションを識別する。
Tswは、該クロックサイクル数Csw,jにおける各クロックサイクルに対するサイクルタイム、
Cci,jは、カスタム命令をインプリメントするためのクロックサイクル数、
Tciは、該クロックサイクル数Cci,jにおける各クロックサイクルに対するサイクルタイム、
Trは、再プログラミング可能なハードウェアの再構成のために要求される時間である。
Tswは、該クロックサイクル数Csw,jにおける各クロックサイクルに対するサイクルタイム、
Cci,jは、カスタム命令をインプリメントするためのクロックサイクル数、
Tciは、該クロックサイクル数Cci,jにおける各クロックサイクルに対するサイクルタイム、
Fjは、手順が呼ばれる時間数、
Sjは、該カスタム命令がインプリメントされたかどうかを示すバイナリ選択変数である。
Tswは、該クロックサイクル数Csw,jにおける各クロックサイクルに対するサイクルタイム、
Cci,jは、カスタム命令をインプリメントするためのクロックサイクル数、
Tciは、該クロックサイクル数Cci,jにおける各クロックサイクルに対するサイクルタイム、
Trは、該再プログラミング可能なハードウェアの再構成のために要求される時間である。
ここで、Csw,jは、ソフトウェア関数f()をインプリメントするためのクロックサイクル数、
Tswは、該クロックサイクル数Csw,jにおける各クロックサイクルに対するサイクルタイム、
Cci,jは、カスタム命令をインプリメントするためのクロックサイクル数、
Tciは、該クロックサイクル数Cci,jにおける各クロックサイクルに対するサイクルタイム、
Fjは、手順が呼ばれる時間数、
Sjは、該カスタム命令がインプリメントされるかどうかを示すバイナリ選択変数である。
グループ化された構成のインプリメンテーションをスケジューリングするステップとを包含する。
図1は、本発明の好適な実施形態によるFIP設計システムを示す。
FPGA等の再プログラム可能なハードウェア上で展開するために、カスタマイズされたFIPインプリメンテーションを設計する際に、カスタマイゼーション仕様1が最初に提供される。
カスタマイゼーション仕様1には、その後、FIPプロファイラ2によってプロファイリング手続が行われる。
次に、FIPテンプレートが、識別された候補FIPシステムの各々について、FIPテンプレートジェネレータ4によって、FIPライブラリ3から抽出されるプロセッサの定義および関連するパラメータから自動的に生成される。FIPテンプレートは、ユーザ定義カスタム命令等の、カスタマイゼーション仕様1からのカスタマイゼーション情報を組み込む。
//Hardware resources
#include program_counter
chan fetchchan;
int ir_fetch,ir_exe;
par{
//−−Fetch module−−
{
//Fetch the instruction pointer to the program counter
ir_fetch=Fetch_from_memory(program_counter);
//Send previous instruction to the Execute module
fetchan!ir_fetch;
//Increment the program counter
program_counter++;
}
//−−Execute module−−
{
//Receives instruction from the Fetch module
fetchchan?ir_exe;
//Decodes and executes the relevant instruction
switch(decode(ir_exe));
{
//Instruction implementations
}
}
}
示され得る。
#define POP1
#define PUSH2
#define MUL3
をとり得る。
#include stack_mul.hc
として含まれ得る。
//Read top of stack
iData1=readTOS0;
par{
//Multiply next item in stack to iData
iData1*=readStack20;
//Adjust the stack pointer
sp−−;
}
par{
//Write data back into stack
writeStack(sp−1,iData1);
//Flag to denote that an instruction has completed execution
inst_done=1;
}
と書かれ得る。
カスタム命令は、さらに、このようにして、Executeモジュール内の命令を含むことによって、および別個のファイルにハードウェアインプリメンテーションを提供することによって含まれ得る。
本実施形態において、FIPアナライザ5は、アプリケーションソースコードをプレコンパイルするためのプレコンパイラを含み、このプレコンパイル化は、次に続く命令の解析を簡略化する。プレコンパイル化の出力は、データフローグラフまたはオペコードといった、任意の中間表現であり得る。代替的実施形態において、プレコンパイラは省略され得る。
各FIPインプリメンテーションに対して、FIP解析器5によって決定されたように、FIPインスタンス化器(instantiator)6は、アプリケーション命令を実行するように要求された1つ以上のFIPハードウエア構成を開発する。FIPインスタンス化器6はまた、プロセッサアーキテクチャを最適化するように構成される。
次いで、各FIPインプリメンテーションのためのドメイン専用FIP構成情報8は、例えば、デバイス専用FIP構成情報10(すなわち、専用FIPインプリメンテーションおよび専用の再プログラム可能なハードウエアと共に使用するための構成情報)を提供するように、FIPビルダ9によって、ベンダ専用のマクロのリソース構築、制約履行およびインスタンス化等の技術専用の最適化を受ける。特に、利用可能な任意の専用リソース(例えば、ファーストキャリー連鎖(first−carry chain)、埋め込みメモリ等)が展開される。
次いで、各FIPテンプレートについての1つ以上のFIPインプリメンテーションのために、FIP解析器5によって開発されたようなソースコードおよびFIPインスタンス化器6によって開発されたようなFIP構成情報10は、最適なFIPスタイルを選択するようにFIPセレクタ11によってプロファイルされる。最適なFIPスタイルは、通常、速度とサイズとの交換を含む所定の基準に基づく、上述のような1つ以上のFIPインプリメンテーションを有する。
FIPセレクタ11による1つ以上のFIPインプリメンテーションの選択に従って、次いで、これらのインプリメンテーションのためのソースコードは、実行可能なFIPコード13を提供するようにFIPコンパイラ12によってコンパイルされる。
実行時間再構成を可能にするように1つ以上のFIP構成を定義し得る、生じたFIP構成情報10および実行可能なFIPコード13は、必要とされたアプリケーションのための最適化されたFIPインプリメンテーションを提供する。複数のFIPインプリメンテーションは、実行時間条件を変更するための最適な性能を提供するように開発される場合、上述のように、実行時間条件に応じてFIPインプリメンテーション間の選択を可能にするように、各FIPインプリメンテーションは決定条件情報7に関連付けられた。あるカスタマイズされたハードウエアインプリメンテーションを別のハードウエアインプリメンテーションに得変換するインクリメント構成が、妥当な場合、作成され得る[16]。
上述のように、FIPインプリメンテーションのための最適化は2つのレベルで発生し得る。すなわち、ソフトウエアおよびプロセッサの両方が最適化され得る。コンパイラおよび命令プロセッサ設計を最適化する場合の発展は、FIPアーキテクチャおよびコンパイラにおける使用に適応され得る。FIPシステムとの使用のためのこれらの技術の改変が以下に説明される。
独立的な技術
・未使用のリソースおよび命令の除去
・データパスおよび命令のカスタマイズ
・オペコード割り当ての最適化
・モジュール間のチャンネル通信の最適化
従属的な技術(典型的には、FPGAインプリメンテーション)
・ファーストキャリー連鎖、埋め込まれたメモリ等の利用可能な専用リソースの展開
・ルーティングによるルーティング遅延を低減するための輻輳管理の導入
特定のプロセッサスタイル
・JVM、MIPS、TIM等のプロセッサタイプ
・スーパスカラー(superscalar)アーキテクチャ、パイプライン等
特定のコンパイラ
・命令レベルの並列スケジューリング
・オペコード再順序付け
・ループ展開およびフォールディング
・パイプライン処理の実行
いくつかのこれらの最適化が既に開発された[11]。以下は、カスタム命令および技術依存最適化を説明する。特定のデータパスの直接的なハードウエアインプリメンテーションは、カスタム命令による始動のためにFIPハードウエア構成に組み込まれ得る。これは、フェッチおよびデコード命令の数を低減させると共に性能を改善する。しかし、カスタム命令が多くなればなるほど、FIPハードウエア構成も大きくなる。従って、速度の改善は、大きさの増加によって達成される。カスタム命令のタイプおよび数の選択は重要である。この選択はまた、どれくらいの頻度で特定のカスタム命令が使用されるかに依存すべきである。このトレードオフは以下により詳細に説明される。
FIP設計システムの動作は、FIP JVMインプリメンテーション[23],ならびにソフトウエアおよびASICインプリメンテーションと比較されたこれらのインプリメンテーションの性能に関する例を用いて以下に説明される。MIPSスタイルプロセッサのFIPインプリメンテーションの性能もまた説明される。
のシステマチックなカスタム化のための枠組みを提供する。このFIPアプローチは、プロセッサテンプレートを構成かつ最適化する、パラメータ化によって命令プロセッサの高速開発を可能にする。さらに、標準コンパイラまたはFIP専用コンパイラはインプリメンテーションプロセスにおいて使用され得る。
図8は、本発明の好適な実施形態によるFIP管理システムを示す。
実行時間マネージャ18は、FIPローダ20を制御するためのFIPローダコントローラ19を含む。アプリケーションを実行するように命令された場合、FIPローダコントローラ19は、FIPローダ20に信号を送信し、本実施形態のFPGAの再プログラム可能なハードウエア22にFIPによって動作されることになるロードアプリケーションデータ21、FIP、および必要とされた場合、FIP構成情報10、実行可能なFIPコード13、ならびにこれらに関連する場合、FIPインプリメンテーションのための決定条件情報7をロードし、次いで、このFIPコード13を実行し、アプリケーション結果24を提供する。必要とされたFIPインプリメンテーションが再プログラム可能なハードウエア22に既にロードされた場合、FIPローダ20はアプリケーションデータ21のみをロードする。
実行時間マネージャ18は、FIPコード13の実行の間、再プログラム可能なハードウエア22の動作に関係する実行時間統計29を獲得する実行時間モニタ28をさらに含む。すなわちこの統計は、各手続きが呼び出される回数、最も頻繁に使用されたオペコード、および実行の局在性を決定するためのプログラムカウンタ(PC)の値等の実行時間条件に関係する。
実行時間マネージャ18は、最適化決定器31に命令するための最適化インストラクタ30をさらに含む。最適化インストラクタ30は、例えば、実行可能なコードにおける命令に応答するか、またはユーザ等の外部エージェントからの駆動命令に応答して最適化決定器31を自動的に駆動させるように構成され得る。
一実施形態では、図9に示されたように、FIPアダプタ33は、アプリケーション情報としてFIPプロファイラ2に提供された実行時間統計29を有する、図1に示されたような上述のFIP設計システムのコンポーネントを含み、これによりカスタマイズ仕様1の最適化されたプロファイリングを可能にする。説明の不必要な重複を避けるために、FIP設計システムのより以前の記述についての参照がなされる。
オペコード連鎖の概念は、手続きを構成するオペコードのシーケンスを接続することである。これは、RISCマシンのマイクロコードの概念と同様である。連鎖は、命令をフェッチし復号化する場合に消費される時間を低減する。さらに、手続きの呼び出しを単一の命令に変換することによって、手続きの呼び出しのオーバーヘッドが避けられ得る。このようなオーバーヘッドは、プリアンブルおよびポストアンブルハウスキーピングルーチン(プログラムカウンタを格納すること、共有レジスタ、およびプリフェッチバッファを満たすこと)を含む。
命令フォールディングは、いくつかのオペコードがパラレルに実行されることを可能にする。例えば、4つまでのJava(R)コードが同時に処理され得る[28]。例として、スタッククベースのマシンでは、追加がスタックの上にプッシュ(push)される2つの値を必要とし、その結果は、命令の後に格納され得る。値がレジスタファイルにロードされた場合、レジスタベースのプロセッサが1つのサイクルで全ての4つの動作を実行し得る。動作が直接互いに連鎖されるために、値をレジスタファイルにロードする必要がない。動作のための値が、以前の動作の結果としてロードされる。
リソースの複製は、以前に隠され得る並列性のいくつかのレベルの利用を可能にする。2つの可能なアプローチがある。これらは、データレベル並列性および命令レベル並列性[29]である。データレベル並列性は、1つの命令において可能である数と同じ数の動作を実行することによってデータ独立性を利用する。命令レベル並列性は、異なる実行ユニットによって処理された独立命令の同時動作を含む。カスタム命令が生成される場合、利用可能なリソースは、できる限り多くのデータレベルまたは命令レベルの並列性を利用することが必要とされる場合に拡張される。
再プログラム可能なハードウエア22の再プログラミングは、例えば、ユーザが再構成命令においてボタンを押すことによって、またはキー入力すること等によって、実行時間における実行可能なFIPコード13における明示的な命令またはシステムへの駆動命令32の結果として発生し得る。
tci=CciTciF (3)
再構成比Rは、以下のように定義され得る。
本発明の実行時間管理システムの動作は、情報の暗号化および解読のための高度な暗号化標準(AES−Rijndael)アルゴリズム[17]のインプリメンテーションに関する例によって以下に説明される。AESアルゴリズムは、変数のブロックおよびキー長を有する繰り返しブロック暗号である。本インプリメンテーションでは、FIPは100MHzで動作することが想定される。あるいは、データ収集および解析は、FIP実行とパラレルで実行され、それにより、任意の性能ペナルティを導入しない。
(デバッグツール)
デバッグツールは、ユーザが、クラッシュ(crash)した場合、シミュレーションまたは実行中にコードを介してトレースする方法を提供する。いくつかの適応後、種々のFIP構成は、アプリケーションの実行の間の使用し得る。デバッグツールは、正確なFIP設計を介してトレースすることによってエラーを識別する場合に支援し、カスタム命令に拡張する能力を提供し、カスタム命令を生成するために使用される元のオペコードを明らかにする。図17は、デバッグツールを図解的に示す。左のボックス(ボックスA)は、元のコードを含む。中心ボックス(ボックスB)は、適応の後の新しいコードを含む。右のボックス(ボックスC)は、FIP構成情報10および関連付けられた実行可能なFIPコード13を示す。デバッグの間、ユーザは、どのFIPが実行しているか、そしてさらにどのオペコードがコードA等のカスタム命令を作成するために使用されるかを知る必要がある。
図18は、コンパイラツールを示す。コンパイラツールは、ユーザがアプリケーションコードを入力することを可能にし、アプリケーションコードをマシンコードにコンパイルする。次いでコンパイルされたコードは、プロファイルされ得、かつ検査されて、この結果、FIPがアプリケーションを実行するように最適化され得る。コンパイラツールは、インプリメントべきカスタム命令を提案するか、またはユーザがカスタム命令を作成することを可能にさせる。右手のポップアップボックスは、この特徴を示し、これにより、ユーザは新しいカスタム命令を作成することが可能にされ、新しい命令もまたコンパイラツールによって提案される。この命令は、カスタム命令nextNumである。
Claims (42)
- 再プログラミング可能なハードウェアを用いて命令プロセッサをインプリメントするために、カスタマイゼーション仕様であって、アプリケーションソースコードを含むアプリケーション情報および設計制約を含むカスタマイゼーション情報を含む、カスタマイゼーション仕様に基づいて構成情報および関連する実行可能なコードを生成する方法であって、
インプリメンテーションのための候補として識別された各プロセッサスタイルに対するテンプレートを生成するステップと、
各テンプレートに対する命令情報を分析し、命令最適化を決定するステップと、
該命令最適化を含め、そして、実行可能なコードを生成するために該アプリケーションソースコードをコンパイルするステップと、
各テンプレートに対するアーキテクチャ情報を分析し、アーキテクチャ最適化を決定するステップと、
該アーキテクチャ最適化を含む構成情報を生成するステップと、
該アーキテクチャ最適化を含む該構成情報からデバイス固有の構成情報を生成するステップと、
を包含する、方法。 - 各候補インプリメンテーションに対して前記構成情報および関連するコードをプロファイルするステップと、
それに応答して、予定可能な基準に基づいて1以上の最適なインプリメンテーションを選択するステップと
をさらに包含する請求項1に記載の方法。 - 前記カスタマイゼーション情報は、少なくとも一つのカスタム命令をさらに含む、請求項1または2に記載の方法。
- 前記カスタマイゼーション仕様の情報をプロファイルするステップと、
少なくとも一つのプロセッサスタイルを、インプリメンテーションのための候補として識別するステップと
をさらに包含する、請求項1〜3のいずれか1つに記載の方法。 - 最適化を可能にするためのプロファイリング情報は、カスタマイゼーション仕様プロファイリングステップにおいて集められる、請求項4に記載の方法。
- 前記命令情報分析ステップは、
前記命令情報を分析する際の前記プロファイリング情報を利用するステップと、
前記命令最適化を決定するステップと
を包含する、請求項5に記載の方法。 - 前記命令情報分析ステップは、
候補命令最適化を識別するステップと、
前記候補命令最適化の命令に基づいて行われた推定に基づいて、前記命令最適化のインプリメンテーションを決定するステップと
を包含する、請求項1〜6のいずれか1つに記載の方法。 - 前記推定が、前記再プログラミング可能なハードウェアがランタイム中に全命令を共にインプリメントするようにプログラミングされることができないことを提供する場合に、前記命令情報分析ステップは、
個々の命令を、前記再プログラミング可能なハードウェアを再プログラミングすることによってインプリメントされ得る命令のセットに組み合わせてグルーピングするステップを包含する、請求項7に記載の方法。 - 前記命令情報分析ステップは、
異なるランタイム状態に対する複数のインプリメンテーションを決定するステップであって、それぞれは、該ランタイム状態に結び付けられる命令を有する、ステップと、
各インプリメンテーションに結び付けられた決定状態情報を生成するステップであって、該決定状態情報は、実際のランタイム状態に応じて該インプリメンテーション間の選択を可能にする、ステップと
を包含する、請求項1〜8のいずれか1つに記載の方法。 - 前記命令最適化が、設計制約とともにコンパイルするインプリメンテーションを提供することができない場合に、前記命令情報分析ステップは、
前記カスタマイゼーション仕様プロファイリングステップを呼び出し、該命令情報分析ステップによって提供された分析情報に基づいて該カスタマイゼーション仕様を再プロファイルするステップを包含する、請求項4に従属される場合に請求項1〜9のいずれか1つに記載の方法。 - 前記アーキテクチャ最適化は、パイプライン処理を含む、請求項1〜10のいずれか1つに記載の方法。
- 再プログラミング可能なハードウェアの複数の構成が前記命令プロセッサをインプリメントすることが要求される場合に、前記命令ステップは、
個々の構成をグループに最適化するステップと、
該グループにされた構成のインプリメンテーションをスケジューリングするステップと
を包含する、請求項1〜11のいずれか1つに記載の方法。 - 各テンプレートが、複数のプロセッサスタイルに対するプロセッサ定義および関連するパラメータを含むライブラリから抽出されたプロセッサ定義および関連するパラメータから生成される、請求項1〜12のいずれか1つに記載の方法。
- 前記アプリケーションソースコードをコンパイルするステップにおいて利用された前記コンパイラは、前記命令情報分析ステップにおいて生成され、前記コンパイルするステップは、
カスタマイゼーション情報とともに前記アプリケーションソースコードに注釈を付けるステップと、
注釈が付けられたソースコードをコンパイルして、最適化された実行可能なコードを提供するステップと
を包含する、請求項1〜13のいずれか1つに記載の方法。 - 前記コンパイルするステップは、
前記アプリケーションソースコードをコンパイルするステップと、
最適化を組み入れるために該コンパイルされたソースコードを再組織化して、最適化された実行可能なコードを提供するステップと
を包含する、請求項1〜13のいずれか1つに記載の方法。 - 前記構成情報および関連する実行可能なコード、および関連する場合には前記決定状態情報を、再プログラミング可能なハードウェアを用いてインプリメントされた命令プロセッサの再構成を管理するためにある少なくとも一つの管理システムに配備するステップをさらに包含する、請求項1〜15のいずれか1つに記載の方法。
- 前記構成情報および関連する実行可能なコード、および、関連する場合には、前記決定状態情報を、再プログラミング可能なハードウェアを再プログラミングすることを可能にするための少なくとも一つのライブラリに配備するステップをさらに包含する、請求項1〜16のいずれか1つに記載の方法。
- 再プログラミング可能なハードウェアを用いて命令プロセッサをインプリメントするために、カスタマイゼーション仕様であって、アプリケーションソースコードを含むアプリケーション情報および設計制約を含むカスタマイゼーション情報を含む、カスタマイゼーション仕様に基づいて構成情報および関連する実行可能コードを生成するための設計システムであって、
インプリメンテーションの候補として識別された各プロセッサスタイルに対してテンプレートを生成するためのテンプレートジェネレータと、
各テンプレートに対する命令情報を分析し、命令最適化を決定するためのアナライザと、
該命令最適化を含めて、そして、実行可能なコードを生成するために該アプリケーションソースコードをコンパイルするためのコンパイラと、
各テンプレートに対するアーキテクチャ情報を分析し、アーキテクチャ最適化を決定し、そして、該アーキテクチャ最適化を含む構成情報を生成するためのインスタンチエータと、
該アーキテクチャ最適化を含む該構成情報からデバイス固有の構成情報を生成するためのビルダーと
を含む、システム。 - 再プログラミング可能なハードウェアにおいてインプリメントされる命令プロセッサのランタイム再構成を管理する方法であって、
複数の命令プロセッサのインプリメンテーションに対する構成情報を含む構成ライブラリを提供するステップと、
該インプリメンテーションのための関連する実行可能なコードを含ませるためのコードライブラリを提供するステップと、
命令プロセッサのインプリメンテーションおよび実行のために、アプリケーションデータ、および必要に応じて構成情報および実行可能なコードを、再プログラミング可能なハードウェアにロードするステップと、
該実行可能なコードを実行するステップと、
該命令プロセッサのオペレーションに関するランタイム統計を取得するステップと、
新しいインプリメンテーションに対する新しい構成情報および関連する実行可能なコードを該再プログラミング可能なハードウェアにロードするステップと
を包含する、方法。 - 前記ロードするステップは、予定可能なイベント上で自動的に行われる、請求項19に記載の方法。
- 前記ロードするステップは、外部エージェントによって作動される、請求項19または20に記載の方法。
- 前記ロードするステップの前に、新しいインプリメンテーションに対する前記構成情報および関連する実行可能なコードを、それぞれ個々の構成ライブラリおよび前記コードライブラリにロードするステップをさらに包含し、
該ロードするステップは、外部エージェントにより作動する際に、該当するインプリメンテーションに対する前記構成情報および関連する実行可能なコードを、該再プログラミング可能なハードウェアにロードするステップを包含する、請求項21に記載の方法。 - 前記インプリメンテーションの少なくとも一つに対する関連する決定状態情報を含ませるための決定状態ライプラリを提供するステップと、
該再プログラミング可能なハードウェアにおいてロードされた該インプリメンテーションの様々なランタイム状態に対する複数の他のインプリメンテーションに対する該決定状態情報をプロファイルするステップと、
他のインプリメンテーションのうちの任意に対する該決定状態情報が前記ランタイム統計により緊密に適合するかどうかを決定するステップとをさらに包含し、
該他のインプリメンテーションの一つに対する該決定状態情報が該ランタイム統計により緊密に適合する場合に、該ロードするステップは、
該当するインプリメンテーションに対する前記構成情報および関連する実行可能なコードを、前記再プログラミング可能なハードウェアにロードするステップを包含する、請求項19〜22のいずれか1つに記載の方法。 - 前記ランタイム統計に最適化された1以上の新しいインプリメンテーションを生成するステップをさらに包含する、請求項19〜23のいずれか1つに記載の方法。
- 各新しいインプリメンテーションに対する前記構成情報および関連する実行可能なコードを、それぞれ個々の構成ライブラリおよび前記コードライブラリにロードするステップをさらに包含する、請求項19〜22のいずれか1つに従属される場合の請求項24に記載の方法。
- 各新しいインプリメンテーションに対する前記構成情報、関連する実行可能なコードおよび関連する決定状態情報を、それぞれ個々の構成ライブラリ、前記コードライブラリおよび前記決定状態ライブラリにロードするステップをさらに包含する、請求項23に従属される場合の請求項24に記載の方法。
- 新しいインプリメンテーションに対する前記構成情報および関連する実行可能なコードは、予定可能な基準を満足する前記再プログラミング可能なハードウェアにロードされる、請求項19〜26のいずれか1つに記載の方法。
- 前記インプリメンテーション生成ステップは、
前記ランタイム統計に基づいて命令情報を分析し、命令最適化を決定するステップと、
前記命令最適化を含ませるために前記アプリケーションソースコードをコンパイルし、実行可能なコードを生成するステップと、
該ランタイム統計に基づいてアーキテクチャ情報を分析し、アーキテクチャ最適化を決定するステップと、
該アーキテクチャ最適化を含む構成情報を生成するステップと、
該アーキテクチャ最適化を含む該構成情報からデバイス固有の構成情報を生成するステップと
を包含する、請求項24〜27のいずれか1つに記載の方法。 - 前記インプリメンテーションステップは、
各候補インプリメンテーションに対する前記構成情報および関連するコードをプロファイルするステップと、
それに応答して、予定可能な基準に基づいて1以上の最適のインプリメンテーションを選択するステップと
をさらに包含する、請求項28に記載の方法。 - 前記インプリメンテーション生成ステップは、
カスタマイゼーション仕様および前記ランタイム統計内の情報をプロファイルするステップと、
少なくとも一つのプロセッサスタイルをインプリメンテーションのための候補として識別するステップと、
インプリメンテーションのための候補として識別された各プロセッサスタイルのためのテンプレートを生成するステップと
をさらに包含する、請求項28または29に記載の方法。 - 最適化を可能にするためのプロファイリング情報は、前記カスタマイゼーション仕様プロファイルステップにおいて収集される、請求項30に記載の方法。
- 前記命令情報分析ステップは、
該命令情報を分析する際に前記プロファイリング情報を利用するステップと、
該命令最適化を決定するステップと
を包含する、請求項31に記載の方法。 - 前記命令情報分析ステップは、
候補命令最適化を識別するステップと、
該候補命令最適化の命令に基づいて行われた推定に基づいて前記命令最適化のインプリメンテーションを決定するステップと
を包含する、請求項28〜32のいずれか1つに記載の方法。 - 前記推定が前記再プログラミング可能なハードウェアがランタイム中に全命令を共にインプリメントするためにプログラミングされることができないことを提供する場合に、前記命令情報分析ステップは、
個々の命令を、前記再プログラミング可能なハードウェアを再プログラミングすることによってインプリメントされ得る命令のセットに組み合わせてグループ化するステップを包含する、請求項33に記載の方法。 - 前記命令情報分析ステップは、
異なるランタイム状態に対する複数のインプリメンテーションを決定するステップとであって、それぞれは、前記ランタイム状態に結び付けられた命令最適化を有する、ステップと、
各インプリメンテーションに結び付けられた決定状態情報を生成するステップであって、該決定状態情報は、実際のランタイム状態に応じて該インプリメンテーション間の選択を可能にする、ステップと
を包含する、請求項28〜34のいずれか1つに記載の方法。 - 前記命令最適化が、設計制約とともにコンパイルするインプリメンテーションを提供できない場合に、前記命令情報分析ステップは、
前記カスタマイゼーション仕様プロファイルステップを呼び出して、該命令情報分析ステップによって提供された分析情報に基づいて該カスタマイゼーション仕様を再プロファイルするステップと
を包含する、請求項30に従属される場合の請求項28〜35のいずれか1つに記載の方法。 - 前記アーキテクチャ最適化は、リソース複製を含む、請求項28〜36のいずれか1つに記載の方法。
- 再プログラミング可能なハードウェアの複数の構成は、前記命令プロセッサをインプリメントすることが要求され、前記インスタンス生成ステップは、
個々の構成をグループに最適化するステップと、
グループ化された構成のインプリメンテーションをスケジューリングするステップと
を包含する、請求項28〜37のいずれか1つに記載の方法。 - 各テンプレートは、複数のプロセッサスタイルに対するプロセッサ定義および関連するパラメータを含むライブラリから抽出されたプロセッサ定義および関連するパラメータから生成される、請求項30〜38のいずれか1つに記載の方法。
- 前記アプリケーションソースコードをコンパイルする際に利用された前記コンパイラは、前記命令情報分析ステップにおいて生成され、該コンパイルステップは、
カスタマイゼーション情報とともに該アプリケーションソースコードに注釈を付けるステップと、
該注釈が付けられたソースコードをコンパイルして最適化された実行可能なコードを提供するステップと
を包含する、請求項28〜39のいずれか1つに記載の方法。 - 前記コンパイルするステップは、
前記アプリケーションソースコードをコンパイルするステップと、
最適化を組み入れるために該コンパイルされたソースコードを再組織化して最適化された実行可能なコードを提供するステップと
を包含する、請求項28〜39のいずれか1つに記載の方法。 - 再プログラミング可能なハードウェアを用いてインプリメントされた命令プロセッサのランタイム再構成を管理するための管理システムであって、
複数の命令プロセッサインプリメンテーションに対する構成情報を含む構成ライブラリと、
該インプリメンテーションに対する関連する実行可能なコードを含めるためのコードライブラリと、
アプリケーションデータ、および必要に応じて構成情報および関連する実行可能なコードを、命令プロセッサのインプリメンテーションおよび実行のための再プログラミング可能なハードウェアにロードするためのローダーと、
ローダーにアプリケーションデータ、および必要に応じて構成情報および関連する実行可能なコードをロードし、該実行可能なコードを実行するように信号を出すためのローダーコントローラと、
該命令プロセッサのオペレーションに関するランタイム統計を取得するためのランタイムモニタと、
該ランタイム統計を受け取り、該ローダに、新しいインプリメンテーションに対する新しい構成情報および関連する実行可能なコードを該再プログラミング可能なハードウェアにロードするように指示するようにオペレーション可能に構成された最適化デタミナと、
最適化デタミナーを呼び出すための最適化インストラクタと
を含む、システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0028079.2A GB0028079D0 (en) | 2000-11-17 | 2000-11-17 | System and method |
PCT/GB2001/005080 WO2002041146A2 (en) | 2000-11-17 | 2001-11-19 | Instruction processor systems and methods |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005503680A JP2005503680A (ja) | 2005-02-03 |
JP2005503680A5 JP2005503680A5 (ja) | 2005-05-26 |
JP3903193B2 true JP3903193B2 (ja) | 2007-04-11 |
Family
ID=9903363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002543290A Expired - Fee Related JP3903193B2 (ja) | 2000-11-17 | 2001-11-19 | 命令プロセッサシステムおよび方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7543283B2 (ja) |
EP (1) | EP1374045A2 (ja) |
JP (1) | JP3903193B2 (ja) |
AU (1) | AU2002223824A1 (ja) |
GB (1) | GB0028079D0 (ja) |
WO (1) | WO2002041146A2 (ja) |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US7966078B2 (en) | 1999-02-01 | 2011-06-21 | Steven Hoffberg | Network media appliance system and method |
GB0028079D0 (en) * | 2000-11-17 | 2001-01-03 | Imperial College | System and method |
US7143418B1 (en) * | 2001-12-10 | 2006-11-28 | Xilinx, Inc. | Core template package for creating run-time reconfigurable cores |
GB0215034D0 (en) * | 2002-06-28 | 2002-08-07 | Critical Blue Ltd | Architecture generation method |
JP3801545B2 (ja) * | 2002-08-02 | 2006-07-26 | 松下電器産業株式会社 | コンパイラ用プログラム、コンパイラ装置及びコンパイル方法 |
US7536674B2 (en) * | 2003-08-13 | 2009-05-19 | Intel Corporation | Method and system for configuring network processing software to exploit packet flow data locality |
US7546598B2 (en) * | 2003-09-03 | 2009-06-09 | Sap Aktiengesellschaft | Measuring software system performance using benchmarks |
US7730459B2 (en) * | 2003-09-30 | 2010-06-01 | Intel Corporation | Generating executable code based on code performance data |
US7739671B1 (en) | 2003-12-22 | 2010-06-15 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Systems, methods and apparatus for implementation of formal specifications derived from informal requirements |
WO2005086746A2 (en) * | 2004-03-04 | 2005-09-22 | Trustees Of Boston University | Programmable-logic acceleraton of data processing applications |
US7493596B2 (en) * | 2004-06-30 | 2009-02-17 | International Business Machines Corporation | Method, system and program product for determining java software code plagiarism and infringement |
US7647581B2 (en) * | 2004-06-30 | 2010-01-12 | International Business Machines Corporation | Evaluating java objects across different virtual machine vendors |
US7975256B2 (en) * | 2004-06-30 | 2011-07-05 | International Business Machines Corporation | Optimizing application performance through data mining |
US7401329B2 (en) * | 2005-04-25 | 2008-07-15 | Arm Limited | Compiling computer programs to exploit parallelism without exceeding available processing resources |
US8255745B2 (en) * | 2005-08-29 | 2012-08-28 | The Invention Science Fund I, Llc | Hardware-error tolerant computing |
US7493516B2 (en) * | 2005-08-29 | 2009-02-17 | Searete Llc | Hardware-error tolerant computing |
US7647487B2 (en) * | 2005-08-29 | 2010-01-12 | Searete, Llc | Instruction-associated processor resource optimization |
US8214191B2 (en) * | 2005-08-29 | 2012-07-03 | The Invention Science Fund I, Llc | Cross-architecture execution optimization |
US7774558B2 (en) * | 2005-08-29 | 2010-08-10 | The Invention Science Fund I, Inc | Multiprocessor resource optimization |
US8209524B2 (en) * | 2005-08-29 | 2012-06-26 | The Invention Science Fund I, Llc | Cross-architecture optimization |
US7877584B2 (en) * | 2005-08-29 | 2011-01-25 | The Invention Science Fund I, Llc | Predictive processor resource management |
US8516300B2 (en) | 2005-08-29 | 2013-08-20 | The Invention Science Fund I, Llc | Multi-votage synchronous systems |
US8181004B2 (en) * | 2005-08-29 | 2012-05-15 | The Invention Science Fund I, Llc | Selecting a resource management policy for a resource available to a processor |
US7653834B2 (en) * | 2005-08-29 | 2010-01-26 | Searete, Llc | Power sparing synchronous apparatus |
US7725693B2 (en) * | 2005-08-29 | 2010-05-25 | Searete, Llc | Execution optimization using a processor resource management policy saved in an association with an instruction group |
US8402257B2 (en) * | 2005-08-29 | 2013-03-19 | The Invention Science Fund I, PLLC | Alteration of execution of a program in response to an execution-optimization information |
US8423824B2 (en) | 2005-08-29 | 2013-04-16 | The Invention Science Fund I, Llc | Power sparing synchronous apparatus |
US7779213B2 (en) * | 2005-08-29 | 2010-08-17 | The Invention Science Fund I, Inc | Optimization of instruction group execution through hardware resource management policies |
US7627739B2 (en) * | 2005-08-29 | 2009-12-01 | Searete, Llc | Optimization of a hardware resource shared by a multiprocessor |
US7739524B2 (en) * | 2005-08-29 | 2010-06-15 | The Invention Science Fund I, Inc | Power consumption management |
US20070168696A1 (en) * | 2005-11-15 | 2007-07-19 | Aternity Information Systems, Ltd. | System for inventing computer systems and alerting users of faults |
US8739143B2 (en) * | 2007-01-31 | 2014-05-27 | Hewlett-Packard Development Company, L.P. | Profiling metrics for computer programs |
US20070266372A1 (en) * | 2006-05-10 | 2007-11-15 | Gawor Helen L | Generating documentation from task execution |
US8510859B2 (en) * | 2006-09-26 | 2013-08-13 | Intel Corporation | Methods and arrangements to launch trusted, co-existing environments |
US9697019B1 (en) | 2006-10-17 | 2017-07-04 | Manageiq, Inc. | Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine |
US8612971B1 (en) | 2006-10-17 | 2013-12-17 | Manageiq, Inc. | Automatic optimization for virtual systems |
US8752045B2 (en) | 2006-10-17 | 2014-06-10 | Manageiq, Inc. | Methods and apparatus for using tags to control and manage assets |
US8949826B2 (en) * | 2006-10-17 | 2015-02-03 | Managelq, Inc. | Control and management of virtual systems |
US8234641B2 (en) | 2006-10-17 | 2012-07-31 | Managelq, Inc. | Compliance-based adaptations in managed virtual systems |
US8458695B2 (en) | 2006-10-17 | 2013-06-04 | Manageiq, Inc. | Automatic optimization for virtual systems |
US8234640B1 (en) | 2006-10-17 | 2012-07-31 | Manageiq, Inc. | Compliance-based adaptations in managed virtual systems |
US9038062B2 (en) * | 2006-10-17 | 2015-05-19 | Manageiq, Inc. | Registering and accessing virtual systems for use in a managed system |
US9015703B2 (en) | 2006-10-17 | 2015-04-21 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
US9086917B1 (en) | 2006-10-17 | 2015-07-21 | Manageiq, Inc. | Registering and accessing virtual systems for use in a managed system |
US8949825B1 (en) | 2006-10-17 | 2015-02-03 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
US8214813B2 (en) | 2007-01-12 | 2012-07-03 | Microsoft Corporation | Code optimization across interfaces |
US7521961B1 (en) * | 2007-01-23 | 2009-04-21 | Xilinx, Inc. | Method and system for partially reconfigurable switch |
US20080222581A1 (en) | 2007-03-09 | 2008-09-11 | Mips Technologies, Inc. | Remote Interface for Managing the Design and Configuration of an Integrated Circuit Semiconductor Design |
US8103987B2 (en) * | 2007-03-09 | 2012-01-24 | Mips Technologies, Inc. | System and method for managing the design and configuration of an integrated circuit semiconductor design |
US8341612B2 (en) * | 2007-05-16 | 2012-12-25 | International Business Machines Corporation | Method and apparatus for run-time statistics dependent program execution using source-coding |
US8156484B2 (en) * | 2007-08-22 | 2012-04-10 | International Business Machines Corporation | LDAP server performance object creation and use thereof |
US8146098B2 (en) * | 2007-09-07 | 2012-03-27 | Manageiq, Inc. | Method and apparatus for interfacing with a computer user via virtual thumbnails |
US8196126B2 (en) * | 2007-10-29 | 2012-06-05 | Sap Ag | Methods and systems for dynamically generating and optimizing code for business rules |
US8418173B2 (en) | 2007-11-27 | 2013-04-09 | Manageiq, Inc. | Locating an unauthorized virtual machine and bypassing locator code by adjusting a boot pointer of a managed virtual machine in authorized environment |
US8407688B2 (en) | 2007-11-27 | 2013-03-26 | Managelq, Inc. | Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets |
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 |
WO2009127254A1 (en) * | 2008-04-16 | 2009-10-22 | Telecom Italia S.P.A. | Method and system for dynamically configuring a telecommunications network |
US20090293051A1 (en) * | 2008-05-22 | 2009-11-26 | Fortinet, Inc., A Delaware Corporation | Monitoring and dynamic tuning of target system performance |
JP2010026851A (ja) * | 2008-07-22 | 2010-02-04 | Panasonic Corp | コンパイラによる最適化方法 |
US7930661B1 (en) * | 2008-08-04 | 2011-04-19 | Xilinx, Inc. | Software model for a hybrid stacked field programmable gate array |
US10621092B2 (en) | 2008-11-24 | 2020-04-14 | Intel Corporation | Merging level cache and data cache units having indicator bits related to speculative execution |
US9672019B2 (en) * | 2008-11-24 | 2017-06-06 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US8271958B2 (en) * | 2008-12-12 | 2012-09-18 | Microsoft Corporation | Remapping debuggable code |
US8438549B1 (en) * | 2009-09-15 | 2013-05-07 | Sandia Corporation | Data processing with microcode designed with source coding |
US8972961B2 (en) | 2010-05-19 | 2015-03-03 | International Business Machines Corporation | Instruction scheduling approach to improve processor performance |
KR101754203B1 (ko) | 2011-01-19 | 2017-07-07 | 삼성전자주식회사 | 파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법 |
US10089277B2 (en) | 2011-06-24 | 2018-10-02 | Robert Keith Mykland | Configurable circuit array |
US9417855B2 (en) | 2011-09-30 | 2016-08-16 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
US9633160B2 (en) | 2012-06-11 | 2017-04-25 | Robert Keith Mykland | Method of placement and routing in a reconfiguration of a dynamically reconfigurable processor |
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 |
US8566767B1 (en) * | 2011-11-23 | 2013-10-22 | Cadence Design Systems, Inc. | System and method for parametric intercoupling of static and dynamic analyses for synergistic integration in electronic design automation |
US8874893B2 (en) | 2012-03-26 | 2014-10-28 | International Business Machines Corporation | Effect translation and assessment among microarchitecture components |
US9094299B1 (en) * | 2013-01-08 | 2015-07-28 | Juniper Networks, Inc. | Auto-generation of platform-independent interface and operational scripts for configuring network devices |
US9880842B2 (en) | 2013-03-15 | 2018-01-30 | Intel Corporation | Using control flow data structures to direct and track instruction execution |
US9471211B2 (en) | 2013-03-18 | 2016-10-18 | International Business Machines Corporation | Chaining applications |
US9891936B2 (en) | 2013-09-27 | 2018-02-13 | Intel Corporation | Method and apparatus for page-level monitoring |
US9740529B1 (en) * | 2013-12-05 | 2017-08-22 | The Mathworks, Inc. | High throughput synchronous resource-constrained scheduling for model-based design |
US9836283B2 (en) * | 2014-11-14 | 2017-12-05 | Cavium, Inc. | Compiler architecture for programmable application specific integrated circuit based network devices |
AU2016228166A1 (en) * | 2016-09-13 | 2018-03-29 | Canon Kabushiki Kaisha | Visualisation for guided algorithm design to create hardware friendly algorithms |
JP6433468B2 (ja) * | 2016-09-28 | 2018-12-05 | 本田技研工業株式会社 | プログラム作成支援方法 |
RU2020102277A (ru) * | 2017-06-22 | 2021-07-22 | АйКЭТ ЛЛК | Процессоры с высокой производительностью |
CN111966474B (zh) * | 2020-08-11 | 2024-04-02 | 武汉遂意语联网络科技有限公司 | 控制定时任务的方法及装置 |
CN114816532B (zh) * | 2022-04-20 | 2023-04-04 | 湖南卡姆派乐信息科技有限公司 | 一种提高risc-v二进制代码密度的寄存器分配方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4763242A (en) * | 1985-10-23 | 1988-08-09 | Hewlett-Packard Company | Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility |
US5524268A (en) * | 1992-06-26 | 1996-06-04 | Cirrus Logic, Inc. | Flexible processor-driven control of SCSI buses utilizing tags appended to data bytes to determine SCSI-protocol phases |
US5752035A (en) * | 1995-04-05 | 1998-05-12 | Xilinx, Inc. | Method for compiling and executing programs for reprogrammable instruction set accelerator |
US6006318A (en) * | 1995-08-16 | 1999-12-21 | Microunity Systems Engineering, Inc. | General purpose, dynamic partitioning, programmable media processor |
US5742840A (en) * | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
US5812425A (en) * | 1996-09-16 | 1998-09-22 | Advanced Micro Devices, Inc. | Method for changing operation of circuitry in a CPU based on a statistic of performance of the CPU |
US6138229A (en) * | 1998-05-29 | 2000-10-24 | Motorola, Inc. | Customizable instruction set processor with non-configurable/configurable decoding units and non-configurable/configurable execution units |
US6789135B1 (en) * | 1998-09-09 | 2004-09-07 | Matsushita Electric Industrial Co., Ltd. | Apparatus function change system having an apparatus service center containing customer information and setting information for a reconfigurable chip |
WO2000031652A2 (en) * | 1998-11-20 | 2000-06-02 | Altera Corporation | Reconfigurable programmable logic device computer system |
GB9828381D0 (en) * | 1998-12-22 | 1999-02-17 | Isis Innovation | Hardware/software codesign system |
KR100874738B1 (ko) * | 1999-02-05 | 2008-12-22 | 텐실리카 인코포레이티드 | 구성가능한 프로세서를 설계하기 위한 프로세서 자동 생성시스템 및 방법 |
US6477697B1 (en) * | 1999-02-05 | 2002-11-05 | Tensilica, Inc. | Adding complex instruction extensions defined in a standardized language to a microprocessor design to produce a configurable definition of a target instruction set, and hdl description of circuitry necessary to implement the instruction set, and development and verification tools for the instruction set |
US6477683B1 (en) * | 1999-02-05 | 2002-11-05 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
US6664988B1 (en) * | 1999-02-10 | 2003-12-16 | Micron Technology, Inc. | Graphical representation of system information on a remote computer |
KR100731371B1 (ko) * | 1999-02-15 | 2007-06-21 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 구성가능 기능 유닛을 포함하는 프로세서를 사용해서 컴퓨터 프로그램을 실행하는 방법, 프로세서 및 컴퓨터 판독가능 기록 매체 |
US7036106B1 (en) * | 2000-02-17 | 2006-04-25 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
US6725317B1 (en) * | 2000-04-29 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | System and method for managing a computer system having a plurality of partitions |
IL137296A (en) * | 2000-07-13 | 2009-09-01 | Nds Ltd | Configurable hardware system |
US20030041129A1 (en) * | 2000-07-20 | 2003-02-27 | John Applcby-Allis | Voice-over-internet protocol telephone in reconfigurable logic |
GB0028079D0 (en) * | 2000-11-17 | 2001-01-03 | Imperial College | System and method |
-
2000
- 2000-11-17 GB GBGB0028079.2A patent/GB0028079D0/en not_active Ceased
-
2001
- 2001-11-19 AU AU2002223824A patent/AU2002223824A1/en not_active Abandoned
- 2001-11-19 WO PCT/GB2001/005080 patent/WO2002041146A2/en active Application Filing
- 2001-11-19 EP EP01996787A patent/EP1374045A2/en not_active Withdrawn
- 2001-11-19 JP JP2002543290A patent/JP3903193B2/ja not_active Expired - Fee Related
- 2001-11-19 US US10/416,977 patent/US7543283B2/en not_active Expired - Lifetime
-
2009
- 2009-05-27 US US12/472,499 patent/US20090235241A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20090235241A1 (en) | 2009-09-17 |
US7543283B2 (en) | 2009-06-02 |
JP2005503680A (ja) | 2005-02-03 |
WO2002041146A3 (en) | 2003-10-23 |
EP1374045A2 (en) | 2004-01-02 |
AU2002223824A1 (en) | 2002-05-27 |
US20040073899A1 (en) | 2004-04-15 |
GB0028079D0 (en) | 2001-01-03 |
WO2002041146A2 (en) | 2002-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3903193B2 (ja) | 命令プロセッサシステムおよび方法 | |
Clark et al. | An architecture framework for transparent instruction set customization in embedded processors | |
Cardoso et al. | Compilation techniques for reconfigurable architectures | |
Kastrup et al. | ConCISe: A compiler-driven CPLD-based instruction set accelerator | |
US7565631B1 (en) | Method and system for translating software binaries and assembly code onto hardware | |
Cardoso et al. | Compilation for FPGA-based reconfigurable hardware | |
JPH10320214A (ja) | コンパイルシステム及びコンピュータプログラム製品 | |
US6912706B1 (en) | Instruction processor and programmable logic device cooperative computing arrangement and method | |
Mei et al. | Design and optimization of dynamically reconfigurable embedded systems | |
La Rosa et al. | Implementation of a UMTS turbo decoder on a dynamically reconfigurable platform | |
JP4968478B2 (ja) | ステートメントを再構成する方法およびその機能を備えたコンピュータシステム | |
La Rosa et al. | Hardware/software design space exploration for a reconfigurable processor | |
Oh et al. | Efficient execution of stream graphs on coarse-grained reconfigurable architectures | |
Eikerling et al. | A methodology for rapid analysis and optimization of embedded systems | |
JP3850531B2 (ja) | 再構成可能な回路の設計装置、及び再構成可能な回路装置 | |
Ping Seng et al. | Flexible instruction processors | |
Zaretsky et al. | Overview of the FREEDOM compiler for mapping DSP software to FPGAs | |
Grad et al. | Just-in-time instruction set extension-feasibility and limitations for an fpga-based reconfigurable asip architecture | |
EP1470478A2 (en) | Method and device for partitioning large computer programs | |
Hofmann et al. | XBERT: Xilinx Logical-Level Bitstream Embedded RAM Transfusion | |
Balboni et al. | Partitioning of hardware-software embedded systems: A metrics-based approach | |
Cardoso | On estimations for compiling software to FPGA-based systems | |
Bertels et al. | Profiling, compilation, and hdl generation within the hartes project | |
Libby et al. | An embedded implementation of the Common Language Infrastructure | |
Edelin et al. | A programming toolset enabling exploitation of reconfiguration for increased flexibility in future system-on-chips |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061114 |
|
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: 20061124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061215 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120119 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |