キーワード

フラッシュメモリ活用による高速化技術を理解するためのキーワード

デジタルアドバンテージ 小林 章彦
2007/06/11

 デジタルカメラ向けのメモリカードやiPod nano/shuffleに代表される半導体メモリ・オーディオ・プレイヤー(いわゆるMP3プレイヤー)の普及により、フラッシュメモリ(特にNAND型フラッシュメモリ)の大容量・低価格化が急速に進行している。IntelもMicron Technologyと共同で、NAND型フラッシュメモリ市場に参入するなど、今後も大容量化・低価格化が進行しそうだ。

 フラッシュメモリは、ハードディスクに比べて高速なランダムアクセスが可能、低消費電力、高い耐衝撃性、軽量、省スペースといった点に特長がある。不揮発性メモリなので、電源をオフにしてもデータが保存されるため、一時的に使うメモリ用途ではなく、データの保存、つまりハードディクスの代替としての用途が期待されてきた。実際、フラッシュメモリが登場した当初は、多くのベンダがコンピュータのハードディスクを置き換えるものと宣伝していた。しかし、ハードディスクの大容量化や低価格化なども進んだことから、フラッシュメモリへの置き換えへはメーカーの思惑どおりには進まなかった(組み込み用途などでは、耐衝撃性の高さなどから、高価ながらフラッシュメモリをハードディスクの代わりとして利用するケースもあったが)。

 しかし前述のように急速にフラッシュメモリの用途が広がり、大容量・低価格化が実現したことから、モバイルPCのハードディスクをフラッシュメモリに置き換える動きが見え始めている。その先鞭を付けたのが、2006年6月に正式発表したソニーのVAIO type U<ゼロスピンドル>モデルである。2007年には、ほかのPCベンダからも、フラッシュメモリを採用したモバイルPCが次々と発表されている。

 またWindows Vistaでは、フラッシュメモリを性能向上の手段とする「ReadyBoost」「ReadyDrive」といった新機能がサポートされるなど、PCでのフラッシュメモリの利用が拡大している。

 そこで今回は、フラッシュメモリを利用したストレージ技術に関するキーワードを取り上げる。フラッシュメモリは、現在、クライアントPC、特にノートPCでの利用が広がっているが、この動きはサーバなどにも拡大するものと思われる。今後の動向を予想する上でも、フラッシュメモリを利用した高速化技術について理解しておいた方がよい。

■SSD(Solid State Drive)
  記憶媒体としてDRAMやフラッシュメモリといった半導体メモリを利用したストレージ装置。

  インターフェイスとしては、従来のハードディスクと同じIDE/ATAを採用し、OSからハードディスクとして認識されるのが特徴である。

  以前はDRAMを採用したSSDも見られたが、揮発性メモリのため電源オフの間も通電させるバックアップ電源を必要とするのが難点だった。最近では、バックアップ電源が不要なフラッシュメモリを採用したSSDが主流となってきている。容量は16Gbytesから64Gbytes(サンプルでは128Gbytes)と、1.8/2.5インチ・ハードディスクに比べると小さい。また単位容量当たりの価格は、安価になってきたとはいえ、同容量の2.5インチ・ハードディスクの10倍程度とその差は大きい。

  ハードディスクに比べ、SSDはいくつかのメリットがある。最大の特長は、ハードディスクのように磁気ヘッドを移動させるためのシーク時間などが不要なため、ランダムアクセスがより高速であることだ。またモーターや磁気ヘッドなどの可動部が不要であることから、耐衝撃性が高く、消費電力も小さい。また比較的軽量であるというメリットもある。

  以上のような特長からSSDは、主に持ち運びを主体とするモバイルPCでの採用が先行している。ハードディスクをSSDに置き換えることで、故障の低減、性能の向上、バッテリ駆動時間の延長、軽量化などが実現するためだ。

  低消費電力やランダムアクセス速度の向上といった面では、サーバにおいてもメリットとなる。今後、さらなる大容量化や信頼性の向上が実現すれば、サーバ(特にWebサーバ)への採用が始まるものと思われる。
 
■ハイブリッド・ハードディスク(Hybrid Hard Disk)
 フラッシュメモリによるキャッシュ機能を搭載したハードディスク。「H-HDD」とも呼ばれる。

ハイブリッド・ハードディスクの特長と基本的な内部構成

  従来からハードディスク上には、DRAMを利用したキャッシュ・メモリが搭載されている。しかし、その容量は2Mbytes〜16Mbytes程度と、ハードディスクの容量(30Gbytes〜1Tbytes)に比べ、大きくない。DRAMの容量を増やすことで、性能向上が実現可能だが、コストが上昇してしまう。

  そこで、ランダムアクセスがハードディスクに比べて高速なSSD(Solid State Drive)と、容量単価が安いハードディスクの両方のメリットを併せ持ったハイブリッド・ハードディスクが開発された。ハイブリッド・ハードディスクは、50Mbytes以上のフラッシュメモリを搭載して、これをキャッシュとして活用する。

  ハイブリッド・ハードディスクでは、コンピュータをシャットダウンしたり、休止状態したりする際に、ブート・データや休止状態のファイル・データをフラッシュメモリに保存することが可能で、再起動の高速化が実現できる。またフラッシュメモリを書き込みキャッシュとして活用することで省電力化を実現できる。ある程度データが溜まった時点でデータを書き込めばよいため、その間、比較的消費電力の大きいディスクのスピンドル・モーターを停止したままにできるからだ。

  ハイブリッド・ハードディスクは、Windows Vistaでサポートされており、従来のATAを拡張したATA-8のコマンド・セットを使用して、フラッシュメモリに保持されるデータが定義されるようになっている。
 
