Woher weiß eine Festplatte, wo die Daten beginnen? [Duplikat]


14

Ich habe mich immer gefragt, wie eine Festplatte das erste Datenbit findet.

Wenn eine Festplatte hochfährt, muss alles, was sie liest, ein kreisförmiger Datenstrom sein, bis sich der Lesekopf an eine andere Position bewegt.

Aber woher weiß das Laufwerk in einem solchen Kreislauf, wo das erste und das letzte Bit liegen, damit es die Daten in der richtigen Reihenfolge weitergeben kann?


Übrigens (selten erwähnt, aber markant) Es gibt eine Indexmarke , die den Anfang (und das Ende) des Titels angibt. Wenn der Plattencontroller ein zweites Mal auf den Index stößt, zeigt dies an, dass er jeden Sektor in der Spur gelesen hat.
Sägemehl

Antworten:


2

Es liest es von der Festplatte.

Daten auf der Festplatte sind nicht nur strukturiert (wie @psusi sagt), sondern auch verschlüsselt. Die Codierung stellt sicher, dass die aufgezeichneten Daten nicht mit den Positionsmarkierungen in den Sektorüberschriften verwechselt werden können, sodass der kreisförmige Datenstrom gelesen werden kann, bis die Zielpositionsmarkierung gefunden ist.

So wie ich es verstehe, tun moderne Festplatten das nicht ganz. Sie lesen den gesamten Kreis in einen Puffer, verfolgen, wo sich jeder Sektor befindet, und verwenden die Puffer, um die angeforderten Daten zurückzusenden.

AKTUALISIEREN:

Das magnetische Medium ist ein Material mit einem Magnetfeld mit zwei Schlüsseleigenschaften: 1) es ändert sich niemals von selbst, und 2) das Aufzeichnungsgerät kann die Ausrichtung des Feldes an jedem Punkt der Oberfläche ändern. Beim Lesen des Mediums erkennt der Sensor, wo sich das Feld in Richtung des Sensors befindet und wo sich das Feld vom Sensor entfernt befindet. Wenn sich der Sensor über die Oberfläche bewegt, erkennt er die Zeitpunkte dieser Polaritätsübergänge. Die erste Decodierschicht übersetzt diese Timings in Bitwerte . Aufgrund physikalisch notwendiger Unsicherheiten in diesem Prozess darf die Codierung keine langen Strecken gleicher Polarität erfordern; Das heißt, es muss sich um eine RLL ( Run-Length Limited Coding ) handeln.

Die Besonderheiten von Festplattenkonstruktionen sind im Allgemeinen Geschäftsgeheimnisse, aber es gibt im Wesentlichen zwei Möglichkeiten, um sicherzustellen, dass Sektormarkierungen niemals im Sektorinhalt erscheinen:

  1. Entwerfen Sie eine RLL, die spezielle Werte zulässt, die sich niemals aus der Codierung von Inhaltsdaten ergeben. Diese speziellen Werte könnten nicht nur zum Markieren von Sektorgrenzen verwendet werden, sondern auch zur Fehlerkorrektur oder für andere sekundäre Zwecke.

  2. Verwenden Sie eine zweite Codierungsebene, die sicherstellt, dass die Markerwerte nur an den Markern angezeigt werden. Das ist ein bisschen wie URL - Codierung von Sonderzeichen zu ermöglichen „versteckt“ in URLs werden, aber mit einer zusätzlichen Einschränkung entspricht Begrenzung , wie viele Zeichen hinzugefügt werden kann, so dass es mehr wie endet Base64 - Codierung .

Wenn sich der Lesekopf über die Oberfläche bewegt und Änderungen der magnetischen Polarität erfasst, werden die Zeitpunkte dieser Änderungen verwendet, um die entsprechende Folge von Bitwerten (möglicherweise einschließlich einiger außergewöhnlicher Werte, die keine gespeicherten Daten darstellen) zu bestimmen, und diese Folge wird verwendet, um bestimmen, welche Sektoren gelesen werden, und den Inhalt dieser Sektoren. Wenn der Inhalt von Sektoren bestimmt wird, können die Daten in einem Festkörperpuffer gespeichert und / oder in einem RAM-Puffer gespeichert und / oder zurückgesendet werden, um eine Anforderung zu erfüllen.


