Windows 2000 Insider/PC Insider合同特別企画

Windows XPの正体
―― 実験/実証によって探るWindows XPの真実の姿 ――

高速化されたスタンバイ状態と休止状態

デジタルアドバンテージ
2002/01/09


 一時的にPCの使用を停止する場合、「スタンバイ状態(サスペンド)」または「休止状態(ハイバネーション)」にすることで、消費電力を大幅に抑えることが可能だ。特にバッテリ駆動のノートPCでは、移動中などにスタンバイ状態にしておくことで、消費電力を抑えつつ、作業の停止・再開を迅速に行えるというメリットがある。また、デスクトップPCでも昼休みなどにスタンバイ状態や休止状態にすることで、大幅に消費電力を抑えることが可能だ。

 「スタンバイ状態」「休止状態」ともに省電力規格「ACPI(Advanced Configuration and Power Interface)」のスリープ・ステートで規定されているものであり、それぞれ「S3」「S4」に相当する。ちなみに、ACPIではシステムの電源状況を「S0(フル稼働)」から「S5(ソフトウェアによる電源オフ)」までの6段階で規定している。各状態を簡単に紹介すると、以下の表のようになる。

ACPIのステータス 状態
S0 フル稼働状態
S1 低消費電力状態(ただし、プロセッサ、チップセットともに電源オン)
S2 低消費電力状態(ただし、プロセッサとキャッシュは電源オフ、チップセットは電源オン)
S3 スタンバイ状態
S4 休止状態
S5 ソフトウェアによる電源オフ
ACPIのスリープ・ステート

 もう少しスタンバイ状態と休止状態の違いを具体的に説明しておこう。スタンバイ状態とは、グラフィックス機能やハードディスク、そのほかのデバイスの電源をオフにすることで、消費電力を抑えるモードである。ただし、メモリには電力が供給され、実行中のデータがそのまま保持されるため、電源オフ/オンと違って作業を中断した状態からの再開が可能である。また、スタンバイ状態からの復帰も数秒程度と速い。しかし、メモリへの電力供給が行われるため、ノートPCのバッテリ駆動でスタンバイ状態を長時間続けると、バッテリ不足になってしまうこともある。

 休止状態とは、ハードディスク上にメモリの内容を退避してから、メモリを含む各デバイスの電源をオフにするモードである。そのためハードディスクには、搭載メモリとほぼ同じ容量の休止状態用のデータ退避領域が確保される。スタンバイ状態とは異なり、完全に電源オフと同様の状態となるため、ノートPCのバッテリ駆動でも休止状態を維持し続けることが可能だ(バッテリの電力は消費されない)。しかし、メモリの内容をハードディスクに退避したり、読み出したりしなければならないため、その分だけ休止状態への移行や復帰に時間がかかってしまう。

 このようにデバイス側から見ると、スタンバイ状態、休止状態ともに電源オフとほぼ同様の状態になっていることが分かる。そのため、各状態への移行にはシャットダウンと、復帰にはシステムの起動(電源オン)とほぼ同様のデバイスならびにデバイス・ドライバの終了/初期化作業が必要になる。つまり、この時間の長さが移行/復帰時間に大きく影響を与えることになる(電源オフ/オンとの違いは現在のデバイス・ドライバのステータスを保存/復帰するかどうかである)。また、スタンバイ状態/休止状態の間にデバイスが取り外されたり、付けられたりする可能性があるため、すべてのデバイスに対して起動時と同様のチェックが必要となる。特にレガシー・デバイスのシリアル/パラレル・ポートなどは初期化に時間がかかるし、IDEデバイスなども接続されているかどうかをチェックするのにタイムアウトを待つため数秒が必要とされる。こうした時間の積み重ねによって、Windows 2000などではスタンバイ状態からの復帰で数秒、休止状態からの復帰で数十秒程度かかっていた(この時間はシステム構成によっても大きく異なるが)。

 そこでWindows XPでは「Fast Resume」「Fast Boot」と呼ぶ、起動やスタンバイ状態への移行、復帰を高速化する仕組みを採用することで、スタンバイ状態からの復帰で5秒、休止状態からの復帰で20秒を目標として開発している。この「Fast Resume」「Fast Boot」とは、終了/初期化作業を並列化するなどして高速化を図るというものだ。

 休止状態の場合、メモリの内容をハードディスクに書き込んだり、読み出したりする必要があり、搭載するメモリ容量が多くなるほど(より正確にはメモリ使用量が増えるほど)時間がかかってしまう。その時間を短縮するため、Windows XPではメモリの内容を圧縮して容量を減らしてからハードディスクに保存したり、IDEの高速な転送モードであるUltra DMAモードを利用したりして高速な書き込み/読み出しを実現している(Windows 2000までは互換性を重視して低速なPIOモードが使われており、Ultra DMAモードは利用されていなかった)。もちろん、古いノートPCなどでUltra DMAモードの利用に問題がある場合は、従来と同様PIOモードによる書き込み/読み出しとなる。

 では、実際にこうした工夫によってWindows 2000に対して、Windows XPではどの程度の高速化が図られているのか計測してみた。テストに利用したのは、デルコンピュータのオールインワン・ノートPC「Inspiron 2500」である。テストは、何もアプリケーションを起動していない状態(テスト1)と、Microsoft Word 2000およびInternet Explorerを起動しネットワークに接続している状態(テスト2)の2種類で計測した。これは、メモリの使用量がスタンバイや休止状態の移行/復帰速度に与える影響を見るためだ。また、それぞれハードディスクの転送モードをPIOとUltra DMAに設定して計測した。それぞれPIOモード4(最大転送レート16.6Mbytes/s)とUltra DMAモード4(同66.6Mbytes/s)で動作している。

