シリンダー ヘッド セクター

ハード ドライブ形状の図

CHS アドレスは、トラックの位置によってディスク上の個々のセクター (データの物理ブロックの別名) を識別するプロセスで、トラックはヘッドとシリンダー番号で決定される。 この用語はボトムアップで説明され、ディスク・アドレッシングではセクタが最小単位となります。 ディスクコントローラは、論理的な位置を物理的な位置に対応させるためにアドレス変換を導入することができます。たとえば、ゾーンビット記録では、短い(内側の)トラックに少ないセクタを格納し、物理ディスクフォーマットは必ずしも円筒形ではなく、トラック内のセクタ番号は歪んでいることがあります。

現在、ハード ディスクの最も一般的な物理セクタ サイズは 512 バイトですが、IBM 互換マシン以外では 520 バイトのセクタのハード ディスクも存在します。 2005 年には、一部の Seagate カスタム ハード ディスクは、1 セクタあたり 1024 バイトのセクタ サイズを使用していました。 アドバンスト フォーマット ハード ディスクは、2010 年以降、物理セクタあたり 4096 バイト (4Kn) を使用しますが、過渡期には 512 バイト セクタ (512e) もエミュレートできるようになる予定です。4641>

CHS アドレッシングでは、セクタ番号は常に 1 から始まり、セクタ 0 は存在しません。

物理ディスクのジオメトリでは、最大セクタ数はディスクの低レベルフォーマットにより決定されます。 しかし、IBM-PC互換機のBIOSによるディスクアクセスでは、セクタ番号が6ビットで符号化されていたため、1トラックあたりの最大セクタ数は111111(63)であった。

TracksEdit

トラックとは、セクタの薄い同心円状の帯のことである。 1つのトラックを読むために少なくとも1つのヘッドが必要です。 ディスクの形状に関して、トラックとシリンダーという用語は密接に関連しています。 片面または両面フロッピーディスクではトラックを、2つ以上のヘッドではシリンダーを一般的な用語とします。 厳密に言うと、トラックはSPTセクタからなるCH組合せであり、シリンダはSPT×Hセクタからなる。

CylindersEdit

ディスクドライブにおけるデータの分割で、Fixed Block ArchitectureディスクのCHSアドレスモードやCKDディスクのCCHHR (cylinder-head-record) アドレスモードで使用されているものである。

コンセプトは、物理ディスク(プラッタ)を貫く同心円状の中空円筒スライスで、プラッタのスタックを介して整列したそれぞれの円形トラックを収集することである。 ディスク・ドライブの円筒の数は、ドライブ内の1つの表面上のトラックの数に正確に等しくなります。 これは、各プラッタ上の同じトラック番号からなり、データを格納することができる各プラッタ表面にわたって、そのようなすべてのトラックを(トラックが「不良」であるかどうかに関係なく)またがります。 シリンダーは、トラックによって垂直方向に形成される。 言い換えれば、プラッター 0 のトラック 12 とプラッター 1 のトラック 12 などはシリンダー 12 です。

ドラム メモリ デバイスや IBM 2321 Data Cell など、他の形式のダイレクト アクセス ストレージ デバイス (DASD) では、シリンダー アドレスがデバイスの (幾何学) 円筒形スライスを選択しないものの、ブロック アドレスには、シリンダーが含まれている場合があります。

HeadsEdit

ヘッドと呼ばれるデバイスは、関連するディスクプラッタの表面を構成する磁気媒体を操作することによって、ハードドライブ内のデータの読み取りと書き込みを行う。 当然ながら、プラッターには2つの面があり、したがってデータを操作できる面も2つあります。通常、プラッター1枚につき2つのヘッドがあり、1つの面につき1つのヘッドがあります。 (フロッピー ドライブのリムーバブル メディアのように、プラッタがヘッド アセンブリから分離されることがあるため、サイドという用語をヘッドに置き換えることもあります。)

IBM-PC 互換 BIOS コードでサポートされている CHS アドレッシングでは 8 ビットを使用しており、理論的にはヘッド 0 から 255 (FFh) までカウントして最大 256 ヘッドまで使用できました。 しかし、7.10までのMicrosoft DOS/IBM PC DOSの全バージョンのバグにより、これらのOSは256個のヘッドを持つボリュームに遭遇すると、起動時にクラッシュすることになります。 したがって、すべての互換 BIOS は、仮想 255×63 ジオメトリを含め、最大 255 ヘッド (00h..FEh) のマッピングのみを使用します。

この歴史的な奇妙さは、古い BIOS INT 13h コードおよび古い PC DOS や同様の OS の最大ディスク サイズに影響を与えます。 この文脈では、8 GB = 8192 MB という定義も不正確で、1 トラックあたり 64 セクタの CHS 512×64×256 を必要とします。 古いBIOSコードでは、1024シリンダー(1024=210)までのCHSアドレッシングで10ビットをサポートしていました。 セクタ用の6ビットとヘッド用の8ビットを追加すると、BIOS割り込み13hでサポートされる24ビットになります。 4641>

CHSアドレッシングは0/0/1から始まり、最大値1023/255/6324=10+8+6ビット、1023/254/63で24ビットが255ヘッドに制限されます。 ディスクの形状を指定するためのCHS値は、シリンダー0とヘッド0を数える必要があり、24ビットで(256または255ヘッド)の場合は最大で(1024/256/63または)1024/255/63となります。 CHSタプルでジオメトリを指定する場合、Sは実際にはトラックあたりのセクタを意味し、(仮想)ジオメトリが依然として容量と一致する場合、ディスクにはC×H×Sセクタが含まれます。 4641>

28 ビットの CHS アドレッシング (EIDE と ATA-2) では、1 から始まるセクタは 8 ビット、すなわちセクタ 1 ~ 255、ヘッド 0 ~ 15 は 4 ビット、シリンダ 0 ~ 65535 は 16 ビットで指定できます。 この結果、約128GBの制限があります。実際には65536×16×255=267386880セクターで、セクターサイズ512バイトの場合、130560MBに相当します。 ATA-2 仕様の 28=16+4+8 ビットは Ralf Brown の Interrupt List でもカバーされており、現在は失効したこの規格の古い作業ドラフトが公開されています。

古い BIOS のシリンダー数 1024 と ATA の 16 ヘッドという制限を組み合わせた効果は 1024×16×63=1032192 セクター、つまりセクター サイズ 512 に対して 504 MB という制限になりました。 ECHS および改訂版 ECHS として知られる BIOS 変換スキームは、16 ヘッドの代わりに 128 または 240 ヘッドを使用することでこの制限を緩和し、同時にシリンダーとセクターの数を減らし、ディスク上の所定の合計セクター数に対して 1024/128/63 (ECHS limit: 4032 MB) または 1024/240/63 (revised ECHS limit: 7560 MB) に適合させることができます。 例えば、Linux の fdisk ユーティリティは、バージョン 2.25 以前では 1024 バイトのブロックを使用してパーティションサイズを表示していました。

クラスタは、さまざまなファイルシステム (FAT, NTFS など) 上のデータの割り当て単位で、データは主にファイルからなります。 すなわち、クラスタは与えられた CH トラックの終わり近くのセクタから始まり、物理的または論理的に次の CH トラック上のセクタで終わることができます。

コメントを残す

メールアドレスが公開されることはありません。