Entspricht diese Codierung der Huffman-Codierung? Wenn jemand ein anschauliches Beispiel machen könnte, wie dies auf Hardware-Ebene so funktioniert: "Der Kopf liest einen kreisförmigen Datenstrom wie 010111010010111010 ... wobei jede 111 den Beginn eines Sektors markiert, und dann ..." könnte ich dann akzeptiere die Antwort.
Uzumaki

Festplatten müssen abstrakte Daten als physikalische Eigenschaften des magnetischen Mediums codieren und das Ergebnis muss leicht adressierbar sein. Die Huffman-Codierung ordnet einen Strom abstrakter Daten einem (normalerweise) kürzeren Strom abstrakter Daten zu (Unterbrechung der Adressierbarkeit). Sie haben größtenteils nichts miteinander zu tun.
ShadSterling

Mein Update hat keine Beispiele hinzugefügt, aber wenn Sie dem RLL-Link folgen, hat es einige.
ShadSterling

18

Daten werden nicht als willkürlicher Strom von Einsen und Nullen geschrieben. Es ist in Sektoren geschrieben. Jeder Sektor hat die Nutzdaten und einen Header. Der Header enthält Fehlerkorrekturcodes sowie ein spezielles Synchronisierungsfeld, das den Beginn des Sektors und die Sektornummer angibt, damit das Laufwerk erkennen kann, wann der Beginn eines Sektors gefunden wurde und um welchen Sektor es sich handelt.


3
Einige Verweise oder Links würden diese gute Antwort großartig machen. : D
cat

1
@cat, ich nehme an "Wie Computer funktionieren" oder Peter Nortons "Inside the PC", wenn eine davon noch gedruckt ist ... wahrscheinlich ein paar neue Ausgaben seit denjenigen in meinem Bücherregal.
Psusi

Dies beantwortet die Frage nicht. Die Frage ist, wie das Laufwerk weiß, wo der Header oder das Synchronisierungsfeld beginnt.
Martin Argerami

@MartinArgerami - Dies beantwortet die Frage, weil es das Missverständnis des OP korrigiert und das herausragende Konzept der Sektoren einführt. Ein Drilldown auf das Niveau des Lesens / Schreibens von magnetischen Domänen scheint für die OP IMO zu intensiv zu sein. Wenn Sie weitere Informationen wünschen, lesen
sawdust

1
@ user134593 - Die Synchronisationsbytes stehen immer nach einer Lücke und sind die ersten Bytes des Datensatzes. Sie geben lediglich den Beginn der Aufzeichnung an. Daher hat der Plattencontroller niemals einen Konflikt oder eine Verwechslung mit Nutzdaten oder Benutzerdaten. Sie scheinen zu denken, dass es ein bisschen Strom ist (genau wie beim OP), aber es sind magnetische Medien, was bedeutet, dass Sie nicht an jedem beliebigen Punkt einfach lesen oder schreiben können.
Sägemehl

7

Psusi ist korrekt (die Daten auf der Festplatte sind strukturiert und verschiedene Teile des Computers verwenden unterschiedliche Teile dieser Struktur), kommt aber nicht wirklich auf Ihre Frage.

Das Laufwerk "weiß" eigentlich nichts. Es verfügt über eine Low-Level-Elektronik, die Markierungen auf der Festplatte lesen (normalerweise werkseitig oder vom Laufwerkskopf selbst geschrieben), Datenblöcke von der Festplatte lesen oder Datenblöcke auf die Festplatte schreiben oder feststellen kann, ob sich eine bestimmte Stelle auf der Festplatte befindet Die Festplatte ist defekt oder beschädigt oder sollte an eine bestimmte Stelle auf der Festplatte verschoben werden. Das ist ungefähr alles, was es "weiß". Der Lesekopf entscheidet sich nicht, sich von alleine an einen anderen Ort zu bewegen, etwas höher in der Maschine fordert ihn auf, ...