プロセッサ モバイルCeleron-700MHz
チップセット Intel 815EM
メモリ 128Mbytes PC133 SDRAM
グラフィックス機能 Intel 815EM内蔵
ハードディスク IBM製 Travelstar 20GN(容量10Gbytes、Ultra ATA/66対応)
CD-ROMドライブ LG製 DRN8080B(DVD-ROMドライブ)
ネットワーク・インターフェイス メルコ製 LPC4-CLX-CB(PCカード)
OS Windows 2000 Professional + SP2/Windows XP Professional
計測に用いたInspiron 2500の仕様
 
大きなグラフへ
  移行 復帰
Windows 2000 Ultra DMA
7.1
3.3
Windows 2000 PIO
7.3
3.4
Windows XP Ultra DMA
7.4
2.9
Windows XP PIO
7.7
3.1
テスト1の計測結果(スタンバイ状態) 単位:秒
移行は[シャットダウン]ダイアログの[OK]ボタンをクリックしてから、スタンバイ状態を意味する電源ランプが点滅に変わるまでを計測している。また、復帰については電源ボタンを押してから、Windowsの画面が表示されるまでを計測した。

大きなグラフへ
移行 復帰
Windows 2000 Ultra DMA
12.4
24.0
Windows 2000 PIO
12.0
24.0
Windows XP Ultra DMA
10.7
16.4
Windows XP PIO
16.3
16.3
テスト1の計測結果(休止状態) 単位:秒
移行は[シャットダウン]ダイアログの[OK]ボタンをクリックしてから、電源ランプが消えるまでの時間を計測している。また、復帰については電源ボタンを押してから、Windowsの画面が表示されるまでの時間を計測した。
大きなグラフへ
移行 復帰
Windows 2000 Ultra DMA
7.4
4.1
Windows 2000 PIO
8.1
4.0
Windows XP Ultra DMA
8.4
4.0
Windows XP PIO
8.8
4.3
テスト2の計測結果(スタンバイ状態) 単位:秒
移行は[シャットダウン]ダイアログの[OK]ボタンをクリックしてから、スタンバイ状態を意味する電源ランプが点滅に変わるまでを計測している。また、復帰については電源ボタンを押してから、Windowsの画面が表示されるまでを計測した。
 
