(57)【要約】【課題】保留されたサービス要求のポーリングの周期を適応させる方法を提供すること。【解決手段】この方法では、保留されたサービス要求の有無を調べるためにシステムをポーリングすること、保留されたサービス要求があったかどうかを記録すること、および、蓄積したデータに基づいて、システム装置がアイドル状態であるかどうかを判断することによって、ポーリング周期を適応させる。上記の判断に基づいて、システムは、装置動作が信号で知らされるまで、または調整可能な一定の時間が経過するまで、節電モードに入ることを選ぶことができる。この適応機構によって、タイマ割込みの周期を変更し、装置割込みを禁止または許可し、システムのアイドル状態を判断するのに使用される（最小待ち時間閾値および最小アイドル状態閾値などの）変数を変更することができる。このようにして、システムは、システムの性能と応答性を維持しつつ、節電することができる。【選択図】図３
2004199683.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサおよび１つまたは複数の入出力（Ｉ／Ｏ）装置を有するデータ処理システムにおいて、保留された装置サービス要求のポーリング周期を適応させる方法であって、
保留されたサービス要求の有無を調べるために、前記データ処理システムの前記装置をポーリングするステップと、
保留されたサービス要求があったかどうかを記録するステップと、
蓄積されたデータに基づいて、装置がアイドル状態であると判断するステップと、
前記判断ステップに応答して、前記プロセッサを低電力状態に置くステップとを含む方法。
【請求項２】
前記ポーリングするステップで受け取った１つまたは複数のサービス要求を処理するステップをさらに含む、請求項１に記載の方法。
【請求項３】
閾値であって、それを超えると装置がアイドル状態であるとみなされる、保留されたサービス要求が見つからないポーリングの最小回数の前記閾値を適応的に設定するステップをさらに含む、請求項１に記載の方法。
【請求項４】
システムおよび装置の非アクティビティ状態に応答して前記プロセッサがタイマによる割込みを受ける頻度に対応するように、タイマ量子の周期を適応的に設定するステップをさらに含む、請求項１に記載の方法。
【請求項５】
装置のアクティビティおよび非アクティビティに応答して、装置割込みを許可または禁止するステップをさらに含む、請求項１に記載の方法。
【請求項６】
保留されたサービス要求が存在する間、前記システムが前記低電力状態に留まることができる最長の時間に合わせて、最小待ち時間閾値を適応的に設定するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記プロセッサが前記低電力状態に置かれた後で、後の割込みに応答してその動作を再開させるステップをさらに含む、請求項１に記載の方法。
【請求項８】
少なくとも１つのプロセッサと、
前記プロセッサに接続されたメモリ装置と、
前記プロセッサに接続された１つまたは複数の入出力（Ｉ／Ｏ）装置と、
前記メモリ装置に格納されたプログラム命令とを備えるデータ処理システムであって、前記プログラム命令が、保留されたサービス要求の有無を調べるために前記装置をポーリングすること、保留されたサービス要求があったかどうかを記録すること、蓄積されたデータに基づいて装置がアイドル状態であると判断すること、および、それに応答して前記プロセッサを低電力状態に置くことによって、保留された装置サービス要求のポーリング周期を適応させるためのものである、データ処理システム。
【請求項９】
前記プログラム命令が、前記ポーリングで受け取った１つまたは複数の割込みをさらに処理する、請求項８に記載のデータ処理システム。
【請求項１０】
それを超えると装置がアイドル状態であるとみなされる、保留されたサービス要求が見つからないポーリングの最小回数の閾値を、前記プログラム命令がさらに適応的に設定する、請求項８に記載のデータ処理システム。
【請求項１１】
システムおよび装置の非アクティビティ状態に応答して前記プロセッサがタイマによる割込みを受ける頻度に対応するように、前記プログラム命令がタイマ量子の周期をさらに適応的に設定する、請求項８に記載のデータ処理システム。
【請求項１２】
前記プログラム命令が、装置の活動およびその欠如に応答して、さらに装置割込みを許可または禁止する、請求項８に記載のデータ処理システム。
【請求項１３】
保留されたサービス要求が存在する間、前記システムが前記低電力状態に留まることができる最長の時間に合わせて、前記プログラム命令がさらに最小待ち時間閾値を適応的に設定する、請求項８に記載のデータ処理システム。
【請求項１４】
前記プロセッサが前記低電力状態に置かれた後で、前記プログラム命令が後の割込みに応答してその動作を再開させる、請求項８に記載のデータ処理システム。
【請求項１５】
１つのプロセッサおよび１つまたは複数の入出力（Ｉ／Ｏ）装置を有するデータ処理システムにおいて、保留された装置サービス要求のポーリングの周期を適応させるコンピュータ・プログラムであって、
コンピュータ可読媒体と、
前記媒体にあるプログラム命令とを備え、前記プログラム命令が、保留されたサービス要求の有無を調べるために、前記装置をポーリングし、保留されたサービス要求があったかどうかを記録し、蓄積されたデータに基づいて、装置がアイドル状態であると判断し、かつ、それに応答して、前記プロセッサを低電力状態に置く、コンピュータ・プログラム。
【請求項１６】
前記プログラム命令が、前記ポーリングで受け取った１つまたは複数の割込みをさらに処理する、請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
閾値であって、それを超えると装置がアイドル状態であるとみなされる、保留されたサービス要求が見つからないポーリングの最小回数の前記閾値を、前記プログラム命令がさらに適応的に設定する、請求項１５に記載のコンピュータ・プログラム。
【請求項１８】
システムおよび装置の非アクティビティ状態に応答して前記プロセッサがタイマによる割込みを受ける頻度に対応するように、前記プログラム命令がタイマ量子の周期をさらに適応的に設定する、請求項１５に記載のコンピュータ・プログラム。
【請求項１９】
前記プログラム命令が、装置のアクティビティおよびその欠如に応答して、さらに装置割込みを許可または禁止する、請求項１５に記載のコンピュータ・プログラム。
【請求項２０】
保留されたサービス要求が存在する間、前記システムが前記低電力状態に留まることができる最長の時間に合わせて、前記プログラム命令がさらに最小待ち時間閾値を適応的に設定する、請求項１５に記載のコンピュータ・プログラム。
【請求項２１】
前記プロセッサが前記低電力状態に置かれた後で、前記プログラム命令が後の割込みに応答してその動作を再開させる、請求項１５に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的には、コンピュータ・システムに関し、詳細には、装置要求の処理に関し、より詳細には、こうした要求を、性能および応答性を維持するとともに電力消費が節約されるように、適応的ポーリングを介して処理する方法およびシステムに関する。
【背景技術】
【０００２】
一般化したクライアント−サーバ・コンピューティング・ネットワーク２を図１に示す。ネットワーク２は、いくつかのサーバ４、６、８、９を有し、これらのサーバは、互いに直接に、または他のサーバの１つを介して間接に相互接続される。各サーバは、本来（１つまたは複数のプロセッサ、メモリ装置、および通信装置を有する）スタンドアロン型のコンピュータ・システムであるが、ワークステーション・クライアント１０の個々のユーザに情報を提供するという、１つの主目的に適するようプログラムされている。クライアント１０は、（パーソナル・コンピュータ、すなわちＰＣなどの）スタンドアロン型のコンピュータ・システムでも、（ネットワーク・コンピュータ、すなわちＮＣなどの）ネットワーク２との限定された使用に適応された「ダンパ（dumper）」システムでもよい。本明細書で使用する「ＰＣ」は、一般的に、製造者、ハードウェア・プラットフォーム、オペレーティング・システムなどに関わらず、個人の使用に適応された任意の多目的コンピュータを指す。単一の、物理的なコンピュータは、サーバとしてもクライアントとしても動作することができるが、こうした実装はめったに行われない。
【０００３】
サーバによって提供される情報は、クライアント１０でローカルに実行されるプログラムの形式でも、他のプログラムが使用するファイルなどのデータの形式でもよい。ユーザは、リアルタイムでも、代行ファイル受信（delayed file delivery）によっても、互いに通信することができる。すなわち、同じサーバに接続されたユーザは誰でも、ネットワーク２を必要とせずに互いに通信することができ、また、サーバ４および６など異なるサーバのユーザは、ネットワーク２を介して互いに通信することができる。ネットワークは、本来、ローカル（すなわち、ＬＡＮ）でもよく、サーバ８および９で示すような、他のシステムにさらに接続されていてもよい（図示せず）。ネットワーク２の構成は、一般にインターネットにも適用可能である。
【０００４】
従来、汎用システムは、その性能によって特徴づけられていた。概略的にいうと、システムは、特定の動作を処理する速度に基づいて評価される。例として、１秒当たりのトランザクション、１秒当たりのウェブ要求などがある。最近は、商業、国家、環境上の関心により、電力消費が重要になってきている。コンピューティング・システムは、北米で生成される電力の約１０分の１を消費すると見積もられている。したがって、性能を損なわない、電力効率のよいコンピューティング・システムに対する要求が高まっている。
【０００５】
汎用コンピューティング・システム（クライアント、サーバ、または非プログラム式装置）は、プロセッサ、メイン・メモリ、およびいくつかの装置を備える。いくつかのバスが、通常、こうした構成要素を公知のプロトコルに従って接続する。このようなプロトコルの一例は、ＰＣＩ（周辺装置相互接続）である。一般的な汎用コンピュータ・システムでは、プロセッサは、各周辺装置要求を、装置で発生する割込みの結果として処理する。各割込みが起こると、プロセッサではコンテキスト・スイッチが起こり、その間、プロセッサの状態はメイン・メモリに保存されて、装置要求を処理するための新しい状態が開始される。このような各コンテキスト・スイッチは、状態の転移と様々なメモリ・キャッシュへの破壊的な影響とによる過度のオーバヘッド、ならびにその結果生じるメモリ参照のローカル性の変動（perturbation）を招く。特に、最新のプロセッサは、プロセッサの速度とメモリ・アクセス時間の間の隔たりが大きくなっているので、この種のオーバヘッドに対してより敏感になっている。したがって、システム装置から高い頻度で割込みが生成されると、性能にとって有害である。
【０００６】
ポーリングは、プロセッサ（ＣＰＵ）がそれによって装置要求を処理することができる、割込みに代わる方法である。ＣＰＵは、たとえば、処理すべきパケットが存在するかどうかを判断するために、ネットワーク装置をポーリングする。ネットワーク機器、たとえばソフトウェア・ベースのスイッチ、ファイアウォール、プロキシ・サーバ、そして第１層のウェブ・サーバさえもが、割込みを積極的にまとめるために、また、割込みを処理する間のコンテキスト・スイッチに要する待ち時間を削減することによってシステム全体の性能を高めるために、ポーリングによる入出力（Ｉ／Ｏ）をますます使用するようになっている。ポーリングは、ネットワーク・トラフィックなどの装置の活動率がそれほど高くないときに装置の状況を不必要にかつ絶え間なく調べるので非効率的である。さらに、ポーリングは、電力消費にとって有害である。というのは、ポーリングは、するべき作業があってもなくても絶えず起こり、システムが、ＣＰＵによって消費される電力を節約するために適切な命令を発行することができる「スリープ」状態に入るのを妨げるからである。したがって、ポーリングは、最も基本的な節電戦略を無効にする恐れがある。
【０００７】
上記のことを考慮すると、システム全体の性能および応答性を高め、節電し、精巧な電力管理機構を可能にする、装置のサービス要求を管理するための改良された方法を考案することが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、本発明の１つの目的は、コンピュータ・システムにおける、装置のサービス要求を処理する改良された方法を提供することである。
【０００９】
本発明の別の目的は、ポーリングを使用してこのような装置のサービス要求を、高い性能でより効率的に処理する方法を提供することである。
【００１０】
本発明のさらに別の目的は、システムの応答性の制約に違反せずに電力消費を削減するために、適応的に装置をポーリングすることができる、改良されたデータ処理システムを提供することである。
【課題を解決するための手段】
【００１１】
上述の目的は、保留されたサービス要求のポーリング周期を適応させる方法において達成され、一般にこの方法は、保留されたサービス要求の有無を調べるためにシステムをポーリングするステップと、保留されたサービス要求があったかどうかを記録するステップと、蓄積したデータに基づいて、システム装置が十分にアイドル状態であるかどうかを判断するステップとを含む。この判断に基づいて、システムは、装置の活動を伝える信号が送られるまで、または調整可能な一定の時間が経過するまでの間、節電モードに入ることを選ぶことができる。このようにして、システムは、システムの性能と応答性を維持しつつ、節電することができる。アイドル状態である時間の最小パーセンテージは、適応的に設定することができ、最低限の待ち時間制約およびタイマ割込みの周期も同様である。プロセッサの動作は、節電の後で、タイマ割込みまたは装置割込みのどちらかの割込みに応答して、再開される。
【００１２】
本発明の、上記ならびに追加の目的、特徴、および利点は、以下の詳細な説明で明らかになるであろう。
【００１３】
添付の図面を参照することにより、当業者には、本発明がよりよく理解され、その多くの目的、特徴、および利点が明らかになるであろう。
【発明を実施するための最良の形態】
【００１４】
異なる図面で同じ参照記号を使用しているものは、類似のまたは同一の項目を示す。
【００１５】
ここで図面、具体的には図２を参照すると、本発明の一実装形態による、ネットワーク通信機能を実行するようにプログラムされた、データ処理システムの一実施形態１１を示してある。本発明は、ルータ、ファイアウォール、サーバなど、多くの異なるタイプのネットワーク機器に適用することができ、システム１１についての以下の説明は、これらの、および他の様々なネットワーク装置をカバーするために、ある程度包括的なものとなっている。特定の適用例に基づくシステム１１のさらなる詳細は、当業者には明らかであろう。
【００１６】
システム１１は、プログラム命令を実行する中央処理装置（ＣＰＵ）１２と、システムの基本的な入出力論理を格納しているファームウェアまたは読出し専用メモリ（ＲＯＭ）１４と、ＣＰＵ１２が使用するプログラム命令およびオペランド・データを一時的に格納するダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）１６とを含む。ＣＰＵ１２、ＲＯＭ１４、およびＤＲＡＭ１６はすべて、システム・バス１８に接続される。図示してはいないが、オン・ボードの（Ｌ１）キャッシュや第２レベルの（Ｌ２）キャッシュなどの追加の構造が、メモリ階層にあってもよい。
【００１７】
また、ＣＰＵ１２、ＲＯＭ１４、およびＤＲＡＭ１６は、ＰＣＩ（周辺装置相互接続）ローカル・バス２０に、ＰＣＩホスト・ブリッジ２２を使って結合される。ＰＣＩホスト・ブリッジ２２は、待ち時間の短い経路を提供し、これを介してプロセッサ１２は、バス・メモリまたは入出力（Ｉ／Ｏ）アドレス空間内部のどこにマッピングされたＰＣＩ装置にもアクセスすることができる。ＰＣＩホスト・ブリッジ２２はまた、ＰＣＩ装置がＤＲＡＭ１６にアクセスできるようにするための、高帯域幅経路を提供する。ＰＣＩローカル・バス２０には、ネットワーク・インタフェース・アダプタ２４およびＳＣＳＩ（小型コンピュータ・システム・インタフェース）アダプタ２６が接続される。ネットワーク・インタフェース・アダプタ２４は、データ処理システム１１を、ローカル・エリア・ネットワーク（ＬＡＮ）やインターネットなどの外部コンピュータ・ネットワーク３４に接続するのに使用することができる。ＳＣＳＩアダプタ２６は、高速ＳＣＳＩディスク・ドライブ３６を制御するのに使用することができる。ディスク・ドライブ３６は、後で説明するように本発明を実施するプログラムなどのプログラム命令およびデータを、より永久的な状態で格納する。システム１１は、複数のネットワーク・インタフェース・アダプタまたは記憶装置を使用することができる。適用例によっては、他の装置を、アダプタ３０を備えるインディケータとして、ＰＣＩバス２０に接続することもできる。たとえば、アダプタ３０は、システム１１のプログラミングを可能にするシリアル・インタフェースを提供することができる。
【００１８】
この例示的な実装形態は、本発明を実施するプログラム命令をディスク・ドライブ３６（記憶媒体）上で提供するが、本発明は伝送媒体など他のコンピュータ可読媒体を利用するプログラム製品でも実装できることが、当業者には理解されよう。一実施形態では、本発明の計算ステップは、Ｃ言語などのプログラミング言語を使用して、プログラム・コードとして実装することができる。
【００１９】
この例示的な実施形態では、データ処理システム１１は、ネットワーク通信のためのプログラム命令を実行し、特に、電力効率のよい方法で割込みを管理するために、Ｉ／Ｏ装置（たとえば、ＳＣＳＩアダプタ２６やネットワーク・インタフェース２４）をポーリングするための新規の技術を使用する。したがって、プログラム命令は、ネットワーク通信機能の従来の態様を含んでもよく、その詳細は、本開示を参照すれば当業者には明らかであろう。
【００２０】
本発明は、装置の適応的ポーリングのための機構を提供し、非アクティブ期間中は、システムの応答性制約に違反することなく電力効率を上げるために、ＣＰＵ１２を選択的に節電状態に置く。この例示的な実装形態では、この機構を実装するために、４つの情報が、ポーリングの基盤の一部として使用される。その４つの情報とは、ポーリング機能の呼出しが何らかの作業を生成したかどうか、ポーリングを受けた装置が保留されたサービス要求（pending service request）をもっていなかったのは何度か、次のタイマ割込みまでどれだけ時間があるか、ＣＰＵタイマ量子（quanta）がどれだけか、である。特定の装置、たとえばネットワーク・インタフェース２４やＳＣＳＩアダプタ２６への割込みを許可および禁止する機能が提供される。適応的アルゴリズムは、いつシステムが節電モードに入るのに十分なほどアイドル状態であったかを判断するＣＰＵタイマ量子、ならびに閾値を変更するための機構を提供する。
【００２１】
図５は、従来のデータ処理システムが割込み駆動式であるときの、そのようなシステムに関連する様々な状態を示す。システムが、アプリケーションを実行し、またはオペレーティング・システム内のタスクを実施しているときは、実行１０１状態にあるとみなされる。量子として定義される規則的な間隔で、タイマ割込みが信号で送られる。システムは、コンテキスト・スイッチを実施して、タイマ割込みサービス・ルーチン（ＩＳＲ）１０２に入る。タイマＩＳＲ１０２は、周期的な機能を実行し、マルチタスク・オペレーティング・システムでスケジューリングを実施する任を負う。タイマＩＳＲ１０２がそのタスクを完了した後、システムのコンテキストが復元され、制御が実行１０１状態に戻る。
【００２２】
ネットワーク・インタフェースやディスクなどのシステム装置は、システムのアテンションを要求する活動を検出すると、装置割込み１１１をトリガする。こうした割込みは、ディスク書込みやネットワーク送信など、その前に要求された動作の完了によってトリガすることも、ネットワークで新しいパケットを受信するといった新しいデータの受信によってトリガすることもできる。このような割込みを受け取ると、システムは、コンテキスト・スイッチを実施して、装置の割込みサービス・ルーチン（装置ＩＳＲ１０３）を実行する。このルーチンは、装置の状況を調べ、要求された動作があれば実施し、その後でシステム・コンテキストが復元され、制御が実行１０１状態に戻る。
【００２３】
実行準備ができているアプリケーションもオペレーティング・システムのタスクもない場合、または上述のタスクがすべて、システム・イベントまたは装置Ｉ／Ｏを待ち続けてブロックされている場合、システムは「アイドル」１１２状態であるといい、ほとんどのシステムは、節電モード、すなわちスリープ１０４状態に移るように構成される。システムは、割込み（タイマ１２０または装置１２１のどちらか）を受け取るまでこの状態に留まり、割込みを受け取った後で、制御が適切なＩＳＲ（１０２または１０３）に移る。通常、どちらかのＩＳＲの結果、アプリケーションまたはオペレーティング・システム向けの新しい作業が作成され、実行１０１状態に戻る。それ以外の場合、すなわちシステムがまだアイドル状態である場合、システムは、節電、すなわちスリープ１０４状態に戻る。
【００２４】
ポーリング・システム（図６）では、装置の活動を信号で伝えるのに割込みは使用されない。そうではなく、タイマＩＳＲ１０２の間またはアイドル・ポーリング・ループ１０５の間に、装置の状況が、周期的に調べられる。ポーリング・ループ１０５は、新しい装置活動を検出すると、装置のＩＳＲを呼び出す。システムは絶えず装置の状況を調べるか、またはアプリケーションもしくはシステム・タスクを実行しているので、節電、すなわちスリープ状態１０４に移る機会がない。アプリケーションもシステム・タスクも実行する必要がないときに単にスリープすると、装置サービス要求に対する待ち時間制約に違反し、システム性能の低下を引き起こすことがある。
【００２５】
図３は、２つの従来システムを、システムの性能も応答性も低下させることなくシステムの節電を調整する適応機構と複合させたもの（hybrid）を表す。システムは実行状態１０１で開始し、システムに、それ以上実行すべきアプリケーションもシステム・タスクもないとき、またはタイマ割込みが起こったとき、システムはポーリング状態１０５に移行する。装置の状況のポーリングによってサービス要求が検出されると、制御は適切な装置のＩＳＲ１０３に移る。ＩＳＲが完了すると、アクティビティカウンタが増分されて制御が適応ルーチン１０６に移る。装置アクティビティが検出されない場合、非アクティビティ・カウンタが増分されて制御は適応ルーチン（Adaptationroutine）１０６に移る。
【００２６】
適応ルーチン１０６は、（ポーリングを受けた装置が、なすべき作業をもっていなかったこと、または保留されたサービス要求をもっていたことがそれぞれ何度かを追跡する）非アクティビティ・カウンタやアクティビティ・カウンタなどのシステム状態を調べることができ、システムの応答性についての制約を維持しながら節電の程度を高めるまたは低めるようにシステム・パラメータを適応させる。この適応はシステムによって変わり得るが、ある実施形態では、装置の状況をポーリングして、ある一定回数アクティビティがないと返事があった後で装置を「アイドル」状態であると宣言し、したがってシステムを節電にとって適格にすることを選択できる。さらに、アイドル状態になるための閾値、すなわちシステムが「アイドル」状態であるとみなされるまでの連続した非アクティビティ・ポーリングの回数を調整することを選択することもできる。
【００２７】
アイドル状態が長く続く間（その間、タイマ量子の時間中ずっと、装置アクティビティが検出されない）、適応アルゴリズム１０６は、装置がアイドル状態であるかどうかを判断するのにただ一度の装置状況のポーリングで済むように閾値を小さくすることによって、ポーリングを禁止し、再度装置割込みを許可することを選ぶことができる。この手法は、システムをできるだけスリープ状態に保ち、装置アクティビティまたはタイマ割込みによってのみ割込みを受けるようにするのに役立つ。このような装置アクティビティはどれも、適応ルーチン１０６をトリガして、装置割込みを禁止させ、非アクティビティ状態のための閾値を大きくさせる。
【００２８】
別の実施形態では、タイマ割込みがあまり頻繁に起こらないように、その周期（quanta）を調整することを選択できる。システムのスケジューリング方針および周期的なタスクを考慮することにより、こうした調整に上限を設けることができる。
【００２９】
タイマ量子の終りまでの時間がサービス要求に対する最小待ち時間閾値よりも小さい場合、サービス要求を一括処理するために、適応ルーチン１０６はさらに、非アクティビティ状態のための閾値に達する前に、システムがアイドル状態であると宣言することを決定することができる。単純化した例で、ウェブ・サーバ・ブレード用のタイマ量子が１０ミリ秒に設定されたとする。最後のクロックの刻時（tick）から、ポーリングおよび活動で８ミリ秒が経過した。最小待ち時間制約が３ミリ秒に設定されている場合、ＣＰＵは、次のタイマの刻時までの残り２ミリ秒間、スリープ状態になる。
【００３０】
適応ルーチン１０６が実行された後、システムは、システムまたはアプリケーションのタスクの実行準備ができているかどうか調べる。準備ができている場合、制御は、タスクを実行するために実行１０１状態に戻る。どのタスクも実行準備ができていない場合、システムは、適応パラメータを検査して、システムが「アイドル」状態とみなされるかどうか調べる。システムがアイドル状態であるとみなされない場合、再度ポーリング状態１０５に入って装置の状況を検査する。システムがアイドル状態であると判断され、かつ節電によって応答性が低下しない場合、システムはスリープ１０４状態に入る。割込み（装置またはタイマ）があると、システムが節電スリープ１０４状態から出てポーリング状態１０５に入る。
【００３１】
最小待ち時間制約は、システム設計者によってハードコード化されてもよく、フィードバックに基づいて、システムの端末間応答時間制約を満たすように経時的に適応させてもよい。この端末間応答時間の導出はアプリケーションの仕様であり、ユーザの必要に応じてかなり変わり得る。たとえば、５秒の伝送待ち時間を有する、長距離ネットワーク上のウェブ・サーバは、節電によって引き起こされる４ミリ秒の待ち時間をより簡単に許容することができる。モデル化した結果、ウェブ・サーバ・ブレードにインテルのＣＰＵアーキテクチャを使用した場合、３０％〜４０％の潜在的な節電が示された。
【００３２】
例示的な実施形態を示す図４のフロー図を参照すれば、本発明をさらに理解することができよう。図４のステップのいくつかは、括弧内に、図３に示した対応する機能動作状態（functional operational states）を表す第２の参照番号を示す。処理は、始めに、ユーザ・アプリケーションを実行する（５０）。システムは、割込みを待つ（５４）か、あるいは実行する準備のできたアプリケーションまたはシステムのタスクがなくなるのを待つ。次いで、システムは、装置をポーリングして、保留されたサービス要求があるかどうかを調べる（５８）。保留されたサービス要求がある場合（６２）、システムはアクティビティを調節し（６１）、その要求を処理するために装置の割込みサービス・ルーチンに移る（６４）。装置の要求を処理した後、システムは適応（６８）ステップに進む。保留されたサービス要求が検出されない場合、システムの非アクティビティ・カウンタが増分され（６３）、次いで適応ルーチン（６８）が実行される。
【００３３】
先に述べたように、適応ルーチン（６８）は、アクティビティ、非アクティビティ、または量子中の残り時間あるいはそのすべてに基づいてシステム変数を調整する。次いで、適応ルーチンは、装置がアイドル状態であると宣言するべきどうか判断する。装置がアイドル状態である場合、適応ルーチンは、装置が割込み可能であると判断することができる。適応ルーチンの完了後、システムは、実行の準備ができているアプリケーションまたはシステム・タスクが存在するかどうかを調べる（７０）。存在する場合、システムはタスクの実行に戻る（５０）。存在しない場合、システムは、適応ルーチンが装置をアイドル状態と宣言したかどうかを調べる（７２）。宣言していない場合、システムは、保留されたサービス要求の有無を調べるため装置のポーリングに戻る（５８）。装置がアイドル状態の場合、システムは、節電状態に置かれ（７４）、タイマ割込みまたは装置割込みを受け取るまでその状態に留まる。
【００３４】
装置割込みのために、システムが節電状態を抜けることになった場合（６９）、装置割込みは禁止され（５８）、システムは保留されたサービス要求の有無を調べるためポーリングに戻る（５８）。
【００３５】
本発明を、特定の実施形態に関して説明したが、この説明は、限定的な意味で解釈すべきものではない。本発明の説明を参照すれば、開示した実施形態の様々な変更、ならびに本発明の代替実施形態が、当業者には明らかであろう。したがって、添付の特許請求の範囲で定義される本発明の精神および範囲から逸脱することなく、そのような変更が行えることが企図されている。
【００３６】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３７】
（１）プロセッサおよび１つまたは複数の入出力（Ｉ／Ｏ）装置を有するデータ処理システムにおいて、保留された装置サービス要求のポーリング周期を適応させる方法であって、
保留されたサービス要求の有無を調べるために、前記データ処理システムの前記装置をポーリングするステップと、
保留されたサービス要求があったかどうかを記録するステップと、
蓄積されたデータに基づいて、装置がアイドル状態であると判断するステップと、
前記判断ステップに応答して、前記プロセッサを低電力状態に置くステップとを含む方法。
（２）前記ポーリングするステップで受け取った１つまたは複数のサービス要求を処理するステップをさらに含む、上記（１）に記載の方法。
（３）閾値であって、それを超えると装置がアイドル状態であるとみなされる、保留されたサービス要求が見つからないポーリングの最小回数の前記閾値を適応的に設定するステップをさらに含む、上記（１）に記載の方法。
（４）システムおよび装置の非アクティビティ状態に応答して前記プロセッサがタイマによる割込みを受ける頻度に対応するように、タイマ量子の周期を適応的に設定するステップをさらに含む、上記（１）に記載の方法。
（５）装置のアクティビティおよび非アクティビティに応答して、装置割込みを許可または禁止するステップをさらに含む、上記（１）に記載の方法。
（６）保留されたサービス要求が存在する間、前記システムが前記低電力状態に留まることができる最長の時間に合わせて、最小待ち時間閾値を適応的に設定するステップをさらに含む、上記（１）に記載の方法。
（７）前記プロセッサが前記低電力状態に置かれた後で、後の割込みに応答してその動作を再開させるステップをさらに含む、上記（１）に記載の方法。
（８）少なくとも１つのプロセッサと、
前記プロセッサに接続されたメモリ装置と、
前記プロセッサに接続された１つまたは複数の入出力（Ｉ／Ｏ）装置と、
前記メモリ装置に格納されたプログラム命令とを備えるデータ処理システムであって、前記プログラム命令が、保留されたサービス要求の有無を調べるために前記装置をポーリングすること、保留されたサービス要求があったかどうかを記録すること、蓄積されたデータに基づいて装置がアイドル状態であると判断すること、および、それに応答して前記プロセッサを低電力状態に置くことによって、保留された装置サービス要求のポーリング周期を適応させるためのものである、データ処理システム。
（９）前記プログラム命令が、前記ポーリングで受け取った１つまたは複数の割込みをさらに処理する、上記（８）に記載のデータ処理システム。
（１０）それを超えると装置がアイドル状態であるとみなされる、保留されたサービス要求が見つからないポーリングの最小回数の閾値を、前記プログラム命令がさらに適応的に設定する、上記（８）に記載のデータ処理システム。
（１１）システムおよび装置の非アクティビティ状態に応答して前記プロセッサがタイマによる割込みを受ける頻度に対応するように、前記プログラム命令がタイマ量子の周期をさらに適応的に設定する、上記（８）に記載のデータ処理システム。
（１２）前記プログラム命令が、装置の活動およびその欠如に応答して、さらに装置割込みを許可または禁止する、上記（８）に記載のデータ処理システム。
（１３）保留されたサービス要求が存在する間、前記システムが前記低電力状態に留まることができる最長の時間に合わせて、前記プログラム命令がさらに最小待ち時間閾値を適応的に設定する、上記（８）に記載のデータ処理システム。
（１４）前記プロセッサが前記低電力状態に置かれた後で、前記プログラム命令が後の割込みに応答してその動作を再開させる、上記（８）に記載のデータ処理システム。
（１５）１つのプロセッサおよび１つまたは複数の入出力（Ｉ／Ｏ）装置を有するデータ処理システムにおいて、保留された装置サービス要求のポーリングの周期を適応させるコンピュータ・プログラムであって、
コンピュータ可読媒体と、
前記媒体にあるプログラム命令とを備え、前記プログラム命令が、保留されたサービス要求の有無を調べるために、前記装置をポーリングし、保留されたサービス要求があったかどうかを記録し、蓄積されたデータに基づいて、装置がアイドル状態であると判断し、かつ、それに応答して、前記プロセッサを低電力状態に置く、コンピュータ・プログラム。
（１６）前記プログラム命令が、前記ポーリングで受け取った１つまたは複数の割込みをさらに処理する、上記（１５）に記載のコンピュータ・プログラム。
（１７）閾値であって、それを超えると装置がアイドル状態であるとみなされる、保留されたサービス要求が見つからないポーリングの最小回数の前記閾値を、前記プログラム命令がさらに適応的に設定する、上記（１５）に記載のコンピュータ・プログラム。
（１８）システムおよび装置の非アクティビティ状態に応答して前記プロセッサがタイマによる割込みを受ける頻度に対応するように、前記プログラム命令がタイマ量子の周期をさらに適応的に設定する、上記（１５）に記載のコンピュータ・プログラム。
（１９）前記プログラム命令が、装置のアクティビティおよびその欠如に応答して、さらに装置割込みを許可または禁止する、上記（１５）に記載のコンピュータ・プログラム。
（２０）保留されたサービス要求が存在する間、前記システムが前記低電力状態に留まることができる最長の時間に合わせて、前記プログラム命令がさらに最小待ち時間閾値を適応的に設定する、上記（１５）に記載のコンピュータ・プログラム。
（２１）前記プロセッサが前記低電力状態に置かれた後で、前記プログラム命令が後の割込みに応答してその動作を再開させる、上記（１５）に記載のコンピュータ・プログラム。
【図面の簡単な説明】
【００３８】
【図１】相互接続されたサーバおよびワークステーション・クライアントを含む、従来のコンピュータ・ネットワークを示す図である。
【図２】本発明の一実施形態による、ネットワーク通信機能を実行するようにプログラムされた、データ処理システムを示すブロック図である。
【図３】本発明の一実装形態による、図２のデータ処理システムで使用される遷移を示す状態図である。
【図４】本発明のポーリング機構の一実装形態の論理フローを示す図である。
【図５】従来の割込み駆動システムにおける遷移を示す状態図である。
【図６】従来のポーリングによるＩ／Ｏシステムにおける遷移を示す状態図である。
【符号の説明】
【００３９】
２  クライアント−サーバ・コンピューティング・ネットワーク、ネットワーク
４  サーバ
６  サーバ
８  サーバ
９  サーバ
１０  ワークステーション・クライアント、クライアント
１１  一実施形態、システム、データ処理システム
１２  中央処理装置（ＣＰＵ）、プロセッサ
１４  ファームウェアまたは読出し専用メモリ（ＲＯＭ）
１６  ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）
１８  システム・バス
２０  ＰＣＩ（周辺装置相互接続）ローカル・バス、ＰＣＩバス
２２  ＰＣＩホスト・ブリッジ
２４  ネットワーク・インタフェース・アダプタ、ネットワーク・インタフェース
２６  ＳＣＳＩ（小型コンピュータ・システム・インタフェース）アダプタ
３０  アダプタ
３４  外部コンピュータ・ネットワーク
３６  高速ＳＣＳＩディスク・ドライブ、ディスク・ドライブ
【図１】
2004199683.tif 000003
【図２】
2004199683.tif 000004
【図３】
2004199683.tif 000005
【図４】
2004199683.tif 000006
【図５】
2004199683.tif 000007
【図６】
2004199683.tif 000008