(57)【特許請求の範囲】
【請求項１】
ハードウェアにより実現されるプロセッサシステムに結合されるプログラマブル回路を備える集積回路内の電力消費を調整する方法であって、
前記方法は、
前記プロセッサシステムと前記集積回路の前記プログラマブル回路とを動作モードに置くステップを備え、
前記プロセッサシステムは、プログラムコードを実行するように構成されるコアと、前記プログラマブル回路に結合されるインタフェイスとを備え、
前記インタフェイスは、前記プロセッサシステムと前記プログラマブル回路との間でデータを伝送するように構成され、
前記方法は、
前記プロセッサシステムが前記動作モードにとどまる間、前記プロセッサシステムの制御のもと、前記プログラマブル回路内のパワーオフ処理を開始するステップをさらに備え、前記プログラマブル回路は、前記プロセッサシステムがパワーオフされることなくパワーオフされるように構成され、
前記方法は、
前記プロセッサシステムの制御のもと前記プログラマブル回路をパワーオンするステップと、
複数の回路の１つを有する前記プログラマブル回路の一部を構成するステップとをさらに備え、前記複数の回路は、前記複数の回路の電力プロファイルに対応して前記プロセッサシステムによって選択され、前記複数の回路の各々は、機能的に等価でありかつ異なる電力プロファイルを有する、方法。
【請求項２】
前記プログラマブル回路の前記パワーオフ処理が完了したことの決定に応じて、前記プロセッサシステムの制御のもと前記プログラマブル回路から電力を切り離すステップをさらに備える、請求項１に記載の方法。  
【請求項３】
前記プログラマブル回路のパワーオフに優先して前記プログラマブル回路内に実現される回路の状態情報を決定するステップと、
前記集積回路内に配置されるメモリ内に前記状態情報を記憶するステップとをさらに備える、請求項１または請求項２に記載の方法。
【請求項４】
前記プロセッサシステム内に配置されるメモリ内に前記状態情報を記憶するステップをさらに備え、前記メモリは前記プロセッサシステムのオンチップメモリであり、
前記方法は、前記プロセッサシステムの制御のもと前記プログラマブル回路をパワーオンするステップと、
前記プログラマブル回路内で実現される回路内に状態情報を復元するステップとをさら
に備える、請求項３に記載の方法。
【請求項５】
前記プロセッサシステムの制御のもと前記プログラマブル回路をパワーオンするステップをさらに備え、前記プログラマブル回路は第１回路を備え、
前記方法は、前記プログラマブル回路内の第２回路を実現するために前記プログラマブル回路の少なくとも一部を構成するステップをさらに備える、請求項１から請求項４のいずれか１項に記載の方法。
【請求項６】
集積回路であって、
プログラムコードを実行するように構成されるコアとインタフェイスとを含むプロセッサシステムを備え、前記プロセッサシステムはハードウェアにより実現され、
前記集積回路は、前記インタフェイスを介して前記プロセッサシステムに結合されるプログラマブル回路をさらに備え、
前記プログラマブル回路は、異なる物理回路を実現するように構成され、
前記インタフェイスは、前記プログラマブル回路と前記プロセッサシステムとの間でデータを転送し、
前記プログラマブル回路は、前記プロセッサシステムがパワーオフされることなくパワーオフされ、前記プロセッサシステムの制御のもとパワーオフされるように構成され、
前記プロセッサシステムは、複数の機能的に等価な回路の各々の性能プロファイルに応じて前記複数の機能的に等価な回路から回路を選択し、かつ前記プログラマブル回路内で前記選択された回路を実現するように前記プログラマブル回路の設定を開始するように構成される、集積回路。
【請求項７】
アナログディジタル変換を実行するように構成されるシステムモニタをさらに備え、前記システムモニタは、前記プロセッサシステムに直接結合される、請求項６に記載の集積回路。
【請求項８】
前記プログラマブル回路が前記パワーオフ処理を完了したことの決定に応じて、前記プロセッサシステムは、前記プログラマブル回路から電力を切り離すために電源スイッチに信号を送る、請求項６または請求項７に記載の集積回路。
【請求項９】
前記プロセッサシステムは、前記プログラマブル回路のパワーオフに優先して前記プログラマブル回路内に実現される回路の動作状態を決定し、かつ前記集積回路内に配置されるメモリ内に、前記プログラマブル回路の動作状態を特定する状態情報を記憶するように構成される、請求項６から請求項８のいずれか１項に記載の集積回路。
【請求項１０】
前記プロセッサシステムは、前記プログラマブル回路をパワーオンし、かつ前記記憶された前記状態情報に対応する前記プログラマブル回路の動作状態を復元するように構成される、請求項９に記載の集積回路。
【請求項１１】
前記プロセッサシステムと前記プログラマブル回路との間でシステムレベル信号を通過させるように構成される第１レベルシフタと、
前記プロセッサシステムと前記プログラマブル回路との間でユーザ信号を通過させるように構成される第２レベルシフタとをさらに備え、
前記第１レベルシフタと前記第２レベルシフタは独立に作動可能である、請求項６から請求項１０のいずれか１項に記載の集積回路。
【請求項１２】
前記プログラマブル回路は、
前記プログラマブル回路に設けられる電源の電圧レベルが、前記プログラマブル回路の動作に必要な所定の電圧レベルに到達したことを検出するように構成されるレベル検出回路とを含み、
前記レベル検出回路は、前記電源の前記電圧レベルが前記所定の電圧レベルに到達したことの検出に応じてただちに前記プロセッサシステムに信号を送る第１モードで、または前記電源の電圧レベルが前記所定の電圧レベルに到達した後所定量の時間の満了に応じてただちに前記プロセッサシステムに信号を送る第２モードで動作するように構成可能である、請求項６から請求項１０のいずれか１項に記載の集積回路。
【請求項１３】
前記複数の回路の各々の前記性能プロファイルは、電力消費情報を含み、前記プロセッサシステムは、電力消費要求に対応する性能プロファイルを有する前記回路を選択する、請求項６から請求項１２のいずれか１項に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この明細書中に開示される１つ以上の実施例は、集積回路（ＩＣ：integrated circuit）に関する。より特定的には、１つ以上の実施例は、プロセッサシステムとプログラマブル回路とを含むＩＣ内の電力マネジメントに関する。
【背景技術】
【０００２】
集積回路（ＩＣ）は、特定の機能を実行するために実現される。１つのタイプのＩＣは、たとえば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：field programmable gate array）のようなプログラマブルＩＣである。ＦＰＧＡは、典型的には、プログラマブルタイルのアレイを含む。これらのプログラマブルタイルは、たとえば、入力／出力ブロック（ＩＯＢ）、論理ブロック配列（ＣＬＢ）、専用ランダムアクセスメモリブロック（ＢＲＡＭ）、乗算器、ディジタル信号処理ブロック（ＤＳＰ）、プロセッサ、クロックマネージャ、遅延ロックループ（ＤＬＬ）などを含み得る。
【０００３】
プログラマブルタイルの各々は、典型的には、プログラマブル相互接続回路と、プログラマブル論理回路とを含む。プログラマブル相互接続回路は、典型的には、プログラマブル相互接続ポイント（ＰＩＰ）によって相互接続される可変長の多数の相互接続ラインを含む。プログラマブル論理回路は、たとえば、関数生成器、レジスタ、論理演算などを含み得るプログラマブル素子を使用するユーザ設計の論理を実現する。
【０００４】
プログラマブル相互接続回路とプログラマブル論理回路とは、典型的には、プログラマブル要素がどのように設定されるかを定める内部設定メモリセル内に設定データのストリームをローディングすることによりプログラムされる。設定データは、メモリから（たとえば外部のＰＲＯＭから）読み出され、または、外部デバイスによってＦＰＧＡ内に書き込まれ得る。そして、個々のメモリセルの集合状態は、ＦＰＧＡの機能を決定する。
【０００５】
別のタイプのプログラマブルＩＣは、複合プログラマブル論理デバイス、つまりＣＰＬＤである。ＣＰＬＤは、相互接続スイッチマトリクスによって共にかつ入力／出力（Ｉ／Ｏ）リソースに接続された、２つ以上の「機能ブロック」を含む。ＣＰＬＤの機能ブロックの各々は、プログラマブル論理アレイ（ＰＬＡ）およびプログラマブルアレイ論理（ＰＡＬ）デバイスで使用されるものに類似した、２レベルのＡＮＤ／ＯＲ構造を含む。ＣＰＬＤにおいて、設定データは、典型的には、オンチップ不揮発性メモリに記憶される。幾つかのＣＰＬＤにおいて、設定データは、オンチップ不揮発性メモリに記憶され、そして、初期設定（プログラミング）シーケンスの一部として、不揮発性メモリにダウンロードされる。
【０００６】
これらの全てのプログラマブルＩＣについて、デバイスの機能性は、デバイスに供給されるデータビットによってその目的のために制御される。データビットは、揮発性メモリ（ＦＰＧＡおよび幾つかのＣＰＬＤのように、たとえばスタティックメモリセル）、不揮発性メモリ（幾つかのＣＰＬＤのように、たとえばフラッシュメモリ）、または他のタイプのメモリセルに記憶され得る。
【０００７】
他のプログラマブルＩＣは、デバイスのさまざまな素子をプログラム可能に相互接続する、メタル層のような処理層を適用することによってプログラムされる。これらのプログラマブルＩＣは、マスクプログラマブルデバイスとして知られる。プログラマブルＩＣは、たとえばヒューズあるいはアンチヒューズ技術を使用する他の方法によっても実現され得る。「プログラマブルＩＣ」の語句は、これらのデバイスを含み得る、ただし、これらのデバイスに限定されず、たとえば特定用途向け集積回路（ＡＳＩＣ）を含む部分的にのみプログラム可能なデバイスをも包含し得る。たとえば、プログラマブルＩＣの別のタイプは、ハードコーディングされたトランジスタ論理とプログラム可能にハードコーディングされたトランジスタ論理を相互接続するプログラマブルスイッチファブリックとの組み合わせを含む。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述の多様なＩＣを幾つか含む近代の幾つかのＩＣは、プログラムコードを実行できる組み込みプロセッサを含む。プロセッサは、まとめてＩＣの「プログラマブル回路」として称され、プログラマブル論理回路とプログラマブル相互接続回路とを含む同じダイの一部として製造される。プロセッサ内のプログラムコードの実行は、ＩＣにおいて利用可能なプログラマブル回路の「プログラミング」または「設定」から区別されると理解されるべきである。設定データを使用するＩＣのプログラマブル回路のプログラミングまたは設定の行為は、プログラマブル回路内の異なる物理回路の実現をもたらす。たとえばプログラマブルＩＣとプロセッサとを有する複合ＩＣ内で、電力マネジメントは重大な問題であり得る。
【課題を解決するための手段】
【０００９】
この明細書中の１つ以上の実施例は、集積回路（ＩＣ）に関し、より特定的には、プロセッサシステム（ＰＳ）とプログラマブル回路とを含むＩＣ内の電力マネジメントに関する。
【００１０】
集積回路内の電力消費を調整する方法の実施例は、ハードウェアにより実現されるプロセッサシステムに結合されたプログラマブル回路を備える。方法は、集積回路のプロセッサシステムとプログラマブル回路とを動作モードに置くステップと、プロセッサシステムが動作モードにとどまる間プロセッサシステムの制御のもとプログラマブル回路内のパワーオフ処理を開始するステップとを備える。プログラマブル回路はプロセッサシステムと独立にパワーオフされるように構成され得る。
【００１１】
この実施例の１つの局面において、方法は、プロセッサシステムの制御のもとプログラマブル回路のパワーオフ処理が完了したことの決定に応じてプログラマブル回路から電力を切り離すステップをさらに備え得る。
【００１２】
この実施例の別の局面において、方法は、プログラマブル回路内に実現された回路の状態情報をプログラマブル回路のパワーオフに優先して決定し、状態情報をメモリ内に記憶するステップをさらに備え得る。
【００１３】
この実施例のさらに別の局面において、方法は、状態情報をプロセッサシステム内のメモリ内に記憶するか、プロセッサシステムの制御のもとプログラマブル回路をパワーオンするか、または、状態情報をプログラマブル回路内に実現された回路内に復元するステップをさらに備え得る。
【００１４】
この実施例の別の局面において、方法は、プロセッサシステムの制御のもと第１回路を備えるプログラマブル回路をパワーオンするステップと、プログラマブル回路の少なくとも一部がプログラマブル回路内において第２回路を実現するように構成するステップとをさらに備え得る。
【００１５】
さらにこの実施例の別の局面において、方法は、プロセッサシステムの制御のもとプログラマブル回路をパワーオンするステップと、各々が機能的に等価であり異なる電力プロファイルを有する複数の回路の電力プロファイルに対応して選択される複数の回路の一つを有するプログラマブル回路の少なくとも一部を構成するステップとを備え得る。
【００１６】
集積回路の実施例は、ハードウェアにより実現されプログラムコードを実行するように構成されるプロセッサシステムと、プロセッサシステムに結合されて異なる物理回路を実現するプログラマブル回路とを備え得る。プログラマブル回路はプロセッサシステムと独立にプロセッサシステムの制御のもとパワーオフされるように構成され得る。
【００１７】
この実施例の１つの局面において、集積回路は、アナログ−ディジタル変換を実行するように構成されるシステムモニタをさらに備える。システムモニタは、プロセッサシステムに直接結合される。
【００１８】
この実施例の別の局面において、プログラマブル回路がパワーオフ処理を完了したことの決定に応じて、プロセッサシステムは、パワーサプライスイッチに信号を送りプログラマブル回路から電力を切り離す。
【００１９】
さらにこの実施例の別の局面において、プロセッサシステムは、プログラマブル回路のパワーオフに優先してプログラマブル回路内に実現された回路の動作状態を決定し、かつメモリ内に、プログラマブル回路の動作状態を特定する状態情報を記憶するように構成され得る。
【００２０】
この実施例の別の局面において、プロセッサシステムは、コアと、内部メモリとを含み得る。コアは、プロセッサシステムの内部メモリ内に状態情報を記憶するように構成され得る。
【００２１】
さらにこの実施例の別の局面において、プロセッサシステムは、プログラマブル回路をパワーオンし、記憶された状態情報に対応するプログラマブル回路の動作状態を復元するように構成され得る。
【００２２】
この実施例の別の局面において、第１レベルシフタは、プロセッサシステムとプログラマブル回路との間にシステムレベル信号を通過させるように構成され得る。第２レベルシフタは、プロセッサシステムとプログラマブル回路との間にユーザシグナルを通過させるように構成され得る。第１レベルシフタと第２レベルシフタは、独立に作動可能であり得る。
【００２３】
さらにこの実施例の別の局面において、プロセッサシステムは、プログラマブル回路の少なくとも一部を構成するための要求に応じて低電力モードからアウェイクされるように構成され得る。
【００２４】
この実施例の別の局面において、プログラマブル回路は、プログラマブル回路に与えられる電源の電圧レベルがプログラマブル回路の動作に必要な予め定められた電圧レベルに到達したことを検出するように構成されたレベル検出回路を備え得る。レベル検出回路は、電力サプライの電圧レベルが予め定められた電圧レベルに到達したことの検出に応じてただちにプロセッサシステムに信号を送る第１モードで、または電源の電圧レベルが予め定められた電圧レベルに到達した後予め定められた量の時間の満了に応じてただちにプロセッサシステムに信号を送る第２モードで動作するように構成可能であり得る。
【００２５】
この実施例の別の局面において、プロセッサシステムは、複数の機能的に等価な回路の各々の性能プロファイルに対応する複数の機能的に等価な回路から回路を選択し、かつプログラマブル回路内に選択された回路を実現するようにプログラマブル回路の構成を開始するように構成され得る。
【００２６】
この実施例の別の局面において、複数の回路の各々の性能プロファイルは、電力消費情報を備え得る。プロセッサシステムは、電力消費要求に対応する性能プロファイルを有する回路を選択し得る。
【００２７】
集積回路の別の実施例は、ハードウェアにより実現されプログラムコードを実行するように構成されるプロセッサシステムと、異なる物理回路を実現するように構成可能なプログラマブル回路とを備える。プログラマブル回路は、プロセッサシステムに結合されるとともにプロセッサシステムの制御のもとパワーオフ処理を実現するように構成され得る。プロセッサシステムは、複数の機能的に等価な回路の各々の性能プロファイルに対応する複数の機能的に等価な回路から回路を選択し、かつプログラマブル回路内の選択された回路を実現するためにプログラマブル回路の構成を開始するように構成され得る。
【００２８】
この実施例の１つの局面において、複数の回路の各々の性能プロファイルは、電力消費情報を備え得る。プロセッサシステムは、電力消費要求に対応する性能プロファイルを有する回路を選択し得る。
【図面の簡単な説明】
【００２９】
【図１】この明細書中に開示される実施例に従う集積回路（ＩＣ）のアーキテクチャを説明する第１ブロック図である。
【図２】この明細書中に開示される別の実施例に従うＩＣを説明する第２ブロック図である。
【図３】この明細書中に開示される別の実施例に従うパワーマネジメントのために構成されるシステムを説明する第３ブロック図である。
【図４】この明細書中に開示される別の実施例に従うＩＣのための電力マネジメントの方法を説明する第１フローチャートである。
【図５】この明細書中に開示される別の実施例に従うＩＣのための電力マネジメントの方法を説明する第２フローチャートである。
【図６】この明細書中に開示される別の実施例に従うＩＣのための電力マネジメントの方法を説明する第３フローチャートである。
【発明を実施するための形態】
【００３０】
図面の詳細な説明
この明細書は新規とみなされる１つ以上の実施例の特徴を定める請求項で終えるが、１つ以上の実施例は、図面と併せた記載を考慮することによってさらによく理解されると思われる。要求されるように、１つ以上の実施例が、この明細書中に開示される。しかし、１つ以上の実施例は、単に例示であると理解されるべきである。そのため、この明細書中に開示される特定の構造および機能的な詳細は、限定解釈されず、単に請求項の根拠として、かつ、実質的に任意の適切な詳細構成における１つ以上の実施例をさまざまに採用するように当業者に教示するための代表的な根拠として解釈される。さらに、ここで使用される用語および語句は、限定することでなく、ここに開示される１つ以上の実施例の理解可能な説明を与えることを意図する。
【００３１】
この明細書中に開示される１つ以上の実施例は、集積回路（ＩＣ）に関し、より特定的には、１つ以上の実施例は、プロセッサシステムとプログラマブル回路部分とを含むＩＣ内の電力マネジメントに関する。ＩＣは、プログラマブル回路に結合されるプロセッサシステムを含むように実現され得る。一般に、プログラマブル回路は、プロセッサシステムと独立してパワーオンおよびオフされるように構成され得る。プロセッサシステムは、プログラマブル回路の電力サイクリングの管理を遂行するように構成され得る。プロセッサシステムと独立にプログラマブル回路をパワーオフする能力は、電力効率の高い方式でＩＣを機能させる。さらに、プロセッサシステムは、プログラマブル回路がパワーオフのままである間、動作し続けかつプログラムコードの実行を続け得る。
【００３２】
ＩＣの２つのサブシステム、すなわちプロセッサシステムとプログラマブル回路との間の機能的な独立性を与える電力マネジメントにより、プロセッサシステムは、さらに低電力モードまたはスリープモードに置かれ得る。低電力モードからアウェイクすると、プロセッサシステムは、プログラマブル回路内のパワーオン処理を開始するような機能を実行し得る。
【００３３】
プロセッサシステムおよびプログラマブル回路が動作可能なとき、プロセッサシステムは、１つ以上の構成および／またはプログラマブル回路に関連する再構成の機能を開始し得る。プログラマブル回路内の回路を物理的に実現する再構成能力を有するプロセッサシステムの遂行によっては、ＩＣ内に実現されたシステムが、フィールドに展開されオペレーティングしているときでも発展しアップグレードされ続けることができる。
【００３４】
図１は、この明細書中に開示される実施例に従うＩＣのアーキテクチャ１００を説明する第１ブロック図である。アーキテクチャ１００は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：field programmable gate array）タイプのＩＣ内に実現され得る。図示されるように、アーキテクチャ１００は複数の異なるタイプのプログラマブル回路、たとえば論理、のブロックを含む。たとえば、アーキテクチャ１００は、マルチギガビットトランシーバ（ＭＧＴ）１０１と、設定論理ブロック（ＣＬＢ)１０２と、ランダムアクセスメモリブロック（ＢＲＡＭ）１０３と、入力／出力ブロック（ＩＯＢ）１０４と、設定およびクロッキング論理（ＣＯＮＦＩＧ／ＣＬＯＣＫ）１０５と、ディジタル信号処理ブロック（ＤＳＰ)１０６と、専用入力／出力ブロック（Ｉ／Ｏ）１０７（たとえば設定ポートおよびクロックポート）と、ディジタルクロックマネージャ、アナログ−ディジタル変換器、およびシステムモニタリング論理などの他のプログラマブル論理１０８とを含む複数の異なるプログラマブルタイルを含む。
【００３５】
幾つかのプログラマブルＩＣにおいて、プログラマブルタイルの各々は、プログラマブル相互接続素子（ＩＮＴ)１１１を含む。プログラマブル相互接続素子（ＩＮＴ)１１１は、隣接の各々のタイルの対応するＩＮＴ１１１へ／からの、標準化された接続を有する。そのため、ＩＮＴ１１１は、ともに、図示されるＩＣのプログラマブル相互接続構造を実現する。各ＩＮＴ１１１は、図１の上部に含まれる例に示されるように、同じタイル内のプログラマブル論理素子へ／からの、接続も含む。
【００３６】
たとえば、ＣＬＢ１０２は、ユーザ論理に加えて単一のＩＮＴ１１１を実現するようにプログラムされ得るコンフィギュラブル論理素子（ＣＬＥ）１１２を含み得る。ＢＲＡＭ１０３は、１つ以上のＩＮＴ１１１に加え、ＢＲＡＭ論理素子（ＢＲＬ）１１３を含み得る。典型的には、タイル内に含まれるＩＮＴ１１１の数は、タイルの高さに依存する。図示される実施例において、ＢＲＡＭタイルは、ＣＬＢの５倍の高さを有するが、他の数（たとえば４）が使用されてもよい。ＤＳＰタイル１０６は、適切な数のＩＮＴ１１１に加え、ＤＳＰ論理素子（ＤＳＰＬ）１１４を含み得る。ＩＯＢ１０４は、たとえば、１つのＩＮＴ１１１のインスタンスに２つの入力／出力論理素子（ＩＯＬ）１１５のインスタンスを加えたものを含み得る。当業者に明確なように、実際にたとえばＩＯＬ１１５へ接続されるＩ／Ｏパッドは、典型的には、ＩＯＬ１１５に限られない。
【００３７】
図１に示される例において、ダイ中央付近のコラム状の領域（図１のハッチングで示される）は、設定と、クロックと、他の制御論理とに使用される。このコラムから延びる水平領域１０９は、プログラマブルＩＣの幅を横切るクロックおよび設定信号を分配する。
【００３８】
図１に示されるアーキテクチャを利用する幾つかのプログラマブルＩＣは、プログラマブルＩＣの大部分を構成する規則的なコラム状の構造を中断させる追加の論理ブロックを含み得る。追加の論理ブロックは、プログラマブルブロックおよび／または専用回路とすることができる。たとえば、ＰＲＯＣ１１０として示されるプロセッサブロックは、ＣＬＢとＢＲＡＭとの複数のコラムにおよぶ。
【００３９】
ＰＲＯＣ１１０は、ＩＣのプログラマブル回路を実現するダイの一部として製造され、ハードウェアにより実現されるプロセッサとして実現され得る。ＰＲＯＣ１１０は、ことなるさまざまなプロセッサタイプ、および／または、個別のプロセッサ、たとえばプログラムコードを実行可能なシングルコア、から、１つ以上の、コア、モジュール、コプロセッサ、インタフェイス、あるいは同様のものを有するプロセッサシステム全体のような複雑なものに至るまでを表わし得る。
【００４０】
より複雑な配列において、たとえば、ＰＲＯＣ１１０は、たとえば中央処理ユニット、キャッシュメモリ、メモリコントローラ、プログラマブルＩＣのＩ／Ｏピンに直接結合するおよび／またはプログラマブルＩＣのプログラマブル回路に結合するように構成可能な一方向および／または双方向インタフェイスなどの１つ以上のコアを含み得る。「プログラマブル回路」は、ここで記載されるさまざまなプログラム可能なまたは構成可能な回路ブロックまたはタイルを参照し得る。ＩＣにロードされる設定データに従って、さまざまな回路ブロック、タイル、および／または素子を選択的に結合する相互接続回路についても同様である。実施例において、プログラマブル回路は、プログラマブルファブリックとして実現され、あるいは呼ばれ得る。１つ以上のＰＲＯＣ１１０をプログラマブル回路に結合するインタフェイスを使用することにより、ＰＲＯＣ１１０は、ＩＣ全体の電力マネジメント機能を実行する。たとえば、ＰＲＯＣ１１０は、プログラマブル回路の電力サイクリングを制御し得る。加えて、ＰＲＯＣ１１０は、スリープまたは低電力モードに入りそして終了することができる。
【００４１】
図１は、ＩＣを実現するために使用されるアーキテクチャの例を単に説明することが意図されたものである。たとえば、コラム内の論理ブロックの数と、コラムの相対幅と、コラムの数および順序と、コラムに含まれる論理ブロックのタイプと、論理ブロックの相対サイズと、図１の上部に含まれる相互接続／論理の実行例は、単に例示にすぎない。実際のＩＣにおいて、たとえば、ユーザ回路デザインの効率的な実現を促進するために、ＣＬＢの１つ以上の隣接コラムは、典型的には、ＣＬＢが現れるところのどこにでも含まれる。しかし、隣接ＣＬＢコラムの数は、ＩＣの全体のサイズで変わり得る。
【００４２】
図２は、この明細書中に開示される別の実施例に従って構成されるＩＣ２００を説明する第２ブロック図である。ＩＣ２００は、プログラマブル回路２０４に結合されるプロセッサシステム（ＰＳ）２０２を含む任意のさまざまな異なる構成を使用して実現することができる。たとえば、ＩＣ２００は、図１のアーキテクチャ１００と同じあるいは類似したアーキテクチャを使用して実現され得るが、その場合に限られない。一般に、ＩＣ２００は、ＰＳ２０２をプログラマブル回路２０４内に実現される回路に結合するために使用されるさまざまなインタフェイスをより詳細に説明する。
【００４３】
図２に示される例において、ＰＳ２０２は、ＩＣ２００のダイのおよそ三分の二を占めるように図示され、一方でプログラマブル回路２０４は、同じダイのおよそ三分の一を占めるように図示される。図２は、しかし、ＩＣ２００の代表的なスケールを意図しているのではない。むしろ、図２は、例示を目的として与えられ、この明細書内に開示される１つ以上の実施例の限定を意図していない。
【００４４】
一般に、ＰＳ２０２は、ＩＣ２００内にハードウェアにより構成されるシステムとして実現される。ＰＳ２０２内のさまざまな部品やモジュールは、ある程度、矢印を有するライン、たとえば信号または通信のリンクなど、によって結合される。そのような矢印は、制御のフローの方向を説明することを意図する。この点で、方向矢印を有するラインとして図示される信号は、一般に、信号の制御が、ターゲット部品よりも矢印を発するソース部品によってもたらされることを示している。矢印は、一般に、データまたは信号の方向を示すことを意図するものではない。この点で、信号は、方向矢印の存在にかかわらず、双方向信号または通信リンクとして実現され得る。
【００４５】
この明細書中において、同じ参照符号は、端子と、信号ラインと、ワイヤと、それらの一致する信号とを参照するために使用される。この点で、「信号」と、「ワイヤ」と、「接続」と、「端子」と、「ピン」との用語は、随時、この明細書中において、同義に使用されてもよい。「信号」や「ワイヤ」などは、シングルワイヤを介するシングルビットの伝達または複数の並列ワイヤを介する複数の並列ビットの伝達などの１つ以上の信号を表わし得ると認められるべきである。さらに、ワイヤまたは信号の各々は、別掲のとおり、信号またはワイヤによって接続された２つ以上の要素間の双方向通信を表わす場合もあってよい。
【００４６】
示されるように、ＰＳ２０２は、コア複合体２０６を含む。コア複合体２０６は、コア２０８および２１０と、ＤＳＰユニット２１２および２１４と、割り込み要求ユニット（ＩＲＱ）２１６と、スヌープ制御ユニット（ＳＣＵ）２１８とを含む。コア２０８および２１０の各々は、そこに組み込まれたレベル１（Ｌ１）キャッシュ（図示しない）を含み得る。任意のさまざまな異なるタイプのプロセッサコアおよび／またはＤＳＰユニットが使用され得るが、ここに開示される実施例において、コア２０８および２１０の各々は、３２ＫＢの命令キャッシュと３２ＫＢのデータキャッシュとを有するＡＲＭ  Ｃｏｒｔｅｘ（登録商標）−Ａ９タイプのプロセッサコアとして実現され得る。ＤＳＰユニット２１２および２１４は、ＮＥＯＮ（登録商標）メディアおよび／または浮動小数点処理エンジンの形で実現され得る。ＤＳＰユニット２１２および２１４の各々は、１２８ビットのベクトルベースのＤＳＰ機能を与え得る。ＡＲＭ  Ｃｏｒｔｅｘ（登録商標）−Ａ９プロセッサおよびＮＥＯＮ（登録商標）メディアおよび／または浮動小数点処理エンジンは、英国ケンブリッジのＡＲＭホールディングス（ＡＲＭ）から利用可能である。
【００４７】
ＰＳ２０２内において、コア複合体２０６は、レベル２（Ｌ２）キャッシュ２２０とオンチップメモリ（ＯＣＭ）２２２とに結合される。Ｌ２キャッシュ２２０は、２５６ＫＢメモリとして実現され得る。ＯＣＭ２２２も、２５６ＫＢメモリとして実現され得る。コア２０８および２１０とＤＳＰユニット２１２および２１４とは、Ｌ２キャッシュ２２０およびＯＣＭ２２２に直接アクセスし得る。一般に、ＯＣＭ２２２は、ＰＳ２０２および／またはプログラマブル回路２０４たとえばプログラマブル回路２０４内に実現される回路、に対して利用可能なローカルメモリを提供する。比較により、メモリでもあるＬ２キャッシュ２２０は、ＰＳ２０２のキャッシュとして機能する。したがって、Ｌ２キャッシュ２２０は、オフチップ実行メモリなどのＲＡＭ内に記憶されたデータビットを効率的なコピーであるデータの小さいブロックまたは一部を記憶し得る。もし、たとえば、Ｌ２キャッシュ２２０内に記憶されたデータの読み出し要求が発行されると、ＲＡＭから引き出されるのと反対に、データはＬ２キャッシュ２２０から読み出される。
【００４８】
ＰＳ２０２はさらにリセットユニット２２４と、クロックユニット２２６と、メモリコントローラ２２８とを含む。リセットユニット２２４は、信号２３０などのＩＣ２００の外部のソースを起源とする１つ以上の信号を受ける。信号２３０は、ＰＳ２０２および／またはＰＳ２０２内の１つ以上の全ての部品をリセットするように、リセットユニット２２４に指示する。クロックユニット２２６は、信号２３２などのＩＣ２００の外部のソースを起源とする１つ以上の基準信号を受け得る。クロックユニット２２６は、たとえば、受信された信号２３２と同期できる位相同期回路として実現され得、あるいはそれを含み得る。クロックユニット２２６は、１つ以上の異なる周波数のクロック信号を生成し得、そのクロック信号はＰＳ２０２のいたるところに分配される（図示しない）。さらに、クロックユニット２２６は、１つ以上の異なる周波数の１つ以上のクロック信号を生成し得、そのクロック信号はプログラマブル回路２０４内に実現される回路による使用のためにプログラマブル回路２０４に分配され得る。
【００４９】
メモリコントローラ２２８は、「オフチップ」などのＩＣ２００の外部に配置される１つ以上の異なるタイプのＲＡＭと通信するように実現され得る。たとえば、メモリコントローラ２２８は限定されないが、デュアルデータレート（ＤＤＲ)２、ＤＤＲ３、低電力（ＬＰ）ＤＤＲ２タイプのメモリ、１６ビット、３２ビット、ＥＣＣを有する１６ビットなどを含む、さまざまなタイプのメモリにアクセス、たとえば読み出しおよび／または書き込みなどをするように実現され得る。メモリコントローラ２２８が通信可能である異なるメモリタイプのリストは、説明のためのみ与えられ、限定や網羅的であることを意図しているのではない。
【００５０】
ＰＳ２０２は、コアスイッチ２３６とプログラマブル回路２０４とに結合されるダイレクトメモリアクセス（ＤＭＡ）インタフェイス２３４も含み得る。ＰＳ２０２は、この明細中により詳細に記載されるインタフェイス２５６の１つ、すなわちインタフェイス２５６Ｄ、と、ＯＣＭ２２２と、メモリコントローラ２２８とに結合するメモリスイッチ２３８をさらに含む。
【００５１】
コアスイッチ２３６は、示されるように、ＰＳ２０２のさまざまな部品の間に信号を送る。実施例において、コアスイッチ２３６は、ＰＳ２０２の内部バス（図示しない）に直接結合され得る。そのような実施例において、コアスイッチ２３６と接続するＰＳ２０２内の他の部品の各々は、内部バスを介してコアスイッチ２３６に結合され得る。たとえば、インタフェイス２４０，２４２，２４６，および２４８の各々は、内部バスを経由してコアスイッチ２３６に結合され得る。内部バスは、たとえばアドバンストペリフェラスバス（ＡＰＢ）のような任意のさまざまな異なるバスとして実現され得る。
【００５２】
一般に、ＰＳ２０２は、およそ４つのＩ／Ｏのカテゴリーを含み得る。ＰＳ２０２には、フラッシュメモリタイプのインタフェイスと、より高い性能のインタフェイスと、より低い性能のインタフェイスと、デバッギングインタフェイスとが設けられる。Ｉ／Ｏの第１カテゴリに関して、ＰＳ２０２は、２４０Ａおよび２４０Ｂとして説明される１つ以上のフラッシュメモリインタフェイス２４０を含み得る。たとえば、１つ以上のフラッシュメモリインタフェイス２４０は、４ビット通信用に構成されるクワッドシリアルペリフェラスインタフェイス（ＱＳＰＩ）として実現され得る。１つ以上のフラッシュメモリインタフェイス２４０は、パラレル８ビットＮＯＲ／ＳＲＡＭタイプのインタフェイスとして実現されてもよい。１つ以上のフラッシュメモリインタフェイス２４０は、８ビットおよび／または１６ビット通信用に構成されるＮＡＮＤインタフェイスとして実現され得るが、他のビット幅が使用されてもよい。
【００５３】
Ｉ／Ｏの第２カテゴリに関して、ＰＳ２０２は、Ｉ／Ｏの第１カテゴリよりもより高いレベルの性能を与える１つ以上のインタフェイス２４２を含み得る。インタフェイス２４２Ａ−２４２Ｃの各々は、ＤＭＡコントローラ２４４Ａ−２４４Ｃにそれぞれ結合され得る。たとえば、１つ以上のインタフェイス２４２は、ユニバーサルシリアルバス（ＵＳＢ）タイプのインタフェイスとして実現され得る。１つ以上のインタフェイス２４２は、ギガビットイーサネットタイプのインタフェイスとして実現されてもよい。１つ以上のインタフェイス２４２は、セキュアディジタル（ＳＤ）タイプのインタフェイスとして実現されてもよい。
【００５４】
Ｉ／Ｏの第３カテゴリに関して、ＰＳ２０２は、Ｉ／Ｏの第２カテゴリよりも低いレベルの性能を与えるインタフェイス２４６Ａ−２４６Ｄのような１つ以上のインタフェイス２４６を含み得る。たとえば、１つ以上のインタフェイス２４６は、汎用Ｉ／Ｏ（ＧＰＩＯ）タイプのインタフェイスとして実現され得る。１つ以上のインタフェイス２４６は、ユニバーサル非同期レシーバ／トランスミッタ（ＵＡＲＴ）タイプのインタフェイスとして実現されてもよい。１つ以上のインタフェイス２４６は、シリアルペリフェラルインタフェイス（ＳＰＩ）バスタイプのインタフェイスの形で実現されてもよい。１つ以上のインタフェイス２４６は、コントローラエリアネットワーク（ＣＡＮ）タイプのインタフェイスの形で実現されてもよい。１つ以上のインタフェイス２４６は、トリプルタイマカウンタ（ＴＴＣ）および／またはウォッチドッグタイマ（ＷＤＴ）タイプのインタフェイスの形で実現されてもよい。
【００５５】
Ｉ／Ｏの第４カテゴリに関して、ＰＳ２０２は、プロセッサＪＴＡＧ（ＰＪＴＡＧ）ポートまたはインタフェイス２４８Ａ、およびトレースインタフェイス２４８Ｂのような１つ以上のデバッグインタフェイス２４８を含み得る。ＰＪＴＡＧポート２４８Ａは、ＰＳ２０２のための外部のデバッグインタフェイスを与え得る。トレースインタフェイス２４８は、トレースなどのデバッグ情報をプログラマブル回路２０４から受けるためのポートと、ＰＳ２０２のデバッギングデータをプログラマブル回路２０４に送り出すためのポートと、クロストリガポートとを与え得る。クロストリガポートは、プログラマブル回路２０４内の回路にＰＳ２０２内のトレースのようなデバッグ機能を起動することができる。同様に、ＰＳ２０２は、プログラマブル回路２０４内に実現される回路内のデバッグ機能を開始させ得る。
【００５６】
示されるように、インタフェイス２４０，２４２，２４６，および２４８の各々は、マルチプレクサ２５０に結合され得る。マルチプレクサ２５０は、内部にＩＣ２００が配置されるパッケージのボールなどのＩＣ２００の外部のピンに直接送られまたは結合される複数の出力を与える。たとえば、ＩＣ２００の複数のＩ／Ｏピン、たとえば５３個のピン、は、インタフェイス２４０，２４２，２４６，および２４８の間で共有され得る。ユーザは、ＰＳ２０２の一部としてマルチプレクサ２５０をインタフェイス２４０−２４８のいずれが使用されるか、したがって、マルチプレクサ２５０を経由してＩＣ２００のＩ／Ｏピンに結合されるかを選択するように構成することができる。
【００５７】
示されるように、インタフェイス２４２−２４８は、ファブリックマルチプレクサ入力／出力（ＦＭＩＯ）インタフェイス２５２にも選択的に結合され得る。したがって、ＩＣ２００、より具体的にはＰＳ２０２のユーザ設定に基づいて、カテゴリ２，３，４、すなわちインタフェイス２４２−２４８の任意の１つは、ＦＭＩＯインタフェイス２５２を経由してＩＣ２００のプログラマブル回路２０４に結合され得る。このことは、さらなる処理または／およびモニタリングのために、インタフェイス２４２−２４８のいずれか１つを経由して通知されるデータがプログラマブル回路２０４内の回路に送られるようにすることができる。
【００５８】
制御レジスタ２５４は、ほとんどでなくとも、さまざまなＰＳ２０２のアスペクトを制御するように設定され得る。１つ以上の指令は、制御レジスタ２５４に書き込まれてＰＳ２０２のオペレーションを制御または調整する。たとえば、プログラマブル回路２０４内の回路は、ここでさらに詳細に記載されるインタフェイス２５６Ｂのようなインタフェイスを介して制御レジスタ２５４に書き込まれ得る。制御レジスタ２５４は、知的所有権（ＩＰ）イネーブルリセットの制御と、クロックユニット２２６によって生成されるクロック周波数の設定、Ｉ／Ｏのドライブ強度の特定および、他のシステムレベル機能のような機能を制御または調整することができる。制御レジスタ２５４は、ＰＳ２０２のパワーダウン、ＰＳ２０２の特定のインタフェイスを個別にパワーダウンまたは非活性化するような追加の機能を調整することができる。制御レジスタ２５４は、たとえば、制御レジスタ２５４をコアスイッチ２３６に結合させるＡＰＢ（図示しない）のようなバスを介してアクセスされ得る。
【００５９】
ＰＳ２０２は、プログラマブル回路２０４に直接結合するインタフェイス２５６Ａ−２５６Ｄとして示される１つ以上のインタフェイス２５６も含み得る。実施例において、１つ以上の全てのインタフェイス２５６は、ＡＲＭによって発行されるＡＭＢＡ  ＡＸＩプロトコル仕様（ＡＸＩ)に従って実現され得る。たとえば、インタフェイス２５６の各々は、ＡＭＢＡ  ＡＸＩプロトコル仕様Ｖ．２．０に準拠して実現され得る。一般に、ＡＸＩは、サブミクロン相互接続に適した高い性能、高い周波数のインタフェイスである。
【００６０】
図２を再び参照して、インタフェイス２５６Ａおよび２５６Ｂの各々は、たとえば、プログラマブル回路２０４をコアスイッチ２３６に結合する２つの３２ビットチャネルを与えるように実現され得る。インタフェイス２５６Ａは、汎用マスタインタフェースとして実現され得る。インタフェイス２５６Ａは、たとえば、ＰＳ２０２および／またはＤＭＡコントローラからプログラマブル回路２０４へのデータの汎用転送を実行するために使用され得る。たとえば、インタフェイス２５６Ｂは、ＰＳ２０２とプログラマブル回路２０４との間の汎用データ転送のために使用され得る。
【００６１】
インタフェイス２５６Ａ−２５６Ｂとコアスイッチ２３６とを介して、プログラマブル回路２０４内に実現される回路は、インタフェイス２４０，２４２，２４６，および２４８のさまざまなものにアクセスし得る。インタフェイス２５６Ａおよび／または２５６Ｂを介して、コアスイッチ２３６との組み合わせにより、プログラマブル回路２０４内の回路はＯＣＭ２２２に直接、そしてメモリコントローラ２２８などを介してオフチップメモリに、さらにアクセルし得る。実施例において、インタフェイス２４６は、ＡＰＢバス（図示しない）のようなバスを経由してコアスイッチ２３６に結合され得る。
【００６２】
インタフェイス２５６Ｃは、プログラマブル回路２０４をコア複合体２０６、より具体的にはＳＣＵ２１８、に直接結合する６４ビットスレーブインタフェイスとして実現され得る。インタフェイス２５６ＣとＳＣＵ２１８とを介して、プログラマブル回路２０４内に実現される回路は、コア２０８および２１０、ＩＲＱ２１６、Ｌ２キャッシュ２２０およびＯＣＭ２２２の各々の中にあるＬ１キャッシュへの直接のアクセスを与える。したがって、プログラマブル回路２０４内の回路は、そのようなメモリに対する読出しおよび／または書き込みと、コア複合体２０６内で生成されるまたはアサートされる割り込みの検出とを行ない得る。加えて、信号２９０は、ポートまたは信号としてＩＲＱ２１６に与えられ得る、プログラマブル回路２０４からの１つ以上の割り込み、および／または、ＰＳ２０２から、より具体的にはコア複合体２０６からの、ポートまたは信号としてプログラマブル回路２０４へ提供され得る、１以上の割り込みのコピー、を表わし得る。別の実施例において、インタフェイス２５６Ｃは、コプロセッサとしての回路機能による使用に適するコア複合体２０６へのコヒーレントアクセスを与える。たとえば、プログラマブル回路２０４内に実現されるソフトプロセッサは、インタフェイス２５６Ｃを経由してＰＳ２０２と通信し得る。
【００６３】
インタフェイス２５６Ｄは、複数、たとえば４つの、６４ビットスレーブインタフェイスを与えるように実現され得る。インタフェイス２５６Ｄは、ＰＳ２０２とプログラマブル回路２０４内に実現される回路との間の大量のデータを効率良く交換するために使用され得る。示されるように、インタフェイス２５６Ｄは、メモリスイッチ２３８を経由するＯＣＭ２２２へのアクセスと、メモリスイッチ２３８およびメモリコントローラ２２８を経由するオフチップメモリへのアクセスを有する、プログラマブル回路２０４内に実現される回路を提供する。
【００６４】
ＰＳ２０２は、プロセッサ設定アクセスポート（ＰＣＡＰ）２５８をさらに含む。示されるように、ＰＣＡＰ２５８は、設定コントローラ２６０とプログラマブル回路２０４内に配置されるシステムモニタブロック（システムモニタ）２６２とに結合され得る。
【００６５】
加えて、ＰＳ２０２は、ＰＳ電圧検出器２９２を含み得る。ＰＳ電圧検出器２９２は、信号２９４として示される電力供給からの入力電圧源をモニタし得る。信号２９４の電圧が予め定められた電圧レベルを満たすという決定に応じて、ＰＳ電圧検出器２９２は、制御信号（図示しない）を発行することにより、１つ以上の他の部品をイネーブルさせ得る。たとえば、信号２９４の電圧が少なくとも最小電圧レベルであるという決定に応じて、ＰＳ電圧検出器２９２は、１つ以上のＩＣ２００のＩＯＢをイネーブルさせ得る。別の例において、信号２９４の電圧が最小電圧レベルを満たすという決定に応じて、ＰＳ電圧検出器２９２は、包括的にレベルシフティング回路２９６として示される１つ以上のレベルシフタをイネーブルし得る。ＰＳ電圧検出器２９２のさらなる機能は、残りの図を参照して説明される。
【００６６】
レベルシフティング回路２９６は、一般に、ＰＳ２０２がプログラマブル回路２０４から電気的に絶縁されるのを助ける。レベルシフティング回路２９６は、第１電圧レベルの信号を第２電圧レベルの信号に変換するように構成される。場合によって、第１および第２電圧レベルは、異なる電圧値であり得る。たとえば、場合によって、ＰＳ２０２は、プログラマブル回路２０４に与えられる電力信号と異なる電位を有する電力信号を使用して動作し得る。他の場合、ＰＳ２０２は、プログラマブル回路２０４に与えられる電力信号と同じ電位を有するあるいは有するように意図される１つ以上の電力信号を受け得る。電力信号は、しかし、独立に制御され得、電力信号の電位の類似あるいは同一にかかわらず２つの異なる電力領域につながる。電力信号の独立性は、プログラマブル回路２０４に与えられる電力信号と比較して、ＰＳ２０２に与えられる電力信号の電位の小さい変動を生じさせ得る。
【００６７】
電力信号内の電位変動を考慮するため、そしてＰＳ２０２と無関係にプログラマブル回路２０４を電力サイクルするための能力をサポートするために、ＰＳ２０２とプログラマブル回路２０４との間を横断する信号は、レベルシフティング回路２９６を通過され得る。シングルブロックとして説明されるが、述べられたさまざまなインタフェイスの各々、たとえばＦＭＩＯインタフェイス２５２、トレースインタフェイス２４８Ｂ、インタフェイス２５６Ａ−２５６Ｄ、ＰＣＡＰ２５８、クロック信号およびＤＭＡ信のような任意の他の信号、は、レベルシフティング回路２９６によって代表されるレベルシフタを含みまたは通過し得ると理解されるべきである。レベルシフティング回路２９６は、ＰＳ２０２とプログラマブル回路２０４との間を伝搬する信号の電圧レベルが整合されることを保証する。
【００６８】
ＩＣ２００は、レベルシフティング回路２９６内の１つ以上の異なるクラスのレベルシフタを含み得る。たとえば、第１クラスのレベルシフタは、信号、たとえば設定信号、バウンダリスキャン信号および／または機能、のようなシステムレベル信号をＰＳ２０２から、プログラマブル回路２０４内の述べられたようなシステムモニタ２６２のような部品に直接接続するように構成され得る。第１クラスのレベルシフト回路に属するレベルシフタは、ＰＳがリセットでない、たとえば動作モードに入る、そしてプログラマブル回路２０４への電力が動作に適切であると決定されたときに、イネーブルされ得る。プログラマブル回路２０４の動作に適切な電力は、プログラマブル回路２０４の設定が起こるのに十分な電力および／またはプログラマブル回路２０４内に実現される任意の回路を機能させるために十分な電力を含み得る。
【００６９】
第２クラスのレベルシフタは、プログラマブル回路２０４からＰＳ２０２へテスト信号を接続するように構成され得る。第２クラスのレベルシフタは、ＰＳ２０２がリセットでないそしてプログラマブル回路２０４が適切な電力を有するとともに回路を実現するように構成もされ得るときにイネーブルされ得る。ディスエーブルされると、第２クラスのレベルシフタは、ハイのデフォルト論理を出力するように構成され得る。
【００７０】
第３クラスのレベルシフタは、ＰＳ２０２とプログラマブル回路２０４との間のユーザ信号を接続するように構成され、または接続することが可能である。第３クラスのレベルシフタは、ＰＳ２０２がリセットでないそしてプログラマブル回路２０４が適切な電力を有し構成されるときに、イネーブルされ得る。実施例において、第３クラスのレベルシフタは、ディスエーブルされると、ローのデフォルト論理を出力するように構成され得る。
【００７１】
第４クラスのレベルシフタは、プログラマブル回路２０４とＰＳ２０２との間を１つ以上のレベル信号を搬送するように構成され得る。第４クラスのレベルシフタは、常にイネーブル、たとえば動作可能にされ得る。
【００７２】
プログラマブル回路２０４は、プログラマブル相互接続回路を使用してともに結合され得る１つ以上のプログラマブル回路ブロックを含むように実現され得る。プログラマブル回路ブロックとプログラマブル相互接続回路とは、ＩＣ２００内にロードされた設定データに基づいて、１つ以上の異なる物理回路、たとえばユーザ回路２８０実現するように構成され得る。プログラマブル回路２０４、その中に実現されるハードウェアにより実現されるさまざまな回路を除く、は、設定データが設定メモリ内にロードされて、プログラマブル回路２０４内に物理回路が実現されるまで、動作ユニットまたは機能ユニットでないと理解されるべきである。
【００７３】
示されるように、プログラマブル回路２０４は、設定コントローラ２６０とシステムモニタ２６２とを含む。設定コントローラ２６０とシステムモニタ２６２とは、ＰＳ２０２内のＰＣＡＰ２５８に結合され得る。設定コントローラ２６０とシステムモニタ２６２とは、ハードウェアにより実現される回路の形で実現され得る。設定コントローラ２６２は、設定データを設定メモリセルへ書き込むことを担当し、それによって、プログラマブル回路２０４内の設定データにより特定される回路を物理的に実現する。
【００７４】
設定コントローラ２６０と同様にＰＣＡＰ２５８を経由してＰＳ２０２への直接接続を有するシステムモニタ２６２は、電圧モニタリング、電流モニタリング、および／または温度モニタリングを与えるために活用され得るアナログからディジタル（ＡＤ）への変換のような機能を実行し得る。システムモニタ２６２は、複数、たとえば１６個、の入力を含み得る。１つ以上の入力は、信号の連続的なモニタのために選択的に設定され得る。一般に、システムモニタ２６２は、最大でおよそ１ＭＨｚのサンプリングレートにおけるおよそゼロボルトと１ボルトとの間の電圧の１２ビットサンプリングを与え得る。サンプリング機能を通して、システムモニタ２６２は、電流の変動や温度の変動などのようなイベントを検出するために電圧変動をモニタし得る。たとえば、システムモニタ２６２は、温度の測定を生み出すために、順方向電圧が温度に依存ことからダイオードの順方向電圧をサンプルし得る。一般に、より高い電圧は、より低い温度を示す。
【００７５】
モニタされ得る信号は、ＩＣ２００内の信号または外部ソースからＩＣ２００に与えられる信号を含み得る。或る局面において、システムモニタ２６２は、信号が予め定められた量よりも大きく変動するときに、警告または通知機能を与え得る。たとえば、警告または他の指示信号は、特定のコンディションが満たされるとき、たとえば信号の値が特定の範囲の外に増加または減少するときに、プログラマブル回路２０４内の回路に与えられ得る。別の例において、ＰＳ２０２、たとえばＩＲＱ２１６へ与えられ得る割り込みは、システムモニタ２６２によって生成され得る。システムモニタ２６２は、ＡＤ変換によって生成されたサンプルデータをストリームし、サンプルデータを周期的に与え、またはプログラマブル回路２０４の回路またはＰＳ２０２内の回路によってポーリングされるときにサンプルデータを与えるようにさらに構成され得る。
【００７６】
システムモニタ２６２は、１つ以上の異なるタイプのインタフェイスを含み得る。ＡＤ変換を実行するために、システムモニタは、サンプルされ得る１つ以上のアナログ入力を含み得る。システムモニタ２６２は、それを通してＰＳ２０２がシステムモニタ２６２と相互作用するＪＴＡＧインタフェイスを含み得る。ＪＴＡＧインタフェイスを使用することにより、システムモニタ２６２は、ＰＳ２０２の周辺デバイスとして機能し得る。システムモニタ２６２は、プログラマブル回路２０４内の回路によって制御され得る１つ以上の設定可能な信号をさらに含む。たとえば、プログラマブル回路２０４内に実現される回路は、システムモニタ２６２からサンプルされた値を受けるために、１つ以上のシステムモニタ２６２の信号を制御し得る。システムモニタ２６２は、それを介して基準電圧がＩＣ２００の外部から与えられ得る１つ以上の信号をさらに含む。
【００７７】
別の実施例において、システムモニタ２６２は、ＩＣ２００内のアナログ信号のテスト機能を与え得る。たとえば、ＰＳ２０２および／またはプログラマブル回路２０４内の１つ以上のあるいは全てのアナログ信号は、テストモードに置かれたとき、システムモニタ２６２に選択的に結合され得る。したがって、アナログ信号は、テストモードにおいて、システムモニタ２６２を使用することによってモニタされ得る。たとえば、クロックユニット２２６のバンドギャップ回路において使用されるアナログ信号は、ＩＣ２００がテストモードに置かれたとき、テストのためにシステムモニタ２６２に結合され得る。
【００７８】
一般に、システムモニタ２６２は、述べられたＩＣ２００内の電圧、電流、温度などのような量をモニタするための高精度なサンプリング性能を与える。この明細書で述べられたＩＣ２００のプロセッサのスタートアップまたはパワーオンに含まれる他の電圧検出器と異なり、プログラマブル回路２０４が構成されるまで、たとえば設定データのローディングを通してそこに回路構成が実現される、までシステムモニタ２６２は、機能的でない。
【００７９】
プログラマブル回路２０４は、ハードウェアにより実現される回路の形の１つ以上のインタフェイスを実現するようにも構成され得る。たとえば、ＪＴＡＧインタフェイス２６２と、１つ以上のＭＧＴ２６６Ａ−２６６Ｄと、周辺部品相互接続エクスプレス（ＰＣＬｅ）インタフェイス２６８と、相互設定アクセスポート（ＩＣＡＰ）２７０と、セキュリティポート２７２とは、ＩＣ２００の一部のプログラマブル回路内にハードウェアにより実現される回路として含まれ得る。プログラマブル回路２０４を参照して述べられるさまざまなインタフェイスは、実現され得るインタフェイスの例を説明するのであって、この明細書中に開示される１つ以上の実施例について制限または限定することを意図するものではない。
【００８０】
たとえば、設定データは、ＩＣ２００内にロードされ、設定コントローラ２６０によって受信され得る。実施例において、設定データは、ＩＣ２００の設定プロセスを制御し得るＰＳ２０２を介して受信され得る。プログラマブル回路２０４内にハードウェアにより実現される回路として実現され得る設定コントローラ２６０は、ＰＣＡＰ２５８を経由してＰＳ２０２から受信される設定データをＩＣ２００の設定メモリ（図示しない）内にロードし得る。ユーザ回路２８０のような異なる物理回路は、ＩＣ２００の設定メモリ内にロードされる特定の設定データによって特定されるプログラマブル回路２０４内に実現または形成され得る。ハードウェアにより実現される回路によるこのような態様における設定データのローディングは、プログラマブル回路２０４の初期設定を要求しないと理解されるべきである。 
【００８１】
設定データのローディングの結果によってプログラマブル回路２０４内に実現される回路は、物理回路であるが、その回路が、ハード回路あるいはそうでなければＩＣ２００内に固定されるというよりはむしろプログラマブル回路内に形成されるという点で、典型的に「ソフト」と称される。ユーザ回路２８０は、上述された任意のさまざまなインタフェイスを介してＰＳ２０２に結合され得る。直接アクセスは、インタフェイス２５６を経由して与えられ得、一方、ＰＳ２０２へのさらなるアクセスは、ＦＭＩＯインタフェイス２５２を介して容易にされ得る。
【００８２】
図３は、この明細書中に開示される別の実施例に従うパワーマネジメントのために構成されるシステム３００を説明する第３ブロック図である。示されるように、システム３００は、ＩＣ３０５と、電源３３０と、スイッチ３３５，３４０および３４５として示される１つ以上のスイッチとを含み得る。ＩＣ３０５は、図１および図２に示されるＩＣを参照して述べらるものとして実質上実現され得る。図３は、しかし、パワーマネジメント機能をより明確に説明するために、ＩＣ３０５の摘要図を示す。従って、ＩＣ３０５は、ＰＳ３１０とプログラマブル回路３１５とを含み得る。実施例において、プログラマブル回路３１５は、プログラマブルファブリックまたはＦＰＧＡの形で実現され得る。ＰＳ３１０とプログラマブル回路３１５とは、１つ以上のレベルシフタ３２０によってともに結合され得る。
【００８３】
電源３３０は、電力信号３５０，３５２，および３５４のような複数の電力信号を生成し得る。実施例において、電力信号３５０−３５４の各々は、異なる電位を有し得る。示されるように、電力信号３５０−３５４は、ＩＣ３０５のＰＳ３１０内のＰＳ電圧検出器３１２に結合される。
【００８４】
電力信号３５０−３５４の各々は、スイッチ３３５−３４５の１つにもそれぞれ結合され得る。スイッチ３３５−３４５は、電力信号３５０−３５４をプログラマブル回路３１５内のファブリック電圧検出器３２５に選択的に通過させるように構成され得る。スイッチ３３５−３４５の各々は、ＰＳ３１０によって生成される制御信号３５６に応じて電力信号３５０−３５４をファブリック電圧検出器３２５へ選択的に通過させ得る。図３に示される実施例において、ＰＳ電圧検出器３１２は、制御信号３５６を生成し得る。スイッチ３３５−３４５がオンになると、電力信号３５０−３５４は、プログラマブル回路３１５へ伝搬する。オフになると、スイッチ３３５−３４５は、電力信号３５０−３５４をプログラマブル回路３１５から切り離す。
【００８５】
ＰＳ電圧検出器３１２は、電力信号３５０−３５４をモニタし、そして、電力信号３５０−３５４の各々が、本明細書においてさらに詳細に述べられる、１つ以上の異なる電圧閾値、をいつ満たすかを決定するように構成され得る。図示されるように、ＰＳ電圧検出器３１２は、２箇所で、電力信号３５４に結合される。ＰＳ電圧検出器３１２は、電源３３０およびスイッチ３４５の間の場所と、スイッチ３４５およびファブリック電圧検出器３２５の間の場所とで電力信号３５４に結合され得る。
【００８６】
電力信号３５０は、ＩＣ３０５のＩ／Ｏに電力を与えるために使用され得る１．２−１．８ボルトの電力信号として実現され得る。電力信号３５２は、プリドライバ電圧およびバイアス電圧をＩＣ３０５へ与えるために使用され得る１．８ボルトの電力信号として実現され得る。電力信号３５４は、たとえば、ＩＣ３０５の論理回路を供給するために使用され得るボルトの電力信号として実現され得る。述べられた例および値は、例示の目的のためであり、それ自体、この明細書中に述べられる１つ以上の実施例の限定を意図していない。
【００８７】
レベルシフタ３２０は、図２のレベルシフティング回路２９６を参照して述べられるものとして実現され得る。示されるように、レベルシフタ３２０は、２箇所、たとえばスイッチ３４５の手前およびスイッチ３４５からの出力で、電力信号３５４に結合され得る。一般に、スイッチ３３５−３４５の各々は、スイッチからのそれぞれの出力がスイッチに入力として与えられる電力信号よりも低い電圧を有するように、電圧降下を生じさせる幾つかの抵抗を有する。そのため、２つの電力領域が同じ電圧で動作することが意図される場合、１つ以上の他の要因と同様にスイッチ３３５−３４５の抵抗によってそれぞれの領域に与えられる電力信号の電圧の変動が起こり得る。レベルシフタ３２０は、第１電力領域、すなわちＰＳ３１０、と第２電力領域、すなわちプログラマブル回路３１５との間に信号を通過させるために、これらの電圧の変動を考慮し得る。
【００８８】
示されるように、プログラマブル回路３１５は、ファブリック電圧検出器３２５として説明される電圧検出器をも含み得る。ファブリック電圧検出器３２５は、信号３５０−３５４の各々が予め定められた電圧レベルに到達したときを検出し、そしてそれに応じて信号３５８を生成し得る。信号３５８は、レベルシフタ３２０Ａを経由してＰＳ３１０に与えられ得る。レベルシフタ３２０Ａは、たとえば、第４クラスのレベルシフタとして実現され得る。図示しないが、電力信号は、電圧検出器３１２あるいは１つ以上の他の部品から、ＰＳ３１０を介して分配され得ると理解されるべきである。同様に、電力信号は、ファブリック電圧検出器３２５あるいは１またはそれより他の部品から、プログラマブル回路３１５を介して分配され得る。加えて、ファブリック電圧検出器３２５は、プログラマブル回路３１５内に配置されているにもかかわらず、１つ以上の他のシステムレベル部品と一緒に、ハードウェアにより実現される回路として実現され得る。
【００８９】
動作において、ＩＣ３００は、パワーオンされ得る。電源３３０は、たとえば、ＩＣ３００への電力の供給を開始し得る。ＰＳ３１０は、プログラマブル回路３１５のパワーオンと、プログラマブル回路３１５の設定とを援助し得る。ＰＳ３１０への電力の供給でただちに、ＰＳ電圧検出器３１２は、電力信号３５０−３５４の電圧のモニタを開始する。電力信号３５０−３５４の１つ以上のあるいは全ての電圧が最小のＩＯＢ電圧とも称される第１予め定められた最小電圧レベル、を満たすことの決定に応じて、ＰＳ電圧検出器３１２は、コントロール信号３６０を経由してＩＯＢ３２８をイネーブルし得る。
【００９０】
一般に、ＰＳ電圧検出器３１２がＩＯＢ３２８をイネーブルすると、ＰＳ電圧検出器３１２は、１つ以上の電力信号３５０−３５４を経由して受ける電位がＩＯＢ３２８を駆動するのに十分なこと、たとえば最小ＩＯＢ電圧を満たすことを決定している。たとえば、ＩＢＯ３２８は、内部電力信号をＩＯＢ３２８に結合することによってイネーブルされ得る。最小ＩＯＢ電圧は、ＩＯＢ３２８が動作するのに十分高いが、ＰＳ３１０のブートまたはスタートアップを開始するのに十分高い必要はない。したがって、最小ＩＯＢ電圧は、いまだ、動作モード内のＰＳ３１０の動作に好ましいまたは適当な電圧範囲よりも低くあり得る。
【００９１】
一旦、活性化されると、ＩＯＢ３２８は、電力指示信号３６２を受けることができる。電力指示信号３６２は、電源３３０または別の外部ソースによって与えられ得る。電力指示信号３６２は、たとえば、電源３３０が安定しているとき、それゆえ、電力信号３５０−３５４が安定しかつＰＳ３１０のスタートアップの開始に必要な範囲内にあるときにハイに設定され得る。したがって、ＩＯＢ３２８をイネーブルするためにＰＳ３１０がＰＳ電圧検出器３１２を利用するにもかかわらず、ＰＳ３１０は、電力指示信号に依存していつ電源３３０が動作可能でかつ安定であるかを示す。
【００９２】
電力指示信号３６２を受ける、たとえば信号がハイになることに応じて、ＰＳ３１０は、ブートまたはスタートアップ処理を開始し得る。スタートアップ処理は、残りの図を参照してさらに詳細に述べられる。実施例において、スタートアップ処理の一部として、ＰＳ電圧検出器３１２は、制御信号３５６を経由してスイッチ３３５−３４５をオンにし、それによってプログラマブル回路３１５を電力信号３５０−３５４に結合する。
【００９３】
スイッチ３３５−３４５がオンされることによって、ＰＳ電圧検出器３１２は、電力信号３５４の電圧をスイッチ３４５からの出力としてモニタし得る。ＰＳ電圧検出器３１２が信号３５４の電圧が最小のレベルシフタ電圧として称される予め定められた第２の最小電圧、を満たすことを決定すると、ＰＳ電圧検出器３１２は、１つ以上のレベルシフタ３２０、たとえばレベルシフタ３２０Ａをイネーブルし得る。最小のレベルシフタ電圧は、プログラマブル回路３１５内の１つ以上の選択されたデバイス 、たとえばレベルシフタ３２０Ａが動作するのに十分であり得る。
【００９４】
実施例において、最小のレベルシフタ電圧は、プログラマブル回路および／または１つ以上のレベルシフタ３２０、たとえば相補型金属酸化膜半導体（ＣＭＯＳ）デバイスを使用して実現される回路が機能するのに十分高いものであり得る。最小のレベルシフタ電圧は、デバイスが機能するのに十分大きい一方で、まだ、プログラマブル回路３１５内のデバイスの動作に必要な好ましいまたは適当な電圧範囲、たとえば設定機能と通常の動作モードでのプログラマブル回路３１５とをサポートするための電圧範囲よりも低い。最小のＩＯＢ電圧は、必要ではないが、最小のレベルシフタ電圧と同じまたは等しくあり得る。
【００９５】
加えて、スイッチ３３５−３４５がイネーブルされることにより、ファブリック電圧検出器３２５は、動作を開始し得る。ファブリック電圧検出器３２５は、１またはそれ以上あるいは全ての電力信号３５０−３５４がプログラマブル回路３１５の動作のために必要とされ最小プログラマブル回路電圧と称される予め定められた第３の最小電圧、を満たすことを決定するために、電力信号３５０−３５４の各々の電圧のモニタリングを開始し得る。
【００９６】
ファブリック電圧検出器３２５が１つ以上のあるいは全ての信号３５０−３５４の電圧が最小のプログラマブル回路電圧を満たすことの決定に応じて、ファブリック電圧検出器３２５は、プログラマブル回路３１５がパワーオンされたことをＰＳ３１０に示す信号３５８、たとえばプログラマブル回路電力指示信号を生成し得る。たとえば、１つ以上のあるいは全ての電力信号３５０−３５４が最小のプログラマブル回路電圧を満たすとき、ファブリック電圧検出器３２５は、信号３５８をハイにする。最小のプログラマブル回路電圧は、プログラマブル回路３１５が適切に機能するため、たとえば動作モードにとどまり設定を受けるために要求される適当な、最小の電圧レベルである。最小のプログラマブル回路電圧は、一般に、最小のＩＯＢ電圧および／または最小のレベルシフタ電圧よりも高い。ファブリック電圧検出器３２５の１つ以上のあるいは全ての電力信号３５０−３５４が最小のプログラマブル回路電圧を満たすことの決定に応じた信号３５８の生成は、プログラマブル回路３１５が設定の準備ができている、たとえばその中に物理回路を実現するために設定データの準備ができていることを示す。
【００９７】
実施例において、ファブリック電圧検出器３２５は、異なる２つのモードのうちの１つのモードで動作し得る。ファブリック電圧検出器３２５が動作する特定のモードは、外部ソースから受ける制御信号３６４に応じて選択され得る。制御信号３６４の状態に依存して、ファブリック電圧検出器３２５は、第１モードまたは第２モードで動作し得る。
【００９８】
第１モードにおいて、ファブリック電圧検出器３２５は、信号３５８を生成する前、たとえば信号３５８をハイにする前に、１つ以上のあるいは全ての電力信号３５０−３５４が最小のプログラマブル回路電圧を満たすことを決定した後、予め定められた量の時間待機し得る。時間の量は、たとえば、およそ５０ミリ秒であり得るが、他の期間が使用されてもよい。第２モードにおいて、ファブリック電圧検出器３２５は、１つ以上のあるいは全ての電力信号３５０−３５４が最小のプログラマブル回路電圧を満たすことを決定したことに応じて、信号３５８をただちに生成し得る。信号３５８は、プログラマブル回路３１５が機能的であること、たとえば動作モードにあることかつ１つ以上の異なる回路を実現するように構成され得ることをＰＳ３１０に示す。
【００９９】
図３が、電力領域の独立を達成するために、スイッチと、ＰＳ３１０およびプログラマブル回路３１５の間の共通の電力信号とを使用して記述される一方で、同様の結果はさまざまな異なる手法で達成され得る。たとえば、２つの完全に独立した電源が使用されてもよい。その場合、外部スイッチに制御信号を与えるよりも、プログラマブル回路３１５をパワーオンおよび／またはオフするために、コントロール信号３６４は、プログラマブル回路３１５に電力を与える電源に与えられ得る。別の例において、スイッチは、ＩＣ３００内に含まれ得る。その場合、制御信号３５６は、ＩＣ３００内に配置されたスイッチに与えられてプログラマブル回路３１５をオンおよび／またはオフする。
【０１００】
図４は、この明細書中に開示される別の実施例に従うＩＣのためのパワーマネジメントの方法４００を説明する第１フローチャートである。より具体的に、方法４００は、ＩＣのパワーオンの方法の例を説明する。方法４００は、この明細書の図１−３を参照して述べられたＩＣによって実行され得る。したがって、ステップ４０５において、電力は、ＩＣのＰＳに印加されまたは結合され得る。ステップ４１０において、外部で生成された電力指示信号に結合されるＩＯＢを動作するため、ＰＳ電圧検出器は、ＰＳに供給される電力信号が電圧要求、たとえば最小のＩＯＢ電圧を満たすことを決定し得る。したがって、電力信号が最小のＩＯＢ電圧を満たすことの決定に応じて、ステップ４１５において、ＰＳ電圧検出器は、電力指示信号に結合されるＩＯＢをパワーオンし得る。実施例において、ＩＯＢの動作に要求される電圧レベルは、典型的にＰＳの動作に要求される電圧レベルよりも低くあり得る。
【０１０１】
ステップ４２０において、ＰＳは、電源が安定状態に到達したことを示す電力指示信号がハイになったことを検出し得る。たとえば、電力指示信号は、安定状態が達成されるまで、ＩＣの外部の電力サプライによりローに保持され得る。一度安定状態が達成されると、電源は、電力指示信号をハイにし、ＰＳのオペレーションに要求される電圧が電源から利用可能であることを示す。ＰＳ電圧検出器は、ステップ４１５において電力指示信号が結合されるＩＯＢの活性化による電力指示信号の状態変化を検出し得る。
【０１０２】
ステップ４２５において、電力指示信号のハイ状態の検出に応じて、ＰＳ電圧検出器は、ＰＳ内のブートまたはスタートアップ処理を開始し得る。ステップ４３０−４５０は、一般に、ＰＳによって実行されるスタートアップ処理を述べる。ステップ４３０において、ＰＳは、内部で生成される基準クロックを使用して動作を開始し得る。内部で生成される基準クロックは、たとえば、図２のクロックユニット２２６によって生成され得る。一般に、内部基準ロックは、通常の動作、たとえば、動作モードの間、最終的にＰＳをクロックするために使用されるクロック信号よりも低い周波数で動作する。たとえば、実施例において、内部クロック信号は、および３０ＭＨｚの周波数を有する。
【０１０３】
ステップ４３５において、ＰＳは、バンドギャップ回路をイネーブルまたはパワーオンする。バンドギャップ回路は、たとえば、ＰＳのクロックユニット内に配置され得、一般に、同様にクロックユニット内に配置されるＰＬＬによる使用のための基準電圧を与える。したがって、ステップ４４０において、ＰＳは、ＰＬＬをイネーブルし、フルスピード動作を開始し得る。たとえば、内部で生成される基準クロックを使用する動作のとき、クロックのＰＬＬはバイパスされる。バンドギャップ回路とＰＬＬがイネーブルされると、ＰＬＬはもはやバイパスされず、それによって、クロックユニットのＰＬＬが同調し得る外部で与えられるクロック信号に対応するフルスピードでＰＳを動作させる。別掲のとおり、ＰＬＬによって出力されるクロック信号の周波数は、一度動作可能になると、内部で生成される基準クロックよりも著しくに高くあり得る。
【０１０４】
ステップ４４５において、ＰＳは、メモリコントローラを経由してＰＳに結合されるＲＡＭをイネーブルし得る。ステップ４５０において、ＰＳは、すべての終端キャリブレーション処理および／または回路を活性化にし、それによってＲＡＭと同調する。一般に、ステップ４５０の後、ＰＳは、動作モードにあるとみなされる。ＰＳは、たとえば、リセット状態を終えてプログラムコードを実行し得る。別の例において、ＰＳは、プログラマブル回路の電力の管理も開始もし得る。
【０１０５】
ステップ４５５において、ＰＳは、ＩＣの一部のプログラマブル回路のパワーオン処理のマネジメントを開始し得る。たとえば、ステップ４５５において、ＰＳは、ＩＣのプログラマブル回路に電力を供給し得るかそうでなければプログラマブル回路への電力サプライをイネーブルし得る。たとえば、ＰＳは、制御信号を経由して、スイッチにオンを指示し、それによってスイッチにより受けられるすべての電力信号も出力させるとともに、プログラマブル回路に伝搬させる。
【０１０６】
ステップ４６０において、ＰＳ電圧検出器は、プログラマブル回路への電力信号がプログラマブル回路電力指示信号に結合されるレベルシフタを動作するための最小のレベルシフタ電圧を満たすことを決定する。ステップ４６５において、プログラマブル回路は、電力信号が最小のプログラマブル回路電圧を満たすことを決定し得る。ステップ４７０において、電力信号が最小のプログラマブル回路電圧を満たすことの決定に応じて、プログラマブル回路は、プログラマブル回路が設定の準備ができていることの信号を、ＰＳに出力する。別掲のとおり、プログラマブル回路は、ＰＳによってイネーブルされたシステムレベルシフタの１つに結合されるプログラマブル回路電力指示信号を介して設定の準備ができていることを通信し得る。
【０１０７】
ステップ４７５において、ＰＳは、ＰＳとプログラマブル回路との間のシステムレベル信号の通信に使用されるすべてのレベルシフタをイネーブルし得る。実施例において、ＰＳは、プログラマブル回路の設定を要求しないレベルシフタをイネーブルし得る。ＰＳとプログラマブル回路との間を通過するクロック信号を伝搬させる１つ以上のレベルシフタも、イネーブルされ得る。
【０１０８】
ディスエーブルされると、レベルシフタの各々は、定数、たとえばローまたはハイのいずれかを出力するように構成され得る。一旦イネーブルされると、レベルシフタの出力は、レベルシフタに与えられる入力に依存するようになる。実施例において、レベルシフタが論理ハイを受けると、レベルシフタは、論理ハイを出力し得る。レベルシフタが論理ローを受けると、レベルシフタは論理ローを出力し得る。別の実施例において、レベルシフタは、相補値を出力するように構成されてもよい。たとえば、レベルシフタが論理ハイを入力として受けると、レベルシフタは、論理ローを出力し得る。同様に、レベルシフタが論理ローを入力信号として受けると、レベルシフタは論理ハイを出力するように構成され得る。いずれの場合も、ディスエーブルになったとき、レベルシフタは、一定の論理ハイまたは一定の論理ローを出力するように構成され得る。
【０１０９】
ステップ４８０において、ＰＳは、１つ以上の回路を実現するためにプログラマブル回路を構成し得る。ＰＳは、オフチップに記憶された設定データにアクセスし得る。ＰＳは、設定データをＩＣ内にロードし、設定データを設定コントローラに通知する。設定コントローラは、一旦ロードされると設定データによって特定されるプログラマブル回路内の１つ以上の物理回路を実現する設定データを設定メモリセル内にロードし得る。
【０１１０】
ステップ４８５において、ＰＳは、ＰＳとプログラマブル回路との間にユーザ信号を通過させるために利用可能なレベルシフタをイネーブルし得る。ステップ４８５の後、ＩＣ全体は、動作可能である。別掲のとおり、ＰＳは、動作モードであり、プログラムコードを実行できる。さらに、プログラマブル回路は、動作モードである。実施例において、プログラマブル回路は、ユーザ特定信号の生成を介して設定に引き続きリセットタイプの状態から解放され得る。ユーザ特定信号は、ステップ４８０を参照して述べられる設定データのローディングの結果、プログラマブル回路内に実現される回路によって生成されるものである。
【０１１１】
図５は、この明細書中に開示される別の実施例に従うＩＣのための電力マネジメントの方法５００を説明する第２フローチャートである。より具体的に、方法５００は、この明細書の図１−４を参照して述べられたように構成されるＩＣのプログラマブル回路のパワーオフのための１つの技術を説明する。方法５００は、プログラマブル回路を含むＩＣのパワーマネジメントが、ＰＳによってどのように実行されるかを説明する。方法５００は、ＰＳとプログラマブル回路とがともに動作可能、たとえば動作モードにある状態で開始し得る。ＰＳは、プログラムコードを実行し得、プログラマブル回路内に実現される回路を動作させることができる。いくつかの信号またはイベントに応じて、ＰＳは、プログラマブル回路がオフされることを決定し、したがって、プログラマブル回路のパワーオフ処理を開始し得る。
【０１１２】
ステップ５０５が開始されると、ＰＳは、プログラマブル回路内に実現された回路の状態を記憶し、少なくとも一部において、プログラマブル回路が再びパワーオンされるときに引き続いて復元することができる、プログラマブル回路内のパワーオフ処理を開始し得る。パワーオフ処理は、プログラマブル回路に関連するので、一般にステップ５０５−５２０を含む。
【０１１３】
したがって、ステップ５０５において、ＰＳは、プログラマブル回路をアイドル状態に置く。たとえば、ＰＳは、任意のさらなるまたは新しいトランザクションがプログラマブル回路に入るのを防止しながら、プログラマブル回路を、進行中またはプログラマブル回路に与えられた任意の動作を完了できる状態に置く。プログラマブル回路に対するオペレーションが完了すると、たとえば、ＰＳは、プログラマブル回路、たとえばプログラマブル回路に与えられるゲート変動クロック信号などを停止し得る。したがって、プログラマブル回路は、もはや動作モードにない。
【０１１４】
ステップ５１０において、ＰＳは、プログラマブル回路内に実現される回路、たとえばユーザ回路についての状態情報を決定するように、プログラマブル回路に問い合わせる。実施例において、プログラマブル回路内に記憶されるデータは、設定リードバック機能、バウンダリスキャン機能などを使用してＰＳによって得られ得る。たとえば、プログラマブル回路内の１つ以上のメモリ内に記憶されるデータは、ＰＳによって得られ、または読み出され得る。そのようなデータは、係数のテーブルまたはプログラマブル回路内に実現される回路によって必要とされる他のデータを含み得る。別の例において、カリフォルニアサンノゼのＸｉｌｉｎｘ、Ｉｎｃから利用可能であるＭｉｃｒｏＢｌａｚｅ（登録商標）のようなソフトプロセッサ、がプログラマブル回路内に実現されると、レジスタ内に記憶された値と同様にプログラマブル回路内のソフトプロセッサのプログラムメモリの内容を取得することができる。
【０１１５】
ステップ５１５において、ＰＳは、プログラマブル回路から得られる状態情報をメモリに記憶し得る。実施例において、ＰＳは、オフチップに配置されるメモリ内に状態情報を記憶し得る、たとえば、ＰＳは、外部ＲＡＭ内に状態情報を記憶し得る。別の実施例において、ＰＳは、内部メモリ内に状態情報を記憶し得る。たとえば、ＰＳは、ＰＳ内に配置され図２を参照して述べられるＯＣＭ内に状態情報を記憶し得る。
【０１１６】
ステップ５２０において、ＰＳは、プログラマブル回路をパワーオフし得る。たとえば、ＰＳは、制御信号を経由して、プログラマブル回路を電力信号から切り離すようにスイッチに指示する。一旦ログラマブル回路がパワーオフされると、ＰＳは、通常の動作状態でオペレートしプログラムコードを実行し続ける。代わりに、プログラマブル回路のパワーオフに引き続いての後に、ＰＳは、任意的に低電力モードに置かれてもよい。低電力モードにある間、ＰＳは、プログラムコードを実行せず、システムクロックがたとえばフルスピードで動作している動作モードにあるときよりも著しく少ない電力を消費する。
【０１１７】
したがって、ステップ５２５−５４５は、自然に選択的であり得、ＰＳを低電力、たとえばスリープモードに置くためのステップを説明する。実施例において、たとえば、ＰＳは、プログラマブル回路のパワーオフに応じて低電力モードを開始するように構成され得る。別の実施例において、ＰＳは、ＩＣの外部から受ける信号または割り込みに応じて低電力モードに入るように指示されてもよい。
【０１１８】
ステップ５２５において、ＰＳは、クロックユニット内で動作するＰＬＬをバイパスし得る。ＰＬＬがバイパスされると、ＰＳは、内部で生成される基準クロックを用いて動作を開始し得る。ステップ５３０において、ＰＳは、バンドギャップ回路をパワーオフし得る。ステップ５３５において、ＰＳは、ＲＡＭをセルフリフレッシュモードに置き得る。ステップ５４０において、ＰＳは、ＲＡＭの終端キャリブレーション機能をディスエーブルし得る。ステップ５４５において、基準クロックは、ＰＳ内の電力消費をさらに低減するように分割された周波数であり得る。たとえば、およそ３０ＭＨｚの周波数を有する内部で生成されるクロックは、およそ１ＭＨｚに低く分割された周波数であり得る。
【０１１９】
図６は、この明細書中に開示される別の実施例に従うＩＣのための電力マネジメントの方法６００を説明する第３フローチャートである。より具体的には、方法６００は、ＩＣを低電力モード外にする方法の例を説明する。方法６００は、この明細書の図１−５を参照して述べられるＩＣによって実現され得る。一般に、方法６００は、ＰＳを低電力モード外にしてプログラマブル回路の再設定を実行する１つの技術を説明する。
【０１２０】
ステップ６０５において、ＰＳは、内部で生成される基準クロックの周波数分割を中止し得る。ＰＳは、ステップ６１０においてバンドギャップ回路をイネーブルし得、ステップ６１５においてＰＬＬをイネーブルし得る。一旦イネーブルされると、ＰＬＬは、もはやバイパスされず、ＰＳは、フルスピード、たとえばクロックユニットのＰＬＬによって出力されるクロック信号の周波数で動作を開始し得る。ステップ６２０において、ＰＳは、ＲＡＭをセルフリフレッシュモード外にし得る。ステップ６２５において、ＰＳは、終端キャリブレーション処理を起動または開始し得る。
【０１２１】
ステップ６３０において、ＰＳは、プログラマブル回路をパワーオンし得る。たとえば、ＰＳは、制御信号を経由してスイッチをオンしプログラマブル回路を電力信号に結合する。実施例において、ＰＳは、プログラマブル回路の設定を要求する信号または割り込みに応じて低電力モードからアウェイクし得る。たとえば、信号は、プログラマブル回路内における完全に新しい回路の実現、または、新しく特定される回路が実現される間少なくとも幾つかの回路がインタラプトされずに動作し続ける部分的に新しい回路の実現を要求し得る。ＰＳをロー電力モードからアウェイクする信号は、プログラマブル回路内に実現される特定の回路を特定したり、性能プロファイルパラメータを特定したりする。たとえば、ＰＳは、低電力モードまたはスリープモードからアウェイクしてプログラマブル回路の再設定、動的再設定、または部分的動的再設定を実行または開始する。
【０１２２】
ステップ６３５において、ＰＳは、プログラマブル回路内において実現するのために複数の異なる回路から回路を選択し得る。たとえば、１つ以上の回路設計は、ＩＣの外部のメモリ内に設定データの形で記憶される。ＰＳは、外部メモリ、たとえばフラッシュメモリまたはＲＡＭにアクセスし得る。複数の回路設計の各々は、さらに、性能プロファイルに関連付けられ得る。回路の各々の性能プロファイルは、ＰＳ内のメモリ、たとえばＰＳによって実行されるプログラムコード内、設定データを有する外部メモリ内、または別のメモリに記憶され得る。
【０１２３】
実施例において、設定データによって特定されるような複数の回路の各々は、機能的に等価であり得る。回路は、しかし、異なる電力量を消費し得、したがって、一般に、同じタスクまたは機能を実行するために回路の各々が要求する時間の量の点で、異なる性能特性示す。回路の各々の時間情報および電力消費情報とは、各回路の性能特性プロファイルの一部として特定され得る。
【０１２４】
いかなる場合においても、ＰＳは、性能プロファイル内の１つ以上の属性に従って対応する複数の回路の１つを選択するようにプログラムされ得る。１つの例において、ＰＳは、特定の所望の性能の要件を特定するＩＣの外部のソースからの信号を受け得る。性能要件は、タイミング、電力消費、または両者の組み合わせを特定し得る。ＰＳは、特定される性能特性にもっとも近く一致する回路を選択し得る。
【０１２５】
別の例において、ＰＳは、プログラマブル回路の再設定が実行されるときに、ＰＳ内に存在する動作状態に従って特定の回路を選択し得る。ＰＳが回路を選択し得る特定の方式は、与えられる異なる例によって限定されることを意図しない。
【０１２６】
ステップ６４０において、ＰＳは、選択された回路に対応する設定データをロードし得る。選択された回路のための設定データのロードは、プログラマブル回路内に回路が物理的に実現されることを生じさせる。たとえば、ＰＳは、外部メモリから設定データを読み、プログラマブル回路内の設定コントローラに設定データを与え得る。設定コントローラは、受けた設定データを適切な設定メモリセルに書き込み、それによって、プログラマブル回路内に回路設計を物理的に実現する。
【０１２７】
図６は、ＰＳがプログラム回路の少なくとも一部を再構成して、パワーオフ前にプログラム回路内に実現されていたものとは異なる回路を実現する例を示すが、他の例においてはＰＳはプログラム回路をパワーオンしてもよい。一旦パワーオンされると、ＰＳは、プログラマブル回路の再設定を実行する必要はない。代わりに、プログラマブル回路に以前に実現されていた回路は、そのままとどまり得る。ＰＳは、そして、メモリから、プログラマブル回路内の関連するメモリおよび／またはレジスタに、記憶された回路の状態情報をロードし戻し、プログラマブル回路のパワーダウンに先立って回路の動作状態を少なくとも部分的に復元する。一旦状態が復元されると、または部分的に記憶されると、プログラマブル回路は、リセット状態から脱して、動作モードで機能する。
【０１２８】
図中のフローチャートは、この明細書中に開示される１つ以上の実施例に従うシステム、方法およびコンピュータプログラム製品の可能性のある実施例のアーキテクチャと、機能と、動作とを示す。この点で、フローチャートのブロックの各々は、特定される論理機能を実現する実行可能なプログラムコードの１つ以上の部分を備えるモジュール、セグメント、またはコード、を表わし得る。
【０１２９】
なお、幾つかの代替的な実行例において、ブロック内に示される機能は、図に示される順序と異なって生じてもよい。たとえば、連続して示される２つのブロックは、実際に、含まれる機能によって、実質的に同時に実行されてもよいし、あるいは、ときにはブロックは逆の順序で実行されてもよい。なお、フローチャートの例のブロックの各々と、フローチャートの例のブロックの組み合わせとは、特定の機能、または作用、あるいは特別な目的のハードウェアと実行可能な指令との組み合わせを実行する特別な目的のハードウェアベースのシステムによって実現され得る。
【０１３０】
１つ以上の実施例は、ハードウェアまたはハードウェアとソフトウェアとの組み合わせとして実現され得る。１つ以上の実施例は、１つのシステムに集中される形、または異なる要素がいくつかの相互接続されたシステムをまたがって分配される形で実現され得る。本明細書で述べられた方法の少なくとも一部を実行するように適合される任意の種類のデータ処理システムまたは他の装置が好適である。
【０１３１】
１つ以上の実施例は、さらに、ここで述べられた方法の実行例をイネーブルする全ての特徴を含むコンピュータプログラム製品のようなデバイスに組み込まれ得る。デバイスは、プログラムコードを記憶する、非一時的データ記録媒体、たとえばコンピュータが使用可能媒体またはコンピュータが読み取り可能媒体な、を含み得る。プログラムコードは、メモリとプロセッサとを備えるシステム内にロードされ実行されると、システムにこの明細書中に述べられた機能の少なくとも一部を実行させる。非一時的データ記録媒体の例は、光媒体、磁気媒体、光磁気媒体、ランダムアクセスメモリまたはハードディスクのようなコンピュータメモリなどを含み得るが、それらに限定されない。
【０１３２】
「コンピュータプログラム」、「ソフトウェア」、「アプリケーション」、「コンピュータが使用可能なプログラムコード」、「プログラムコード」、「実行可能なコード」、それらの変形および／または組み合わせ、この文脈において、いかなるの言語、コードまたは表記は、情報処理能力を有するシステムに直接または以下のいずれかあるいは両方の後に特定の機能を実行させることを意図した一組の指令の任意の表現を意味する。ａ）別の言語、コードまたは表記への変換、ｂ）異なる材料形態での再生。たとえば、プログラムコードは、サブルーチン、機能、処理、オブジェクトメソッド、オブジェクトインプリメンテーション、実行可能なアプリケーション、アプレット、サーブレット、ソースコード、オブジェクトコード、共有ライブラリ／ダイナミックロードライブラリおよび／またはコンピュータシステムで実行するために設計される他の指令のシーケンスを含み得る。
【０１３３】
「ａ」および「ａｎ」の用語は、ここで使用されるように、１つ以上として定められる。「複数」の用語は、ここで使用されるように、２つ以上として定められる。「別の」の用語は、ここで使用されるように、少なくとも第２またはそれ以上のものとして定められる。「含む」および／または「有する」の用語は、ここで使用されるように、備える、すなわちオープンランゲージとして定められる。「結合され」の用語は、ここで使用されるように、いかなる要素も介在せずに直接か１つ以上の要素を介在して間接的に接続されるものとして定められる。２つの要素は、機械的に、電気的に結合されるか、または通信チャネル、配線、ネットワークあるいはシステムを介して通信可能にリンクされ得る。
【０１３４】
この明細書中に開示される１つ以上の実施例は、その中の精神または本質的属性から逸脱することなく他の形で実施され得る。したがって、前述の明細書よりも、１つ以上の実施例の範囲を示す、以下の請求項が参照されるべきである。   
【図１】
0005654143.tif 000002
【図２】
0005654143.tif 000003
【図３】
0005654143.tif 000004
【図４】
0005654143.tif 000005
【図５】
0005654143.tif 000006
【図６】
0005654143.tif 000007