動的に構成可能なバンド幅を有するリンクを介して、コントローラーとスイッチファブリックを含むダウンストリームモジュールを、ホストプロセッサを含むアップストリームモジュールに接続するステップと、前記コントローラーを初期化するステップと、を含み、前記コントローラーが初期化された後に、前記ダウンストリームモジュールは、前記ダウンストリームモジュールに対する入力/出力I/Oバンド幅を決定し、かつ、前記決定に基づいて、前記リンクのバンド幅を動的に調整する、ことを特徴とする方法。前記ダウンストリームモジュールは、第1の時間が生じる以前に、前記決定されたバンド幅が前記リンクのバンド幅よりも大きい場合、即時にリンクのバンド幅を増加し、かつ、第2の時間が生じた以降に、前記決定されたバンド幅が前記リンクのバンド幅よりも小さい場合、即時にではなくリンクの幅を減少し、前記第2の時間は、前記第1の時間よりも長い、請求項1に記載の方法。第1および第2のダウンストリームポートは、前記コントローラーを介してホストに接続されており、前記ダウンストリームモジュールは、前記第1および前記第2のダウンストリームポートの両方に対するバンド幅要求に基づいて、前記I/Oバンド幅を決定する、請求項1に記載の方法。前記ダウンストリームモジュールは、前記決定されたバンド幅が第1の閾値よりも大きい場合、前記リンクのバンド幅を動的に増加し、かつ、前記決定されたバンド幅が第2の閾値よりも小さい場合、前記リンクのバンド幅を低バンド幅設定まで動的に減少する、請求項1に記載の方法。前記第1の閾値は、前記第2の閾値と等しくない、請求項4に記載の方法。前記ダウンストリームモジュールは、前記リンクのバンド幅が前記低バンド幅設定まで既に減少された後で、前記決定されたバンド幅が第3の閾値よりも小さい場合、さらに、前記リンクのバンド幅を前記低バンド幅設定より小さいバンド幅設定まで動的に減少する、請求項4に記載の方法。前記ダウンストリームモジュールに接続された温度センサーの温度値を決定し、かつ、前記温度センサーの前記決定された温度値に基づいて、前記リンクのバンド幅を動的に調整する、請求項1に記載の方法。前記コントローラーを介して、第1および第2のダウンストリームポートがホストに接続されており、前記リンクは、周辺機器相互接続エクスプレスPCIeリンクであり、前記コントローラーは、PCIeコントローラーであり、前記ダウンストリームモジュールは、前記コントローラーと、前記第1および第2のダウンストリームポートとを含むチップセットを含んでおり、前記第1および第2のダウンストリームポートの両方に対するバンド幅要求に基づいて前記I/Oバンド幅を決定する、前記コントローラーと前記スイッチファブリックのうち少なくとも一つを含んでいる、請求項1に記載の方法。前記ダウンストリームモジュールは、前記第1のダウンストリームポートから生じたサイドバンドメッセージを介して、前記第1のダウンストリームポートに対する前記バンド幅要求に対応する、第1のデータを受け取り、前記第2のダウンストリームポートから生じたサイドバンドメッセージを介して、前記第2のダウンストリームポートに対する前記バンド幅要求に対応する、第2のデータを受け取り、かつ、前記第1および第2のデータの集計に基づいて、前記I/Oバンド幅を決定する、請求項8に記載の方法。第1のダウンストリームポートは、前記コントローラーを介して前記ホストプロセッサに接続され、第2のダウンストリームポートは、前記コントローラーを介して前記ホストプロセッサに接続され、前記ダウンストリームモジュールは、前記コントローラーと前記第1のダウンストリームポートを含むが、前記第2のダウンストリームポートは含まないチップセットを含んでおり、前記ダウンストリームモジュールは、前記第1および第2のダウンストリームポートに対するバンド幅要求に基づいて前記I/Oバンド幅を決定する、請求項1に記載の方法。前記ダウンストリームモジュールは、前記ダウンストリームモジュールに対するキューの深さと前記ダウンストリームモジュールによって処理されるパケットのサイズのうち少なくとも一つの決定に基づいて第1のメトリックを決定し、前記第1のメトリックに基づいて前記I/Oバンド幅を決定する、請求項1に記載の方法。前記ダウンストリームモジュールは、閾値を満たさない前記I/Oバンド幅を決定し、前記I/Oバンド幅は前記閾値を満たさないとの前記決定に基づいてタイマーをスタートさせ、かつ、前記タイマーの経過に基づいて前記リンクのバンド幅を減少する、請求項1に記載の方法。少なくとも一つのプロセッサによって一式のインストラクションが実行されると請求項1乃至12のいずれか一項に記載の前記方法を実施する、前記一式のインストラクションが保管されている一つまたはそれ以上のストレージ媒体。コントローラーとスイッチファブリックを含むダウンストリームモジュールと、動的に構成可能なバンド幅を有し、前記ダウンストリームモジュールをプロセッサを含むアップストリームモジュールに接続するリンクと、前記コントローラーに接続されたメモリーであり、実行されると、前記コントローラーが既に初期化された後に、前記ダウンストリームモジュールに対する入力/出力I/Oバンド幅を決定し、かつ、前記決定に基づいて、前記リンクのバンド幅を動的に調整する、インストラクションを含んでいるメモリーと、を含む、ことを特徴とする装置。前記メモリーは、さらに、実行されると、第1の時間が生じる以前に、前記決定されたバンド幅が前記リンクのバンド幅よりも大きい場合、即時にリンクのバンド幅を増加し、かつ、第2の時間が生じた以降に、前記決定されたバンド幅が前記リンクのバンド幅よりも小さい場合、即時にではなくリンクの幅を減少する、インストラクションを含み、前記第2の時間は、前記第1の時間よりも長い、請求項14に記載の装置。前記コントローラーを介してホストに接続されている第1および第2のダウンストリームポートを含み、前記メモリーは、さらに、実行されると前記ダウンストリームモジュールに、前記第1および前記第2のダウンストリームポートの両方に対するバンド幅要求に基づいて、前記I/Oバンド幅を決定させる、インストラクションを含む、請求項14に記載の装置。前記メモリーは、さらに、実行されると前記ダウンストリームモジュールに、前記決定されたバンド幅が第1の閾値よりも大きい場合、前記リンクのバンド幅を動的に増加させ、かつ、前記決定されたバンド幅が第2の閾値よりも小さい場合、前記リンクのバンド幅を低バンド幅設定まで動的に減少させる、インストラクションを含む、請求項14に記載の装置。前記コントローラーを介して前記プロセッサに接続された第1のダウンストリームポートと、前記コントローラーを介して前記プロセッサに接続された第2のダウンストリームポートと、を含み、前記メモリーは、さらに、実行されると前記ダウンストリームモジュールに、前記第1および第2のダウンストリームポートに対するバンド幅要求に基づいて前記I/Oバンド幅を決定させる、インストラクションを含み、前記ダウンストリームモジュールは、さらに、前記コントローラーと前記第1のダウンストリームポートを含むが前記第2のダウンストリームポートは含まないチップセットを含んでいる、請求項14に記載の装置。前記メモリーは、さらに、実行されると前記ダウンストリームモジュールに、前記第1のダウンストリームポートから生じたサイドバンドメッセージを介して、前記第1のダウンストリームポートに対する前記バンド幅要求に対応する、第1のデータを受け取らせ、前記第2のダウンストリームポートから生じたサイドバンドメッセージを介して、前記第2のダウンストリームポートに対する前記バンド幅要求に対応する、第2のデータを受け取らせ、かつ、前記第1および第2のデータの集計に基づいて、前記I/Oバンド幅を決定させる、インストラクションを含む、請求項18に記載の装置。請求項14乃至19いずれか一項に係る前記ダウンストリームモジュールを含むコンピューターシステムであって、さらに、前記アップストリームモジュールを含むコンピューターシステム。結果として、I/O電力は、コンポーネントレベル及ぶプラットフォームレベルにおいて十分に利用されていない例えば、不適当なファンの速さ及びそれに対応する電流の流れ。熱暴走が起きた際の適切な温度スロットルthermalthrottlingが欠如していることにより、熱的な非効率をも生じている。以降の記載において所定の詳細が数多く明らかにされるが、本発明の実施例は、これら所定の詳細が無くても実行し得るものである。よく知られた回路、構成、および、技術は、ここでの説明の理解を妨げないように、詳細には示されない。一つの実施例、種々の実施例等は、そのように記述された実施例が、所定の特徴、構成、または、特性を含み得ることを意味している。しかし、必ずしも全ての実施例が、所定の特徴、構成、または、特性を含むことを要しない。いくつかの実施例は、他の実施例のために説明された特徴のうち、いくつか又は全てを有し得るし、または、何も有さなくてよい。第1の、第2の、第3の等は、共通のオブジェクトを説明しており、類似のオブジェクトの異なるインスタンスが参照されていることを意味している。こうした形容詞は、そのように記述されたオブジェクトが与えられた順序でなければならないことを意味するものではない。一時的、空間的、ランキング又はあらゆる他の方法のいずれでもよい。接続されたは、エレメントがお互いに直接に物理的または電気的に接触していることを意味している。そして、結合されたは、お互いに協働または相互作用するエレメントを意味するが、それらは、直接に物理的または電気的に接触しても、しなくてもよい。また、異なる図面における同一または類似のパーツを示すために、類似または同一の参照番号が使用されるが、そうすることは、、類似または同一の参照番号を含む全ての図面が単一の又は同一の実施例を構成することを意味するものではない。一つの実施例は、ハードウェア及び又はソフトウェアモジュールを介して実施される、ポリシーを含んでいる。I/Oバンド幅要求のランタイムトラッキング、及び又は、温度モニターに基づいて、動的にリンク例えば、PCIeリンクの幅を動的に調整するためのポリシーである。こうした一つの実施例は、バンド幅の利用が、ネイティブnativeなリンク幅と速度より小さい場合に、電力節減を提供する。こうした一つの実施例は、さらに、一時的な熱暴走の期間中に温度削減を提供する。一つの実施例において、ポリシーは、ダウンストリームdownstreamコンポーネントの中に存在し、アップストリームupstremコンポーネントと協調する。アップストリームコンポーネントは、ダウンストリームコンポーネントによって交渉されているリンク幅構成を許可し、または、承諾する。一つの実施例は、統合されたエンドポイントここにおいて、ときどきポートportとしても参照されるものを有するダウンストリームPCIeコンポーネントを含んでいる。こうしたダウンストリームコンポーネントの実施例は、PCIeコントローラーをも含むシステムオンチップSOCに含まれているシリアル接続スモールコンピューターシステムインターフェイスSASコントローラーを含んでいる。エンドポイントは、SOC上に配置されており、従って統合されたエンドポイントである。しかしながら、別の実施例は、PCIeエンドポイントのさらなるダウンストリームをサポートするPCIeポートまたはエンドポイントを伴うダウンストリームPCIeコンポーネントを含んでいる。例えば、そうしたダウンストリームポートは、PCIeコントローラーを含むSOC上に、統合されていないストレージコントローラーを含んでいる。そうしたコンポーネントは、例えば、PCIeコントローラーのダウンストリームPCIeポートに取り付けられた個別のPCIeイーサネット登録商標カードまたはストレージコントローラーを含んでいる。図1は、統合および非統合ポートまたはエンドポイントに関する一つの実施例として、本発明の一つの実施例における、アップストリームおよびダウンストリームモジュールを含むデバイスのブロックダイヤグラムを示している。システム100は、アップストリームデバイス105とダウンストリームデバイス120を含んでいる。アップストリームデバイス105は、プロセッサ107、ルートコンプレックスrootcomplex110、および、メモリー115を含んでいる。メモリーは、アップコンフィグレーションつまり、リンク幅を増加させること、および、ダウンコンフィグレーションつまり、リンク幅を減少させることを許可するためのインストラクションを含んでいる。リンク125は、PCIeリンクを含んでよい。ダウンストリームデバイス120は、PCIeコントローラー130、ファブリックfabric135、および、ストレージコントローラー140を含む、種々のコンポーネントを有するチップセットを含んでいる。ストレージコントローラー140は、統合されたエンドポイント、または、固有のバンド幅要求を有するポートを構成する。また、ダウンリンク145は、モジュール120の中に統合されていないダウンストリームPCIeデバイスに接続されたPCIeポートを構成している。そうしたダウンストリームデバイスは、例えば、PCIeイーサネットカード160を含んでいる。PCIeイーサネットカードは、固有のバンド幅要求をもったダウンストリームエンドポイントを含んでいる。PCIeコントローラー130は、インストラクションを有している一つまたはそれ以上のメモリー136に接続されている。インストラクションは、状態機械statemachineとして、アップおよびダウンリンクコンフィグレーションができるように機能する。バンド幅BWの見積り、および、リンク125の動的リンク幅dynamiclinkwidth:DLWに関する決定も同様である。以降に説明されるフローチャートにおいて、コントローラーモジュール130に対する種々の実施例が説明される。一般的な注意として、たまに、BW見積り及びDLW意志決定インストラクションは、PCIeコントローラー130の中に含まれるべきとされている。これは、説明をし易くするためであり、限定することを意味するものではない。例えば、実施例において、BW見積り及びDLW意志決定インストラクション/状態機械、等は、実施のためにはどちらの領域がより好適/便利であるかに基づいて、例えば、ファブリック135といった他の領域に含まれてよい。例えば、一つの実施例において、BW見積り及びDLW意志決定インストラクション/状態機械は、コントローラーの中に設定されている好適なレジスターを伴うファブリック135の中に含まれている。一つの実施例は、ハードウェア自律的意志決定に基づくポリシーを含んでいる。PCIeコントローラー130は、アップリンク125上のランタイムバンド幅要求をモニターし、リンクをアップコンフィグレーションするか、ダウンコンフィグレーションするかを決定する。一つの実施例において、ルートコンプレックスrootcomplex110は、PCIeコントローラー130からのアップストリームであり、PCIeコントローラーはダウンストリームのデバイス120の中に配置されている。ルートコンプレックス110とモジュール105のあらゆるアップストリームポートは、一つの実施例において、コントローラーモジュール130からのリンク幅交渉に単純に従い、アップまたはダウンコンフィグレーションを実施するようにモジュール130と協調する。ルートコンプレックス110は、あらゆるバンド幅モニタリングにおいて何の役割も無くてよく、代わりに、そうしたモニタリングをコントローラーモジュール130のために残しておいている。リンク125に関しては、PCIe構造が、ルートコンプレックスから始まる、階層的であることに留意する。PCIeリンク、リンク125といったもの、は、ダウンストリームデバイス、デバイス120および160デバイス120からのダウンストリームに配置されているといったもの、に接続している。モジュールまたはデバイス120といったダウンストリームデバイスの観点から、リンク125は、ホスト105へのアップリンクuplinkである。しかしながら、リンク125は、ルートコンプレックスの観点からはダウンリンクdownlinkである。リンク125は、両方向のトラフィックを許容するイングレスingress及び又はエグレスegressレーンlaneを含んでいる。図2Aと2Bは、リンク幅を調整するための本発明の一つの実施例に関するフローチャートおよび関連のバンド幅チャートを示している。ブロック205は、MaxLW値の更新に対する待ちwaitingを含んでいる。MaxLW値は、ダウンストリームデバイス120とデバイス160によって必要とされる最大のライン幅に係わるものである。このMaxLWは、統合エンドポイント例えば、ダウンストリームモジュール120の中に統合されたストレージコントローラー140、非統合エンドポイント例えば、ダウンストリームモジュール120、すなわちPCIeコントローラー130、に統合されていないPCIeイーサネットカード及び関連するポート例えば、155、および、統合及び非統合エンドポイントの組み合わせ、に基づいている。本発明に係る種々の実施例は、要求されるバンド幅例えば、MaxLWを、種々のやり方で決定してよい。バンド幅モニタリングメカニズムは、PCIeリンク上にわたるトラフィックに係るバンド幅要求をモニターする。そうしたメカニズムは、一般的に、コマンド/データキューqueue、利用可能なフリークレジット、バッファー利用、与えられたインターバルにわたる実際の累積されたデータパケット、等のモニタリングを含んでいる。種々のパフォーマンスモニターが、この効果のために使用され得る。バンド幅モニタリングの一つの実施例において、PCIeコントローラー130は、キューの深さをカウントする。例えば、ウィンドウタイマー上のイングレス及びエグレスポートにおいて、リーキーバケットアルゴリズムleakybucketalgorithmを使用して行う。そうしたポートは、ポート150、155、及び又は、ファブリック135に対してポート接続されているコントローラー140を含んでいる。別の実施例は、ある期間例えば、ウィンドウタイマーによって測定されるものにわたるパッケトサイズをカウントすることによって実際のバンド幅を測定することを含んでいる。そうしたウィンドウは、約300、400、500、600、700マイクロ秒、等であり得る。測定は、コントローラーから外に向かって進むつまり、エグレストラフィックのバンド幅、および、コントローラーの中に向かって進むつまり、イングレストラフィックのバンド幅を提供する。例えば、コントローラー130は、ホストプロセッサ107に向かって進むバンド幅エグレスBWEgressBW、および、ホストプロセッサ107から離れて進むバンド幅イングレスBWIngressBWを測定する。NetBW要求は、エグレスバンド幅エグレスBWおよびイングレスバンド幅イングレスBWより大きい。このように、モニタリングによって、実際のトラフィックコントローラー130は、例えば、タイマーによって測定された、期間にわたるバンド幅利用を累積することができる。別の実施例において、PCIeコントローラー130は、統合されたエンドポイント例えば、デバイス140とダウンストリームポート例えば、160から、それぞれの最大バンド幅要求に関する入力を受け取る。コントローラー130は、そして、個々の入力を集めて、正味のアップリンクバンド幅要求を計算する。接続率ベースのスコアリングシステムが使用され、関与している機能つまり、ストレージコントローラー140に関するストレージといった機能が、例えば、アクティブなレーンの数量とオペレーティング速度に基づいて、最大のバンド幅要求を特定することができる。一つの実施例において、バンド幅要求は、接続速度と同様にポート接続を計算することにより動的に算出される。例えば、統合された8ポート6Gb/sのSATAコントローラーは、全ての8個のポートがアクティブである場合に最大で48Gb/sの双方向バンド幅つまり、ポート接続の計算=8ポート接続×ポート毎の6Gb/s=48Gb/sが必要とされるバンド幅をサポートする。しかし、2つのポートだけアクティブな場合は、12Gb/sつまり、2ポート接続×ポート毎の6Gb/s=12Gb/sが必要とされるバンド幅しかサポートされない。6Gb/s接続は、4×1.5Gb/s接続であるとしてカウントされる。同様に、トレイン/接続されていないリンク、または、電力節減状態にあるリンクつまり、PCIeに対するL0、SAS/SATAに対するパーシャル/スランバーpartial/slumberは、0Gb/sとしてカウントされる。このことは、アプローチを実際のリンクプロトコルから独立したものにし、全てのタイプの統合されたI/Oエンドポイントとポート例えば、SATA/SAS、PCIe、USBといったリンクプロトコルと種々の生成速度に順応する。スコアリングシステムscoringsysytemに関し、一つの実施例において、コントローラー140は、2Gb/s5ポイントに等しいルックアップテーブルに従ったものを必要とし、カード160は、8Gb/s20ポイントに等しいルックアップテーブルに従ったものを必要とする。スコアは、一緒に加算され正味25ポイントとなり、4の幅と同等である。しかしながら、別の実施例においては、スコアが異なる重み付けをされてよい。例えば、コントローラー140が、カード160より大きく重み付けされ例えば、2:1のコントローラー/イーサネットカードの比率、アイテム140と160との間の異なるリンク速度を正規化しようと試みることができる。より一般的には、一つの実施例において、スコアリングシステムにより、それぞれの関連するエンドポイントは、その動的最大バンド幅要求を計算することができる。エンドポイント毎の動的最大バンド幅要求は、全てのアクティブなレーンに係るレーン毎のオペレーティング速度の合計であり得る使用されていないもの、トレインされていないもの、及び又は、アイドルのレーンは、ゼロバンド幅要求とされる。このシステムは、いくつかのI/Oプロトコルに存在する8b/10bエンコードに対する正規化によって、有効なペイロードバンド幅を説明することもできる。所定のエンドポイントを他のものに比べて重視するように重み付けが割り当てられてよい。IOSFサイドバンドメッセージにより、バンド幅要求を、例えば、0.5Gb/sの粒度レベルでレポートすることができる。それぞれの関連する機能例えば、コントローラー150、カード160は、例えば、内部ファブリック上または直接的な電線を通じたメッセージを使用して、最大バンド幅要求を提供することができる。一つの実施例において、ダウンストリームポートは、サイドバンドメッセージ例えば、ポストされたデータを伴うユニキャストunicastメッセージをアップストリームコントローラーに対して送付し、専用の電線の使用を避け、プライマリーパスを開放する。全ての関連する機能従って、統合および非統合エンドポイントからそうした入力を集めることで、最大バンド幅要求を提供する。このように、統合された12GのSASコントローラー例えば、コントローラー140と×8PCIeダウンリンク例えば、ダウンリンクPCIe145は、それぞれの最大バンド幅要求を含んでいるサイドバンドメッセージをスイッチファブリック135に対してそれぞれ送付する機能である。これらのアップデートは、PCIeコントローラー130に対して、ウィンドウタイマーの期限切れ、または、バンド幅の値の変化、のいずれかにおいて提供され得る。要求されるバンド幅が知られると、コントローラー130は、好適なリンク幅125を決定する。一つの実施例において、コントローラー130は、バンド幅要求をサポートされているバンド幅と比較する。例えば、PCIeにより、×Nリンクは、サポートされている幅がより小さい×1幅までに再構成され得る。特に、×8PCIeリンクは、×8、×4、×2、または、×1幅のリンクとして構成されてよい。それぞれが、最大バンド幅64Gb/s、32Gb/s、16Gb/s、および、8Gb/sに相当するものである。コントローラー130に接続されたメモリーの中に保管されている、ルックアップテーブルは、バンド幅要求をサポートされているリンク幅の一つに対してマップすることができる。図2aに戻ると、上記に説明したように、要求されるバンド幅を決定するための種々のやり方が存在する。そうした決定が成された後に、ブロック205において、MaxLW値が受け取られる。上記に説明したように、これは、一つまたはそれ以上の統合または非統合エンドポイント例えば、コントローラー150、PCIeイーサネットカード160、及び又は、リンク150に接続されたダウンストリームポート、等からのサイドバンドメッセージを介して受け取ることができる。フラグは、0ゼロに設定される。ブロック210において、現在の幅LWが、所望のバンド幅MaxLWと比較される。アップデートされたリンク幅が、現在のリンク幅よりも大きい場合、コントローラーは、即時に相対的な用語としてより高いバンド幅に移行する例えば、レイテンシーlatencyを最小にするように5または10マイクロ秒より小さいもの。アップコンフィグレーションのレイテンシーブロック215を参照のためにパフォーマンス劣化が生じるのを避けるためである。イネーブルenableされた場合、PCIeコントローラー130は、コンフィグレーションレジスター例えば、upcfgctlレジスターにおいて定義されたリンク幅へトレインする。値に変化がある場合ブロック215を参照、コントローラーは、伝送中のメッセージを送付することを止めて、新たな幅を再びトレインすることを開始する。DLWポリシーは、この移行の即時性を判断して、バンド幅が大きくなるとすぐにレジスターを変更する。一つの実施例において、実際のPHYレベルアップ又はダウンコンフィグレーションは、動的な幅構成をサポートするために、アップストリームモジュール105とダウンストリームモジュール120の両方を必要とする。PCIeリンクの両方のエンドポイントがアップコンフィグレーションをサポートしている場合、ダウンストリームデバイス120のPCIeアップリンクコントローラー130は、動的リンクポリシーによって決定された新たな幅への移行を開始する。アップデートされたリンク幅が現在のリンク幅よりも小さい場合ブロック220を参照、コントローラーは、要求をフィルターする。例えば、有限インパルス応答FIRフィルター、移動平均フィルター、及び又は、より小さな次の幅へのダウンコンフィグレーションの前のウィンドウタイマー、を使用するものである。一つの実施例において、フラグ設定=0これが、フローチャートのこの部分を通じた最初のトリップであることを示しているである場合、ブロック225において、タイマーがスタートする。タイマーの経過を待っている間にブロック230、コントローラーは、あらゆるMaxLWのアップデートをチェックする。そうしたアップデートがある場合、プロセスは、ブロック210へと続くフラグは、今や1に設定されるのだが。アップデートが存在しない場合、プロセスはブロック240へ続く。タイマーが最終的に経過して、必要なバンド幅が、現在割り当てられている幅が扱うことができるものより未だに小さい場合、ブロック245において、コントローラー130は、次の、より小さなLWまで減少させる。例えば、LWが8レーンに対して設定されていれば、4レーンに減少されてよい。フローチャートを通じた後続のトリップの際に、LWは、4レーンから2レーンに、および、2レーンから1レーンに減少され得る。このように、一つの実施例において、ダウンコンフィグレーションは、タイマー経過に基づいており、アップコンフィグレーションは、最大リンク幅MaxLWのアップデートに、相対的に即時に基づいている。リンク幅125に係るこの非即時non-immediateダウンコンフィグレーションは、頻繁なアップコンフィグレーションとダウンコンフィグレーションのサイクルによる、チャタリングchatteringおよびパフォーマンススロットルを防いでいる。このように、図2は、関連する機能から受け取ったヒントhintに基づいた、リンク幅決定フローを説明している。図2bは、最大リンク幅要求255の関数として実際のリンク幅250を表しており、要求されるリンク幅に対してどのようにリンク幅が遅れて、調整されるかを示している。ウィンドウタイマー上でのバンド幅の累積に基づいた他の実施例は、インターバルをカウントしている最中に高い基準値つまり、上限の閾値に達した場合に、リンクをアップコンフィグレーションするか、または、インターバルをカウントしている際にトラフィックが低い基準値つまり、下限の閾値である場合に、リンクをダウンコンフィグレーションする。例えば、図3a、3bは、リンク幅の調整に係る本発明の一つの実施例に関するフローチャートと関連のバンド幅チャートを含んでいる。ブロック305において、タイマーがスタートし、バンド幅要求の累積が始まる。ブロック310においては、累積されたバンド幅要求が上限の閾値を超える場合、相対的に即時にアップコンフィグレーションが生じるブロック315例えば、レイテンシーを最小化するように5または10マイクロ秒より小さいもの。しかしながら、累積されたバンド幅要求が上限の閾値を超えない場合、プロセスは、タイマーが経過したものと判断するブロック320。タイマーが経過していない場合、プロセスはブロック310に戻る。タイマーが経過している場合は、ブロック325において、累積されたバンド幅要求が、下限の閾値DnThより大きいかどうか判断される。大きい場合、プロセスはブロック305に戻り、新たなタイマー期間が始まる。小さい場合は、ブロック330において、コントローラー130は、次のより小さなLWへと減少させる。例えば、LWが8レーンに設定されている場合には、4レーンへと減少され得る。このフローチャートを通じて後続のトリップの際に、LWは4レーンから2レーンへ、および、2レーンから1レーンへと減少され得る。図3bは、要求されたバンド幅が、アップコンフィグレーションおよびダウンコンフィグレーションをどのように駆動するかを説明しており、種々の閾値を満たしているバンド幅要求および種々の閾値を満たすことができないバンド幅要求に従って、どのようにリンク幅が変化するかを示している。図4は、本発明の一つの実施例における、模式的なメッセージ伝送ダイヤグラムを示している。ライン405は、PCIeイーサネットカード160およびストレージコントローラー150といったダウンストリームPCIeポートを表している。一つの時間インターバルの中において図3aのブロック305における時間を参照2つの有効リンク幅メッセージ伝送EffLWMessTxnが送付され、スイッチファブリック135が累積されるライン410を参照。スイッチファブリックSWF135。別の実施例において、ポリシーは、ファブリック134の代わりにコントローラー130の中に在ってよく、結果として、コントローラー130において累積が発生する。次に、好適なコンフィグレーションコマンドコンフィグレーション書き込みメッセージCfgWrMesgの中に含まれているアップまたはダウンコンフィグレーションコマンドが、ファブリック135からコントロール130に対して、そして、例えば、ホストプロセッサライン415を参照およびルートコンプレックスに対して送付される。図5は、リンク幅を調整するための本発明の一つの実施例に関するフローチャートおよび関連するバンド幅チャートを示している。特に、図5は、図2aと図3aの混成物を含んでおり、最大バンド幅のヒント図2aとバンド幅の累積又は集合図3aに基づいて、リンク幅要求を組み合わせている。この混成フローは、電力節減例えば、ファンと電源のユニットの使用が削減されたことによるものとレイテンシーインパクトとの間の有益なトレードオフを提供する。簡潔のために、図5のそれぞれのブロックに再度は言及しない。ブロック505、510、515、520、525は、図2aにおいて同様に数字付けされた対応パーツ205、210、215、220、225を有している。しかしながら、ブロック530は、図2aから派生しており、時間期間が経過するのを待つ一方で、バンド幅の累積を追加している図3aを参照。これにより、ブロック540ブロック235、545ブロック240、320、および、550ブロック325に進む前に、ブロック535図3aのブロック310を参照に導かれる。プロセスは、そして、ブロック555に進む。たまに、リンク幅は、バンド幅の使用が大きくなっている場合でさえも、小さくなり得る。このことは、例えば、リンク幅の決定が閾値ベースである実施例によるものである。このように、バンド幅は大きくなってよいが、増加されたバンド幅が未だに好適な閾値よりも小さい場合、コントローラー130のロジックは、リンク幅を削減するか、または、リンク幅を維持するかを決定することができる。別の実施例において、アップリンク125幅は、温度センサーに基づいて制限されてよい上記に説明したバンド幅の要因に代わって又は追加してである。例えば、温度が既定の閾値を超えた場合、リンクは、電力節減のために、より狭い幅に制限されてよく、それによって、温度の軽減を提供している。一つの実施例において、可変の幅例えば、×8、×4、×2、×1は、アップストリーム105およびダウンストリーム120モジュールの両方によってサポートされなくてよい。しかしながら、リンク初期化の最中に、コントローラー又はプロセッサ107は、全ての可能な幅をトレインし、サポートされない幅をログすることができる。コントローラー130は、バンド幅要求に基づいてダウンコンフィグレーションし、、通常オペレーションの最中にサポートされない幅をログすることができるそして、これらのサポートされない幅を避ける。このように、上記に説明された実施例は、PCIeリンクの幅を動的にコンフィグレーションするだけでなく、好適なリンク幅を最適にコンフィグレーションするやり方を決定することに役に立つ。このことは、非常に低いトラフィック率においてさえも、PCIeリンクがほとんどいつもアクティブである状況さらには、アイドルに近い使用の場合でさえ、PCIeデバイスに、温度デザイン電力TDPに近い電力を消費させることを避けるのに役に立つ。実施例は、こうした利点を、例えば、バンド幅要求のランタイムモニタリング、および、リンクの日和見性のダウンコンフィグレーションと即時性のアップコンフィグレーションのインテリジェントな意志決定に基づいて達成し、パフォーマンスに影響することなく、電力節減を提供することができる。一つの実施例は、最大バンド幅要求を計算するシステムに基づいてリンク接続性と接続率を定める。しかし、計算インテンシブintensiveではなく、顕著な電力ペナルティーを維持するものではない。例えば、電力ペナルティーは、限定されている。種々の実施例は、変化が検知された場合だけ継続的な実行に代わって、最初にアクティブなロジックを有するからである。ウィンドウインターバル例えば、ブロック230を参照も、相対的に長い例えば、数100マイクロ秒。さらに、実施例は、メカニズムを提供し、それによって、ダウンストリームポートまたは統合されたポートが、それらの最大バンド幅要求を伝達することができる。この情報は、サイドバンドファブリックを介して、効率的に伝えることができる。このことは、バンド幅情報を集めるためのルートコンプレックスまたは他のアップストリームデバイス105のエフォートによるあらゆる試行と対照的である。例えば、統合されたストレージコントローラー140はPCIeリンク125を介してルートコンプレックス110に接続されている一方で、ストレージコントローラー10も、数多くのストレージデバイス図1に図示なしに接続されてよい。このように、何台のSAS/SATAドライブのリンクがいかなる時にもアクティブであるかは、ストレージコントローラー140に対して知られているが、ルートコンプレックス110には知られていない。ここにおいて説明されたメッセージメカニズムが無ければ、PCIeコントローラーは、必要とされるストレージドライブの接続性とバンド幅のレベルを削減することができない。実施例は、PCIeリンクがいつでも最大幅にトレインされている非効率的な方法と対照的である。メッセージーサイズまたはキューの深さにかかわらず、いつでもメッセージ/データが伝送されることを要する場合である。一つの実施例は、PCIeトラフィックに対してパフォーマンス-電力ロードラインloadlineを伝達することにより、エネルギー効率のよいI/Oオペレーションを可能にするポリシーを実施する。例えば、サーバープラットフォームは、大きなPCIeポートのカウントを有している例えば、ソケット毎に40ポート、かつ、プラットフォーム毎に2-4ソケット。いくつかのPCIeデバイスがサーバープラットフォームに接続されており、ストレージコントローラー例えば、SATA/SASコントローラー、イーサネットコントローラー、等が含まれている。上記に説明された種々の実施例を可能にすることにより、サーバープラットフォームは、プラットフォームの利用が低いときに顕著な電力節減を表すことができる。このように、一つの実施例は、ホストプロセッサ/コントローラー107を含むアップストリームモジュールと、プロセッサ/コントローラー130を含むダウンストリームモジュールと、動的に構成可能な幅を有するリンク125であり、ダウンストリームモジュールをアップストリームモジュールに接続するリンクと、を有するシステムを含んでいる。コントローラー130は、メモリーに接続されてよい。メモリーは、実行されるとコントローラーがコントローラーが既に初期化された後で、ダウンストリームに対するI/Oバンド幅を決定すること、および、決定に基づいてリンクの幅を動的に調整すること、の両方をできるようにする。コントローラーは、第1の時間が生じる以前に例えば、ブロック225のタイマー、決定されたバンド幅がリンクの幅よりも大きい場合例えば、ブロック215、即時にリンクの幅を増加してよい。そして、第2の時間が生じた以降に例えば、ブロック240、決定されたバンド幅がリンクの幅よりも小さい場合、即時にではなくリンクの幅を減少してよい。第2の時間は、第1の時間よりも長いものである。一つの実施例は、コントローラー例えば、コントローラー130を介してホストに接続されている、第1および第2のダウンストリームポート例えば、コントローラー140とカード160を含んでよい。一つの実施例において、PCIeコントローラーは、決定されたバンド幅が第1の閾値より大きい場合、動的にリンクの幅を増加し例えば、現在の幅LW、かつ、決定されたバンド幅が第2の閾値より小さい場合、動的にリンクの幅を小さい幅の設定まで減少させる。第2の閾値は、第1の閾値と同一であってよく例えば、両方ともLWである、または、別の値であってもよい。直前のシナリオに代わって、または、追加的に、閾値は、Upth及び又はDnTh等に関連し得る。実施例は、コードにおいて実施することができ、非一時的なストレージ媒体上に保管されてよい。媒体上には、インストラクションを実行するようにシステムをプログラムするために使用することができるインストラクションを有している。ストレージ媒体は、これらに限定されるわけではないが、以下のものを含むあらゆるタイプのディスクである。それらは、フロッピー登録商標ディスク、光ディスク、半導体ドライブSSD、コンパクトディスク読み出し専用メモリーCD-ROM、コンパクトディスク再書き込み可能コンパクトディスクCD-RW、光磁気ディスク、読み出し専用メモリーROMといった半導体デバイス、ダイナミックアクセスメモリーDRAMといったランダムアクセスメモリーRAM、スタティックランダムアクセスメモリーSRAM、消去可能プログラマブル読み出し専用メモリーEPROM、フラッシュメモリー、電気的に消去可能プログラマブル読み出し専用メモリーEEPROM、磁気又は光カード、または、電気的インストラクションを保管するのに好適なあらゆる他のタイプの媒体、である。本発明の実施例は、インストラクション、ファンクション、プロシージャ、データ構造、アプリケーションプログラム、コンフィグレーション設定、コード、等といったデータに関して、ここにおいて説明されてよい。マシンによってデータがアクセスされる場合、ここにおいてより詳細が説明されるように、タスクを実行し、抽象的なデータタイプを定義し、低レベルのハードウェアコンテクストを確立し、及び又は、他のオペレーションを実行することによって、マシンは対応することができる。データは、揮発性、及び又は、不揮発性データストレージの中に保管されてよい。用語コードcodeまたはプログラムprogramは、アプリケーション、ドライバー、プロセス、ルーチン、メソッド、モジュール、および、サブプログラムを含み、幅広くコンポーネントと構成をカバーしている。そして、処理システムによって実行される場合に、所望のオペレーションを実行するインストラクションのあらゆる収集を参照してよい。加えて、代替的な実施例は、開示された全てより少ないオペレーションを使用するプロセスを含んでよい。追加のオペレーションを使用するプロセス、異なるシーケンスにおいて同一のオペレーションを使用するプロセス、および、個々のオペレーションがここにおいて開示されたプロセスは、組み合わされ、細分され、または、そうでなければ変更される。コンポーネントまたはモジュールは、望むように結合され、または、分離されてよい。そして、デバイスの一つまたはそれ以上の部分に配置されてよい。ここにおいて使用されているように、プロセッサまたはコントローラーは、従来技術として知られている幅広い種々のコントロールロジックのあらゆるものを表わすように意図されたコントロールロジックを含んでよい。かつ、そのように、マイクロプロセッサ、マイクロコントローラー、フィールドでプログラム可能なゲートアレイFPGA、特定アプリケーション用集積回路ASIC、プログラム可能ロジックデバイスPLD、等として、うまく実施される。いくつかの実施例において、コントローラー130及び類似のものは、コンテンツ例えば、ソフトウェアインストラクション、等を表すように意図されており、実行されると、ここにおいて説明された機能を実施する。ここにおいて使用されるように、モジュールは、あらゆるハードウェア、ソフトウェア、または、それらの組み合わせを参照するものである。しばしば、モジュールの境界は、分離したものとして説明され、一般的には変化し、潜在的には重なり合う。例えば、第1および第2のモジュールは、ハードウェア、ソフトウェア、または、それらの組み合わせを共有してよいが、一方で、潜在的に、いくつかの独立したハードウェア、ソフトウェア、または、ファームウェアを保持している。一つの実施例において、用語ロジックの使用は、トランジスターといったハードウェア、または、プログラム可能な論理デバイスといった他のハードウェアを含むものである。しかしながら、別の実施例において、ロジックは、また、ファームウェアまたはマイクロコードといった、ソフトウェアまたはハードウェアと統合されたコードを含んでいる。本発明開示は、限定された数量の実施例に関して説明されてきたが、当業者であれば、そうした実施例から、多くの変形およびバリエーションを認識するであろう。例えば、他のメモリーアーキテクチャー、例として、ダイナミックDAMDRAMが説明された実施例で使用される。添付の特許請求の範囲は、全てのこうした変形およびバリエーションを、本発明開示に係る真の精神と発明の範囲の中にあるものとして包含するように意図されたものである。