私はいつも、ハードドライブがデータの最初のビットをどのように見つけるのかと疑問に思っていました。
ハードドライブがスピンアップすると、読み取りヘッドが別の位置に移動するまで、読み取るものはすべてデータの循環ストリームでなければなりません。
しかし、そのような循環ストリームでは、ドライブは最初のビットと最後のビットがどこにあるのかをどのようにして知るので、正しい順序でデータを渡すことができますか?
私はいつも、ハードドライブがデータの最初のビットをどのように見つけるのかと疑問に思っていました。
ハードドライブがスピンアップすると、読み取りヘッドが別の位置に移動するまで、読み取るものはすべてデータの循環ストリームでなければなりません。
しかし、そのような循環ストリームでは、ドライブは最初のビットと最後のビットがどこにあるのかをどのようにして知るので、正しい順序でデータを渡すことができますか?
回答:
ディスクからそれを読み取ります。
ディスク上のデータは構造化されているだけでなく(@psusiが言うように)、エンコードされています。エンコードにより、記録されたデータがセクター見出しの位置マーカーと混同されることがないため、ターゲット位置マーカーが見つかるまで循環ストリームを読み取ることができます。
私が理解しているように、現代のハードドライブはそれをしません。サークル全体をバッファーに読み込み、各セクターの場所を追跡し、バッファーを使用して要求されたデータを送り返します。
更新:
磁気メディアは、2つの重要な特性を備えた磁場を持つ材料です。1)独自に変化することはありません。2)記録デバイスは、表面の任意のポイントで磁場の方向を変更できます。メディアを読み取るとき、センサーは、フィールドがセンサーに向かっている場所と、フィールドがセンサーから離れている場所を検出します。センサーが表面を移動すると、これらの極性遷移のタイミングを検出します。デコーディングの最初の層はこれらのタイミングをビット値に翻訳しています。このプロセスで物理的に必要な不確実性のため、エンコードは同じ極性の長いストレッチを必要としてはなりません。つまり、ランレングス制限コーディング(RLL)でなければなりません。
ハードドライブの設計の詳細は一般に企業秘密ですが、セクターマーカーがセクターコンテンツに表示されないようにするには、本質的に2つの方法があります。
コンテンツデータのエンコードから生じることのない特別な値を許可するRLLを設計します。これらの特別な値は、セクターの境界をマークするためだけでなく、エラー修正やその他の二次的な目的にも使用できます。
マーカーの値がマーカーにのみ表示されるようにするエンコードの2番目のレイヤーを使用します。これはURLエンコードに少し似ており、URLで特殊文字を「非表示」にできますが、追加できる文字数を制限するのと同じ追加の制約があるため、base64エンコードのようになります。
そのため、読み取りヘッドは表面を移動して磁気極性の変化を検出し、それらの変化のタイミングを使用して、対応するビット値のシーケンスを決定します(格納されたデータを表さない例外値を含む場合があります)。読み取られているセクターとそれらのセクターの内容を判別します。セクタの内容が決定されると、データはソリッドステートバッファに保存され、および/またはRAMバッファに保存され、および/または要求を満たすために送り返されます。
データは、1と0の任意のストリームとして書き込まれません。それはセクターで書かれています。各セクターには、ユーザーデータのペイロードとヘッダーがあります。ヘッダーには、エラー修正コード、セクターの開始を識別する特別な同期フィールド、およびセクターの開始を検出したタイミングとドライブがわかるセクター番号が含まれます。
Psusiは正しい(ディスク上のデータは構造化されており、コンピューターのさまざまな部分がその構造のさまざまな部分を使用している)が、実際には疑問に思わない。
ドライブは実際には何も「知りません」。ディスク上のマーカー(通常、工場で、またはドライブヘッド自体によって書き込まれます)の読み取り、ディスクからのデータブロックの読み取り、ディスクへのデータブロックの書き込み、またはディスク上の特定のスポットディスクが不良または破損しているか、ディスク上の特定の場所に移動する必要がある。それが「知っている」すべてです。リーディングヘッドは、それ自体で他の場所に移動することを決定しません。
他の回答に加えて、ハードディスクは確かに1つのプラッター(シリンダー/ヘッド/セクターの用語では「ヘッド」)を持っています(シリンダー/ヘッド/セクターの用語では「ヘッド」)。 。
探している答えには2つの部分があります。
1)ハードウェアコントローラー
2)ファイルシステム
あなたが言ったように、HDDでは(SSDのような他の技術とは対照的に)、実際のデータは、パターン化された磁場を保持する同心円リングとして丸い金属板に書き込まれます。このデータを保持するプラッタの上には、ビニールレコードプレーヤーによく似た、データを読み書きするために移動する書き込みヘッドがあります。移動するプラッターは、回転を制御する電気モーターに接続されています。
ハードウェアコントローラは、オペレーティングシステムとハードドライブ間のインターフェイスとして機能します。コントローラーは、書き込みヘッドの位置とプラッターの回転を読み取り、この情報を使用して、読み取りと書き込みのためにヘッドとプラッターを配置する方法を決定します。オペレーティングシステムからの読み取りおよび書き込み要求を、書き込みヘッドを移動してプラッターを回転させる制御信号に変換し、オペレーティングシステムからの並列データを単一のシリアルデータラインに変換します。また、このシリアルラインを分割し、各ピースを配置する物理的な場所またはセクターを決定し、ファイルシステムで指定された方法でこの情報を記録します。
ファイルシステムは、データを保存する方法と場所の仕様です。コンピューターのオペレーティングシステムはこのファイルシステムの解釈方法を認識しており、この知識を使用してハードウェアコントローラーと適切に通信します。この場合、データの循環リングをセクターと呼ばれる使用可能なセグメントに分割し、これらのセクターが物理的に配置されている場所をファイルシステムに伝えます。ファイルシステムは各セクターにアドレスを付与します。これは一意の番号であり、このアドレスはハードウェアコントローラーによって特定のプラッター回転に変換され、読み取りまたは書き込みを開始するためのヘッド位置を読み取ります。
詳細については、これらのウィキペディアの記事の次のセクションが非常に役立ちます。
イントロとセクション3.1「スペース管理」を参照してください:https : //en.wikipedia.org/wiki/File_system
セクション2.1「磁気記録」を参照してください:https : //en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording