セクタサイズを4KBにして解決を図るAFディスク
実用には課題もあり
そのため現在では、4KBセクタに対応したHDDが作られている。こうしたドライブを「Advanced Formatディスク」(AFディスク)という。AFディスクに関しては、HDDメーカーのWestern Digital(とHGST)、Seagate(と旧サムスン)、東芝などが、「Advanced Format initiative」というグループを結成して、普及にあたっている。
AFディスクには大きく2種類あり、ひとつは物理的なセクタサイズは4KBだが、これを論理的には8つの512Byteセクタとして扱う、通称「512e」(512Byteセクタエミュレーション)と呼ばれるドライブ(図2)だ。もうひとつは、4KBセクタをそのまま扱う「4KBネイティブ」ドライブである。こうした512Byteよりも大きなセクタを「大セクタ」と呼ぶこともある。
512eはソフト側からみると従来の512Byteセクタのように見えるが、物理セクタが4KBであるため、ECCの対象となるセクタ数は8分の1に減る。ECCの処理はコントローラー内で行なわれ、ECCはセクタ自体とは別に記録される。対象が4KBになることでECCコード自体も大きくなるものの、セクタ数が減るため、記録面の利用効率は高くなる。
512eでのドライブに対するコマンドは、512Byteセクタであるかのようにセクタ位置を指定する。だが実際には、4KBセクタの中の仮想的な512Byteセクタをアクセスするようになっている。そのためドライバーやOSなど、512Byteセクタを前提にしているソフトをそのまま使える。
一方、書き込み時には4KBセクタを読み出して、指定の512Byteセクタに対応する部分だけを変更したのち、4KBセクタを書き込む「リード・モディファイ・ライト」動作が必要になる。連続したセクタへの書き込みなら問題はないが、ランダムに512Byteセクタに書き込むようになると、リード・モディファイ・ライト動作のため、ディスクアクセスの性能が大きく落ち込むことになる。
こうした問題を避けるには、書き込み側がランダムにセクタを書き込むのではなく、連続したセクタ書き込みを行なうようにしたり、書き込み処理をまとめて行なうようにする必要がある。そのためには、OSがAFディスクが「512eなのか4KBネイティブなのか」を正しく把握して、それぞれに対応した動作を行なうほか、セクタ単位でファイルを扱うようなアプリケーション(バックアップソフトやHDDコピーソフト)に対して、物理セクタサイズを正しく通知できなければならない。
ただし、多くのWindowsアプリケーションは高レベルのファイルアクセスAPIを使い、バッファを使ってファイルアクセスを行なって、バッファ単位でまとめて書き出すので、セクタサイズを意識する必要はあまりない。Windows側が、HDDに合わせて適切な動作を行なえば済む。
Windows 7やWindows Server 2008 R2には、512eのAFディスクに対応するための修正モジュールが提供されている。しかし4KBネイティブAFディスクには対応していない。また、Windows XPはAFディスクには対応しておらず、Vistaは512eが利用可能なものの、OS内部が最適化されていない。
この連載の記事
-
第34回
PC
Windows 8の狙いは、UIの変化よりもAPIの変化が本質 -
第33回
PC
Windows 8が動作しなくなった? 新しくなった修復機能 -
第32回
PC
Windows 8でIMEに求められる新しい要素とはなにか? -
第31回
PC
Windows 8の無線LANをコマンドラインで細かく制御 -
第30回
PC
Windows 8をマウスで使いやすくするレジストリの小技 -
第29回
PC
周辺機器・アプリがWindows 8/RTで動くか確認する方法 -
第28回
PC
Windows 8のキーボードショートカットを全公開 -
第27回
PC
Windows 8が使いにくい? マウスを変えると印象も変わる -
第26回
PC
実はNFCに対応しているWindows 8 ただしアプリは不足 -
第25回
PC
実は扱いがまったく異なるWindows 8でのタッチパネル -
第24回
PC
Surfaceから見えるWindows RTの実像と、将来PCへの影響 - この連載の一覧へ