(57)【要約】      （修正有）【課題】サブシステムリソース（クロック、電力及びリセット）を独立なドメインに分離する。【解決手段】システム２００の各サブシステムは、他のサブシステムとは独立に動作する、１つ以上の専用の電力ドメイン及びクロックドメインを有する。例えば、例示的なセルラー方式、ＷＬＡＮ及びＰＡＮ接続があるモバイルデバイスでは、それぞれのこのようなサブシステムは、共通のメモリマップトバス機能に接続され、その上独立に動作できる。【選択図】図２
2018081688.tif 000002
【特許請求の範囲】
【請求項１】
電子デバイス内の複数のサブシステム用の個別の電力制御を提供するための方法であって、前記電子デバイスがホストプロセッサ装置を含み、前記方法が、
前記複数のサブシステムに対するメモリマップトインタフェースを確立することであって、前記複数のサブシステムのそれぞれが、対応する電力管理ステートマシンによって特徴付けられている、ことと、
前記複数のサブシステムのうちの１つについて、前記複数のサブシステムのうちの他のサブシステムとは独立に、前記対応する電力管理ステートマシンにスリープ状態からアクティブ状態へ遷移させることと、
を含む、方法。
【請求項２】
前記複数のサブシステムのうちの前記１つの、前記スリープ状態から前記アクティブ状態への前記遷移は、前記複数のサブシステムのうちの他のサブシステムをスリープ状態からアクティブ状態へ遷移させることなく発生し得る、請求項１に記載の方法。
【請求項３】
前記複数のサブシステムのうちの１つを、前記複数のサブシステムのうちの他のサブシステムとは独立に、様々な電力節約モードへ遷移させることを更に含む、請求項１に記載の方法。
【請求項４】
前記ホストプロセッサ装置を介して、前記複数のサブシステムに対して独立な電力制御を行うことを更に含む、請求項３に記載の方法。
【請求項５】
前記複数のサブシステムに対して独立な電力制御を行うことが、前記複数のサブシステムのうちの第１のサブシステムをアクティブ状態に保つことを更に含む、請求項４に記載の方法。
【請求項６】
前記複数のサブシステムに対して独立な電力制御を行うことが、前記複数のサブシステムのうちの前記第１のサブシステムを前記アクティブ状態に保ちながら、前記複数のサブシステムのうちの第２のサブシステムをスリープ状態へ遷移させることを更に含む、請求項５に記載の方法。
【請求項７】
前記複数のサブシステムのうちの他のサブシステムとは独立に、前記複数のサブシステムのうちの前記１つのための電力シーケンスを開始することを更に含む、請求項１に記載の方法。
【請求項８】
コンピュータ化装置であって、
ルートコンプレックスを含むホスト処理装置と、
エンドポイント装置を含む周辺装置であって、前記エンドポイント装置が、複数の機能を含み、前記複数の機能のそれぞれが、複数のサブシステムのそれぞれのサブシステムと接続される、周辺装置と、
前記ルートコンプレックスと前記エンドポイント装置との間の通信リンクと、
を備える、コンピュータ化装置。
【請求項９】
前記複数のサブシステムのそれぞれが、前記複数のサブシステムのうちの他のサブシステムとは別個の電力管理を含む、請求項８に記載のコンピュータ化装置。
【請求項１０】
前記ホスト処理装置が、前記複数のサブシステムとは別個のホスト電力管理を含み、
前記通信リンクが、前記ホスト処理装置及び前記複数のサブシステムとは別個のリンク電力管理を含む、請求項９に記載のコンピュータ化装置。
【請求項１１】
前記複数のサブシステムのうちの１つが、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）サブシステムを含み、前記ＷＬＡＮサブシステムが、前記複数のサブシステムのうちの他のサブシステムのウェイクアップを必要とせずに、近くのビーコンをスキャンできる、請求項９に記載のコンピュータ化装置。
【請求項１２】
前記ＷＬＡＮサブシステムが、前記通信リンク又は前記ホスト処理装置のいずれのウェイクアップも必要とせずに、前記近くのビーコンをスキャンできる、請求項１１に記載のコンピュータ化装置。
【請求項１３】
前記複数のサブシステムのうちの１つが、セルラー方式のサブシステムを含み、前記セルラー方式のサブシステムが、前記サブシステムのうちの他のサブシステムと前記ホスト処理装置と前記通信リンクとのうちの１つ以上に電力供給せずに、モバイル管理更新中にセルラー方式のネットワークと接続するように構成される、請求項９に記載のコンピュータ化装置。
【請求項１４】
電子デバイスにおいて使用される周辺処理装置であって、前記周辺処理装置が、
エンドポイント装置であって、前記エンドポイント装置が、複数の機能を含み、前記複数の機能のそれぞれが、前記周辺処理装置のための複数のサブシステムのそれぞれのサブシステムと接続される、エンドポイント装置を備え、
前記複数のサブシステムのそれぞれが、前記複数のサブシステムのうちの他のサブシステムに対して独立な電力管理ステートマシンを含む、周辺処理装置。
【請求項１５】
前記複数のサブシステムのうちの第１のサブシステムの第１の独立な電力管理ステートマシンが、
アクティブ状態にある間にホスト処理装置へスリープモード要求を送信し、
前記スリープモード要求の前記送信の後に、スリープ待機状態に移行し、
周辺装置スリープ制御レジスタに対する更新であって、前記ホスト処理装置によって開始される前記更新を検出し、
前記検出した、前記周辺装置スリープ制御レジスタに対する更新に応じて、前記スリープ待機状態からスリープ状態に移行する、
ように更に構成される、請求項１４に記載の周辺処理装置。
【請求項１６】
前記複数のサブシステムのうちの前記第１のサブシステムの前記第１の独立な電力管理ステートマシンが、
前記ホスト処理装置がなんらかの保留中のデータトランザクションを有しているかどうかを確認し、
保留中のデータトランザクションがある場合、前記第１の独立な電力管理ステートマシンを前記スリープ状態から前記アクティブ状態へ遷移させるために、ウェイクアッププロセスを開始し、
アクティブ待機状態に移行し、
前記ホスト処理装置による前記周辺装置スリープ制御レジスタに対する更新を検出すると、前記アクティブ待機状態から前記アクティブ状態に移行する、
ように更に構成される、請求項１５に記載の周辺処理装置。
【請求項１７】
前記複数のサブシステムのうちの第１のサブシステムの第１の独立な電力管理ステートマシンが、
ホスト処理装置からホストスリープ移行メッセージを受信し、
前記受信したホストスリープ移行メッセージに応じて、前記複数のサブシステムのうちの前記第１のサブシステムの前記第１の独立な電力管理ステートマシンをサスペンドし、
前記第１の独立な電力管理ステートマシンの前記サスペンドの後に、すべての保留中の転送記述子を処理する、
ように更に構成される、請求項１４に記載の周辺処理装置。
【請求項１８】
前記複数のサブシステムのうちの他のサブシステムが、前記ホスト処理装置から前記ホストスリープ移行メッセージを受信するように更に構成される、請求項１７に記載の周辺処理装置。
【請求項１９】
前記第１の独立な電力管理ステートマシンは、すべての前記保留中の転送記述子の前記処理の後に、アクティブ状態からスリープ状態へ遷移するように更に構成される、請求項１７に記載の周辺処理装置。
【請求項２０】
前記複数のサブシステムのうちの前記第１のサブシステムの前記第１の独立な電力管理ステートマシンが、前記ホスト処理装置のためのウェイクアップ要求の発行により、前記ホスト処理装置との通信を再確立するように更に構成される、請求項１７に記載の周辺処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［優先権］
本出願は、本願の権利者が所有し、同時係属中であり、本出願と同じく「METHODS AND APPARATUS FOR PROVIDING INDIVIDUALIZED POWER CONTROL FOR PERIPHERAL SUB-SYSTEMS」と題する、２０１７年７月１１日に出願の米国特許出願第１５／６４７０６３号の優先権の利益を主張する。上記同時係属中の出願はまた、本願の権利者が所有し、同時係属中であり、「Apparatus and Methods for Independent Power and Clock Domains of a Memory mapped Architecture」と題する、２０１６年１１月１０日に出願の米国特許仮出願第６２／４２０１４３号の優先権の利益を主張する。上記２つの同時係属中の出願のそれぞれは、その全体が、参照により本明細書に組み込まれる。
【０００２】
［関連出願］
本出願は、本願の権利者が所有し、同時係属中であり、「Methods and Apparatus for Providing Access to Peripheral Sub-System Registers」と題する、２０１７年７月１１日に出願の米国特許出願第１５／６４７０８８号と、本願の権利者が所有し、同時係属中であり、「Methods and Apparatus for Providing Peripheral Sub-System Stability」と題する、２０１７年７月１１日に出願の米国特許出願第１５／６４７１０３号と、に関連する。上記２つの同時係属中の出願のそれぞれは、その全体が、参照により本明細書に組み込まれる。
【０００３】
本出願はまた、いずれも本願の権利者が所有し、かつ同時係属中である、「Methods and Apparatus for Running and Booting an Inter-Processor Communication Link Between Independently Operable Processors」と題する、２０１５年１０月８日に出願の米国特許出願第１４／８７９０２４号と、「Methods and Apparatus for Managing Power with an Inter-Processor Communication Link Between Independently Operable Processors」と題する、２０１５年１０月８日に出願の同第１４／８７９０２７号と、「Methods and Apparatus for Recovering Errors with an Inter-Processor Communication Link Between Independently Operable Processors」と題する、２０１５年１０月８日に出願の同第１４／８７９０３０号と、に関連する。上記３つの同時係属中の出願のそれぞれは、その全体が、参照により本明細書に組み込まれる。
【０００４】
［著作権］
本特許文献の開示の一部分は、著作権保護の対象となる資料を含む。本著作権所有者は、特許商標庁の特許ファイル若しくは記録に見られるような、本特許文献又は本特許開示の何人によるファクシミリ複製に対しても異議を唱えるものではないが、それ以外の場合には、すべての著作権を保有する。
【０００５】
［技術分野］
本開示は、全般的に、電子デバイス並びにそのバスアーキテクチャの分野に関する。より具体的には、１つの例示的な態様では、本開示は、メモリマップトアーキテクチャのための、電力、クロック及び／又は他のリソースドメインを独立に動作させる方法及び装置を対象とする。
【背景技術】
【０００６】
ペリフェラルコンポーネントインターコネクト（周辺構成要素相互接続）エクスプレス（ＰＣＩｅ）は、コンピュータ及び家庭用電化製品の製造業者による採用率が極めて高い、高速シリアルコンピュータ拡張バス技術である。この成功の一因は、ＰＣＩｅによってデバイス及び機能の間の入出力（Ｉ／Ｏ）のための共有メモリマップに直接アクセスできることである。メモリマップトアクセスのおかげで、例えばバスアービトレーションが減ることによってトランザクションのオーバーヘッドが大幅に減り、また集中的なメモリ管理が大幅に減る。実際、ＰＣＩｅは、コンピュータシステムベースのチップセットが提供する機能を超える、追加的な入出力（Ｉ／Ｏ）機能を追加するための、デファクトスタンダードになった。ＰＣＩｅが本来サポートする直接メモリマップトバス機能に加えて、ハードウェア及び／又はソフトウェアドライバの広範なエコシステム及び継続的発展が、長年の実績があるロバストな汎用コンポーネントを活用する大きなチャンスを提供する。
【０００７】
余談であるが、ＰＣＩｅは、１９９３年に開発されたＰＣＩ拡張バス技術に基づく。当時、ＰＣＩの目標は、ハードウェアユニットをコンピュータバスに追加する標準的な方法を提供することであった。各ハードウェアユニットは、各ハードウェアユニットを共有バスの一意のデバイスとして識別する機構を使用して、共有パラレルバスに接続されていた。各デバイスは更に、最大８つの機能に論理的に細分された。このように、元々、ＰＣＩバスは、いくつかのデバイスを、それぞれのデバイスがいくつかの機能を有した状態でサポートできた。ＰＣＩｅが登場したことで、物理的に共有されるパラレルバスは、ピアツーピアの高速シリアルバスに置き換わった。共有パラレルバスがなくなったことで、ＰＣＩｅでは、複数のエンドポイント間の同時アクセスに対する固有の限界なしに、任意の２つのエンドポイント間における全二重通信をサポートできる。
【０００８】
ＰＣＩｅは、パーソナルコンピューティングアプリケーションに良好に適合しているが、モバイル空間で考慮すべき事項（例えば、電力消費、トランザクションの効率及び／又は他のモビリティ関連の考慮すべき事項）のために設計されていなかった。例えば、パーソナルコンピュータは、一般的に「壁面コンセント」に差し込まれるため、電力消費や節約は一般的に問題とならない。対照的に、モバイルデバイスは、電池の電力で動作し、電池寿命を最大限にするために過度の電力消費を制限しなければならない。
【０００９】
同様に、パーソナルコンピュータは、一般的に、外部ネットワーク（より広いインターネットなど）へ必要に応じて低頻度でアクセスし得る、単一プロセッサトポロジをサポートする。対照的に、モバイルデバイスは、ユーザのタスクを処理するためのアプリケーションプロセッサを有し得るが、ネットワーク管理エンティティ（ワイヤレスＬＡＮ又はセルラーネットワークのネットワーク管理エンティティなど）の検索、ネットワーク管理エンティティへの登録及び／又はネットワーク管理エンティティとのデータトランザクションを自律的に行う複数の追加的なモデムプロセッサもまた有し得る。
【００１０】
ＰＣＩｅの限界が、ＰＣＩｅをモバイル空間へ適用する可能性を歴史的に制限してきたが、ワイヤレス技術の対応帯域幅が増大し続けていること、そして消費者の好みがより大型のモバイルデバイスへ変化していることから、製造業者は、実現可能なバスソリューションとしてＰＣＩｅを再検討するに至った。特に、ＰＣＩｅメモリマップトバス機能は、ますます普及している。このため、モバイルアプリケーション用に高速直接メモリマップトバス機能を更に最適化するために改善された方法及び装置が必要とされている。
【発明の概要】
【００１１】
本開示は、とりわけ、メモリマップトバスアーキテクチャ内で、電力、クロック及び／又は他のリソースドメインの独立動作ためのシステム、方法及び装置を提供することによって、上述のニーズを満たす。
【００１２】
第１の態様では、電子デバイス内の複数のサブシステム用の個別の電力制御を提供するための方法であって、電子デバイスがホストプロセッサ装置を備える、方法が開示される。一実施形態では、本方法は、複数のサブシステムに対するメモリマップトインタフェースを確立することであって、複数のサブシステムのそれぞれが、対応する電力管理ステートマシンによって特徴付けられている、ことと、複数のサブシステムのうちの１つについて、複数のサブシステムのうちの他のサブシステムとは独立に、対応する電力管理ステートマシンをスリープ状態からアクティブ状態へ遷移させることと、を含む。
【００１３】
一変形では、複数のサブシステムのうちの１つの、スリープ状態からアクティブ状態への遷移は、複数のサブシステムのうちの他のサブシステムをスリープ状態からアクティブ状態へ遷移させることなく発生し得る。
【００１４】
別の変形では、本方法は、複数のサブシステムのうちの１つを、複数のサブシステムのうちの他のサブシステムとは独立に、様々な電力節約モードへ遷移させることを更に含む。
【００１５】
また別の変形では、本方法は、ホストプロセッサ装置を介して複数のサブシステムに対する独立電力制御を行うことを更に含む。
【００１６】
また別の変形では、複数のサブシステムに対する独立電力制御を行うことは、複数のサブシステムのうちの第１のサブシステムをアクティブ状態に保つことを更に含む。
【００１７】
また別の変形では、複数のサブシステムに対する独立電力制御を行うことは、複数のサブシステムのうちの第１のサブシステムをアクティブ状態に保ちながら、複数のサブシステムのうちの第２のサブシステムをスリープ状態に遷移させることを更に含む。
【００１８】
また別の変形では、本方法は、複数のサブシステムのうちの他のサブシステムとは独立に、複数のサブシステムのうちの１つのための電力シーケンスを開始することを更に含む。
【００１９】
第２の態様では、複数のサブシステムに関連付けられたエンドポイント装置内において、複数のサブシステムに対応する複数のサブシステムレジスタへのアクセスを提供するための方法が開示される。一実施形態では、本方法は、エンドポイント装置に対するメモリマップトインタフェースを確立することと、メモリマップトインタフェースを介して、対応する少なくとも１つのサブシステムをウェイクアップさせずに、複数のサブシステムレジスタのうちの少なくとも１つにアクセスすることと、を含む。
【００２０】
一変形では、メモリマップトインタフェースを介して、複数のサブシステムレジスタのうちの少なくとも１つにアクセスすることが、複数のサブシステムレジスタのうちの１つに関連付けられたレジスタを読み出すことを更に含む。
【００２１】
別の変形では、メモリマップトインタフェースを介して、複数のサブシステムレジスタのうちの少なくとも１つにアクセスすることが、複数のサブシステムレジスタのうちの１つに関連付けられたレジスタに書き込むことを更に含む。
【００２２】
また別の変形では、アクセスすることは、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）機能内のメモリロケーションにアクセスする命令を実行することと、ＰＣＩｅ通信リンクをウェイクアップすることと、メモリマップトインタフェース内のメモリ空間にアクセスすることであって、メモリ空間がＰＣＩｅ通信リンクに関連付けられる、ことと、を更に含む。
【００２３】
また別の変形では、本方法は、メモリ空間にアクセスした後に、対応する少なくとも１つのサブシステムをウェイクアップすることを更に含む。
【００２４】
また別の変形では、対応する少なくとも１つのサブシステムがセルラー方式のサブシステムを含み、本方法が、セルラー方式のサブシステムをウェイクアップせずに、エンドポイント装置内においてセルラー機能を問い合わせることを更に含む。
【００２５】
また別の変形では、本方法は、メモリマップトインタフェースを介して、複数のサブシステムをウェイクアップせずに、複数のサブシステムレジスタのそれぞれにアクセスすることを更に含む。
【００２６】
第３の態様では、コンピュータ化装置の複数のサブシステムの個別のブートを提供するための方法が開示される。一実施形態では、本方法は、上記装置に関連付けられたエンドポイントに対するメモリマップトインタフェースを確立することであって、エンドポイントが複数のサブシステムのそれぞれと動作可能に接続される、ことと、複数のサブシステムをエニュメレーションすることと、エニュメレーションした複数のサブシステムのうちの少なくとも２つを順番にブートすることと、を含む。
【００２７】
一変形では、本方法は、エニュメレーションした複数のサブシステムのうちの１つをブートプロセスから枝刈りすることを更に含む。
【００２８】
別の変形では、エニュメレーションした複数のサブシステムのうちの枝刈りした１つは、パーソナルエリアネットワーク（ＰＡＮ）サブシステムを含み、本方法は、枝刈り前にＰＡＮサブシステム機能を無効化することを更に含む。
【００２９】
また別の変形では、本方法は、複数のサブシステムのうちのいずれの動作ステータスに関わらず、エンドポイントに電力供給することであって、エンドポイントに電力供給することによってエニュメレーションできる、ことを更に含む。
【００３０】
また別の変形では、本方法は、複数のサブシステムのうちの１つのため構成空間を初期化することを更に含む。
【００３１】
また別の変形では、本方法は、複数のサブシステムのうちの１つのため構成空間にアクセスすることであって、アクセスすることが複数のサブシステムのうちの１つの電力状態に関わらず発生する、ことを更に含む。
【００３２】
また別の変形では、本方法は、エニュメレーションした複数のサブシステムのうちの少なくとも２つに関して重要度順を判定することを更に含み、エニュメレーションした複数のサブシステムのうちの少なくとも２つを順番にブートすることが、判定した重要度順に従って発生する。
【００３３】
第４の態様では、サブシステムの個別のリセット及び回復を提供するための方法が開示される。一実施形態では、本方法は、エンドポイントに対するメモリマップトインタフェースを確立することであって、メモリマップトインタフェースが、複数のサブシステムに対応する複数のメモリ領域を含む、ことと、複数のサブシステムの第１のサブシステム内でエラーを検出したこと応じて、対応する第１のメモリ領域内のリセットアドレスに書き込むことと、書き込みに応じて、第１のサブシステムをブートすることと、検出されたエラーに対応する診断情報を回復することと、を含む。
【００３４】
一変形では、本方法は、第１のサブシステム内のエラーを検出したことに応じてループ命令を実行することであって、ループ命令によって診断情報を回復できる、ことを更に含む。
【００３５】
別の変形では、本方法は、エラーの検出に応じて、複数のメモリ領域のうちのあるメモリ領域のスナップショットを収集することを更に含む。
【００３６】
また別の変形では、エンドポイントは、複数の機能を含み、機能のそれぞれが、複数のサブシステムのうちの所与の１つに対応し、本方法が、複数の機能のうちの機能に対する機能レベルリセットを発行することを更に含む。
【００３７】
また別の変形では、複数の機能のうちの機能に対する機能レベルリセットの発行が、複数の機能のうちの機能に関連付けられた対応するサブシステムをリセットすることを更に含む。
【００３８】
また別の変形では、第１のサブシステムのブートが、複数のサブシステムのうちの他のサブシステムのブートを必要とすることなく発生する。
【００３９】
第５の態様では、コンピュータ化装置が開示される。一実施形態では、コンピュータ化装置は、ルートコンプレックスを含むホスト処理装置と、エンドポイント装置を含む周辺装置であって、エンドポイント装置が、複数の機能を含み、複数の機能のそれぞれが、複数のサブシステムのそれぞれのサブシステムと接続される、周辺装置と、ルートコンプレックスとエンドポイント装置との間の通信リンクと、を備える。
【００４０】
一変形では、複数のサブシステムのそれぞれが、複数のサブシステムのうちの他のサブシステムとは別個の電力管理を含む。
【００４１】
別の変形では、ホスト処理装置は、複数のサブシステムとは別個のホスト電力管理を含み、通信リンクは、ホスト処理装置及び複数のサブシステムとは別個のリンク電力管理を含む。
【００４２】
また別の変形では、複数のサブシステムのうちの１つが、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）サブシステムを含み、ＷＬＡＮサブシステムは、複数のサブシステムのうちの他のサブシステムのウェイクアップを必要とせずに、近くのビーコンをスキャンできる。
【００４３】
また別の変形では、ＷＬＡＮサブシステムは、通信リンク又はホスト処理装置のいずれのウェイクアップも必要とせずに、近くのビーコンをスキャンできる。
【００４４】
また別の変形では、複数のサブシステムのうちの１つは、セルラー方式のサブシステムを含み、セルラー方式のサブシステムは、サブシステムのうちの他のサブシステムとホスト処理装置と通信リンクとのうちの１つ以上に電力供給せずに、モバイル管理更新中にセルラー方式のネットワークに接続するように構成される。
【００４５】
第２の実施形態では、コンピュータ化装置は、ルートコンプレックスを含むホスト処理装置と、エンドポイント装置を含む周辺装置であって、エンドポイント装置が、メモリマップトインタフェース内に配置された複数の機能を含み、複数の機能のそれぞれが、複数のサブシステムのそれぞれのサブシステムに接続される、周辺装置と、ルートコンプレックスとエンドポイント装置との間の通信リンクと、を備える。ホスト処理装置は、上記１つのサブシステムに電力を供給してアクセスを処理するための動作状態にすることを必要とせずに、メモリマップトインタフェースを介して、複数のサブシステムのうちの１つに関連付けられたサブシステムレジスタにアクセスするように更に構成される。
【００４６】
一変形では、複数のサブシステムのそれぞれは、メモリマップトインタフェース内に対応するアクセス空間を含み、複数のサブシステムのそれぞれは、メモリマップトインタフェース内の対応するアクセス空間だけにアクセスし得る。
【００４７】
別の変形では、ルートコンプレックスは、複数の制御レジスタを更に含み、ホスト処理装置は、通信リンクがより低い電力状態にある間、複数の制御レジスタの少なくとも一部分に対して読み出す又は書き込むように更に構成される。
【００４８】
また別の変形では、ホスト処理装置は、通信リンクがより低い電力状態にある場合、通信リンク機能内のメモリロケーションにアクセスする命令を実行し、より低い電力状態から通信リンクをウェイクアップし、メモリマップトインタフェース内のメモリ空間であって、メモリ空間が通信リンクに関連付けられる、メモリ空間にアクセスする、ように更に構成される。
【００４９】
また別の変形では、ホスト処理装置は、サブシステムレジスタのアクセスの後に、上記１つのサブシステムをウェイクアップするように更に構成される。
【００５０】
また別の変形では、上記１つのサブシステムがセルラー方式のサブシステムを含み、ホスト処理装置が、セルラー方式のサブシステムをウェイクアップせずに、エンドポイント装置内においてセルラー機能を問い合わせるように更に構成される。
【００５１】
第３の実施形態では、コンピュータ化装置は、ルートコンプレックスを含むホスト処理装置と、エンドポイント装置を含む周辺装置であって、エンドポイント装置が、複数の機能を含み、複数の機能のそれぞれが、複数のサブシステムのそれぞれのサブシステムに接続される、周辺装置と、ルートコンプレックスとエンドポイント装置との間の通信リンクと、を備える。ホスト処理装置は、複数のサブシステムのそれぞれを順番にブートするように構成される。
【００５２】
一変形では、ホスト処理装置は、複数のサブシステムのうちの１つをブートプロセスから枝刈りするように更に構成される。
【００５３】
別の変形では、複数のサブシステムのうちの１つをブートプロセスから枝刈りすることは、複数のサブシステムのそれぞれのブートと比べて、コンピュータ化装置の電力消費を低減するように構成される。
【００５４】
また別の変形では、エンドポイント装置は、複数のサブシステムのいずれの動作ステータスにも関わらず、電力供給されるように構成される。
【００５５】
また別の変形では、ホスト処理装置法は、複数のサブシステムのブートシーケンスに関して重要度順を判定し、コンピュータ化装置は、判定した重要度順に従って、複数のサブシステムのそれぞれを順番にブートするように更に構成される。
【００５６】
また別の変形では、ホスト処理装置は、複数の機能のうちの機能に対して機能レベルリセットを発行するように更に構成される。
【００５７】
また別の変形では、複数の機能のうちの上記機能に対する機能レベルリセットの発行が、上記機能に関連付けられた対応するサブシステムをリセットするように更に構成される。
【００５８】
第６の態様では、電子デバイスにおいて使用される周辺処理装置が開示される。一実施形態では、周辺処理装置は、エンドポイント装置であって、エンドポイント装置が、複数の機能を含み、複数の機能のそれぞれが、周辺処理装置のための複数のサブシステムのそれぞれのサブシステムと接続される。複数のサブシステムのそれぞれが、複数のサブシステムのうちの他のサブシステムに対して独立な電力管理ステートマシンを含む。
【００５９】
一変形では、複数のサブシステムのうちの第１のサブシステムの第１の独立な電力管理ステートマシンは、アクティブ状態にある間にホスト処理装置へスリープモード要求を送信し、スリープモード要求の送信の後に、スリープ待機状態に移行し、周辺装置スリープ制御レジスタに対する更新であって、ホスト処理装置によって開始される更新を検出し、検出した、周辺装置スリープ制御レジスタに対する更新に応じて、スリープ待機状態からスリープ状態に移行する、ように更に構成される。
【００６０】
別の変形では、複数のサブシステムのうちの第１のサブシステムの第１の独立な電力管理ステートマシンは、ホスト処理装置がなんらかの保留中のデータトランザクションを有しているかどうかを確認し、保留中のデータトランザクションがある場合、第１の独立な電力管理ステートマシンをスリープ状態からアクティブ状態へ遷移させるために、ウェイクアッププロセスを開始し、アクティブ待機状態に移行し、ホスト処理装置による周辺装置スリープ制御レジスタに対する更新を検出すると、アクティブ待機状態からアクティブ状態に移行する、ように更に構成される。
【００６１】
また別の変形では、複数のサブシステムのうちの第１のサブシステムの第１の独立な電力管理ステートマシンは、ホスト処理装置からホストスリープ移行メッセージを受信し、受信したホストスリープ移行メッセージに応じて、複数のサブシステムのうちの第１のサブシステムの第１の独立な電力管理ステートマシンをサスペンドし、第１の独立な電力管理ステートマシンのサスペンドの後に、すべての保留中の転送記述子を処理する、ように更に構成される。
【００６２】
また別の変形では、複数のサブシステムのうちの他のサブシステムが、ホスト処理装置からホストスリープ移行メッセージを受信するように更に構成される。
【００６３】
また別の変形では、第１の独立な電力管理ステートマシンは、すべての保留中の転送記述子の処理の後に、アクティブ状態からスリープ状態へ遷移するように更に構成される。
【００６４】
また別の変形では、複数のサブシステムのうちの第１のサブシステムの第１の独立な電力管理ステートマシンは、ホスト処理装置のためのウェイクアップ要求の発行により、ホスト処理装置との通信を再確立するように更に構成される。
【００６５】
第７の態様では、電子デバイスにおいて使用するためのホスト処理装置が開示される。一実施形態では、ホスト処理装置は、エンドポイント装置に対するメモリマップトインタフェースを確立するように構成されたロジックと、メモリマップトインタフェースを介して、対応する少なくとも１つのサブシステムの動作ステータスとは独立に、複数のサブシステムレジスタのうちの少なくとも１つにアクセスするように構成されたロジックと、を更に含む。
【００６６】
一変形では、メモリマップトインタフェースを介して、複数のサブシステムレジスタのうちの少なくとも１つにアクセスするように構成されたロジックが、複数のサブシステムレジスタのうちの１つに関連付けられたレジスタを読み出すように構成されたロジックを更に含む。
【００６７】
別の変形では、メモリマップトインタフェースを介して、複数のサブシステムレジスタのうちの少なくとも１つにアクセスするように構成されたロジックが、複数のサブシステムレジスタのうちの１つに関連付けられたレジスタに書き込むように構成されたロジックを更に含む。
【００６８】
また別の変形では、アクセスするように構成されたロジックは、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）機能内のメモリロケーションにアクセスする命令を実行し、ＰＣＩｅ通信リンクをウェイクアップし、メモリマップトインタフェース内のメモリ空間であって、メモリ空間がＰＣＩｅ通信リンクに関連付けられる、メモリ空間にアクセスする、ように更に構成される。
【００６９】
また別の変形では、ホスト処理装置は、メモリ空間にアクセスした後に、対応する少なくとも１つのサブシステムをウェイクアップするように構成されたロジックを更に含む。
【００７０】
また別の変形では、対応する少なくとも１つのサブシステムがセルラー方式のサブシステムを含み、ホスト処理装置が、セルラー方式のサブシステムをウェイクアップせずに、エンドポイント装置内においてセルラー機能を問い合わせるように構成されたロジックを更に含む。
【００７１】
また別の変形では、ホスト処理装置は、メモリマップトインタフェースを介して、複数のサブシステムの動作ステータスとは独立に、複数のサブシステムレジスタのそれぞれにアクセスするように構成されたロジックを更に含む。
【００７２】
第８の態様では、非一時的コンピュータ可読装置もまた開示される。一実施形態では、非一時的コンピュータ可読装置は、プロセッサ装置によって実行された場合にプロセッサ装置に上述の開示された様々な方法を実行させる命令を含む。
【００７３】
一変形では、命令は、プロセッサによって実行しされた場合に、プロセッサ装置に別々の電力ドメイン及び／又はクロックドメインを独立に管理させるように構成される。例えば、一実装では、命令は、実行された場合、開示された様々なサブシステムに対して、装置に選択的にブート、リセット及び／又はエラーをトラップさせる。
【００７４】
第９の態様では、コンピュータ化ロジックが開示される。一実施形態では、コンピュータ化ロジックは、上述の様々な方法を実行するように構成される。
【００７５】
一変形では、ロジックは、ハードウェア（例えば、ゲートロジック）、ファームウェア及び／又は装置に常駐するソフトウェアのうちの少なくとも１つを含む。
【００７６】
第１０の態様では、多機能装置のためのメモリマップトバスアーキテクチャが開示される。一実施形態では、メモリマップトバスアーキテクチャは、ＰＣＩｅ技術に基づくものであり、メモリマップトバスアーキテクチャは、ホストプロセッサ、セルラー方式のモデム、ワイヤレスローカルエリアネットワークモデム及びパーソナルエリアネットワークモデムにサービスを提供する。
【００７７】
本開示の他の特徴及び利点は、添付図面、及び以下に記載されるような例示的実施形態の詳細な説明を参照することで、当業者によって即座に認識されるであろう。
【図面の簡単な説明】
【００７８】
【図１】メモリマップトバスアーキテクチャのためのある従来技術システムの論理ブロック図である。
【図２】本明細書で説明される原理に係る、独立な電力ドメイン及びクロックドメインを有するメモリマップトバスアーキテクチャのための１つの例示的なシステムの論理ブロック図である。
【図３】本明細書で説明される原理に係る、例示的なＰＣＩｅメモリマップトバスの電力管理に有用な、１つの例示的なリンクトレーニングステータスステートマシン（ＬＴＳＳＭ）の論理図である。
【図４】本明細書で説明される原理に係る、例示的なサブシステムドメインの電力管理に有用な、２つの例示的な電力管理ステートマシンを示す論理図である。
【図４Ａ】本明細書で説明される原理に係る、例示的なサブシステムがスリープ状態に移行するための１つの例示的な方法の論理ブロック図である。
【図４Ｂ】本明細書で説明される原理に係る、例示的なサブシステムがアクティブ状態に移行するための１つの例示的な方法の論理ブロック図である。
【図５】本明細書で説明される様々な原理に合致する、例示的なサブシステムがアクティブ状態サブシステム内のレジスタにアクセスするための１つの例示的な方法の論理ブロック図である。
【図６】本明細書で説明される様々な原理に合致する、ホストプロセッサをスリープモードへ遷移させるための１つの例示的な方法の論理ブロック図である。
【図７】本明細書で説明される様々な原理に合致する、機能レベルリセット動作のための１つの例示的な方法の論理ブロック図である。
【図８】本明細書で説明される様々な原理に合致する、周辺装置リセット動作のための１つの例示的な方法の論理ブロック図である。
【００７９】
すべての図は、２０１６年に作成され、２０１７年に最終更新されたものであり、そのすべての著作権はＡｐｐｌｅ  Ｉｎｃ．が保持している。
【発明を実施するための形態】
【００８０】
ここで図面を参照するが、全体を通して、同様の番号は同様の部品を指す。
【００８１】
例示的実施形態の詳細な説明
本開示の例示的実施形態を、ここで詳細に説明する。これらの実施形態は、高速モバイルアプリケーションのためのバスアーキテクチャのコンテキストで主に論じられるが、当業者には、本開示がそのように限定されるものではないことが、認識されるであろう。実際、本明細書で説明される原理は、複数の独立なサブシステムをサポートする任意のバスアーキテクチャ、コンポーネント、デバイス及び／又はデバイスのネットワークに有用である。
【００８２】
更に、以下の実施形態は、例えば、専用アドレス空間、電力供給シーケンス、クロッキングの実装、ブートシーケンス、スリープシーケンス、エラートラップ及び／又はリセット処理の特定の実装を説明するが、当業者であれば、以下の説明は、純粋に、本明細書で説明されるより広い原理を説明するためのものであることを容易に理解するはずである。他の実装は、本明細書で提供される説明に合致する、より多数又はより少数の機能、機能の様々な組み合わせ及び／又は機能的違いを有し得る。
【００８３】
本明細書で使用される場合、用語「システム」は、一般的に、かつ限定するものではなく、代わりの論理処理エンティティ及び／又は物理処理エンティティを含む場合も含まない場合もある、任意の独立な論理エンティティ及び／又は物理エンティティを指す。システムの一般的な例としては、例えば、スマートフォン、コンピュータ、ラップトップ、タブレット、「スマート」テレビ及び他のメディア配信レンダリングデバイス、車載インフォテインメント若しくはテレマティクスシステム並びに／又は他の家庭用電子デバイスが挙げられる。
【００８４】
本明細書で使用される場合、用語「サブシステム」は、一般的に、かつ限定するものではなく、予め定められたタスクセットを実行するためにシステムエンティティの指示の下で動作する任意の処理エンティティを指す。サブシステムの一般的な例としては、例えば、セルラー方式のモデム、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）モデム、パーソナルエリアネットワーク（ＰＡＮ）モデム、グラフィックプロセッサ、メディアプロセッサ、全地球測位システム（ＧＰＳ）及び／又は任意の多の汎用若しくは特定用途用の処理エンティティが挙げられる。
【００８５】
本明細書で使用される場合、用語「機能」は、一般的に、かつ限定するものではなく、サブシステムに対するメモリマップト接続に関連付けられた処理及び／又はメモリリソースを指す。例示的なＰＣＩｅ機能としては、例えば、サブシステム固有のレジスタ、メモリマップト入出力（ＭＭＩＯ）、構成空間、内部バス構造及び／又は他の特殊レジスタ又はメモリが挙げられ得る。一部のケースでは、構成空間は、汎用化／標準化され得る、プロプラエタリ若しくは他の方法でカスタマイズされ得る（例えば、ベンダー独自、アプリケーション固有、デバイス固有又は他の特定のスキームに従って構成される）、又はこれらの組み合わせであり得る。
【００８６】
概要
本開示の様々な態様は、電子デバイス内に存在する独立なドメイン内における、サブシステムリソース（クロック、電力及びリセットなど）の分離を対象としている。例えば、１つの例示的な実施形態では、システムの各サブシステムは、専用のクロックドメインを有する。特に、周辺装置のチップセットハードウェアは、それぞれが独立なクロックドメインで動作する複数のサブシステムから構成され得る。
【００８７】
更に、各サブシステムは、独立な電力ドメインに基づいて電力供給され得る。各電力ドメインは、独立に電力供給／遮断され得る、又は様々な電力節約モードに置かれ得、電力管理用に区別されるステートマシンを有し得る。独立な電力ドメインは、他の電力ドメインのステートマシンに関わらず電力供給され得る。
【００８８】
別の態様では、各サブシステムは、共通のメモリマップトバス機能に接続され得る。１つの例示的な実施形態では、共通のメモリマップトバス機能及びサブシステムは、独立なドメイン内で動作し、このことにより、機能及び対応するサブシステムは、メモリマップトバスの電力状態全体、他のサブシステムの電力状態及び／又はホストシステムの電力状態に関わらず任意の電力状態に移行することができる。
【００８９】
本明細書で説明される一部の変形では、サブシステム又はメモリマップトバスは、動作考慮事項に基づいてサブシステムリソースを管理し得る（例えば、ホストアプリケーションが低レイテンシ応答を必要とする場合、対応するサブシステムがメモリマップトバスが低電力モードに移行するのを防ぐ）。別のこのような例では、電池消費によって、同時に電力供給できるサブシステムの数が制限され得る。よって、競合を解決する及び／又はリソースを割り当てるために、優先順位付けスキームが使用され得る。
【００９０】
本開示の例示的な実装は、システムの電力消費全体を管理するホストを含み、これにより、ホストプロセッサは、サブシステムをウェイク状態に保つ、又はサブシステムを強制的にスリープさせるなどの様々なサブシステムに対する制御を行うことができる。ただし、本明細書で開示される一部の変形は、そのような機能を周辺装置にも提供する（又は代替的に、周辺装置が、例えばシステムの電力消費全体を排他的に管理し得る）。例えば、一部のケースでは、周辺装置はまた、ホストがスリープ状態にならないようにするなど、ホスト（又はホストの一部）に対する様々な度合いの制御を行うように構成され得る。
【００９１】
本明細書で説明される１つの例示的な実施形態では、各サブシステムに対するスリープシーケンスは、他のサブシステムから分離される。ただし、他の実施形態は、部分的に又は完全に調整したサブシステム電力管理を提供する。
【００９２】
ＰＣＩｅベースのシステム
歴史的に、モバイルデバイスでは、消費者の好みによってアグレッシブなフォームファクタ制約条件に至ってきた。従来の設計は、ポートマッピングされたはるかに小さいピンインタフェースに頼っていた（ユニバーサルシリアルバス（ＵＳＢ）など）。これらの技術は小型であるが、低転送レート、パケット処理オーバーヘッド及び／又は使用時の過度の電力消費もまた被る。
【００９３】
余談であるが、いわゆる「ポートマップトアクセス」ホストプロセッサは、ホストプロセッサ自体のメモリ及びレジスタへアクセスするために、ネイティブな命令セットと、「ポート」を介して外部サブシステムと通信するための第２の命令セットと、を使用する。トランザクションされるデータは、中間的な通信フォーマットで送信するために、フォーマット（例えば、パケット化、シリアル化）される。中間的な通信フォーマットは、ホストメモリからサブシステムメモリを分離する、すなわち、各周辺装置サブシステムは、ホストのアドレス空間から分離した別個のアドレス空間を有する。例えば、パケットプロトコル（ＵＳＢなど）は、トランザクションのオーバーヘッドを追加する（例えば、ＵＳＢパイプ、エンドポイント識別情報など）。
【００９４】
対照的に、いわゆる「メモリマップトアクセス」は、同じアドレスバスを使用して、ホスト及び周辺装置サブシステムの両方についてアドレス指定する、換言すると、周辺装置サブシステムのメモリ及びレジスタは、ホストによって直接アクセスされ、逆の場合も同じである。例えば、あるアドレスにホストがアクセスする場合、ホストのメモリ又は周辺装置のメモリ及び／若しくはレジスタのいずれかにアクセスするために、同じアドレスフォーマットが使用され得る。各周辺装置サブシステムは、アドレスバスを監視し、そのサブシステムに割り当てられたアドレスへのあらゆるホストアクセスに応答する。
【００９５】
ＰＣＩｅは、メモリマップトバス技術の１つの実装である。他のバス技術と比較した場合、残念ながら、ＰＣＩｅは、（４０本近くのピンを有する）大型のバスインタフェースを必要とし、プリント配線基板（ＰＣＢ）の「占有面積」に対して不釣り合いなほどに大きい「設置面積」を有する。そのため、ＰＣＩｅのサイズのせいで、歴史的に、モバイルアプリケーションにあまり調和しなかった（モバイルアプリケーションは、比較的小さいフォームファクタを有する）。
【００９６】
しかしながら、ワイヤレス技術における近年の進歩によって、ワイヤレスアプリケーションのための「データパイプ」の無線帯域幅が増加した。一部のケースでは、ワイヤレスネットワーク速度が、ホストデバイスのより低速のバス技術（例えば、ＵＳＢ）をしのぐ場合もある。同様に、顧客の好みが、（より大型の画面サイズの普及に少なからず起因して）より大型のモバイルデバイスに適合してきた。これらの理由で、モバイルアプリケーションに関して、ＰＣＩｅへの関心が再活性化した。初期の設計（本明細書の譲受人が製造したものなど）は、メモリマップトバスインタフェースに基づく、アプリケーションプロセッサと周辺装置チップセットとの間の、より速い通信を必要とする。
【００９７】
ここで図１を参照すると、一般的な従来技術のシステム１００が図示、説明されている。図示のシステムは、ＰＣＩｅリンク１０６Ａを介してセルラー方式のサブシステム１０４Ａと通信し、かつＰＣＩｅリンク１０６Ｂを介してＷＬＡＮサブシステム１０４Ｂと通信する、ホスト１０２を示している。加えて、ホストは、汎用非同期送受信機（ＵＡＲＴ）リンク１０８を介して、ＰＡＮサブシステム１０４Ｃ（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）サブシステム）を制御する。ＰＣＩｅリンクのそれぞれは、それぞれのＰＣＩｅルートコンプレックス（ＲＣ）（１１０Ａ、１１０Ｂ）及び対応するそれぞれのエンドポイント（ＥＰ）（１１２Ａ、１１２Ｂ）によって管理される。
【００９８】
通常の動作中、デバイスのユーザは、電話をかける、インターネットにアクセスする、又は例えばセルラー方式のネットワークへのデータ接続のために、他の方法でユーザ駆動の要求を実行することができる。これに応じて、セルラー方式のサブシステム１０４Ａは、接続されたモードに移行してユーザの声及びデータを送受信し、それ以外は、セルラー方式のサブシステム１０４Ａは、その時間の大半をアイドルモードで電源を下げた状態で過ごして、電力を節約する。加えて、セルラー方式のサブシステム１０４Ａは、しばしば、モビリティ管理のためにセルラー方式のネットワークに再接続して、着信を確認する、及び／又は他の自律的なネットワーク管理タスクを実行する。自律的な（非ユーザ起動の）アクションは、一般的に、ユーザに気づかれずにバックグラウンドで発生する。
【００９９】
同様に、ＷＬＡＮサブシステム１０４Ｂは、その近くのネットワークを連続的にスキャンして、例えば実現し得る最善のデータ接続を識別する、及び／又はユーザデータを送受信する。使用されていない場合、ＷＬＡＮサブシステム１０４Ｂは、低電力モードに遷移する。
【０１００】
ＰＣＩｅは、性能を上げるために、及び／又は複数のプロセッサ間の動作を最適化するために、メモリマップトアーキテクチャを合理化するが、空間考慮事項が優先事項のままである。このように、複数のサブシステムをマージして、チップセットの数を少なくし（例えば、単一のチップセット（可能な場合））、アプリケーションプロセッサ上で稼働するソフトウェアスタックの独立性を保ちながら、単一のメモリマップトバスインタフェース上で通信する場合に、利点が存在し得る。残念ながら、既存のＰＣＩｅ仕様は、エンドポイント設計要件を指定しない。そのため、様々な製造業者が、多くの異なるＰＣＩｅサブシステム実装を採用し、それらのうちの多くが合致しない、及び／又は望ましくない。例えば、単一のエンドポイントは、そのサブシステムのすべてをスリープ状態にして得る、及び／又はすべてのサブシステムを一緒にウェイクアップさせ得る。数の独立なサブシステムをサポートするシステム内の例えば、「ウェイク」及び／又は「スリープ」機能のための合致するフレームワークを実装する、改善された解決策が必要とされる。
【０１０１】
そのため、本開示は、特に、ＰＣＩｅインタフェースから電力管理及びクロック機能を分離することを対象とする。本明細書で説明される様々な解決策は、同じＰＣＩｅインタフェースを使用して、（それぞれが独立な電力及びクロックを有する）複数のサブシステムをサポートし、それによって、設計設置面積を最小化し得る。換言すると、説明した解決策は、合致するフレームワークに従って電力及びクロック管理機能からメモリマップトバス機能を分けることによって、アグレッシブなフォームファクタ設計においてＰＣＩｅ様の動作（及びそれに付随する、処理速度及び効率が改善されるという利益）を実現できる。一部の開示される構成では、各ＰＣＩｅエンドポイントは、複数の専用アドレス空間、電力供給シーケンス、クロッキング実装、ブートシーケンス、スリープシーケンス、エラートラップ機構及び／又はリセット処理部をサポートし得る。
【０１０２】
より一般的には、メモリマップトアーキテクチャコンテキストの範囲内における、電力、クロック及び／又は他のリソースドメインの独立な動作のための方法及び装置が提供される。
【０１０３】
例示的な装置
上述のように、従来技術のＰＣＩｅ動作の欠陥に対処するために、本開示の例示的な実施形態は、有利なことに、ＰＣＩｅ技術を使用して、サブシステムに対して異なる電力及びクロックドメインをサポートするための一貫したフレームワークを規定する。
【０１０４】
ここで図２を参照すると、１つの例示的なシステム２００が図示、説明されている。図示のシステム２００は、ＰＣＩｅリンク２０６を介して周辺装置２０４と通信するホスト２０２を示している。ＰＣＩｅリンク２０６は、ホスト２０２（例えば、ホストプロセッサ装置）のルートコンプレックス（ＲＣ）２１０を周辺装置２０４（例えば、周辺装置プロセッサ装置）のエンドポイント（ＥＰ）２１２に接続する。図２には単一のＲＣ２１０を示しているが、本開示の内容を読めば当業者には容易に理解されるように、一部の実装では、複数のＲＣが利用され得る。ＥＰ２１２は、対応するサブシステムに接続する、いくつかの機能へ更に細分される。図示のように、セルラー方式のサブシステム２１４Ａは、第１の機能２０８Ａを介して接続され、ＷＬＡＮサブシステム２１４Ｂは、第２の機能２０８Ｂを介して接続され、ＰＡＮサブシステム２１４Ｃは、第３の機能２０８Ｃを介して接続される。図２には特定のトポロジを示しているが、本開示の内容を読めば当業者には理解されるように、より多数（又は少数）のサブシステムがシステム２００内に存在し得る。
【０１０５】
本開示は、後に明らかにする理由のため、ホスト及び周辺装置に関連して説明されるが、ホスト又は周辺装置に関する名称は、以下の説明の簡素化及び／又は明確化のために使用され、既存のホスト又は周辺装置機能を示唆するものではないし、又はそのような役割を入れ替えできないことを示唆するものでもない（例えば、従来の「ホスト」は、少なくとも一部の機能において、周辺装置として機能でき、逆の場合も同じである）ことに留意されたい。更に、本明細書で説明される原理は、明示的に説明したもの以外の追加的な処理チップセット（例えば、追加的なホスト及び／又は追加的な周辺装置）をサポートするために拡張できる。
【０１０６】
図２のシステム２００のホスト２０２は、図示の実施形態では中央処理ユニット（ＣＰＵ）２１６並びにメモリ管理ユニット（ＭＭＵ）２１８を備え、外部メモリ（ダイナミックランダムアクセスメモリ（ＤＲＡＭ）２２０及び／又はフラッシュ若しくはディスク記憶システムなど）に接続される。図示のサブシステムは、セルラー方式のモデム２１４Ａ及び対応するＣＰＵ  ２２２Ａと、ＷＬＡＮモデム２１４Ｂ及び対応するＣＰＵ  ２２２Ｂと、ＰＡＮモデム２１４Ｃ及び対応するＣＰＵ  ２２２Ｃと、を含み得るが、限定されるものではない。加えて、サブシステムはそれぞれ、１つ以上の外部メモリ２２４及び／又は内部密結合メモリ（ＴＣＭ）２２６にアクセスし得る。
【０１０７】
例示的なシステム２００は、ホストプロセッサ２１６、ＰＣＩｅリンク２０６（ＲＣ  ２１０及びＥＰ  ２１２を含む）及び／又はサブシステムのそれぞれ（２１４Ａ、２１４Ｂ、２１４Ｃ）について、分離した電力ドメイン及びクロックドメインを有する。本コンテキストで使用される場合、用語「ドメイン」は、独立に自立しており、それ自身の動作に他のサブシステムを必要としないサブシステム内のロジックを指す。ドメインの一般的な例としては、例えば、電力ドメイン、クロックドメイン、リセットドメイン、セキュリティドメイン、処理ドメインを含むが、限定されるものではない。各ドメインが自立しているが、本開示の内容を読めば当業者には容易に理解されるように、通常の動作中、複数のドメインが同時に使用される及び／又は互いに相互作用する場合があり、実際、一部の使用では、複数のドメインを同時に有効にすることが必要とされ得る。
【０１０８】
通常の動作中、上記ドメインのそれぞれは、他のドメインのうちの１つ以上と独立に動作し得る。例えば、モビリティ管理の更新中、セルラー方式のサブシステム２１４Ａは、例えば、ホスト２０２、ＰＣＩｅリンク２０６、ＲＣ  ２１０、ＥＰ  ２１２又は他のサブシステム（２１４Ｂ、２１４Ｃ）に電力供給することなく、セルラー方式のネットワークに接続し得る。同様に、ＷＬＡＮサブシステム２１４Ｂは、他のドメインのいずれもウェイクアップすることなく、近くのビーコンをスキャンし得る。
【０１０９】
余談であるが、ＰＣＩｅリンク電力管理は、リンクトレーニングステータスステートマシン（ＬＴＳＳＭ）に基づく。このような１つのＬＴＳＳＭ  ３００を図３に図示する。図示のように、ステートマシン３００は、特に、状態Ｌ０  ３０２、Ｌ０ｓ  ３０４、Ｌ１  ３０６及びＬ２  ３０８を含む。
【０１１０】
Ｌ０  ３０２は、物理バスインタフェースの動作状態であり、データ及び制御パケットが送受信され得る。
【０１１１】
Ｌ０ｓ  ３０４は、物理バスインタフェースが回復状態を経ずに電力節約モードに迅速に移行し、そこから回復できるようにする第１の節電状態である。
【０１１２】
Ｌ１  ３０６は、（回復状態に起因する）追加的な再開レイテンシを犠牲にして、Ｌ０ｓ  ３０４よりも更に節電できる第２の節電状態である。１つの例示的な実施形態では、Ｌ１  ３０６は、例えば、サブ状態Ｌ１．１及びＬ１．２へ更に細分され得る。その１つの実装では、Ｌ１．１によって、送受信回路及び関連付けられた位相同期ループ（ＰＬＬ）の電力供給をオフにしながら、ポート回路のコモンモード電圧を維持できる。Ｌ１．２は、送受信回路及びＰＬＬに加えてコモンモード電圧の電力供給をオフにする。
【０１１３】
最後に、Ｌ２  ３０８は、大半の機能の電源を切ることによって積極的に節電する第３の節電状態である。
【０１１４】
ＰＣＩｅは、接続されたサブシステムに特定の電力管理ステートマシンを要求しないが、図４は、１つのそのような実装の代表である。図示のように、図４のステートマシン は、一緒に電力を管理するホストプロセッサ及び周辺装置プロセッサにおける、一対の独立なステートマシンを示す。以下の説明は、上記一対のステートマシンに関連して提示されるが、単一のホスト及び複数のサブシステムを有するシステムは、各サブシステムについて、ホストステートマシンの１つのインスタンス及びサブシステムステートマシンの１つのインスタンスを有し得ることを理解されたい。各サブシステムのステートマシンは、分離して、対応するホストステートマシンと相互作用する。以下の説明は、単一のホストステートマシンと単一のサブシステムステートマシンとの間の相互作用を説明するが、以下の説明が簡素化の目的による、単により広い原理の説明のためのものであり、以下の原理が、複数の独立なサブシステムステートマシン（例えば、図２参照）（又は複数のホストステートマシン）が存在する実装に適用されることを理解されたい。
【０１１５】
更に、当業者は、本開示を読めば、本明細書で説明される原理を適用して、例えば、サブシステム間電力シーケンス又はサブシステム−ホスト間電力シーケンスに適合させ得る。
【０１１６】
通常の動作中、周辺装置プロセッサ（例えば、所与のそれぞれのサブシステム２１４Ａ、２１４Ｂ、２１４Ｃのための機能２０８Ａ、２０８Ｂ、２０８Ｃ）は、アクティブ状態４０２において、メモリマップトアドレス（例えば、周辺装置スリープ通知レジスタ）又は他のメッセージング機構（例えば、ＧＰＩＯ、帯域外シグナリング、ドアベルなど）を介して、スリープモード要求を送信し得る。図４Ａの動作４２２も参照されたい。例えば、周辺装置プロセッサは、複数のサブシステムを含み、複数のサブシステムのうちの１つのためのスリープモード要求を送信し得る。その後、周辺装置プロセッサ（例えば、所与のそれぞれのサブシステム２１４Ａ、２１４Ｂ、２１４Ｃのための機能２０８Ａ、２０８Ｂ、２０８Ｃ）は、（例えば、複数のサブシステムのうちの１つのための）スリープ待機状態４０４に移行する。図４Ａの動作４２４も参照されたい。スリープ待機状態４０４にある間に、周辺装置プロセッサ（例えば、所与のそれぞれのサブシステム２１４Ａ、２１４Ｂ、２１４Ｃのための機能２０８Ａ、２０８Ｂ、２０８Ｃ）は、休止しており、いかなるデータ転送又はメッセージの開始も完了もしない。その後、周辺装置プロセッサ（例えば、所与のそれぞれのサブシステム２１４Ａ、２１４Ｂ、２１４Ｃのための機能２０８Ａ、２０８Ｂ、２０８Ｃ）は、ホストアクションのためのメモリマップトアドレス（例えば、周辺装置スリープ制御レジスタ）を監視する。図４Ａの動作４２６も参照されたい。一部の実施形態では、ウェイクアッププロシージャは、（ウェイクアップをトリガーする）帯域外ＧＰＩＯを使用することによって開始され得、ウェイクアッププロシージャは、専用帯域内ＭＭＩＯドアベルを介してトリガーされ得る。
【０１１７】
ホストが（例えば、アクティブモード４１２にある間に）スリープモード要求を検出すると、ホストプロセッサは、例えば、複数のサブシステムのうちの１つのために、周辺装置スリープ制御レジスタを「スリープモード」に更新し得る。図４Ａの動作４２８及び４３０も参照されたい。ホストプロセッサはまた、スリープ状態４１６に移行し得る。周辺装置プロセッサ（例えば、所与のそれぞれのサブシステム２１４Ａ、２１４Ｂ、２１４Ｃのための機能２０８Ａ、２０８Ｂ、２０８Ｃ）は、例えば、複数のサブシステムのうちの１つための、周辺装置スリープ制御レジスタにおける更新を検出し、スリープ状態４０６に移行する。図４Ａの動作４３２及び４３４も参照されたい。
【０１１８】
サブシステムのうちの１つ以上がスリープ状態４０６にある間に、周辺装置プロセッサは、ホストプロセッサに、１つ以上のサブシステムに対する保留中の転送又はインフライトのメッセージがあるかどうかを確認する。図４Ｂの動作４４２も参照されたい。あれば、次いで、周辺装置プロセッサは、「ウェイクアップ」プロセスを開始して、アクティブ状態４０２へ遷移する。同様に、周辺装置プロセッサが通信リンクにアクセスする必要がある場合、通信リンクがウェイクアップする。
【０１１９】
ウェイクアップするために、周辺装置プロセッサは、例えば、周辺装置スリープ通知レジスタを介してアクティブモード要求を送信し、アクティブ待機状態４０８に移行する。図４Ｂの動作４４４及び４４６も参照されたい。周辺装置プロセッサは、その後すぐに、データ転送のために通信リンクにアクセスでき、しかしながら、周辺装置プロセッサにスリープに移行することができない又はスリープモード要求を送信できないとメッセージを送信する（ステートマシンの競合状態を防ぐために）。図４Ｂの動作４４８も参照されたい。
【０１２０】
アクティブモード要求に応じて、ホストは、例えば、周辺装置スリープ制御レジスタを「アクティブモード」に更新し、アクティブ状態４１２に移行する。図４Ｂの動作４５０も参照されたい。周辺装置プロセッサは、周辺装置スリープ制御レジスタにおいてホストの更新を確認した場合、アクティブ状態４０２に移行する。図４Ｂの動作４５２も参照されたい。
【０１２１】
スリーププロセスを開始したホストは同様である（すなわち、ホストの電力管理ステートマシンは、周辺装置サブシステム電力管理ステートマシンと対称であるとみなされ得る）。スリープに移行するホストの準備ができた場合、ホストは、ホストスリープ移行メッセージを介して周辺装置プロセッサに通知する（そして、スリープ待機状態４１４に遷移する）。ホストスリープ移行メッセージを確認すると、周辺装置プロセッサは、それ自体のスリープ状態マシンを一時サスペンドし、すべての保留中の転送記述子（ＴＤ）を処理する。以下に詳述するように、ホストは、ホストがスリープ状態４１６に遷移し得る前に、複数のサブシステムに通知する必要があり得る。
【０１２２】
スリープメッセージの完了に応じて、ホストは、（スリープ待機状態４１４から）スリープモードに遷移し得、その後、周辺装置プロセッサはまた、スリープモードに独立に移行し得る。周辺装置プロセッサがホストとの通信を再確立する必要がある場合、周辺装置プロセッサは、例えば、ウェイクシーケンスをトリガーする帯域外汎用入出力（ＧＰＩＯ）を介して、ウェイクアップするようにホストに要求できる。ホストは、動作を再初期化するなどのために、アクティブ待機状態４１８に遷移する。ホストがアクティブ待機状態４１８を成功裏に出て、ウェイクアップした（アクティブ状態４１２にある）ならば、ホストは、ホストスリープ離脱メッセージによって周辺装置を更新する。
【０１２３】
周辺装置プロセッサを再び参照すると、周辺装置プロセッサ転送記述子リング（ＴＤＲ）処理が完了したならば、周辺装置プロセッサは、スリープメッセージに対する完了／肯定応答を送信する。その後、周辺装置プロセッサは、周辺装置プロセッサがホストプロセッサから（メッセージリング（ＭＲ）を介して受信される）ホストスリープ離脱メッセージを受信するまで、それ以上のＴＤＲを受け付けない。周辺装置は、データ転送を再開する前に、ホストスリープ離脱メッセージを肯定応答／完了する。
【０１２４】
上述の説明は、１つの例示的なステートマシンを純粋に説明するためのものである。他の変形は、本願の権利者が所有し、かつ同時係属中である、「Methods and Apparatus for Managing Power with an Inter-Processor Communication Link Between Independently Operable Processors」と題する、２０１５年１０月８日に出願の米国特許出願第１４／８７９０２７号に説明されており、その全体が、参照により既に本明細書に組み込まれている。
【０１２５】
前に述べたように、説明される実施形態の各サブシステムは、その対応するサブシステム電力管理ステートマシンのそれ自体の独立なインスタンスを有する。図２を再び参照すると、セルラー方式のサブシステム２１４Ａは、電力管理ステートマシンの第１のインスタンスを有し、ＷＬＡＮサブシステム２１４Ｂは、電力管理ステートマシンの第２のインスタンスを有し、ＰＡＮサブシステム２１４Ｃは、電力管理ステートマシンの第３のインスタンスを有する。上述のサブシステムの電力管理ステートマシンは純粋に説明するためのものであり、様々な他の設計考慮事項に適合するために、当業者によって他のステートマシンを置き換えることができる（又は上述のものと組み合わせて使用できる）ことが理解されよう。例えば、異なるアプリケーション及び異なるコンポーネントは、それらの機能、相対的な電力消費又は更に他の因子に応じて、異なる電力管理ステートマシンを有し得る。
【０１２６】
１つの例示的な実施形態では、ドメインは、制限なく他のドメインと同時に動作し得る（例えば、１つ以上のドメインが、同じ時間に電力供給される）。他の実施形態では、ドメインの独立な動作は、優先する電力消費、熱放散及び／又は干渉の制約の影響を受け得る。例えば、特定のアグレッシブに設計された製品は、すべてのドメインに同時に十分に電力供給できない場合もある、又はすべてのドメインに電力供給する場合、全体的な電池寿命の制約を満たすことができない場合もある。更に他の製品は、熱放散及び／又は（クロックの差に起因する）不要な電磁ノイズフロアの増大が問題となり得るほどアグレッシブな寸法にされる場合もある。そのため、本明細書で企図されるインテリジェント電力管理の変形は、優先的に、そのようなデバイス制限に対応するようにドメインを有効化又は無効化し得る（例えば、ドメイン、１つ以上のユーザの好み、使用状況及び／又は他の選択情報の優先順位による重み付けに基づく）。
【０１２７】
１つの例示的な実施形態では、本開示のＰＣＩｅインタフェースはまた、制限なしに、独立に動作可能である。例えば、ＰＣＩｅインタフェースは、ホストプロセッサ２１６及び周辺装置サブシステム２１４Ａ、２１４Ｂ、２１４Ｃの両方と異なる、それ自体の電力ドメイン及びクロックドメインを有する。他のサブシステムと同様に、本実施形態におけるＰＣＩｅサブシステムは、他のサブシステムとは独立に、節電モードに移行及び／又は節電モードから離脱できる。このようなシステムは、ホスト、周辺装置又はサブシステムの動作を必要とせずに、「ハウスキーピング」タイプの動作（例えば、ステータス更新、タイマーの設定／リセット及び／又は他の自律的なアクセス）を有効化できる。
【０１２８】
動作中、例示的な実施形態の電力管理ステートマシンのそれぞれは、独立に動作する。例えば、セルラー方式のサブシステム２１４Ａは、他のサブシステムがスリープ状態であるままで、セルラー方式のネットワーク移動管理エンティティ（ＭＭＥ）と通信し得る。セルラー方式のサブシステムがホストプロセッサを更新する必要がある場合、サブシステムは、ホストプロセッサ２１６を中断して、ＰＣＩｅリンクをウェイクアップする。これに応じて、ＰＣＩｅ  ＬＴＳＳＭは、そのＬ０状態３０２へ遷移して、ホストプロセッサ２１６への通信の橋渡しをする（ホストプロセッサ２１６はまた、応じて、既にアクティブでなければ、そのアクティブ状態へ遷移する）。トランザクションが終わったならば、セルラー方式のサブシステムは、そのそれぞれのスリープ状態に再び戻ることができる。
【０１２９】
加えて、ＰＣＩｅサブシステムがサブシステムのそれぞれについて機能情報を記憶することから、ホストによるＰＣＩｅレジスタアクセスは、サブシステム（２１４Ａ、２１４Ｂ、２１４Ｃ）に電源を入れる及び／又はいわゆる「バックプレーンアクセス」を開始する必要なく、ＥＰ  ２１２又は機能（２０８Ａ、２０８Ｂ、２０８Ｃ）によって完了する。いわゆるバックプレーンアクセスは、例えば、周辺装置内部相互接続、バス並びに／又は共有及び／若しくは非共有リソースなどの内部アクセス機構を必要とするアクセスを一般的に指す。より直接的には、ホストは、メモリアクセスを処理するためにサブシステムに電源を入れて動作状態とする必要なく、サブシステムのそれぞれについてＰＣＩｅ制御空間及びＭＭＩＯレジスタにアクセスできる。例えば、ホストは、対応するサブシステムをウェイクアップせずに、機能のうちの様々な機能に対して読み出す／書き込むことができる。例えば、ＲＣ  ２１０は、セルラー方式のサブシステム２１４Ａをウェイクアップすることなく、ＥＰ  ２１２にセルラー機能２０８Ａを問い合わせることができる。同様に、ＰＣＩｅリンクは、サブシステムの電源を切らずに、より低い電力モード（例えば、Ｌ０ｓ、Ｌ１．１及び／又はＬ１．２など）へ遷移できる。
【０１３０】
例示的な多機能ＥＰ  ２１２は、追加的に、接続されたサブシステム２１４Ａ、２１４Ｂ及び２１４Ｃへのアクセス及び／又は接続されたサブシステム２１４Ａ、２１４Ｂ及び２１４Ｃからのアクセスをインテリジェントに管理する必要があり得る。例えば、１つの例示的な実施形態では、各サブシステムは、それ自体の動作ドメイン（例えば、電力ドメイン及びクロックドメイン）内で別々にアドレス指定可能である。換言すると、ＰＣＩｅベースアドレスレジスタ（ＢＡＲ）を介して参照される各メモリマップト入出力（ＭＭＩＯ）領域は、単一のサブシステムに直接対応し、かつ単一のサブシステムに対して排他的に使用される。（サブシステムに対応する）各ＢＡＲは、一意のバッキングメモリアドレスのセットを参照する又は「指し示す」。加えて、各サブシステムは、指定された空間又は領域にのみ（例えば、ＭＭＩＯ及びそれ自体のＭＭＩＯ領域内の構成空間にのみ）アクセスし得るように「サンドボックス化」され得る。一部の変形では、このことは、ハードウェア保護（例えば、論理アドレスデコーダ、マルチプレクサ）及び／又はソフトウェア保護（例えば、アドレストラップ、ウィンドウイング）で強化され得る。
【０１３１】
一部の実施形態では、ＰＣＩｅドメインは、ＲＣ  ２１０、ＰＣＩｅ物理リンク２０６及びＥＰ  ２１２について更に細分される。このように細分することにより、ＲＣ  ２１０及び／又はＥＰ  ２１２までも電源を切ることなく、ＰＣＩｅリンク２０６の電源を下げることができる。例えば、一部の変形によって、ＥＰ  ２１２は、リンク２０６がディープスリープ状態にある間に、サブシステム（２１４Ａ、２１４Ｂ、２１４Ｃ）に対応する各機能（２０８Ａ、２０８Ｂ、２０８Ｃ）のための制御レジスタ空間を更新し続けることを可能とすることができる。換言すると、ＰＣＩｅのＥＰ  ２１２に常駐するＰＣＩｅ構成レジスタ及びＭＭＩＯレジスタは、いかなるバックプレーンアクセスも必要としない、又はサブシステムをクロッキングする若しくはサブシステムに電源を入れることを必要としない。同様に、ホストプロセッサ２１６は、リンク２０６又はＥＰ  ２１２を有効化せずに、ＲＣ  ２１０制御レジスタに対して読み出す／書き込むことができる。このような機能は、一部の条件下において、かなりの節電のために、全周辺装置２０４が電力未供給モードになった（例えば、ＶＤＤ及びグローバルクロックの電源を切った）が、ホストプロセッサがＲＣ  ２１０制御レジスタへのアクセスを必要とする場合に、特に有用である。通信リンク２０６をアクティブ化すると、ホスト（及び周辺装置）は、それぞれのレジスタに対する更新を監視し、これに応答できる。
【０１３２】
特定の状況下において、ホストは（ＲＣを介して）、ＥＰ内の対応するＭＭＩＯ領域に書き込むことによって、サブシステムをウェイクアップできる。例えば、スリープ状態のサブシステムに対応する特定のＭＭＩＯ領域及び／又は関連付けられた構成レジスタにホストがアクセスする場合、ＥＰは、サブシステムを「ウェイクアップ」し、に対する割り込みをトリガーする。同様に、各サブシステムは、例えば、基準クロックを必要とすることなく、及び／又はＰＣＩｅリンク電力状態を乱すことなく（例えば、Ｌ０  ３０２、Ｌ０ｓ  ３０４、Ｌ１  ３０６及びＬ２  ３０８から出る必要はない）、ＰＣＩｅリンク状態に関わらず、対応するＭＭＩＯ及び構成領域におけるそれ自体のサンドボックス化レジスタの内容を読み書きできる。
【０１３３】
例示的動作−
従来技術のＰＣＩｅハードウェアバス実装との物理的な違いに加えて、本開示の例示的な実施形態は、独立なサブシステムドメイン動作に適合するように、ＰＣＩｅバスプロトコルのための動作フレームワークを規定する。
【０１３４】
ルートコンプレックス及びエンドポイント動作に対する例示的な修正
本明細書で説明される一部の開示される実施形態は、ＲＣ、ＰＣＩｅリンク、ＥＰ及び任意の取り付けられたサブシステムの間のように、電力ドメイン及びクロックドメインを分離してある。動作を個々の動作のための異なるドメインへ分離すること加えて、このようなケースでは、エンティティのそれぞれが、他のエンティティの現在の電力状態を乱さずに、様々な共有データ構造にアクセスできる。例えば、ＲＣは、サブシステムのいずれも不必要にウェイクアップすることなく、ＥＰ内の機能レジスタ及びメモリの一部にアクセスでき、同様に、各サブシステムは、ホストプロセッサをウェイクアップせずに、ＲＣレジスタにアクセスし得る。加えて、各サブシステムはまた、ＰＣＩｅリンクをウェイクアップせずに、その対応するエンドポイント、機能及び／又はＭＭＩＯレジスタにアクセスし得る。本明細書で説明される様々な改良によって独立なアクセスが可能になることが理解されるが、既存の技術が維持され得ることを当業者であれば容易に理解するはずである。例えば、関連付けられたサブシステムをウェイクアップするアクセスもまた可能であり得る（例えば、レガシー機能及び／又は既存の使用事例をサポートするため）。
【０１３５】
図５は、本開示に係る、サブシステム内のレジスタにアクセスするための１つの例示的な方法を示す。
【０１３６】
本方法５００のステップ５０２において、ホストプロセッサは、ＰＣＩｅ機能（例えば、図２の機能２０８Ａ、２０８Ｂ及び２０８Ｃ）内のメモリロケーションにアクセスする命令を実行する。前に述べたように、メモリマップトアクセスは、メモリロケーションへネイティブに（すなわち、中間的なポートマップト通信フォーマットに必要なオーバーヘッドを必要とせずに）変換される。アクセスの一般的な例としては、リード、バーストリード、ライト、バーストライト、ポステッドライト及び／又はセット／クリアを含むが、限定するものではない。メモリロケーションは、任意の帯域内アドレス指定可能メモリロケーションを含み得る（レジスタ、メモリ及び／又は他のデータ構造を含み得るが、限定するものではない）。
【０１３７】
本方法５００のステップ５０４において、ホストプロセッサアクセスは、ＲＣへマップし、このことにより、一部の実装では、ＰＣＩｅリンクをＬ０状態３０２からウェイクアップするようにトリガーされる。一部の実装では、ＰＣＩｅリンクは、Ｌ０状態３０２に既に存在し得る。既存の従来技術のＰＣＩｅ動作では、ルートコンプレックス（ＲＣ）及びエンドポイント（ＥＰ）が、３つの信号、すなわち、ＰＥＲＳＴ＃（ＰＣＩｅリセット）、ＷＡＫＥ＃（ウェイク機能については後で詳述する）及びＣＬＫＲＥＱ＃（クロック要求）を介してリンク動作を調整する。ＰＥＲＳＴ＃は、ＲＣによって駆動され、（ディアサートされた場合）電力が安定しており、リンクが有効化され得ることを表し、ＣＬＫＲＥＱ＃は、ＥＰによって駆動される場合があり、（アサートされた場合）リンククロックのための要求及び／又はＬ１サブ状態を出る要求を表し、ＣＬＫＲＥＱ＃はまた、ＲＣによって駆動される場合があり、（アサートされた場合）Ｌ１状態又はサブ状態（例えば、Ｌ１．１、Ｌ１．２）を出る要求を表す。（ＰＥＲＳＴ＃をディアサートすることによって）リンクが利用可能であることをホストが示したならば、ＥＰは、ＣＬＫＲＥＱ＃をアサートすることによって、ホスト及びＲＣをウェイクアップでき、その後、トランザクションが開始できる。
【０１３８】
これに応じて、本方法５００のステップ５０６において、ＰＣＩｅ  ＥＰは、まだアクティブではない場合、その低電力状態を出る。内部では、メモリマップトアクセスは、メモリコントローラ、バスアービタ又は他のアクセス制御機構を介して、ＥＰ内の適切なメモリロケーションへ送られる。先に述べたように、サブシステムアクセスは、ＥＰ内の特定かつ排他的なメモリ領域に割り当てられた機能に対応する。例えば、メモリアクセスは、例えば、機能内へのレジスタのアクセスに対応し得る。
【０１３９】
本方法５００のステップ５０８において、（必要に応じて肯定応答を含む）上記機能でＰＣＩｅ  ＥＰメモリ空間へのアクセスが完了する。完了したならば、ＰＣＩｅリンク及び／又はＲＣは、次のトランザクションに進み得る（すなわち、現在のトランザクションは、ＰＣＩｅリンクをストールしない）。一部の変形では、ＥＰは、追加的に、図５で説明されるレジスタアクセスとは別個のプロセスとしてサブシステムをウェイクアップする。例えば、ＰＣＩｅ  ＥＰは、対応するサブシステムをウェイクアップして、例えば、レジスタアクセスを伝播する又はレジスタアクセスに基づいて別のタスクを実行する場合もある。
【０１４０】
１つのこのような変形では、ＣＬＫＲＥＱ＃のためのシグナリングプロトコルは、ＰＣＩｅリンクをその低電力状態からウェイクアップし、他のサブシステムドメインについては低電力状態からウェイクアップしない。後で詳述するように、最初のバストランザクションは、ＥＰをブートするためにブートイメージを提供し、ＥＰのブートが成功したならば、ホスト及びＲＣは、ＰＥＲＳＴ＃をディアサートして、リンク安定性を示し、それによって、ＥＰを有効化して、リンクトレーニングを開始する。サブシステムが別個のドメイン上で稼働していることから、ＰＥＲＳＴ＃は、周辺装置内部のいかなるサブシステムの状態にも影響を与えることなく、繰り返しリセットできる。リンクの初期化が完了したならば、サブシステムに対するートイメージが送達される。
【０１４１】
加えて、ＰＥＲＳＴ＃がサブシステム及び／又はホスト動作から切り離されることから、ＰＥＲＳＴ＃は、ホスト及び他のサブシステムを考慮せずに、任意の節電状態からＰＣＩｅブロックをウェイクアップできる。より直接的には、ＰＥＲＳＴ＃ロジックは、ＰＣＩｅリンク外部の機能に影響を与えないことから、大幅に簡素化され得る。一部の例示的な変形では、ＰＥＲＳＴ＃及び／又はＣＬＫＲＥＱ＃ロジックは、ソフトウェアトランザクションオーバーヘッドを低減し、ロバスト性を高めるために、ハードウェア及び／又は簡単なロジック内に完全に実装され得る。
【０１４２】
本明細書で説明される原理に合致し、広範な様々な多機能バス動作に適する、ＰＣＩｅシグナリングに対する他の修正及び／又は追加は、当業者によってなされ得る。例えば、より洗練された実装は、シグナリングロジックを追加又は除去し得る（例えば、汎用入出力（ＧＰＩＯ）に基づいて）。更に他の実装は、個々のＰＥＲＳＴ＃及び／又はＣＬＫＲＥＱ＃ラインをＥＰの各サポートされたサブシステム専用にし得る（例えば、ＰＥＲＳＴ＃及びＣＬＫＲＥＱ＃のバンドルされた配列を作成する）。
【０１４３】
例示的なサブシステム電力制御
サブシステムを適切に初期化したならば、サブシステムは、それらのそれぞれのドメインために個別の電力状態を実施する。周辺装置内の完全に独立な電力及びクロックドメイン動作をサポートするために、例示的なサブシステム及びＥＰは、ドメイン動作を制御する（例えば、サブシステムの電源を入れる、切る又は任意の数の他の中間低電力モード（及び／又はそれらの勾配）で電力を供給することを含む）ための構成レジスタを含むように修正される。
【０１４４】
前に述べたように、スリープモードは、一般的に、より多くのサブシステムコンポーネントを、次第に電源を切ることによって特徴付けられている。例えば、ライトスリープは、単に高いリフレッシュレートのメモリの電源を落し、モデレートスリープは、短期記憶揮発性メモリを不揮発性ストレージに記憶し、揮発性メモリの電源を下げる。ディープスリープは、追加的に、位相同期ループ（ＰＬＬ）、デジタル同期ループ（ＤＬＬ）及び／又は他のクロッキングハードウェアの電源を下げる。ウェイクアップは、電源を切ったコンポーネントへ逆順で電源を入れることによって実行される（例えば、不揮発性メモリの前にクロック、揮発性メモリの前に不揮発性メモリ）。よって、次第に、低電力モードが深いほど、ウェイクアップレイテンシが長くなり得る。更なる他の電力シーケンス技術は、本開示の内容を読めば当業者であれば容易に理解するはずである。
【０１４５】
１つのこのような実装では、周辺装置が最初に電源を入れた場合、各サブシステムの構成レジスタは、デフォルト状態に初期化される一方、レジスタの内容は、リセット中も（例えば、周辺装置リセット及び／又は機能レベルリセットにわたって）「スティッキー」（又は不揮発性）である。代替的な変形では、構成レジスタは、電源を入れた時に初期化されないが、リセットシーケンス中に初期化され得る。更に他の実装は、リセットシーケンスのハイブリッドを組み込み得る（例えば、周辺装置リセットは、構成レジスタを初期化するが、機能レベルリセットはそうではない）。
【０１４６】
上述の開示は、電力及びクロックドメイン動作ための構成レジスタを主に対象としているが、本開示の内容を読めば当業者であれば容易に理解するはずであるが、構成レジスタは、割り込み、トラップされたエラー、動作モード、バージョニング情報、ファイル構造情報及び／又は事実上任意の他の動作パラメータを運ぶ又は構成するように使用され得る。
【０１４７】
ＰＣＩｅリンク電力制御
一部のケースでは、例示的なホスト及びＲＣは、周辺装置から分離している（図２など）。内部ホストドメイン電力制御は、上述の周辺装置ドメイン動作と実質的に同様であり得る。実際、ホストは、複数のサブシステムを有することさえあり得る。しかしながら、いつＰＣＩｅリンクを有効化及び／又は無効化するかをホストが制御することから、周辺装置が利用可能でない場合、ホストが周辺装置に対する信号送信を試みないことを確実にするために、追加的なリンクシーケンシングが必要とされる。逆の場合も同じである（例えば、ホストが利用可能ではない場合、周辺装置がホストに対する信号送信を試みない）。
【０１４８】
１つの例示的な実施形態では、（例えば、ホストプロセッサが、スリープ状態にあることにより、命令に応答するために利用可能ではない）非応答低電力モードへホストが遷移する前に、ホストは、各サブシステムについてプロトコルハンドシェイクを行う。次いで、各サブシステムは、正常に準備して、それらの内部考慮事項（例えば、現在の実行及びメモリを不揮発性又はスティッキーメモリに記憶すること）に従って、それらの対応する低電力状態（上述のデバイス電力状態など）へ遷移する。その後、サブシステムは、低電力モードに移行し得る。ホストが、サブシステムのすべてについてプロトコルハンドシェイクを完了したならば、次いで、ホストは、リンクがもはや利用可能ではないことを示すＰＥＲＳＴ＃をアサートできる。前に述べたように、本開示の例示的なサブシステムは、後続のＰＥＲＳＴ＃遷移中、ウェイクアップする必要がない。代替的な実装によって、サブシステムは、ＰＣＩｅ割り込みの受信を「オプトイン」可能にしてもよい。例えば、サブシステムは、低電力状態になる前に、ＰＥＲＳＴ＃がアサートされるまで待機し得る。このような機能は、ＰＣＩｅトランザクションをデバッギングする又は他の方法で監視するために有用であり得る。
【０１４９】
ホストが低電力モードへ成功裏に遷移したならば、サブシステムのいずれかが、ＰＣＩｅインタフェースを介して、ホストに対してＷＡＫＥ＃信号をアサートすることによって、ホストをウェイクアップできる。１つのこのような実装では、ＷＡＫＥ＃信号は、すべてのサブシステム間で共有され、ホストドライバは、電力管理イベント（ＰＭＥ）を介して起点のサブシステムを判定できる。他の実装は、ＷＡＫＥ＃イベントをトリガーしたサブシステムを示す、構成レジスタ又はＭＭＩＯレジスタを提供する。別の実装では、各サブシステムは、専用のＷＡＫＥ＃  ＧＰＩＯ（汎用入出力（ＧＰＩＯ））を有し、ホストドライバは、アサートされたＷＡＫＥ＃  ＧＰＩＯを介して起点のサブシステムを判定できる。
【０１５０】
ＷＡＫＥ＃シグナリングを受信したこと応じて、ホストは、そのスリープ状態を出て、ＰＥＲＳＴ＃をアサートして、ホストが成功裏にウェイクアップしたことを示す。ホストは、（上述のＬＴＳＳＭを介して）ＰＣＩｅリンクを有効化し、適切なＰＣＩｅ機能をエニュメレーションする。ホストがリンクを成功裏にエニュメレーションしたならば、アクティブなサブシステム（単数又は複数）は、データをホストとトランザクションできる。成功したリンク再確立は、ホストとサブシステムとの間のハンドシェイクで完了する。
【０１５１】
ここで図６を参照すると、ホストプロセッサをスリープモードに遷移させるための１つの例示的な方法が開示される。
【０１５２】
本方法６００のステップ６０２において、ホストプロセッサは、ホストがディープスリープモードに移行することを、サブシステムのそれぞれに通知する。次いで、各サブシステムは、自身もスリープすべきかどうかを独立に評価する。例えば、ホストがスリープ状態にある間、ホストはサブシステムのいずれにもアクセスしないため、サブシステムは、スリープモードに遷移して節電する。しかしながら、他のケースでは、サブシステムは、ホストがスリープ状態にある場合でも他の外部ネットワークエンティティと通信する必要があり得る。そのようなケースでは、サブシステムは、動作モードにあるままであり得る。一部の変形では、ホストのみが、サブシステムがスリープ状態になるのを阻止する一方的な権限を有する。代替的な変形では、サブシステムもまた、ホストがスリープ状態になるのを阻止する権限を有する（例えば、電力管理が双方向である、又は特定の制限によって双方向となる場合）。一般的に、各サブシステムに対するスリープシーケンスは、他のサブシステムから分離されることが理解されるが、本開示の内容を読めば当業者であれば、均等な効果を有する相互に関連するサブシステム電力管理を置き換えることができる。
【０１５３】
本方法６００のステップ６０４において、ホストプロセッサは、ＰＣＩｅリンクをスリープにし得る。この時、ＰＣＩｅリンクは、Ｌ２状態３０８へ遷移し、ＲＣは、ＰＥＲＳＴ＃をアサートして、リンクが非アクティブであることを示す。一般的に、ＥＰもまたスリープ状態になる。しかしながら、容易に理解されよう。ＥＰが、ホストがスリープ状態にある間も動作状態に維持されているサブシステムによって、ウェイク状態に保たれている又は独立にウェイク状態にされている。より直接的に、ＰＣＩｅサブシステムがリセット状態に保たれているが、個々のサブシステムのそれぞれは、ウェイク状態に保たれている、又は自律的にウェイクアップして、例えば、様々なネットワーク管理タスクを実行し得る。例えば、セルラー方式のサブシステムは、ウェイクアップして、ページング及び／又は更新ネットワークモビリティ管理エンティティを確認できる。同様に、ＷＬＡＮサブシステムは、利用可能なホットスポットアクセス及び／又は近くのオープンネットワークを定期的に確認し得る。
【０１５４】
ステップ６０６において、ホストは、そのスリープモードに移行する。一部のケースでは、ホストは、揮発性メモリを不揮発性メモリへ記憶し、コア及び／又は他の関連コンポーネント（例えば、クロック、電源、メモリ及び／又は取り付けられたコンポーネン）への電力を低減し得る。一部のケースでは、ホストは、例えば、低電力モードにおいて（例えば、より遅いクロック、低減されたメモリ又はコア）、いつウェイク条件が発生するか監視し続ける、又はより低い優先順位のタスクを実行し得る。例えば、プロセッサは、コアがウェイクタイマーを追跡するのに及び／又はＲＣで待機条件を確認するのに十分な電力だけを供給し得る。他の状況では、ホストは、他のロジックがウェイクアップをトリガーすることに頼って、完全に休止している。例えば、ＰＣＩｅリンクＲＣは、別個のドメイン上にあり、ホストのウェイクアップをトリガー可能であり得る。
【０１５５】
続いてその後、ホストは、例えば、タイマーの期限満了、サービスの割り込み、周辺装置サブシステムアクセス（ＷＡＫＥ＃を介する）、ユーザ操作及び／又は任意の数の他のホストサービスに起因して、スリープモードを出ることができる（ステップ６０８）。ホストは、ＰＣＩｅ  ＬＴＳＳＭに従って、ＰＣＩｅリンクを（まだアクティブでなければ）ウェイクアップする（上記図３の説明を参照）。
【０１５６】
ステップ６１０において、ホストは、多機能周辺装置のうちの少なくとも１つの機能をエニュメレーションする。一部のケースでは、ホストは、機能のすべてをエニュメレーションし得る。他のケースでは、ホストは、アクティブな機能のみをエニュメレーションし得る。更に他のケースでは、ホストは、ウェイク条件をトリガーした機能（単数又は複数）のみをエニュメレーションし得る。
【０１５７】
一部のケースでは、ホストは、任意選択的に、機能に対応するエニュメレーションしたサブシステムをステップ６１２において動作状態へ遷移させる。
【０１５８】
例示的なブートシーケンス
既存のＰＣＩｅ実装は、ホストがホストに取り付けられた周辺装置を最初にブートする、簡素なブートシーケンスを有する。本開示の様々な実施形態は、周辺装置ＥＰをブートし、次いで、サブシステムのそれぞれを個別にブートする。１つの例示的な実施形態では、ホストが周辺装置ＥＰを成功裏にブートしたならば、ホストは、サブシステムを発見し、順番にブートする（例えば、最初に、セルラー方式のサブシステム、次いで、ＷＬＡＮサブシステム、そして最後にＰＡＮサブシステム）。一部のケースでは、特定のサブシステムは、ブートプロセスから枝刈りされ得る（例えば、アプリケーションソフトウェアで必要とされない場合）。例えば、ユーザがＰＡＮ機能を無効化した場合、ブートシーケンスからＰＡＮサブシステムが枝刈りされる。
【０１５９】
より複雑な実施形態では、個々のドメイン制御の粒度のおかげで、ホストは、例えば、電力消費を低減する及び／又はブート時間全体を低減するために、実行時考慮事項に基づいて、周辺装置のサブシステムにインテリジェントに電力供給及び／又はブートできる。例えば、現在ユーザアプリケーションためのネットワークアクセスを必要としないモバイルデバイスは、ＷＬＡＮサブシステムの電源を下げたままで、ホストプロセッサ及びセルラー方式のサブシステムだけをブートし得る。このようにして、セルラー方式のサブシステムは、ユーザへの割り込みを最小限としながら、バックグラウンドで移動管理シーケンス（例えば、登録、認証など）を実行することができ、ＷＬＡＮサブシステムが使用時に必要とされるまでブートされないことから、全体的なブート時間が低減される。
【０１６０】
ブートシーケンスの１つの例示的な実装では、周辺装置が最初に電力供給されている場合、ＰＣＩｅ  ＥＰのみが電力供給される。他のサブシステムは、明示的に電源を入れるまで、電源を切ったままにされる。最初のブートシーケンス中、ＥＰ、ＰＣＩｅサブシステム及びＰＣＩｅ機能のうちのそれぞれ１つをエニュメレーションし得る。例えば、最初のブートシーケンス中、ＥＰは、各サブシステムのＰＣＩｅ  ＢＡＲ及び対応する構成空間並びにＭＭＩＯ領域を初期化し得る。前に述べたように、一部の変形では、サブシステムのＢＡＲ、構成レジスタ及びＭＭＩＯは、対応するサブシステムの電力状態に関わらず、ホストによってアクセスされ得る。
【０１６１】
次いで、ＰＣＩｅエニュメレーションは、様々なサブシステムについて選択的に進み得る。所与のサブシステムの構成空間のＰＣＩｅのエニュメレーション中、ホストは、サブシステムへの電力を有効化するように構成レジスタに書き込む。サブシステムを成功裏に初期化した後、ホストは、バスマスタイネーブル（ＢＭＥ）ビットを設定して、ＰＣＩｅバス上でホストメモリにアクセスする対応する機能を有効化し得る。ホストがＰＣＩｅリンクの制御を有したならば、ホストは、ブートイメージのロード及び／又は実行を含み得る、特定のサブシステムに対してブートプロセスを開始し得る。各サブシステムは、個別にブートされ得、各サブシステムのブートプロセスは、任意の他のサブシステムブートプロセスに対して独立であり得、阻止も影響もしない。
【０１６２】
添付書類Ａは、ホストによって開始される、スリープ、電力及びリセットイベントに応じたサブシステムの例示的な挙動を説明する表を提供する。上記表で説明するように、特定のイベント中における周辺装置のブートステージは、指定された挙動となる。
【０１６３】
多機能周辺装置をブートシーケンスのための更なる他のスキームは、本開示の内容を読めば当業者であれば容易に理解するはずである。
【０１６４】
例示的なリセットシーケンス
各ドメインは、例示的な実施形態では、個別にリセット可能である。マルチリセットスキームは、一部の変形では、構成パラメータを再初期化し得る。他方、他の変形では、リセットは、構成パラメータを再初期化し得ない。更に他のハイブリッドシステムは、リセット可能及びスティッキーの両方の構成パラメータを有する。更に他のケースでは、リセットは、例えば、階層ティア（すなわち、高位ティアのリセットは、それよりも下位のティアをリセットし得る）、機能グループ、構成可能グループ及び／又は他のグループ方法論に基づいて、連結され得る。
【０１６５】
１つの例示的な実施形態では、個々のドメインに対応する各ＰＣＩｅ機能ブロック（サブシステムではなくエンドポイント内に配置される）はまた、個別にリセット可能であり得る。１つのこのようなケースでは、機能レベルリセットは、機能ブロックだけでなく、接続されたサブシステムをリセットする。あるいは、機能レベルリセットは、接続されたサブシステムをリセットしない。更に他の実装では、機能ブロック自体もまた、その対応するサブシステムがリセットされた場合に自動的にリセットされる。
【０１６６】
１つの実施形態では、機能ブロックをリセットすることは、サブシステムを強制的にその初期ブートステージにし得る。一部の変形では、サブシステムは、既定の時間内でリセットされ得る。一部のケースでは、リセットは「ハード」であり（すなわち、リセットが、現在の実行ステータス及び／又は電力状態に関わらず強制される）。他のケースでは、リセットは「ソフト」である（すなわち、リセットは、例えば、現在の実行内容を回復できる、特定のシーケンスに従って実行される）。
【０１６７】
機能レベルリセットがトリガーされる場合、機能ブロックは、サブシステムの構成空間及びＭＭＩＯの内容を自動的にリセットし得る。一部のケースでは、特定のビット又はデータ構造が「スティッキー」であり、それらの内容は、リセット後も持続し得る。このようなスティッキーなデータ構造の一般的な例としては、サブシステムへの電力供給を制御するために使用される構成レジスタが挙げられるが、限定されるものではない。他のスキームは、非スティッキーなデータ構造、又はスティッキービット及び非スティッキービットの混合を使用し得る。
【０１６８】
前に述べたように、ホストは、動作中の任意の他の機能及び／又はサブシステムの動作状態に影響を与えずに、各機能及び／又はサブシステムのリセットを開始し得る。加えて、本開示の様々な実施形態は、追加的に、全周辺装置チップセットをリセットする周辺装置ワイドリセットをサポートする。例えば、ホストが周辺装置リセットをトリガーしたならば、周辺装置リセットの時に電源がオンであるあらゆるサブシステムがリセットされ、周辺装置リセットの時に電源がオフであるあらゆるサブシステムは電源オフのままにされる。周辺装置リセットの後、ホストは、上述のように（例示的なブートシーケンスを参照）ＰＣＩｅ機能をエニュメレーションし、サブシステムをブートし得る。
【０１６９】
図７は、機能レベルリセット（ＦＬＲ）動作のための１つの例示的な方法を示す。１つの例示的な実施形態では、各ＦＬＲは、帯域内リセットである（例えば、専用レジスタ、ＭＭＩＯアドレス又は他のアドレス指定可能なメモリロケーションに常駐する）。より一般的には、ＦＬＲ機能は、ホストによって発行され得、ＥＰ内に配置された特定の機能によって管理され得る。
【０１７０】
本方法７００のステップ７０２において、ホストは、周辺装置のサブシステムに対する機能レベルリセットを発行する。
【０１７１】
これに応じて、周辺装置のサブシステムがリセットされる（ステップ７０４）。例示的な実施形態では、機能レベルリセットは、機能及び／又はサブシステムの電力状態に関わらず処理され得る。本開示の内容を読めば当業者であれば容易に理解するはずであるが、他の実施形態は、リセット中の現在の電力状態を考慮し得る（例えば、正常に、揮発性メモリの内容を記憶するために、及び／又はプロセスを出るために）。
【０１７２】
一部のケースでは、サブシステムは、図７のリセットシーケンスに追加的又は代替的に電源を下げられ得る。例えば、ホストプロセッサは、機能レベル電源オフ命令を発行し得、それに応じて、対応するサブシステムが電源を下げられ得る。
【０１７３】
１つのそのような実装では、周辺装置リセットは、機能レベルリセットのすべてを駆動して、周辺装置リセットを達成する。よって、機能レベルスティッキービットは、周辺装置リセット中であっても保存される。他の実装では、周辺装置リセットは、機能レベルリセットとは異なる専用リセット機構であり得る。専用周辺装置リセット機構は、例えば、機能レベルリセットのためのスティッキービットを除くべきである場合に有用であり得る。例えば、図８は、周辺装置レベルリセット動作のための１つの例示的な方法を示す。１つの例示的な実施形態では、周辺装置リセットは、ハードウェアリセットであり、例えば、周辺装置レベルリセットは、汎用入出力（ＧＰＩＯ）又は他の専用ハードウェアシグナリングで実装され得る。
【０１７４】
余談であるが、既存の周辺装置リセットスキームは、サブシステム状態をリセット後に保存しない。例えば、１つのこのような従来技術のリセットスキームは、ＰＣＩｅリンクの電源を切り、周辺装置をリセットし、再びＰＣＩｅリンクの電源を入れ、接続されたサブシステムのそれぞれを再初期化する。対照的に、本開示の様々な実施形態は、サブシステム状態を保持する。例えば、リセット前にスリープ状態又は電源オフであったサブシステムは、スリープ状態又は電源オフに保たれ、リセット前にアクティブ状態であったサブシステムは、アクティブ状態に保たれる。
【０１７５】
本方法８００のステップ８０２において、周辺装置ＰＣＩｅリンクは、電源を下げられ得る、及び／又はＰＥＲＳＴ＃がアサートされ得る。
【０１７６】
図８に示すように、ホストは、本方法８００のステップ８０４において周辺装置に対して周辺装置レベルリセットを発行し得る。周辺装置ＥＰ、機能及び対応するサブシステムを含む、全周辺装置がリセットされる。
【０１７７】
リセット後、サブシステムのそれぞれは、それらの読み出し専用メモリ（ＲＯＭ）の内容を実行し、それに従って初期化し得る（ステップ８０６）。一部の実施形態では、ＲＯＭの内容は、例えば、アイドルスピンループに限られ得る。ＲＯＭのない環境では、サブシステムのプロセッサは、有効な命令を持っていない場合もある揮発性メモリから実行し得る。そのような条件下では、プロセッサは、ホストによって稼働するようにトリガーされるまで稼働を開始しない。
【０１７８】
その後、ホストは、ＰＣＩｅポートに電力を供給し、ＰＣＩｅリンクは、そのＬＴＳＳＭの動作リンク状態（例えば、Ｌ０状態）へ遷移し得る。
【０１７９】
ステップ８０８において、ホストは、周辺装置の機能のすべてをエニュメレーションし、各サブシステムを動作状態へ遷移させ得る。前に述べたように、ホストは、サブシステム状態を保持する。換言すると、リセット前にスリープ状態又は電源オフであったサブシステムは、スリープ状態又は電源オフに保たれ、リセット前にアクティブ状態であったサブシステムは、アクティブ状態に保たれる。その後、ブートプロシージャは、上述のプロセスに従って進み得る。
【０１８０】
多機能周辺装置をリセットするための更なる他のスキームは、本開示の内容を読めば当業者であれば容易に理解するはずである。
【０１８１】
当業者であれば、多くのソフトウェアデバッギング技術がエラートラッピングの成功に頼っていることを容易に理解するはずである。一部の実施形態では、予想外のソフトウェアエラーが検出された場合、プロセッサは、更なる動作を中止し、ループ命令（「スピン」）を実行する。このようにして、ホストは、デバッグのためのメモリ内容を取り出せる。別の実施形態では、予想外のソフトウェアエラーが検出された場合、サブシステムがリブートされ得る。メモリの内容は、リセット条件で保存されたとおりにアクセス可能である。更に他の実施形態では、各サブシステムについて別個のハードウェアウォッチドッグタイマーを使用できる。余談であるが、ハードウェアウォッチドッグは、ソフトウェアが正常に稼働している限り、ソフトウェアによって定期的にリセットされる。ウォッチドッグタイマーの期限が満了すると、例えば、誤ったソフトウェアアクセス又は他のバスの不具合によってソフトウェアが壊れたという推定の下、強制的にリセットする。各ハードウェアウォッチドッグは、対応するサブシステムだけをリセットし、他のサブシステムには影響しない。
【０１８２】
添付書類Ｂは、エラートラップ及び／又は好ましい処理機構を実行する場合のサブシステムの例示的な挙動を説明する表を提供する。
【０１８３】
サブシステムがリセットされた場合に使用され得る、一般的なデバッギング命令の他の例としては、レジスタスナップショット（例えば、サブシステムが、すべてのサブシステムレジスタのスナップショットを強制的に収集させられ得る）及びコアダンプ（例えば、サブシステムが、サブシステムメモリのスナップショットを収集するために、強制的にアボート処理部とされ得る）が挙げられる。
【０１８４】
本開示の特定の実施形態を特定の方法の具体的なステップのシーケンスの観点から説明しているが、これらの説明は、本記載のより広範な方法の例示に過ぎないものであり、具体的な適用によって、必要に応じて修正することができる点が、認識されるであろう。あるステップは、ある状況下では、不必要又は任意選択とすることができる。更には、特定のステップ又は機能性を、開示される実施形態に追加してもよく、あるいは２つ以上のステップの実行の順序を、置き換えることもできる。すべてのこのような変更形態は、本開示の範囲内に包含され、本明細書において特許請求されると見なされる。
【０１８５】
上記の詳細な説明では、様々な実施形態に適用されるような、本開示の新規の機構を示し、説明し、指摘しているが、例示された機器又はプロセスの形態及び詳細の様々な省略、置換、並びに変更を、本記載の原理から逸脱することなく当業者によって実施することができる点が理解されるであろう。上述の説明は、現時点で想到される最良の実施態様の説明である。本説明は、限定することを決して意図するものではなく、むしろ、本明細書で説明される一般的原理の例示として解釈されるべきである。本開示の範囲は、特許請求の範囲に準拠して決定されるべきである。
【０１８６】
2018081688.tif 000003
【０１８７】
2018081688.tif 000004
【図１】
2018081688.tif 000005
【図２】
2018081688.tif 000006
【図３】
2018081688.tif 000007
【図４】
2018081688.tif 000008
【図４Ａ】
2018081688.tif 000009
【図４Ｂ】
2018081688.tif 000010
【図５】
2018081688.tif 000011
【図６】
2018081688.tif 000012
【図７】
2018081688.tif 000013
【図８】
2018081688.tif 000014
【外国語明細書】
2018081688000001.pdf