(57)【要約】【課題】  これまでよりも処理性能を低下させることなく、情報処理装置の消費電力を低減させる。【解決手段】  デバイス間のデータ転送を制御する情報処理装置であって、当該情報処理装置の電源の状態に基づいて、当該情報処理装置を通常モード及び省電力モードの何れにより動作させるかを判断する動作モード判断部と、当該情報処理装置を省電力モードで動作させると判断した場合に、当該情報処理装置を通常モードで動作させると判断した場合と比較して、データ転送に用いる信号線の数をより少ない数に設定するデータ転送設定部とを備える情報処理装置を提供する。【選択図】図３
2006133895.tif 000002
【特許請求の範囲】
【請求項１】
デバイス間のデータ転送を制御する情報処理装置であって、
当該情報処理装置の電源の状態に基づいて、当該情報処理装置を通常モード及び省電力モードの何れにより動作させるかを判断する動作モード判断部と、
当該情報処理装置を前記省電力モードで動作させると判断した場合に、当該情報処理装置を前記通常モードで動作させると判断した場合と比較して、前記データ転送に用いる信号線の数をより少ない数に設定するデータ転送設定部と
を備える情報処理装置。
【請求項２】
各々の前記デバイスが他の前記デバイスとの間で行うデータ転送を中継するデータ転送制御部を更に備え、
各々の前記デバイスは、各々がデータをシリアル転送する複数のシリアル信号線により、前記データ転送制御部と接続し、
前記データ転送設定部は、当該情報処理装置を前記省電力モードで動作させると判断した場合に、当該情報処理装置を前記通常モードで動作させると判断した場合と比較して、前記データ転送制御部が各々の前記デバイスとデータ転送するシリアル信号線の数をより少ない数に設定する
請求項１記載の情報処理装置。
【請求項３】
前記データ転送設定部は、前記データ転送制御部が各々の前記デバイスとデータ転送するシリアル信号線の数を変更する場合に、データ転送を一旦中断し、変更先のシリアル信号線の数を、前記データ転送制御部が各々の前記デバイスとデータ転送するシリアル信号線の上限数として設定し、
前記データ転送制御部は、前記データ転送設定部により設定された上限数から順に、データ転送するシリアル信号線の数を順次減少させ、各々の前記デバイスとの間でデータ転送可能なシリアル信号線の最大数を定めるネゴシエーション処理を行う
請求項２記載の情報処理装置。
【請求項４】
前記動作モード判断部は、前記情報処理装置を駆動させるバッテリの残量が予め定められた基準量より多い場合に、当該情報処理装置を前記通常モードにより動作させると判断し、前記バッテリの残量が前記基準量以下の場合に、当該情報処理装置を前記省電力モードにより動作させると判断する
請求項１記載の情報処理装置。
【請求項５】
前記動作モード判断部は、前記情報処理装置が外部のＡＣ電源により駆動している場合に、当該情報処理装置を前記通常モードにより動作させると判断し、前記情報処理装置がバッテリにより駆動している場合に、当該情報処理装置を前記省電力モードにより動作させると判断する
請求項１記載の情報処理装置。
【請求項６】
前記動作モード判断部は、当該情報処理装置が前記ＡＣ電源により駆動している場合において、当該情報処理装置の消費電力が、前記ＡＣ電源が供給可能な電力の上限を定める基準電力を超えた場合には、当該情報処理装置を前記省電力モードにより動作させると判断する
請求項５記載の情報処理装置。
【請求項７】
当該情報処理装置の消費電力が前記基準電力を超え、かつ前記データ転送設定部がデータ転送に用いる信号線の数を減少させた場合において、当該情報処理装置の消費電力が前記基準電力以下に低下しない場合に、少なくとも一つの前記デバイスの動作モードを、消費電力がより低い動作モードに変更するデバイス動作モード変更部を更に備える
請求項６記載の情報処理装置。
【請求項８】
前記データ転送設定部は、前記情報処理装置が前記バッテリにより駆動している場合において、何れかの前記デバイスにおいて通常時よりデータ転送レートが高い処理を開始する旨の処理開始指示を受けた場合に、前記データ転送に用いる信号線の数を増加させる
請求項５記載の情報処理装置。
【請求項９】
前記データ転送設定部は、前記処理開始指示を受けた場合において、前記処理開始指示が示す処理が予め定められた基準猶予期間が経過するまでの間に行われない場合に、前記データ転送に用いる信号線の数を減少させる
請求項８記載の情報処理装置。
【請求項１０】
前記動作モード判断部は、当該情報処理装置の何れかの部分の温度が、当該部分に対応して定められた異常な高温を示す基準温度を超えた場合に、当該情報処理装置を前記省電力モードで動作させると判断し、当該温度が当該基準温度以下の場合に、当該情報処理装置を前記通常モードで動作させると判断する
請求項１記載の情報処理装置。
【請求項１１】
何れかの前記デバイスが他の前記デバイスに対してデータを要求するトランザクションの頻度を検出するトランザクション頻度検出部を更に備え、
前記データ転送設定部は、前記トランザクション頻度検出部が検出したトランザクションの頻度に更に基づいて、当該デバイス及び当該他のデバイスが、当該トランザクションに対応するデータ転送に用いる信号線の数を設定する
請求項１記載の情報処理装置。
【請求項１２】
情報処理装置に設けられたデバイス間のデータ転送を制御する制御方法であって、
当該情報処理装置の電源の状態に基づいて、当該情報処理装置を通常モード及び省電力モードの何れにより動作させるかを判断する動作モード判断段階と、
当該情報処理装置を前記省電力モードで動作させると判断した場合に、当該情報処理装置を前記通常モードで動作させると判断した場合と比較して、前記データ転送に用いる信号線の数をより少ない数に設定するデータ転送設定段階と
を備える制御方法。
【請求項１３】
情報処理装置に設けられたデバイス間のデータ転送を制御するプログラムであって、
前記情報処理装置を、
当該情報処理装置の電源の状態に基づいて、当該情報処理装置を通常モード及び省電力モードの何れにより動作させるかを判断する動作モード判断部と、
当該情報処理装置を前記省電力モードで動作させると判断した場合に、当該情報処理装置を前記通常モードで動作させると判断した場合と比較して、前記データ転送に用いる信号線の数をより少ない数に設定するデータ転送設定部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法、及びプログラムに関する。特に、本発明は、消費電力を制御する情報処理装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータやサーバー・システムの新しいバス・アーキテクチャとしてPCI Expressの導入が予定されており、モバイルPCにおいても近日にPCI Express搭載製品の発表が予定されている。PCI Expressの導入によりI/Oバスのバンド幅は飛躍的に向上し、システムのパフォーマンスの向上が期待される。例えば、従来のPCIバスのバンド幅は133MB/secであり、AGPバスのバンド幅は1GB/secであるのに対し、PCI Express x16のバンド幅は4GB/secにも達する。
【０００３】
しかしながら、バンド幅の向上に伴い、PCI Expressを実現する各デバイスの消費電力も増加している。このため、従来より効率的な消費電力制御が必要となる。これまでの消費電力制御の一例として、パラレルバスのバス幅を制御する技術を示す（特許文献１参照。）。この文献は、マイクロコンピュータバス上のデータトラフィック量に応じて、その幅を変更する技術を開示している。
【０００４】
【特許文献１】特開２００２−２５９３２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、この技術において、データトラフィック量の予測は困難であり、その困難性を解決する手段については充分に開示されていない。また、バスに接続した各デバイスは、例えば３２ビット等の最大バス幅を前提として設計されている。このため、各デバイスを、バス幅を減少させる技術に適用するためには相当な改造が必要となる。このように、既存技術との親和性の低さが問題となる。
【０００６】
また、パラレスバスのバス幅を減少させてしまうと、データ転送に要する時間は著しく低下してしまう。即ちパラレルバスにおいて、送信すべきデータは通常最大ビット幅である３２ビットずつに分割されている。従って、３２ビットのバス幅を８ビットに減少させた場合には、そのデータを更に４分割して送信するので、４倍の転送時間（特に、レイテンシ）が必要になる。
【０００７】
これに対して、PCI Express等のシリアルバスは、各々が独立してデータをシリアル転送する複数のシリアル信号線により構成される。より詳しくは、各々のシリアル信号線は、送信すべきデータを予め分割した複数のデータパケットを１つずつ転送する。このため、シリアル信号線の数を変更しても、１つのデータパケットの転送に要する時間は同一である。また、転送すべきデータ量が少ない場合には、シリアル信号線の数を減少させた場合であっても、転送時間が増加しない。
【０００８】
本発明は、シリアルバスのバス幅を、ＰＣの電源状態に基づいて動的に制御する。これにより、データの転送時間の増加量をこれまでより小さく抑えつつ、発熱量を低減し、かつモバイルＰＣ等のバッテリライフを向上させることを目的とする。
【０００９】
そこで本発明は、上記の課題を解決することのできる情報処理装置、制御方法、及びプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の第１の形態においては、デバイス間のデータ転送を制御する情報処理装置であって、当該情報処理装置の電源の状態に基づいて、当該情報処理装置を通常モード及び省電力モードの何れにより動作させるかを判断する動作モード判断部と、当該情報処理装置を省電力モードで動作させると判断した場合に、当該情報処理装置を通常モードで動作させると判断した場合と比較して、データ転送に用いる信号線の数をより少ない数に設定するデータ転送設定部とを備える情報処理装置を提供する。
【００１１】
また、各々のデバイスが他のデバイスとの間で行うデータ転送を中継するデータ転送制御部を更に備え、各々のデバイスは、各々がデータをシリアル転送する複数のシリアル信号線により、データ転送制御部と接続し、データ転送設定部は、当該情報処理装置を省電力モードで動作させると判断した場合に、当該情報処理装置を通常モードで動作させると判断した場合と比較して、データ転送制御部が各々のデバイスとデータ転送するシリアル信号線の数をより少ない数に設定してもよい。
【００１２】
また、データ転送設定部は、データ転送制御部が各々のデバイスとデータ転送するシリアル信号線の数を変更する場合に、データ転送を一旦中断し、変更後のシリアル信号線の数を、データ転送制御部が各々のデバイスとデータ転送するシリアル信号線の上限数として設定し、データ転送制御部は、データ転送設定部により設定された上限数から順に、データ転送するシリアル信号線の数を順次減少させ、各々のデバイスとの間でデータ転送可能なシリアル信号線の最大数を定めるネゴシエーション処理を行ってもよい。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【００１３】
本発明によれば、これまでよりも処理性能を低下させることなく、情報処理装置の消費電力を低減させることができる。
【発明を実施するための最良の形態】
【００１４】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１５】
図１は、情報処理装置１０の全体構成を示す。情報処理装置１０は、ホストコントローラ１０８２により相互に接続される中央処理装置１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部を備える。また、情報処理装置１０は、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部を備える。また、情報処理装置１０は、入出力コントローラ１０８４に接続されるＢＩＯＳ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部を備える。
【００１６】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスする中央処理装置１０００及びグラフィックコントローラ１０７５とを接続する。また、ホストコントローラ１０８２は、本発明に係るデータ転送制御部の一例であり、各々のデバイスが他のデバイスとの間で行うデータ転送を中継する。一例として、ホストコントローラ１０８２は、グラフィックコントローラ１０７５が中央処理装置１０００との間で行うデータ転送を中継する。
【００１７】
より詳細には、ホストコントローラ１０８２は、各々がデータをシリアル転送する複数のシリアル信号線により、各々のデバイスと接続している。このシリアル信号線は、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓの規格に準拠している。そしてＰＣＩ  Ｅｘｐｒｅｓｓの規格において、ホストコントローラ１０８２は、１レーン、２レーン、４レーン、８レーン、１６レーン、及び３２レーンの何れかのレーン数のシリアル信号線を選択して、各デバイスとのデータ転送に用いることができる。また、本発明に係るデバイスとは、いわゆるＩ／Ｏデバイスのみならず、中央処理装置１０００やＲＡＭ１０２０等のように、ホストコントローラ１０８２によりデータ転送を中継する対象となるコンポーネントを含む。
【００１８】
中央処理装置１０００は、ＢＩＯＳ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＡＭ１０２０は、中央処理装置１０００により読み出される各種のデータを格納している。グラフィックコントローラ１０７５は、中央処理装置１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、中央処理装置１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００１９】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、ＣＤ−ＲＯＭドライブ１０６０、及びエンベッデドコントローラ１０７６とを接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、情報処理装置１０が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。
【００２０】
エンベッデドコントローラ１０７６には、ＡＣ電源及びバッテリ１０７８を選択的に使用させる電源制御部１０７２と、筐体内の温度を測定するサーマルセンサ１０７４とが接続される。また、エンベッデドコントローラ１０７６は、グラフィックコントローラ１０７５と接続し、グラフィックコントローラ１０７５の動作状態を取得する。そして、エンベッデドコントローラ１０７６は、ＡＣ電源等の電源状態、筐体内の温度、又は、グラフィックコントローラ１０７５の動作状態に基づいて、ＳＭＩ(System Management Interrupt)リクエストを入出力コントローラ１０８４に対して出力する。これを受けて、入出力コントローラ１０８４は、ＳＭＩ信号を中央処理装置１０００に対して出力する。
【００２１】
また、入出力コントローラ１０８４には、ＢＩＯＳ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＢＩＯＳ１０１０は、情報処理装置１０の起動時に中央処理装置１０００が実行するブートプログラムや、情報処理装置１０のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００２２】
情報処理装置１０に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出され情報処理装置１０にインストールされて実行される。プログラムが情報処理装置１０等に働きかけて行わせる動作は、図２から図８において後述する。
【００２３】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置１０に提供してもよい。
【００２４】
図２は、エンベッデドコントローラ１０７６の機能を機能ブロックに分類して示す。エンベッデドコントローラ１０７６は、動作モード判断部２００と、３Ｄ処理実行状態判断部２１０として機能する。動作モード判断部２００は、情報処理装置１０の電源の状態に基づいて、情報処理装置１０を通常モード及び省電力モードの何れにより動作させるかを判断する。例えば、動作モード判断部２００は、情報処理装置１０が外部のＡＣ電源により駆動しているかバッテリ１０７８により駆動しているかを、電源制御部１０７２から入力する信号に基づいて判断してもよい。そしてこの場合、動作モード判断部２００は、情報処理装置１０がＡＣ電源により駆動している場合に、情報処理装置１０を通常モードで動作させると判断する。一方、動作モード判断部２００は、情報処理装置１０がバッテリ１０７８により駆動している場合に、情報処理装置１０を省電力モードで動作させると判断する。
【００２５】
また、好ましくは、動作モード判断部２００は、情報処理装置１０がＡＣ電源により駆動している場合において、情報処理装置１０の消費電力が、そのＡＣ電源が供給可能な電力の上限を定める基準電力を超えた場合には、情報処理装置１０を省電力モードにより動作させると判断する。また、これに加えて、動作モード判断部２００は、情報処理装置１０の筐体温度が、筐体に対応して定められた異常な高温を示す基準温度を超えた場合に、情報処理装置１０を省電力モードで動作させると判断してもよい。具体的には、動作モード判断部２００は、サーマルセンサ１０７４から入力する信号に基づいて、情報処理装置１０の筐体温度が基準温度を超えたか否かを判断してもよい。動作モード判断部２００は、以上の判断結果をデータ転送設定部３１０及びデバイス動作モード変更部３２０に通知するべく、ＳＭＩリクエストを入出力コントローラ１０８４に対して出力する。
【００２６】
３Ｄ処理実行状態判断部２１０は、グラフィックコントローラ１０７５において３Ｄグラフィックスの描画処理が行われている頻度を判断する。例えば、３Ｄ処理実行状態判断部２１０は、３Ｄグラフィックスの描画処理を行う毎に出力される信号を、グラフィックコントローラ１０７５から受信する。そして、３Ｄ処理実行状態判断部２１０は、過去の予め定められた期間（例えば数秒）の間に受信したその信号の受信頻度に基づいて、３Ｄグラフィックスの描画処理が行われている頻度を判断する。３Ｄ処理実行状態判断部２１０は、以上の判断結果をデータ転送設定部３１０に通知するべく、ＳＭＩリクエストを入出力コントローラ１０８４に対して出力する。
【００２７】
図３は、中央処理装置１０００の機能を機能ブロックに分類して示す。中央処理装置１０００は、トランザクション頻度検出部３００と、データ転送設定部３１０と、デバイス動作モード変更部３２０として機能する。トランザクション頻度検出部３００は、何れかのデバイスが他のデバイスに対してデータを要求するトランザクションの頻度を検出する。例えば、トランザクション頻度検出部３００は、グラフィックコントローラ１０７５が中央処理装置１０００に対して、描画すべきデータを要求するトランザクションの頻度を検出する。
【００２８】
データ転送設定部３１０は、ＢＩＯＳ１０１０におけるＡＣＰＩ（Advanced Configuration and Power Interface）を用いたプログラムにより実現され、入出力コントローラ１０８４からＳＭＩを受けて起動する。そして、データ転送設定部３１０は、動作モード判断部２００が情報処理装置１０を省電力モード及び通常モードの何れで動作させると判断したかを検出する。データ転送設定部３１０は、動作モード判断部２００が情報処理装置１０を省電力モードで動作させると判断した場合に、動作モード判断部２００が情報処理装置１０を通常モードで動作させると判断した場合と比較して、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線のレーン数をより少ない数に設定する。
【００２９】
また、データ転送設定部３１０は、トランザクション頻度検出部３００が検出したトランザクションの頻度に更に基づいて、例えばグラフィックコントローラ１０７５及び中央処理装置１０００が、そのトランザクションに対応するデータ転送に用いる信号線のレーン数を設定してもよい。更に、データ転送設定部３１０は、３Ｄ処理実行状態判断部２１０が判断した、３Ｄグラフィックスの描画処理の頻度に更に基づいて、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線のレーン数を設定してもよい。
【００３０】
なお、データ転送設定部３１０は、何れかのデバイスにおいて通常時よりデータ転送レートが高い処理を開始する旨の処理開始指示を、利用者から受けた場合には、情報処理装置１０の電源状態に関わらず、データ転送に用いる信号線のレーン数を増加させる。これにより、例えば情報処理装置１０がバッテリ１０７８により駆動している場合であっても、必要に応じてデータ転送レートを高めることができる。
【００３１】
デバイス動作モード変更部３２０は、ＢＩＯＳ１０１０におけるＡＣＰＩ（Advanced Configuration and Power Interface）を用いたプログラムにより実現され、入出力コントローラ１０８４からＳＭＩを受けて起動する。そして、デバイス動作モード変更部３２０は、情報処理装置１０の消費電力が上記の基準電力を超え、かつデータ転送設定部３１０がデータ転送に用いる信号線のレーン数を減少させた場合において、情報処理装置１０の消費電力が基準電力以下に低下しない場合に、少なくとも一つのデバイスの動作モードを、消費電力がより低い動作モードに変更する。
【００３２】
例えば、デバイス動作モード変更部３２０は、グラフィックコントローラ１０７５がデータ転送に用いる信号線のレーン数を減少させてから予め定められた期間が経過しても、情報処理装置１０の消費電力が基準電力以下に低下しない場合には、グラフィックコントローラ１０７５の動作モードを消費電力がより低い動作モードに変更する。
【００３３】
このように、情報処理装置１０の消費電力が基準より高い場合には、デバイスがデータ転送に用いる信号線のレーン数をまず減少し、それでもなお消費電力が低下しない場合にのみ、デバイスの動作モードを変更する。これにより、情報処理装置１０の処理性能をできるだけ保持しつつ、ＡＣ電源の過負荷を防止できる。
【００３４】
図４は、情報処理装置１０がデバイス間のデータ転送を制御する処理の流れ図を示す。図５は、図４に続く処理の流れ図を示す。図６は、図５に続く処理の流れ図を示す。情報処理装置１０は、以下の処理を例えば定期的に、又は、エンベッデドコントローラ１０７６が電源状態の変化を検出した時に行う。まず、データ転送設定部３１０は、シリアル信号線数の制御が有効に設定されているか否かを判断する（Ｓ４００）。シリアル信号線数の制御が有効に設定されていない場合には（Ｓ４００：ＮＯ）、データ転送設定部３１０は、処理を終了する。
【００３５】
一方、シリアル信号線数の制御が有効に設定されている場合に（Ｓ４００：ＹＥＳ）、データ転送設定部３１０は、データ転送に用いる信号線数を増加する旨を示す増加指示、例えば３Ｄグラフィックスの描画処理を開始する処理開始指示を、利用者から受けたか否かを判断する（Ｓ４１０）。例えば、データ転送設定部３１０は、利用者から指示を受け付けるユーティリティソフトウェアを予め起動し、指示を入力する入力画面を表示装置１０８０の画面上に表示しておく。そして、データ転送設定部３１０は、信号線数を増加する旨の増加指示を示すボタンに対して、利用者からクリック操作を受けた場合に、利用者から増加指示を受けたと判断してもよい。
【００３６】
増加指示を受けた場合に（Ｓ４１０：ＹＥＳ）、データ転送設定部３１０は、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線を１６レーンに設定する（Ｓ６２０）。一方、増加指示を受けていない場合に（Ｓ４１０：ＮＯ）、データ転送設定部３１０は、データ転送に用いる信号線数を減少させる旨を示す減少指示を利用者から受けたか否かを判断する（Ｓ４２０）。減少指示を受けた場合に（Ｓ４２０：ＹＥＳ）、データ転送設定部３１０は、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線を１レーンに設定する（Ｓ６１０）。
【００３７】
なお、PCI Expressの規格によれば、シリアル信号線のレーン数は、１レーンから３２レーンの範囲で設定可能であるが、本例においては、シリアル信号線のレーン数を１レーン及び１６レーンの何れかに設定する場合を例に説明する。
【００３８】
一方、減少指示を受けていない場合に（Ｓ４２０：ＮＯ）、動作モード判断部２００は、以下の処理により、情報処理装置１０の電源状態に基づく判断を行う。まず、動作モード判断部２００は、情報処理装置１０に対して新たに外部のＡＣ電源が接続された場合に（Ｓ４３０：ＹＥＳ）、情報処理装置１０を通常モードで動作させると判断し、Ｓ６２０に処理を移す。即ち、データ転送設定部３１０は、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線を１６レーンに設定する（Ｓ６２０）。
【００３９】
次に、動作モード判断部２００は、情報処理装置１０からＡＣ電源が取り外されたか否かを判断する（Ｓ４４０）。情報処理装置１０からＡＣ電源が取り外された場合に（Ｓ４４０：ＹＥＳ）、動作モード判断部２００は、情報処理装置１０を省電力モードで動作させると判断し、Ｓ６１０に処理移す。即ち、データ転送設定部３１０は、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線を１レーンに設定する（Ｓ６１０）。
【００４０】
次に、動作モード判断部２００は、情報処理装置１０の消費電力が、ＡＣ電源が供給可能な電力の上限を定める基準電力以下になったか否かを判断する（Ｓ５００）。情報処理装置１０の消費電力が基準電力以下に低下した場合に（Ｓ５００：ＹＥＳ）、動作モード判断部２００は、情報処理装置１０を通常モードで動作させると判断し、Ｓ６２０に処理を移す。即ち、データ転送設定部３１０は、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線を１６レーンに設定する（Ｓ６２０）。
【００４１】
一方、情報処理装置１０の消費電力が基準電力を超えて上昇した場合に（Ｓ５１０：ＹＥＳ）、動作モード判断部２００は、情報処理装置１０を省電力モードで動作させると判断し、Ｓ６１０に処理を移す。即ち、データ転送設定部３１０は、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線を１レーンに設定する（Ｓ６１０）。
【００４２】
次に、動作モード判断部２００は、情報処理装置１０の筐体温度が、筐体に対応して定められた異常な高温を示す基準温度以下に低下したか否かを判断する（Ｓ５２０）。筐体温度が基準温度以下に低下して異常な高温の状態から復旧した場合に（Ｓ５２０：ＹＥＳ）、動作モード判断部２００は、情報処理装置１０を通常モードで動作させると判断し、Ｓ６２０に処理を移す。即ち、データ転送設定部３１０は、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線を１６レーンに設定する（Ｓ６２０）。
【００４３】
次に、動作モード判断部２００は、情報処理装置１０の筐体温度が、異常な高温を示す基準温度を超えて上昇したか否かを判断する（Ｓ５３０）。筐体温度が基準温度を超えて上昇した場合に（Ｓ５３０：ＹＥＳ）、動作モード判断部２００は、情報処理装置１０を省電力モードで動作させると判断し、Ｓ６１０に処理を移す。即ち、データ転送設定部３１０は、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線を１レーンに設定する（Ｓ６１０）。これにより、筐体が高温になって利用者に不快感を与えることを防止できる。
【００４４】
なお、筐体温度は一例であり、上記処理に代えて、動作モード判断部２００は、筐体内の予め定められた部分の温度の温度が基準温度を超えて上昇したか否かを判断してもよい。即ち例えば、動作モード判断部２００は、中央処理装置１０００の温度が、中央処理装置１０００に対応して定められた基準温度を超えて上昇したか否かを判断してもよい。これにより、温度測定の対象となるデバイスの誤動作・破損を防止することができる。
【００４５】
次に、トランザクション頻度検出部３００は、何れかのデバイスが他のデバイスに対してデータを要求するトランザクションの頻度を検出する（Ｓ５４０）。そして、トランザクション頻度検出部３００は、検出したそのトランザクションの頻度が、予め定められた基準の頻度以上か否かを判断する。一例として、トランザクション頻度検出部３００は、検出したそのトランザクションの頻度から予測されるそのトランザクションに対応するデータ転送スループットが、１レーンのシリアル信号線により転送可能なデータのスループットを超えるか否かを判断してもよい。
【００４６】
トランザクションの頻度が基準の頻度以上である場合に（Ｓ５４０：ＹＥＳ）、動作モード判断部２００は、情報処理装置１０を通常モードで動作させると判断し、Ｓ６２０に処理を移す。即ち、データ転送設定部３１０は、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線を１６レーンに設定する（Ｓ６２０）。
【００４７】
次に、動作モード判断部２００は、バッテリ１０７８の残量が予め定められた基準量以下か否かを判断する（Ｓ５５０）。バッテリ１０７８の残量が基準量以下に低下した場合に（Ｓ５５０：ＹＥＳ）、動作モード判断部２００は、情報処理装置１０を省電力モードで動作させると判断し、Ｓ６１０に処理を移す。即ち、データ転送設定部３１０は、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線を１レーンに設定する（Ｓ６１０）。
【００４８】
次に、データ転送設定部３１０は、３Ｄグラフィックスの描画処理の処理開始指示を受けた場合において、３Ｄグラフィックスの描画処理が行われないまま、予め定められた基準猶予期間が経過したか否かを判断する（Ｓ６００）。基準猶予期間が経過した場合に（Ｓ６００：ＹＥＳ）、データ転送設定部３１０は、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線を１レーンに設定する（Ｓ６１０）。
【００４９】
続いて、デバイス動作モード変更部３２０は、情報処理装置１０の消費電力が、ＡＣ電源が供給可能な電力の上限を定める基準電力を超えた状態の期間が、所定の期間に達したか否かを判断する（Ｓ６３０）。所定の期間に達した場合に（Ｓ６３０：ＹＥＳ）、デバイス動作モード変更部３２０は、何れかのデバイスの動作モードを、消費電力がより低い動作モードに変更する（Ｓ６４０）。即ちこれにより、デバイス動作モード変更部３２０は、あるデバイスがデータ転送に用いる信号線のレーン数を減少させてから予め定められた期間が経過しても、情報処理装置１０の消費電力が基準電力以下に低下しない場合には、そのデバイスの動作モードを消費電力がより低い動作モードに変更し、ＡＣ電源の過負荷を防止することができる。
【００５０】
以上、図４から図６に示したように、情報処理装置１０の消費電力を低下すべき場合においては、シリアル転送に用いるレーン数を減少させ、情報処理装置１０の消費電力を増加させても良い場合には、シリアル転送に用いるレーン数を増加させる。これにより、できるだけ高い性能を維持しつつ、消費電力を低減することができる。
【００５１】
例えばあるパーソナルコンピュータにおいて、シリアル転送を１６レーンから１レーンに変更して実測した結果、消費電力が１．７８Ｗ減少した。これにより、６セル・バッテリで６時間のバッテリライフを有するパーソナルコンピュータにおいては、約６５分間バッテリライフを伸ばすことができた。また、あるベンチマークソフトウェアのスコアは、シリアル転送を１６レーンから１レーンに変更しても、数％程度しか低下しないことが確かめられた。
【００５２】
図７は、図６のＳ６１０及びＳ６２０の処理の詳細を示す。データ転送設定部３１０は、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線のレーン数を変更する場合に、以下の処理を行う。まず、データ転送設定部３１０は、ホストコントローラ１０８２及び各デバイス間のデータ転送を一旦中断する（Ｓ７００）。この処理に伴い、データ転送設定部３１０は、データ転送に利用可能なシリアル信号線のレーン数をホストコントローラ１０８２が各デバイスに対して問い合わせるポーリング処理を更に中断させる。
【００５３】
次に、データ転送設定部３１０は、変更先のシリアル信号線のレーン数を、ホストコントローラ１０８２が各々のデバイスとデータ転送するシリアル信号線の上限数として設定する（Ｓ７１０）。即ちデータ転送設定部３１０は、Ｓ６１０においては、シリアル信号線の上限数を１に設定し、Ｓ６２０においては、シリアル信号線の上限数を１６に設定する。処理の具体例として、データ転送設定部３１０は、シリアル信号線の上限数を定めるホストコントローラ１０８２内のレジスタに、変更先のシリアル信号線のレーン数を示すデータを書き込む。そして、データ転送設定部３１０は、ポーリング処理を再開させる（Ｓ７２０）。
【００５４】
これを受けて、ホストコントローラ１０８２は、データ転送設定部３１０により設定された上限数から順に、データ転送するシリアル信号線のレーン数を順次減少させ、各々のデバイスとの間でデータ転送可能なシリアル信号線の最大数を定めるリンク・トレーニング処理を行う。データ転送設定部３１０は、リンク・トレーニング処理が完了したか否かを示すレジスタを定期的に読み出す（Ｓ７３０）。リンク・トレーニング処理が終了した場合に（Ｓ７４０：ＹＥＳ）、データ転送設定部３１０は、確立されたデータ転送のリンクにおけるシリアル信号線数の確認処理を行う（Ｓ７５０）。
【００５５】
図８は、Ｓ６１０及びＳ６２０の処理中におけるリンク状態の遷移図である。１６レーンのシリアル信号線により通信していた状態から、１レーンのシリアル信号線により通信する状態に遷移する状態遷移を、点線で示す。この場合、リンク確立状態は、１６レーンのシリアル信号線により通信していた状態（×１６：Ｌ０）から、復旧状態を経由して、一旦通信無効状態に遷移する。
【００５６】
そして、リンクの検出を開始する状態、即ちコールドリセットを受けたのと同様の状態に遷移する。そして、ポーリング処理を行っている状態から、シリアル信号線数を設定する状態を経由して、リンクが確立され、１レーンのシリアル信号線により通信する状態（×１：Ｌ０）に遷移する。
【００５７】
一方、１レーンのシリアル信号線により通信していた状態から、１６レーンのシリアル信号線により通信する状態に遷移する状態遷移を、太実線で示す。この場合、リンク確立状態は、１レーンのシリアル信号線により通信していた状態（×１：Ｌ０）から、復旧状態を経由して、一旦通信無効状態に遷移する。
【００５８】
そして、リンクの検出を開始する状態、即ちコールドリセットを受けたのと同様の状態に遷移する。そして、ポーリング処理を行っている状態から、シリアル信号線数を設定する状態を経由して、リンクが確立され、１６レーンのシリアル信号線により通信する状態（×１６：Ｌ０）に遷移する。
【００５９】
以上、図７及び図８に示すように、データ転送設定部３１０は、リンク・トレーニング処理において、シリアル信号線の上限数を定めるレジスタに、変更先のシリアル信号線のレーン数を予め書き込む。そして、データ転送設定部３１０は、ホストコントローラ１０８２によるデータ転送を一旦中断させ、リンク・トレーニング処理を強制的に行わせる。これにより、データ転送設定部３１０は、電源状態等に応じて定められた任意のシリアル信号線数をホストコントローラ１０８２に対して設定することができる。
【００６０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００６１】
【図１】図１は、情報処理装置１０の全体構成を示す。
【図２】図２は、エンベッデドコントローラ１０７６の機能を機能ブロックに分類して示す。
【図３】図３は、中央処理装置１０００の機能を機能ブロックに分類して示す。
【図４】図４は、情報処理装置１０がデバイス間のデータ転送を制御する処理の流れ図を示す。
【図５】図５は、図４に続く処理の流れ図を示す。
【図６】図６は、図５に続く処理の流れ図を示す。
【図７】図７は、図６のＳ６１０及びＳ６２０の処理の詳細を示す。
【図８】図８は、Ｓ６１０及びＳ６２０の処理中におけるリンク状態の遷移図である。
【符号の説明】
【００６２】
１０  情報処理装置
２００  動作モード判断部
２１０  ３Ｄ処理実行状態判断部
３００  トランザクション頻度検出部
３１０  データ転送設定部
３２０  デバイス動作モード変更部
１０００  中央処理装置
１０７２  電源制御部
１０７４  サーマルセンサ
１０７５  グラフィックコントローラ
１０７６  エンベッデドコントローラ
１０７８  バッテリ
【図１】
2006133895.tif 000003
【図２】
2006133895.tif 000004
【図３】
2006133895.tif 000005
【図４】
2006133895.tif 000006
【図５】
2006133895.tif 000007
【図６】
2006133895.tif 000008
【図７】
2006133895.tif 000009
【図８】
2006133895.tif 000010