このページの本文へ

ここが変わったWindows Vista 100連発! 第32回

【ここが変わったWindows Vista:Vol.32】

特別編 Vistaの知られざる機能を探る――USBメモリーでパフォーマンスが上がる!?“ReadyBoost”とは何か

2007年02月15日 11時00分更新

文● 山本雅史

  • この記事をはてなブックマークに追加
  • 本文印刷

SuperFetchキャッシュをUSBメモリーに作成
=ReadyBoost

Vistaで採用されたSuperFetchでは、スワップイン/アウトする記憶媒体としてHDDを使用している。しかし、CPUやメインメモリーのスピードから見れば、HDDへのアクセスには膨大な時間がかかる。HDD上のページングファイルへのアクセスが速くならないため、SuperFetchでアプリケーション起動高速化の機能が取り入れられても、パソコン全体のパフォーマンスを高める効果は限定的だ。そこで登場したのがVistaのReadyBoostだ。

フラッシュメモリーの読み書き速度は、メインメモリーのそれと比べれば確かに遅い。しかしHDDのスピードと比べれば速い。つまりReadyBoostとは、低速なHDDではなく大容量・低価格化しているフラッシュメモリーをSuperFetchのアクセス先として使おうというものだ。

USBメモリーを初めてVista搭載パソコンに装着すると、このようなダイアログが表示される

USBメモリーを初めてVista搭載パソコンに装着すると、このようなダイアログが表示される

USBメモリーを初めてVista搭載パソコンに接続すると、上のようなダイアログが表示される。ここで“システムの高速化”を選択して、表示されるプロパティでそのUSBメモリーをReadyBoost用として設定する。そうするとと、USBメモリー内に“ReadyBoost.sfcache”というファイルが作成される。これがSuperFetchのアクセス先として使われる“ReadyBoostキャッシュ”だ。HDD上のページングファイルはRead(読み込み)だけでなく、Write(書き込み)にも使用する。だがReadyBoostではHDD上のページングファイルのように、USBメモリーに直接書き込みはしない。USBメモリーは動作中突然抜かれる可能性もあるからだ。このため、いつ抜かれてもOSの動作に支障がないように、ReadyBoostではUSBメモリー上のReadyBoostキャッシュを、読み込み専用として利用する。

ReadyBoostに対応するUSBメモリーのプロパティ。対応できないUSBメモリーでは、容量の設定等は行なえない

ReadyBoostに対応するUSBメモリーのプロパティ。対応できないUSBメモリーでは、容量の設定等は行なえない

USBメモリー内に生成されたReadyBoostキャッシュのファイル

USBメモリー内に生成されたReadyBoostキャッシュのファイル

USBメモリー上のReadyBoostキャッシュの書き込みはOSが行なう。HDDにいったん書き込んでから、その後ロープライオリティI/Oを利用して、HDDからUSBメモリーに書き込まれる。USBメモリーへの書き込みにロープライオリティI/Oを使うことで、フォアグラウンド・アプリケーションのパフォーマンスに対する悪影響を最小限に留めている。

前掲のReadyBoostの仕組みの図

前掲のReadyBoostの仕組みの図

またReadyBoostでは、ReadyBoostキャッシュを暗号化(AES 128Bit)している。仮にReadyBoostを使用しているUSBメモリーが盗まれても、ReadyBoostキャッシュから重要なデータがハッキングされる心配はない。さらにReadyBoostキャッシュの内容は、1.8~2.3倍に圧縮されている。

ReadyBoostに使えるメモリーは?

ReadyBoostに使用できるフラッシュメモリーはUSBメモリーだけではない。SDメモリーカードやCF(コンパクトフラッシュ)、メモリースティックなど、ほとんどの取り外し可能なフラッシュメモリーデバイスが利用できる。インターフェースもUSBに限らず、PCカードやExpress Cardなどが利用できる。

ReadyBoostで使えるか否かを決めるのは速度だ。ReadyBoostとして使えるフラッシュメモリーの条件は、以下のようになっている。

     
  • 容量が512MB以上(最大4GB)
  •  
  • 4KBブロックのランダム・リードが2.5MB/秒以上
  •  
  • 512KBブロックのランダム・リードが1.75MB/秒以上