大きなグラフへ
移行 復帰
Windows 2000 Ultra DMA
16.3
26.1
Windows 2000 PIO
16.2
26.1
Windows XP Ultra DMA
9.3
19.5
Windows XP PIO
17.8
20.0
テスト2の計測結果(休止状態) 単位:秒
移行は[シャットダウン]ダイアログの[OK]ボタンをクリックしてから、電源ランプが消えるまでの時間を計測している。また、復帰については電源ボタンを押してから、Windowsの画面が表示されるまでの時間を計測した。

 このようにWindows XPの休止状態への移行時間は、Windows 2000に比べ16〜75%とケースによって大幅に高速化されていることが分かる。また、Windows 2000ではPIOモードとUltra DMAモードのどちらでも、ほとんど速度に違いがないのに対し、Windows XPでは明らかに休止状態への移行に際してUltra DMAモードが有効に働いている。さらに、テスト1とテスト2を比較すると、Windows 2000では休止状態への移行がテスト1に比べてテスト2が4秒ほど遅くなっているのに対し、Windows XPではPIOモードで1秒ほど遅くなっている程度で済んでいる(Ultra DMAモードではなぜか1秒ほど速い)。一方、スタンバイ状態への移行/復帰ともにWindows 2000とWindows XPの差はわずかだ(Windows XPのスタンバイへの移行が遅いのは、グラフィックスの終了処理が遅いためと思われる)。これは、デバイス・ドライバの初期化にかかる絶対時間が短いため、並列化の効果が分かりにくいこと、テストに用いたノートPCに搭載されているデバイスの数が少なかったことなどが要因として考えられる。また、今回のテストに用いたInspiron 2500はチップセット内蔵のグラフィックス機能を使っているため、画面の再描画が行われない(メモリに画面データが保持されている)ため、全体として高速であることも影響しているだろう。ただ、わずかだが、高速化されていることからも、並列化の効果はあるものと思われる。

 なお、デバイス・ドライバの初期化などの状況をより詳しく調べるには、Microsoft提供のBootvis.exeというソフトウェア・ツールを使うとよい(Bootvis.exeの入手先)。以下の画面は、Inspiron 2500でBootvis.exeを実行し、スタンバイ状態と休止状態をトレースしたものだ。このように各デバイス・ドライバの初期化に必要な時間などがビジュアルに表示される(デバイス自体の初期化などの時間はトレースできないため含まれていないことに注意していただきたい)。本来ならば、Windows 2000との比較が行えるとよいのだが、Bootvis.exeはWindows XP専用のツールであり、残念ながらWindows 2000では動作しない。

 この画面を見ると、スタンバイ状態/休止状態への移行において、ac97intc.sys(AC'97サウンド)、mouclass.sys(マウス)、kbdclass.sys(キーボード)、cd rom(CD-ROMドライブ)が並行して終了動作していることが分かる。また、スタンバイ状態と休止状態では、初期化されるデバイス・ドライバの数も異なるようだ。このようにBootvis.exeを使うことでも、Windows XPのデバイス・ドライバの初期化が並列に行われていることが確認できる。記事の終わり

Bootvis.exeでスタンバイ状態の動作を確認したもの
画面左側がスタンバイ状態への移行、右側がスタンバイ状態からの復帰を示している。ac97intc.sys(AC'97サウンド)、mouclass.sys(マウス)、kbdclass.sys(キーボード)、cd rom(CD-ROMドライブ)のスタンバイ状態への移行が並列して動作していることが分かる。また、i81xnt5.sys(Intel 815EMチップセット)の終了/初期化に時間がかかっていることも分かる。
 
Bootvis.exeで休止状態の動作を確認したもの
[Driver Delay]のウィンドウ左側のデバイス・ドライバのリストを見ると、スタンバイ状態と比べて数が増えていることが分かる。やはりi81xnt5.sys(Intel 815EMチップセット)の終了/初期化に時間がかかっている。
 
  関連リンク 
Bootvis.exeの入手先ENGLISH
ACPI 2.0の仕様書ENGLISHPDF
 
 

 INDEX
  Windows 2000 Insider/PC Insider合同特別企画
    Windows XPの正体
    次世代に向けたCD-R/RWの書き込み機能のサポート
    セーフモードが高解像度対応になるWindows XP
    文字表示を滑らかにする新技術「ClearType」
    Windows XPで正式サポートされたDVD-RAM
    大幅に改善されたWindows XPのIDEサポート
    Windows XPのドライバ・インストールに関する安全機能
  高速化されたスタンバイ状態と休止状態
   
 
 
Windows XPの正体


System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

System Insider 記事ランキング

本日 月間