ハードドライブは、データの開始位置をどのように知るのですか?[複製]


14

私はいつも、ハードドライブがデータの最初のビットをどのように見つけるのかと疑問に思っていました。

ハードドライブがスピンアップすると、読み取りヘッドが別の位置に移動するまで、読み取るものはすべてデータの循環ストリームでなければなりません。

しかし、そのような循環ストリームでは、ドライブは最初のビットと最後のビットがどこにあるのかをどのようにして知るので、正しい順序でデータを渡すことができますか?


BTW(めったに言及されていないが顕著な)トラックの開始(および終了)を示すインデックスマークがあります。ディスクコントローラーが2回目にインデックスを検出すると、それはトラック内のすべてのセクターを読み取ったことを示します。
おがくず

回答:


2

ディスクからそれを読み取ります。

ディスク上のデータは構造化されているだけでなく(@psusiが言うように)、エンコードされています。エンコードにより、記録されたデータがセクター見出しの位置マーカーと混同されることがないため、ターゲット位置マーカーが見つかるまで循環ストリームを読み取ることができます。

私が理解しているように、現代のハードドライブはそれをしません。サークル全体をバッファーに読み込み、各セクターの場所を追跡し、バッファーを使用して要求されたデータを送り返します。

更新:

磁気メディアは、2つの重要な特性を備えた磁場を持つ材料です。1)独自に変化することはありません。2)記録デバイスは、表面の任意のポイントで磁場の方向を変更できます。メディアを読み取るとき、センサーは、フィールドがセンサーに向かっている場所と、フィールドがセンサーから離れている場所を検出します。センサーが表面を移動すると、これらの極性遷移のタイミングを検出します。デコーディングの最初の層はこれらのタイミングをビット値に翻訳しています。このプロセスで物理的に必要な不確実性のため、エンコードは同じ極性の長いストレッチを必要としてはなりません。つまり、ランレングス制限コーディング(RLL)でなければなりません。

ハードドライブの設計の詳細は一般に企業秘密ですが、セクターマーカーがセクターコンテンツに表示されないようにするには、本質的に2つの方法があります。

  1. コンテンツデータのエンコードから生じることのない特別な値を許可するRLLを設計します。これらの特別な値は、セクターの境界をマークするためだけでなく、エラー修正やその他の二次的な目的にも使用できます。

  2. マーカーの値がマーカーにのみ表示されるようにするエンコードの2番目のレイヤーを使用します。これはURLエンコードに少し似ており、URLで特殊文字を「非表示」にできますが、追加できる文字数を制限するのと同じ追加の制約があるため、base64エンコードのようになります

そのため、読み取りヘッドは表面を移動して磁気極性の変化を検出し、それらの変化のタイミングを使用して、対応するビット値のシーケンスを決定します(格納されたデータを表さない例外値を含む場合があります)。読み取られているセクターとそれらのセクターの内容を判別します。セクタの内容が決定されると、データはソリッドステートバッファに保存され、および/またはRAMバッファに保存され、および/または要求を満たすために送り返されます。


このエンコードはハフマンコーディングのようなものですか?ハードウェアレベルでこれがどのように機能するかを誰かが明確に示すことができる場合:「ヘッドは010111010010111010のような循環データストリームを読み取ります...ここで、111ごとにセクターの始まりをマークし、...」答えを受け入れます。
うずまき

ハードドライブは、抽象データを磁気メディアの物理的特性としてエンコードする必要があり、その結果は簡単にアドレス可能でなければなりません。ハフマンコーディングは、抽象データの1つのストリームを(通常)より短い抽象データのストリームにマップします(アドレス指定可能性を破壊します)。それらはほとんど無関係です。
ShadSterling

私の更新では例は追加しませんでしたが、RLLリンクをたどるといくつかの例があります。
ShadSterling

18

データは、1と0の任意のストリームとして書き込まれません。それはセクターで書かれています。各セクターには、ユーザーデータのペイロードとヘッダーがあります。ヘッダーには、エラー修正コード、セクターの開始を識別する特別な同期フィールド、およびセクターの開始を検出したタイミングとドライブがわかるセクター番号が含まれます。


3
いくつかの参照またはリンクは、この良い答えを素晴らしいものにします。:D-

1
@cat、「コンピューターの仕組み」またはピーター・ノートンの「Inside the PC」のいずれかがまだ印刷されている場合、おそらく私の本棚にあるものからいくつかの新しいエディションがあります。
-psusi

これは質問に答えません。問題は、ドライブがヘッダーまたは同期フィールドの開始位置をどのように知るかです。
マーティンアルジェラミ

@MartinArgerami-OPの誤解を修正し、セクターの顕著な概念を導入するため、これは質問に答えます。磁区の読み取り/書き込みのレベルまでドリルダウンすることは、OP IMOには強すぎるようです。詳細が必要な場合は、superuser.com
おがくず

1
@ user134593-同期バイトは常にギャップの後にあり、レコードの最初のバイトです。それらは単に記録の始まりを示しています。したがって、ディスクコントローラーがペイロードまたはユーザーデータと競合または混乱することはありません。あなたはそれがビットストリーム(OPのように)だと思うように見えますが、それは磁気メディアです。つまり、あなたが望む任意のポイントでただ読み書きすることはできません。
おがくず

7

Psusiは正しい(ディスク上のデータは構造化されており、コンピューターのさまざまな部分がその構造のさまざまな部分を使用している)が、実際には疑問に思わない。

ドライブは実際には何も「知りません」。ディスク上のマーカー(通常、工場で、またはドライブヘッド自体によって書き込まれます)の読み取り、ディスクからのデータブロックの読み取り、ディスクへのデータブロックの書き込み、またはディスク上の特定のスポットディスクが不良または破損しているか、ディスク上の特定の場所に移動する必要がある。それが「知っている」すべてです。リーディングヘッドは、それ自体で他の場所に移動することを決定しません。


2
しかし、より高いものはまだハードドライブの一部です。(これは、ハードドライブの外側の何かによって命令され、コンピューターの外側の何かによって命令され、形而上学的な何かによって命令されますが、これらのことについては話していません)
-user253751

0

他の回答に加えて、ハードディスクは確かに1つのプラッター(シリンダー/ヘッド/セクターの用語では「ヘッド」)を持っています(シリンダー/ヘッド/セクターの用語では「ヘッド」)。 。


3
これは私が聞いたものではありませんが、参考になりますか?
ShadSterling

いや、いや...それは問題ではない。
-psusi

あなたはサーボ表面/プラッターを参照しているようです。しかし、それは、私は、元のIBM PC-XTのST-506 HDDをさかのぼる14"ディスク・パック、以来見ていないという時代遅れの技術であり、ウィンチェスターと現代のディスクドライブが埋め込まれたサーボを使用しています。。
おがくず

ああ、私はこれをかなり長い間聞いたこともありませんが、ブラックボックスである現代のディスクにそれを置きました。
マークKコーワン

0

探している答えには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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.