実験 

137Gbytes超IDEディスクの正しい使い方

1.IDEハードディスクの「容量の壁」とは?

デジタルアドバンテージ 島田広道
2002/01/22

 まず最初に、「137Gbytesの壁」とは一体どんな障害なのか、はっきりさせておこう。PCの歴史を振り返ると、ハードディスクの容量が増加する一方で、PCのハードウェアやソフトウェアの仕様が急速な容量増大に追い付かず、それが原因でソフトウェアからハードディスクの全容量を正しく認識できない、というトラブルがしばしば生じてきた。これは「容量の壁(Capacity Barrier)」などと呼ばれている。

 下図はIDEハードディスクからなるPCのディスク・サブシステムの構成を簡略化して表したものだ。図中の各コンポーネントは右から左へ、ディスクをアクセスする指令を伝えていくのだが、その際、アクセス対象のブロック(セクタ)を指定するアドレス情報も伝わる。このアドレス情報の表現方法(データ・サイズ)や取り扱い方法により、アクセス可能な最大セクタ番号(=アクセス可能な容量の上限)が決まる。それが実際のIDEハードディスクの容量を下回る場合、ユーザーには容量の壁として見えるようになる。

IDEハードディスクからなるPCのディスク・サブシステムの構成
図の右側が上位レベルのソフトウェアで、左に向かうにつれて下位レベルのソフトウェアやハードウェアになる(ディスク関連ツールの一部は、直接IDEへアクセスする場合があり、点線の矢印はそれを表している)。ディスクBIOSはOSのブート時やディスク関連ツールから利用され、IDEドライバはOS本体やその上位のアプリケーションから利用される。容量の壁は、図中の各コンポーネントにて取り扱える容量の上限に起因する。そのため、原因となるコンポーネントによって、ユーザーから見える制限の症状も異なる。

 例えば、3年ほど前に問題となった「8.4Gbytesの壁」は、ディスクBIOSとその上位プログラム(DOSやOSのブート・ローダなど)の間でやり取りされるディスクのセクタ・アドレス情報が、CHSパラメータ*1という古い仕様に沿っていたことが原因で発生した。これは、CHSパラメータからLBA*2に変更することで解決された。そのほかにも容量の壁はソフトウェアのバグで生じたこともある。

*1 CHSとはCylinder(シリンダ)/Head(ヘッド)/Sector(セクタ)それぞれの頭文字からなる略称で、ディスク内のセクタの位置を特定するアドレス情報の1種である。ハードディスク内部にある複数のプラッタ(磁気記録の円盤)の構造をそのまま反映しているのが特徴だ。
  シリンダはプラッタ上にある記録トラックを、またヘッドは複数のプラッタ上にある記録面を、セクタは1本の記録トラック上にあるブロック(セクタ)を、それぞれ特定するためのパラメータである。もっともBIOSやIDEインターフェイス、パーティションなどで取り扱うCHSパラメータは論理的なもので、ハードディスクの物理構造からはかけ離れている。
  CHSは古くからあるアドレス情報だが、1つのセクタを特定するのに3つのパラメータを指定しなければならないなど扱いが面倒なことから、最近では後述のLBAが主流になっている。
*2 LBAとはLogical Block Address(Addressing)の略で、ディスク内の各セクタに、0から順番に番号を割り当て、それをアドレス情報として用いるというものだ。CHSとは対照的に、ハードディスクなどストレージ・デバイスの構造に依存していないのが特徴である。
  OS内部はもとより、最近ではディスクBIOSやIDEインターフェイスでもLBAが主流になっており、CHSは廃れてきている(パーティション・テーブルなどで、まだCHSが残っているが)。

「137Gbytesの壁」が生じる理由とその対策

 そしていま、単体の容量が100Gbytesを超えるハードディスクが登場し始めた現在、IDEが直面している容量の壁は、137Gbytesにある。この壁の原因はソフトウェアのバグなどではなく、既存のIDEハードディスクの仕様そのものにある。

 現在のIDEハードディスクでは、ソフトウェアからアクセス先のセクタを指定するのにLBAを使用するのが一般的だ。従来のIDEハードディスクの仕様では、LBAで指定されるセクタ・アドレスのサイズ(LBAのbit幅)は28bitであり、0〜(2の28乗-1)の数値を表現できる。逆にいえば、最大でも2の28乗=268,435,456個のセクタしか取り扱えない。そのため、ソフトウェアからアクセス可能なセクタの総容量は、これにIDEハードディスクのセクタ・サイズである512bytesをかけた137,438,953,472bytes、すなわち約137Gbytesまでとなる。これが137Gbytesの壁が生じる理由だ。

 そこでハードディスク・ベンダのMaxtorは2001年6月に「Big Drive」という名称で、LBAを28bit幅から48bit幅に増やし、この「137Gbytesの壁」を解消するための仕様を発表した(日本マックストアによるBig Driveのプレスリリース)。これは「48bit LBA」という名称でIDEの正式規格「ATA/ATAPI-6」にも取り込まれており、今後のIDEの標準仕様となることが確実だ(なお従来のLBAは「28bit LBA」と呼ばれる)。48bit LBAの仕組みや実装方法については、「動向解説:IDEディスクの壁を打ち破る最新ディスク・インターフェイス 1.容量の壁を打ち破る『Big Drive』」を参照していただきたい。

 LBAを48bit幅に広げることにより、アクセス可能な総容量は約144Pbytes(PbytesはPeta bytesの略で1Peta bytesは1,000,000Gbytes)と劇的に増える。これで当分の間、IDEハードディスクの仕様が原因で、容量の壁が生じることはないだろう。

