限界と改良の積み重ねで進んだ
HDDの大容量化
HDDの大容量化は、Windowsというよりも常にPC側に起因する問題であった。なぜなら、システムがHDDから起動するためには、HDDコントローラーやBIOSなどのファームウェアが、HDDを完全にコントロールできなければならないからだ。例えば、パーティションは純粋にソフトウェア側で処理されるもので、起動に関わるBIOSなどは、パーティションを完全に理解できなければならない。
また大容量のHDDには、OSのファイルシステムも対応しなくてはならない。ドライブ上のすべてのセクタへ正しくアクセスできないと、そもそもファイルシステムを作れない。さらに、ファイルシステムの下にあるドライブ用のデバイスドライバーも、すべてのセクタへと正しくアクセスできなければならない。もちろん、HDDのホストコントローラーも、ドライブのすべてのセクタにアクセスできるような、コマンド形式を持っている必要がある。
HDDはPCの進歩とともに大容量化してきたが、水平分散のPC業界では、デファクトスタンダードが確立するまでに時間がかかり、必ずしもいつもベストな選択がなされるとは限らない。そのためHDDではこれまでにも、下表のようないくつかの問題が起きていた。
時期 | 境界容量 | 原因 | 対策 |
---|---|---|---|
1983 | ― | IBM PC/XTが初めてHDDを搭載 | BIOSでの扱いを定義 |
1994 | 504MB | CHS構造の破綻 | LBA 28bit |
1996 | 8.4GB | BIOSの制限(IDEの定義とBIOS定義の齟齬) | BIOS仕様を拡張 |
2001 | 137GB | LBA 28bitの限界 | LBA 48bit(BigDrive) |
2005 | 2.2TB | パーティションテーブルでの32bit容量指定の限界 | GPTの導入 |
だが、これらの解決にはBIOSの拡張や新規のハードウェアが必要なこともあり、ベンダーによっては必ずしも、過去に出荷したすべての製品に対してBIOSのアップデートを提供してきたわけでもない。昔からのPCユーザーなら、大容量ディスクの問題と聞くだけで「またか」と思う人は少なくないだろう。
最近では、「2.2TB以上のHDDに対応するために、BIOSとOSの対応が必要」という問題がある。パーティションはハードウェアの機能ではなく、OSなどがドライブ内の領域を分割して扱うものだ。通常はドライブ内に各パーティションに割り当てた容量を記録しておき、これを元に各パーティションの先頭位置を算出する。これをパーティションテーブルという。
今まではこのサイズを表現するのに、32bitの整数値を使っていたため、2.2GB(2^32)が、1パーティションの最大値となっており、これがパーティションがひとつしかない場合の物理ドライブの最大容量となってしまっていた。これを解決するために作られたのが「GPT」(GUIDパーティションテーブル)だ。
セクタ増の問題を解決する「AFディスク」
現在市販されているPC用HDDの容量は、4TBまで増えている。これは2001年に規格化された「48bit LBA」の制限には引っかからないのだが、それ以外の問題がいくつかでている。ひとつは、これまではずっと1セクタを512Byteとしてきたため、セクタ数が増えすぎてしまい、セクタを区切るためのデータやECC(誤り訂正コード)といった、セクタ以外の部分の占める割合まで増えてしまったことである。
HDDの大容量化には、誤り訂正技術も寄与している。現在のHDDにECCは必須だ。しかしECCはセクタごとに必要になるので、高速・大容量化のために、ECCのサイズも増えていく傾向にある。そのためセクタ数が増えれば増えるほど、ドライブ内でECCが占める割合も無視できなくなってきたわけだ。また、セクタ間には「ギャップ」や「シンク」と呼ばれるセクタの区切りを示す領域が必要で、さらにセクタ番号などを記録した「アドレスマーク」と呼ばれる領域もある。そのため、セクタ数が増えると、記録効率(セクタとして使われる部分とそうでない部分の比)が悪くなってしまう(図1)。
これを解決するには、セクタサイズを大きくしてドライブ内のセクタ数を減らす方法しかない。しかしセクタの読み書きは、ドライブ内のコントローラーが行なっているため、簡単にサイズを変更することもできない。大きなセクタサイズに対応したドライブを作る必要がある。
この連載の記事
-
第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への影響 - この連載の一覧へ