(57)【特許請求の範囲】
【請求項１】
アプリケーションのために集積回路を動的に再構成し、最適化する、コンピュータによって実施される方法であって、前記集積回路は、複数の回路要素を含み、前記方法は、
前記複数の回路要素を前記アプリケーションの実行のために第１構成で構成することと、
特定の時間期間、監視情報の量、及び特定の監視される値が指定された範囲内になることの少なくとも１つを含むしきい値サブミッション判断基準を設定することと、
コンピュータ化されたデバイスを使用して、監視情報を生成するために前記複数の回路要素の前記第１構成での前記アプリケーションの前記実行と、温度、電圧、及び動作周波数の中の少なくとも１つを含む前記アプリケーションの環境特性とを監視することと、
前記監視情報をストレージ構造に格納することと、
前記しきい値サブミッション判断基準が満たされた後に前記監視情報を前記コンピュータ化されたデバイスとは別の外部要素に転送することと、
前記外部要素を使用して前記監視情報に基づいて前記第１構成を再構成または最適化あるいはその両方を行って第２構成に変換することと、
前記コンピュータ化されたデバイスによって、前記外部要素から前記第２構成を受け取ることと、
前記コンピュータ化されたデバイスを使用して前記複数の回路要素を前記第２構成に再構成することと、を含む方法。
【請求項２】
前記監視情報は、暗号化される、請求項１に記載の方法。
【請求項３】
前記監視情報は、ディジタル署名される、請求項１に記載の方法。
【請求項４】
前記第２構成は、前記アプリケーションの前記実行の前記監視を調整する、請求項１に記載の方法。
【請求項５】
前記コンピュータ化されたデバイスを使用して、新しい構成について前記外部要素をポーリングすることをさらに含む、請求項１に記載の方法。
【請求項６】
前記外部要素は、前記集積回路と同一チップ上および前記集積回路の外部のチップ上のうちの少なくとも１つに配置される、請求項１に記載の方法。
【請求項７】
アプリケーションのために集積回路を動的に再構成し、最適化する、コンピュータによって実施される方法であって、前記集積回路は、複数の回路要素を含み、前記方法は、
前記複数の回路要素を前記アプリケーションの実行のために第１構成で構成することと、
特定の時間期間、監視情報の量、及び特定の監視される値が指定された範囲内になることの少なくとも１つを含むしきい値サブミッション判断基準を設定することと、
コンピュータ化されたデバイスを使用して、監視情報を生成するために前記複数の回路要素の前記第１構成での前記アプリケーションの前記実行と、温度、電圧、及び動作周波数の中の少なくとも１つを含む前記アプリケーションの環境特性とを監視することと、
前記監視情報をストレージ構造に格納することと、
前記しきい値サブミッション判断基準が満たされた後に前記監視情報を前記コンピュータ化されたデバイスとは別の外部要素に転送することと、
前記外部要素を使用して前記監視情報に基づいて前記第１構成を再構成または最適化あるいはその両方を行って第２構成に変換することと、
前記外部要素を使用して前記第２構成をテストすることと、
前記コンピュータ化されたデバイスによって、前記外部要素から前記第２構成を受け取ることと、
前記コンピュータ化されたデバイスを使用して前記複数の回路要素を前記第２構成に再構成することと、を含む方法。
【請求項８】
前記監視情報は、暗号化される、請求項７に記載の方法。
【請求項９】
前記監視情報は、ディジタル署名される、請求項７に記載の方法。
【請求項１０】
前記第２構成は、前記アプリケーションの前記実行の前記監視を調整する、請求項７に記載の方法。
【請求項１１】
前記コンピュータ化されたデバイスを使用して、新しい構成について前記外部要素をポーリングすることをさらに含む、請求項７に記載の方法。
【請求項１２】
前記外部要素は、前記集積回路と同一チップ上および前記集積回路の外部のチップ上のうちの少なくとも１つに配置される、請求項７に記載の方法。
【請求項１３】
アプリケーションのために集積回路を動的に再構成し、最適化する、コンピュータによって実施される方法であって、前記集積回路は、複数の回路要素を含み、前記方法は、
前記複数の回路要素を前記アプリケーションの実行のために第１構成で構成することと、
特定の時間期間、監視情報の量、及び特定の監視される値が指定された範囲内になることの少なくとも１つを含むしきい値サブミッション判断基準を設定することと、
コンピュータ化されたデバイスを使用して、消費者による前記デバイスの使用中に監視情報を生成するために前記複数の回路要素の前記第１構成での前記アプリケーションの前記実行と、温度、電圧、及び動作周波数の中の少なくとも１つを含む前記アプリケーションの環境特性とを監視することと、
前記監視情報をストレージ構造に格納することと、
前記しきい値サブミッション判断基準が満たされた後に前記監視情報を前記コンピュータ化されたデバイスとは別の外部要素に転送することと、
前記外部要素を使用して前記監視情報に基づいて前記第１構成を再構成または最適化あるいはその両方を行って第２構成に変換することと、
前記コンピュータ化されたデバイスによって、前記外部要素から前記第２構成を受け取ることと、
前記コンピュータ化されたデバイスを使用して消費者による前記デバイスの使用中に前記複数の回路要素を前記第２構成に再構成することと、を含む方法。
【請求項１４】
コンピュータ上で実行されるときに、アプリケーションのために集積回路を動的に再構成し、最適化する、コンピュータによって実施される方法を前記コンピュータに実行させる命令を記憶したコンピュータ可読記憶媒体であって、前記集積回路は、複数の回路要素を含み、前記コンピュータによって実施される方法は、
前記複数の回路要素を前記アプリケーションの実行のために第１構成で構成することと、
特定の時間期間、監視情報の量、及び特定の監視される値が指定された範囲内になることの少なくとも１つを含むしきい値サブミッション判断基準を設定することと、
コンピュータ化されたデバイスを使用して、消費者による前記デバイスの使用中に監視情報を生成するために前記複数の回路要素の前記第１構成での前記アプリケーションの前記実行と、温度、電圧、及び動作周波数の中の少なくとも１つを含む前記アプリケーションの環境特性とを監視することと、
前記監視情報をストレージ構造に格納することと、
前記しきい値サブミッション判断基準が満たされた後に前記監視情報を前記コンピュータ化されたデバイスとは別の外部要素に転送することと、
前記外部要素を使用して前記監視情報に基づいて前記第１構成を再構成または最適化あるいはその両方を行って第２構成に変換することと、
前記コンピュータ化されたデバイスによって、前記外部要素から前記第２構成を受け取ることと、
前記コンピュータ化されたデバイスを使用して消費者による前記デバイスの使用中に前記複数の回路要素を前記第２構成に再構成することと、を含むコンピュータ可読記憶媒体。
【請求項１５】
アプリケーションのために動的に再構成可能な最適化集積回路であって、
第１構成に構成される複数の回路要素を含む少なくとも１つの構成レジスタと、
特定の時間期間、監視情報の量、及び特定の監視される値が指定された範囲内になることの少なくとも１つを含むしきい値サブミッション判断基準を記憶するしきい値サブミッション判断基準ストレージと、
前記複数の回路要素の前記第１構成での前記アプリケーションの前記実行と、温度、電圧、及び動作周波数の中の少なくとも１つを含む前記アプリケーションの環境特性とを監視し、前記しきい値サブミッション判断基準ストレージから取り出された前記しきい値サブミッション判断基準に基づいて監視情報をアプリケーション監視ストレージに格納するアプリケーション監視回路と、
前記格納された監視情報および前記第１構成を外部要素に転送し、前記外部要素から前記監視情報に基づいて前記第１構成を再構成または最適化あるいはその両方を行って変換された第２構成を受け取るコントローラであって、前記複数の回路要素を前記第２構成に再構成する、コントローラと
を含む、動的に再構成可能な最適化集積回路。
【請求項１６】
前記監視情報は、暗号化される、請求項１５に記載の動的に再構成可能な最適化集積回路。
【請求項１７】
前記第２構成は、前記アプリケーションの前記実行の前記監視を調整する、請求項１５に記載の動的に再構成可能な最適化集積回路。
【請求項１８】
前記外部要素は、前記集積回路と同一チップ上および前記集積回路の外部のチップ上のうちの少なくとも１つに配置される、請求項１５に記載の動的に再構成可能な最適化集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、全般的には動的に再構成可能な回路に関し、より具体的には、現在の環境特性および機能特性を監視し、その動作を自律的に改善するためにコンポーネント回路を動的に再構成する、動的に再構成可能な自己監視回路の製造、設計、および使用に関する。
【背景技術】
【０００２】
従来の特定用途向け回路（ＡＳＩＣ）設計は、ますます複雑化している。特定の設計判断基準について最適化するためのカスタム要素を求める需要が高まっている。しかし、これらの特定用途向け設計ポイントは、標準ライブラリ、標準ツール、および標準設計構成を使用し、限られたターン・アラウンド時間（ＴＡＴ）で設計を作成する必要と矛盾する。ＡＳＩＣ技術は、特殊化されたＡＳＩＣ設計の作成を容易にする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
この発明の目的は、ＡＳＩＣプロセスの利益を維持し、しかしより速いより一般的な形での納入をも容易にし、オン・ザ・フライ・カスタマイゼーションを提供する、設計を作成する方法を提供することにある。
【課題を解決するための手段】
【０００４】
本明細書で開示されるのは、あるアプリケーションのために集積回路を動的に再構成し、最適化する、１つまたは複数の、コンピュータによって実施される方法である。集積回路は、複数の回路要素を含む。
【０００５】
１つの方法は、複数の回路要素をアプリケーションの実行のために第１構成で構成する。この方法は、コンピュータ化されたデバイスを使用して、監視情報を生成するために複数の回路要素でのアプリケーションの実行を監視し、監視情報をストレージ構造に格納する。この方法は、監視情報をコンピュータ化されたデバイスとは別々の外部要素に選択的に通信する。外部要素は、監視情報に基づいて第１構成を第２構成に変換する。コンピュータ化されたデバイスは、外部要素から第２構成を受け取り、複数の要素を第２構成に再構成する。
【０００６】
もう１つの方法は、同様に、複数の回路要素をアプリケーションの実行のために第１構成で構成する。この方法は、コンピュータ化されたデバイスを使用して、監視情報を生成するために複数の回路要素でのアプリケーションの実行を監視し、監視情報をストレージ構造に格納する。この方法は、監視情報をコンピュータ化されたデバイスとは別々の外部要素に選択的に通信する。外部要素は、監視情報に基づいて第１構成を第２構成に変換する。また、外部要素は、障害を除去するために第２構成をテストする。コンピュータ化されたデバイスは、外部要素から第２構成を受け取り、複数の要素を第２構成に再構成する。
【０００７】
追加の方法は、複数の回路要素をアプリケーションの実行のために第１構成で構成する。この方法は、コンピュータ化されたデバイスを使用して、消費者によるデバイスの使用中に監視情報を生成するために複数の回路要素でのアプリケーションの実行を監視し、監視情報をストレージ構造に格納する。この方法は、監視情報をコンピュータ化されたデバイスとは別々の外部要素に選択的に通信する。外部要素は、監視情報に基づいて第１構成を第２構成に変換する。コンピュータ化されたデバイスは、外部要素から第２構成を受け取り、複数の要素を第２構成に再構成する。
【０００８】
上では、監視情報を暗号化し、または監視情報にディジタル署名し、あるいはその両方を行うことができる。さらに、第２構成は、アプリケーションの実行の監視を調整することもできる。この方法は、新しい構成について外部要素をポーリングすることもでき、コンピュータ化されたデバイスによって、第２構成の諸部分を選択的に受け入れることができる。外部要素は、集積回路と同一チップ上または集積回路の外部のチップ上に配置され得る。変換は、集積回路の製造業者または集積回路をデバイスに組み込む製品の製造業者によって決定されるポリシに基づくものとすることができる。
【０００９】
本発明の実施形態は、図面を参照して次の詳細な説明からよりよく理解することができ、図面は、必ずしも原寸に比例して描かれてはいない。
【図面の簡単な説明】
【００１０】
【図１】本発明の態様による第１の例示的な動的に再構成可能な自己監視回路を示す第１の概観である。
【図２】本発明の態様による第１の例示的な動的に再構成可能な自己監視回路を示す第２の概観である。
【図３】本発明の態様による第２の例示的な動的に再構成可能な自己監視回路を示す概観である。
【図４】本発明の態様による第３の例示的な動的に再構成可能な自己監視回路および外部要素を示す概観である。
【図５】本発明の態様による例示的な外部要素を示す図である。
【図６】本発明の態様による集積回路を動的に再構成／最適化し、自己監視する方法を示す例示的な流れ図である。
【図７】本発明の態様による集積回路を動的に再構成し、最適化する方法を示す例示的な流れ図である。
【図８】本発明の一態様による最適化および構成を判定するのに使用できる例示的なハードウェア環境を示す概略図である。
【発明を実施するための形態】
【００１１】
本発明の実施形態ならびにそのさまざまな特徴および有利な詳細を、添付図面に図示され、次の説明で詳細に示される非限定的な実施形態を参照してより十分に説明する。
【００１２】
上で述べたように、動的に再構成可能な自己監視回路の必要が存在する。
【００１３】
図１に、通信リンク９９を介して外部要素２００に接続された第１の例示的な動的に再構成可能な自己監視回路３００の第１の概観を示す。本発明は、機能的効率をも高める、動的に再構成可能な自己監視回路３００の作成にかかわるターン・アラウンド時間（ＴＡＴ）を減らす構造および方法を提供する。動的に再構成可能な自己監視回路３００は、エンド・ユーザ製品内で現在実行中の動作に合わせて環境的に調整された構成更新および最適化更新を受け取る。動的に再構成可能な自己監視回路３００は、そのような構成／最適化更新の要求を開始するか動的に再構成可能な自己監視回路３００にプッシュされる構成更新または最適化更新あるいはその両方を受け取る。構成／最適化更新は、ランタイム性能を改善するように設計される。使用フェーズまで最適化を遅延することによって、動的に再構成可能な自己監視回路３００の使用は、従来は未知のランタイム・シナリオのために回路を事前最適化することを試みるために行われた努力を減らす。さらに、外部要素２００での解釈およびシミュレーションは、減らされたサイズのデバイスまたはより強力なインタープリタおよびシミュレータの使用あるいはその両方を可能にする。
【００１４】
動的に再構成可能な自己監視回路３００内の機能／環境監視回路３３０は、環境情報および機能情報を格納し、格納された監視情報を通信媒体を介して外部要素２００に転送する。本発明によるさまざまな実施形態では、外部要素２００は、動的に再構成可能な自己監視回路のプロバイダもしくは製造業者、動的に再構成可能な自己監視回路３００を見つけるデバイスのベンダ、認可されたコンテンツ・デリバリ・ネットワーク（ｃｏｎｔｅｎｔ  ｄｅｌｉｖｅｒｙ  ｎｅｔｗｏｒｋ、ＣＤＮ）、または類似物である。
【００１５】
監視情報は、その後、外部要素２００によって解釈されて、動的に再構成可能な自己監視回路３００内の回路要素の新しい構成が判定される。最適化および再構成が、さまざまなレベルまたは階層で可能であることを了解されたい。すなわち、外部要素２００は、特定のユーザ、ユーザのクラス、埋込みデバイス製造業者、動的に再構成可能な自己監視回路３００の製造業者、および類似物のために動的に再構成可能な自己監視回路３００を最適化し、再構成することができる。
【００１６】
外部要素２００は、受け取られた監視情報を解釈し、この監視情報は、どの特定の命令が実行されたか、サンプル周囲温度、電圧、または動的に再構成可能な自己監視回路３００の性能に影響する環境特徴または機能特徴あるいはその両方の範囲に関する情報を含むことができる。さまざまな例示的実施形態では、外部要素２００は、受け取られた監視情報を解釈し、監視情報から識別された特徴に基づいて、１つまたは複数の候補構成を判定する。本発明によるさまざまな実施形態では、第２のまたは新しい構成は、監視情報内で識別された関連する機能特徴および環境特徴にまたがってシミュレートされた性能に基づいて、候補構成から選択される。
【００１７】
たとえば、１つの例示的実施形態では、スマートホン・デバイス（図示せず）内に組み込まれた動的に再構成可能な自己監視回路３００で使用可能なある種の特徴を使用する、顧客の傾向が、識別される。外部要素２００は、ユーザまたは顧客あるいはその両方に第２のまたは新しい構成を提供する。外部要素２００は、ビデオがたまに表示されるか絶対に表示されないことをアプリケーション監視情報が示すが、バッテリが使い尽くされたときにデバイスが定期的に電力低下を被ることを認識することができる。受け取られた監視情報は、ビデオ符号化機能およびビデオ復号機能を犠牲にしてバッテリ寿命を延ばす構成／最適化を優先的に選択するために、再構成／最適化プロセスに知らせるのに使用される。１つの例示的実施形態では、論理更新は、ビデオ符号化およびビデオ復号に現在関連する回路要素を、ユーザによってより頻繁に実行される機能に再割り当てする。次に、構成または最適化あるいはその両方は、動的に再構成可能な自己監視回路３００に転送され、動的に再構成可能な自己監視回路３００は、新しい構成または最適化あるいはその両方を用いてそれ自体を更新する。動的に再構成可能な自己監視回路３００は、ランタイム環境を学習し、これに適合し、これによって、他の形ではフィールド学習を製品に組み込むことを必要とする再設計を避ける。
【００１８】
上で注記したように、従来のＡＳＩＣチップは、実施の前に、プログラムされ、構成され、固定ハードウェアに完全に合成される。しかし、これは、クリティカル要素がエンド・ユーザ製品内で動作するようになった後の最適の解決策ではないことがわかる場合がある。
【００１９】
たとえば、プログラマブル・ロジック・セクションを有するプロセッサを、複数のタイプのアプリケーションで使用することができる。特定のアプリケーションのために構成レジスタを動的に変更し、プログラマブル・セクションを調整することは、いくつかのシステムについて、より効率的な性能をもたらす。したがって、１つの例示的実施形態では、動的に再構成可能な自己監視回路３００は、ゲーム機ハードウェア（図示せず）に組み込まれる。ゲーム機ハードウェア内に組み込まれた動的に再構成可能な自己監視回路３００は、使用法を自己監視し、この使用法は、外部要素２００に転送される。動的に再構成可能な自己監視回路は、それ自体を再構成し、または最適化し、あるいはその両方を行って、ある種の色および動きのグラフィックスを生成するか、ゲーム・ユーザが最も頻繁にプレイするタイプに基づいて、その処理容量のうちのより多くを別の使用に振り向ける。たまに使用されるか絶対に使用されない機能のためのロジックを、使用される機能のために再構成することができる。最適構成は、必ず前もって判定できるわけではなく、実際に、ホスト製品の寿命にまたがって変化し、または同一製品の全ユーザにまたがって変化する可能性がある。発生する頻繁な機能、実行される一般的な命令／動作、バス・アクティビティ、アクティビティが発生するときのタイム・スケジュール、環境条件（温度、ｖｄｄ）、動的に再構成可能な自己監視回路３００のどのユニットが最もしばしばアクティブである／スリープしているかを記録するために、動的に再構成可能な自己監視回路３００に機能／環境監視回路３３０を組み込むことは、動的に再構成可能な自己監視回路３００を真にアプリケーション固有にすることを可能にする。
【００２０】
監視データ・メモリ３１０は、あるしきい値サブミッション判断基準が満足されるまで、このアプリケーション監視情報を格納する。コントローラ３４０は、通信ブロック３２０を介してアプリケーション監視情報を外部エンティティに送出する。この判断基準は、時間単位、環境条件の変化、ある効率レベルまたは性能レベル未満への下落、または動的に再構成可能な自己監視回路３００に更新の要求を開始させる別のメトリック程度に単純なものとすることができる。通信ブロック３２０は、ＳＯＣ内の有線バス、インターネット、ｗｉ−ｆｉ、無線、セルラ、またはオン・チップもしくはオフ・チップの任意の他のさまざまな通信媒体を介する外部ネットワーク９９へのアクセスを有する。図１の場合には、動的に再構成可能な自己監視回路３００が、このアプリケーション監視情報を直接にオフ・チップで外部要素２００に送っている場合があり、あるいは、外部要素２００を、動的に再構成可能な自己監視回路３００がその中に存在するＡＳＩＣチップ内の階層の次のレベル内のコントローラとすることができる。
【００２１】
外部要素２００が製造業者であれ他のものであれ、外部要素２００が、デバイスがいつ、どこで、および特にどのように使用されつつあるのかに関して、アプリケーション監視情報およびオプションの回路識別子を動的に再構成可能な自己監視回路３００から受け取るときに、これが、外部要素２００によって解釈されて、動的に再構成可能な自己監視回路３００のより効率的な構成、プログラミング、またはロジック構造が判定される。ハードウェア、ソフトウェア、またはこの２つの組合せのいずれであれ、この機能を動的に再構成可能な自己監視回路３００から遠ざけておくことによって、回路の複雑さおよびサイズが増えない。これは、そのようなルーチンのオーバーヘッドを、複数の動的に再構成可能な自己監視回路３００にサービスできる中央の外部要素２００内に保つ。
【００２２】
外部要素２００が、動的に再構成可能な自己監視回路がその現在の環境で最も効率的に機能することを可能にする構成更新を判定した後に、このデータは、通信リンク９９を介して動的に再構成可能な自己監視回路３００に送り返され、動的に再構成可能な自己監視回路３００では、このデータが、通信ブロック３２０によって受け取られ、コントローラ３４０に転送される。コントローラ３４０は、外部要素２００からの提案された最適化更新を現在の構成と比較して、何かが更新を必要とするかどうか、またはこれが既に現在の構成であるかどうかを判定することができる。さまざまな例示的実施形態のいくつかでは、外部要素２００は、システム・オン・ア・チップ（ＳＯＣ）内にある。アプリケーション監視は、あるしきい値サブミッション判断基準まで継続され、このしきい値サブミッション判断基準では、コントローラ３４０が、通信ブロック３２０を介して情報を通信リンク９９に再び送り出し、このサイクルが継続される。これは、使用法が経時的に変化する場合に、新しい動作環境での効率を高めるために最適化を行えることを保証する。
【００２３】
それぞれの動的に再構成可能な自己監視回路３００にサービスする資格を与えられていない外部エンティティからの不正な更新または壊れた更新を避けるために、暗号化およびＩＤコードを使用して、動的に再構成可能な自己監視回路３００と外部要素２００との間で転送されるランタイム情報にタグを付けて、有効な所有者だけが更新を送っており、指定された動的に再構成可能な自己監視回路３００だけがこれらの最適化を受け取ることができることを保証することができる。
【００２４】
図２は、本発明の態様による第１の例示的な集積回路の概観である。動的に再構成可能な自己監視回路１００は、アプリケーション監視回路１０と、それぞれが入出力回路９０を介して通信リンク９９に接続された、アプリケーション監視ストレージ２０、しきい値サブミッション判断基準ストレージ３０、構成レジスタ４０、コンピュータ化されたデバイスすなわちコントローラ５０、回路要素１  ６０、回路要素２  ７０、回路要素３  ８０とを含む。
【００２５】
コントローラ５０は、しきい値サブミッション判断基準ストレージ３０からしきい値サブミッション判断基準を取り出す。しきい値サブミッション判断基準は、コントローラが、格納されたアプリケーション監視情報を通信リンク９９を介して外部デバイス（図示せず）に転送するときを指定する。
【００２６】
コントローラ５０は、構成レジスタ４０から第１構成を取り出す。構成レジスタは、実行されるアプリケーションのために動的に再構成可能な自己監視回路１００の回路要素１〜３  ６０〜８０を構成する。
【００２７】
その後、コントローラ５０は、１つまたは複数のアプリケーションを実行する。この１つまたは複数のアプリケーションの実行中に、アプリケーション監視回路１０は、ある時間期間にわたってアプリケーションがどのように実行されるのかを判定する。たとえば、アプリケーションが、Ｌｉｎｕｘ（Ｒ）、Ｓｙｍｂｉａｎ（Ｒ）、ＭＳ  Ｗｉｎｄｏｗｓ（Ｒ）、Ａｎｄｒｏｉｄ（Ｒ）、または類似物などのオペレーティング・システムである場合には、アプリケーションが、複数の別個のアプリケーションからなる場合がある。各アプリケーションの実行に関連する論理特性または環境特性あるいはその両方が、アプリケーション監視ストレージ２０に記録される。環境特性は、デバイスの周囲の周囲温度、チップの温度、回路電圧、デバイス電圧、電力消費、動作周波数、または環境に影響する他の入手可能な情報、あるいはその組合せを含むことができる。論理特性は、特定の回路要素への動作もしくは命令のマッピング、アプリケーション使用の順序もしくは頻度、または類似物を含むことができる。たとえば、１つの例示的実施形態では、回路要素１  ６０が所与の構成の下で実行する論理機能が、監視され、アプリケーション監視ストレージ２０に格納される。
【００２８】
コントローラ５０は、しきい値サブミッション判断基準に達し、またはこれを超え、あるいはその両方であるときに、アプリケーション監視ストレージ２０からアプリケーション監視情報を取り出す。しきい値サブミッション判断基準は、特定の時間期間、監視情報の量、特定の監視される値が指定された範囲内になること、またはさまざまな組合せあるいはその両方など、多数の形で指定することができる。しきい値サブミッション判断基準に達した後に、コントローラ５０は、監視情報を通信リンク９９を介し入出力回路９０を介して外部要素（図示せず）に転送する。
【００２９】
さまざまな例示的実施形態では、通信リンク９９を、インターネット接続、無線リンク、または監視情報を外部要素（図示せず）に通信することができる任意の他のタイプの通信リンクとすることができる。
【００３０】
組み込まれた動的に再構成可能な自己監視回路１００の構成レジスタ４０にロードされる後続構成は、アプリケーション監視ストレージ２０からの解釈された監視情報に基づいて、回路要素１〜３  ６０〜８０のうちの１つまたは複数を第１論理動作から第２論理動作に再割振りする。
【００３１】
その後、新しい構成のアプリケーション監視が継続される。その後、外部要素は、動的に再構成可能な自己監視回路を再構成するのに使用される新しい構成を判定する。
【００３２】
図３は、本発明の態様による第２の例示的な動的に再構成可能な自己監視回路１０１の概観である。第２の例示的な動的に再構成可能な自己監視回路１０１は、それぞれ入出力回路９１を介して通信リンク９９および外部要素（図示せず）に接続される、アプリケーション監視回路１１、アプリケーション監視ストレージ２１、しきい値サブミッション判断基準ストレージ３１、構成レジスタ４１、コントローラ５１、ＣＰＵ回路要素６１、メモリ回路要素７１、ＤＳＰ回路要素８１からなる。
【００３３】
コントローラ５１は、しきい値サブミッション判断基準ストレージ３１からしきい値サブミッション判断基準を取り出す。しきい値サブミッション判断基準は、格納された監視情報またはデータが通信リンク９９を介して外部要素（図示せず）に通信されるときを決定する。
【００３４】
コントローラ５１は、構成レジスタから現在の構成を取り出す。現在の構成または第１構成は、以前に構成レジスタに格納されたものとすることができる。本発明によるさまざまな実施形態では、構成レジスタは、第２の例示的な動的に再構成可能な自己監視回路１０１の現在の構成を反映する。
【００３５】
コントローラ５１は、構成レジスタに基づいて、ＣＰＵ回路要素６１、メモリ回路要素７１、およびＤＳＰ回路要素８１を構成する。一実施形態では、メモリ回路要素７１の一部は、第２の例示的な動的に再構成可能な自己監視回路１０１が組み込まれるデバイスによって使用されるコーデックに関連する最適化された値を含む。メモリ回路要素７１の一部に格納された最適化された値は、必要に応じて動的に更新される。すなわち、デバイスの使用が変化したとき、性能を改善する、コーデックに関連する異なる最適化された値が選択される。動的に再構成可能な自己監視回路内の構成レジスタは、デバイス・レベルでの追加の一体化作業を必要とせずに、これらの新しい最適化された値を、第２の例示的な動的に再構成可能な自己監視回路１０１に動的に関連付けることを可能にする。
【００３６】
コントローラ５１は、コストを下げるのを助ける標準コンポーネントの使用を容易にしながら、特定のアプリケーション要件に基づく第２の例示的な動的に再構成可能な自己監視回路１０１の一体化およびカスタマイゼーションを容易にする。
【００３７】
コントローラ５１は、１つまたは複数のアプリケーションをロードし、実行する。アプリケーションは、オペレーティング・システムまたは別個のアプリケーションを含むことができる。アプリケーション監視回路１１は、アプリケーションの環境特性および機能特性を監視する。アプリケーション監視回路１１は、電圧センサ、温度センサ、または他のセンサを利用して、環境特性を判定することができる。しかし、本発明によるさまざまな実施形態で、全地球測位システム（ＧＰＳ）または他のロケーション情報が、監視され、外部で累算される位置によってタグ付けされた情報と組み合わされることを了解されたい。たとえば、周囲温度または他の時間的に順序付けられる環境特性および位置タグ付けされる環境特性を、外部センサから判定し、デバイスに関連するＧＰＳ情報および時間情報と組み合わせることができる。したがって、動的に再構成可能な自己監視回路が組み込まれるデバイスを、極端な環境での動作のためにより簡単に最適化することができる。
【００３８】
図４は、本発明の態様による第３の例示的な動的に再構成可能な自己監視回路１０２および外部要素２００の概観である。第３の例示的な動的に再構成可能な自己監視回路１０２は、第１構成の下でアプリケーションをロードし、実行する。実行されるアプリケーションの環境特性および機能特性が、監視され、アプリケーション監視データまたはアプリケーション監視情報として格納される。格納されたアプリケーション監視情報またはアプリケーション監視データは、指定されたしきい値サブミッション判断基準に達するときに、第３の例示的な動的に再構成可能な自己監視回路１０２から外部要素２００に転送される。しきい値サブミッション判断基準は、しきい値サブミッション判断基準が満足される前に満足されなければならない１つまたは複数の特定の属性、値、または属性および値のパターン、あるいはその組合せを指定することができる。
【００３９】
外部要素２００は、通信リンク９９を介して第３の例示的な動的に再構成可能な自己監視回路１０２からアプリケーション監視データを受け取る。外部要素２００は、格納されたアプリケーション監視情報またはアプリケーション監視データを解釈する。本発明によるさまざまな例示的実施形態では、格納されたアプリケーション監視情報は、さまざまな候補構成の動作をシミュレートするのに使用される。その後、指定された判断基準を満足する好ましい構成が、候補構成から選択される。指定された選択判断基準を、クライアントまたはユーザあるいはその両方に合わせてさらにカスタマイズできることを了解されたい。したがって、クライアント（動的に再構成可能な自己監視回路１０２が組み込まれるデバイスの製造業者など）は、電力消費（またはコスト）を減らすか製品寿命を延ばす構成更新だけを要求し、または認可し、あるいはその両方を行うことができる。対照的に、認可されたエンドユーザは、高められた性能または類似物のために電力消費をトレードオフする構成更新を要求することができる。
【００４０】
更新プロセスを容易にするために、構成更新を暗号化し、または構成更新にディジタル署名し、あるいはその両方を行うことができる。さらに、動的に再構成可能な自己監視回路１０２を、１つまたは複数のポリシに基づいて、提供される更新のうちの一部またはすべてを受け入れるか、いずれをも受け入れないように構成することができる。したがって、１つの例示的実施形態では、第３の例示的な動的に再構成可能な自己監視回路１０２は、ホスト・デバイスの製造業者、第３の例示的な動的に再構成可能な自己監視回路１０２の製造業者、サービス・プロバイダ、コンテンツ・プロバイダ、またはサード・パーティ更新プロバイダ、あるいはその組合せと通信するように事前に構成される。
【００４１】
図５は、本発明の態様による例示的な外部要素２０１である。例示的な外部要素２０１は、それぞれが入出力回路２１０を介して通信リンク９９に接続された、アプリケーション監視ストレージ２２０、コントローラ２３０、シミュレータ／インタープリタ回路２４０、構成要素回路２５０を含む。
【００４２】
コントローラ２３０は、入出力回路２１０をアクティブ化して、通信リンク９９を介して再構成可能な自己監視回路からアプリケーション監視情報を受け取る。コントローラは、アプリケーション監視情報をアプリケーション監視ストレージ２２０に格納する。その後、コントローラ２３０は、シミュレータ／インタープリタ回路２４０をアクティブ化して、アプリケーション監視ストレージ２２０に格納されたアプリケーション監視情報に基づいて、再構成可能な自己監視デバイスの候補構成を判定する。本発明によるさまざまな例示的実施形態では、環境特性および機能特性が、識別され、再構成可能な自己監視回路の再構成または最適化あるいはその両方の識別を容易にするのに使用される。
【００４３】
シミュレーションが、制約に基づいて実行された後に、第２のまたは後続の構成が、シミュレーション結果に基づいて構成要素回路２５０によって選択される。
【００４４】
第２のまたは後続の構成は、オプションで署名され、または暗号化され、あるいはその両方を行われ、入出力回路２１０によって通信リンク９９を介して動的に再構成可能な自己監視デバイス（図示せず）に転送される。上で説明したさまざまな回路を、本発明の趣旨または範囲から逸脱せずに、回路またはプロセッサ内のサブルーチンとして実施できることを了解されたい。
【００４５】
図６は、本発明の態様による集積回路を動的に再構成／最適化し、自己監視する方法の例示的な流れ図である。このプロセスは、ステップＳ１００で開始され、ここで、しきい値サブミッション判断基準を判定する。その後、このプロセスは、ステップＳ１１０に継続し、ここで、アプリケーションの実行を監視する。監視は、デバイス内で実行されるアプリケーションの環境特性および機能特性を含む。アプリケーション監視を開始した後に、制御は、ステップＳ１２０に継続する。
【００４６】
ステップＳ１２０では、最適化または構成あるいはその両方が外部要素から受け取られたかどうかに関する判定を行う。最適化および構成変更は、動的に再構成可能な自己監視デバイス内でアプリケーションがどのように実行するのかに対する変更、機能要素がタスクを達成するために割り振られる形における変更、または類似物を反映する。ステップＳ１２０で、構成または最適化あるいはその両方が受け取られなかったと判定される場合には、制御はステップＳ１４０に継続し、そうでない場合には、制御はステップＳ１３０にジャンプする。
【００４７】
構成データまたは最適化データあるいはその両方は、ステップＳ１３０でプログラマブル回路要素の構成を更新するのに使用される。その後、制御はステップＳ１１０にジャンプする。ステップＳ１１０〜Ｓ１３０は、ステップＳ１２０でさらなる更新が受け取られなかったと判定されるまで繰り返される。その後、制御はステップＳ１４０にジャンプする。
【００４８】
ステップＳ１４０では、アプリケーション監視情報を格納する。その後、制御はステップＳ１５０に継続し、ここで、しきい値サブミッション判断基準が満足されたかどうかを判定する。しきい値サブミッション判断基準は、１つまたは複数の属性値対、値の範囲、属性値対、または範囲のシーケンス、あるいはその組合せ、ならびに類似物とすることができる。しきい値サブミッション判断基準が満足されていない場合には、制御はステップＳ１１０にジャンプし、そうでない場合には、制御はステップＳ１６０に継続する。
【００４９】
ステップＳ１６０では、アプリケーション監視情報を外部要素に転送し、制御はステップＳ１１０にジャンプする。
【００５０】
図７は、本発明の態様による集積回路を動的に再構成し、最適化する方法の例示的な流れ図である。制御は、ステップＳ２１０で、本発明による動的に再構成可能な自己監視回路からのアプリケーション監視情報を待つことによって開始される。制御は、アプリケーション監視情報が受け取られるときに、ステップＳ２２０に進む。アプリケーション監視情報は、動的に再構成可能な自己監視回路の実行に関連する環境特性および機能特性を反映する。
【００５１】
たとえば、アプリケーション監視情報は、温度、電圧、動作周波数、または動的に再構成可能な自己監視回路での１つまたは複数のアプリケーションの実行中に識別される他の環境特徴を含むことができるが、これらに限定はされない。アプリケーション監視情報は、アプリケーションによって実行される命令、ホスト・デバイスのディスプレイ内で呼び出されるグラフィック要素のタイプおよび頻度などのアプリケーションの詳細、ならびに類似物をも含むことができる。いくつかのタイプの機能情報は、どのハードウェアまたは回路要素が最も頻繁に使用されているのかを識別するのに使用される。より低い頻度で使用される回路要素を、後の解釈ステップまたはシミュレーション・ステップあるいはその両方の間の機能再構成の候補として識別することができる。
【００５２】
その後、制御はステップ２３０に継続し、ここで、アプリケーション監視情報を受け取ったかどうかに関する判定を行う。アプリケーション監視情報が受け取られなかった場合には、制御はステップＳ２１０にジャンプする。その後、アプリケーション監視情報が受け取られるまで、ステップＳ２１０〜Ｓ２２０が繰り返される。その後、制御はステップ２４０に継続する。
【００５３】
ステップＳ２４０では、アプリケーション監視情報を解釈し、シミュレートする。本発明によるさまざまな例示的実施形態では、解釈は、異なるタイプのアプリケーション監視情報を統合する。たとえば、動的に再構成可能な自己監視回路の電力消費を温度情報と組み合わせて、バッテリ電源がより高い周囲温度で不完全に動作することを示すことができる。したがって、デバイス内に組み込まれた回路がこれらの極端な周囲温度にさらされるときに、このタイプの環境でのアプリケーションの実行を改善する構成更新を、動的に再構成可能な自己監視回路に納入することができる。アプリケーション監視情報が解釈された後に、制御はステップＳ２５０に継続する。
【００５４】
ステップＳ２５０では、アプリケーション監視情報、動的に再構成可能な自己監視回路、および１つまたは複数のオプションのルールまたはポリシに基づいて、新しい構成／最適化を判定する。１つの例示的実施形態では、候補構成のセットが、格納されたアプリケーション監視情報に基づいて、シミュレーション内でテストされる。その後、シミュレーションの下でテストされ、１つまたは複数のオプションのポリシと一貫する構成が選択される。
【００５５】
たとえば、オプションのポリシは、実行されるシミュレーションのタイプまたは提案される構成／最適化あるいはその両方を、アカウンティング・メトリック、サービスのクラス、またはさまざまな他のパラメータに基づいて制限することができる。新しい構成／最適化が選択された後に、制御はステップＳ２６０に継続する。
【００５６】
ステップＳ２６０では、新しい構成／最適化を動的に再構成可能な自己監視回路に送る。その後、制御はステップＳ２１０にジャンプし、ステップＳ２１０〜Ｓ２６０が、同一のまたは別の動的に再構成可能な自己監視回路について繰り返される。
【００５７】
上では、監視情報を暗号化し、または監視情報にディジタル署名し、あるいはその両方を行うことができる。さらに、第２の構成は、アプリケーションの実行の監視を調整することもできる。この方法は、新しい構成について外部要素をポーリングすることもでき、コンピュータ化されたデバイスによって第２構成の諸部分を選択的に受け入れることができる。外部要素は、集積回路と同一のチップ上にまたは集積回路の外部のチップ上に配置することができる。変換を、集積回路の製造業者または集積回路をデバイスに組み込む製品の製造業者によって決定されるポリシに基づくものとすることができる。
【００５８】
図８は、本発明の実施形態を実施するのに使用できる例示的なハードウェア環境を示す概略図である。動的に再構成可能な自己監視回路を、生ウェハの形のチップとして（すなわち、複数の未パッケージ化チップを有する単一のウェハとして）、ベア・ダイとして、またはパッケージ化された形で製造者によって配布することができる。後者の場合に、チップは、単一チップ・パッケージ（マザーボードまたは他の上位レベル・キャリアに固定されるリードを伴うプラスティック・キャリアなど）内に、またはマルチチップ・パッケージ（表面相互接続または埋め込み相互接続のいずれかまたは両方を有するセラミック・キャリアなど）内に取り付けられる。どの場合でも、チップは、（ａ）マザーボードなどの中間製品または（ｂ）最終製品のいずれかの一部として、他のチップ、ディスクリート回路要素、または他の信号処理デバイス、あるいはその組合せと一体化される。最終製品は、集積回路チップを含む、玩具および他のローエンド応用例からディスプレイ、キーボードまたは他の入力デバイス、および中央プロセッサを有する高度なコンピュータ製品までの範囲にわたる任意の製品とすることができる。
【００５９】
本発明の実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素との両方を含む実施形態の形をとることができる。好ましい実施形態では、本発明は、ソフトウェアで実施され、このソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定はされない。
【００６０】
さらに、本発明の実施形態は、コンピュータまたは任意の命令実行システムによるまたはそれに関連する使用のためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形をとることができる。この説明において、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによるまたはそれに関連する使用のためのプログラムを含み、格納し、通信し、伝搬させ、または搬送することのできるすべての装置とすることができる。
【００６１】
媒体は、電子システム、磁気システム、光システム、電磁システム、赤外線システム、または半導体システム（または装置もしくはデバイス）あるいは伝搬媒体とすることができる。コンピュータ可読媒体の例は、半導体メモリまたはソリッド・ステート・メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、リジッド磁気ディスク、および光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク−読取り専用メモリ（ＣＤ−ＲＯＭ）、書換可能コンパクト・ディスク（ＣＤ−Ｒ／Ｗ）、およびＤＶＤを含む。
【００６２】
プログラム・コードを格納し、または実行し、あるいはその両方を行うのに適切なデータ処理システムは、システム・バスを介してメモリ要素に直接にまたは間接に結合された少なくとも１つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、バルク・ストレージ、および実行中にコードをバルク・ストレージから取り出さなければならない回数を減らすために少なくともいくつかのプログラム・コードの一時ストレージを提供するキャッシュ・メモリを含むことができる。
【００６３】
入出力デバイス（キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定はされない）を、直接にまたは介在する入出力コントローラを介してのいずれかでシステムに結合することができる。ネットワーク・アダプタをもシステムに結合して、データ処理システムが介在する私有網または公衆網を介して他のデータ処理システム、リモート・プリンタ、またはリモート・ストレージ・デバイスに結合されることを可能にすることができる。モデム、ケーブル・モデム、およびイーサネット・カードが、現在使用可能なタイプのネットワーク・アダプタのうちのいくつかである。
【００６４】
本発明のさまざまな実施形態を実践するための代表的なハードウェア環境を、図８に示す。この概略図は、本発明の態様による情報処理／コンピュータ・システムのハードウェア構成を示す。このシステムは、少なくとも１つのプロセッサ、コンピュータ化されたデバイス、または中央処理装置（ＣＰＵ）６１０を含む。ＣＰＵ  ６１０は、システム・バス６１２を介して、ランダム・アクセス・メモリ（ＲＡＭ）６１４、読取り専用メモリ（ＲＯＭ）６１６、および入出力アダプタ６１８などのさまざまなデバイスに相互接続される。入出力アダプタ６１８を、ディスク・ユニット６１１およびテープ・ドライブ６１３などの周辺デバイスまたはシステムによって読取り可能な他のプログラム・ストレージ・デバイスに接続することができる。このシステムは、プログラム・ストレージ・デバイス上の発明的命令を読み取り、これらの命令に従って、本発明の実施形態の方法論を実行することができる。このシステムは、さらに、ユーザ入力を収集するために、キーボード６１５、マウス６１７、スピーカ６２４、マイクロホン６２２、またはタッチ・スクリーン・デバイス（図示せず）などの他のユーザ・インターフェース・デバイス、あるいはその組合せをシステム・バス６１２に接続するユーザ・インターフェース・アダプタ６１９を含む。さらに、通信アダプタ６２０は、システム・バス６１２をデータ処理ネットワーク６２５に接続し、ディスプレイ・アダプタ６２１は、システム・バス６１２をディスプレイ・デバイス６２３に接続し、ディスプレイ・デバイス６２３は、たとえばモニタ、プリンタ、または送信器などの出力デバイスとして実施することができる。
【符号の説明】
【００６５】
１０  アプリケーション監視回路
１１  アプリケーション監視回路
２０  アプリケーション監視ストレージ
２１  アプリケーション監視ストレージ
３０  しきい値サブミッション判断基準ストレージ
３１  しきい値サブミッション判断基準ストレージ
４０  構成レジスタ
４１  構成レジスタ
５０  コントローラ
５１  コントローラ
６０  回路要素１
６１  ＣＰＵ回路要素
７０  回路要素２
７１  メモリ回路要素
８０  回路要素３
８１  ＤＳＰ回路要素
９０  入出力回路
９１  入出力回路
９９  通信リンク
１００  動的に再構成可能な自己監視回路
１０１  動的に再構成可能な自己監視回路
１０２  動的に再構成可能な自己監視回路
２００  外部要素
２０１  外部要素
２１０  入出力回路
２２０  アプリケーション監視ストレージ
２３０  コントローラ
２４０  シミュレータ／インタープリタ回路
２５０  構成要素回路
３００  動的に再構成可能な自己監視回路
３１０  監視データ・メモリ
３２０  通信ブロック
３３０  機能／環境監視回路
３４０  コントローラ
６１０  中央処理装置（ＣＰＵ）
６１１  ディスク・ユニット
６１２  システム・バス
６１３  テープ・ドライブ
６１４  ランダム・アクセス・メモリ（ＲＡＭ）
６１５  キーボード
６１６  読取り専用メモリ（ＲＯＭ）
６１７  マウス
６１８  入出力アダプタ
６１９  ユーザ・インターフェース・アダプタ
６２０  通信アダプタ
６２１  ディスプレイ・アダプタ
６２２  マイクロホン
６２３  ディスプレイ・デバイス
６２４  スピーカ
６２５  データ処理ネットワーク
【図１】
0005571518.tif 000002
【図２】
0005571518.tif 000003
【図３】
0005571518.tif 000004
【図４】
0005571518.tif 000005
【図５】
0005571518.tif 000006
【図６】
0005571518.tif 000007
【図７】
0005571518.tif 000008
【図８】
0005571518.tif 000009