このページの本文へ

塩田紳二のWindows 8 IN-N-OUT 第8回

Windows 8は2.2TB超の大容量HDDにどう対応しているのか?

2012年06月21日 12時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

セクタサイズを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よりも大きなセクタを「大セクタ」と呼ぶこともある。

図2 「512e」と呼ばれるAFディスクは、HDD内部では4KBセクタを使うが、インターフェースがPC側から受け付けるコマンドでは、1セクタ512Byteの論理セクタを扱う。これにより、従来の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内部が最適化されていない。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン