(57)【特許請求の範囲】
【請求項１】
装置であって、
処理サブシステムを備え、前記処理サブシステムは、
複数のプロセッサ回路と、
共有回路と、
周辺割込に応答して、前記複数のプロセッサ回路の少なくとも１つによって前記周辺割込が示すタスクの実行を開始するように構成される割込制御回路とを含み、前記処理サブシステムは、前記複数のプロセッサ回路の一時停止に応答して電力遮断制御信号を生成するように構成され、さらに前記装置は、
周辺割込の受信と前記処理サブシステムへの電力が無効化されることとに応答して電力投入制御信号を生成するように構成されかつ配置されるプロキシ割込制御回路と、
電力管理回路とを備え、前記電力管理回路は、
前記電力遮断制御信号、および前記共有回路が別の処理サブシステムによって不使用であることに応答して、前記割込制御回路を含む前記処理サブシステムへの電力を無効化し、
前記電力投入制御信号に応答して前記プロキシ割込制御回路を無効化し、かつ
前記電力投入制御信号に応答して前記処理サブシステムへの電力を有効化する、ように構成されかつ配置される、装置。
【請求項２】
前記処理サブシステムは、前記複数のプロセッサ回路の１つがしきい値期間の間アイドルであることに応答して前記プロセッサ回路の前記１つを一時停止するようにさらに構成される、請求項１に記載の装置。
【請求項３】
前記処理サブシステムは、第１の電力ゲーティング制御信号を生成することによって前記複数のプロセッサ回路の前記１つを一時停止するように構成され、
前記電力管理回路は、前記第１の電力ゲーティング制御信号に応答して前記複数のプロセッサ回路の前記１つへの電力を無効化するように構成される、請求項２に記載の装置。
【請求項４】
前記処理サブシステムは、前記複数のプロセッサ回路の一時停止に応答して、前記電力遮断制御信号を生成する前に前記プロキシ割込制御回路を有効化するようにさらに構成される、請求項１から３のいずれかに記載の装置。
【請求項５】
前記割込制御回路は、入力制御信号に応答して前記電力遮断制御信号を生成するように構成されかつ配置される、請求項１に記載の装置。
【請求項６】
前記割込制御回路は、前記複数のプロセッサ回路の前記一時停止に応答して前記電力遮断制御信号を生成するように構成される、請求項１に記載の装置。
【請求項７】
前記複数のプロセッサ回路の１つは、前記複数のプロセッサ回路の前記一時停止に応答して前記電力遮断制御信号を生成するように構成される、請求項１に記載の装置。
【請求項８】
方法であって、
電力管理回路を用いて、
第１のサブシステムと、前記第１のサブシステムの共有回路を用いて１つ以上の動作を行なうように構成される第２のサブシステムとに電力を与え、
前記第１のサブシステムからの電力遮断要求信号に応答して、
前記共有回路が前記第２のサブシステムによって使用されている間は前記第１のサブシステムに電力を与え続け、かつ
前記共有回路が前記第２のサブシステムによって不使用であることに応答して前記第１のサブシステムから電力を除去することと、
前記第１のサブシステムから電力を除去する前にプロキシ割込コントローラを有効化することと、
前記プロキシ割込コントローラを用いて周辺割込についてデータバスをモニタし、前記周辺割込に応答して電力投入制御信号を生成することと、
前記電力管理回路を用いて前記第１のサブシステムに電力を与えることと、
前記第１のサブシステムに電力を与えることに応答して、前記プロキシ割込コントローラを無効化すること、
を備える、方法。
【請求項９】
前記第２のサブシステムを用いて、前記電力遮断要求信号と前記共有回路が前記第２のサブシステムによって不使用であることとに応答して電力遮断認証信号を生成することをさらに備える、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
開示は一般的に回路の電力管理制御に関する。
【背景技術】
【０００２】
背景
プログラマブル集積回路（ＩＣ）は、特定される論理機能を果たすようにプログラミング可能なデバイスである。一種のプログラマブルＩＣであるフィールドプログラマブルゲートアレイ（ＦＰＧＡ）は典型的にプログラマブルタイルのアレイを含む。これらのプログラマブルタイルは、たとえば、入出力ブロック（ＩＯＢ）、コンフィギュラブル論理ブロック（ＣＬＢ）、専用ランダムアクセスメモリブロック（ＢＲＡＭ）、乗算器、デジタル信号処理ブロック（ＤＳＰ）、プロセッサ、クロックマネージャ、遅延ロックループ（ＤＬＬ）、バスまたは周辺構成要素相互接続エクスプレス（ＰＣＩｅ）およびイーサネット（登録商標）などのネットワークインターフェイスなどを含むことができる、さまざまな種類の論理ブロックを備える。
【０００３】
各々のプログラマブルタイルは典型的に、プログラマブル相互接続とプログラマブル論理との両方を含む。プログラマブル相互接続は典型的に、プログラマブル相互接続点（ＰＩＰ）によって相互接続される異なる長さの多数の相互接続線を含む。プログラマブル論理は、たとえば、関数発生器、レジスタ、算術論理などを含むことができるプログラマブル素子を用いてユーザ設計の論理を実現する。
【０００４】
プログラマブル相互接続およびプログラマブル論理は典型的に、プログラマブル素子をどのように構成するかを規定する内部コンフィギュレーションメモリセルの中にコンフィギュレーションデータストリームをロードすることによってプログラミングされる。コンフィギュレーションデータは、メモリから（たとえば外部ＰＲＯＭから）読出される、または外部デバイスによってＦＰＧＡに書込まれることができる。そうして、個別のメモリセルの集合的な状態がＦＰＧＡの機能を決める。
【０００５】
あるプログラマブルＩＣは、プログラムコードを実行可能な内蔵プロセッサを含む。プロセッサは、ＩＣの「プログラマブル回路構成」とも総称されるプログラマブル論理回路構成およびプログラマブル相互接続回路構成を含む同じダイの一部として作製可能である。ＩＣ上で利用可能であり得るプログラマブル回路構成の「プログラミング」または「構成」からプロセッサ内でのプログラムコードの実行を区別可能であることを認めるべきである。ＩＣのプログラマブル回路構成をプログラミングするまたは構成するという行為の結果、プログラマブル回路構成内のコンフィギュレーションデータによって特定されるような、異なる物理的回路構成の実現例が得られる。
【発明の概要】
【課題を解決するための手段】
【０００６】
概要
処理サブシステムおよび電力管理サブ回路を含む装置が開示される。処理サブシステムは、複数のプロセッサ回路および割込制御回路を含む。割込制御回路は、周辺割込に応答して、複数のプロセッサ回路の少なくとも１つによって周辺割込が示すタスクの実行を開始するように構成される。処理サブシステムは、複数のプロセッサ回路の一時停止に応答して電力遮断（power-down）制御信号を生成するように構成される。電力管理回路は、電力遮断制御信号に応答して、割込制御回路を含む処理サブシステムへの電力を無効化（disable）する。電力管理回路は、電力投入（power-up）制御信号に応答して処理サブシステムへの電力を有効化（enable）する。装置は、周辺割込の受信と処理サブシステムへの電力が無効化されることとに応答して電力投入制御信号を生成するように構成されるプロキシ割込制御回路も含む。
【０００７】
システムも開示される。システムは、共有回路と、複数のプロセッサ回路と、割込制御回路とを有する第１のサブシステムを含む。プロセッサ回路は、共有回路を用いて１つ以上の動作を行なうように構成される。周辺割込に応答して、割込制御回路は、複数のプロセッサ回路の少なくとも１つによって周辺割込が示すタスクの実行を開始する。第１のサブシステムは、複数のプロセッサ回路の一時停止に応答して電力遮断制御信号を生成するように構成される。システムは、共有回路を用いて１つ以上の動作を行なうように構成される回路を有する第２のサブシステムも含む。システムは、電力管理回路およびプロキシ割込制御回路を有する第３のサブシステムも含む。電力管理回路は、電力遮断制御信号と共有回路が第１および第２のサブシステムによって不使用であることとに応答して、割込制御回路を含む第１のサブシステムへの電力を無効化する。電力管理回路は、電力投入制御信号に応答して第１のサブシステムへの電力を有効化もする。プロキシ割込制御回路は、周辺割込の受信と第１のサブシステムへの電力が無効化されることとに応答して、電力投入制御信号を生成する。
【０００８】
電力管理回路を動作させるための方法も開示される。電力管理回路を用いて第１のサブシステムおよび第２のサブシステムに電力が与えられる。第２のサブシステムは、第１のサブシステムの共有回路を用いて１つ以上の動作を行なうように構成される。第１のサブシステムからの電力遮断要求信号に応答して、共有回路が第２のサブシステムによって不使用である間は電力が第１のサブシステムに与えられ続ける。共有回路が第２のサブシステムによって不使用であることに応答して、電力は第１のサブシステムから除去される。
【０００９】
他の特徴は、以下の詳細な説明および請求項を考察することによって認識されるであろう。
【００１０】
以下の詳細な説明の検討によりおよび図面の参照により、開示される方法および回路のさまざまな局面および特徴が明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】１つ以上の実現例に整合する、アプリケーション処理回路、電力管理回路、およびプロキシ割込制御回路を有する第１のデバイスを示す図である。
【図２】１つ以上の実現例に整合する、アプリケーション処理回路、電力管理回路、およびプロキシ割込制御回路を有する第２のデバイスを示す図である。
【図３】１つ以上の実現例に従うシステムを示す図である。
【図４】１つ以上の実現例に整合する、個別のサブシステムの電力を制御するためのプロセスを示す図である。
【図５】１つ以上の実現例に整合する、割込コントローラ、プロキシ割込コントローラ、および電力管理回路によって行なわれる例示的なプロセスを示す図である。
【図６】１つ以上の実現例に整合する、構成され得るプログラマブルＩＣを示す図である。
【発明を実施するための形態】
【００１２】
図面の詳細な説明
ある処理サブシステムは、アイドル時に節電するように一時停止され得るまたは電力遮断され得る複数のプロセッサを含む。処理サブシステムは典型的に、プロセッサが一時停止されている間も電力を消費し続ける他の回路を含む。これらの回路は一般的に、さまざまなタスクに必要であるために、電力遮断されない。たとえば、処理サブシステムは、他のサブシステムと共有されるメモリコントローラなどの回路を含むことがある。別の例として、処理サブシステムは典型的に、プロセッサのタスクが割込によって開始されると、一時停止されたプロセッサを起動させるように構成される割込コントローラを含む。割込コントローラは一時停止されたプロセッサを起動させるのに必要であるので、プロセッサが一時停止された際にその電源を遮断することができない。
【００１３】
処理サブシステム全体の電力が遮断されるようにする、すなわちそれにより電力消費を低減する回路および方法が開示される。ある実現例では、システムは、プロセッサの組および割込制御回路を有する処理サブシステムを含む。電力管理回路は、不使用の際、（割込コントローラを含む）処理サブシステム回路への電力を無効化するように構成される。ある実現例では、処理サブシステムは、プロセッサのすべてがあるしきい値期間の間一時停止されると、電力管理回路に電力遮断要求信号を与える。システムは、処理サブシステムとは独立して電力供給されるプロキシ割込コントローラを含む。プロキシ割込コントローラは、割込に応答して、電力管理回路に処理サブシステムへの電力を有効化させるように構成される。
【００１４】
ある実現例では、処理サブシステムは、少なくとも１つの他のサブシステムと共有される１つ以上の回路を含む。電力管理回路は、電力遮断要求信号が受信されかつ電力遮断認証信号が処理サブシステムの共有回路を用いる他のサブシステムの各々によって受信された後に、処理サブシステム回路への電力を無効化するようにのみ構成される。
【００１５】
以下の説明では、本明細書中に提示される具体例を記載するように数多くの具体的詳細を述べる。しかしながら、当業者には、以下に与えるすべての具体的な詳細がなくても、１つ以上の他の例および／またはこれらの例の変形を実践し得ることが明らかであるべきである。他の事例では、本明細書中の例の説明を曖昧にしないために周知の特徴を詳細に説明していない。図示の容易のため、同じ項目を参照するのに同じ参照番号を異なる図で用いることがあるが、代替的な例では項目は異なることがある。
【００１６】
ここで図に注目して、図１は、１つ以上の実現例に従う、処理サブシステム、電力管理回路、およびプロキシ割込制御回路を有する第１のデバイス１００を示す。処理サブシステム１１０は、１つ以上の処理回路１１２および割込制御回路１１４を含む。割込制御回路１１４は、周辺割込１２６をモニタし、それに応答して処理回路１１２に対するタスクを開始するように構成される。割込は、いくつかのさまざまなプロセスをトリガし得る。一例として、システムに接続されるハードウェアデバイスが割込を生成して、システムのメモリに記憶されるデータ値を読出し得る。
【００１７】
電力管理回路１０２は、制御信号１２１、１２２、１２３、および１２４に応答して、電力制御信号１２０を与えて処理サブシステム１１０の電力消費を調整する。制御信号は、たとえば、電力遮断制御信号１２１、電力ゲーティング（gating）制御信号１２２、電力アンゲーティング（ungating）制御信号１２３、および電力投入制御信号１２４を含んでもよい。
【００１８】
電力管理回路１０２は、処理サブシステム１１０から受信する電力ゲーティング／電力アンゲーティング制御信号に応答して処理回路１１２のうちさまざまなものを一時停止／再開するように構成される。電力管理回路１０２は、電力遮断制御回路に応答して、（割込制御回路１１４を含む）処理サブシステム１１０への電力を無効化するように構成される。電力管理回路１０２は、電力投入制御信号１２４に応答して処理サブシステム１１０への電力を有効化するようにも構成される。たとえば、処理回路による動作を要件とする割込が受信されることがある。しかしながら、以上で示したように、処理サブシステム１１０への電力が無効化されている間は、周辺割込のモニタに割込制御回路１１４を利用することができない。
【００１９】
プロキシ割込制御回路１０４は、処理サブシステムへの電力が無効化された場合に周辺割込をモニタするように構成される。プロキシ割込制御回路１０４は、処理回路１１２のうち１つに対する周辺割込に応答して電力投入制御信号１２４を生成するように構成される。電力投入制御信号に応答して、電力管理回路１０２は処理サブシステム１１０への電力を有効化する。
【００２０】
ある実現例では、プロキシ割込コントローラは、処理サブシステムが与えるイネーブル信号１２８に応じて有効化／無効化される。これに代えて、電力管理回路がイネーブル信号１２８を与えてもよい。ある実施形態では、プロキシ制御回路は、電力管理回路に与えられる制御信号１２１、１２２、および１２３をモニタして、処理サブシステムがいつ無効化されているかを判断するように構成される。
【００２１】
ある実現例では、電力管理回路は、複数のサブシステムのための電力を制御するように適合されてもよい。図２は、１つ以上の実現例に従う、処理サブシステム、電力管理回路、およびプロキシ割込制御回路を有する第２のデバイスを示す。デバイス２００は、図１を参照して説明した処理サブシステム１１０、電力管理回路１０２、およびプロキシ割込制御回路１０４と同様の、第１の処理サブシステム２１０、電力管理回路２０２、およびプロキシ割込制御回路２０４を含む。この例では、デバイス２００は、第２の処理サブシステム２３０も含む。
【００２２】
処理サブシステム２１０および２３０の各々は、処理回路２１２および２３２のそれぞれの組と、周辺割込２２６をモニタし、これに応答して処理回路２１２および／または２３２に対するタスクを開始するように構成されるそれぞれの割込制御回路２１４および２３４とを含む。
【００２３】
電力管理回路２０２は、処理サブシステムから受信する制御信号２２２および２３６の組に応答して、電力制御信号２２０および２３８を与えて、処理サブシステム２１０および２３０の電力消費を調整する。制御信号２２２および２３６の各組は、たとえば、電力遮断／電力ゲーティングおよび電力投入／電力アンゲーティング制御信号を含んでもよい。電力管理回路２０２は、それぞれの処理サブシステムから受信した電力ゲーティング／電力アンゲーティング信号に応答して処理回路２１２および２３２のさまざまなものを一時停止／再開するように構成される。電力管理回路２０２は、処理サブシステム２１０からの電力遮断制御信号に応答して処理サブシステム２１０への電力を無効化し、かつ処理サブシステム２３０からの電力遮断制御信号に応答して処理サブシステム２３０への電力を無効化するように構成される。電力管理回路２０２は、処理サブシステム２１０または２３０のうち１つを示す電力投入制御信号２２４に応答して、処理サブシステム２１０または２３０の１つへの電力の有効化もする。
【００２４】
プロキシ割込制御回路２０４は、処理サブシステム２１０および２３０のいずれかのための電力が無効化された場合に周辺割込をモニタする。プロキシ割込コントローラは、たとえば、処理サブシステム２１０および２３０の１つが電力遮断される前にアサートされるイネーブル制御信号２２８によって有効化されてもよい。処理サブシステムのうち電力遮断されたものへの周辺割込に応答して、プロキシ割込制御回路２０４は電力投入制御信号を生成して電力管理回路２０２に処理サブシステムへの電力投入をさせる。
【００２５】
図３は、１つ以上の実現例に従うシステムを示す。システム３００は、第１のサブシステム３３０、第２のサブシステム３８０、および第３のサブシステム３１０を含む。第１のサブシステム３３０は、マルチコアプロセッサ３４４および割込制御回路３４２を有する。この例では、マルチコアプロセッサ３４４は４つの処理コア３４６、３４８、３５０、および３５２を含む。周辺割込に応答して、割込制御回路３４２は、制御信号３５４を介して処理コアの１つによってタスクの実行を開始するように構成される。割込制御回路３４２は、処理コアのすべてが一時停止されるのに応答して電力遮断制御信号３７１も生成する。
【００２６】
第１のサブシステム３３０は、接続３６４を介してシステム３００の他のサブシステムによって共有される１つ以上の回路３６０を含む。たとえば、システム３００の第２のサブシステム３８０は、第１のサブシステムの共有回路３６０を用いて１つ以上の動作を行なうように構成される回路構成を含み得る。ある実現例では、第２のサブシステムは、ある適用例では、第１のサブシステムに含まれる共有メモリコントローラ（たとえば３６０）を介してシステム（図示せず）のメモリにアクセスするように構成され得るプログラマブル論理回路を含む。
【００２７】
第３のサブシステム３１０は、第１のサブシステムの電力消費を調整するように構成される電力管理回路３２０を含む。この例では、第１のサブシステム３３０は、第２のサブシステム３８０および第３のサブシステム３１０とは別個の電力ドメインで動作し、第３のサブシステム３１０によって独立して電力遮断され得る。
【００２８】
ある実現例では、システム３００は、フルパワーモードおよびローパワーモードで動作するように構成される。フルパワーモードで動作されると、電力ドメインの各々が電力投入される。ローパワーモードで動作されると、第１のサブシステムの電力ドメインが電力遮断される。第２および第３のサブシステムの電力ドメインは、システム３００がローパワーモードで動作する際には電力投入されたままである。ローパワーモードでは、第１のサブシステムの電力ドメインが電力遮断されるので、消費される電力がより少ない。参照の容易のため、第１のサブシステムに電力供給するのに用いられる電力ドメインが「フルパワードメイン」と称されることがあり、第３のサブシステムに電力供給するのに用いられる電力ドメインが「ローパワードメイン」と称されることがある。フルパワードメインは、システム３００がフルパワーモードで動作される場合にのみ電力投入される。ローパワードメインは、システム３００がローパワーモードで動作する場合に電力投入される唯一の電力ドメインである。
【００２９】
この例では、第３のサブシステム３１０は、第１のサブシステム３３０からの制御信号３７１、３７２、および３７３に応答して電力制御信号３７０を介して第１のサブシステム３３０の電力消費を調整するように構成される電力管理回路３２０を含む。たとえば、電力管理回路３２０は、電力遮断制御信号と、共有回路３６０が第２および第３のサブシステム３８０および３１０によって不使用であることとに応答して、割込制御回路を含む第１のサブシステムへの電力を無効化し得る。たとえば、ある実施形態では、第１のサブシステム３３０は、メモリ（図示せず）へのアクセスを制御するためのメモリコントローラを含む。第２のサブシステム３８０および第３のサブシステム３１０のさまざまな回路は、メモリコントローラを介してメモリにアクセスし得る。この例では、第３のサブシステムは、処理コア３２６および３２７とそれぞれの割込制御回路３２５とを含む処理ユニット３２４を含む。処理コア３２６および３２７は、第１のサブシステムの共有メモリコントローラを介してメモリにアクセスし得る。
【００３０】
この例では、電力管理回路３２０は、共有回路３６０を用いる他のサブシステムが共有回路が使用されていないことを示す認証信号を与えた後にのみ第１のサブシステム３３０を電力遮断するように構成される。この例では、第２のサブシステムは、第１のサブシステムが共有回路３６０を必要としていない場合に電力管理回路３２０に認証信号３１２を与える。同様に、処理ユニット３２４は、処理ユニット３２４が共有回路３６０を必要としていない場合に電力管理回路３２０に認証信号３１４を与える。ある他の実現例では、第１のサブシステムは、認証信号が共有回路３６０が使用されていないことを示す場合にのみ、認証信号を受信しかつ電力遮断制御信号を生成するように構成される。
【００３１】
電力管理回路３２０は、電力投入制御信号３７４に応答して第１のサブシステムへの電力を有効化する。電力投入制御信号３７４は、プロキシ割込制御回路３２２がイネーブル制御信号３７６によって有効化されている間に第１のサブシステムに対応する周辺割込３７８を受信することに応答して、プロキシ割込制御回路３２２によって生成される。
【００３２】
この例では、電力管理回路３２０は、第１のサブシステムからの電力ゲーティング制御信号３７２または電力アンゲーティング制御信号３７３の受信に応答してマルチコアプロセッサ３４４のさまざまなコア３４６、３４８、３５０、および３５２を一時停止させる／起動させるようにも構成される。第１のサブシステムは、ゲーティング制御信号を生成して、しきい値期間の間アイドルであった処理コアの１つを一時停止させる。第１のサブシステムは、周辺デバイスまたは別のサブシステムからの割込に応答して、処理に必要な場合に、アンゲーティング制御信号を生成して、一時停止された処理コアを起動させる。システム３００のサブシステムは、以上で論じたものに加えて、他のサブシステムと共有されてもされなくてもよいさまざまな他の回路も含んでもよい。たとえば、この例では、第１および第３のサブシステムはそれぞれ通信Ｉ／Ｏ回路３６２および３６４を含む。別の実現例では、通信Ｉ／Ｏ回路３６２は、第３のサブシステム３１０と共有されてもよく、通信Ｉ／Ｏ回路３６４が省略されてもよい。第１のサブシステムが複数の共有回路を含む場合、第１のサブシステムは、共有回路の各々が不使用でなければ、電力管理回路３２０によって電力遮断されない。
【００３３】
図４は、１つ以上の実現例に従う、個別のサブシステムの電力を制御するためのプロセスを示す。システム起動４０２時にフルパワードメインが無効化されれば、決定ブロック４０４は、電力管理回路を用いて、ブロック４０６でフルパワー（ＦＰ）ドメインを有効化するようプロセスに命令する。
【００３４】
図３を参照して論じたように、フルパワードメインを用いて、複数の処理コアを有する処理回路を含む第１のサブシステムに電力供給し得る。フルパワードメインの電力投入後、（必要に応じて）ブロック４１０で第１のサブシステムのデフォルト処理コアを起動させてもよい。たとえば、ある実現例では、処理に必要な場合、１つの処理コアがスタートアップ時に起動するよう指定されてもよい。処理回路はブロック４０８でアクティブである。処理コアがアイドルであり、一時停止の準備ができていると、処理コアは、ブロック４１２で電力管理回路を用いて一時停止される。
【００３５】
決定ブロック４１４で、処理回路の処理コアの１つ以上が一時停止されていなければ、処理回路は、ブロック４０８でアクティブな状態で動作し続ける。そうでない場合、処理回路の処理コアのすべてが一時停止されれば、節電のためにフルパワードメインが電力遮断され得る可能性がある。決定ブロック４１６で処理コアのすべてが一時停止されれば、プロセスは決定ブロック４２０に向けられる。メモリにアクセスするために他のサブシステムが第１のサブシステムの共有メモリコントローラ（ＭＣ）を必要としている間は、プロセスは決定ブロック４２０を繰返す。他のサブシステムが共有メモリコントローラを必要としていなければ、たとえば、プロセスは、ブロック４２２でメモリをセルフリフレッシュモードにしてさらなる電力を節約し得る。ブロック４１８で、電力管理回路は、第１のサブシステムに電力供給するフルパワードメインを電力遮断する。
【００３６】
第１のサブシステムに対応する周辺割込が決定ブロック４１４で受信されるまで、フルパワードメインは電力遮断されたままである。周辺割込に応答して、ブロック４０６で、電力管理回路を用いてフルパワードメインが電力投入されてプロセスが繰返される。周辺割込を処理するのに特定の処理コアが必要であれば、プロセスは、ブロック４１０で処理コアを起動させる。
【００３７】
図５は、例示的な実現例における、割込コントローラ、プロキシ割込コントローラ、および電力管理回路によって行なわれるプロセスを示す。システム起動時５０２に、電力管理回路はまずアイドル状態５３０にあり、プロキシ割込コントローラはまずアイドル状態５２０にある。割込制御回路は、状態５３４でフルパワードメインに電力投入するように電力管理回路に命令することによって、状態５０６でプロセッサの電源オンを開始する。その後、電力管理回路はアイドル状態５３０に戻る。
【００３８】
周辺割込に応答して、割込制御回路は状態５０４に遷移し、周辺割込によって示されるタスクのスケジューリングを行なう。必要に応じて、割込制御回路は、状態５０４で、たとえば電力アンゲーティング信号を生成することによって、一時停止されたプロセッサを起動させてもよい。電力アンゲーティング信号に応答して、電力管理回路は、状態５３６で、電力アンゲーティング信号が示すプロセッサを起動させ、次にアイドル状態に戻る。
【００３９】
プロセッサがしきい値期間の間アイドルであれば、状態５１０で電力ゲーティング信号が生成され、アイドル状態のプロセッサの電力を遮断する。ある実現例では、電力ゲーティング信号はプロセッサの１つによって生成されてもよい。ある他の実現例では、電力ゲーティング信号は割込制御回路などの別の制御回路によって生成されてもよい。電力ゲーティング信号に応答して、電力管理回路は状態５３８に遷移し、電力ゲーティング信号が示すプロセッサを一時停止させる。プロセッサを一時停止させた後、電力管理回路はアイドル状態５３０に戻る。
【００４０】
電力遮断要求信号に応答して、処理サブシステムは状態５１２に遷移して電力遮断されるのを待つ。電力管理回路は状態５３１に遷移し、共有回路を用いる回路に電力遮断の認証を要求してくる。共有回路を用いる各々のサブシステムからの認証信号の受信に応答して、電力管理回路はプロキシ割込コントローラを有効化し、状態５３２でフルパワードメイン（ＦＰＤ）の電力を遮断する。その後、電力管理回路はアイドル状態５３０に戻り、処理サブ回路は電力遮断状態５０８に遷移する。
【００４１】
有効化されると、プロキシ割込制御回路は、状態５２２で周辺割込をモニタする。フルパワードメインによって電力供給されるプロセッサの１つに対する周辺割込に応答して、プロキシ割込制御回路は、状態５２４で、電力投入制御信号を生成する。電力投入制御信号に応答して、電力管理回路は、状態５３４でフルパワードメインに電力投入し、次にアイドル状態５３０に戻る。フルパワードメインが電力投入された後、プロキシ割込制御回路はアイドル／無効化状態５２０に遷移し、割込制御回路は状態５０６に遷移して戻る。
【００４２】
図６は、１つ以上の実現例に従って構成され得るプログラマブルＩＣ６０２を示す。プログラマブルＩＣはシステムオンチップ（ＳＯＣ）とも称されることがあり、これは、処理サブシステム６１０およびプログラマブル論理サブシステム６３０を含む。処理サブシステム６１０は、ユーザプログラムの実行を介してユーザ設計のソフトウェア部分を実現するようにプログラミングされ得る。プログラムはコンフィギュレーションデータストリームの一部として特定されてもよく、またはオンチップもしくはオフチップデータ記憶デバイスから取出されてもよい。処理サブシステム６１０は、１つ以上のソフトウェアプログラムを実行するためのさまざまな回路６１２、６１４、６１６、および６１８を含んでもよい。回路６１２、６１４、６１６、および６１８は、たとえば、１つ以上のプロセッサコア、浮動小数点ユニット（ＦＰＵ）、割込処理ユニット、オンチップメモリ、メモリキャッシュ、および／またはキャッシュコヒーレント相互接続を含んでもよい。
【００４３】
プログラマブルＩＣ６０２のプログラマブル論理サブシステム６３０は、ユーザ設計のハードウェア部分を実現するようにプログラミングされてもよい。たとえば、プログラマブル論理サブシステムは、コンフィギュレーションデータストリーム中に特定される回路の組を実現するようにプログラミングされ得るいくつかのプログラマブルリソース６３２を含んでもよい。プログラマブルリソース６３２は、プログラマブル相互接続回路と、プログラマブル論理回路と、コンフィギュレーションメモリセルとを含む。プログラマブル論理は、たとえば、関数生成器、レジスタ、算術論理などを含む可能性があるプログラマブル素子を用いてユーザ設計の論理を実現する。プログラマブル相互接続回路は、プログラマブル相互接続点（ＰＩＰ）によって相互接続される異なる長さの多数の相互接続線を含んでもよい。
【００４４】
プログラマブルリソース６３２は、コンフィギュレーションメモリセルにコンフィギュレーションデータストリームをロードすることによってプログラミングされてもよく、これにより、プログラマブル相互接続回路およびプログラマブル論理回路がどのように構成されるかが規定される。次に個別のメモリセルの集合的な状態によってプログラマブルリソース６３２の機能が決まる。コンフィギュレーションデータは、外部デバイスによってメモリから（たとえば外部ＰＲＯＭから）読出され得る、またはプログラマブルＩＣ６０２中に書込まれ得る。ある実現例では、プログラマブル論理サブシステム６３０中に含まれるコンフィギュレーションコントローラ６３４がコンフィギュレーションデータをコンフィギュレーションメモリセル中にロードし得る。ある他の実現例では、プロセッササブシステム６１０が実行するスタートアッププロセスによってコンフィギュレーションデータをコンフィギュレーションメモリセル中にロードしてもよい。
【００４５】
プログラマブルＩＣ６０２は、プログラマブル論理サブシステム６３０内に実現される回路構成に処理サブシステム６１０を相互接続するためのさまざまな回路を含んでもよい。この例では、プログラマブルＩＣ６０２は、処理サブシステム６１０およびプログラマブル論理サブシステム６３０のさまざまなデータポート同士の間でデータ信号を経路設定することができるコアスイッチ６２６を含む。コアスイッチ６２６は、プログラマブル論理サブシステム６３０または処理サブシステム６１０のいずれかと内部データバスなどのプログラマブルＩＣの他のさまざまな回路との間でもデータ信号を経路設定してもよい。これに代えてまたはこれに加えて、処理サブシステム６１０は、−コアスイッチ６２６をバイパスして−プログラマブル論理サブシステムに直接に接続するインターフェイスを含んでもよい。そのようなインターフェイスは、たとえば、ＡＲＭによって公開されるようなＡＭＢＡ  ＡＸＩプロトコル仕様（ＡＸＩ）を用いて実現されてもよい。
【００４６】
ある実現例では、処理サブシステム６１０およびプログラマブル論理サブシステム６３０は、メモリコントローラ６２１を介してオンチップメモリ６２２またはオフチップメモリ（図示せず）のメモリ場所も読出してもよいまたはこれに書込んでもよい。１６ビット、３２ビット、ＥＣＣ付加１６ビットなどを問わずデュアルデータレート（ＤＤＲ）２、ＤＤＲ３、ローパワー（ＬＰ）ＤＤＲ２型メモリを含むがそれらに限定されない１つ以上の異なる種類のメモリ回路と通信するように、メモリコントローラ６２１を実現することができる。メモリコントローラ６２１が通信可能な異なるメモリ種類の一覧は例示の目的のためにのみ与えられ、限定として意図されないまたは網羅的であることを意図されない。図６に示されるように、プログラマブルＩＣ６０２は、メモリ管理ユニット６２０と、サブシステム６１０および６３０が用いる仮想メモリアドレスを、具体的なメモリ場所にアクセスするのにメモリコントローラ６２１が用いる物理メモリアドレスに変換するためのトランスレーションルックアサイドバッファ６２４とを含み得る。
【００４７】
プログラマブルＩＣは、外部回路とのデータの通信のための入出力（Ｉ／Ｏ）サブシステム６５０を含んでもよい。Ｉ／Ｏサブシステム６５０は、たとえば、フラッシュメモリ型Ｉ／Ｏデバイス、高性能Ｉ／Ｏデバイス、低性能インターフェイス、デバッグＩ／Ｏデバイス、および／もしくはＲＡＭ  Ｉ／Ｏデバイスを含むさまざまな種類のＩ／Ｏデバイスまたはインターフェイスを含んでもよい。
【００４８】
Ｉ／Ｏサブシステム６５０は、６６０Ａおよび６６０Ｂとして図示される１つ以上のフラッシュメモリインターフェイス６６０を含んでもよい。たとえば、フラッシュメモリインターフェイス６６０の１つ以上を４ビット通信用に構成されるクワッドシリアルペリフェラルインターフェイス（ＱＳＰＩ）として実現することができる。フラッシュメモリインターフェイス６６０の１つ以上を並列８ビットＮＯＲ／ＳＲＡＭ型インターフェイスとして実現することができる。フラッシュメモリインターフェイス６６０の１つ以上を、８ビットおよび／または１６ビット通信用に構成されるＮＡＮＤインターフェイスとして実現することができる。記載の特定のインターフェイスは限定ではなく例示の目的のために与えられることを認めるべきである。異なるビット幅を有する他のインターフェイスを用いることができる。
【００４９】
Ｉ／Ｏサブシステム６５０は、メモリインターフェイス６６０よりも高レベルの性能を提供するインターフェイス６６２の１つ以上を含むことができる。インターフェイス６６２Ａ−６６２Ｃの各々はそれぞれ、ＤＭＡコントローラ６６４Ａ−６６４Ｃに結合可能である。たとえば、インターフェイス６６２の１つ以上を、ユニバーサルシリアルバス（ＵＳＢ）型インターフェイスとして実現可能である。インターフェイス６６２の１つ以上を、ギガビットイーサネット（登録商標）型インターフェイスとして実現可能である。インターフェイス６６２の１つ以上を、セキュアデジタル（ＳＤ）型インターフェイスとして実現可能である。
【００５０】
Ｉ／Ｏサブシステム６５０は、インターフェイス６６２よりも低レベルの性能を提供する、インターフェイス６６６Ａ−６６６Ｄなどの１つ以上のインターフェイス６６６も含んでもよい。たとえば、インターフェイス６６６の１つ以上を汎用Ｉ／Ｏ（ＧＰＩＯ）型インターフェイスとして実現可能である。インターフェイス６６６の１つ以上を万能非同期送受信機（ＵＡＲＴ）型インターフェイスとして実現可能である。インターフェイス６６６の１つ以上をシリアルペリフェラルインターフェイス（ＳＰＩ）バス型インターフェイスの形態で実現可能である。インターフェイス６６６の１つ以上をコントローラエリアネットワーク（ＣＡＮ）型インターフェイスおよび／またはＩ2Ｃ型インターフェイスの形態で実現可能である。インターフェイス６６６の１つ以上をトリプルタイマカウンタ（ＴＴＣ）および／またはウォッチドッグタイマ（ＷＤＴ）型インターフェイスの形態でも実現可能である。
【００５１】
Ｉ／Ｏサブシステム６５０は、プロセッサＪＴＡＧ（ＰＪＴＡＧ）インターフェイス６６８Ａおよびトレースインターフェイス６６８Ｂなどの１つ以上のデバッグインターフェイス６６８を含むことができる。ＰＪＴＡＧインターフェイス６６８Ａは、プログラマブルＩＣ６０２向けの外部デバッグインターフェイスを提供することができる。トレースインターフェイス６６８Ｂは、処理サブシステム６１０またはプログラマブル論理サブシステム６３０から、たとえばトレースなどのデバッグ情報を受信するポートを提供することができる。
【００５２】
示されるように、インターフェイス６６０、６６２、６６６、および６６８の各々をマルチプレクサ６７０に結合することができる。マルチプレクサ６７０は、プログラマブルＩＣ６０２の外部ピンに直接に経路設定または結合することができる複数の出力を提供する。それはたとえばパッケージのボールであり、その中にプログラマブルＩＣ６０２が配設される。たとえば、プログラマブルＩＣ６０２のＩ／Ｏピンをインターフェイス６６０、６６２、６６６、および６６８の間で共有することができる。ユーザは、インターフェイス６６０−６６８のうちどれを用いるか、およびしたがってマルチプレクサ６７０を介してプログラマブルＩＣ６０２のＩ／Ｏピンに結合するかを選択するように、コンフィギュレーションデータストリームを介してマルチプレクサ６７０を構成することができる。Ｉ／Ｏサブシステム６５０は、インターフェイス６６２−６６８をプログラマブル論理サブシステムのプログラマブル論理回路に接続するファブリックマルチプレクサＩ／Ｏ（ＦＭＩＯ）インターフェイス（図示せず）も含んでもよい。これに加えてまたはこれに代えて、プログラマブル論理内に１つ以上のＩ／Ｏ回路を実現するようにプログラマブル論理サブシステム６３０を構成することができる。ある実現例では、プログラマブルＩＣ６０２は、電力および／または安全管理のためのさまざまな回路を有するサブシステム６４０も含んでもよい。たとえば、サブシステム６４０は、プログラマブルＩＣ６０２のさまざまなサブシステムに電力供給するのに用いられる１つ以上の電圧ドメインをモニタしかつ維持するように構成される電力管理ユニット６４６を含んでもよい。ある実現例では、電力管理ユニット６４６は、使用中のサブシステムへの電力を無効化することなくアイドル時に電力消費を低減するように個別のサブシステムの電力を無効化してもよい。
【００５３】
サブシステム６４０は、正常な動作を確実にするようにサブシステムの状況をモニタする安全回路も含み得る。たとえば、サブシステム６４０は、（たとえばステータスレジスタ６４４に示されるような）さまざまなサブシステムの状況をモニタするように構成される１つ以上のリアルタイムプロセッサ６４２を含んでもよい。リアルタイムプロセッサ６４２は、エラーを検出するのに応答していくつかのタスクを行なうように構成されてもよい。たとえば、あるエラーについては、リアルタイムプロセッサ６４２は、エラーの検出に応答して警告を生成してもよい。別の例として、リアルタイムプロセッサ６４２はサブシステムをリセットしてサブシステムを回復させて動作を訂正するよう試みてもよい。サブシステム６４０は、さまざまなサブシステムを相互接続するのに用い得るスイッチネットワーク６４８を含む。たとえば、スイッチネットワーク６４８は、さまざまなサブシステム６１０、６３０、および６４０をＩ／Ｏサブシステム６５０のさまざまなインターフェイスに接続するように構成されてもよい。ある適用例では、スイッチネットワーク６４８は、モニタすべきサブシステムからリアルタイムプロセッサ６４２を分離するようにも用いられてもよい。そのような分離は、他のサブシステムで発生するエラーがリアルタイムプロセッサ６４２に影響を及ぼさないことを確実にするために、あるアプリケーション標準（たとえばＩＥＣ−６１５０８ＳＩＬ３またはＩＳＯ−２６２６２標準）によって要件とされることがある。
【００５４】
開示は一般的に、回路の電力管理制御に関する。
たとえば、処理サブシステムおよび電力管理サブ回路を含む装置が開示され得る。そのような装置は処理サブシステムを含み得、処理サブシステムは、複数のプロセッサ回路と、周辺割込に応答して複数のプロセッサ回路の少なくとも１つによって周辺割込が示すタスクの実行を開始するように構成される割込制御回路とを含み、処理サブシステムは、複数のプロセッサ回路の一時停止に応答して電力遮断制御信号を生成するように構成され、さらに装置は、周辺割込の受信と、処理サブシステムへの電力が無効化されることとに応答して電力投入制御信号を生成するように構成されかつ配置されるプロキシ割込制御回路と、電力管理回路とを含み得、電力管理回路は、電力遮断制御信号に応答して割込制御回路を含む処理サブシステムへの電力を無効化し、かつ電力投入制御信号に応答して処理サブシステムへの電力を有効化するように構成されかつ配置される。
【００５５】
あるそのような装置では、処理サブシステムは、複数のプロセッサ回路の１つがしきい値期間の間アイドルであることに応答して、プロセッサ回路の１つを一時停止するようにさらに構成される。
【００５６】
あるそのような装置では、処理サブシステムは、第１の電力ゲーティング制御信号を生成することによって複数のプロセッサ回路の１つを一時停止するように構成され、電力管理回路は、第１の電力ゲーティング制御信号に応答して複数のプロセッサ回路の１つへの電力を無効化するように構成される。
【００５７】
あるそのような装置では、処理サブシステムは、複数のプロセッサ回路の一時停止に応答して、電力遮断制御信号を生成する前にプロキシ割込制御回路を有効化するようにさらに構成される。
【００５８】
あるそのような装置では、割込制御回路は、入力制御信号に応答して電力遮断制御信号を生成するように構成されかつ配置される。
【００５９】
あるそのような装置では、割込制御回路は、複数のプロセッサ回路の一時停止に応答して電力遮断制御信号を生成するように構成される。
【００６０】
あるそのような装置では、複数のプロセッサ回路の１つは、複数のプロセッサ回路の一時停止に応答して電力遮断制御信号を生成するように構成される。
【００６１】
システムも開示される。
そのようなシステムは第１のサブシステムを含み得、第１のサブシステムは、共有回路と、共有回路を用いて１つ以上の動作を行なうように構成される複数のプロセッサ回路と、周辺割込に応答して複数のプロセッサ回路の少なくとも１つによって周辺割込が示すタスクの実行を開始するように構成される割込制御回路とを含み、第１のサブシステムは、複数のプロセッサ回路の一時停止に応答して電力遮断制御信号を生成するように構成され、さらにシステムは、共有回路を用いて１つ以上の動作を行なうように構成される回路を含む第２のサブシステムと、第３のサブシステムとを含み得、第３のサブシステムは、周辺割込の受信と第１のサブシステムへの電力が無効化されることとに応答して電力投入制御信号を生成するように構成されかつ配置されるプロキシ割込制御回路と、電力管理回路とを含み、電力管理回路は、電力遮断制御信号と共有回路が第１および第２のサブシステムによって不使用であることとに応答して割込制御回路を含む第１のサブシステムへの電力を無効化し、かつ電力投入制御信号に応答して第１のサブシステムへの電力を有効化するように構成されかつ配置される。
【００６２】
あるそのようなシステムでは、第２のサブシステムは、第２のサブシステムによって共有回路が不使用であることに応答して電力管理回路にそれぞれの電力遮断認証信号を与えるように構成される。
【００６３】
あるそのようなシステムでは、第２のサブシステムはプログラマブル論理回路を含む。
あるそのようなシステムでは、共有回路はメモリコントローラを含み、複数のプロセッサ回路および第２のサブシステムは各々、メモリコントローラを用いてメモリにアクセスするように構成される。
【００６４】
あるそのようなシステムでは、第３のサブシステムは、第１のサブシステムのメモリコントローラを用いてメモリにアクセスするように構成される回路を含む。
【００６５】
あるそのようなシステムでは、第１のサブシステムは、複数のプロセッサ回路の１つがしきい値期間の間アイドルであることに応答して複数のプロセッサ回路の１つを一時停止するようにさらに構成される。
【００６６】
あるそのようなシステムでは、第１のサブシステムは、第１の電力ゲーティング制御信号を生成することによって複数のプロセッサ回路の１つを一時停止するように構成され、電力管理回路は、第１の電力ゲーティング制御信号に応答して複数のプロセッサ回路の１つへの電力を無効化するように構成される。
【００６７】
あるそのようなシステムでは、電力管理回路は、第２の電力アンゲーティング制御信号に応答して複数のプロセッサ回路の１つへの電力を有効化するようにさらに構成される。
【００６８】
あるそのようなシステムでは、割込制御信号は、電力遮断制御信号を生成する前にプロキシ割込制御回路を有効化するようにさらに構成される。
【００６９】
電力管理回路を動作させるための方法も開示される。
一例では、そのような方法は、電力管理回路を用いて、第１のサブシステムと、第１のサブシステムの共有回路を用いて１つ以上の動作を行なうように構成される第２のサブシステムとに電力を与えることと、第１のサブシステムからの電力遮断要求信号に応答して、共有回路が第２のサブシステムによって不使用である間は第１のサブシステムに電力を与え続け、かつ共有回路が第２のサブシステムによって不使用であることに応答して第１のサブシステムから電力を除去することとを含み得る。
【００７０】
あるそのような方法では、方法は、第２のサブシステムを用いて、電力遮断要求信号と共有回路が第２のサブシステムによって不使用であることとに応答して電力遮断認証信号を生成することをさらに含む。
【００７１】
あるそのような方法では、方法は、プロキシ割込コントローラを用いて周辺割込についてデータバスをモニタし、周辺割込に応答して電力投入制御信号を生成することと、電力管理回路を用いて第１のサブシステムに電力を与えることとをさらに含む。
【００７２】
あるそのような方法では、方法は、第１のサブシステムから電力を除去する前にプロキシ割込コントローラを有効化することと、第１のサブシステムに電力を与えることに応答してプロキシ割込コントローラを無効化することとをさらに含む。
【００７３】
方法および回路はさまざまなシステムおよび適用例に適用可能であると考えられる。明細書の考察から、当業者には他の局面および特徴が明らかであろう。たとえば、ある場合、局面および特徴は個別の図に記載されることがあるが、組合せが明示的に示されなくてもまたは組合せとして明示的に記載されなくても、１つの図からの特徴を別の図の特徴と組合せられることが認められるであろう。明細書および図面は例示のみとして考えられ、発明の真の範囲は以下の請求項によって示されることが意図される。
【図１】
0006689824.tif 000002
【図２】
0006689824.tif 000003
【図３】
0006689824.tif 000004
【図４】
0006689824.tif 000005
【図５】
0006689824.tif 000006
【図６】
0006689824.tif 000007