動的である点が、Rapid Bootの特徴
以上を踏まえ高速化について詳しく見ていこう。技術としては「Rapid Boot」と「Rapid Drive」の2つが核となっている。
Rapid Bootは起動時間の「動的な短縮」がキーワードとなっている。つまり「使い続けても速度が落ちない」というEE 2.0のウリにつながる部分。一方のRapid Driveは、起動ドライブ(Cドライブ)をSSDとHDDを1ボリュームとして扱うハイブリッド型ストレージとし、物理的な読み取り速度の向上を狙うというものだ。
以下個々の技術に関して見て行こう。
まずはRapid Bootから。下の資料は一般的な起動の手順とRapid Bootの処理フローを比較したものだ。
ソフトウェア的にみると、Rapid Bootはサービスプログラムとカーネルドライバーの2つから構成されている。パソコンの起動時には、まずBIOSが初期化され、OSの起動に必要なドライバーやサービスの読み込みが始まる。その際にRapid Bootのドライバーが読み込まれ、起動するプロセスを監視する。最小限必要なドライバーやサービスを見極め、それ以外のすべて後回しにする(遅延処理に入れる)というのが主な仕事だ。
短時間で起動するためにはCPUのアイドル時間をなくし、フルに使いきったほうがいい。しかし、CPU負荷率が100%に近い状態が長く続くと、画面が出ているのに何もできないという状況が続いてしまう。この状態をなるべく短くすることがポイントになる。
遅延させたプロセスは、起動が終了したあと=CPU使用率がゼロになったと検知するまで待機させる(Boot Complete)。その後30秒程度の時間を置き、負荷を見ながら、バックグラウンドで階段状に再開(レジューム)させていく仕組みだ。アプリケーションなどが必要とするサービスがあれば前倒しにする(イベントベースでの再開)。
EE2.0は最初に読み込むプロセスを極限まで削る。ただしやりすぎるとウイルス対策ソフトの起動が後回しとなったり、追加機能が使用できないといった不都合も生じる。そこでレジストリ情報からこれらを検出し、先に起動するようにしている。
Rapid Bootは、使い続けるほど意味をなす
EE 2.0の肝はこの動的な処理により、利便性を損なわずに起動の高速化が行える点だ。金子氏によると、ログオン後フォアグラウンドが出るまで2~3秒の短縮ができるという。これは上で言うCPU使用率がゼロになった状態のことだが、遅延実行プロセスもOS起動後に順次バックグラウンドで実行されていく。
ちなみに従来のEnhanced Experienceでは高速な起動を行えるOSイメージの最適化が主眼だった。Windows 7の「CPU利用率」「サービス起動状況」「HDD使用状況」などを解析し、必要な対策を講じた。例えば、ストレージデバイスコントローラに不要なアクセスが多発し、不要なCPUのアイドル時間が発生していたり、不要なフォントキャッシュファイルの読み込みが行われるなど、起動に時間がかかるプロセスが必要とされていない段階で読み込まれているといったことだ。
これらの問題はBIOSや工場出荷時のOSイメージを最適化することで改善できたが、EE 1.0では出荷時の最適化にしか対応していなかった。購入時は高速でも、ユーザーがマシンを長期間使い、ソフトを追加し、読み込まれるサービスが増えれば、起動は徐々に遅くなってしまう。
一方でEE 2.0のRapid Bootは、上述のような動的な動きでユーザビリティーを損ねないよう配慮するが、とにかくトップスピードでマシンを起動して、それ以外は後回しにする点は基本変わらない。長期間使い続けても起動速度の低下が起こりにくいのである。
また、取材に応じてくれたレノボ・ジャパン 大和研究所の木村由布子氏と金子敦氏は「開発に際して特に重視しているのは、特定のモデル・特定の構成という制限を取り除くことだ」と強調した。同社では、EE 2.0の実現に向け、すべての製品で12%の時間短縮をするという目標を掲げており、全世界の開発拠点でパフォーマンス改善に取り組み、マイクロソフト、インテル、AMDとの協業体制も築いている。
現在試作中のThinkPadでは、2010年1月発売の「ThinkPad T410s」(OS起動時間19.7秒)に対して、27%も速い14.4秒の起動を実現している。実に22%短縮だ(シャットダウン時間も17%短縮)。Sandy Bridge世代への最適化も功を奏した形だ。
OSの初期導入イメージに対して、Microsoft Office 2010、Microsoft Live Essentials、Googls Desktop、Skypeなどをインストールした状態での起動時間も短縮されている。例えば、64bit版Windows 7を搭載したThinkPad T410sでは、RapidBootなしの44.33秒に対して、37.49秒(Microsoft Velocity Toolで計測)。7秒近い高速化を実現している。