実験
|
まず最初に、「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アップデートに関する説明がごく簡単に記されている。 | |||
|
関連記事(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の実験」 |
- 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)
スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
|
|