(57)【特許請求の範囲】
【請求項１】
装置のロジック回路を、パッドを介して前記装置に結合されたデバイスに結合する入出力（Ｉ／Ｏ）バッファと、
前記装置のアーキテクチャ状態へのエントリに応答して、前記パッド上の値を検出し、前記パッドへ検出された前記値を提供すべく前記Ｉ／Ｏバッファをコントロールする、前記Ｉ／Ｏバッファに結合されるコントロールロジックと、を備え、
オーバーライドインジケータがアクティブなときに、前記コントロールロジックが、オーバーライド値を前記パッドへ提供すべく前記Ｉ／Ｏバッファをコントロールし、ソフトウェアドライバは前記オーバーライド値を提供する
装置。
【請求項２】
前記Ｉ／Ｏバッファに結合された構成ストレージを更に備え、
前記コントロールロジックは、検出された前記値に少なくとも部分的に基づいて、前記構成ストレージの少なくとも１つのフィールドをプログラミングする、請求項１に記載の装置。
【請求項３】
前記少なくとも１つのフィールドが、前記Ｉ／Ｏバッファの供給電圧ノードと出力ノードとの間に結合された第１のスイッチについてのコントロール値を格納する第１のフィールドを有し、前記第１のスイッチが、閉じられた場合に、プルアップインピーダンスが前記出力ノードに結合することを可能にする、請求項２に記載の装置。
【請求項４】
前記少なくとも１つのフィールドが、前記Ｉ／Ｏバッファの基準電圧ノードと、前記出力ノードとの間に結合された第２のスイッチについての第２のコントロール値を格納する第２のフィールドを有し、前記第２のスイッチが閉じられた場合に、プルダウンインピーダンスが前記出力ノードに結合することを可能にする、請求項３に記載の装置。
【請求項５】
前記少なくとも１つのフィールドは、前記Ｉ／Ｏバッファの送信機をイネーブルにすべく、イネーブル信号を格納する第３のフィールドを有する、請求項４に記載の装置。
【請求項６】
前記アーキテクチャ状態が低電力状態へのエントリを含む、請求項１に記載の装置。
【請求項７】
前記Ｉ／Ｏバッファが、
信号を受信し、前記パッドに前記信号を出力する送信機と、
前記送信機の供給電圧ノードと、出力ノードとの間にコントロール可能に結合されたプルアップ抵抗と、
前記送信機の基準電圧ノードと、前記出力ノードとの間にコントロール可能に結合されたプルダウン抵抗と、を有する、請求項１に記載の装置。
【請求項８】
前記Ｉ／Ｏバッファが、前記パッドからの第２の信号を受信し、前記ロジック回路に前記第２の信号を出力する受信機を更に含む、請求項７に記載の装置。
【請求項９】
集積回路（ＩＣ）内に形成されたプロセッサであって、
少なくとも１つのコアと、
入出力（Ｉ／Ｏ）コントローラと、
信号情報を前記プロセッサに結合された１又は複数のデバイスと通信すべく前記Ｉ／Ｏコントローラに結合された少なくとも１つの入出力（Ｉ／Ｏ）バッファと、
前記プロセッサのアーキテクチャ状態へのエントリに応答して、前記ＩＣの少なくとも１つのパッド上の値を検出し、前記少なくとも１つのパッドへ検出された前記値を提供すべく前記少なくとも１つのＩ／Ｏバッファをコントロールする、前記少なくとも１つのＩ／Ｏバッファに結合されるコントロールロジックと
を有するプロセッサと、
前記プロセッサに結合されたダイナミックランダムアクセスメモリ（ＤＲＡＭ）と
を備え、
オーバーライドインジケータがアクティブなときに、前記コントロールロジックが、オーバーライド値を前記少なくとも１つのパッドへ提供すべく前記少なくとも１つのＩ／Ｏバッファをコントロールし、ソフトウェアドライバは前記オーバーライド値を提供する
システム。
【請求項１０】
前記コントロールロジックが、検出された前記値に応答してコントロールストレージのフィールドを設定し、第１のインピーダンス及び第２のインピーダンスのうち少なくとも１つを前記少なくとも１つのＩ／Ｏバッファの出力ノードへ結合させる請求項９に記載のシステム。
【請求項１１】
前記コントロールロジックが前記値をサンプリングし、サンプリングされた前記値の状態を判断し、及び、第１のモードにおいて前記第１のインピーダンス及び前記第２のインピーダンスのうち少なくとも１つと前記少なくとも１つのＩ／Ｏバッファの出力ノードとの結合を引き起こし、第２のモードにおいて、ファームウェア又はソフトウェアドライバにより提供されたオーバーライド値に基づいて前記第１のインピーダンス及び前記第２のインピーダンスのうち少なくとも１つと前記少なくとも１つのＩ／Ｏバッファの出力ノードとの結合を引き起こす、請求項１０に記載のシステム。
【請求項１２】
前記コントロールロジックは、前記Ｉ／Ｏバッファが前記サンプリングされた値に対応する信号を出力するのを可能にすべく、前記第１のインピーダンス又は前記第２のインピーダンスと前記少なくとも１つのＩ／Ｏバッファの出力ノードとの結合を引き起こす、請求項１１に記載のシステム。
【請求項１３】
インターコネクトに結合された集積回路（ＩＣ）のパッド上の状態をサンプリングする段階であって、前記パッドは前記ＩＣのバッファに結合され、前記バッファは送信機と受信機とを有する段階と、
前記サンプリングされた状態に基づいて、前記バッファの少なくとも１つのコントロール可能なエレメントについてのコントロール値を選択する段階と、
オーバーライドインジケータがアクティブかどうかを判断し、アクティブであれば、前記バッファに関連付けられたストレージにオーバーライド値を格納し、そうでなければ前記ストレージに前記コントロール値を格納する段階と、を備える方法。
【請求項１４】
格納された前記コントロール値を使用して、前記サンプリングされた状態を維持すべく、前記バッファをコントロールする段階を更に備える請求項１３に記載の方法。
【請求項１５】
システムのファームウェアから前記オーバーライドインジケータを受信する段階を更に備える請求項１３に記載の方法。
【請求項１６】
前記状態をサンプリングする段階の前に、前記パッドをトライステートに置くよう、前記バッファをコントロールする段階を更に備える請求項１３に記載の方法。
【請求項１７】
前記ストレージは、
前記バッファの供給電圧ノードと、出力ノードとの間に結合された第１のスイッチについてのコントロール値を格納する第１のフィールドと、
前記バッファの基準電圧ノードと、前記出力ノードとの間に結合された第２のスイッチについての第２のコントロール値を格納する第２のフィールドと、
前記バッファの前記送信機についての第３のコントロール値を格納する第３のフィールドと、
前記バッファの前記受信機についての第４のコントロール値を格納する第４のフィールドと、を含む複数のフィールドを有する請求項１３に記載の方法。
【請求項１８】
第２のストレージに前記サンプリングされた状態を格納し、その後、前記サンプリングされた状態を参照する段階を更に備える請求項１３に記載の方法。
【請求項１９】
前記パッドが前記ＩＣを有するプラットフォームにおいて使用されていない場合、プルダウンインピーダンスを前記パッドに結合させるよう前記バッファをコントロールする段階を更に備える請求項１３に記載の方法。
【請求項２０】
請求項１３から１９のいずれか１項に記載の方法を実行する手段を備える装置。
【請求項２１】
コンピュータに請求項１３から１９のいずれか１項に記載の方法を実行させるプログラム。
【請求項２２】
請求項２１に記載のプログラムを格納するコンピュータ可読記録媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
現代の複数の集積回路（複数のＩＣ）は、複数のピン又は複数のパッドを介してプラットフォームの他の複数のデバイスに結合し、これらは、１又は複数の回路ボード上にルーティングされた複数のインターコネクトへの接続を介して、ＩＣをインターフェースする。電気的な入出力（Ｉ／Ｏ）パッドの競合は、パッドに結合した１より多くのデバイスが、同時に反対の値をパッドに置こうとすることになる、望ましくないＩ／Ｏパッド状態である。Ｉ／Ｏパッドの競合は、誤った動作をもたらし、ハードウェア、及び、供給電圧から接地電圧への直流（ＤＣ）短絡回路の経路に損傷を与え、スタンバイリーク電流の目立った増大をもたらし、これはバッテリ電力で動作する複数のポータブルデバイスに、特に望ましくない。
【図面の簡単な説明】
【０００２】
【図１】本発明の実施形態に係る入出力（Ｉ／Ｏ）バッファのブロック図である。
【０００３】
【図２】本発明の実施形態に係るコントロールロジックの実装のブロック図である。
【０００４】
【図３】本発明の実施形態に係るバッファのコントロール方法のフロー図である。
【０００５】
【図４】本発明の実施形態に係るバッファの１又は複数のコントロール可能なエレメントのサンプリング、生成、及びプログラミングをする場合に実行される詳細な複数の動作のブロック図である。
【図５】本発明の実施形態に係るコンピュータシステムの複数のコンポーネントのブロック図である。
【０００６】
【図６】本発明の実施形態に係るプロセッサのブロック図である。
【０００７】
【図７】本発明の実施形態に係るシステムのブロック図である。
【０００８】
【図８】本発明の別の実施形態に係るプロセッサのブロック図である。
【発明を実施するための形態】
【０００９】
多くの場合、プロセッサ又はシステムオンチップ（ＳｏＣ）等のＩＣの複数の汎用入出力（ＧＰＩＯ）双方向パッドは、プラットフォームの他の周辺デバイスの中でも、カメラ、モデム、複数のストレージ及びオーディオデバイスへの複数のインターフェースとして使用すべく構成（方向―入力又は出力、パッド状態―ハイ又はロー）され得る。一般的に、ＧＰＩＯパッドの構成（状態、方向及び強さ）が１又は複数のコントロールレジスタに格納される値を使用してプログラミングされる。これらのレジスタは、ソフトウェア／ファームウェアのフローを使用する特定のアーキテクチャ状態（例えば、リセットデアサーション、スタンバイアサーション、及び、パワーグッドアサーション）の間に上書きし得る、ハードウェアのデフォルトの値を有する。
【００１０】
典型的には、ＳｏＣファームウェアコード又はソフトウェアベースのＩ／Ｏデバイスドライバが、その特定のユースケースに依存して、Ｉ／Ｏパッドの方向、バッファの強さ、及び、スタンバイ状態を構成するであろう。しかしながら、既存のＧＰＩＯプログラミングフローは、完全に手動で行われるため、時間がかかり、エラーしがちである。そのようなプログラミングは、ボード／プラットフォームチームが製品の複数の構成を決定し、複数のＩ／Ｏパッドへ接続されるべき異なる複数のベンダの複数のデバイスを選択することから開始する。それから、ＳｏＣソフトウェアチームは、構成をデコードすべく、複数のプラットフォームチームと連携し、コードコントロールレジスタの値をＳｏＣにプログラミングされたファームウェアイメージへと手渡す。ＳｏＣスタンバイの間に誤ってプログラミングされたＩ／Ｏパッドは、電気的なパッドの競合をもたらし得て、リーク電流を上げ、バッテリ寿命を失わせる。また、そのような不正確なプログラミングは、たとえ複数の単純なＩ／Ｏ構成の変化の場合でさえも、ＳｏＣ電力がオンの間の複数の機能不全の場合にデバッグすることを困難にさせ得る。
【００１１】
複数の実施形態は、現在のアーキテクチャ状態に基づいて、Ｉ／Ｏパッド状態を検出し、正しく構成する。結果として、面倒な手動のデバッグ、最終的なハードウェアの設計の電力及び機能の相関が回避され得る。より具体的には、ＧＰＩＯパッド値、及び、方向は、スタンバイ状態のような、少なくとも複数の特定のアーキテクチャ状態の間に自律的にコントロールされ、生成され得る。技術は、プラットフォーム上のＩ／Ｏパッドのユースケースに適応的であり、アーキテクチャ上、及び電気的に正しい複数のＩ／Ｏパッド状態のみを駆動する。実施形態に係る技術は、有限状態機械（ＦＳＭ）を使用して、ハードウェアに実装され、Ｉ／Ｏコントローラに統合され得る。自動化及びハードウェアコントロールは、サンプル及びドライブスキームが適応的で正確であり、高速ターンアラウンド時間を実現することを可能とする。電気的なパッドの競合の回避により、不必要なリーク電流が除去される。本発明の実施形態を使用して、コントローラは、複数のＩ／Ｏパッドの複数の構成をインテリジェントに適応し、又は、整理する。
【００１２】
双方向ＧＰＩＯパッドは、複数のドライバを有し得る。ＳｏＣに関連して、パッドは、ＳｏＣ側又はオンボードの複数のエンドポイントデバイスにより駆動され得る。Ｉ／Ｏパッドがハイで駆動される場合、ＳｏＣは、例えばプルダウンデバイスの使用を介して、パッドをローにしようと試みてはならず、その逆も成り立つ。パッドの電気的競合がないことを確実にする方法で、１又は複数のウィークプルインピーダンスデバイスを使用して、パッドをある状態に駆動する前に、複数の実施形態は、Ｉ／Ｏパッド電圧のサンプリングをすべく動作する。
【００１３】
このように、ＧＰＩＯパッドのプログラミングへの集中的な手動の関与の必要性が回避される。簡単に上に説明されたように、一般的に、この手動プログラミングは複数のボード／プラットフォームエンジニアリングチームと複数のソフトウェアエンジニアリングチームとの間の連携を含む。一度、手動でデータシートをチェックし、複数の電気的な仕様を調和することにより、所望のパッド値がキャプチャされれば、それはＳｏＣへとプログラミングされる。いくつかのチームが、電力最適化及び機能的に安定な設定が達成されるまで連携し、複数の段階を数回反復する。このプロセスは非常に時間がかかり、異なるデバイスベンダが選択されるか、ボードの構成がわずかであっても変化する場合、繰り返される。代わりに、複数の実施形態は、ボードの構成又はデバイスの選択に関係なく、安定したＩ／Ｏパッド状態に適応する。ＳｏＣが任意のアーキテクチャ状態、例えば、システムスタンバイ状態、リセットデアサーション状態等に入る前に、Ｉ／Ｏ電圧はサンプリングされ、適切な値がパッドに駆動される。
【００１４】
ここで図１を参照すると、本発明の実施形態に係る入出力（Ｉ／Ｏ）バッファのブロック図が示される。図１に示されるように、バッファ１０は、汎用Ｉ／Ｏバッファ（ＧＰＩＯ）である。ＧＰＩＯバッファ１０は、デジタル信号によりコントロールされ得るアナログフロントエンド（ＡＦＥ）カスタム回路ブロックを有する。本明細書に説明される複数の実施形態は複数の汎用Ｉ／Ｏバッファに関するものであるが、本発明の範囲は、この点に限定されず、本明細書で説明される複数のコントロール機構は、他の複数のタイプのバッファに等しく適用するものと理解されたい。一般的に、バッファ１０は、バッファがその一部をなすＩＣの１又は複数のロジックユニットと、あるタイプのインターコネクトを介してＩＣに結合する１又は複数の他のデバイスとの間の信号情報を結合する。説明目的で、Ｉ／Ｏバッファ１０はマルチコアプロセッサ、ＳｏＣ又は他のタイプのプロセッサデバイスのようなプロセッサの一部であると仮定されたい。今度は、プロセッサは、例えば、システムの回路ボード上にルーティングされたインターコネクトを介して、別のＩＣ又はシステムの他のデバイスに結合するものと仮定されたい。
【００１５】
送信方向において、Ｉ／Ｏバッファ１０を介して通信されるべき情報は、送信機２０において送信データ（ｔｘ＿ｄａｔａ）として受信される。送信機２０は、信号を調整し、Ｉ／Ｏパッド５０を介して出力する。Ｉ／Ｏパッド５０は、任意のタイプのＩ／Ｏピン、表面実装パッド、又はインターコネクトに結合するプロセッサの任意の他のタイプの導電性要素であり得る。複数の送信通信をイネーブルとすべく、送信イネーブル信号（ｔｘ＿ｅｎａｂｌｅ）は、送信機がパッド５０上で強い論理ハイ又は論理ロー値を駆動するのを可能にすべく、送信機２０に結合される。更に示されるように、送信機２０をパッド５０に結合するＩ／Ｏライン２５に複数の特定の状態を存在させることを可能とすべく、プルアップインピーダンス３０及びプルダウンインピーダンス４０は、送信機２０に結合した出力に結合したノード４５においてライン２５に更に結合する。実施形態において、例えば、およそ２ｋΩと５０ｋΩとの間の値を有する複数のウィークプルレジスタを使用して実装され得るこれらのインピーダンスデバイスは、それぞれパッド５０をハイ又はローの論理値にプルすべく、複数のコントロール信号（それぞれ、ｗｅａｋｐｕｌｌｕｐ＿ｅｎａｂｌｅ及びｗｅａｋｐｕｌｌｄｏｗｎ＿ｅｎａｂｌｅ）を介してコントロールされる。このために、プルアップインピーダンス３０は、有効な場合に供給電圧ノード（不図示）と出力ノードとの間に切り替え可能に結合され得る（例えば、金属酸化物半導体電界効果トランジスタ（ＭＯＳＦＥＴ）又は他のタイプのスイッチを介して）。そして、プルダウンインピーダンス４０は、イネーブルの場合、基準電圧ノード（典型的には、接地）と出力ノードとの間に切り替え可能に結合され得る（例えば、ＭＯＳＦＥＴ、又は他のタイプのスイッチを介して）。
【００１６】
更に図１に示されるように、Ｉ／Ｏバッファ１０は、パッド５０を介してシステムの別のコンポーネントからの入力信号情報の受信を可能にする。より具体的には、入力情報は、受信データの形式（ｒｘ＿ｄａｔａ）の入力信号情報をプロセッサの所与の１又は複数のロジックユニットに提供する受信機６０を通じて、結合する。受信機６０は、別のコントロール信号（ｒｘ＿ｅｎａｂｌｅ）により、受信機がパッド５０からの入力パスを提供することを可能とすべく、イネーブルにされる。図１の実施形態においてこのような高レベルで示されるが、本発明の範囲はこの点に限定されず、バッファの複数のバリエーションが可能であるものと理解されたい。
【００１７】
ここで図２を参照すると、本発明の実施形態に係るコントロールロジックの実装のブロック図が示される。図２に示されるように、回路１００は、プロセッサをシステムの中の１又は複数の他のデバイスへ結合する、Ｉ／Ｏコントローラの一部のような、プロセッサの一部である。一般的には、動作の機能モードについて、プロセッサの任意のタイプのロジックユニット（コア、固定された機能ユニット又は他のＩＯ信号のジェネレータ若しくはコンシューマのような）であり得るロジック回路１１０が存在する。多くの場合、回路１１０は動作の通常機能モードの間、情報を出力又は受信しようとする。従って、複数の信号は、ロジック回路１１０と、バッファコントロールロジック１３０との間を通信し、バッファコントロールロジック１３０は、回路１１０と、図２の実施形態においてＧＰＩＯバッファであるＩ／Ｏバッファ１４０との間に結合される。一般的に、ロジック１３０及びバッファ１４０は、プロセッサのアンコア部分の一部であり得る、プロセッサのＩ／Ｏコントローラの一部であり得る。
【００１８】
本明細書に更に説明されていくように、バッファコントロールロジック１３０は、ロジック回路１１０と、Ｉ／Ｏパッド１５０を介してプロセッサに結合された別のデバイスとの間の信号通信パスを提供する動作の様々なモードで動作し得る。動作の他のモード、例えば、パワーオン、リセット、及びスタンバイ／サスペンド状態等の、所与のアーキテクチャ状態又はマイクロアーキテクチャ状態において、動作のモードに依存して、情報の様々なソースの１つに基づいて、Ｉ／Ｏライン１４５において特定の値を有すべく、バッファコントロールロジック１３０はバッファ１４０をコントロールし得る。従って、Ｉ／Ｏリーク電流を可能な限り最小にすべく、ＳｏＣが所与のアーキテクチャ状態又はマイクロアーキテクチャ状態に入り、電気的なパッドの競合を回避する場合、複数の実施形態は、Ｉ／Ｏパッドの構成を決定するプロセスを自動化する。
【００１９】
スタンバイモード又はサスペンドモードにおいて場合によっては、ソフトウェア又はファームウェアにコントロールされた値は、代替的なコントロールパス１２０を介して提供され得る。特定のアーキテクチャ状態の他の場合において、電気的競合が生じないように、バッファコントロールロジック１３０が、Ｉ／Ｏパッド１５０における値を決定し、その値を再現するための信号を生成すべくＩ／Ｏバッファ１４０をコントロールするよう、サンプリングベースのアプローチが使用され得る。
【００２０】
更に図２に示されるように、ハードウェア、ファームウェア、及び／又はソフトウェア又はそれらの複数の組み合わせであり得る、バッファコントロールロジック１３０は、様々な構成のロジックで形成される。これらのロジックは、パッド１５０の状態（及び／又は信号ライン１４５の状態）をサンプリングするよう構成される、サンプルロジック１３２を含む。バッファコントロールロジック１３０は、プロセッサが動作する所与のモードを決定し、適切な値がパッド１５０に提供されることを可能にすべく、そのような情報をバッファ１４０への１又は複数のコントロール入力のための適切なコントロール値を決定するようにコントロール値生成ロジック１３８に提供する、モードコントロールロジック１３４を更に含む。また、更に示されるように、構成ストレージ１３６も、バッファコントロールロジック１３０に含まれ得る。本明細書で説明されるように、そのような構成ストレージは、バッファ１４０についての１又は複数のコントロール可能な値についてのコントロール情報をそれぞれ格納する複数のフィールドを含み得る。
【００２１】
バッファ１４０について、図１のバッファ１０と同様に構成される。従って、送信機１４２は、ＩＯパッド１５０に次に結合する信号ライン１４５上の出力ノード１４３に結合されたプルアップインピーダンス１４６及びプルダウンインピーダンス１４８を有することが示される。
【００２２】
更に図２に示されるように、バッファコントロールロジック１３０は、様々なアーキテクチャ及びマイクロアーキテクチャ状態情報信号を更に受信し得る。示された実施形態において、アーキテクチャ状態は、パワーグッドアサーション状態、リセットデアサーション状態、及びパワーボタンサイクル状態を含む。例示の実施形態において、バッファコントロールロジック１３０は、これらの複数の状態において、パッド１５０への特定の値の提供を引き起こし得る。勿論、追加的なアーキテクチャ状態も存在し得、特定の他の複数の値のパッド１５０への提供を引き起こし得る。更に、特定のマイクロアーキテクチャ電力状態は、処理中に生じ得、これらの状態に関する情報も、バッファコントロールロジック１３０へ提供され得る。次に、この情報も、バッファコントロールロジック１３０にパッド１５０において適切な値を提供させ得る。図２の実施形態においてこの特定の実装例で示されているが、本発明の範囲はこの点に限定はされないものと理解されたい。例えば、図１の回路は単一のＩ／Ｏバッファに関連している。類似の回路がそれぞれそのようなバッファに提供され得、さもなければ、対応するコントロールレジスタを有する集中コントロールロジックが全てのバッファを収容すべく提供され得る。
【００２３】
サンプル及びドライブスキームは、Ｉ／Ｏパッド１５０を構成すべくスタンバイモード中に使用され得る。機能モード及び他のアーキテクチャ状態において、ロジック１３０は、例えば、コントロールビットのオーバーライド又はバイパスを使用するような、ソフトウェア／ファームウェア駆動アプローチ又はレガシーアプローチを使用する柔軟性を提供する。実施形態において、ロジック１３０は、アクティブ電流の減少、及び信号の整合性の改善の両方に役立つように、アクティブモードの間、パッドからウィークプル（アップ／ダウン）インピーダンスをディセーブルし得る。ロジック１３０は、デバイスが使用されるべきアーキテクチャ状態の変化においてデバイスを非常に低いレイテンシで再度イネーブルにするため、そのようなコントロールが実現できる。
【００２４】
ここで図３を参照すると、本発明の実施形態に係るバッファのコントロール方法のフロー図が示される。図３に示されるように、方法２００は、バッファに関連付けられたバッファコントロールロジックを少なくとも部分的に使用して実装され得る。方法２００の説明の目的のために、バッファが、送信方向のみで、受信方向のみで、又は送信／受信方向の組み合わせのいずれかで別のデバイスとアクティブに通信するよう、デバイス（プロセッサ又はＳｏＣ等）は、通常機能モードで動作するものと仮定する（ブロック２１０）。動作の送信モードについて、出力信号情報は、Ｉ／Ｏバッファを通じて結合すべく、デバイスの所与のロジックユニットから受信される。同様に動作の受信モードについて、入力信号情報は、Ｉ／Ｏバッファを通じてデバイスの所与のロジックユニットへ提供される。従って、この通常動作モードにおいて、バッファコントロールロジックは、ロジックユニットから受信されたままの信号情報がＩ／Ｏバッファを通過するのを可能とすべく、一般的に動作し、その逆も成り立つ。複数のウィークプルデバイスは、可能な限り最小のレイテンシを有するアクティブモードに入る場合、機能モードの間、ディセーブルにされ、競合及び信号の整合性の問題を回避することに留意されたい。
【００２５】
次に、状態の変化のインジケーションが受信されたかどうかが判断される（ひし形２２０）。そのような状態の変化は、アーキテクチャ状態又はマイクロアーキテクチャ状態の変化の１又は複数に対応し得る。一般的に、アーキテクチャ状態の変化は、システム全体に可視な全デバイスの状態の変化に対応する。一方、次に、マイクロアーキテクチャ状態の変化は、所与のコア又はデバイスの他の部分についての電力状態の変化のようなデバイスの一部のみに関する変化であり得る。そのように、マイクロアーキテクチャ状態において、それぞれのパッド又は複数のパッド状態の複数のクラスタは、コントローラの状態に依存して異なり得る。全システムに対して可視であるグローバルアーキテクチャ状態は、マイクロアーキテクチャパッド状態値を、本明細書に説明されるロジックを使用してオーバーライドし得ることに留意されたい。
【００２６】
そのようなインジケーションが受信されない場合、通常動作がブロック２１０で継続する。さもなければ、状態の変化が生じることが決定される場合、コントロールは、対応するＩ／Ｏパッドに存在する値がサンプリングされるブロック２３０に移る。実施形態において、値はＩ／Ｏバッファの受信機を介してサンプリングされ得る。本明細書に説明されるコントロールロジックを使用して、複数のパッド状態は、特定のアーキテクチャ状態において柔軟にサンプリングされ得、又は定期的にサンプリングされ得る。
【００２７】
次に、自律的コントロールモードがオーバーライドされるべきかどうかが判断される（ひし形２４０）。そのような自律的コントロールモードは、バッファコントロールロジックが、Ｉ／Ｏパッドに駆動される適切な値を自動的に決定する状況で実行され得る。このモードがオーバーライドされた場合には、コントロールは、構成ストレージのフィールドに対する１又は複数のコントロール値が、示される状態についての特定のデフォルトのコントロール値に基づいて設定され得るブロック２６０に移る。すなわち、自律モードがオーバーライドされたとき、ソフトウェア及び／又はファームウェアにコントロールされた値は、構成ストレージに提供され得る。この構成ストレージは、Ｉ／Ｏバッファをコントロールすべく次に使用される、複数のコントロール値を格納する１又は複数のフィールドを含むことに留意されたい。さもなければ、自律的コントロールモードがオーバーライドされないことが決定された場合に、コントロールは、構成ストレージフィールドについての１又は複数のコントロール値がサンプリングされた値に基づいて設定され得る、ブロック２５０に移る。
【００２８】
いずれの場合においても、次に、コントロールは、構成ストレージから取得されたコントロール値がＩ／Ｏバッファへ駆動され得る、ブロック２７０に移る。Ｉ／Ｏバッファにこれらのコントロール信号を駆動することにより、Ｉ／Ｏパッドにおいて所望の値が取得され得る。複数の実施形態において、より具体的には、この所望の値はこのパッドにおいてサンプリングされた値に対応し得る。このように、電気的競合、及び／又は、望ましくないリークパスは、例えば、スタンバイモード、又は他の低電力モードにおいて、電力消費の減少を可能とすることで、回避される。図３の実施形態においてこのような高レベルで示されるが、本発明の範囲はこの点に限定されないことを理解されたい。２００の方法は、本明細書に説明されるようにコントロールされるべく、各バッファについて独立に実行し得ることに留意されたい。
【００２９】
ここで、図４を参照すると、本発明の実施形態に係るバッファの１又は複数のコントロール可能なエレメントのサンプリング、生成、及びプログラミングにおいて実行される動作を詳述するブロック図が示される。図４に示されるように、方法３００は、プロセッサ又はＳｏＣのＩ／ＯコントローラのロジックユニットのようなＩ／Ｏバッファに関連付けられたロジックにより実行され得る。
【００３０】
図４に示されるように、方法３００は、最初にサンプリング及びサンプリングに基づく１又は複数のコントロール値の決定をする（ブロック３１０）。より具体的には、パッドに与えられる値を準備、及び、サンプリングし、次に、このサンプリングされた値に基づいてコントロール値を決定すべく、様々な段階が実行され得る。実施形態において、まず、パッドは、プロセッサがパッドにあらゆる状態を駆動していないことを確実にすべく、トライステートにされ得る（ブロック３１２）。実施形態において、このトライステートは、Ｉ／ＯバッファのＴＸイネーブルコントロールピンが確実にアサートされていないことをチェックすることにより実現され得る。次にブロック３１４において、パッドの状態は、サンプリングされ得る。実施形態において、値を得るべく、Ｉ／Ｏバッファの受信パスを使用して、サンプリングが実行され得る。この値は、パッド状態を決定するＲＸ入力値として、レジスタに格納され得る。それから、この値は、後の参照のために登録され得る。
【００３１】
様々なコントロール値はパッドの状態に基づいて決定され得る。示される例において、サンプリングがロー値を示す場合、プルダウンコントロール可能なエレメントはイネーブルにされ得る（ブロック３１６）。代わりに、ハイ値が示された場合、プルアップコントロール可能なエレメントはイネーブルにされ得る（ブロック３１８）。さらに、所与のシステム構成において、パッドが使用されていない（所与のプラットフォームにおいて、パッドにアクティブな接続が存在しないことを意味する）場合、デフォルトのスタンバイ状態がイネーブルにされる（ブロック３１９）。実施形態において、スタンバイ状態は、プルダウンコントロール可能なエレメントをイネーブルにし、ウェイクサポートについてのＩ／Ｏバッファの受信機をイネーブルにすることにより実装され得る。このように、パッドの可能な最も低いリーク構成が、実現される。
【００３２】
次に、決定されたコントロール値に基づいて、可能なパッド値状態が生成され得る（ブロック３２０）。決定されたコントロール値に基づいて、パッド値ポリシーは、ブロック３２２で設定され得る。実施形態において、２ビットフィールドが、方向と値との両方を示すべく、パッド毎に提供され得る。そのような実施形態において、最上位ビットが、パッドが入力パッドとなるようにコントロールされているか、出力パッドとなるようにコントロールされているかを示し、最下位ビットが、パッド上の値がハイ値であるべきか、ロー値であるべきかを示す。以下の表１は、実施形態に係るＩ／Ｏパッド値ポリシーについての例示の値を示す。
【表１】
0006403764.tif 000002
【００３３】
次にブロック３２４において、オーバーライド又はバックアップオプションが可能とされるかどうかが決定される。そのようなオーバーライド又はバックアップオプションは、オーバーライドが望まれていることを示すべく実行するソフトウェア又はファームウェアによりコントロール可能であり得る。アクティブなオーバーライドインジケータの提供に加えて、デフォルトのコントロール値が、例えば適切なストレージから取得され得る。それから、ブロック３２６において、最終パッド構成値が１又は複数のバッファコントロールレジスタに対しマッピングされ得る。異なる実施形態において、複数のコントロールレジスタの様々な複数の量が存在し得る。いくつかの場合において、バッファのそれぞれのコントロール可能なエレメントの複数のフィールドを含む、単一のコントロールレジスタが存在する。一方、他の複数の実装において、所与のコントロール可能なエレメントに関連付けられた少なくとも１つのフィールドをそれぞれが含む複数の構成レジスタが提供され得る。
【００３４】
なおも図４を参照すると、次にブロック３３０において、パッドコントロールレジスタは、最終パッド構成値を使用して、プログラミングされ得る。図４の例において、複数のフィールド、即ち、送信イネーブルフィールド３３２、受信イネーブルフィールド３３４、プルダウンイネーブルフィールド３３６、及びプルアップイネーブルフィールド３３８を含む、単一のパッドコントロールレジスタの存在を仮定する。実施形態において、これらのフィールドは、図１のＩ／Ｏバッファに提供される信号をコントロールする複数のコントロール値を格納する。従って、最終的にマッピングされた構成値に基づいて、パッドコントロールレジスタのこれらのフィールドがプログラミングされる。
【００３５】
結果として、これらの値は、バッファが所望の状態にあるのを可能とすべく、バッファの対応するコントロール可能なエレメントをコントロールすべく送られ得る。例えば、スタンバイモード又は別の低電力モードの場合、オーバーライド又はバックアップモードが選択されていないと仮定すると、Ｉ／Ｏバッファは、パッドにサンプリングされたものと同じ値を示すべく構成され得る。図４の実施形態において、この高レベルにおいて示されるが、本発明の範囲はこの点に限定されないことを理解されたい。
【００３６】
複数の実施形態は、Ｉ／Ｏ構成レジスタをプログラミングする際に人間により導入される複数のエラーを排除して、ＳｏＣにとって市場に出す時間を減らすのに役立つ。加えて、Ｉ／Ｏバッファパッドプログラミングは、ＧＰＩＯ回路バッファ設計に適合し、利用できる可能な状態の値を制限すべく調整される。本明細書に説明されるように、電力管理ロジックをＩ／Ｏコントローラに提供することにより、Ｉ／Ｏパッドの競合に起因する電力損失が回避され得る。
【００３７】
ここで図５を参照すると、本発明の実施形態に係るコンピュータシステムにおいて存在する複数のコンポーネントのブロック図が、示される。図５に示されるように、システム４００は、任意の組み合わせのコンポーネントを含み得る。これらのコンポーネントは、コンピュータシステムに適合される、複数のＩＣ、それらの部分、別個の電子デバイス、又は他のモジュール、ロジック、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせとして、又は異なるようにコンピュータシステムの筐体の中に組み込まれたコンポーネントとして、実装され得る。図５のブロック図は、コンピュータシステムの多くのコンポーネントの高レベルの図を示すことが意図されることにも留意されたい。しかしながら、他の複数の実装において、いくつかの示されるコンポーネントは省略され得て、追加の複数のコンポーネントが存在してよく、示される複数のコンポーネントの異なる配置がなされてよいことが理解される。
【００３８】
図５に示されるように、一実施形態において、プロセッサ４１０は、マイクロプロセッサ、マルチコア・プロセッサ、マルチスレッド・プロセッサ、超低電圧プロセッサ、埋め込みプロセッサ、又は他の公知の処理要素を含む。示された実装において、プロセッサ４１０は、システム４００の様々なコンポーネントの多くとの通信についてのメイン処理ユニット及び中央ハブとして動作する。一例として、プロセッサ４００は、システムオンチップ（ＳｏＣ）として実装される。特定の実施例として、プロセッサ４１０は、ｉ３、ｉ５、ｉ７等のインテル（登録商標）アーキテクチャコア（登録商標）ベースのプロセッサ又はカリフォルニア州サンタクララのインテルコーポレーションから入手可能な別のこのようなプロセッサであってよい。しかしながら、カリフォルニア州サニーベールのＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｉｎｃ．（ＡＭＤ）から入手可能なもの等の他の複数の低電力プロセッサ、ＡＲＭ  Ｈｏｌｄｉｎｇｓ，Ｌｔｄ．若しくは、それらの顧客から入手可能なＡＲＭベースの設計、又は、カリフォルニア州サニーベールのＭＩＰ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ｉｎｃ．若しくはそれらの複数のライセンシ、若しくは複数の利用者のＭＩＰＳベースの設計は、アップル社製のＡ５プロセッサ、クアルコム社製のスナップドラゴン（登録商標）プロセッサ、又はＴＩ社製のＯＭＡＰ（登録商標）プロセッサ等の他の実施形態において代わりに存在し得る。一実装における、プロセッサ４１０のアーキテクチャ及び処理に関する特定の詳細が、以下に更に説明されるであろう。
【００３９】
一実施形態において、プロセッサ４１０はシステムメモリ４１５と通信する。説明に役立つ例として、所与の量のシステムメモリを提供すべく、システムメモリ４１５は、複数のメモリデバイス又は複数のモジュールを介して実装される。一実施形態において、メモリは、ＪＥＤＥＣ  ＪＥＳＤ  ２０９−２Ｅ（２００９年４月に発行された）による現行のＬＰＤＤＲ２規格、又は、帯域幅を増大すべくＬＰＤＤＲ２に拡張を提供するであろう、ＬＰＤＤＲ３又はＬＰＤＤＲ４と称されることとなる次世代のＬＰＤＤＲ規格等の電子機器技術評議会（ＪＥＤＥＣ）の低電力ダブルデータレート（ＬＰＤＤＲ）ベースの設計に従って動作可能である。例として、２／４／８／１２／１６ギガバイト（ＧＢ）のシステムメモリが存在してよく、１又は複数のメモリインターコネクトを介してプロセッサ４１０に結合されることが出来る。様々な実装において、個々の複数のメモリデバイスは、シングルダイパッケージ（ＳＤＰ）、デュアルダイパッケージ（ＤＤＰ）、又はクァッドダイパッケージ（ＱＤＰ）等、異なるパッケージタイプであり得る。いくつかの実施形態において、これらのデバイスは、より低いプロファイルソリューションを提供すべく、マザーボードに直接的に半田付けされる。一方、他の複数の実施形態において、複数のデバイスは、次に所与のコネクタによりマザーボードに結合する１又は複数のメモリモジュールとして構成される。
【００４０】
データ、複数のアプリケーション、及び１又は複数のオペレーティングシステム等の情報の永続的なストレージを提供すべく、大容量ストレージ４２０もまた、プロセッサ４１０に結合し得る。様々な実施形態において、システム応答性を改善するためだけでなく、より薄くより軽いシステム設計を可能にするために、この大容量ストレージはＳＳＤを用いて実装されてよい。しかしながら、他の複数の実施形態において、大容量ストレージは、複数のシステムのアクティビティの再起動において高速の電力上昇が生じ得るように、パワーダウンイベントの間、コンテキスト状態及び他のそのような情報の不揮発性ストレージを可能とするＳＳＤキャッシュとして動作するより小さい量のＳＳＤストレージとともに、ハードディスクドライブ（ＨＤＤ）を使用して主に実装され得る。また、図５に示されるように、フラッシュデバイス４２２は、例えばシリアル周辺インターフェース（ＳＰＩ）を介して、プロセッサ４１０に結合されてよい。このフラッシュデバイスは、システムの他のファームウェアだけでなく、基本入出力ソフトウェア（ＢＩＯＳ）を含む、システムソフトウェアの不揮発性ストレージを提供し得る。
【００４１】
様々な入出力（Ｉ／Ｏ）デバイスがシステム４００中に存在し得る。様々な実施形態において、少なくともいくつかのデバイスは本明細書に最初に説明されるようにコントロールされる複数のＩ／Ｏバッファを介してプロセッサ４１０に結合され得る。筐体蓋部内に構成される高解像度のＬＣＤ又はＬＥＤパネルであり得るディスプレイ４２４が、図５の実施形態において具体的に示される。このディスプレイパネルは、例えば、ディスプレイパネル上に外部から適合されるタッチスクリーン４２５を提供してもよく、このタッチスクリーンとのユーザの相互作用を介して、複数のユーザの入力が、例えば、情報の表示、及び情報のアクセス等に関する所望の複数の動作を可能とすべく、システムに提供され得る。一実施形態において、ディスプレイ４２４は、高性能グラフィックスインターコネクトとして実装されることができるディスプレイインターコネクトを介してプロセッサ４１０に結合されてよい。タッチスクリーン４２５は、実施形態において、Ｉ２Ｃインターコネクトであり得る、別のインターコネクトを介して、プロセッサ４１０に結合され得る。図５に更に示されるように、タッチスクリーン４２５に加えて、筐体内で構成され得、タッチスクリーン４２５と同一のＩ２Ｃインターコネクトに結合もされ得るタッチパッド４３０を介して、タッチによるユーザの入力も生じ得る。
【００４２】
知覚コンピューティング又は他の目的のために、様々なセンサが、システム内に存在してよく、異なる態様でプロセッサ４１０に結合されてよい。特定の慣性センサ及び環境センサが、例えば、Ｉ２Ｃインターコネクトを介して、センサハブ４４０を通じてプロセッサ４１０に結合し得る。図５に示される実施形態において、これらのセンサは、加速度計４４１、環境光センサ（ＡＬＳ）４４２、コンパス４４３、及びジャイロスコープ４４４を含み得る。他の複数の環境センサは、いくつかの実施形態において、システム管理バス（ＳＭバス）を介してプロセッサ４１０に結合する１又は複数の熱センサ４４６を含んでよい。
【００４３】
プラットフォームにおいて存在する様々な複数の慣性センサ及び複数の環境センサを使用して、多数の異なるユースケースが実現され得る。これらのユースケースは、知覚コンピューティングを含む先進的な計算処理を可能とし、また、電力管理／バッテリ寿命、セキュリティ、及びシステム応答性に関する強化も可能とする。
【００４４】
例えば、電力管理／バッテリ寿命の問題に関して、環境光センサからの情報に少なくとも部分的に基づいて、プラットフォームの位置における複数の環境光の状態が判断され、従って、ディスプレイの強度がコントロールされる。従って、ディスプレイを動作させる際に消費される電力は、複数の特定の光の条件において減少される。
【００４５】
また、図５に示されるように、様々な周辺デバイスが、ローピンカウント（ＬＰＣ）インターコネクトを介してプロセッサ４１０に結合し得る。示される実施形態において、様々なコンポーネントがエンベデッドコントローラ４３５を通じて結合され得る。そのような複数のコンポーネントは、（例えば、ＰＳ２インターフェースを介して結合される）キーボード４３６、ファン４３７、及び熱センサ４３９を含み得る。いくつかの実施形態において、タッチパッド４３０もＰＳ２インターフェースを介してＥＣ４３５に結合し得る。加えて、２００３年１０月２日付のトラステッドコンピューティンググループ（ＴＣＧ）ＴＰＭ仕様書、バージョン１．２に係るトラステッドプラットフォームモジュール（ＴＰＭ）４３８のようなセキュリティプロセッサも、このＬＰＣインターコネクトを介して、プロセッサ４１０に結合し得る。しかしながら、本発明の範囲はこの点に限定はされず、セキュアな処理及びセキュアな情報の格納は、セキュリティ・コプロセッサ内のスタティックランダムアクセスメモリ（ＳＲＡＭ）等の別の保護された位置にあり得、セキュアエンクレーブ（ＳＥ）プロセッサモードによって保護された場合にのみ復号化される複数の暗号化されたデータブロブとしてであり得る。
【００４６】
システム４００は、無線を含む様々な方法で、複数の外部デバイスと通信出来る。図５に示される実施形態において、特定の無線通信プロトコルのために構成された無線機に各々が対応できる様々な無線モジュールが存在する。近距離のような短距離の無線通信についての一態様は、一実施形態においてＳＭバスを介してプロセッサ４１０と通信し得る、近距離無線通信（ＮＦＣ）ユニット４４５を介してであってよい。このＮＦＣユニット４４５を介して、互いに極めて接近している複数のデバイスが通信できることに留意されたい。例えば、ユーザは、システム４００が、（例えば）ユーザのスマートフォン等の別のポータブルデバイスと通信させることを、２つのデバイスを密接な関係で一緒に適応させることを介して可能とし、識別情報、支払い情報等の情報、画像データ等のデータの転送を可能とすることが出来る。無線電力転送が、ＮＦＣシステムを使用して実行されてもよい。
【００４７】
本明細書に説明されるＮＦＣユニットを使用して、複数のユーザは、１又は複数のそのようなデバイスの複数のコイルの間の結合を利用することにより、（近距離無線通信及び無線電力転送（ＷＰＴ）等の）近距離フィールド結合機能のために、左右で複数のデバイスを押し付け、並べて複数のデバイスを置くことが出来る。より具体的には、複数の実施形態は、複数のコイルのより良好な結合を提供すべく、戦略的に成形及び配置されたフェライト材料の複数のデバイスを提供する。システムの共通の共鳴周波数を可能とすべく、各コイルは、システムの抵抗性、容量性、又は他の特徴とともに選択され得る、コイルに関連付けられたインダクタンスを有する。
【００４８】
図５に更に示されるように、追加の複数の無線ユニットは、ＷＬＡＮユニット４５０及びブルートゥース（登録商標）ユニット４５２を含む他の複数の短距離無線エンジンを含むことが出来る。ＷＬＡＮユニット４５０を使用して、所与のＩｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ（ＩＥＥＥ）８０２．１１規格に従ってＷｉ−Ｆｉ（登録商標）通信が実現され得、ブルートゥース（登録商標）ユニット４５２を介して、ブルートゥース（登録商標）プロトコルを介した短距離通信が生じ得る。これらのユニットは、例えば、ＵＳＢリンク又は万能非同期送受信機（ＵＡＲＴ）リンクを介して、プロセッサ４１０と通信してよい。さもなければ、これらのユニットは、例えば、仕様書バージョン３．０ベース（２００７年１月１７日に発行された）のＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）仕様書に係る、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（登録商標）（ＰＣＩｅ（登録商標））プロトコル、又は、シリアルデータ入出力（ＳＤＩＯ）規格等の別のこのようなプロトコルによるインターコネクトを介して、プロセッサ４１０に、結合してよい。勿論、１又は複数のアドインカード上に構成され得る、これらの周辺デバイスの間の実際の物理的接続は、マザーボードに適合される複数のＮＧＦＦコネクタによることも出来る。
【００４９】
加えて、（例えば、セルラープロトコル又は他の無線広域プロトコルによる）無線広域通信は、次に加入者識別モジュール（ＳＩＭ）４５７に結合し得るＷＷＡＮユニット４５６を介して生じ得る。  加えて、位置情報の受信及び使用を可能にするために、ＧＰＳモジュール４５５が存在してもよい。図５に示される実施形態において、ＷＷＡＮユニット４５６、及び、カメラモジュール４５４等の統合キャプチャデバイスは、ＵＳＢ２．０若しくは３．０リンク等の所与のＵＳＢプロトコル、又はＵＡＲＴ若しくはＩ２Ｃプロトコルを介して、通信し得ることに留意されたい。また、これらのユニットの実際の物理的接続は、マザーボード上に構成されたＮＧＦＦコネクタに対するＮＧＦＦアドインカードの適合を用いることができる。
【００５０】
統合カメラモジュール４５４は、蓋に組み込まれ得る。一例として、このカメラは、例えば、少なくとも２．０メガピクセル（ＭＰ）、及び、６．０ＭＰへ、及びそれを超える解像度に拡張する解像度を有する、高解像度カメラであり得る。
【００５１】
複数の音声入力及び出力を提供すべく、高解像度オーディオ（ＨＤＡ）リンクを介してプロセッサ４１０に結合し得るデジタル信号プロセッサ（ＤＳＰ）４６０を介して、オーディオプロセッサは、実装され得る。同様に、ＤＳＰ４６０は、筐体内に実装されてよい複数の出力スピーカ４６３に次に結合してよい統合符号復号機（ＣＯＤＥＣ）及びアンプ４６２と通信してよい。同様に、システム内の様々な処理の音声で起動されるコントロールを可能とすべく、複数の高品質音声入力を提供するため、アンプ及びＣＯＤＥＣ４６２は、実施形態において、（デジタルマイクアレイ等の）デュアルアレイマイクを介して実装され得るマイク４６５から音声入力を受信すべく結合され得る。オーディオ出力は、アンプ／ＣＯＤＥＣ４６２からヘッドフォンジャック４６４に提供され得ることにも留意されたい。図５の実施形態において、これらの特定のコンポーネントにより示されるが、本発明の範囲は、この点に限定されないことを理解されたい。
【００５２】
いくつかの実施形態において、プロセッサ４１０は、外部電圧レギュレータ（ＶＲ）、及び複数の完全統合電圧レギュレータ（複数のＦＩＶＲ）と称される、プロセッサダイの内部に統合される複数の内部電圧レギュレータにより電力供給され得る。グループ内の複数のコンポーネントのみにＦＩＶＲにより、電力が制御され、供給されるよう、プロセッサにおける複数のＦＩＶＲの使用は、複数のコンポーネントを別々の電源プレーンへ分類することを可能とする。電力管理の間、プロセッサが特定の低電力状態へと置かれた場合、１つのＦＩＶＲの所与の電源プレーンは、パワーダウン又はオフにされ得る。一方、別のＦＩＶＲの別の電源プレーンは、アクティブのままにされるか、又は完全に電力供給される。
【００５３】
複数の実施形態は、サーバプロセッサ、デスクトッププロセッサ、モバイルプロセッサ等を含む様々な市場のプロセッサに実装され得る。ここで図６を参照すると、本発明の実施形態に係るプロセッサのブロック図が示される。図６に示されるように、プロセッサ５００は、複数のコア５１０ａ−５１０ｎを有する、マルチコアプロセッサであり得る。一実施形態において、そのようなコアそれぞれは、独立した電力の領域にあり得、ワークロードに基づいて、アクティブ状態、及び／又は最大性能状態等の様々なアーキテクチャ状態へ入る、及びそこから抜けるよう構成され得る。様々なコアが、インターコネクト５１５を介して、様々なコンポーネントを含むシステムエージェント又はアンコア５２０に結合され得る。示されるように、アンコア５２０は、最終レベルキャッシュであり得る、共有キャッシュ５３０を含み得る。加えて、アンコアは、統合メモリコントローラ５４０、様々なインターフェース５５０、及びパワーコントロールユニット５５５を含み得る。様々な実施形態において、パワーコントロールユニット５５５は、本発明の実施形態に係るバッファコントロールロジック５５９を含み得る。このロジックを使用して、複数の異なるインターフェースに結合されたプロセッサの様々なパッドが、電気的競合を回避する状態にコントロールされ得る。他の複数の実施形態において、このコントロールロジックは、複数のインターフェースのＩ／Ｏコントローラ中に実装され得ることを理解されたい。
【００５４】
更に図６を参照すると、プロセッサ５００は、例えばメモリバスを介して、システムメモリ５６０と通信してよい。加えて、複数のインターフェース５５０によって、複数の周辺デバイス、大容量ストレージ等の様々なオフチップコンポーネントへの接続がされ得る。そのような複数のインターフェースは、本明細書に説明されるようにコントロールされる複数のＧＰＩＯバッファを含み得る。図６の実施形態においてこの特定の実装例により示されるが、本発明の範囲はこの点に限定されない。
【００５５】
複数の実施形態は、多数の異なるシステムタイプにおいて実装され得る。ここで図７を参照すると、本発明の実施形態に係るシステムのブロック図が示される。図７に示されるように、マルチプロセッサシステム６００は、ポイントツーポイントインターコネクトシステムであり、ポイントツーポイントインターコネクト６５０を介して結合される第１のプロセッサ６７０及び第２のプロセッサ６８０を備える。図７に示されるように、プロセッサ６７０及び６８０の各々は、複数の第１及び第２のプロセッサコア（即ち、プロセッサコア６７４ａ及び６７４ｂ並びにプロセッサコア６８４ａ及び６８４ｂ）を有する、マルチコアプロセッサであり得る。しかし、潜在的にさらにより多数のコアが複数のプロセッサ中に存在し得る。それぞれのプロセッサは、本明細書で説明されるように、スタンバイ又は他のアーキテクチャ状態の間、電気的競合を回避すべく、ピン状態を自律的にコントロールすべく、ＰＣＵ又は他のロジックを有し得る。
【００５６】
図７をなお参照すると、第１のプロセッサ６７０は、メモリコントローラハブ（ＭＣＨ）６７２、及び、ポイントツーポイント（Ｐ−Ｐ）インターフェース６７６及び６７８を更に含む。同様に、第２のプロセッサ６８０は、ＭＣＨ６８２、並びに、Ｐ−Ｐインターフェース６８６及び６８８を含む。図７に示されるように、ＭＣＨ６７２及び６８２は複数のプロセッサをそれぞれのメモリ、即ち、メモリ６３２、及び、メモリ６３４に結合する。これらは、それぞれのプロセッサにローカルに取り付けられたシステムメモリ（例えば、ＤＲＡＭ）の一部であり得る。第１のプロセッサ６７０及び第２のプロセッサ６８０は、それぞれＰ−Ｐインターコネクト６６２及び６６４を介してチップセット６９０に結合され得る。図７に示されるように、チップセット６９０はＰ−Ｐインターフェース６９４及び６９８を含む。
【００５７】
更に、チップセット６９０は、Ｐ−Ｐインターコネクト６３９により、チップセット６９０を高性能グラフィックエンジン６３８と結合するインターフェース６９２を含む。次に、チップセット６９０はインターフェース６９６を介して第１のバス６１６に結合され得る。図７に示されるように、様々な入出力（Ｉ／Ｏ）デバイス６１４は、第１のバス６１６を第２のバス６２０に結合するバスブリッジ６１８と共に第１のバス６１６に結合され得る。一実施形態において、例えば、キーボード／マウス６２２、通信デバイス６２６、及び、コード６３０を含み得るディスクドライブ、又は他の大容量ストレージデバイス等のデータストレージユニット６２８を含む、様々なデバイスが、第２のバス６２０に結合され得る。更に、オーディオＩ／Ｏ６２４は、第２のバス６２０に結合され得る。複数の実施形態は、スマートセルラーテレフォン、タブレット型コンピュータ、ネットブック、ウルトラブック（登録商標）、等の複数のモバイルデバイスを含む他のタイプのシステムに組み込まれ得る。
【００５８】
ここで、図８を参照すると、本発明の別の実施形態に係るプロセッサのブロック図が示される。図８の実施形態において、プロセッサ１０００は、各々が独立の動作電圧及び動作周波数において動作するようコントロールされ得る、複数の領域を有するシステムオンアチップ（ＳｏＣ）であり得る。特定の実施例として、プロセッサ１０００は、カリフォルニア州サンタクララのインテルコーポレーションから入手可能なｉ３、ｉ５、ｉ７等のインテル（登録商標）アーキテクチャコア（登録商標）ベースのプロセッサ又は別のそのようなプロセッサであってよい。しかしながら、カリフォルニア州サニーベールのＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｉｎｃ．（ＡＭＤ）から入手可能なもの等の他の複数の低電力プロセッサ、ＡＲＭ  Ｈｏｌｄｉｎｇｓ，Ｌｔｄ．若しくは、それらの顧客から入手可能なＡＲＭベースの設計、又は、カリフォルニア州サニーベールのＭＩＰ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ｉｎｃ．若しくはそれらの複数のライセンシ、若しくは複数の利用者のＭＩＰＳベースの設計が、アップル社製のＡ５プロセッサ、クアルコム社製のスナップドラゴン（登録商標）プロセッサ、又はＴｅｘａｓ  Ｉｎｓｔｒｕｍｅｎｔｓ社製のＯＭＡＰ（登録商標）プロセッサ等の他の実施形態において代わりに存在し得る。そのようなＳｏＣは、スマートフォン、タブレット型コンピュータ、ウルトラブック（登録商標）コンピュータ、又は他のポータブルコンピューティングデバイス等の低電力システムで使用され得る。
【００５９】
図８に示される高レベルの図において、プロセッサ１０００は、複数のコアユニット１０１００―１０１０ｎを含む。各コアユニットは、１又は複数のプロセッサコア、１又は複数のキャッシュメモリ、及び他の回路を含み得る。それぞれのコアユニット１０１０は、１若しくは複数の命令セット（例えば、ｘ８６命令セット（複数の新バージョンでいくつかの拡張が追加されている）、カリフォルニア州サニーベールのＭＩＰＳ  ＴｅｃｈｎｏｌｏｇｉｅｓのＭＩＰＳ命令セット、カリフォルニア州サニーベールのＡＲＭ  ＨｏｌｄｉｎｇｓのＡＲＭ命令セット（ＮＥＯＮ等の複数のオプションの追加拡張を含む））又は他の命令セット又はそれらの複数の組み合わせをサポートし得る。いくつかのコアユニットは複数の異種のリソース（例えば、異なる設計の）であり得ることに留意されたい。加えて、そのようなコアそれぞれは、実施形態において共有レベル（Ｌ２）キャッシュメモリであり得る、キャッシュメモリに結合し得る。不揮発性ストレージ１０３０は、様々なプログラム及び他のデータを格納すべく使用され得る。例えば、このストレージは、マイクロコード、ＢＩＯＳ等のブート情報、他のシステムソフトウェア等の少なくとも一部を格納するのに使用され得る。
【００６０】
各コアユニット１０１０は、プロセッサの追加的な回路への相互接続を可能とするバスインターフェースユニット等のインターフェースも有し得る。実施形態において、各コアユニット１０１０は、次にメモリコントローラ１０３５に結合する、一次キャッシュコヒーレントオンダイインターコネクトとして作用するコヒーレントファブリックへ結合する。次に、メモリコントローラ１０３５は、（図８において理解し易くするため、不図示）ダイナミックランダムアクセスメモリ（ＤＲＡＭ）等のメモリとの通信をコントロールする。
【００６１】
複数のコアユニットに加えて、グラフィック処理を実行すると共にグラフィックプロセッサ上で汎用処理（いわゆる、ＧＰＧＰＵ処理）を実行し得る、少なくとも１又は複数のグラフィック処理ユニット（ＧＰＵ）を含み得る、少なくとも１つのグラフィックユニット１０２０を有する、複数の追加的な処理エンジンがプロセッサ中に存在する。加えて、少なくとも１つのイメージ信号プロセッサ１０２５が存在し得る。信号プロセッサ１０２５は、ＳｏＣ内部又はオフチップのいずれかの、１又は複数のキャプチャデバイスから受信される入力画像データを処理すべく構成され得る。他のアクセラレータもまた、存在し得る。図８の図示において、ビデオコーダ１０５０は、例えば、高解像度ビデオコンテンツについてのハードウェアの加速サポートを提供して、ビデオ情報のエンコード及びデコードを含むコーディング処理を実行し得る。ディスプレイコントローラ１０５５は、システムの内部及び外部ディスプレイのサポートの提供を含む、複数のディスプレイ処理を加速すべく、更に提供され得る。加えて、セキュリティプロセッサ１０４５は、セキュアなブート処理、様々な暗号処理等のセキュリティ処理を実行すべく存在し得る。各々のユニットはパワーマネージャ１０４０を介してコントロールされた電力消費を有し得る。いくつかの実施形態において、ＳｏＣ１０００は、様々な周辺デバイスが結合し得るコヒーレントファブリックに結合した非コヒーレントファブリックを更に有し得る。１又は複数のインターフェース１０６０ａ−１０６０ｄは１又は複数のオフチップデバイスとの通信を可能とする。所与のアーキテクチャ状態にある場合、Ｉ／Ｏバッファに結合されたパッド上に所望の値を自律的に維持すべく、１又は複数のインターフェースは、本明細書に説明されるように、コントロールロジックを含み得る。そのような通信は、他のタイプの通信プロトコルの中でも、ＰＣＩｅ（登録商標）、ＧＰＩＯ、ＵＳＢ、Ｉ２Ｃ、ＵＡＲＴ、ＭＩＰＩ、ＳＤＩＯ、ＤＤＲ、ＳＰＩ、ＨＤＭＩ（登録商標）等の様々な通信プロトコルによるものであり得る。図８の実施形態において、このような高レベルで示されるが、本発明の範囲はこの点について限定されないことを理解されたい。
【００６２】
以下の複数の例は更なる複数の実施形態に関する。
【００６３】
一例において、装置は、装置のロジックユニットを、パッドを介して装置に結合されるデバイスへ結合するＩ／Ｏバッファと、装置のアーキテクチャ状態へのエントリに応答して、パッド上の値を検出し、Ｉ／Ｏバッファがパッドへ値を提供するようコントロールする、Ｉ／Ｏバッファに結合されたロジックと、を備える。
【００６４】
例において、構成ストレージは、Ｉ／Ｏバッファに結合され、ロジックは検出される値に少なくとも部分的に基づいて、構成ストレージの少なくとも１つのフィールドをプログラミングする。少なくとも１つのフィールドは、Ｉ／Ｏバッファの供給電圧ノードと、出力ノードとの間に結合される第１のスイッチについてのコントロール値を格納すべく、第１のフィールドを含み得、第１のスイッチが閉じられた場合、出力ノードに結合すべくプルアップインピーダンスがイネーブルにされる。少なくとも１つのフィールドは、Ｉ／Ｏバッファの基準電圧ノードと、出力ノードとの間に結合される第２のスイッチについての第２のコントロール値を格納すべく、第２のフィールドを更に含み得、ここで、第２のスイッチが閉じられた場合、出力ノードに結合するプルダウンインピーダンスがイネーブルにされる。少なくとも１つのフィールドは、Ｉ／Ｏバッファの送信機をイネーブルにするイネーブル信号を格納すべく、第３のフィールドも含み得る。
【００６５】
例において、ロジックは、オーバーライドインジケータがアクティブな場合に、オーバーライド値をパッドに提供するようＩ／Ｏバッファをコントロールし、このときソフトウェアドライバがオーバーライド値を提供する。
【００６６】
例において、アーキテクチャ状態は低電力状態へのエントリを有し得る。
【００６７】
例において、Ｉ／Ｏバッファは、信号を受信してパッドに信号を出力する送信機と、供給電圧ノードと送信機の出力ノードとの間にコントロール可能に結合されるよう構成されたプルアップ抵抗と、基準電圧ノードと送信機の出力ノードとの間にコントロール可能に結合されるよう構成されたプルダウン抵抗と、を含む。Ｉ／Ｏバッファは、パッドからの第２の信号を受信して、ロジックユニットに信号を出力する受信機を更に有し得る。
【００６８】
上の装置は様々な手段を使用して実装されるプロセッサを有し得ることを留意されたい。
【００６９】
例において、プロセッサは、ユーザ機器の接触式デバイスに組み込まれるシステム・オン・チップ（ＳｏＣ）を含む。
【００７０】
別の例において、システムは、ディスプレイ及びメモリを含み、上述した複数の例の１又は複数のプロセッサを含む。
【００７１】
別の例において、システムは、ＩＣ内に形成されたプロセッサであって、少なくとも１つのコアを有するプロセッサと、電力管理ロジックを有するＩ／Ｏコントローラと、信号情報をプロセッサに結合された１又は複数のデバイスと通信するＩ／Ｏコントローラに結合された少なくとも１つのＩ／Ｏバッファであって、電力管理ロジックは、プロセッサの少なくとも一部の低電力状態へのエントリのインジケーションを受信し、ＩＣのパッド上の値をサンプリングし、状態の値を決定し、状態の値に応答して少なくとも１つのＩ／Ｏバッファを動的にコントロールし、パッドは少なくとも１つのＩ／Ｏバッファとインターコネクトとの間に結合される、Ｉ／Ｏバッファとを備える。システムは、プロセッサに結合されたＤＲＡＭを更に備え得る。
【００７２】
例において、電力管理ロジックは、サンプリングされた値に応答するコントロールストレージのフィールドを設定して、第１のインピーダンス及び第２のインピーダンスの少なくとも１つを少なくとも１つのＩ／Ｏバッファの出力ノードへ結合させる。電力管理ロジックは更に値のサンプリングをし得、状態を決定し得、及び、ファームウェア又はソフトウェアドライバにより提供されるオーバーライド値に基づいて、結合を引き起こすべく、第１のモードにおいて、及び第２のモードにおいて、結合させ得る。電力管理ロジックは、Ｉ／Ｏバッファがサンプリングされた値に対応する信号を出力することを可能にすべく、第１のインピーダンス又は第２のインピーダンスの結合を引き起こし得る。
【００７３】
別の例において、方法は、インターコネクトに結合されたＩＣのパッド上の状態をサンプリングする段階であって、パッドはＩＣのバッファに結合され、バッファは送信機及び受信機を含む段階と、サンプリングされた状態に基づいて、バッファの少なくとも１つのコントロール可能なエレメントについてのコントロール値を選択する段階と、オーバーライドインジケータがアクティブかどうかを判断し、アクティブであれば、オーバーライド値をバッファに関連付けられたストレージに格納し、そうでなければ、ストレージにコントロール値を格納する段階と、を備える。
【００７４】
例において、方法は、格納されたコントロール値を使用して、サンプリングされた状態を維持すべく、バッファをコントロールする段階を更に備える。
【００７５】
例において、方法は、システムのファームウェアから、オーバーライドインジケータを受信する段階を更に備える。
【００７６】
例において、方法は、状態をサンプリングする段階の前に、パッドをトライステートに置くべく、バッファをコントロールする段階を更に備える。
【００７７】
例において、方法は、第２のストレージにサンプリングされた状態を格納する段階、及び、その後、サンプリングされた状態を参照する段階を更に備える。
【００７８】
例において、方法は、パッドがＩＣを含むプラットフォームにおいて使用されていない場合、プルダウンインピーダンスをパッドに結合すべく、バッファをコントロールする段階を更に備える。
【００７９】
別の例において、命令を含むコンピュータ可読媒体は、上述した複数の例のいずれかの方法を実行する。
【００８０】
別の例において、装置は、上述した複数の例のいずれか１つの方法を実行するための手段を備える。
【００８１】
上述した複数の例の様々な組み合わせが可能であると理解されたい。
【００８２】
複数の実施形態が、多数の異なるタイプのシステムにおいて使用され得る。例えば、一実施形態において、通信デバイスは、本明細書で説明された様々な方法及び技術を実行するよう構成され得る。勿論、本発明の範囲は通信デバイスに限定されず、代わりに他の複数の実施形態は、複数の命令を処理する他のタイプの装置、又は、コンピューティングデバイス上で実行されることに応答して、デバイスに本明細書で説明される１又は複数の方法及び技術を実行させる複数の命令を含む１若しくは複数の機械可読媒体を対象にする。
【００８３】
複数の実施形態はコードで実装され得、複数の命令を実行すべくシステムをプログラミングするために使用され得る複数の命令を格納する非一時的記憶媒体上に格納され得る。記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ソリッドステートドライブ（ＳＳＤ）、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、コンパクトディスクリライタブル（ＣＤ−ＲＷ）、及び磁気光ディスクを含む任意のタイプのディスク、リードオンリメモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能プログラマブルリードオンリメモリ（EＥＰＲＯＭ）等の半導体デバイス、磁気又は光カード、又は複数の電子命令を格納するのに適切な任意の他のタイプの媒体を含み得るが、それらに限定されない。
【００８４】
本発明は限られた数の実施形態に関して説明されたが、当業者はそこから多数の修正形態及び変形形態を理解するであろう。添付の特許請求の範囲が、本発明の真の趣旨及び範囲に含まれるそのような全ての修正形態および変形形態を包含することが意図される。
【図１】
0006403764.tif 000003
【図２】
0006403764.tif 000004
【図３】
0006403764.tif 000005
【図４】
0006403764.tif 000006
【図５】
0006403764.tif 000007
【図６】
0006403764.tif 000008
【図７】
0006403764.tif 000009
【図８】
0006403764.tif 000010