5.2. ストレージアドレス指定の概念

ディスクプラッタ、ヘッド、アクセスアームの組合せで大容量ストレージデバイス内のいずれのプラッタのいずれの面のいずれの箇所にもヘッドを配置することができるようなります。しかし、これでは不十分です。このストレージの容量を使用するには、使用できるストレージのサイズが均一化された部分にアドレスを与える何らかの手段が必要になります。

この手順には最後にもうひとつ必要となる事項があります。一般的な大容量ストレージデバイス内に存在する数多のシリンダのトラックすべてを考えてみてください。トラックはそれぞれ異なる直径を持ち、円周も異なります。したがって、ストレージがトラックレベルだけにアドレス指定されるならば、各トラックは異なるデータ量を保存していることになります — トラック #0 (プラッタの中心に近い場所に位置する)は 10,827 バイトを保存しているが、トラック #1258 (プラッタの外縁に近い場所に位置する)は 15,382 バイト保存しているかもしれません。

これを解決するには各トラックを規則正しい (512 バイトの場合が多い)ストレージ区分の複数セクタまたはブロックに分割します。これにより、各トラックには複数セクタの 1 組の番号[1]が含まれることになります。

これによる副作用として各トラックに未使用スペースができます — セクタ間のスペースのこと。各トラックにある一定したセクタ番号にもかかわらず、未使用スペースの量は異なってきます — 比較的、内側のトラックには未使用スペースが少なく、外側のトラックに未使用スペースが多くなります。いずれの場合も、この未使用スペースは無駄になり、そこにデータを保存することはできません。

しかし、大容量ストレージデバイス上でストレージの効果的なアドレス指定が可能になったことは、この無駄になったスペースを補うに足る利点となります。実際には、アドレス指定方法として 2 種類あります。— 幾何学式のアドレス指定とブロック式のアドレス指定です。

5.2.1. 幾何学式のアドレス指定

幾何学式のアドレス指定 という用語は大容量ストレージデバイスが実際にデータをストレージ媒体上の特定の物理的な場所に保存することを指します。ここで説明しているようなデバイスの場合、デバイスのディスクプラッタ上の特定ポイントを定義する 3 項目を参照します。

次のセクションでは仮説に基づいてアドレスがストレージ媒体上の特定の物理的な場所を記述する方法を説明します。

5.2.1.1. シリンダ

先に述べたように、シリンダはアクセスアームの特定の位置を示します (読み書きヘッド)。特定シリンダを指定することで、その他すべてのシリンダを除外して、大容量ストレージデバイス内の各面の特定トラックだけに検索を減らします。

シリンダヘッドセクタ
1014XX

表 5-1. ストレージアドレス指定

表5-1 では、幾何学式のアドレスの最初の部分が記入されています。このアドレスに対するコンポーネントが 2 つ — ヘッドとセクタ — 未定義のままです。

5.2.1.2. ヘッド

非常に厳格な意味で特定のディスクプラッタを選択していますが、各表面にはそれ専用の読み込み/書き込みヘッドがあるため、特定ヘッドとの相互作用という観点で考える方が簡単です。実際に、デバイスの基礎となる電子機器は 1 つのヘッドを選択して — 他を選択から外す — I/O 動作中には選択したヘッドとだけ作用し合います。現在のシリンダを構成するその他のトラックはここで排除されています。

シリンダヘッドセクタ
10142X

表 5-2. ストレージアドレス指定

表5-2 では、幾何学式アドレスの最初の部分が記入されています。このアドレスに対する最後のコンポーネント —セクタ—が未定義のままです。

5.2.1.3. セクタ

特定のセクタを指定することにより、アドレス指定を完了し目的のデータブロックを固有に識別することができました。

シリンダヘッドセクタ
1014212

表 5-3. ストレージアドレス指定

表5-3 では、完全な幾何学式アドレスが記入されています。このアドレスがこのデバイスにあるすべてのブロックから 1 つの特定ブロックの場所を識別します。

5.2.1.4. 幾何学式アドレス指定の問題点

幾何学式アドレス指定 は簡潔ですが、問題の要因となる可能性があるあいまいなところがあります。あいまいとはシリンダ、ヘッド、セクタの番号付けにあります。

それぞれの幾何学式アドレスは 1 つの特定データブロックを独自に識別しますが、シリンダ、ヘッド、セクタの番号付け方式が変更されない場合にのみ適用できます。番号付け方式が変更すると(ハードウェア/ソフトウェアがストレージデバイスの変更に合わせる場合など)、幾何学式アドレスと該当データブロック間のマッピングが変わる可能性があり、目的のデータにアクセスできなくなります。

あいまい性が起こる可能性があるため、アドレス指定に別の手段が開発されました。次のセクションではこれについて説明します。

5.2.2. ブロック式のアドレス指定

ブロック式のアドレス指定 は 幾何学式のアドレス指定よりさらに簡潔です。ブロック式のアドレス指定では、各データブロックに固有の番号が与えられます。この番号はコンピュータから大容量ストレージデバイスに渡され、デバイスの制御回路が必要とする幾何学式アドレスへ内部的に変換が行なわれます。

幾何学式アドレスへの変換は常にデバイスが行うため、常に整合性があり、デバイスの幾何学式アドレス指定による固有の問題を解消します。

注記

[1]

当初の大容量ストレージデバイスには各トラックに同じセクタ番号が使われていましたが、最近のデバイスはシリンダの範囲を別々の"ゾーン"に分割し、各ゾーンはトラックごとに異なるセクタ番号を持つようになっています。これは、セクタ間に未使用スペースがあるシリンダ外側のセクタ間の余分なスペースを有効に使用するためです。