JP2005503680A5 - - Google Patents

Download PDF

Info

Publication number
JP2005503680A5
JP2005503680A5 JP2002543290A JP2002543290A JP2005503680A5 JP 2005503680 A5 JP2005503680 A5 JP 2005503680A5 JP 2002543290 A JP2002543290 A JP 2002543290A JP 2002543290 A JP2002543290 A JP 2002543290A JP 2005503680 A5 JP2005503680 A5 JP 2005503680A5
Authority
JP
Japan
Prior art keywords
instruction
information
optimization
implementation
executable code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002543290A
Other languages
Japanese (ja)
Other versions
JP3903193B2 (en
JP2005503680A (en
Filing date
Publication date
Priority claimed from GBGB0028079.2A external-priority patent/GB0028079D0/en
Application filed filed Critical
Publication of JP2005503680A publication Critical patent/JP2005503680A/en
Publication of JP2005503680A5 publication Critical patent/JP2005503680A5/ja
Application granted granted Critical
Publication of JP3903193B2 publication Critical patent/JP3903193B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Claims (42)

再プログラミング可能なハードウェアを用いて命令プロセッサをインプリメントするために、カスタマイゼーション仕様であって、アプリケーションソースコードを含むアプリケーション情報および設計制約を含むカスタマイゼーション情報を含む、カスタマイゼーション仕様に基づいて構成情報および関連する実行可能なコードを生成する方法であって、Configuration information and related information based on the customization specification, including application information including application source code and customization information including design constraints, to implement an instruction processor using reprogrammable hardware A method for generating executable code,
インプリメンテーションのための候補として識別された各プロセッサスタイルに対するテンプレートを生成するステップと、Generating a template for each processor style identified as a candidate for implementation;
各テンプレートに対する命令情報を分析し、命令最適化を決定するステップと、Analyzing instruction information for each template and determining instruction optimization;
該命令最適化を含め、そして、実行可能なコードを生成するために該アプリケーションソースコードをコンパイルするステップと、Including the instruction optimization and compiling the application source code to produce executable code;
各テンプレートに対するアーキテクチャ情報を分析し、アーキテクチャ最適化を決定するステップと、Analyzing the architecture information for each template and determining architecture optimization;
該アーキテクチャ最適化を含む構成情報を生成するステップと、Generating configuration information including the architecture optimization;
該アーキテクチャ最適化を含む該構成情報からデバイス固有の構成情報を生成するステップと、Generating device-specific configuration information from the configuration information including the architecture optimization;
を包含する、方法。Including the method.
各候補インプリメンテーションに対して前記構成情報および関連するコードをプロファイルするステップと、Profiling the configuration information and associated code for each candidate implementation;
それに応答して、予定可能な基準に基づいて1以上の最適なインプリメンテーションを選択するステップとIn response, selecting one or more optimal implementations based on predictable criteria;
をさらに包含する請求項1に記載の方法。The method of claim 1 further comprising:
前記カスタマイゼーション情報は、少なくとも一つのカスタム命令をさらに含む、請求項1または2に記載の方法。The method according to claim 1 or 2, wherein the customization information further comprises at least one custom instruction. 前記カスタマイゼーション仕様の情報をプロファイルするステップと、Profiling the customization specification information;
少なくとも一つのプロセッサスタイルを、インプリメンテーションのための候補として識別するステップとIdentifying at least one processor style as a candidate for implementation;
をさらに包含する、請求項1〜3のいずれか1つに記載の方法。The method according to any one of claims 1 to 3, further comprising:
最適化を可能にするためのプロファイリング情報は、カスタマイゼーション仕様プロファイリングステップにおいて集められる、請求項4に記載の方法。The method of claim 4, wherein profiling information for enabling optimization is collected in a customization specification profiling step. 前記命令情報分析ステップは、The instruction information analyzing step includes:
前記命令情報を分析する際の前記プロファイリング情報を利用するステップと、Utilizing the profiling information in analyzing the instruction information;
前記命令最適化を決定するステップとDetermining the instruction optimization; and
を包含する、請求項5に記載の方法。The method of claim 5 comprising:
前記命令情報分析ステップは、The instruction information analyzing step includes:
候補命令最適化を識別するステップと、Identifying candidate instruction optimizations;
前記候補命令最適化の命令に基づいて行われた推定に基づいて、前記命令最適化のインプリメンテーションを決定するステップとDetermining an instruction optimization implementation based on an estimate made based on the candidate instruction optimization instructions;
を包含する、請求項1〜6のいずれか1つに記載の方法。The method according to claim 1, comprising:
前記推定が、前記再プログラミング可能なハードウェアがランタイム中に全命令を共にインプリメントするようにプログラミングされることができないことを提供する場合に、前記命令情報分析ステップは、If the estimation provides that the reprogrammable hardware cannot be programmed to implement all instructions together during runtime, the instruction information analysis step comprises:
個々の命令を、前記再プログラミング可能なハードウェアを再プログラミングすることによってインプリメントされ得る命令のセットに組み合わせてグルーピングするステップを包含する、請求項7に記載の方法。8. The method of claim 7, comprising grouping individual instructions in combination with a set of instructions that can be implemented by reprogramming the reprogrammable hardware.
前記命令情報分析ステップは、The instruction information analyzing step includes:
異なるランタイム状態に対する複数のインプリメンテーションを決定するステップであって、それぞれは、該ランタイム状態に結び付けられる命令を有する、ステップと、Determining a plurality of implementations for different runtime states, each having instructions associated with the runtime states;
各インプリメンテーションに結び付けられた決定状態情報を生成するステップであって、該決定状態情報は、実際のランタイム状態に応じて該インプリメンテーション間の選択を可能にする、ステップとGenerating decision state information associated with each implementation, the decision state information allowing selection between the implementations depending on the actual runtime state; and
を包含する、請求項1〜8のいずれか1つに記載の方法。9. The method according to any one of claims 1 to 8, comprising:
前記命令最適化が、設計制約とともにコンパイルするインプリメンテーションを提供することができない場合に、前記命令情報分析ステップは、If the instruction optimization fails to provide an implementation that compiles with design constraints, the instruction information analysis step comprises:
前記カスタマイゼーション仕様プロファイリングステップを呼び出し、該命令情報分析ステップによって提供された分析情報に基づいて該カスタマイゼーション仕様を再プロファイルするステップを包含する、請求項4に従属される場合に請求項1〜9のいずれか1つに記載の方法。Any one of claims 1-9 when dependent on claim 4, comprising the step of invoking the customization specification profiling step and reprofiling the customization specification based on the analysis information provided by the instruction information analysis step. The method according to any one of the above.
前記アーキテクチャ最適化は、パイプライン処理を含む、請求項1〜10のいずれか1つに記載の方法。The method according to claim 1, wherein the architecture optimization includes pipeline processing. 再プログラミング可能なハードウェアの複数の構成が前記命令プロセッサをインプリメントすることが要求される場合に、前記命令ステップは、If multiple configurations of reprogrammable hardware are required to implement the instruction processor, the instruction step comprises:
個々の構成をグループに最適化するステップと、Optimizing individual configurations into groups;
該グループにされた構成のインプリメンテーションをスケジューリングするステップとScheduling the implementation of the grouped configuration;
を包含する、請求項1〜11のいずれか1つに記載の方法。12. The method according to any one of claims 1 to 11, comprising:
各テンプレートが、複数のプロセッサスタイルに対するプロセッサ定義および関連するパラメータを含むライブラリから抽出されたプロセッサ定義および関連するパラメータから生成される、請求項1〜12のいずれか1つに記載の方法。13. A method according to any one of the preceding claims, wherein each template is generated from processor definitions and associated parameters extracted from a library containing processor definitions and associated parameters for multiple processor styles. 前記アプリケーションソースコードをコンパイルするステップにおいて利用された前記コンパイラは、前記命令情報分析ステップにおいて生成され、前記コンパイルするステップは、The compiler used in the step of compiling the application source code is generated in the instruction information analysis step, and the compiling step includes:
カスタマイゼーション情報とともに前記アプリケーションソースコードに注釈を付けるステップと、Annotating the application source code with customization information;
注釈が付けられたソースコードをコンパイルして、最適化された実行可能なコードを提供するステップとCompiling the annotated source code to provide optimized executable code;
を包含する、請求項1〜13のいずれか1つに記載の方法。14. The method according to any one of claims 1 to 13, comprising:
前記コンパイルするステップは、The step of compiling includes
前記アプリケーションソースコードをコンパイルするステップと、Compiling the application source code;
最適化を組み入れるために該コンパイルされたソースコードを再組織化して、最適化された実行可能なコードを提供するステップとReorganizing the compiled source code to incorporate optimization to provide optimized executable code;
を包含する、請求項1〜13のいずれか1つに記載の方法。14. The method according to any one of claims 1 to 13, comprising:
前記構成情報および関連する実行可能なコード、および関連する場合には前記決定状態情報を、再プログラミング可能なハードウェアを用いてインプリメントされた命令プロセッサの再構成を管理するためにある少なくとも一つの管理システムに配備するステップをさらに包含する、請求項1〜15のいずれか1つに記載の方法。The configuration information and associated executable code, and, where relevant, the decision state information, is at least one management for managing reconfiguration of an instruction processor implemented using reprogrammable hardware 16. A method according to any one of the preceding claims, further comprising deploying to the system. 前記構成情報および関連する実行可能なコード、および、関連する場合には、前記決定状態情報を、再プログラミング可能なハードウェアを再プログラミングすることを可能にするための少なくとも一つのライブラリに配備するステップをさらに包含する、請求項1〜16のいずれか1つに記載の方法。Deploying the configuration information and associated executable code, and, if relevant, the decision state information into at least one library to allow reprogramming of the reprogrammable hardware. The method according to any one of claims 1 to 16, further comprising: 再プログラミング可能なハードウェアを用いて命令プロセッサをインプリメントするために、カスタマイゼーション仕様であって、アプリケーションソースコードを含むアプリケーション情報および設計制約を含むカスタマイゼーション情報を含む、カスタマイゼーション仕様に基づいて構成情報および関連する実行可能コードを生成するための設計システムであって、Configuration information and related based on customization specifications, including application information including application source code and customization information including design constraints, to implement an instruction processor using reprogrammable hardware A design system for generating executable code,
インプリメンテーションの候補として識別された各プロセッサスタイルに対してテンプレートを生成するためのテンプレートジェネレータと、A template generator for generating a template for each processor style identified as a candidate for implementation;
各テンプレートに対する命令情報を分析し、命令最適化を決定するためのアナライザと、An analyzer for analyzing instruction information for each template and determining instruction optimization;
該命令最適化を含めて、そして、実行可能なコードを生成するために該アプリケーションソースコードをコンパイルするためのコンパイラと、A compiler for including the instruction optimization and for compiling the application source code to produce executable code;
各テンプレートに対するアーキテクチャ情報を分析し、アーキテクチャ最適化を決定し、そして、該アーキテクチャ最適化を含む構成情報を生成するためのインスタンチエータと、An instantiator for analyzing the architecture information for each template, determining architecture optimization, and generating configuration information including the architecture optimization;
該アーキテクチャ最適化を含む該構成情報からデバイス固有の構成情報を生成するためのビルダーとA builder for generating device specific configuration information from the configuration information including the architecture optimization;
を含む、システム。Including the system.
再プログラミング可能なハードウェアにおいてインプリメントされる命令プロセッサのランタイム再構成を管理する方法であって、A method for managing runtime reconfiguration of an instruction processor implemented in reprogrammable hardware comprising:
複数の命令プロセッサのインプリメンテーションに対する構成情報を含む構成ライブラリを提供するステップと、Providing a configuration library including configuration information for implementations of a plurality of instruction processors;
該インプリメンテーションのための関連する実行可能なコードを含ませるためのコードライブラリを提供するステップと、Providing a code library for including relevant executable code for the implementation;
命令プロセッサのインプリメンテーションおよび実行のために、アプリケーションデータ、および必要に応じて構成情報および実行可能なコードを、再プログラミング可能なハードウェアにロードするステップと、Loading application data, and optionally configuration information and executable code into reprogrammable hardware for instruction processor implementation and execution;
該実行可能なコードを実行するステップと、Executing the executable code;
該命令プロセッサのオペレーションに関するランタイム統計を取得するステップと、Obtaining runtime statistics regarding the operation of the instruction processor;
新しいインプリメンテーションに対する新しい構成情報および関連する実行可能なコードを該再プログラミング可能なハードウェアにロードするステップとLoading new configuration information for the new implementation and associated executable code into the reprogrammable hardware;
を包含する、方法。Including the method.
前記ロードするステップは、予定可能なイベント上で自動的に行われる、請求項19に記載の方法。The method of claim 19, wherein the loading is performed automatically on a scheduleable event. 前記ロードするステップは、外部エージェントによって作動される、請求項19または20に記載の方法。21. A method according to claim 19 or 20, wherein the loading step is actuated by an external agent. 前記ロードするステップの前に、新しいインプリメンテーションに対する前記構成情報および関連する実行可能なコードを、それぞれ個々の構成ライブラリおよび前記コードライブラリにロードするステップをさらに包含し、Prior to the loading step, further comprising loading the configuration information and associated executable code for a new implementation into an individual configuration library and the code library, respectively.
該ロードするステップは、外部エージェントにより作動する際に、該当するインプリメンテーションに対する前記構成情報および関連する実行可能なコードを、該再プログラミング可能なハードウェアにロードするステップを包含する、請求項21に記載の方法。The loading step includes loading the configuration information and associated executable code for the appropriate implementation into the reprogrammable hardware when operated by an external agent. The method described in 1.
前記インプリメンテーションの少なくとも一つに対する関連する決定状態情報を含ませるための決定状態ライプラリを提供するステップと、Providing a decision state library for including relevant decision state information for at least one of the implementations;
該再プログラミング可能なハードウェアにおいてロードされた該インプリメンテーションの様々なランタイム状態に対する複数の他のインプリメンテーションに対する該決定状態情報をプロファイルするステップと、Profiling the decision state information for a plurality of other implementations for various runtime states of the implementation loaded in the reprogrammable hardware;
他のインプリメンテーションのうちの任意に対する該決定状態情報が前記ランタイム統計により緊密に適合するかどうかを決定するステップとをさらに包含し、Determining whether the decision state information for any of the other implementations more closely matches the runtime statistics;
該他のインプリメンテーションの一つに対する該決定状態情報が該ランタイム統計により緊密に適合する場合に、該ロードするステップは、If the decision state information for one of the other implementations more closely matches the runtime statistics, the loading step comprises:
該当するインプリメンテーションに対する前記構成情報および関連する実行可能なコードを、前記再プログラミング可能なハードウェアにロードするステップを包含する、請求項19〜22のいずれか1つに記載の方法。23. A method as claimed in any one of claims 19 to 22 comprising loading the configuration information and associated executable code for a relevant implementation into the reprogrammable hardware.
前記ランタイム統計に最適化された1以上の新しいインプリメンテーションを生成するステップをさらに包含する、請求項19〜23のいずれか1つに記載の方法。24. The method of any one of claims 19-23, further comprising generating one or more new implementations optimized for the runtime statistics. 各新しいインプリメンテーションに対する前記構成情報および関連する実行可能なコードを、それぞれ個々の構成ライブラリおよび前記コードライブラリにロードするステップをさらに包含する、請求項19〜22のいずれか1つに従属される場合の請求項24に記載の方法。23. Subordinate to any one of claims 19-22, further comprising loading the configuration information and associated executable code for each new implementation into an individual configuration library and the code library, respectively. The method of claim 24 in the case. 各新しいインプリメンテーションに対する前記構成情報、関連する実行可能なコードおよび関連する決定状態情報を、それぞれ個々の構成ライブラリ、前記コードライブラリおよび前記決定状態ライブラリにロードするステップをさらに包含する、請求項23に従属される場合の請求項24に記載の方法。24. The method further comprises loading the configuration information, associated executable code, and associated decision state information for each new implementation into an individual configuration library, the code library, and the decision state library, respectively. 25. The method of claim 24 when subordinate to. 新しいインプリメンテーションに対する前記構成情報および関連する実行可能なコードは、予定可能な基準を満足する前記再プログラミング可能なハードウェアにロードされる、請求項19〜26のいずれか1つに記載の方法。27. A method as claimed in any one of claims 19 to 26, wherein the configuration information and associated executable code for a new implementation is loaded into the reprogrammable hardware that satisfies a schedulable criterion. . 前記インプリメンテーション生成ステップは、The implementation generation step includes:
前記ランタイム統計に基づいて命令情報を分析し、命令最適化を決定するステップと、Analyzing instruction information based on the runtime statistics to determine instruction optimization;
前記命令最適化を含ませるために前記アプリケーションソースコードをコンパイルし、実行可能なコードを生成するステップと、Compiling the application source code to include the instruction optimization and generating executable code;
該ランタイム統計に基づいてアーキテクチャ情報を分析し、アーキテクチャ最適化を決定するステップと、Analyzing architecture information based on the runtime statistics to determine architecture optimization;
該アーキテクチャ最適化を含む構成情報を生成するステップと、Generating configuration information including the architecture optimization;
該アーキテクチャ最適化を含む該構成情報からデバイス固有の構成情報を生成するステップとGenerating device specific configuration information from the configuration information including the architecture optimization;
を包含する、請求項24〜27のいずれか1つに記載の方法。28. A method according to any one of claims 24-27, comprising:
前記インプリメンテーションステップは、The implementation step includes:
各候補インプリメンテーションに対する前記構成情報および関連するコードをプロファイルするステップと、Profiling the configuration information and associated code for each candidate implementation;
それに応答して、予定可能な基準に基づいて1以上の最適のインプリメンテーションを選択するステップとIn response, selecting one or more optimal implementations based on predictable criteria;
をさらに包含する、請求項28に記載の方法。30. The method of claim 28, further comprising:
前記インプリメンテーション生成ステップは、The implementation generation step includes:
カスタマイゼーション仕様および前記ランタイム統計内の情報をプロファイルするステップと、Profiling customization specifications and information in the runtime statistics;
少なくとも一つのプロセッサスタイルをインプリメンテーションのための候補として識別するステップと、Identifying at least one processor style as a candidate for implementation;
インプリメンテーションのための候補として識別された各プロセッサスタイルのためのテンプレートを生成するステップとGenerating a template for each processor style identified as a candidate for implementation; and
をさらに包含する、請求項28または29に記載の方法。30. The method of claim 28 or 29, further comprising:
最適化を可能にするためのプロファイリング情報は、前記カスタマイゼーション仕様プロファイルステップにおいて収集される、請求項30に記載の方法。32. The method of claim 30, wherein profiling information for enabling optimization is collected in the customization specification profile step. 前記命令情報分析ステップは、The instruction information analyzing step includes:
該命令情報を分析する際に前記プロファイリング情報を利用するステップと、Utilizing the profiling information in analyzing the instruction information;
該命令最適化を決定するステップとDetermining the instruction optimization; and
を包含する、請求項31に記載の方法。32. The method of claim 31 comprising:
前記命令情報分析ステップは、The instruction information analyzing step includes:
候補命令最適化を識別するステップと、Identifying candidate instruction optimizations;
該候補命令最適化の命令に基づいて行われた推定に基づいて前記命令最適化のインプリメンテーションを決定するステップとDetermining an implementation of the instruction optimization based on an estimate made based on the instruction of the candidate instruction optimization;
を包含する、請求項28〜32のいずれか1つに記載の方法。33. A method according to any one of claims 28 to 32, comprising:
前記推定が前記再プログラミング可能なハードウェアがランタイム中に全命令を共にインプリメントするためにプログラミングされることができないことを提供する場合に、前記命令情報分析ステップは、If the estimate provides that the reprogrammable hardware cannot be programmed to implement all instructions together at runtime, the instruction information analysis step comprises:
個々の命令を、前記再プログラミング可能なハードウェアを再プログラミングすることによってインプリメントされ得る命令のセットに組み合わせてグループ化するステップを包含する、請求項33に記載の方法。34. The method of claim 33, comprising grouping individual instructions in combination into a set of instructions that can be implemented by reprogramming the reprogrammable hardware.
前記命令情報分析ステップは、The instruction information analyzing step includes:
異なるランタイム状態に対する複数のインプリメンテーションを決定するステップとであって、それぞれは、前記ランタイム状態に結び付けられた命令最適化を有する、ステップと、Determining a plurality of implementations for different runtime states, each having an instruction optimization associated with the runtime state;
各インプリメンテーションに結び付けられた決定状態情報を生成するステップであって、該決定状態情報は、実際のランタイム状態に応じて該インプリメンテーション間の選択を可能にする、ステップとGenerating decision state information associated with each implementation, the decision state information allowing selection between the implementations depending on the actual runtime state; and
を包含する、請求項28〜34のいずれか1つに記載の方法。35. The method of any one of claims 28 to 34, comprising:
前記命令最適化が、設計制約とともにコンパイルするインプリメンテーションを提供できない場合に、前記命令情報分析ステップは、If the instruction optimization cannot provide an implementation that compiles with design constraints, the instruction information analysis step comprises:
前記カスタマイゼーション仕様プロファイルステップを呼び出して、該命令情報分析ステップによって提供された分析情報に基づいて該カスタマイゼーション仕様を再プロファイルするステップとInvoking the customization specification profile step to reprofile the customization specification based on the analysis information provided by the instruction information analysis step;
を包含する、請求項30に従属される場合の請求項28〜35のいずれか1つに記載の方法。36. A method according to any one of claims 28 to 35 when dependent on claim 30, comprising:
前記アーキテクチャ最適化は、リソース複製を含む、請求項28〜36のいずれか1つに記載の方法。37. The method of any one of claims 28 to 36, wherein the architecture optimization includes resource replication. 再プログラミング可能なハードウェアの複数の構成は、前記命令プロセッサをインプリメントすることが要求され、前記インスタンス生成ステップは、Multiple configurations of reprogrammable hardware are required to implement the instruction processor, and the instantiation step comprises:
個々の構成をグループに最適化するステップと、Optimizing individual configurations into groups;
グループ化された構成のインプリメンテーションをスケジューリングするステップとScheduling the implementation of grouped configurations; and
を包含する、請求項28〜37のいずれか1つに記載の方法。38. The method of any one of claims 28-37, comprising:
各テンプレートは、複数のプロセッサスタイルに対するプロセッサ定義および関連するパラメータを含むライブラリから抽出されたプロセッサ定義および関連するパラメータから生成される、請求項30〜38のいずれか1つに記載の方法。39. A method according to any one of claims 30 to 38, wherein each template is generated from a processor definition and associated parameters extracted from a library comprising processor definitions and associated parameters for a plurality of processor styles. 前記アプリケーションソースコードをコンパイルする際に利用された前記コンパイラは、前記命令情報分析ステップにおいて生成され、該コンパイルステップは、The compiler used in compiling the application source code is generated in the instruction information analysis step, and the compilation step includes:
カスタマイゼーション情報とともに該アプリケーションソースコードに注釈を付けるステップと、Annotating the application source code with customization information;
該注釈が付けられたソースコードをコンパイルして最適化された実行可能なコードを提供するステップとCompiling the annotated source code to provide optimized executable code;
を包含する、請求項28〜39のいずれか1つに記載の方法。40. The method of any one of claims 28-39, comprising:
前記コンパイルするステップは、The step of compiling includes
前記アプリケーションソースコードをコンパイルするステップと、Compiling the application source code;
最適化を組み入れるために該コンパイルされたソースコードを再組織化して最適化された実行可能なコードを提供するステップとReorganizing the compiled source code to incorporate optimization to provide optimized executable code;
を包含する、請求項28〜39のいずれか1つに記載の方法。40. The method of any one of claims 28-39, comprising:
再プログラミング可能なハードウェアを用いてインプリメントされた命令プロセッサのランタイム再構成を管理するための管理システムであって、A management system for managing runtime reconfiguration of instruction processors implemented using reprogrammable hardware, comprising:
複数の命令プロセッサインプリメンテーションに対する構成情報を含む構成ライブラリと、A configuration library containing configuration information for multiple instruction processor implementations;
該インプリメンテーションに対する関連する実行可能なコードを含めるためのコードライブラリと、A code library for including relevant executable code for the implementation;
アプリケーションデータ、および必要に応じて構成情報および関連する実行可能なコードを、命令プロセッサのインプリメンテーションおよび実行のための再プログラミング可能なハードウェアにロードするためのローダーと、A loader for loading application data, and optionally configuration information and associated executable code, into reprogrammable hardware for instruction processor implementation and execution;
ローダーにアプリケーションデータ、および必要に応じて構成情報および関連する実行可能なコードをロードし、該実行可能なコードを実行するように信号を出すためのローダーコントローラと、A loader controller for loading application data and, optionally, configuration information and associated executable code into the loader and signaling to execute the executable code;
該命令プロセッサのオペレーションに関するランタイム統計を取得するためのランタイムモニタと、A runtime monitor for obtaining runtime statistics regarding the operation of the instruction processor;
該ランタイム統計を受け取り、該ローダに、新しいインプリメンテーションに対する新しい構成情報および関連する実行可能なコードを該再プログラミング可能なハードウェアにロードするように指示するようにオペレーション可能に構成された最適化デタミナと、An optimization configured to receive the runtime statistics and to instruct the loader to load new configuration information for the new implementation and associated executable code into the reprogrammable hardware Detamina,
最適化デタミナーを呼び出すための最適化インストラクタとAn optimization instructor to call the optimization determiner and
を含む、システム。Including the system.
JP2002543290A 2000-11-17 2001-11-19 Instruction processor system and method Expired - Fee Related JP3903193B2 (en)

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 (en) 2005-02-03
JP2005503680A5 true JP2005503680A5 (en) 2005-05-26
JP3903193B2 JP3903193B2 (en) 2007-04-11

Family

ID=9903363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002543290A Expired - Fee Related JP3903193B2 (en) 2000-11-17 2001-11-19 Instruction processor system and method

Country Status (6)

Country Link
US (2) US7543283B2 (en)
EP (1) EP1374045A2 (en)
JP (1) JP3903193B2 (en)
AU (1) AU2002223824A1 (en)
GB (1) GB0028079D0 (en)
WO (1) WO2002041146A2 (en)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
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
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet 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 (en) * 2002-08-02 2006-07-26 松下電器産業株式会社 COMPILER PROGRAM, COMPILER DEVICE, AND COMPILING METHOD
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
US7975256B2 (en) * 2004-06-30 2011-07-05 International Business Machines Corporation Optimizing application performance through data mining
US7647581B2 (en) * 2004-06-30 2010-01-12 International Business Machines Corporation Evaluating java objects across different virtual machine vendors
US7401329B2 (en) * 2005-04-25 2008-07-15 Arm Limited Compiling computer programs to exploit parallelism without exceeding available processing resources
US7627739B2 (en) * 2005-08-29 2009-12-01 Searete, Llc Optimization of a hardware resource shared by a multiprocessor
US20070050608A1 (en) * 2005-08-29 2007-03-01 Searete Llc, A Limited Liability Corporatin Of The State Of Delaware Hardware-generated and historically-based execution optimization
US8423824B2 (en) 2005-08-29 2013-04-16 The Invention Science Fund I, Llc Power sparing synchronous apparatus
US7877584B2 (en) * 2005-08-29 2011-01-25 The Invention Science Fund I, Llc Predictive processor resource management
US7779213B2 (en) * 2005-08-29 2010-08-17 The Invention Science Fund I, Inc Optimization of instruction group execution through hardware resource management policies
US7739524B2 (en) * 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
US7539852B2 (en) * 2005-08-29 2009-05-26 Searete, Llc Processor resource management
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
US8209524B2 (en) * 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization
US7653834B2 (en) * 2005-08-29 2010-01-26 Searete, Llc Power sparing synchronous apparatus
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
US8516300B2 (en) 2005-08-29 2013-08-20 The Invention Science Fund I, Llc Multi-votage synchronous systems
US8375247B2 (en) * 2005-08-29 2013-02-12 The Invention Science Fund I, Llc Handling processor computational errors
US7647487B2 (en) * 2005-08-29 2010-01-12 Searete, Llc Instruction-associated processor resource optimization
US8255745B2 (en) * 2005-08-29 2012-08-28 The Invention Science Fund I, Llc Hardware-error tolerant computing
US8214191B2 (en) * 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
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
US8949825B1 (en) 2006-10-17 2015-02-03 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8458695B2 (en) * 2006-10-17 2013-06-04 Manageiq, Inc. Automatic optimization for virtual systems
US8234641B2 (en) 2006-10-17 2012-07-31 Managelq, Inc. Compliance-based adaptations 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
US8949826B2 (en) * 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
US8234640B1 (en) 2006-10-17 2012-07-31 Manageiq, Inc. Compliance-based adaptations in managed virtual systems
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
US9015703B2 (en) * 2006-10-17 2015-04-21 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8612971B1 (en) * 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
US9038062B2 (en) * 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8752045B2 (en) 2006-10-17 2014-06-10 Manageiq, Inc. Methods and apparatus for using tags to control and manage assets
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
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
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
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
ES2376385T3 (en) * 2008-04-16 2012-03-13 Telecom Italia S.P.A. PROCEDURE AND SYSTEM TO CONFIGURE DIN? MICAMENTALLY 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 (en) * 2008-07-22 2010-02-04 Panasonic Corp Complier-based optimization method
US7930661B1 (en) * 2008-08-04 2011-04-19 Xilinx, Inc. Software model for a hybrid stacked field programmable gate array
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
US10621092B2 (en) 2008-11-24 2020-04-14 Intel Corporation Merging level cache and data cache units having indicator bits related to speculative execution
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 (en) 2011-01-19 2017-07-07 삼성전자주식회사 Reconfigurable processor using power gating, complier and complie method thereof
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
US9864582B2 (en) * 2014-11-14 2018-01-09 Cavium, Inc. Code processor to build orthogonal execution blocks for programmable network devices
AU2016228166A1 (en) * 2016-09-13 2018-03-29 Canon Kabushiki Kaisha Visualisation for guided algorithm design to create hardware friendly algorithms
JP6433468B2 (en) * 2016-09-28 2018-12-05 本田技研工業株式会社 Program creation support method
US11436186B2 (en) * 2017-06-22 2022-09-06 Icat Llc High throughput processors
CN111966474B (en) * 2020-08-11 2024-04-02 武汉遂意语联网络科技有限公司 Method and device for controlling timing task
CN114816532B (en) * 2022-04-20 2023-04-04 湖南卡姆派乐信息科技有限公司 Register allocation method for improving RISC-V binary code density

Family Cites Families (20)

* Cited by examiner, † Cited by third party
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
EP1351153A3 (en) * 1998-11-20 2008-11-05 Altera Corporation Reconfigurable programmable logic device computer system
GB9828381D0 (en) * 1998-12-22 1999-02-17 Isis Innovation Hardware/software codesign system
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
KR100874738B1 (en) * 1999-02-05 2008-12-22 텐실리카 인코포레이티드 Automated processor generation system for designing a configurable processor and method for the same
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
US6664988B1 (en) * 1999-02-10 2003-12-16 Micron Technology, Inc. Graphical representation of system information on a remote computer
JP5148029B2 (en) * 1999-02-15 2013-02-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Data processor with configurable functional units and method of using such a data processor
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
US20030036895A1 (en) * 2000-07-20 2003-02-20 John Appleby-Alis System, method and article of manufacture for software-designed internet reconfigurable hardware
GB0028079D0 (en) * 2000-11-17 2001-01-03 Imperial College System and method

Similar Documents

Publication Publication Date Title
JP2005503680A5 (en)
US7222218B2 (en) System and method for goal-based scheduling of blocks of code for concurrent execution
US7603664B2 (en) System and method for marking software code
KR101279179B1 (en) Parallel program generation method
Memon et al. Skoll: Distributed continuous quality assurance
US7346902B2 (en) System and method for block-based concurrentization of software code
CN102222023B (en) Asynchronous workflows
US7765532B2 (en) Inducing concurrency in software code
Kulkarni et al. Automatic construction of inlining heuristics using machine learning
EP3244306B1 (en) A computer-implemented method for allowing modification of a region of original code
US20080104096A1 (en) Software development system
US9619601B1 (en) Control and data flow graph generation for hardware description languages
US9152389B2 (en) Trace generating unit, system, and program of the same
CN113032963B (en) Simulink model simulation acceleration method and device
US8819652B2 (en) System and method for parametric system evaluation
JP2003323463A5 (en)
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
US6360360B1 (en) Object-oriented compiler mechanism for automatically selecting among multiple implementations of objects
JP2012510661A (en) Method and system for parallel processing of sequential computer program code
WO2006022204A1 (en) Source program analysis device and method
US8762974B1 (en) Context-sensitive compiler directives
KR102631545B1 (en) Method and system for program analysis
KR20090004210A (en) Apparatus for developing a software program using an integrated development environment and software program development system using an integrated development environment
US9286196B1 (en) Program execution optimization using uniform variable identification
CN113342323A (en) Method and device for software online development