コンピュータシステムでは、性能、消費電力、サイズ、堅牢性、信頼性に対する顧客の要求はとどまることがない。その一方で、フラッシュメモリーの大容量化と価格の低下が着々と進んでいる。フラッシュメモリーベースのストレージをより積極的に活用すべき時期が来たのだろうか。
フラッシュメモリーが初めてパソコンのアーキテクチャに加わったのは、1991年のことである。その契機となったのは、パソコンメーカーがROMおよびEPROMの後継として、ユーザーによるアップグレードが可能なBIOS(basic input/output system)を採用し始めたことだ。それ以来、フラッシュメモリーの利用は徐々に拡大し、さまざまな容量/形態のものが用いられるようになった。例えば、USB、PCMCIA、CompactFlash、SD(secure digital memory card)などのシステムインターフェースを利用したフラッシュメモリーベースのモジュールが良い例だ。しかし、これらフラッシュメモリーベースのストレージ(以下、フラッシュストレージ)は、BIOSとは異なり主に一時的かつ付加的に利用されるものである。ユーザーは、ハードディスクドライブ(HDD)のバックアップ用として、または2台のパソコンの間や、パソコンとPDA、あるいはデジタルカメラなどの機器との間でデータをやりとりするための媒体としてフラッシュストレージを使用している。
しかし、ここ数年間でそれとは異なる用途を模索する動きが出てきた。フラッシュストレージの容量を数メガバイトから数ギガバイト、さらには数十ギガバイトまで増加させようという業界の期待が高まり、実際にそのような動きが加速している*1)。このように容量の拡張に対する関心が高まった背景には、フラッシュメモリーベンダーによる根回しがあった。携帯電話機、デジタルカメラ、PDAなど、大容量のフラッシュメモリーを応用した従来機器に対する消費者需要が限界に達しつつあるため、フラッシュメモリーベンダーは新しい市場を開拓したいと切望している*2)。同様に、HDDベンダーも機器需要の拡大を狙っているが、特にハードディスクからフラッシュメモリーへの置き換えを進めようとはしていない。従来製品との差異化を図り、追加の収入を得るための手段としてこの動きをとらえている。また、OSベンダーである米Microsoft社も、同社の最新OSであるWindows Vista(以下、Vista)をユーザーに採用してもらうための手段として、同OSに複数の方法で大容量フラッシュメモリー対応機能を実装している。
ベンダー側の思惑はさておき、コンピュータユーザーは大容量フラッシュメモリー搭載機へと移行することにより、いくつかの潜在的な恩恵を享受することができる。組み込みシステムの設計に携わっている人ならば、すでにそうした恩恵に気付き、実際に利用しているかもしれない。
コンピュータ機器でのフラッシュストレージの利用を後押しするものがVistaに実装された新機能である。
Microsoft社は最も初期のユーティリティ「SMARTDrive」付きのDOS時代から、低速なHDD用のキャッシュとして半導体メモリーの利用を前提としてきた。Vistaが登場するまでは、利用可能な唯一のキャッシュメモリーはDRAMであり、Windowsの各世代においてキャッシュ効率の改善が図られてきた。
VistaにはWindowsのプリキャッシュ機能として「Windows SuperFetch」が用意されている。Windows XPからの改良点としては、HDDのバックアップやウィルススキャンなど、キャッシュのスラッシングが生じてしまう可能性のあるバックグラウンドタスクの影響を抑制するインテリジェント機能を内蔵していることなどがある。Microsoft社によると、「SuperFetchは、ユーザーによるパソコン操作のパターンを基に『学習』し、適応型に機能することも可能だ」という。全体的な傾向だけでなく、1日のうちのある時間や1週間のうちのある曜日といったようなよりきめ細かい傾向にも対応する。
Microsoft社は、同社ウェブサイトに以下のように記載している*3)。
パソコンの性能を向上させるための最善の方法は、システムメモリー(一般的にはRAM)の追加であることが多い。メモリーが増加すれば、より多くのアプリケーションがHDDにアクセスすることなく実行可能な状態になるからだ。しかし、メモリーの追加が困難であったりコストがかかったりする場合がある。また、マシンによってはメモリー増設機能に制限があり、RAMを追加できないものもある
このような背景から、VistaのSuperFetchは、DRAMだけでなく、一時的/付加的に用いられるフラッシュメモリーに対してもHDDのキャッシュ機能を提供する。Microsoft社はこの手法に「ReadyBoost」という名前を付けている。この場合のフラッシュメモリーとしては、マザーボードに実装されているものも対象となる。そのような製品の例には、米Intel社のMini PCI Expressモジュール「Turbo Memory(コード名はRobson Technology)」(図1)や米AMD(Advanced Micro Devices)社のフラッシュメモリーアレイ「HyperFlash」がある。また、ReadyBoostはアドインモジュールとして実装された機器に対応することもできる。平均圧縮率が2対1のロスのない圧縮とAES(advanced encryption standard)-128アルゴリズムを用いたMicrosoft社のHDD用キャッシュ体系により、フラッシュメモリーストレージを安全かつ効率良く利用することができる。
上述した説明を読む限りは良いことづくめだが、実際にはいくつかの注意点もある。Vistaは、システムがハイバネーションから復帰する際、外付けのフラッシュメモリーモジュールにキャッシュされた情報は破棄する。OSはモジュールが取り外されたかどうかを判断することができず、ハイバネーション中に、モジュールの内容が書き換えられている可能性があると見なすからである。
フラッシュメモリーの読み出し性能と書き込み性能は、DRAMで実現されたキャッシュよりも低い(特に後者は)。一方、フラッシュメモリーからのランダム読み出しは、回転式ディスクストレージ特有の回転/検索による遅延がないため、HDDよりも高速である。しかし、シーケンシャルな読み出しと、ランダム/シーケンシャルな書き込みの速度は、明らかにフラッシュメモリーのほうが遅い。こうした特性から、条件によっては、HDDに軍配が上がることになる。そこで、Microsoft社は、ReadyBoost用のフラッシュメモリーの容量と速度の要件を以下に挙げるように厳しいものとした。
Vistaはフラッシュメモリーストレージが上記の条件を満たしていることを検出しない限り、それをReadyBoostの対象とはしない*4)。また、以下のような推奨条件もある。
フラッシュメモリーベースのメモリースティック(図2)の多くは、Microsoft社のReadyBoostの要件を満たす。しかし、メモリースティックは、常に使用するハードディスクのキャッシュ用という目的に対しては不便である。さらに言えば、パソコンの前や後ろ、側面から突き出す形となるため、見た目にも美しくない。一方、SDメモリーカード、ExpressCardなど、ほかのフォーマットのメモリーカードであれば、コンピュータのカードリーダースロット内にReadyBoost用のデバイスとして安全に配置することができる。また、デスクトップ型パソコンでは、マザーボードにあるUSBコネクタを、ReadyBoost対応の実装を行うためのシステム配線に利用することが可能である。Mini PCI Expressコネクタも、ノート型/デスクトップ型コンピュータの両方においてReadyBoost用に使用できる。しかしこれらをフラッシュストレージに使ってしまうと、ワイヤレス接続などの機能にコネクタを使用することができなくなる。特にI/O数の少ないチップセットや小型のマザーボードでは、Mini PCI Expressスロットが1つしかないケースもあり都合が悪い。
ReadyBoostのアルゴリズムは、フラッシュメモリーの能力を最大限に活用し、不揮発性の半導体デバイスの限界をうまく回避しようとしている。そのために、Microsoft社のエンジニアらは、一般的なコンピュータの利用法を調査した結果から1つの仮定を導き、それに基づいてReadyBoostのコードをチューニングしている。しかし、あるユーザーの実使用時のデータやベンチマーク結果が、かなりの頻度でHDDへの書き込みを行うなど、同社の予測から大きく逸脱したものであれば、ReadyBoostによる成果はあまり顕著なものとはならない。最悪の場合、ReadyBoostを働かせたほうが処理が遅くなってしまう可能性もある。
ReadyBoostに関する数多くのテスト結果から、これまでのところ次の4点が一般的な結論であると考えられる。
理論的な能力はさておき、ReadyBoostの短期的な見通しはあまり明るいとは言えない。しかし、本稿執筆後に、VistaのパッチがMicrosoft社から発表された。そのパッチでは、同社が数年前から主張してきた性能の向上が、より明確に実現されているかもしれない。
※1…Santarini, Michael, "MemCon panelists ponder challenges of flash, SSDs, HHDs, in PC, server applications," EDN, July 20, 2007.
※2…『デジカメ設計の“次の一手”』(Brian Dipert、EDN Japan 7月号、p.59)
※3…"Windows Vista Features Explained," Microsoft Corp. http://www.microsoft.com/windows/products/windowsvista/features/details/readyboost.mspx.
※4…"Windows PC Accelerators," Microsoft Corp, Dec 4, 2006. http://www.microsoft.com/whdc/system/sysperf/perfaccel.mspx.
Copyright © ITmedia, Inc. All Rights Reserved.