2
Aber das etwas höhere ist immer noch Teil der Festplatte. (Was von etwas außerhalb der Festplatte, was von etwas außerhalb des Computers, was von etwas Metaphysischem, aber wir sprechen nicht über diese Dinge
befohlen wird

0

Zusätzlich zu den anderen Antworten haben Festplatten, die sicherlich eine Platte ("Kopf" in Bezug auf Zylinder / Kopf / Sektor) hatten (und immer noch haben könnten), die für Kalibrierungs- / Positionierungsdaten reserviert ist und überhaupt nicht für die Speicherung von Benutzerdaten verwendet wird .


3
Davon habe ich noch nichts gehört. Haben Sie eine Referenz dafür?
ShadSterling

Ja, nein ... das ist keine Sache.
Psusi

Sie scheinen sich auf die Servooberfläche / den Servoteller zu beziehen. . Aber das ist veraltete Technik , dass ich nicht da 14" Lamellenpakete gesehen haben, die die ST-506 - Festplatten des ursprünglichen IBM PC-XT predate Winchester und moderne Plattenlaufwerke verwenden ein eingebettetes Servo.
Sägemehl

Ah, OK, ich habe auch schon lange nichts mehr davon gehört, obwohl ich das auf moderne Festplatten als Blackbox zurückführte.
Mark K Cowan

0

Die Antwort, die Sie suchen, besteht aus zwei Teilen:

1) Ein Hardware-Controller

2) Ein Dateisystem

Wie Sie sagten, werden bei einer Festplatte (im Gegensatz zu anderen Technologien wie SSDs) die tatsächlichen Daten als konzentrische Kreisringe, die ein strukturiertes Magnetfeld enthalten, auf runde Metallplatten geschrieben. Über den Platten, auf denen diese Daten gespeichert sind, befindet sich der Schreibkopf, der sich ähnlich wie bei einem Schallplattenspieler bewegt, um Daten zu lesen und zu schreiben. Die Platten, über die er fährt, sind an einem Elektromotor befestigt, der ihre Drehung steuert.

Ein Hardware-Controller fungiert als Schnittstelle zwischen dem Betriebssystem und der Festplatte. Die Steuerung kann die Position des Schreibkopfes sowie die Drehung der Platten lesen und diese Informationen verwenden, um zu entscheiden, wie der Kopf und die Platten zum Lesen und Schreiben positioniert werden. Es übersetzt Lese- und Schreibanforderungen vom Betriebssystem in Steuersignale, die den Schreibkopf bewegen und die Platten drehen, und konvertiert die vom Betriebssystem eingehenden parallelen Daten in eine einzige serielle Datenleitung. Es teilt auch diese serielle Leitung auf und entscheidet, an welchem ​​physischen Ort oder in welchem ​​Sektor die einzelnen Teile abgelegt werden sollen, und zeichnet diese Informationen auf eine vom Dateisystem festgelegte Weise auf.

Das Dateisystem gibt an, wie und wo Daten gespeichert werden sollen. Das Betriebssystem des Computers weiß, wie dieses Dateisystem zu interpretieren ist, und verwendet dieses Wissen, um angemessen mit dem Hardware-Controller zu kommunizieren. In diesem Fall werden die kreisförmigen Datenringe in verwendbare Segmente, Sektoren genannt, zerlegt und dem Dateisystem mitgeteilt, wo sich diese Sektoren physisch befinden. Das Dateisystem gibt jedem Sektor eine Adresse, die nur eine eindeutige Nummer ist, und diese Adresse wird vom Hardware-Controller in eine bestimmte Plattendrehung und Lesekopfposition übersetzt, um mit dem Lesen oder Schreiben zu beginnen.

Weitere Informationen finden Sie in den folgenden Abschnitten dieser Wikipedia-Artikel:

Siehe Einführung und Abschnitt 3.1 "Speicherverwaltung" hier: https://en.wikipedia.org/wiki/File_system

Siehe Abschnitt 2.1 "Magnetische Aufzeichnung" hier: https://en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.