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?
hard-drive
data-transfer
uzumaki
quelle
quelle
Antworten:
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:
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.
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.
quelle
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.
quelle
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, ...
quelle
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 .
quelle
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
quelle