■SuperFetch(スーパーフェッチ)
 頻繁に使用するアプリケーションを認識して、あらかじめメモリにこれらのアプリケーションや関連ファイルを読み込むことによって、システムの応答速度を向上させるWindows Vistaに実装されたメモリ管理技術。正式には、「Windows SuperFetch」という。

  SuperFetchでは、アプリケーションやファイルなどの使用パターンを分析し、よく使うアプリケーションのメモリ・イメージをあらかじめロードしておくことで、メモリへのロード時間を短縮するなどすることで、コンピュータの応答時間を改善する機能である。これにより、アプリケーション起動やハイバネーションからの復帰の高速化、アイドル時などに実行される、バックグラウンド・アプリケーション(検索用インデックス生成など)実行後の性能低下防止などを可能にする。

  SuperFetchは、頻繁に使用するアプリケーションのメモリ・イメージをキャッシュし、これを実際の実行開始以前にメモリにプリロードしておくことにより、アプリケーションの起動速度を高速化する。またSuperFetchは、バックグラウンド・アプリケーション(ウイルス検査やデスクトップ検索のためのインデックス生成など。コンピュータのアイドル時に自動実行されるものが多い)の実行完了を検出すると、それ以前の状態にメモリを自動的に復帰する。これにより、例えば昼休み中にバックグランド・アプリケーションが実行され、大量のスワップが発生した場合でも、ユーザーは昼食後に気持ちよく作業を再開できる。

  SuperFetchは、Windows Vistaで導入された高速化機能である「ReadyDrive」「ReadyBoost」でも利用される技術である。
 
■ReadyDrive(レディドライブ)
  Windows Vistaで導入されたハイブリッド・ハードディスクをコントロールする性能向上機能の1つ。正式には、「Windows ReadyDrive」という。

 ReadyDriveでは、50Mbytes〜2Tbytesのフラッシュメモリに対応しており、128Mbytes以上のフラッシュメモリを搭載したハイブリッド・ハードディスクの利用が推奨されている。内蔵のフラッシュメモリの記憶領域は、以下のような割合で利用される。SuperFetchのデータの書き込み制御などには、ATA-8のコマンド・セットが利用される。

フラッシュメモリ・サイズ(例) 64Mbytes 128Mbytes 256Mbytes 1Gbytes
H-HDDファームウェア 〜10Mbytes 〜10Mbytes 〜10Mbytes 〜24Mbytes
書き込みキャッシュ・サイズ 32Mbytes 32Mbytes 32Mbytes 32Mbytes
OEM向けデータ 1Mbytes 1Mbytes+{(フラッシュメモリ−100Mbytes)/2}
SuperFetch 残り 残り 残り 残り
表区切り
ReadyDriveが利用するフラッシュメモリの割り当て

  ReadyDriveを利用することで、アプリケーションの起動の高速化や低消費電力化が実現する。「NVキャッシュ・モード」と呼ぶ低消費電力モードを利用すると、積極的にフラッシュメモリへの読み出し/書き込みを行うことで、ハードディスクのスピンドル・モーターの回転を止め、70〜90%の電力を削減できるとしている。
 
