特許第6689824号(P6689824)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ザイリンクス インコーポレイテッドの特許一覧

<>
  • 特許6689824-サブシステム電力管理制御 図000002
  • 特許6689824-サブシステム電力管理制御 図000003
  • 特許6689824-サブシステム電力管理制御 図000004
  • 特許6689824-サブシステム電力管理制御 図000005
  • 特許6689824-サブシステム電力管理制御 図000006
  • 特許6689824-サブシステム電力管理制御 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6689824
(24)【登録日】2020年4月10日
(45)【発行日】2020年4月28日
(54)【発明の名称】サブシステム電力管理制御
(51)【国際特許分類】
   G06F 1/3287 20190101AFI20200421BHJP
   G06F 1/3225 20190101ALI20200421BHJP
【FI】
   G06F1/3287
   G06F1/3225
【請求項の数】9
【全頁数】17
(21)【出願番号】特願2017-509720(P2017-509720)
(86)(22)【出願日】2015年8月17日
(65)【公表番号】特表2017-526072(P2017-526072A)
(43)【公表日】2017年9月7日
(86)【国際出願番号】US2015045569
(87)【国際公開番号】WO2016028709
(87)【国際公開日】20160225
【審査請求日】2018年8月16日
(31)【優先権主張番号】14/462,492
(32)【優先日】2014年8月18日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591025439
【氏名又は名称】ザイリンクス インコーポレイテッド
【氏名又は名称原語表記】XILINX INCORPORATED
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】アーマド,サグヒーア
(72)【発明者】
【氏名】アンサリ,アーマド・アール
(72)【発明者】
【氏名】ブリンクマン,ソーレン
【審査官】 征矢 崇
(56)【参考文献】
【文献】 特開2009−151789(JP,A)
【文献】 特開2011−223387(JP,A)
【文献】 特開2014−059726(JP,A)
【文献】 特開2010−079729(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F1/26−1/3296
(57)【特許請求の範囲】
【請求項1】
装置であって、
処理サブシステムを備え、前記処理サブシステムは、
複数のプロセッサ回路と、
共有回路と、
周辺割込に応答して、前記複数のプロセッサ回路の少なくとも1つによって前記周辺割込が示すタスクの実行を開始するように構成される割込制御回路とを含み、前記処理サブシステムは、前記複数のプロセッサ回路の一時停止に応答して電力遮断制御信号を生成するように構成され、さらに前記装置は、
周辺割込の受信と前記処理サブシステムへの電力が無効化されることとに応答して電力投入制御信号を生成するように構成されかつ配置されるプロキシ割込制御回路と、
電力管理回路とを備え、前記電力管理回路は、
前記電力遮断制御信号、および前記共有回路が別の処理サブシステムによって不使用であることに応答して、前記割込制御回路を含む前記処理サブシステムへの電力を無効化し、
前記電力投入制御信号に応答して前記プロキシ割込制御回路を無効化し、かつ
前記電力投入制御信号に応答して前記処理サブシステムへの電力を有効化する、ように構成されかつ配置される、装置。
【請求項2】
前記処理サブシステムは、前記複数のプロセッサ回路の1つがしきい値期間の間アイドルであることに応答して前記プロセッサ回路の前記1つを一時停止するようにさらに構成される、請求項1に記載の装置。
【請求項3】
前記処理サブシステムは、第1の電力ゲーティング制御信号を生成することによって前記複数のプロセッサ回路の前記1つを一時停止するように構成され、
前記電力管理回路は、前記第1の電力ゲーティング制御信号に応答して前記複数のプロセッサ回路の前記1つへの電力を無効化するように構成される、請求項2に記載の装置。
【請求項4】
前記処理サブシステムは、前記複数のプロセッサ回路の一時停止に応答して、前記電力遮断制御信号を生成する前に前記プロキシ割込制御回路を有効化するようにさらに構成される、請求項1から3のいずれかに記載の装置。
【請求項5】
前記割込制御回路は、入力制御信号に応答して前記電力遮断制御信号を生成するように構成されかつ配置される、請求項1に記載の装置。
【請求項6】
前記割込制御回路は、前記複数のプロセッサ回路の前記一時停止に応答して前記電力遮断制御信号を生成するように構成される、請求項1に記載の装置。
【請求項7】
前記複数のプロセッサ回路の1つは、前記複数のプロセッサ回路の前記一時停止に応答して前記電力遮断制御信号を生成するように構成される、請求項1に記載の装置。
【請求項8】
方法であって、
電力管理回路を用いて、
第1のサブシステムと、前記第1のサブシステムの共有回路を用いて1つ以上の動作を行なうように構成される第2のサブシステムとに電力を与え、
前記第1のサブシステムからの電力遮断要求信号に応答して、
前記共有回路が前記第2のサブシステムによって使用されている間は前記第1のサブシステムに電力を与え続け、かつ
前記共有回路が前記第2のサブシステムによって不使用であることに応答して前記第1のサブシステムから電力を除去することと、
前記第1のサブシステムから電力を除去する前にプロキシ割込コントローラを有効化することと、
前記プロキシ割込コントローラを用いて周辺割込についてデータバスをモニタし、前記周辺割込に応答して電力投入制御信号を生成することと、
前記電力管理回路を用いて前記第1のサブシステムに電力を与えることと
前記第1のサブシステムに電力を与えることに応答して、前記プロキシ割込コントローラを無効化すること、
を備える、方法。
【請求項9】
前記第2のサブシステムを用いて、前記電力遮断要求信号と前記共有回路が前記第2のサブシステムによって不使用であることとに応答して電力遮断認証信号を生成することをさらに備える、請求項8に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
開示は一般的に回路の電力管理制御に関する。
【背景技術】
【0002】
背景
プログラマブル集積回路(IC)は、特定される論理機能を果たすようにプログラミング可能なデバイスである。一種のプログラマブルICであるフィールドプログラマブルゲートアレイ(FPGA)は典型的にプログラマブルタイルのアレイを含む。これらのプログラマブルタイルは、たとえば、入出力ブロック(IOB)、コンフィギュラブル論理ブロック(CLB)、専用ランダムアクセスメモリブロック(BRAM)、乗算器、デジタル信号処理ブロック(DSP)、プロセッサ、クロックマネージャ、遅延ロックループ(DLL)、バスまたは周辺構成要素相互接続エクスプレス(PCIe)およびイーサネット(登録商標)などのネットワークインターフェイスなどを含むことができる、さまざまな種類の論理ブロックを備える。
【0003】
各々のプログラマブルタイルは典型的に、プログラマブル相互接続とプログラマブル論理との両方を含む。プログラマブル相互接続は典型的に、プログラマブル相互接続点(PIP)によって相互接続される異なる長さの多数の相互接続線を含む。プログラマブル論理は、たとえば、関数発生器、レジスタ、算術論理などを含むことができるプログラマブル素子を用いてユーザ設計の論理を実現する。
【0004】
プログラマブル相互接続およびプログラマブル論理は典型的に、プログラマブル素子をどのように構成するかを規定する内部コンフィギュレーションメモリセルの中にコンフィギュレーションデータストリームをロードすることによってプログラミングされる。コンフィギュレーションデータは、メモリから(たとえば外部PROMから)読出される、または外部デバイスによってFPGAに書込まれることができる。そうして、個別のメモリセルの集合的な状態がFPGAの機能を決める。
【0005】
あるプログラマブルICは、プログラムコードを実行可能な内蔵プロセッサを含む。プロセッサは、ICの「プログラマブル回路構成」とも総称されるプログラマブル論理回路構成およびプログラマブル相互接続回路構成を含む同じダイの一部として作製可能である。IC上で利用可能であり得るプログラマブル回路構成の「プログラミング」または「構成」からプロセッサ内でのプログラムコードの実行を区別可能であることを認めるべきである。ICのプログラマブル回路構成をプログラミングするまたは構成するという行為の結果、プログラマブル回路構成内のコンフィギュレーションデータによって特定されるような、異なる物理的回路構成の実現例が得られる。
【発明の概要】
【課題を解決するための手段】
【0006】
概要
処理サブシステムおよび電力管理サブ回路を含む装置が開示される。処理サブシステムは、複数のプロセッサ回路および割込制御回路を含む。割込制御回路は、周辺割込に応答して、複数のプロセッサ回路の少なくとも1つによって周辺割込が示すタスクの実行を開始するように構成される。処理サブシステムは、複数のプロセッサ回路の一時停止に応答して電力遮断(power-down)制御信号を生成するように構成される。電力管理回路は、電力遮断制御信号に応答して、割込制御回路を含む処理サブシステムへの電力を無効化(disable)する。電力管理回路は、電力投入(power-up)制御信号に応答して処理サブシステムへの電力を有効化(enable)する。装置は、周辺割込の受信と処理サブシステムへの電力が無効化されることとに応答して電力投入制御信号を生成するように構成されるプロキシ割込制御回路も含む。
【0007】
システムも開示される。システムは、共有回路と、複数のプロセッサ回路と、割込制御回路とを有する第1のサブシステムを含む。プロセッサ回路は、共有回路を用いて1つ以上の動作を行なうように構成される。周辺割込に応答して、割込制御回路は、複数のプロセッサ回路の少なくとも1つによって周辺割込が示すタスクの実行を開始する。第1のサブシステムは、複数のプロセッサ回路の一時停止に応答して電力遮断制御信号を生成するように構成される。システムは、共有回路を用いて1つ以上の動作を行なうように構成される回路を有する第2のサブシステムも含む。システムは、電力管理回路およびプロキシ割込制御回路を有する第3のサブシステムも含む。電力管理回路は、電力遮断制御信号と共有回路が第1および第2のサブシステムによって不使用であることとに応答して、割込制御回路を含む第1のサブシステムへの電力を無効化する。電力管理回路は、電力投入制御信号に応答して第1のサブシステムへの電力を有効化もする。プロキシ割込制御回路は、周辺割込の受信と第1のサブシステムへの電力が無効化されることとに応答して、電力投入制御信号を生成する。
【0008】
電力管理回路を動作させるための方法も開示される。電力管理回路を用いて第1のサブシステムおよび第2のサブシステムに電力が与えられる。第2のサブシステムは、第1のサブシステムの共有回路を用いて1つ以上の動作を行なうように構成される。第1のサブシステムからの電力遮断要求信号に応答して、共有回路が第2のサブシステムによって不使用である間は電力が第1のサブシステムに与えられ続ける。共有回路が第2のサブシステムによって不使用であることに応答して、電力は第1のサブシステムから除去される。
【0009】
他の特徴は、以下の詳細な説明および請求項を考察することによって認識されるであろう。
【0010】
以下の詳細な説明の検討によりおよび図面の参照により、開示される方法および回路のさまざまな局面および特徴が明らかになるであろう。
【図面の簡単な説明】
【0011】
図1】1つ以上の実現例に整合する、アプリケーション処理回路、電力管理回路、およびプロキシ割込制御回路を有する第1のデバイスを示す図である。
図2】1つ以上の実現例に整合する、アプリケーション処理回路、電力管理回路、およびプロキシ割込制御回路を有する第2のデバイスを示す図である。
図3】1つ以上の実現例に従うシステムを示す図である。
図4】1つ以上の実現例に整合する、個別のサブシステムの電力を制御するためのプロセスを示す図である。
図5】1つ以上の実現例に整合する、割込コントローラ、プロキシ割込コントローラ、および電力管理回路によって行なわれる例示的なプロセスを示す図である。
図6】1つ以上の実現例に整合する、構成され得るプログラマブルICを示す図である。
【発明を実施するための形態】
【0012】
図面の詳細な説明
ある処理サブシステムは、アイドル時に節電するように一時停止され得るまたは電力遮断され得る複数のプロセッサを含む。処理サブシステムは典型的に、プロセッサが一時停止されている間も電力を消費し続ける他の回路を含む。これらの回路は一般的に、さまざまなタスクに必要であるために、電力遮断されない。たとえば、処理サブシステムは、他のサブシステムと共有されるメモリコントローラなどの回路を含むことがある。別の例として、処理サブシステムは典型的に、プロセッサのタスクが割込によって開始されると、一時停止されたプロセッサを起動させるように構成される割込コントローラを含む。割込コントローラは一時停止されたプロセッサを起動させるのに必要であるので、プロセッサが一時停止された際にその電源を遮断することができない。
【0013】
処理サブシステム全体の電力が遮断されるようにする、すなわちそれにより電力消費を低減する回路および方法が開示される。ある実現例では、システムは、プロセッサの組および割込制御回路を有する処理サブシステムを含む。電力管理回路は、不使用の際、(割込コントローラを含む)処理サブシステム回路への電力を無効化するように構成される。ある実現例では、処理サブシステムは、プロセッサのすべてがあるしきい値期間の間一時停止されると、電力管理回路に電力遮断要求信号を与える。システムは、処理サブシステムとは独立して電力供給されるプロキシ割込コントローラを含む。プロキシ割込コントローラは、割込に応答して、電力管理回路に処理サブシステムへの電力を有効化させるように構成される。
【0014】
ある実現例では、処理サブシステムは、少なくとも1つの他のサブシステムと共有される1つ以上の回路を含む。電力管理回路は、電力遮断要求信号が受信されかつ電力遮断認証信号が処理サブシステムの共有回路を用いる他のサブシステムの各々によって受信された後に、処理サブシステム回路への電力を無効化するようにのみ構成される。
【0015】
以下の説明では、本明細書中に提示される具体例を記載するように数多くの具体的詳細を述べる。しかしながら、当業者には、以下に与えるすべての具体的な詳細がなくても、1つ以上の他の例および/またはこれらの例の変形を実践し得ることが明らかであるべきである。他の事例では、本明細書中の例の説明を曖昧にしないために周知の特徴を詳細に説明していない。図示の容易のため、同じ項目を参照するのに同じ参照番号を異なる図で用いることがあるが、代替的な例では項目は異なることがある。
【0016】
ここで図に注目して、図1は、1つ以上の実現例に従う、処理サブシステム、電力管理回路、およびプロキシ割込制御回路を有する第1のデバイス100を示す。処理サブシステム110は、1つ以上の処理回路112および割込制御回路114を含む。割込制御回路114は、周辺割込126をモニタし、それに応答して処理回路112に対するタスクを開始するように構成される。割込は、いくつかのさまざまなプロセスをトリガし得る。一例として、システムに接続されるハードウェアデバイスが割込を生成して、システムのメモリに記憶されるデータ値を読出し得る。
【0017】
電力管理回路102は、制御信号121、122、123、および124に応答して、電力制御信号120を与えて処理サブシステム110の電力消費を調整する。制御信号は、たとえば、電力遮断制御信号121、電力ゲーティング(gating)制御信号122、電力アンゲーティング(ungating)制御信号123、および電力投入制御信号124を含んでもよい。
【0018】
電力管理回路102は、処理サブシステム110から受信する電力ゲーティング/電力アンゲーティング制御信号に応答して処理回路112のうちさまざまなものを一時停止/再開するように構成される。電力管理回路102は、電力遮断制御回路に応答して、(割込制御回路114を含む)処理サブシステム110への電力を無効化するように構成される。電力管理回路102は、電力投入制御信号124に応答して処理サブシステム110への電力を有効化するようにも構成される。たとえば、処理回路による動作を要件とする割込が受信されることがある。しかしながら、以上で示したように、処理サブシステム110への電力が無効化されている間は、周辺割込のモニタに割込制御回路114を利用することができない。
【0019】
プロキシ割込制御回路104は、処理サブシステムへの電力が無効化された場合に周辺割込をモニタするように構成される。プロキシ割込制御回路104は、処理回路112のうち1つに対する周辺割込に応答して電力投入制御信号124を生成するように構成される。電力投入制御信号に応答して、電力管理回路102は処理サブシステム110への電力を有効化する。
【0020】
ある実現例では、プロキシ割込コントローラは、処理サブシステムが与えるイネーブル信号128に応じて有効化/無効化される。これに代えて、電力管理回路がイネーブル信号128を与えてもよい。ある実施形態では、プロキシ制御回路は、電力管理回路に与えられる制御信号121、122、および123をモニタして、処理サブシステムがいつ無効化されているかを判断するように構成される。
【0021】
ある実現例では、電力管理回路は、複数のサブシステムのための電力を制御するように適合されてもよい。図2は、1つ以上の実現例に従う、処理サブシステム、電力管理回路、およびプロキシ割込制御回路を有する第2のデバイスを示す。デバイス200は、図1を参照して説明した処理サブシステム110、電力管理回路102、およびプロキシ割込制御回路104と同様の、第1の処理サブシステム210、電力管理回路202、およびプロキシ割込制御回路204を含む。この例では、デバイス200は、第2の処理サブシステム230も含む。
【0022】
処理サブシステム210および230の各々は、処理回路212および232のそれぞれの組と、周辺割込226をモニタし、これに応答して処理回路212および/または232に対するタスクを開始するように構成されるそれぞれの割込制御回路214および234とを含む。
【0023】
電力管理回路202は、処理サブシステムから受信する制御信号222および236の組に応答して、電力制御信号220および238を与えて、処理サブシステム210および230の電力消費を調整する。制御信号222および236の各組は、たとえば、電力遮断/電力ゲーティングおよび電力投入/電力アンゲーティング制御信号を含んでもよい。電力管理回路202は、それぞれの処理サブシステムから受信した電力ゲーティング/電力アンゲーティング信号に応答して処理回路212および232のさまざまなものを一時停止/再開するように構成される。電力管理回路202は、処理サブシステム210からの電力遮断制御信号に応答して処理サブシステム210への電力を無効化し、かつ処理サブシステム230からの電力遮断制御信号に応答して処理サブシステム230への電力を無効化するように構成される。電力管理回路202は、処理サブシステム210または230のうち1つを示す電力投入制御信号224に応答して、処理サブシステム210または230の1つへの電力の有効化もする。
【0024】
プロキシ割込制御回路204は、処理サブシステム210および230のいずれかのための電力が無効化された場合に周辺割込をモニタする。プロキシ割込コントローラは、たとえば、処理サブシステム210および230の1つが電力遮断される前にアサートされるイネーブル制御信号228によって有効化されてもよい。処理サブシステムのうち電力遮断されたものへの周辺割込に応答して、プロキシ割込制御回路204は電力投入制御信号を生成して電力管理回路202に処理サブシステムへの電力投入をさせる。
【0025】
図3は、1つ以上の実現例に従うシステムを示す。システム300は、第1のサブシステム330、第2のサブシステム380、および第3のサブシステム310を含む。第1のサブシステム330は、マルチコアプロセッサ344および割込制御回路342を有する。この例では、マルチコアプロセッサ344は4つの処理コア346、348、350、および352を含む。周辺割込に応答して、割込制御回路342は、制御信号354を介して処理コアの1つによってタスクの実行を開始するように構成される。割込制御回路342は、処理コアのすべてが一時停止されるのに応答して電力遮断制御信号371も生成する。
【0026】
第1のサブシステム330は、接続364を介してシステム300の他のサブシステムによって共有される1つ以上の回路360を含む。たとえば、システム300の第2のサブシステム380は、第1のサブシステムの共有回路360を用いて1つ以上の動作を行なうように構成される回路構成を含み得る。ある実現例では、第2のサブシステムは、ある適用例では、第1のサブシステムに含まれる共有メモリコントローラ(たとえば360)を介してシステム(図示せず)のメモリにアクセスするように構成され得るプログラマブル論理回路を含む。
【0027】
第3のサブシステム310は、第1のサブシステムの電力消費を調整するように構成される電力管理回路320を含む。この例では、第1のサブシステム330は、第2のサブシステム380および第3のサブシステム310とは別個の電力ドメインで動作し、第3のサブシステム310によって独立して電力遮断され得る。
【0028】
ある実現例では、システム300は、フルパワーモードおよびローパワーモードで動作するように構成される。フルパワーモードで動作されると、電力ドメインの各々が電力投入される。ローパワーモードで動作されると、第1のサブシステムの電力ドメインが電力遮断される。第2および第3のサブシステムの電力ドメインは、システム300がローパワーモードで動作する際には電力投入されたままである。ローパワーモードでは、第1のサブシステムの電力ドメインが電力遮断されるので、消費される電力がより少ない。参照の容易のため、第1のサブシステムに電力供給するのに用いられる電力ドメインが「フルパワードメイン」と称されることがあり、第3のサブシステムに電力供給するのに用いられる電力ドメインが「ローパワードメイン」と称されることがある。フルパワードメインは、システム300がフルパワーモードで動作される場合にのみ電力投入される。ローパワードメインは、システム300がローパワーモードで動作する場合に電力投入される唯一の電力ドメインである。
【0029】
この例では、第3のサブシステム310は、第1のサブシステム330からの制御信号371、372、および373に応答して電力制御信号370を介して第1のサブシステム330の電力消費を調整するように構成される電力管理回路320を含む。たとえば、電力管理回路320は、電力遮断制御信号と、共有回路360が第2および第3のサブシステム380および310によって不使用であることとに応答して、割込制御回路を含む第1のサブシステムへの電力を無効化し得る。たとえば、ある実施形態では、第1のサブシステム330は、メモリ(図示せず)へのアクセスを制御するためのメモリコントローラを含む。第2のサブシステム380および第3のサブシステム310のさまざまな回路は、メモリコントローラを介してメモリにアクセスし得る。この例では、第3のサブシステムは、処理コア326および327とそれぞれの割込制御回路325とを含む処理ユニット324を含む。処理コア326および327は、第1のサブシステムの共有メモリコントローラを介してメモリにアクセスし得る。
【0030】
この例では、電力管理回路320は、共有回路360を用いる他のサブシステムが共有回路が使用されていないことを示す認証信号を与えた後にのみ第1のサブシステム330を電力遮断するように構成される。この例では、第2のサブシステムは、第1のサブシステムが共有回路360を必要としていない場合に電力管理回路320に認証信号312を与える。同様に、処理ユニット324は、処理ユニット324が共有回路360を必要としていない場合に電力管理回路320に認証信号314を与える。ある他の実現例では、第1のサブシステムは、認証信号が共有回路360が使用されていないことを示す場合にのみ、認証信号を受信しかつ電力遮断制御信号を生成するように構成される。
【0031】
電力管理回路320は、電力投入制御信号374に応答して第1のサブシステムへの電力を有効化する。電力投入制御信号374は、プロキシ割込制御回路322がイネーブル制御信号376によって有効化されている間に第1のサブシステムに対応する周辺割込378を受信することに応答して、プロキシ割込制御回路322によって生成される。
【0032】
この例では、電力管理回路320は、第1のサブシステムからの電力ゲーティング制御信号372または電力アンゲーティング制御信号373の受信に応答してマルチコアプロセッサ344のさまざまなコア346、348、350、および352を一時停止させる/起動させるようにも構成される。第1のサブシステムは、ゲーティング制御信号を生成して、しきい値期間の間アイドルであった処理コアの1つを一時停止させる。第1のサブシステムは、周辺デバイスまたは別のサブシステムからの割込に応答して、処理に必要な場合に、アンゲーティング制御信号を生成して、一時停止された処理コアを起動させる。システム300のサブシステムは、以上で論じたものに加えて、他のサブシステムと共有されてもされなくてもよいさまざまな他の回路も含んでもよい。たとえば、この例では、第1および第3のサブシステムはそれぞれ通信I/O回路362および364を含む。別の実現例では、通信I/O回路362は、第3のサブシステム310と共有されてもよく、通信I/O回路364が省略されてもよい。第1のサブシステムが複数の共有回路を含む場合、第1のサブシステムは、共有回路の各々が不使用でなければ、電力管理回路320によって電力遮断されない。
【0033】
図4は、1つ以上の実現例に従う、個別のサブシステムの電力を制御するためのプロセスを示す。システム起動402時にフルパワードメインが無効化されれば、決定ブロック404は、電力管理回路を用いて、ブロック406でフルパワー(FP)ドメインを有効化するようプロセスに命令する。
【0034】
図3を参照して論じたように、フルパワードメインを用いて、複数の処理コアを有する処理回路を含む第1のサブシステムに電力供給し得る。フルパワードメインの電力投入後、(必要に応じて)ブロック410で第1のサブシステムのデフォルト処理コアを起動させてもよい。たとえば、ある実現例では、処理に必要な場合、1つの処理コアがスタートアップ時に起動するよう指定されてもよい。処理回路はブロック408でアクティブである。処理コアがアイドルであり、一時停止の準備ができていると、処理コアは、ブロック412で電力管理回路を用いて一時停止される。
【0035】
決定ブロック414で、処理回路の処理コアの1つ以上が一時停止されていなければ、処理回路は、ブロック408でアクティブな状態で動作し続ける。そうでない場合、処理回路の処理コアのすべてが一時停止されれば、節電のためにフルパワードメインが電力遮断され得る可能性がある。決定ブロック416で処理コアのすべてが一時停止されれば、プロセスは決定ブロック420に向けられる。メモリにアクセスするために他のサブシステムが第1のサブシステムの共有メモリコントローラ(MC)を必要としている間は、プロセスは決定ブロック420を繰返す。他のサブシステムが共有メモリコントローラを必要としていなければ、たとえば、プロセスは、ブロック422でメモリをセルフリフレッシュモードにしてさらなる電力を節約し得る。ブロック418で、電力管理回路は、第1のサブシステムに電力供給するフルパワードメインを電力遮断する。
【0036】
第1のサブシステムに対応する周辺割込が決定ブロック414で受信されるまで、フルパワードメインは電力遮断されたままである。周辺割込に応答して、ブロック406で、電力管理回路を用いてフルパワードメインが電力投入されてプロセスが繰返される。周辺割込を処理するのに特定の処理コアが必要であれば、プロセスは、ブロック410で処理コアを起動させる。
【0037】
図5は、例示的な実現例における、割込コントローラ、プロキシ割込コントローラ、および電力管理回路によって行なわれるプロセスを示す。システム起動時502に、電力管理回路はまずアイドル状態530にあり、プロキシ割込コントローラはまずアイドル状態520にある。割込制御回路は、状態534でフルパワードメインに電力投入するように電力管理回路に命令することによって、状態506でプロセッサの電源オンを開始する。その後、電力管理回路はアイドル状態530に戻る。
【0038】
周辺割込に応答して、割込制御回路は状態504に遷移し、周辺割込によって示されるタスクのスケジューリングを行なう。必要に応じて、割込制御回路は、状態504で、たとえば電力アンゲーティング信号を生成することによって、一時停止されたプロセッサを起動させてもよい。電力アンゲーティング信号に応答して、電力管理回路は、状態536で、電力アンゲーティング信号が示すプロセッサを起動させ、次にアイドル状態に戻る。
【0039】
プロセッサがしきい値期間の間アイドルであれば、状態510で電力ゲーティング信号が生成され、アイドル状態のプロセッサの電力を遮断する。ある実現例では、電力ゲーティング信号はプロセッサの1つによって生成されてもよい。ある他の実現例では、電力ゲーティング信号は割込制御回路などの別の制御回路によって生成されてもよい。電力ゲーティング信号に応答して、電力管理回路は状態538に遷移し、電力ゲーティング信号が示すプロセッサを一時停止させる。プロセッサを一時停止させた後、電力管理回路はアイドル状態530に戻る。
【0040】
電力遮断要求信号に応答して、処理サブシステムは状態512に遷移して電力遮断されるのを待つ。電力管理回路は状態531に遷移し、共有回路を用いる回路に電力遮断の認証を要求してくる。共有回路を用いる各々のサブシステムからの認証信号の受信に応答して、電力管理回路はプロキシ割込コントローラを有効化し、状態532でフルパワードメイン(FPD)の電力を遮断する。その後、電力管理回路はアイドル状態530に戻り、処理サブ回路は電力遮断状態508に遷移する。
【0041】
有効化されると、プロキシ割込制御回路は、状態522で周辺割込をモニタする。フルパワードメインによって電力供給されるプロセッサの1つに対する周辺割込に応答して、プロキシ割込制御回路は、状態524で、電力投入制御信号を生成する。電力投入制御信号に応答して、電力管理回路は、状態534でフルパワードメインに電力投入し、次にアイドル状態530に戻る。フルパワードメインが電力投入された後、プロキシ割込制御回路はアイドル/無効化状態520に遷移し、割込制御回路は状態506に遷移して戻る。
【0042】
図6は、1つ以上の実現例に従って構成され得るプログラマブルIC602を示す。プログラマブルICはシステムオンチップ(SOC)とも称されることがあり、これは、処理サブシステム610およびプログラマブル論理サブシステム630を含む。処理サブシステム610は、ユーザプログラムの実行を介してユーザ設計のソフトウェア部分を実現するようにプログラミングされ得る。プログラムはコンフィギュレーションデータストリームの一部として特定されてもよく、またはオンチップもしくはオフチップデータ記憶デバイスから取出されてもよい。処理サブシステム610は、1つ以上のソフトウェアプログラムを実行するためのさまざまな回路612、614、616、および618を含んでもよい。回路612、614、616、および618は、たとえば、1つ以上のプロセッサコア、浮動小数点ユニット(FPU)、割込処理ユニット、オンチップメモリ、メモリキャッシュ、および/またはキャッシュコヒーレント相互接続を含んでもよい。
【0043】
プログラマブルIC602のプログラマブル論理サブシステム630は、ユーザ設計のハードウェア部分を実現するようにプログラミングされてもよい。たとえば、プログラマブル論理サブシステムは、コンフィギュレーションデータストリーム中に特定される回路の組を実現するようにプログラミングされ得るいくつかのプログラマブルリソース632を含んでもよい。プログラマブルリソース632は、プログラマブル相互接続回路と、プログラマブル論理回路と、コンフィギュレーションメモリセルとを含む。プログラマブル論理は、たとえば、関数生成器、レジスタ、算術論理などを含む可能性があるプログラマブル素子を用いてユーザ設計の論理を実現する。プログラマブル相互接続回路は、プログラマブル相互接続点(PIP)によって相互接続される異なる長さの多数の相互接続線を含んでもよい。
【0044】
プログラマブルリソース632は、コンフィギュレーションメモリセルにコンフィギュレーションデータストリームをロードすることによってプログラミングされてもよく、これにより、プログラマブル相互接続回路およびプログラマブル論理回路がどのように構成されるかが規定される。次に個別のメモリセルの集合的な状態によってプログラマブルリソース632の機能が決まる。コンフィギュレーションデータは、外部デバイスによってメモリから(たとえば外部PROMから)読出され得る、またはプログラマブルIC602中に書込まれ得る。ある実現例では、プログラマブル論理サブシステム630中に含まれるコンフィギュレーションコントローラ634がコンフィギュレーションデータをコンフィギュレーションメモリセル中にロードし得る。ある他の実現例では、プロセッササブシステム610が実行するスタートアッププロセスによってコンフィギュレーションデータをコンフィギュレーションメモリセル中にロードしてもよい。
【0045】
プログラマブルIC602は、プログラマブル論理サブシステム630内に実現される回路構成に処理サブシステム610を相互接続するためのさまざまな回路を含んでもよい。この例では、プログラマブルIC602は、処理サブシステム610およびプログラマブル論理サブシステム630のさまざまなデータポート同士の間でデータ信号を経路設定することができるコアスイッチ626を含む。コアスイッチ626は、プログラマブル論理サブシステム630または処理サブシステム610のいずれかと内部データバスなどのプログラマブルICの他のさまざまな回路との間でもデータ信号を経路設定してもよい。これに代えてまたはこれに加えて、処理サブシステム610は、−コアスイッチ626をバイパスして−プログラマブル論理サブシステムに直接に接続するインターフェイスを含んでもよい。そのようなインターフェイスは、たとえば、ARMによって公開されるようなAMBA AXIプロトコル仕様(AXI)を用いて実現されてもよい。
【0046】
ある実現例では、処理サブシステム610およびプログラマブル論理サブシステム630は、メモリコントローラ621を介してオンチップメモリ622またはオフチップメモリ(図示せず)のメモリ場所も読出してもよいまたはこれに書込んでもよい。16ビット、32ビット、ECC付加16ビットなどを問わずデュアルデータレート(DDR)2、DDR3、ローパワー(LP)DDR2型メモリを含むがそれらに限定されない1つ以上の異なる種類のメモリ回路と通信するように、メモリコントローラ621を実現することができる。メモリコントローラ621が通信可能な異なるメモリ種類の一覧は例示の目的のためにのみ与えられ、限定として意図されないまたは網羅的であることを意図されない。図6に示されるように、プログラマブルIC602は、メモリ管理ユニット620と、サブシステム610および630が用いる仮想メモリアドレスを、具体的なメモリ場所にアクセスするのにメモリコントローラ621が用いる物理メモリアドレスに変換するためのトランスレーションルックアサイドバッファ624とを含み得る。
【0047】
プログラマブルICは、外部回路とのデータの通信のための入出力(I/O)サブシステム650を含んでもよい。I/Oサブシステム650は、たとえば、フラッシュメモリ型I/Oデバイス、高性能I/Oデバイス、低性能インターフェイス、デバッグI/Oデバイス、および/もしくはRAM I/Oデバイスを含むさまざまな種類のI/Oデバイスまたはインターフェイスを含んでもよい。
【0048】
I/Oサブシステム650は、660Aおよび660Bとして図示される1つ以上のフラッシュメモリインターフェイス660を含んでもよい。たとえば、フラッシュメモリインターフェイス660の1つ以上を4ビット通信用に構成されるクワッドシリアルペリフェラルインターフェイス(QSPI)として実現することができる。フラッシュメモリインターフェイス660の1つ以上を並列8ビットNOR/SRAM型インターフェイスとして実現することができる。フラッシュメモリインターフェイス660の1つ以上を、8ビットおよび/または16ビット通信用に構成されるNANDインターフェイスとして実現することができる。記載の特定のインターフェイスは限定ではなく例示の目的のために与えられることを認めるべきである。異なるビット幅を有する他のインターフェイスを用いることができる。
【0049】
I/Oサブシステム650は、メモリインターフェイス660よりも高レベルの性能を提供するインターフェイス662の1つ以上を含むことができる。インターフェイス662A−662Cの各々はそれぞれ、DMAコントローラ664A−664Cに結合可能である。たとえば、インターフェイス662の1つ以上を、ユニバーサルシリアルバス(USB)型インターフェイスとして実現可能である。インターフェイス662の1つ以上を、ギガビットイーサネット(登録商標)型インターフェイスとして実現可能である。インターフェイス662の1つ以上を、セキュアデジタル(SD)型インターフェイスとして実現可能である。
【0050】
I/Oサブシステム650は、インターフェイス662よりも低レベルの性能を提供する、インターフェイス666A−666Dなどの1つ以上のインターフェイス666も含んでもよい。たとえば、インターフェイス666の1つ以上を汎用I/O(GPIO)型インターフェイスとして実現可能である。インターフェイス666の1つ以上を万能非同期送受信機(UART)型インターフェイスとして実現可能である。インターフェイス666の1つ以上をシリアルペリフェラルインターフェイス(SPI)バス型インターフェイスの形態で実現可能である。インターフェイス666の1つ以上をコントローラエリアネットワーク(CAN)型インターフェイスおよび/またはI2C型インターフェイスの形態で実現可能である。インターフェイス666の1つ以上をトリプルタイマカウンタ(TTC)および/またはウォッチドッグタイマ(WDT)型インターフェイスの形態でも実現可能である。
【0051】
I/Oサブシステム650は、プロセッサJTAG(PJTAG)インターフェイス668Aおよびトレースインターフェイス668Bなどの1つ以上のデバッグインターフェイス668を含むことができる。PJTAGインターフェイス668Aは、プログラマブルIC602向けの外部デバッグインターフェイスを提供することができる。トレースインターフェイス668Bは、処理サブシステム610またはプログラマブル論理サブシステム630から、たとえばトレースなどのデバッグ情報を受信するポートを提供することができる。
【0052】
示されるように、インターフェイス660、662、666、および668の各々をマルチプレクサ670に結合することができる。マルチプレクサ670は、プログラマブルIC602の外部ピンに直接に経路設定または結合することができる複数の出力を提供する。それはたとえばパッケージのボールであり、その中にプログラマブルIC602が配設される。たとえば、プログラマブルIC602のI/Oピンをインターフェイス660、662、666、および668の間で共有することができる。ユーザは、インターフェイス660−668のうちどれを用いるか、およびしたがってマルチプレクサ670を介してプログラマブルIC602のI/Oピンに結合するかを選択するように、コンフィギュレーションデータストリームを介してマルチプレクサ670を構成することができる。I/Oサブシステム650は、インターフェイス662−668をプログラマブル論理サブシステムのプログラマブル論理回路に接続するファブリックマルチプレクサI/O(FMIO)インターフェイス(図示せず)も含んでもよい。これに加えてまたはこれに代えて、プログラマブル論理内に1つ以上のI/O回路を実現するようにプログラマブル論理サブシステム630を構成することができる。ある実現例では、プログラマブルIC602は、電力および/または安全管理のためのさまざまな回路を有するサブシステム640も含んでもよい。たとえば、サブシステム640は、プログラマブルIC602のさまざまなサブシステムに電力供給するのに用いられる1つ以上の電圧ドメインをモニタしかつ維持するように構成される電力管理ユニット646を含んでもよい。ある実現例では、電力管理ユニット646は、使用中のサブシステムへの電力を無効化することなくアイドル時に電力消費を低減するように個別のサブシステムの電力を無効化してもよい。
【0053】
サブシステム640は、正常な動作を確実にするようにサブシステムの状況をモニタする安全回路も含み得る。たとえば、サブシステム640は、(たとえばステータスレジスタ644に示されるような)さまざまなサブシステムの状況をモニタするように構成される1つ以上のリアルタイムプロセッサ642を含んでもよい。リアルタイムプロセッサ642は、エラーを検出するのに応答していくつかのタスクを行なうように構成されてもよい。たとえば、あるエラーについては、リアルタイムプロセッサ642は、エラーの検出に応答して警告を生成してもよい。別の例として、リアルタイムプロセッサ642はサブシステムをリセットしてサブシステムを回復させて動作を訂正するよう試みてもよい。サブシステム640は、さまざまなサブシステムを相互接続するのに用い得るスイッチネットワーク648を含む。たとえば、スイッチネットワーク648は、さまざまなサブシステム610、630、および640をI/Oサブシステム650のさまざまなインターフェイスに接続するように構成されてもよい。ある適用例では、スイッチネットワーク648は、モニタすべきサブシステムからリアルタイムプロセッサ642を分離するようにも用いられてもよい。そのような分離は、他のサブシステムで発生するエラーがリアルタイムプロセッサ642に影響を及ぼさないことを確実にするために、あるアプリケーション標準(たとえばIEC−61508SIL3またはISO−26262標準)によって要件とされることがある。
【0054】
開示は一般的に、回路の電力管理制御に関する。
たとえば、処理サブシステムおよび電力管理サブ回路を含む装置が開示され得る。そのような装置は処理サブシステムを含み得、処理サブシステムは、複数のプロセッサ回路と、周辺割込に応答して複数のプロセッサ回路の少なくとも1つによって周辺割込が示すタスクの実行を開始するように構成される割込制御回路とを含み、処理サブシステムは、複数のプロセッサ回路の一時停止に応答して電力遮断制御信号を生成するように構成され、さらに装置は、周辺割込の受信と、処理サブシステムへの電力が無効化されることとに応答して電力投入制御信号を生成するように構成されかつ配置されるプロキシ割込制御回路と、電力管理回路とを含み得、電力管理回路は、電力遮断制御信号に応答して割込制御回路を含む処理サブシステムへの電力を無効化し、かつ電力投入制御信号に応答して処理サブシステムへの電力を有効化するように構成されかつ配置される。
【0055】
あるそのような装置では、処理サブシステムは、複数のプロセッサ回路の1つがしきい値期間の間アイドルであることに応答して、プロセッサ回路の1つを一時停止するようにさらに構成される。
【0056】
あるそのような装置では、処理サブシステムは、第1の電力ゲーティング制御信号を生成することによって複数のプロセッサ回路の1つを一時停止するように構成され、電力管理回路は、第1の電力ゲーティング制御信号に応答して複数のプロセッサ回路の1つへの電力を無効化するように構成される。
【0057】
あるそのような装置では、処理サブシステムは、複数のプロセッサ回路の一時停止に応答して、電力遮断制御信号を生成する前にプロキシ割込制御回路を有効化するようにさらに構成される。
【0058】
あるそのような装置では、割込制御回路は、入力制御信号に応答して電力遮断制御信号を生成するように構成されかつ配置される。
【0059】
あるそのような装置では、割込制御回路は、複数のプロセッサ回路の一時停止に応答して電力遮断制御信号を生成するように構成される。
【0060】
あるそのような装置では、複数のプロセッサ回路の1つは、複数のプロセッサ回路の一時停止に応答して電力遮断制御信号を生成するように構成される。
【0061】
システムも開示される。
そのようなシステムは第1のサブシステムを含み得、第1のサブシステムは、共有回路と、共有回路を用いて1つ以上の動作を行なうように構成される複数のプロセッサ回路と、周辺割込に応答して複数のプロセッサ回路の少なくとも1つによって周辺割込が示すタスクの実行を開始するように構成される割込制御回路とを含み、第1のサブシステムは、複数のプロセッサ回路の一時停止に応答して電力遮断制御信号を生成するように構成され、さらにシステムは、共有回路を用いて1つ以上の動作を行なうように構成される回路を含む第2のサブシステムと、第3のサブシステムとを含み得、第3のサブシステムは、周辺割込の受信と第1のサブシステムへの電力が無効化されることとに応答して電力投入制御信号を生成するように構成されかつ配置されるプロキシ割込制御回路と、電力管理回路とを含み、電力管理回路は、電力遮断制御信号と共有回路が第1および第2のサブシステムによって不使用であることとに応答して割込制御回路を含む第1のサブシステムへの電力を無効化し、かつ電力投入制御信号に応答して第1のサブシステムへの電力を有効化するように構成されかつ配置される。
【0062】
あるそのようなシステムでは、第2のサブシステムは、第2のサブシステムによって共有回路が不使用であることに応答して電力管理回路にそれぞれの電力遮断認証信号を与えるように構成される。
【0063】
あるそのようなシステムでは、第2のサブシステムはプログラマブル論理回路を含む。
あるそのようなシステムでは、共有回路はメモリコントローラを含み、複数のプロセッサ回路および第2のサブシステムは各々、メモリコントローラを用いてメモリにアクセスするように構成される。
【0064】
あるそのようなシステムでは、第3のサブシステムは、第1のサブシステムのメモリコントローラを用いてメモリにアクセスするように構成される回路を含む。
【0065】
あるそのようなシステムでは、第1のサブシステムは、複数のプロセッサ回路の1つがしきい値期間の間アイドルであることに応答して複数のプロセッサ回路の1つを一時停止するようにさらに構成される。
【0066】
あるそのようなシステムでは、第1のサブシステムは、第1の電力ゲーティング制御信号を生成することによって複数のプロセッサ回路の1つを一時停止するように構成され、電力管理回路は、第1の電力ゲーティング制御信号に応答して複数のプロセッサ回路の1つへの電力を無効化するように構成される。
【0067】
あるそのようなシステムでは、電力管理回路は、第2の電力アンゲーティング制御信号に応答して複数のプロセッサ回路の1つへの電力を有効化するようにさらに構成される。
【0068】
あるそのようなシステムでは、割込制御信号は、電力遮断制御信号を生成する前にプロキシ割込制御回路を有効化するようにさらに構成される。
【0069】
電力管理回路を動作させるための方法も開示される。
一例では、そのような方法は、電力管理回路を用いて、第1のサブシステムと、第1のサブシステムの共有回路を用いて1つ以上の動作を行なうように構成される第2のサブシステムとに電力を与えることと、第1のサブシステムからの電力遮断要求信号に応答して、共有回路が第2のサブシステムによって不使用である間は第1のサブシステムに電力を与え続け、かつ共有回路が第2のサブシステムによって不使用であることに応答して第1のサブシステムから電力を除去することとを含み得る。
【0070】
あるそのような方法では、方法は、第2のサブシステムを用いて、電力遮断要求信号と共有回路が第2のサブシステムによって不使用であることとに応答して電力遮断認証信号を生成することをさらに含む。
【0071】
あるそのような方法では、方法は、プロキシ割込コントローラを用いて周辺割込についてデータバスをモニタし、周辺割込に応答して電力投入制御信号を生成することと、電力管理回路を用いて第1のサブシステムに電力を与えることとをさらに含む。
【0072】
あるそのような方法では、方法は、第1のサブシステムから電力を除去する前にプロキシ割込コントローラを有効化することと、第1のサブシステムに電力を与えることに応答してプロキシ割込コントローラを無効化することとをさらに含む。
【0073】
方法および回路はさまざまなシステムおよび適用例に適用可能であると考えられる。明細書の考察から、当業者には他の局面および特徴が明らかであろう。たとえば、ある場合、局面および特徴は個別の図に記載されることがあるが、組合せが明示的に示されなくてもまたは組合せとして明示的に記載されなくても、1つの図からの特徴を別の図の特徴と組合せられることが認められるであろう。明細書および図面は例示のみとして考えられ、発明の真の範囲は以下の請求項によって示されることが意図される。
図1
図2
図3
図4
図5
図6