Windows ReadyBoost
Windows ReadyBoost(ウィンドウズ レディブースト) は、Windows Vista、Windows 7の一機能。フラッシュメモリなどの外部メモリーを、ハードディスクドライブのキャッシュとして利用することで、ソフトウェアなどの読み込みを高速化する機能のこと。
目次 |
[編集] 概要
Windows ReadyBoostを使用すると、フラッシュメモリの記憶領域をキャッシュメモリとして使用し、総合的なパフォーマンスを向上させる [1] [2]。
ハードディスクはディスク上のデータをヘッドを使って読み書きしている。この時、数キロバイトといった小さなデータが散らばっていると、ヘッドが激しく移動を繰り返し、アクセス速度が極端に低下する。Windows ReadyBoostはこの小さなデータ群を、ヘッドの存在しないフラッシュメモリにキャッシュすることで、ハードディスクの弱点を補助しようという技術である。そのため、使用するフラッシュメモリにはこれまで重視されてきたシーケンシャルアクセス速度ではなく、ランダムアクセス速度が重視される。
PCに搭載しているメインメモリと同じ容量か、それよりも多いものを使用することが推奨されているが、小容量でも効果が出ないわけではない。マイクロソフトによると、搭載されたメインメモリの「3倍の容量のフラッシュメモリ」を使用することで、最も優れたパフォーマンスを得ることができるとされる[1]。
[編集] 対応メディア
対応するUSBメモリなどの外部記録メディアには、最低限で4kBデータのランダムリードで2.5MB/s、512kBデータのランダムライトで1.75MB/sの速度が必要である。また、高速タイプ(4kBデータのランダムリードを5MB/s、512kBデータのランダイムライトを3MB/s)のメディアを用いれば最大1/3に圧縮されるため効果が大きくなる[1]。市販のUSBメモリやSDメモリーカード等は速度不十分のため、ReadyBoost が有効にならないものが多数あるので注意が必要である。
| Windows Vista | Windows 7 | |
|---|---|---|
| 対応デバイス | USBメモリ、SDメモリーカード等のフラッシュメモリ(リムーバブルメディア) | |
| 最大容量 | 4GB | 256GB* |
| 最低容量 | 230MB(1GB以上を推奨) | |
| 最大デバイス数 | 1 | 8 |
| 対応フォーマット | FAT16、FAT32、(NTFS) | FAT16、FAT32、NTFS、exFAT |
- 2010年2月10日現在、64GB以上の外部ストレージ接続時にWindows ReadyBoostを有効にできない現象が確認されている[注釈 1]。
フラッシュメモリの容量が多いほど効果を得られると思われがちであるが、実際には容量よりも速度性能を重視すべきで、たとえUSB2.0で容量に余裕があっても速度制限で使用できない物がある。システムの制限で[2]、Windows Vista環境下では4GB以上のフラッシュメモリを接続しても4GBまでの使用となるが、Windows 7環境下ではexFATによるフォーマットをした大容量フラッシュメモリにおいて4GBを超えた使用が可能になった [注釈 2]。 またWindows Vistaでは、1台のPCに複数のフラッシュメモリを接続しても1つしか利用できなかったが、Windows 7では複数のフラッシュメモリを利用できるようになった。
[編集] 機能
[編集] 基本
ReadyBoostは、HDDの読み出し時の物理的なシークタイムを隠蔽する事で、体感速度を改善する。
HDDとの読み書きのデータが全てフラッシュメモリにキャッシングされるわけではない。高速なHDDでの大量のシーケンシャルアクセスの場合には、フラッシュメモリよりも高スループットでアクセスできることが多く、そのような場合はフラッシュメモリへのキャッシング処理はなされない。
ランダムアクセスのように、HDDではヘッドのシーク待ちやディスクの回転待ちが原因で極端にスループットが落ちる場合、フラッシュメモリへのキャッシング処理がなされ、ReadyBoostとして機能する[3]。
フラッシュメモリの書き換え回数に上限がある特性を考慮し、ReadyBoostではデータを書き込む位置を非局在化(ウェアレベリング)しており、フラッシュメモリの寿命にも配慮されている。
[編集] ライトスルーキャッシュ
基本的に、書き込みデータについてはハードディスクに対してデータ書き込みコマンドを送信した後で、フラッシュメモリにキャッシュするために(ライトスルー)、突然フラッシュメモリがUSB端子から抜けるといったような不測の事態が起きても、システムが不安定になることはない。また、シャットダウン後の取り外しなど、改変の可能性があるため、書き込まれたデータは、ReadyBoostとしては保持、記憶、蓄積はされない。 なお、書き込まれるデータはAES128ビットによる暗号化処理がされているため、万が一盗難にあった時にメモリやHDDの一部が閲覧されることは無いとされている。
[編集] SuperFetchとの関係
なお、Windows SuperFetchは、未使用のメインメモリを利用して、ReadyBoostと似たディスクキャッシュを行っている[2]。両者の違いは、Superfetch はプロセスのページプール(コード、データなど)のキャッシングを制御するのに対して、ReadyBoostはHDDストレージへの読み書き全般をキャッシングすると言う点である。ReadyBoostサービスは、キャッシングの効率化(プリフェッチ等)に関して、SuperFetchサービスの助けを借りる[2]。
大量のメインメモリを搭載し空きメモリ容量[注釈 3]が潤沢にある状況では、SuperFetchの方にヒットする確率が高くなるので、ReadyBoost 自体の貢献度は小さくなる。また、システムドライブにSSDを利用する環境では、もともと高速なドライブであるため、ReadyBoostを利用できないことがある[注釈 4]。
ReadyBoost、Superfetch のいずれも、仮想記憶・プロセスを邪魔しないように、バックグラウンドで最も低い優先度でキャッシング処理を行う。ReadyBoostが仮想記憶をフラッシュメモリに対し行うというのは誤解である[注釈 5]。
一部のメディアの論評などでは、ReadyBoostはメモリ増設と同様であるかのような記述がみられるが、もともと、ノート型パソコンのような、
- ハードディスクへのアクセスが遅い。
- 搭載メインメモリが少ない。
- メモリの拡張に高いコストがかかる。
等の条件にあたる環境で、低コストで体感するレスポンスを改善する手段であるとマイクロソフト自身が事前にプレゼンテーションでも述べている[注釈 6]。
[編集] Windows ReadyBoot
ReadyBoostサービスは、OSの起動時、起動直後にも稼動する。ただし、キャッシングのデバイスはフラッシュメモリではなくメインメモリ(700MB以上の場合に限る)である。
これは Windows ReadyBoot と名づけられた機能で、OSの起動直後に、起動中に読み込まれるファイルを分析して、予めキャッシング計画をする。次回のOS起動時に、その計画に基づきReadyBoostがシステム読み込みに対してキャッシングを行い、起動を高速化する。
[編集] 利点と欠点
利点
- アプリケーションの起動速度の向上、全体的なレスポンスの向上。
- 使用していないフラッシュメモリの有効活用。
欠点
- 頻繁に書き込みが起こるため、フラッシュメモリが故障しやすくなる。
- キャッシュの検索、暗号化、復号のため、CPUの稼働率が上がる。
- SuperFetchの効率が高い環境下や、フラッシュメモリが低速だったり容量が十分でないと効果が出にくい場合がある。
- OSの起動中、起動直後、およびシャットダウン時は、ReadyBoostのキャッシング動作(特にバルクでの書き出し)により、少々遅延する場合がある[注釈 7]。
[編集] 備考
Windows ReadyBoostは、Windowsがシステムとして提供する機能の一つであるが、同様の機能を提供するソフトウェアとして eBoostr がある。これは、ReadyBoost 及び Windows SuperFetchの代替機能を提供するシステムソフトウェアであり、Windows 2000 や Windows XP など、Vista以外のWindows OSにも対応するなどの特徴を持つ。
Windows VistaにはWindows ReadyDriveという機能も実装されているが、これは別の仕組みである。
[編集] 関連項目
[編集] 脚注
- ^ Windows 7 に 64 GB より大きいパーティションが存在する外部ストレージを接続すると、ReadyBoost 機能を使用できない
- ^ Windows 7 の機能 - ReadyBoost - Microsoft Windows
- ^ OSやアプリケーションが使用していないメモリは、SuperFetchがキャッシュに利用する。
- ^ 記憶装置のメモリを使用してコンピューターの速度を向上する
- ^ リムーバブルメディアにページファイルを置くことはできない。スワップアウトされたページがシステムから取り外された場合、システムは通常停止する。
- ^ 「Aero無しでもVistaは魅力的」Windows Vistaのビジネス向け新機能説明会
- ^ なお、SuperFetchの効率が高い環境下で良く目立つ。ReadyBoostの効率が高い環境下では、ReadyBoost自体がスループットを改善させているので、ReadyBoostを解除するとスループットは低下する。
[編集] 参考文献
- ^ a b c “Windows PC アクセラレータ”. Microsoft (2006年11月30日). 2010年5月7日閲覧。
- ^ a b c d Mark Russinovich (2007年3月). “Windowsの管理: Windows Vista カーネルの内部 : 第 2 部” (日本語). TechNet Magazine. Microsoft. 2010年4月3日閲覧。
- ^ http://technet.microsoft.com/ja-jp/windows/ff467971.aspx