■ReadyBoost(レディブースト)
  Windows Vistaで導入されたフラッシュメモリを利用したキャッシュ機能の1つ。正式には、「Windows ReadyBoost」という。

  プロセッサやメイン・メモリに比べ、ハードディスクのデータ転送速度は遅く、システムの性能におけるボトルネックの1つとなっている。システムに搭載するメイン・メモリ容量を拡張することでディスク・キャッシュを増やし、このボトルネックを軽減することが可能だ。しかしメイン・メモリは比較的高価なパーツである上、多くのノートPCのように実装可能なメイン・メモリ容量が少ない場合、ディスク・キャッシュにあてがうほどの容量を確保できない場合もある。

  そこでWindows Vistaでは、メイン・メモリに使われるDRAMよりも性能的に劣るものの、ハードディスクよりも高速なデータ転送(特にランダムアクセス)が可能なフラッシュメモリを利用する「ReadyBoost」をサポートした。ReadyBoostは、メモリとハードディスクの間に論理的に介在する中間キャッシュとして働く。

  ReadyBoostで利用可能なフラッシュメモリは、PCI/PCI Express/SSA(Serial Storage Architecture)バス経由で接続されたUSBフラッシュメモリ/SDカード/コンパクトフラッシュ(CF)/メモリースティックとなっている。ただし、容量が256Mbytes〜32Gbytesあり、4Kbytesのランダム読み出しの転送速度が2.5Mbytes/s以上、512Kbytesのランダム書き込みの転送速度が1.75Mbytes/s以上である必要がある。なお上述のフラッシュメモリ容量のうちReadyBoostが利用可能な領域は、230Mbytes〜4Gbytesとなっている。

  マイクロソフトは、ReadyBoostのキャッシュ・サイズをメイン・メモリと同容量以上とすることを推奨している。最も効率がよいのは、メイン・メモリの3倍の容量をReadyBoostのキャッシュ・サイズとすることであるとしている。

  上記の条件を満たしたフラッシュメモリをWindows Vista搭載コンピュータに差すと、[自動再生]ダイアログが起動し、動作として「システムの高速化」が選択できるようになる(Windowsエクスプローラを起動し、接続したフラッシュメモリのドライブのプロパティを開くことでも設定可能)。フラッシュメモリの性能が、ReadyBoostを利用するための条件を満たしている場合、[リムーバブル ディスクのプロパティ]−[ReadyBoost]タブにReadyBoostとして利用するかどうかや、その予約容量などの設定が表示される。条件を満たしていない場合は、このタブに「このデバイスには、システムの高速化に使用される必要なパフォーマンス特性がありません」と表示され、ReadyBoostが利用できないことが示される。

[ReadyBoost]タブの画面
ReadyBoostを利用できる必要条件を満たしたフラッシュメモリの場合、このようにプロパティの[ReadyBoost]タブにてReadyBoostの設定を変更できる。条件を満たしていない場合、「このデバイスには、システムの高速化に使用される必要なパフォーマンス特性がありません」と表示され、ReadyBoostが利用できないことが示される。

  フラッシュメモリがReadyBoostとして設定されると、そのルート・フォルダに「ReadyBoost.sfcache」という名前のキャッシュ・ファイルが作成され、ここにSuperFetchのデータ・ファイルが保存される。このデータ・ファイルは、2:1の圧縮比になるように圧縮されるため、1Gbytesのキャッシュ・ファイルには2Gbytesのデータが格納されることになる。また、このファイルには、書き込むブロックごとに128bitのAdvanced Encryption Standard(AES)で暗号化されるため、抜き出したフラッシュメモリを紛失しても、そこから情報漏えいするようなことはないとしている。

  またReadyBoostでは、ランダムアクセスに対してはフラッシュメモリ上のキャッシュ・データから読み出しを行うが、シーケンシャルアクセスに対してはハードディスクの方がフラッシュメモリよりも高速なため、データがキャッシュに存在しても、直接ハードディスク上から読み出すようになっている。

  Windows Vistaでは、同じような名称の「ReadyBoot」と呼ばれる高速化機能もサポートされているが、こちらはメモリ内のキャッシュを利用してブート・プロセスを最適化する機能であり、ReadyBoostとは異なるものである。
 
■Turbo Memory(ターボ・メモリー)
  インテルのノートPC向けプラットフォーム「Centrino Duo/Pro」のオプションとして提供されているフラッシュメモリを利用したキャッシュ機能。開発コード名「Robson(ロブソン)」で呼ばれていたもの。正式には「Intel Turbo Memory(インテル ターボ・メモリー)」という。

  Turbo Memoryは、ノートPC内のPCI Express x1インターフェイスに専用のフラッシュメモリ・モジュールを実装することで、そのフラッシュメモリを、ReadyBoostとReadyDriveで利用可能とするものだ。このことから現時点のTurbo Memoryは、ReadyBoostとReadyDriveをサポートするWindows Vistaにのみ対応する。インテルによれば、Turbo Memoryを搭載することで、アプリケーションが2倍高速に起動でき、Windows Vistaの起動時間を20%速くできるという。

  Turbo Memoryのハードウェアは、NANDフラッシュメモリとコントローラの「DiamondLake(ダイアモンドレイク)」で構成されている。現在、Intelでは512Mbytesと1GbytesのTurbo Memoryモジュールを、PCI Express Mini Cardまたはチップで提供している。512Mbytesモジュールの場合、Turbo MemoryはReadyDriveのみをサポートし、ReadyBoostは有効化できない。1Gbytesモジュールの場合は、ReadyDriveとReadyBoostに512Mbytesずつが割り当てられる。

  このようにTurbo Memoryが、ReadyDriveとReadyBoostに割り当て可能な容量が小さいことから、性能向上を疑問視する向きもある。また、Turbo Memoryとは別に大容量のUSBフラッシュメモリを差しても、それをReadyBoostとして利用できない(Windows VistaではReadyBoostとして設定できるドライブは1つに限られるため)ことなどから、Hewlett-Packardやソニーなどの一部のPCベンダは、当面Turbo Memoryを採用しないことを表明している。記事の終わり
 
 
 
 「System Insiderのキーワード」


System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

System Insider 記事ランキング

本日 月間