PR

 SanDiskは、2009年に発売するSSD(Solid State Drive)の新機種において、データ書き込みの新アルゴリズム「ExtremeFFS」を実装する。SSDの弱点であるランダム書き込みの速度低下を軽減し、パソコンの内蔵ドライブとしてSSDを使用した際の読み書き速度を改善する。

 一般にSSDには、HDDにおけるセクタークラスターと同様に、データを管理するための最小単位として「ページ」と「ブロック」という概念がある。SSDにファイルを記録する場合、8KBの「ページ」を最小単位として、各ファイルに領域を割り当てていく。一方、データを消去/書き込みする場合は、ページを64個ずつ集約した、512KBの「ブロック」ごとに行う仕組みとなっている。

 パソコンからのデータ書き込み命令は、512バイトを最小単位としてSSDに送られてくる。しかし、書き込むデータがどんなに小さくても、SSDでは上述のように512KB単位でしか消去/書き込みができない。このため、SSDに既にあるデータを書き換える場合は、(1)書き換え対象となるデータの存在するページを特定する(2)該当ページと同一ブロックにある他のページのデータを退避させる(3)該当ページを含むブロックを消去する(4)該当ページの書き換えデータと、退避しておいた他のページのデータを書き込む――という手順を経なければいけない。

 SanDisk SSDビジネスユニット マーケティング担当シニアディレクターのドン・バーネストン氏は、「SSDの中には書き込み速度の速さをうたっている製品もあるが、これらは大容量のデータをシークエンシャルに書き込んだ場合の話。WindowsやWindows上で動くアプリケーションソフトのほとんどは、小容量のデータをこまめに書き込むランダムアクセスが圧倒的に多く、各社のうたい文句の書き込み速度はほとんど当てにならない。速度低下のみならず、過剰な書き込み処理が発生することによるフラッシュメモリーの劣化や、電力消費のロスといった問題もある」と指摘する。

 ExtremeFFSでは、書き換え処理時に元のページと同じ場所に新たなデータを書き込まず、別のブロックにある未使用のページに書き込んで、データのあるアドレスを示すポインターを切り替える。これにより、小容量のデータ書き換え時にブロック全体を書き換えるという処理が発生するのを抑える。なお、古いデータのあったページは「使用済み」として当面そのまま放置されるが、こうした小容量のランダム書き込みが多数発生すると、未使用の領域が不足してしまう。このため、使用済みページの多くなったブロックは、SSDのアイドル時にリフレッシュ処理をする。これにより、使用済み領域を解放・初期化し、再び書き込み可能な状態にする。

 こうしたExtremeFFSのアルゴリズムに加え、SSD内部でのデータの格納場所を最適化する「Usage Based Content Localization」というアルゴリズムも備える。これは、個々のパソコンにおいてどのようなデータがどの程度の頻度で書き込まれるかを統計情報として集約する。この統計情報を基に、書き換え頻度の高いデータ同士、書き換え頻度の低いデータ同士をなるべく同一ブロックに記録するよう制御する。「ユーザーがSSDをパソコンに装着してから1週間程度使えば、最適化に必要な統計情報を収集できる」(バーネストン氏)という。

 同社はこのほか、SSDの性能を示す2つの指標を提唱している。ランダム書き込みの速度を反映できるSSDの性能指標として「virtual RPM(vRPM)」を提唱。HDDのプラッターの回転速度を示すrpm(回転/分)を基にした指標。個々のSSDの読み取り/書き込み速度が、どの程度の回転数のHDDに相当するかを算出したものといい、「SSDとHDDの性能を比較するおおよその目安として使える」(バーネストン氏)。また、SSDの寿命を示すための指標として「Longterm Data Endurance(LDE)」を提唱。工場出荷時から故障までに書き込み可能な総容量を「TBW」(Terabyte Written)という単位で示す。例えば、1日当たり20GBほど書き込み続け、4000日程度使えるSSDであれば、LDEは80TBWとなる。同社はvRPMとLDEを、半導体関連の業界団体であるJEDECへ2008年10月に提案済みで、標準化に向けた働きかけを進めていくとしている。