(57)【要約】【課題】エネルギー回収システムが、ある範囲の電力回収条件にわたって確実にブートすることができる技術を提供する。【解決手段】一部の実施形態では、装置は、一部は回収された電力によって動作し、かつ電力回収条件に関する情報を使用してその情報に基づいて電源投入シーケンスまたはブートシーケンスを変えるシステムオンチップなどの集積回路を含む。一部の実施形態では、方法は、電力回収およびエネルギー回収条件に関する情報を使用して電源投入シーケンスまたはブートシーケンスを変える。【選択図】図６
2016197410.tif 000002
【特許請求の範囲】
【請求項１】
エネルギー回収回路と、
前記エネルギー回収回路に動作可能に結合された集積回路（IC）と、
前記エネルギー回収回路によって回収されたエネルギーに関連付けられた情報を受け取るように構成されたブートオーバーライド構成部品と
を備え、
前記ブートオーバーライド構成部品が、前記ＩＣに対するブート要求に応じて、および前記情報に基づいて、修正されたブートシーケンスを定義するように構成され、それによって前記ＩＣが、前記ブート要求に応じて、前記修正されたブートシーケンスを実行する、
装置。
【請求項２】
前記修正されたブートシーケンスが複数の修正されたブートシーケンスセグメントであり、
前記ブートオーバーライド構成部品が、（１）前記ＩＣのブートシーケンスをセグメント化して複数のブートシーケンスセグメントを定義することによって前記複数の修正されたブートシーケンスセグメントを定義し、（２）前記複数のブートシーケンスセグメントを修正して前記複数の修正されたブートシーケンスセグメントを定義するように構成されている、
請求項１に記載の装置。
【請求項３】
前記ブートオーバーライド構成部品が、前記複数のブートシーケンスセグメントに含まれていなかった前記複数の修正されたブートシーケンスセグメントのうちの少なくとも２つの隣接した修正されたブートシーケンスセグメント間で休止を定義することによって、前記複数のブートシーケンスセグメントを修正して前記複数の修正されたブートシーケンスセグメントを定義するように構成されている、請求項２に記載の装置。
【請求項４】
前記ブートオーバーライド構成部品が前記複数の修正されたブートシーケンスセグメントを定義するように構成され、それによって前記ＩＣが、前記ブート要求に応じて、複数の時間のうちのある時間に前記複数の修正されたブートシーケンスセグメントのうちの修正されたブートシーケンスセグメントそれぞれを、（１）その修正されたブートシーケンスセグメントに関連付けられた複数のしきい値、ならびに（２）その時間におよび前記エネルギー回収回路から利用可能なエネルギー量に基づいて、実行する、
請求項２に記載の装置。
【請求項５】
前記複数の修正されたブートシーケンスセグメントのうちの修正されたブートシーケンスセグメントそれぞれが、その修正されたブートシーケンスセグメントを実行するためのエネルギー量に関連付けられており、
前記ブートオーバーライド構成部品が前記複数の修正されたブートシーケンスセグメントを定義するように構成され、それによって前記ＩＣが、前記ブート要求に応じて、複数の時間のうちのある時間に前記複数の修正されたブートシーケンスセグメントのうちの修正されたブートシーケンスセグメントそれぞれを、（１）その修正されたブートシーケンスセグメントに関連付けられた前記エネルギー量、ならびに（２）その時間におよび前記エネルギー回収回路から利用可能なエネルギー量に基づいて、実行する、
請求項２に記載の装置。
【請求項６】
前記ブートオーバーライド構成部品が、前記複数のブートシーケンスセグメントのうちの少なくとも２つのブートシーケンスセグメントの順序を変更することによって、前記複数のブートシーケンスセグメントを修正して前記複数の修正されたブートシーケンスセグメントを定義するように構成されている、請求項２に記載の装置。
【請求項７】
前記ＩＣが周辺構成部品に動作可能に結合されるように構成され、
前記ブートオーバーライド構成部品が前記周辺構成部品に関連付けられた動作を修正するように構成され、それによって前記修正されたブートシーケンスが定義される、
請求項１に記載の装置。
【請求項８】
前記ブートオーバーライド構成部品が、前記周辺構成部品のマップされた場所に関連付けられているメモリの値を変更することによって、前記周辺構成部品に関連付けられた動作を修正するように構成されている、請求項７に記載の装置。
【請求項９】
前記ブートオーバーライド構成部品が、複数のブートシーケンスセグメントのうちの少なくとも１つのブートシーケンスセグメントを第１の組の代替のブートシーケンスセグメントおよび第２の組の代替のブートシーケンスセグメントと置き換えることによって、前記周辺構成部品に関連付けられた動作を修正し、複数の修正されたブートシーケンスセグメントを定義するように構成されており、
前記ＩＣが、前記ＩＣに対するブート要求に応じて、前記複数の修正されたブートシーケンスセグメントを実行するように構成されている、
請求項７に記載の装置。
【請求項１０】
前記第１の組の代替のブートシーケンスセグメントおよび前記第２の組の代替のブートシーケンスセグメントそれぞれが、その組の代替のブートシーケンスセグメントを実行するためのエネルギー量に関連付けられており、
前記ブートオーバーライド構成部品が前記複数の修正されたブートシーケンスセグメントを定義するように構成され、それによって前記ＩＣが、前記ブート要求に応じて、複数の時間のうちのある時間に実行される前記第１の組の代替のブートシーケンスセグメントまたは前記第２の組の代替のブートシーケンスセグメントのいずれかを、（１）その組の代替のブートシーケンスセグメントに関連付けられた前記エネルギー量、ならびに（２）その時間におよび前記エネルギー回収回路から利用可能なエネルギー量に基づいて実行する、
請求項９に記載の装置。
【請求項１１】
前記ＩＣに動作可能に結合されたメモリと、
前記メモリに関連付けられた動作を修正して前記修正されたブートシーケンスを定義するように構成された前記ブートオーバーライド構成部品と
をさらに備える、請求項１に記載の装置。
【請求項１２】
前記ブートオーバーライド構成部品が、前記メモリの前記動作とは無関係に、前記メモリの少なくとも１つのピンのレベルを修正することによって、前記メモリに関連付けられた前記動作を修正するように構成されている、請求項１１に記載の装置。
【請求項１３】
前記ブートオーバーライド構成部品が、前記修正されたブートシーケンス内で前記メモリに対する条件付きジャンプのためのジャンプオペランドを修正することによって、または前記修正されたブートシーケンス内で前記メモリに対するジャンプ場所を修正することによって、前記メモリに関連付けられた前記動作を修正するように構成されている、請求項１１に記載の装置。
【請求項１４】
前記ブートオーバーライド構成部品に動作可能に結合された電力管理ユニット（PMU）と、
システムオンチップ（SoC）内部に含まれている前記エネルギー回収回路、前記ＩＣ、および前記ＰＭＵと、
前記ＰＭＵの動作を修正し、それによって前記メモリに関連付けられた前記動作を修正して前記修正されたブートシーケンスを定義するように構成された前記ブートオーバーライド構成部品と
をさらに備える、請求項１１に記載の装置。
【請求項１５】
集積回路（IC）に動作可能に結合されたエネルギー回収回路によって回収されたエネルギーに関連付けられた情報をブートオーバーライド回収構成部品において受け取るステップと、
前記ＩＣに対するブート要求に応じて、および前記情報に基づいて、修正されたブートシーケンスを前記ブートオーバーライド回収構成部品において定義し、それによって前記ＩＣが、前記ブート要求に応じて、前記修正されたブートシーケンスを実行するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[1001]  本明細書に記載された一部の実施形態は、概して、電力回収条件に関連する情報を使用してシステムオンチップ（SoC:system-on-chip）などの集積回路の電源投入シーケンスまたはブートシーケンスを変えるための方法および装置に関する。
【背景技術】
【０００２】
[1002]  バッテリーによっておよび／または環境から回収された電力によって動作する携帯システムは、典型的には、所定量の利用可能エネルギーに対してシステム寿命を延ばすために少量のエネルギーを消費する。携帯システムにとってのエネルギー収支は、より小さなサイズ（より小さなバッテリー容積、したがって、より少ない利用可能エネルギー）、より長い寿命（エネルギーをより長持ちさせる）、および／またはより多くの機能性（同一のエネルギー量でより多くのことを行う）を目的とする設計基準の組合せのために一連の用途の拡大に影響を与える。これらの新しく浮上しつつある類の携帯システムは、監視、検知、制御、またはセキュリティー機能を行うことを含む様々な用途において無線ノードとして使用されることがある。新しく浮上しつつある「物のインターネット（IoT:Internet of Things）」に属するとしてしばしば分類されるこの種の機器への注目の割合が高まりつつあることで、これらの機器が典型的には少なくとも一部はこれら機器の環境から回収される電力を使用して動作することが考慮され、新しい類の電力回収システムオンチップ（SoC）がこの目的のために出現した。これらのＳｏＣは、電力回収回路、電力管理回路、センサまたはセンサインタフェース、処理構成部品（例えば、マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサ、ハードウェアアクセラレータ）、メモリおよび無線通信回路（例えば、無線機）の組合せを含むことができる。
【０００３】
[1003]  埋め込まれた処理素子を有するＳｏＣは、典型的にはそれらがどのようにオンして、システムの異なる構成部品を設定するか、およびプロセッサ自体がどのように動作状態へブートするかを管理する起動シーケンスに追従する。起動シーケンスは、ソフトウェアを使用したある程度のプログラム可能性を有するハードウェアによって通常管理される。プロセッサのブートシーケンスは、通常、読み取り専用メモリ（ROM）（ROMの代わりの他の選択肢は、一回プログラム可能メモリ（OTP:one-time programmable）、複数回プログラム可能メモリ（MTP:multiple-time programmable）、プログラム可能ROM（PROM）、電気的消去可能PROM（EEPROM）、および他の様々なタイプの不揮発性メモリ（NVM）を含む）のコードを実行する。ＲＯＭのコードは、プロセッサ自体を初期化し、実行を開始するために、プロセッサ上で最終的に動くアプリケーションのための方法を提供する。このブートシーケンスには、しばしば、割込みハンドラまたは例外ベクトルの初期化、スタックの初期化、メモリシステムおよびレジスターの初期化、周辺装置の初期化、入出力デバイスのコンフィギュレーション、セキュリティハンドリング、割込み許可、プロセッサモードコンフィギュレーション、変数初期化、（アプリケーションコードが利用可能でない場合）外部ソースからのアプリケーションコードのブートロード、最後に、メインアプリケーションコードへのジャンプが含まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[1004]  電力回収システムに固有の様々な条件は、ＳｏＣなどの集積回路をブートするための従来の方法が信頼性のあるまたは長期の機能性を提供するシステムの能力を著しく劣化させる状況をもたらすことがある。したがって、エネルギー回収システムが、ある範囲の電力回収条件にわたって確実にブートすることができる方法および実施態様が必要である。
【課題を解決するための手段】
【０００５】
[1005]  一部の実施形態では、装置は、一部が回収電力によって動作する、および電力回収条件に関する情報を使用してその情報に基づいて電源投入シーケンスまたはブートシーケンスを変える、システムオンチップなどの集積回路を含む。一部の実施形態では、方法は、電力回収およびエネルギー回収条件に関する情報を使用して電源投入シーケンスまたはブートシーケンスを変える。
【図面の簡単な説明】
【０００６】
【図１】[1006]一実施形態によるエネルギー回収システムのブロック図である。環境から回収された電力（PH（t））は、貯蔵ノードに送出され、この貯蔵ノードがシステムにおいて後で使用するためのエネルギー（EStorage）を貯蔵する。システムにおける回路は、貯蔵素子から取り出されたある負荷電力（PLOAD（t））を与える電流を取り出す。
【図２】[1007]不揮発性メモリおよび／または揮発性メモリに記憶された命令を使用してブート動作を実行することによってリセットからの脱出に応答する公知のサブシステムのブロック図である。
【図３】[1008]公知のシステムがリセットからの抜け出しにどのように応答するかを示す流れ図である。
【図４ａ】[1009]エネルギー回収システムにおける利用可能なエネルギーに関する例示的なシナリオの時間に対する利用可能なエネルギーの例である。
【図４ｂ】[1009]エネルギー回収システムにおける利用可能なエネルギーに関する例示的なシナリオの時間に対する利用可能なエネルギーの例である。
【図４ｃ】[1009]エネルギー回収システムにおける利用可能なエネルギーに関する例示的なシナリオの時間に対する利用可能なエネルギーの例である。
【図５】[1010]回収条件に関する情報に基づいてブート動作を修正することによって（例えば、ブートプロセスの割込み、休止、または変更によって）、ブート動作が首尾よく完了することが可能となる場合の、悪いエネルギー回収条件での回収動作中の利用可能なエネルギーの例である。
【図６】[1011]一実施形態による、電力回収条件に関する情報を使用してリセットまたはブート動作を変えるためのサブシステムのブロック図である。
【図７】[1012]一実施形態による、電力回収条件に関する情報を使用してリセットまたはブート動作を変えるためのシステムの動作に関する流れ図である。
【発明を実施するための形態】
【０００７】
[1013]  環境から回収されたエネルギーによって動作することができるほどに十分に低い電力を消費する集積回路（IC）は、物のインターネットにおける無線検知に対する魅力のある解決策を提供する。マイクロエレクトロニクスシステムを動作させる公知の手法の多くは、バッテリーまたは他の同様に信頼性のある連続的な電力源の存在を仮定しており、このような電力源は、典型的にはエネルギー回収システムでは当てはまらない。
【０００８】
[1014]  図１は、一実施形態によるエネルギー回収システムのブロック図である。図１に示すように、回収源１００は、エネルギー回収回路１１０に接続され、または動作可能に結合されている。回収源１００は、例えば、光電池、熱電発電機、および／または電磁エネルギー、振動などを生成する発生源などの、回収可能な任意の他のエネルギー源であってもよい。エネルギー回収回路１１０は、回収源１００からエネルギーを受け取り、このエネルギーを別の形態に変換するいかなる回路であってもよい。例えば、エネルギー回収回路１１０は、入力電圧ＶIN１１１および入力電流ＩIN１１２を受け取り、効率ＥＦＦHで、回収電力ＰH（t）１１３および出力電流ＩH１１３を送り出すことができる。
【０００９】
[1015]  環境から回収された電力（PH（t）１１３）は、貯蔵ノード１２０（本明細書では「エネルギー貯蔵素子」または「貯蔵素子」とも呼ばれる）に送出され、この貯蔵ノードがシステムにおいて後で使用するためのエネルギー（EStorage）を貯蔵する。貯蔵ノード１２０は、例えば、１．５ボルトのバッテリーなどのバッテリーであってもよい。貯蔵ノード１２０は、電圧ＶCAP１２１および電流ＩCAP１２２を有することができ、直流（DC）−ＤＣレギュレータ１３０に接続されてもよい。ＤＣ−ＤＣレギュレータ１３０は、電力ＰLOAD（t）１３１で電流ＩLOAD１３２を受け取り、効率ＥＦＦRで、電流ＩVDD１３２および電圧ＶDD（複数可）１３３を生成することができる。
【００１０】
[1016]  システムにおける負荷回路１４０は、典型的にはＤＣ−ＤＣレギュレータ１３０を介して電流ＩLOAD１３２を取出し、貯蔵素子１２０から取り出されたある負荷電力（PLOAD（t）１３１）を消費し、貯蔵素子１２０に貯蔵されたエネルギーＥStorageを減少させることができる。ＤＣ−ＤＣレギュレータは任意選択であり、一部の代替の実施形態には含まれていないことに留意されたい。負荷回路１４０は、例えば、アナログ回路（複数可）、デジタル回路（複数可）、および／または無線周波数（RF）回路（複数可）のいずれであってもよい。負荷回路１４０は、別の例として、図２および図６に関連して以下でさらに詳細に論じるプロセッサまたは集積回路（IC）を含むことができる。そのようなプロセッサまたはＩＣは、例えば、他の回路、素子、および構成部品を含むことができるシステムオンチップ（SoC）内部に含まれてもよい。
【００１１】
[1017]  後で使用するために貯蔵されるエネルギー量ＥStorageは、エネルギー貯蔵ノードの電圧ＶCAP１２１と関連している。貯蔵ノード１２１が静電容量ＣStoreを有するコンデンサーの場合、ＥStorage＝０．５＊ＣStore＊ＶCAP2である。典型的な１組の負荷回路は、ある最小の動作電圧を有し、その電圧を下回ると回路の一部が正確に動作しない。このため、正確な動作が可能となるように十分な電圧供給が利用可能となるまで、この１組の負荷回路をリセット状態に保持する電源投入リセット（POR:power-on reset）信号を実施することになる。一旦、供給電圧１３３が十分に高い電圧に達すると、ＰＯＲは、オフし、１組の負荷回路をブートさせることができ、これが、通常動作に対する立上げのプロセスである（他のリセット源によっても１組の負荷回路のブート動作を実行することができる）。バッテリーを使用する場合、電圧は、速やかにこの機能レベルに達し、典型的にはバッテリーの寿命がある間そのレベルにとどまる。
【００１２】
[1018]  図２は、不揮発性メモリおよび／または揮発性メモリに記憶された命令を使用してブート動作を実行することによって、リセットからの脱出に応答する公知のサブシステムのブロック図である。特に、図２は、（図１の負荷回路１４０のなどの）負荷回路の公知の実施態様を表わす。図１の例に従うと、リセット信号２００は、ＤＣ−ＤＣレギュレータ１３０によって負荷回路１４０に供給される電圧ＶDD（複数可）１３３に対応することができる。図２に示すように、プロセッサ２１０は、リセット信号２００を受け取り、それに応じて、不揮発性メモリ２２０および／または揮発性メモリ２３０にブート命令を要求し、受け取る。プロセッサ２１０は、任意の１つまたは複数のプロセッサ、マイクロプロセッサ、特定用途向け集積回路（ASIC）、フィールドプログラマブルゲートアレイ（FPGA）、または命令を解釈し実行することができる他のタイプの処理ユニットであってもよい。不揮発性メモリ２２０は、例えば、読み取り専用メモリ（ROM）、フラッシュメモリ、消去可能プログラム可能読み取り専用メモリ（EPROM）、および電気的消去可能プログラム可能読み取り専用メモリ（EEPROM）であってもよい。揮発性メモリ２３０は、例えば、スタティックランダムアクセスメモリ（SRAM）およびダイナミックランダムアクセスメモリ（DRAM）であってもよい。
【００１３】
[1019]  図３は、公知のシステムがリセットからの抜け出しにどのように応答するかを示す流れ図である（例えば、リセットモードからの抜け出し）。例えば、図３は、図１のシステムと同様のシステムに対するリセットから抜け出すためのプロセスを表わすことができ、ここでは図１の負荷回路１４０が図２に示す１組の回路のように公知のやり方で実装されている。本文脈では、リセットからの抜け出し（または、リセットモードからの抜け出し）は、初めて、または電力のない状態から始動しつつある（「コールドスタート」とも呼ばれる）プロセッサ（またはIC）を有する電子システムを指す。典型的には、電子システムの既存のリセット（または、始動）は、レジスターを初期化してプロセッサを既知の状態および定義されたメモリマップに設定するための命令のブートコードまたはブートシーケンスを実行する。これには、例えば、速度計時、実行モードが含まれてもよく、他の関連するプロセス特有の項目には、メモリインタフェースなどの定義が含まれる。
【００１４】
[1020]  ３０２でリセットモードから抜け出した後、３０３でのブート動作は、典型的には、例えば、割込みハンドラまたは例外ベクトルの初期化、スタックの初期化、メモリシステムおよびレジスターの初期化、周辺装置の初期化、入出力デバイスのコンフィギュレーション、セキュリティハンドリング、割込み許可、プロセッサモードコンフィギュレーション、変数初期化、（アプリケーションコードが利用可能でない場合は）外部ソースからのアプリケーションコードのブートロード、最後に、メインのアプリケーションコードへのジャンプなどのタスクを行う複数の命令ブロックの実行を含む。ブートプロセスは、異なるモード（例えば、セーフモードに対してユーザモード）にブートを誘導するピンなどの外部ソースからの入力を取り込んでもよいが、一旦ブートプロセスが開始すると、典型的には、電力またはエネルギー回収条件になんら注意がなされることなく完了するまで実行する。ブートプロセスの後、３０４でユーザコードが実行される。
【００１５】
[1021]  システムが有線の電源またはバッテリーによって動作する場合は、ＰＯＲの遷移は、信頼性のある連続的な電力源が利用可能であることを示しているため、ブート中の電力条件に注意する大きな理由は存在しない。この仮定は、回収されたエネルギーを使用して動作するシステムにとっては必ずしも成り立たない。例えば、利用可能な貯蔵エネルギー量が少ない場合があり、または回収されるエネルギー（回収電力）の割合が低い場合がある。これらの例のいずれかにおいて、著しくエネルギーを消費するブートシーケンスの実行などのチップ動作は、システムの動作を変えるのに十分多量の貯蔵エネルギーを消耗させる可能性がある。この１つの結果は、例えば、利用可能なエネルギー（したがって、エネルギー貯蔵電圧）がリセット状態を引き起こすのに十分に低く減少することによって、ブートシーケンスがチップを強制的にリセット条件へ戻すことである。
【００１６】
[1022]  図４は、図２に示すような負荷回路の公知の実施態様を有するエネルギー回収システムにおける利用可能な貯蔵エネルギーについて例示的なシナリオの時間に対する利用可能なエネルギーの例を示す。破線は、回収されるエネルギー（ブート動作による消費がない場合）の量を示し、実線は、消費されるエネルギーの量を示す。図４（a）は、回収されるエネルギーがシステムによって消費されるエネルギーを実質的に上回る良好な回収条件において利用可能なエネルギーがどのように増加するかを示す。したがって、ブート動作は、中断されずに続行することができる。図４（b）は、上記のように、悪い回収条件において発生し得る１つの潜在的な問題を示す。この場合、電力回収は、ゆっくりとした速度で生じ、したがって、貯蔵エネルギーは、時間とともによりゆっくりと増加する。システムがリセット状態から抜け出し、ブートシーケンスを開始するとき、ブートシーケンスを実行するエネルギーのコストは、電力回収による補充エネルギーを上回り、ＰＯＲがディアサートするまで貯蔵エネルギー（したがって、エネルギー貯蔵電圧）を低下させ、システムをリセット状態に戻す原因となる。この種の状況は、有線の電力によって、または従来のバッテリーによって動作するシステムにとっては問題ではない。しかしながら、この範疇の問題の適切な管理がなければ、電力回収システムは、正確に機能することが全くできないいくつかのシナリオに遭遇することがある。例えば、図４（c）は、ブートシーケンスを実行するエネルギーのコストが、回収エネルギーを補充するコストと比較して大きい場合、システムが、一部のシナリオにおいてリセット状態と非リセット状態との間でどのように揺れ動くことがあるかを示す。これによって、システムが長時間ブートシーケンスを完了できない可能性がある。
【００１７】
[1023]  したがって、電力回収およびエネルギー貯蔵条件を明らかにする、電力回収システムにおけるブートシーケンスを実行する方法が必要である。電力回収およびエネルギー回収条件に関する情報を使用して電力回収システムのための電源投入シーケンスまたはブートシーケンスを変えるための装置および方法について記載する。
【００１８】
[1024]  図５は、一実施形態による、悪いエネルギー回収条件での回収動作中の利用可能な貯蔵エネルギーの時間に対する利用可能なエネルギーの例を示す。より詳細には、図５は、一実施形態による、修正されたブート動作（例えば、ブートプロセスの割込み、休止、または変更による）を有するシステムについての時間に対する利用可能なエネルギーの例を示す。ブート動作は、例えば、ブートプロセスのエネルギー消費を低減させ、回収される電力が消費される電力を上回ることができるように、回収条件に関する情報に基づいて修正され得る。その結果、貯蔵エネルギーは、ブート動作が中断されリセットされる図４（b）および図４（c）とは対照的に、ブート動作が首尾よく完了するのを妨げるほどには減少しない（ブート動作が中断されリセットされる水平の破線で示すしきい値を下回る実線に留意されたい）。この場合も、破線は、（ブート動作による消費がない場合の）回収されるエネルギーの量を示し、実線は、消費されるエネルギーの量を示す。
【００１９】
[1025]  図６は、一実施形態による、リセットまたはブート動作を変えるために電力回収条件に関する情報を使用するサブシステムのブロック図を示す。特に、図６のサブシステム６００は、一実施形態による、（図１の負荷回路１４０などの）負荷回路の実施態様を表わす。図１の例に従うと、リセット信号６０１は、ＤＣ−ＤＣレギュレータ１３０によって負荷回路１４０に供給される電圧ＶDD（複数可）１３３に対応することができる。
【００２０】
[1026]  図６に示すように、サブシステム６００は、不揮発性メモリ６０３および揮発性メモリ６０４に接続された、または動作可能に結合されたプロセッサ６０２を含む。プロセッサ６０２は、図２のプロセッサ２１０と同様であってもよく、不揮発性メモリ６０３および揮発性メモリ６０４は、それぞれ図２の不揮発性メモリ２２０および揮発性メモリ２３０と同様であってもよい。また図６のサブシステムは、プロセッサ６０２、不揮発性メモリ６０２、および／または揮発性メモリ６０４に接続された、または動作可能に結合されたブートオーバーライド構成部品を含む。リセット信号６０１は、プロセッサ６０２およびブートオーバーライド構成部品６１０によって受け取られる。また、ブートオーバーライド構成部品６１０は、電力およびエネルギーパラメータ６１１を受け取る。
【００２１】
[1027]  ブートオーバーライド構成部品６１０は、既存のリセット信号（複数可）ならびに電力およびエネルギー回収条件に関連するパラメータを入力として受け取る。ブートオーバーライド構成部品６１０は、システム（例えば、集積回路またはシステムオンチップ）に対する電力回収、エネルギー回収、およびエネルギー貯蔵条件に関する情報を決定し、その情報を使用してリセットまたはブートシーケンスの実行を変える。ブートオーバーライド構成部品６１０は、例えば、サブシステム６００内またはサブシステム６００外の、プロセッサ６０２、不揮発性メモリ６０３、および／または揮発性メモリ６０４に動作可能結合された構成部品またはモジュールであってもよい。あるいは、ブートオーバーライド構成部品６００は、プロセッサ６０２、不揮発性メモリ６０３、および／または揮発性メモリ６０４内の構成部品またはモジュールであってもよい。ブートオーバーライド構成部品６１０は、例えば、ハードウェア／ファームウェアのブロック、または、メモリに記憶された、もしくはハードウェアで実行するソフトウェア／ファームウェアの追加の命令行もしくはサブルーチンを含む、ハードウェア、ファームウェアまたは（メモリに記憶された、またはハードウェア／ファームウェアで実行する）ソフトウェアの形態であってもよい。
【００２２】
[1028]  ブートオーバーライド構成部品６１０が受け取る電力およびエネルギーパラメータ６１１ならびに／またはブートオーバーライド構成部品６１０が計算する電力回収条件には、例えば、エネルギー貯蔵素子（例えば、図１のエネルギー貯蔵素子１２０）に貯蔵されたシステムにおける利用可能なエネルギーの状態、ブートプロセスの異なる部分を行うために使用される電力またはエネルギー、システムにおける供給電圧レールの値（例えば、図１の電圧VDD（複数可）１３３）、システムにおける供給電圧レールによって取り出される電流（例えば、図１の電流IVDD１３４）、システムにおける供給電圧レールによって取り出される様々な派生電流（例えば、図１の電流IVDD１３４）、エネルギー貯蔵ノードの電圧の値（例えば、図１の電圧VCAP１２１）、エネルギー貯蔵ノードの様々な派生電圧（例えば、図１の電圧VCAP１２１）、エネルギー貯蔵ノードに送出される電流（例えば、図１の電流ICAP１２２）、エネルギー貯蔵ノードに送出される様々な派生電流（例えば、図１の電流ICAP１２２）、エネルギー貯蔵ノードから取り出される電流（例えば、図１の電流ILOAD１３２）、エネルギー貯蔵ノードから取り出される様々な派生電流（例えば、図１の電流ILOAD１３２）、エネルギー回収回路１１１への入力電圧、エネルギー回収回路への様々な派生入力電圧（例えば、図１の電圧VIN１１１）、エネルギー回収回路への入力電流（例えば、図１の電流IIN１１２）、エネルギー回収回路への様々な派生入力電流（例えば、図１の電流IIN１１２）、エネルギー回収回路による回収電力（例えば、図１の電力PH（t）１１３）、エネルギー回収回路から送出される電流（例えば、図１の電流IH１１４）、エネルギー回収回路から送出される様々な派生電流（例えば、図１の電流IH１１４）、負荷電力（例えば、図１の負荷電力PLOAD（t）１３１）、組込み自己テストからの出力（図示せず）、前の電力遷移に関連するメモリに記憶された値（例えば、図２のメモリ２２０および／もしくは２３０に記憶された値）、エネルギー回収回路（例えば、図１のエネルギー回収回路１１０）の直前もしくは現在の状態、または電源のタイプ（例えば、エネルギー回収回路対バッテリー／エネルギー貯蔵素子対ユニバーサルシリアルバス（USB）（図示せず））が含まれてもよい。
【００２３】
[1029]  一部の事例では、（普通ならば通常のブートプロセスまたはブートシーケンスを実行する）サブシステム６００内の構成部品に作用するブートオーバーライド構成部品６１０および／または何らかの他の構成部品（図示せず）は、通常のブートプロセスまたはブートシーケンスに対する介入、監視、ストール、中断、停止、またはリダイレクトを行うことがある。言いかえれば、ブートオーバーライド構成部品６１０の出力によって、プロセッサが修正されたブートシーケンスをブート要求に応じて実行するように、ブートシーケンスを変更／修正することができる。その結果、一部の事例では、ブートシーケンスのこの変更／修正は、負荷回路によって取り出される電流（例えば、図１の電流ILOAD１３２）を効果的に減少させ、それによって、変更／修正を行わない場合と比較してエネルギー貯蔵素子（例えば、図１のエネルギー貯蔵素子１２０）のエネルギーを温存する。これには、ピーク負荷電流（例えば、図１の電流ILOAD１３２）、平均負荷電流（例えば、図１の電流ILOAD１３２）、負荷によって取り出される電力（例えば、図１の負荷電力PLOAD（t）１３１）、または負荷によって消費されるエネルギー（例えば、図１の負荷回路１４０によって消費されるエネルギー）を変えるための動作を行うことが含まれてもよい。以下の議論は、例えば、（図１のエネルギー回収回路１１０および／またはエネルギー貯蔵素子１２０などの）エネルギー回収回路および／またはエネルギー貯蔵素子に関連付けられた電力回収条件に基づいて、ブートオーバーライド構成部品６１０によって送り出される命令（または、制御信号）に応答して行われ得る動作のいくつかの例を提供する。
【００２４】
[1030]  一部の事例または実施形態では、電力回収条件に応じて行われる動作は、ハードウェア（例えば、プロセッサ６０２、不揮発性メモリ６０３、および／または揮発性メモリ６０４）に変更を加えることであってもよい。あるいは、電力回収条件に応じて行われる動作は、ソフトウェア（例えば、プロセッサ６０２で実行するソフトウェア、ならびに／または不揮発性メモリ６０３および／もしくは揮発性メモリ６０４に記憶されたソフトウェア）に変更を加えることであってもよい。
【００２５】
[1031]  一部の事例または実施形態では、電力回収条件に応じて行われる動作は、ブートローダのオプションまたはブートモードに変更を加えることであってもよい（例えば、ブートシーケンスをセグメント化し、修正して、１組の修正されたブートシーケンスセグメントを定義することができる）。
【００２６】
[1032]  一部の事例または実施形態では、電力回収条件に応じて行われる動作は、リセット信号を遮断し、リセットが電力回収条件に基づいてのみ生じることができるようにすることであってもよい。
【００２７】
[1033]  一部の事例または実施形態では、電力回収条件に応じて行われる動作は、通常のブートシーケンスの異なる点で休止またはストールすることであってもよい。あるいは、電力回収条件に応じて行われる動作は、電力条件に基づいてブートシーケンスを開始するためのしきい値を再定義することであってもよい。例えば、複数のしきい値は、ブートシーケンスのサブセットのためのゲート信号として働くことができる。
【００２８】
[1034]  一部の事例または実施形態では、電力回収条件に応じて行われる動作は、不揮発性メモリ（例えば、図６の不揮発性メモリ６０３）などのメモリの出力または動作を修正することであってもよい。これは、例えば、メモリの動作が修正されるように、プロセッサ／ＩＣが、ブート要求に応じて、修正されたブートシーケンスを実行するように、修正されたブートシーケンスを定義することによって達成され得る。例えば、メモリの動作は、少なくとも１つのピンを不揮発性メモリによって決定されないレベルに設定することによって修正されてもよい。言いかえれば、メモリの動作は、メモリの動作とは無関係に、メモリの少なくとも１つのピンのレベルを修正することによって修正され得る。また、不揮発性メモリの出力は、不揮発性メモリの出力を異なる値に置き換えるマルチプレクサー（図示せず）を使用して変更されてもよい。これらの同一の技法は、揮発性メモリ（例えば、図６の揮発性メモリ６０４）のブートコードに同様に適用され得る。
【００２９】
[1035]  一部の事例または実施形態では、電力回収条件に応じて行われる動作は、外部ソース、代替メモリなどの新しい場所、またはオンチップメモリの異なる場所からブートコードをロードすることによって、不揮発性メモリのアクセスを中断することまたは専有することであってもよい。あるいは、電力回収条件に応じて行われる動作は、条件付きジャンプ（複数可）のためのジャンプオペランドを制御すること、またはブートコードからジャンプ場所を制御することによって、不揮発性メモリのアクセスを中断する、専有する、または変えることであってもよい。条件付きジャンプ（複数可）のためのジャンプオペランドの制御は、例えば、修正されたブートシーケンスを実行すると同時に行われてもよい。同様に、ジャンプ場所の制御は、修正されたブートシーケンスによって実施されてもよい。
【００３０】
[1036]  一部の事例または実施形態では、電力回収条件に応じて行われる動作は、例えば、その周辺構成部品（複数可）に関連付けられた、メモリマップされた場所を変更することによって、周辺構成部品（複数可）の初期化を変えることであってもよい。あるいは、電力回収条件に応じて行われる動作は、電力条件に基づいて周辺ブロックのための代替のブートモードを定義すること、および周辺構成部品（複数可）のためのブートモードを選択することであってもよい。例えば、通常の動作が周辺構成部品（複数可）を設定し、イネーブルにする場合、代替のモードは、周辺構成部品（複数可）を設定するが、イネーブルにしなくてもよい。本文脈では、周辺構成部品（複数可）は、本明細書に記載された方法（複数可）を行っているプロセッサ、ＩＣまたはＳｏＣの外部に位置し、それらとは分離しているという意味で、周辺である。
【００３１】
[1037]  一部の事例または実施形態では、電力回収条件に応じて行われる動作は、ＳｏＣ上の電力管理ユニット（PMU:power management unit）の振る舞いを変更し、そのモードまたは状態または制御スキームを変えることであってもよい。言いかえれば、ブートオーバーライド構成部品は、メモリに関連付けられた動作を修正して、修正されたブートシーケンスを定義するように、ＰＭＵの動作を修正することができる。
【００３２】
[1038]  一部の事例または実施形態では、電力回収条件に応じて行われる動作は、ブートシーケンスをセグメント化すること、およびブートシーケンスのセグメントそれぞれが、ブートシーケンスのそのセグメントの実行によって消費されるエネルギーと利用可能エネルギーとのある組合せに応じて実行できるようにすることであってもよい。言いかえれば、ブートシーケンスをセグメントに分割して１組のブートシーケンスセグメントを定義することができ、次いで、１組のブートシーケンスセグメントを修正して１組の修正されたブートシーケンスセグメントを定義することができる。例えば、１組の修正されたブートシーケンスセグメントは、個々のセグメントの実行のタイミングが制御される（例えば、休止が、隣接セグメントの実行間で定義され得る）ように、タイミング情報に関連付けられてもよい。別の例において、１組の修正されたブートシーケンスセグメントは、それぞれのブートシーケンスセグメントが１組の時間のうちのある時間に実行されるように、実行されてもよい。この１組の時間のうちのそれぞれの時間は、１組のしきい値のうちの、およびそのセグメントに対するあるしきい値に基づいてもよく、エネルギー回収回路からのその時に利用可能なエネルギー量に基づいてもよい。あるいは、または加えて、電力回収条件に応じて行われる動作は、ブートシーケンスをセグメント化すること、およびブートシーケンスのセグメントの実行の順序を変更することであってもよい。言いかえれば、ブートシーケンスをセグメントに分割して１組のブートシーケンスセグメントを定義することができ、次いで、１組のブートシーケンスセグメントを修正して少なくとも２つのブートシーケンスセグメントの順序を変更することによって１組の修正されたブートシーケンスセグメントを定義することができる。
【００３３】
[1039]  一部の事例または実施形態では、電力回収条件に応じて行われる動作は、代替のブートプログラムまたはサブプログラムを定義すること、および電力条件に基づいて実行するプログラムまたはサブプログラムを選択することであってもよい。言いかえれば、ブートシーケンスをセグメントに分割して１組のブートシーケンスセグメントを定義することができ、次いで、１組のブートシーケンスセグメントを修正して少なくとも１つのブートシーケンスセグメントを少なくとも２つの代替のブートシーケンスセグメントに置き換えることによって、１組の修正されたブートシーケンスセグメントを定義することができ、この２つの代替のブートシーケンスセグメントのうちの１つが電力条件に応じて実行される。あるいは、電力回収条件に応じて行われる動作は、ブートシーケンスのセグメントの動作を、既に開始した後に停止すること、直前の条件に戻すこと、および場合によっては遅延させた、または修正された状態で、動作を再開することであってもよい。
【００３４】
[1040]  メモリアクセス自体によって消費される電力は、エネルギー回収システムにとって問題となる場合がある。一部の事例または実施形態では、電力回収条件に応じて行われる動作は、メモリ（例えば、図６の不揮発性メモリ６０３または揮発性メモリ６０４）においてアクセスされるデータ量、データの速度、またはデータのパターンを制御することであってもよい。
【００３５】
[1041]  図７は、電力回収条件に関する情報を使用してリセットまたはブート動作を変えるシステムの動作に対する流れ図を示す。図３に関連した上記の議論と同様に、図７は、初めて、または電力のない状態から始動しつつある（「コールドスタート」とも呼ばれる）プロセッサ（またはIC）を有する電子システムによってリセットから抜け出した（または、リセットモードから抜け出した）後のプロセスを指す。しかしながら、ここでは、プロセッサは、例えば、ブートプロセス自体を専有する、または妨げる（例えば、命令のブートシーケンスを専有する、妨げる、または修正する）ことによって、リセットまたはブート動作を変えることを含んでもよい。例えば、アナログ回路は、プロセッサ／ＩＣがブートしてしまう前に、アナログ回路がブートシーケンスを変更または修正し、プロセッサ／ＩＣが、始動または初期動作すると同時にこの修正されたブートシーケンスを実行するように動作してもよい。これは、公知のシステムが、プロセッサ／ＩＣがブートした後に（例えば、命令のブートシーケンスを実行した後に）、従来の電源管理技法を行うのとは対照的である。
【００３６】
[1042]  より詳細には、公知のブートプロセスに対する流れ図（図３）とは対照的に、この変更された方法は、通常のブートプロセスが、電力回収条件７０１の評価に一部基づいて、続行することができるかどうかに関する判定７０２を行う。続行できる場合は、通常のブートプロセスは、７１０を実行する。そうでない場合は、変更されたブートプロセスは、７２０を実行し、ここでは、電力回収条件に基づいてブートプロセスを調整するためのさらなる判定が完了するまで行われる。変更されたブートプロセス７２０は、７２１で利用可能電力、エネルギー条件、およびブート状態を評価すること、７２２で一部のまたは修正されたブートプロセスを実行すること、７２３でブート動作が行われるかどうかを判定することを含む。７２３でブート動作が行われる場合は、７３０でユーザコードの実行を開始する。７２３でブート動作が行われない場合は、変更されたブートプロセス７２０は、７２１から開始して繰り返す。
【００３７】
[1043]  一部の事例では、図７のプロセスは、エネルギー回収および電力管理ブロック（例えば、図１のエネルギー回収回路１１０、エネルギー貯蔵素子１２０、および／またはDC-DCレギュレータ１３０）を有するエネルギー回収無線センサ、プロセッサならびに無線機（例えば、プロセッサおよび無線機は、図１の負荷回路１４０によってひとまとめにして表わされている）に適用されてもよい。ブートオーバーライド構成部品（例えば、図６のブートオーバーライド構成部品６１０）は、図７に示すプロセスの一部を行うことができる。例えば、リセット信号がディアサートされるとき、ブートオーバーライド構成部品は、電力回収条件を評価し、例えば、利用可能な貯蔵エネルギーおよび入力する電力の速度を、ブートするのに必要な計算されたエネルギー消費量と比較することによって、通常のブートを行うことができるかどうかを７０２で判定することができる。利用可能なエネルギーのほうが高い場合は、７１０で通常のブートプロセスが行われる。そうでなければ、ブートオーバーライド構成部品は、７２０で変更されたブートプロセスを行う。例えば、変更されたブートプロセスは、７２１での利用可能なエネルギーの進行中の評価に基づいて、ブートプロセスにおける異なるサブルーチンに対して不揮発性メモリから出現するコードのジャンプ場所を置き換えることができる。
【００３８】
[1044]  本明細書で使用される場合、単数形「１つの（a）」「１つの（an）」、および「その（the）」は、文脈で明確にそうでないと述べない限り、複数の指示対象を含む。したがって、例えば、用語「電気的構成要素」は、単一の電気的構成要素または電気的構成要素の組合せを意味することが意図されている。
【００３９】
[1045]  様々な実施形態について上記したが、それらが単に例として示され限定ではないことを理解されたい。同様に、様々な図面は、実施形態に対する例示的なアーキテクチャ構成または他の構成を示し得るものであり、これらは、含むことができる特徴および機能性を理解する助けとなるように示されている。本開示は、図示する例示的なアーキテクチャまたは構成に限定されず、様々な代替のアーキテクチャおよび構成を使用して実施されてもよい。さらに、個々の実施形態の１つまたは複数に記載された様々な特徴および機能性は、記載されている特定の実施形態に適用可能であることに限定されず、代わりに、そのような実施形態が記載されているかどうかにかかわらず、ならびにそのような特徴が記載された実施形態の一部であるとして示されているかどうかにかかわらず、単独でまたはある組合せで他の実施形態の１つまたは複数に適用することができることを理解されたい。したがって、本開示の広さおよび範囲は、上記の例示的な実施形態のいずれによっても限定されるべきではない。
【００４０】
[1046]  様々な実施形態について上記したが、それらが単に例として示され、限定ではないことを理解されたい。上記の方法がある順序で行われるある事象を示す場合、ある事象の順序は、修正することができる。
【図１】
2016197410.tif 000003
【図２】
2016197410.tif 000004
【図３】
2016197410.tif 000005
【図４ａ】
2016197410.tif 000006
【図４ｂ】
2016197410.tif 000007
【図４ｃ】
2016197410.tif 000008
【図５】
2016197410.tif 000009
【図６】
2016197410.tif 000010
【図７】
2016197410.tif 000011
【外国語明細書】
2016197410000001.pdf