注意が必要なのは、デジカメ用などに使われている高速なフラッシュメモリーは、シーケンシャルアクセスは高速だが、ランダムアクセスの性能がそれほど高くないものがある点である。こうしたフラッシュメモリーは、ReadyBoostでは使用できない。またUSB 2.0に対応するUSBメモリーのすべてが、ReadyBoostで使用できるわけでもない。上記のスペックを満たさないUSB 2.0対応メモリーは数多く存在する。

ReadyBoostの最大容量が4GBになっているのは、FATの制限からだ。これ以上の容量は仕様上サポートされていない。ちなみにマイクロソフトでは、FAT32でフォーマットされたUSBメモリーはテストしているが、NTFSでフォーマットされたUSBメモリーはテストしていないという。

“Works with Windows Vista”のロゴマーク

“Works with Windows Vista”のロゴマーク

USBメモリーがReadyBoostに対応しているかを見分ける方法のひとつが、“Works with Windows Vista”というロゴマークだ。このロゴを取得しているUSBメモリーなら、必ずReadyBoostで動作する。ロゴを取得していないフラッシュメモリーでも、“ReadyBoost対応”という文言あれば、基本的には大丈夫だろう。

まったくReadyBoostという記述がないUSBメモリーや、現在持っているUSBメモリーがReadyBoostで利用できるかどうかは、仕様を満たしているか否か次第ということになる。Vista搭載パソコンにUSBメモリーを初めて装着した際には、自動的にアクセススピードのチェックが行なわれる。その後に前述の自動再生画面で“システムの高速化”を選択したり、エクスプローラ等でUSBメモリーのドライブのプロパティーを開いて“ReadyBoost”タブを表示すれば、そのUSBメモリーがReadyBoostに使えるか否かが確認できる。

マイクロソフトがメインメモリーとReadyBoostの容量の関係として推奨しているのは、メインメモリーの2倍の容量が目安となっている。つまり、メインメモリーが512MBなら、ReadyBoost用に1GBほどのUSBメモリーを使うのが最もパフォーマンスが高まる。最大容量はメインメモリーの3倍までで、これ以上の容量をReadyBoostで使用しても、パフォーマンスは上がらないようだ。逆にメインメモリーよりもReadyBoostの容量が少なくなると、パフォーマンスがかえって低くなる場合がある。このため最低でも、メインメモリーと同じ容量を確保すべきだろう。

なおReadyBoostで使えるデバイスは、1台のパソコンで1つのみとなっている。複数のUSBメモリーを挿して合計で1GB、といった使い方はできない。

また、ReadyBoostキャッシュは1台のパソコン専用であるため、パソコンAで作成したReadyBoostキャッシュを、パソコンBでも使うといった使い回しはできない(もちろん単なるUSB大容量記憶装置としては使える)。実際に、あるパソコンでReadyBoost用にしたUSBメモリーを別のパソコンに挿してみると、USBメモリーは空として表示された。別のパソコン側で再度ReadyBoostの設定を行なえば、ReadyBoostキャッシュとして使えたのだが、長時間テストしていたところ、USB関連にトラブルが起こった。一度ReadyBoost用として設定されたUSBメモリーを別のパソコンで使用する場合は、元のパソコンでReadyBoostの項目をオフにしてからの方が安全だろう。

あるパソコンでReadyBoostが設定されているUSBメモリーを別のパソコンに挿すと、このような表示が出る場合もある

あるパソコンでReadyBoostが設定されているUSBメモリーを別のパソコンに挿すと、このような表示が出る場合もある

ReadyBoostはフラッシュメモリーを読み書きするため、「フラッシュメモリーの寿命を縮めるのでは?」と考える人もいるだろう。しかしマイクロソフトの研究では、ReadyBoostに使用したフラッシュメモリーの寿命は、差しっぱなしで10年以上と見積もっている。なお、ReadyBoostキャッシュにエラーが起こった場合は、すぐにHDDに切り替えるようになっている。また途中でUSBメモリーを抜いても、OSはキチンと動作するようになっている。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン