XPを上回ると言うが、個々の機能や仕様について理解されていない点もまだ多くある。本連載では、その代表的なものについて説明したい。Acceleratorと呼ばれる、メモリ周りの高速化機能について取り上げる。Vistaには、PCの性能を向上させるための「ReadyBoost」と呼ばれる技術が標準搭載されている。これは、USBフラッシュメモリなどをキャッシュ的に利用するものだが、フラッシュメモリなら何でもいいというわけではない。ここでは、その動作の仕組みや、仕様について紹介する。●ユーザーの行動パターンを利用する「SuperFetch」ReadyBoostがどのようにしてPCの性能を向上させているかを理解するには、まず「SuperFetch」技術を知る必要がある。過去のWindowsに搭載されていたメモリ管理技術は、物理メモリの空き容量がない状態で、アプリケーションからメモリの要求があった際、メモリ上の最近利用されていないデータをHDD上のページファイルに移動させることで、メモリを解放していた。Paging)となる。Vistaのタスクマネージャ。Vistaのメモリ管理技術であるSuperFetchには、追跡アルゴリズムが追加された。これは、フォアグラウンドアプリケーション、日時、ユーザーがPCを使っている状態かどうかなどを判断してページングを行なうものだ。XPでは、アイドル時のタスクにメモリを割り当て、それまでフォアグランドで作業していたアプリケーションデータはHDDに待避させる。そのため、昼食から戻ってきて、作業を再開しようとすると、その時点で初めてアプリケーションデータをHDDから読み込むため、作業を開始するのに待たされる。SuperFetchでは、過去のユーザー行動のパターン(ここでは、ユーザーが作業を再開する時間やアイドル後に行なう作業内容)を記憶しているため、アイドルタスクが終了次第、HDDに待避させていたアプリケーションデータをメモリに読み戻すので、ユーザーが戻ってきた時には、即座にアプリケーションが反応するという具合だ。ほかの例では、この追跡アルゴリズムは、アプリケーションの利用頻度も見ている。XPでは、過去のデータから順にメモリからHDDへ待避させるが、Vistaでは利用頻度の高いタスクをなるべくメモリに保持するようになっているため、それらの起動時間が改善される。1つのSuperFetchの特徴として、メモリに空き容量がある場合、積極的にメモリに読み込む。Vistaを使っていると、空きメモリが全くなくなる」と言われることがある。Vistaの使う/要求するメモリ容量が増えたのは事実だが、多くのメモリを搭載したPCでも空きメモリがなくなるのは、SuperFetchが利用しているからであり、これが原因でメモリが逼迫して性能が落ちると言うことにはならず、むしろ性能向上に寄与しているのである。●フラッシュメモリでSuperFetchを活用するReadyBoostそして、メインメモリに加え、SuperFetchをフラッシュメモリ上でも利用するのがReadyBoost機能だ。Express/SSAバスに接続されたUSBフラッシュドライブ/SDカード/CF/メモリースティックとなっている。Vistaは、フラッシュメモリの接続を認識すると、その転送速度を計測し、4KBランダムリードが2.5MB/sec、512KBランダムライトが1.75MB/sec以上ある場合、そのデバイスがReadyBoost対応であるとみなす。この値は最低限のもので、推奨スペックは前者が5MB/sec、後者が3MB/secとなっている。ReadyBoostで利用できる容量は230MBから4GB。推奨容量はメインメモリと同容量で、3倍の容量で最適な性能になるとしている。逆に言うと、4KBランダムリードが2.5MB/sec未満だったり、容量が230MB未満のフラッシュメモリはReadyBoost用に利用できない。いった性能は製品の仕様書には書かれていないことが多いが、ReadyBoost対応を謳った製品ではこのスペックを満たしている。注意が必要なのは、SDカードやメモリースティックなどのカード型メモリの場合で、カードが持つ転送速度が高速でも、カードアダプタの転送速度がReadyBoostの要求するスペックを満たさないことがある。ReadyBoost使用」を選択すると、デバイスのプロパティ画面が開き、ReadyBoostに利用する容量の割り当てができる。Vista搭載PCでは、USBメモリなどの自動再生画面に「システムの高速化」という選択肢があるただし、これを選んでも、フラッシュメモリの転送速度が遅いとReadyBoostには使えない。ちなみに「デバイス接続時にこのデバイスの再テストを中止する」にチェックを入れておくと、以降の自動再生にシステムの高速化の選択肢は表示されなくなる基準以上の速度のデバイスであれば、割り当て容量を指定して、ReadyBoostに利用できるReadyBoostを有効にすると、HDD上に待避されたページングファイルのコピーがフラッシュメモリ上に自動的に作成される。フラッシュメモリの性能は製品ごとにまちまちだが、フラッシュメモリはHDDと違って機械的なシーク動作や回転の待ち時間がないため、ランダムアクセスはHDDより高速だ。そのため、SuperFetchデータがHDDに待避された後に、再度読み込む場合、ReadyBoost対応メモリがあると待ち時間が短縮される。Microsoftが行なったテストによると、メインメモリ512MBでReadyBoostデバイスがないPCの場合約42秒かかる読み込み作業が、512MBのReadyBoostメモリにより、約27秒に短縮されたという。1GBの場合は約25秒、2GBの場合は約24秒となっており、1GB以上の費用対効果は低いように見えるが、これはマシンの構成や状況などによって変わってくる。ReadyBoost上のSuperFetchデータは1/2に圧縮されて記録される。AESで暗号化されるため、紛失してもセキュリティリスクは少ない。HDDの後にSuperFetchデータが書き込まれるリードキャッシュなので、いつ抜いてもデータがシステムから失われることはないほか、慎重な書き込みアルゴリズムにより、通常は数年間の利用に耐えうると言う。ちなみに、ReadyBoost用に使えるフラッシュメモリデバイスは1台だけとなっている。Cache)を搭載するハイブリッドHDD用の「ReadyDrive」機能だ。HotStartやPCメーカー独自のアプリケーション/データ、SuperFetchに利用する。HotStartとは、特定のホットキーを押すなどして、電源OFFないしはスリープ状態のPCから瞬時にメディアプレーヤーなどを呼び出す機能。Cacheの最低容量は50MBで、最大容量は2TB。推奨される最低容量は128MBで、最適な性能を得るためには256MBから1GBが推奨となる。Cacheの容量-100)/2]がHotStartなど、残りがSuperFetch用となっている。Vistaロゴが与えられるハイブリッドHDDは、4KBランダムリードが4MB/sec以上、4KBランダムライトが4MB/sec以上、64KBシーケンシャルリードが16MB/sec以上、64KBシーケンシャルライトが8MB/sec以上を満たす。ReadyDriveも、シーケンシャルアクセスではメリットは薄いが、ランダムアクセスで大きなメリットが得られ、Outlookの起動では、通常のHDDで21.6秒かかるところが、8.4秒にまで短縮されるという。Cacheは電源OFFでも保持されるため、OSの起動時間も短縮される。Cacheコマンドを利用し、HDDのモーターの駆動頻度を可能な限り抑えるため、ノートPCではバッテリ駆動時間についても恩恵を受けられるほか、HDDの寿命も延びる。Microsoftのテストでは消費電力を12%低減できるとしている。Cacheの寿命はHDD自体の耐久年数より長くなると言う。Vistaが対応するハイブリッドHDDの台数は1台で、システムドライブにする必要がある。Accelerator」と称しており、全てを組み合わせて利用することでより高い性能が得られるとしている。●実際の性能を検証それでは、実際にSuperFetchとReadyBoostがどれくらい効果があるものなのか。2.0接続MCR-C30H/U2-BKを使用した。このノートPCにはメモリースティックデュオスロットがあり、ReadyBoostにも対応しているのだが、メモリカードへのアクセス状況(LEDの点滅)を見るためにこのカードリーダを使っている。ReadyBoostの割り当て容量はOSが推奨とした1,840MBにしてある。7.2それぞれを単独で起動し、その起動にかかる時間を手動計測した。Proの起動にかかる時間も計測した。メインメモリを1GB×1の状態でテストした結果が表1だ。Proで50%以上の起動時間短縮が見られ、そのほかの場合も確実な効果が出ている。ここでOS起動直後の状況でもテストを行なったのは、SuperFetchの効果を見るためである。SuperFetchは、OS起動後に過去の追跡内容をベースに、空きメモリにデータを先読みするので、OS起動直後と一定時間が経った後(具体的には空きメモリが0に近づいた時点)との差が、おおむねSuperFetchの効果といえる。ReadyBoostなしの状況に於けるSuperFetchの効果を見てみると、Outlookの起動時間がおよそ1/3にまで短縮されている。ここで注意したいのが、ReadyBoostありでOS起動直後の場合だ。ReadyBoostなしの場合と比較すると、ありの方が圧倒的に遅くなっているケースがある。これは、OS起動直後のいくつかのプロセスやSuperFetchの構築に加え、ReadyBoostによるHDD読み込みとフラッシュメモリ書き込みのI/O負荷が加わったことが影響したようだ。これは、使っているPCやカードリーダ、フラッシュメモリの性能などによって大きく変わってくるが、今回のマシンではReadyBoostによってフラッシュメモリにSuperFetchデータが書き込まれる間、CPU負荷が2~3割程度になっていた。ちなみに、1,840MBの書き込みが終わるまでは約7分かかった。PC起動後、数分間はReadyBoostがPCの性能を低減させることがあるということだ。いえ、ノートPCの場合、電源OFFではなく休止やスタンバイを多く使うだろう。リムーバブルメディア扱いというフラッシュメモリの性格上、休止やスタンバイからの復帰後もReadyBoostキャッシュは自動的にゼロから再書き込みが行なわれるが、その時、普段使用しているアプリケーションはすでに立ち上がっていると思われるので、さほど問題にはならないだろう。ReadyBoostの割り当てを減らせば、書き込みにかかる(負荷の高い)時間はその分短縮できる。Memory」は、原則としてマザーボードに直付けされ、取り外しができない。Memoryでは起動/復帰後の書き込みが不要となる。メインメモリ2GB(1GB×2)での結果は表2の通り。ここでもReadyBoostの効果は出ているが、SuperFetchの効果がさらに向上しているのが容易に見て取れる。Pro高負荷において想定されるより短い結果となっている。原因は不明だが、本環境における結果ととらえていただきたい。Watch編集部pc-watch-info@impress.co.jpお問い合わせに対して、個別にご回答はいたしません。