セクタサイズを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回 Windows 8の狙いは、UIの変化よりもAPIの変化が本質
- 第33回 Windows 8が動作しなくなった? 新しくなった修復機能
- 第32回 Windows 8でIMEに求められる新しい要素とはなにか?
- 第31回 Windows 8の無線LANをコマンドラインで細かく制御
- 第30回 Windows 8をマウスで使いやすくするレジストリの小技
- 第29回 周辺機器・アプリがWindows 8/RTで動くか確認する方法
- 第28回 Windows 8のキーボードショートカットを全公開
- 第27回 Windows 8が使いにくい? マウスを変えると印象も変わる
- 第26回 実はNFCに対応しているWindows 8 ただしアプリは不足
- 第25回 実は扱いがまったく異なるWindows 8でのタッチパネル
- 第24回 Surfaceから見えるWindows RTの実像と、将来PCへの影響
- この連載の一覧へ