「137Gbytesの壁」を破る48bit LBAの対応状況

 実際にエンド・ユーザーのレベルで137Gbytesの壁を解消するには、IDEに関わる各コンポーネントが新しい48bit LBAに対応する必要がある。具体的には、前出の図のうち、IDEハードディスクとIDEドライバ、ディスクBIOSは、48bit LBAに対応するために、何らかの仕様変更が強いられる。実際のところ、既存のPCのほとんどは48bit LBAに対応しておらず、これらのコンポーネントのうちどれかをアップデートしなければならない。

■IDEハードディスク
 標準規格に採用されている以上、137Gbyetsを超える容量のハードディスクには、必ず48bit LBAが実装されるようになるだろう。Maxtor製160Gbytesハードディスクには、すでに48bit LBAが実装されている。そのため、PC側(IDEインターフェイスやソフトウェアなど)さえ48bit LBAに対応していれば、全容量が使えるようになる。

 また、たとえ137Gbytesを超えるハードディスクでも、従来の28bit LBAも必ず実装することが規定されている。従って、PC側が48bit LBAにまったく対応してなくても、137Gbytesを超えるハードディスクがまったく使えないということはない。28bit LBAで制御されるため、全容量137Gbytesのハードディスクとして利用できる。

 エンド・ユーザーとしては、IDEハードディスクの48bit LBA対応を気にする必要は特にない。137Gbytesを超えるハードディスクを入手したら、それは48bit LBA対応のはずであり、137Gbytesの壁に遭遇するかどうかはPC側の対応で決まるからである。その点で、ほかのコンポーネントの48bit LBA対応の方が、はるかに重要だ。

■IDEホスト・コントローラ
 IDEホスト・コントローラとは、PC側のIDEインターフェイスを制御するチップのことだ(ハードディスク側はIDEディスク・コントローラなどと呼ばれる)。48bit LBAの仕様は、従来のIDEホスト・コントローラの仕様をなるべく変更することなく実装できるよう設計・規定されている。そのため、既存のIDEホスト・コントローラのまま、IDEドライバのアップデートだけで137Gbytesの壁を解消できる場合がある。

 その一方で、コントローラ内部の電子回路レベルで28bit LBAに依存した部分があり、48bit LBAに対応できないIDEホスト・コントローラも存在するようだ。具体的には、IDEの性能を高めるために、ソフトウェアではなくハードウェアでLBAの値(セクタ・アドレス)をIDEハードディスクへ送出するようなコントローラが挙げられる。IDE RAIDコントローラには、こうした仕様のものが存在するという。このようにハードウェア的な「制限」がある場合、IDEドライバなどソフトウェア・レベルではカバーしようがなく、IDEホスト・コントローラ自体を48bit LBA対応のものに交換するしかない。例えば、48bit LBA対応のPCI IDEカードをPCIスロットに装着し、それに137Gbytesを超える容量のハードディスクを接続するといった具合だ。

 既存のIDEホスト・コントローラにおけるハードウェア的な制限の有無は、エンド・ユーザーのレベルでは調べようがないので、IDEホスト・コントローラあるいはPCのベンダに問い合わせて、48bit LBAに対応可能かどうか確認するしかない。ただ、48bit LBA対応のIDEドライバがいつまでもベンダからリリースされない場合は、制限がある可能性が高い。その点では、IDEホスト・コントローラよりむしろそのIDEドライバに48bit LBA対応版のアップデートがあるかどうか注目すべきだ。

 48bit LBA対応を明記したIDEホスト・コントローラやIDEカードは、少ないながらすでに市販が始まっている。

■IDEドライバ
 IDEドライバの48bit LBA対応は、137Gbytesの壁を解消するにあたって必須である。IDEハードディスクを直接制御して48bit LBAを取り扱うのは、OSの起動時を除けば、このIDEドライバだからだ。

 しかし、48bit LBA対応を謳ったIDEドライバはまだ少ない。Windows OSの標準IDEドライバは48bit LBAをサポートしていない。特にWindows XPについては、当初48bit LBAをサポートするとされていたが、Service Pack 1での対応に変更されたようだ。つまり、既存のPC環境のほとんどは、IDEドライバを48bit LBA対応版にアップデートしないと、137Gbytesの壁を克服できない可能性が非常に高い。

 OS標準のIDEドライバ以外としては、IntelやVIA Technologiesといったチップセット・ベンダが、チップセット内蔵のIDEホスト・コントローラ向けに提供しているIDEドライバが有名だ。この両社は、すでに48bit LBA対応のIDEドライバのアップデートをWebサイトで提供し始めている。

■ディスクBIOS
 ディスクBIOSは、OSの起動時あるいはインストール時にディスクをアクセス際に利用されるため、48bit LBAに対応していることが望ましい。現在、数は少ないものの、マザーボード・ベンダがBIOSのアップデートによる48bit LBA対応を開始している。

マザーボード・ベンダによる48bit LBA対応BIOSの配布
これはGigabyte Technologyというマザーボード・ベンダのサポートWebページの1つ。最新のBIOSアップデートに関する説明がごく簡単に記されている。
  「Support 137GB HDD」という一文から、このBIOSアップデートでディスクBIOSが48bit LBAをサポートできるようになるようだ。
 

  関連記事(PC Insider内) 
IDEディスクの壁を打ち破る最新ディスク・インターフェイス
1.容量の壁を打ち破る「Big Drive」
 
  関連リンク 
Big Driveのプレスリリース
 

 INDEX
  [実験]137Gbytes超IDEディスクの正しい使い方
  1. IDEハードディスクの「容量の壁」とは?
    2. 48bit LBAに未対応だと、どんな不具合が生じるのか?
    3. 160GbytesハードディスクへWindows 2000をインストールする
    4. 48bit LBA対応IDEインターフェイス・カードを利用する
 
「PC Insiderの実験」


System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

System Insider 記事ランキング

本日 月間