Comment un disque dur sait-il où commencent les données? [dupliquer]


14

Je me demandais toujours comment un disque dur trouve le premier bit de données.

Lorsqu'un disque dur tourne, tout ce qu'il lit doit être un flux de données circulaire jusqu'à ce que la tête de lecture se déplace vers une position différente.

Mais dans un tel flux circulaire, comment le lecteur sait-il où se trouvent le premier bit et le dernier bit, afin de pouvoir transmettre les données dans le bon ordre?


BTW (rarement mentionné mais saillant) Il y a une marque d'index pour indiquer le début (et la fin) de la piste. Lorsque le contrôleur de disque rencontre l'index une deuxième fois, cela indique qu'il a lu tous les secteurs de la piste.
sciure

Réponses:


2

Il le lit sur le disque.

Les données sur le disque sont non seulement structurées (comme le dit @psusi), mais également encodées. Le codage garantit que les données enregistrées ne peuvent pas être confondues avec les marqueurs de position dans les en-têtes de secteur, de sorte que le flux circulaire peut être lu jusqu'à ce que le marqueur de position cible soit trouvé.

Si je comprends bien, les disques durs modernes ne font pas tout à fait cela; ils lisent le cercle entier dans un tampon, gardant une trace de l'endroit où se trouve chaque secteur et utilisent les tampons pour renvoyer les données demandées.

MISE À JOUR:

Le support magnétique est un matériau qui a un champ magnétique avec deux propriétés clés: 1) il ne change jamais seul et 2) le dispositif d'enregistrement peut changer l'orientation du champ en tout point de la surface. Lors de la lecture du support, le capteur détecte où le champ est orienté vers le capteur et où le champ est orienté loin du capteur. Lorsque le capteur se déplace sur la surface, il détecte les synchronisations de ces transitions de polarité; la première couche de décodage traduit ces temporisations en valeurs binaires . En raison des incertitudes physiquement nécessaires dans ce processus, le codage ne doit pas nécessiter de longs tronçons de la même polarité; c'est-à-dire qu'il doit s'agir d'un codage à durée limitée (RLL).

Les détails des conceptions de disques durs sont généralement des secrets commerciaux, mais il existe essentiellement deux façons de garantir que les marqueurs de secteur n'apparaissent jamais dans le contenu du secteur:

  1. Concevez un RLL qui autorise des valeurs spéciales qui ne résulteront jamais de l'encodage des données de contenu. Ces valeurs spéciales peuvent être utilisées non seulement pour marquer des limites de secteur mais également pour la correction d'erreurs ou tout autre objectif secondaire.

  2. Utilisez une deuxième couche d'encodage qui garantit que les valeurs des marqueurs n'apparaissent qu'au niveau des marqueurs. C'est un peu comme le codage d'URL pour permettre aux caractères spéciaux d'être "masqués" dans les URL, mais avec une contrainte supplémentaire équivalente à limiter le nombre de caractères pouvant être ajoutés, donc cela ressemble plus au codage base64 .

Ainsi, la tête de lecture se déplace à travers la surface en détectant les changements de polarité magnétique, les temporisations de ces changements sont utilisées pour déterminer la séquence correspondante de valeurs de bits (y compris éventuellement certaines valeurs exceptionnelles qui ne représentent pas les données stockées), et cette séquence est utilisée pour déterminer quels secteurs sont lus et le contenu de ces secteurs. Lorsque le contenu des secteurs est déterminé, les données peuvent être stockées dans un tampon à semi-conducteurs et / ou stockées dans un tampon RAM et / ou renvoyées pour répondre à une demande.


Cet encodage est-il comme le codage Huffman? Si quelqu'un pouvait donner un exemple clair de la façon dont cela fonctionne au niveau matériel comme ceci: "La tête lit un flux de données circulaire comme 010111010010111010 ... où chaque 111 marque le début d'un secteur, puis ..." Je pourrais alors accepte la réponse.
uzumaki

Les disques durs doivent coder les données abstraites en tant que propriétés physiques des supports magnétiques, et le résultat doit être facilement adressable; Le codage Huffman mappe un flux de données abstraites à un flux (généralement) plus court de données abstraites (rupture d'adressabilité). Ils sont pour la plupart indépendants.
ShadSterling

Ma mise à jour n'a pas ajouté d'exemples, mais si vous suivez le lien RLL, elle en contient.
ShadSterling

18

Les données ne sont pas écrites comme un flux arbitraire de uns et de zéros. Il est écrit en secteurs. Chaque secteur a la charge utile des données utilisateur et un en-tête. L'en-tête contient des codes de correction d'erreur, ainsi qu'un champ de synchronisation spécial qui identifie le début du secteur et le numéro de secteur afin que le lecteur puisse savoir quand il a trouvé le début d'un secteur et de quel secteur il s'agit.


3
Certaines références ou liens rendraient cette bonne réponse excellente. : D
cat

1
@cat, je suppose que "Comment fonctionnent les ordinateurs" ou "Inside the PC" de Peter Norton, si l'un d'eux est encore en cours d'impression ... probablement quelques nouvelles éditions depuis celles de ma bibliothèque.
psusi

Cela ne répond pas à la question. La question est de savoir comment le lecteur sait où commence l'en-tête ou le champ de synchronisation.
Martin Argerami

@MartinArgerami - Cela répond à la question car il corrige l'idée fausse du PO et introduit le concept saillant de secteurs. L'exploration jusqu'au niveau de lecture / écriture des domaines magnétiques semble trop intense pour l'OP IMO. Si vous / il veut plus de détails, voir superuser.com/questions/427554/…
sciure

1
@ user134593 - Les octets de synchronisation sont toujours après un intervalle et sont les premiers octets de l'enregistrement. Ils indiquent simplement le début de l'enregistrement. Par conséquent, le contrôleur de disque n'a jamais de conflit ou de confusion avec la charge utile ou les données utilisateur. Vous semblez penser que c'est un peu stream (tout comme l'OP), mais c'est un support magnétique, ce qui signifie que vous ne pouvez pas simplement lire ou écrire à tout moment que vous voulez.
sciure

7

Psusi est correct (les données sur le disque sont structurées et différentes parties de l'ordinateur utilisent différentes parties de cette structure) mais ne répondent pas vraiment à votre question.

Le lecteur ne "sait" vraiment rien. Il possède une électronique de bas niveau qui peut lire les marqueurs sur le disque (généralement écrits en usine ou par la tête du lecteur elle-même), lire des blocs de données à partir du disque, ou écrire des blocs de données sur le disque, ou dire si un endroit particulier sur le disque le disque est défectueux ou endommagé, ou qu'il doit se déplacer vers un emplacement particulier sur le disque. C'est à peu près tout ce qu'il "sait". La tête de lecture ne décide pas de se déplacer ailleurs, quelque chose plus haut dans la machine lui dit de ...


2
Mais quelque chose de plus haut fait toujours partie du disque dur. (Qui est commandé par quelque chose en dehors du disque dur, qui est commandé par quelque chose en dehors de l'ordinateur, qui est commandé par quelque chose de métaphysique, mais nous ne parlons d'aucune de ces choses)
user253751

0

En plus des autres réponses, les disques durs ont certainement utilisé (et peuvent encore avoir) un plateau ("tête" en termes cylindre / culasse / secteur) qui est réservé aux données d'étalonnage / positionnement, pas du tout utilisé pour le stockage des données utilisateur .


3
Ce n'est pas quelque chose dont j'ai entendu parler, avez-vous une référence pour cela?
ShadSterling

Oui, non ... ce n'est pas une chose.
psusi

Vous semblez faire référence à la surface / plateau du servo. Mais c'est une technologie obsolète que je n'ai pas vue depuis les packs de disques 14 ", qui sont antérieurs aux disques durs ST-506 de l'IBM PC-XT d'origine. Winchester et les disques modernes utilisent un servo intégré.
sciure

Ah OK, je n'ai pas entendu parler de cela depuis assez longtemps aussi, bien que je mette ça sur les disques modernes étant des boîtes noires.
Mark K Cowan

0

La réponse que vous recherchez se compose de deux parties:

1) Un contrôleur matériel

2) Un système de fichiers

Comme vous l'avez dit, dans un disque dur (contrairement à d'autres technologies comme les SSD), les données réelles sont écrites sur des plaques métalliques rondes sous la forme d'anneaux circulaires concentriques contenant un champ magnétique à motifs. Au-dessus des plateaux qui contiennent ces données se trouve la tête d'écriture qui se déplace pour lire et écrire des données, un peu comme une platine vinyle. Les plateaux sur lesquels il se déplace sont attachés à un moteur électrique qui contrôle leur rotation.

Un contrôleur matériel sert d'interface entre le système d'exploitation et le disque dur. Le contrôleur peut lire la position de la tête d'écriture ainsi que la rotation des plateaux et utilise ces informations pour décider comment positionner la tête et les plateaux pour la lecture et l'écriture. Il convertit les demandes de lecture et d'écriture du système d'exploitation en signaux de commande qui déplacent la tête d'écriture et font tourner les plateaux, ainsi que convertit les données parallèles provenant du système d'exploitation en une seule ligne de données série. Il divise également cette ligne série et décide de l'emplacement physique ou du secteur dans lequel placer chaque pièce et enregistre ces informations d'une manière spécifiée par le système de fichiers.

Le système de fichiers est une spécification de comment et où stocker les données. Le système d'exploitation de l'ordinateur sait comment interpréter ce système de fichiers et utilise ces connaissances pour communiquer correctement avec le contrôleur matériel, dans ce cas, décomposant les anneaux circulaires de données en segments utilisables appelés secteurs et indiquant au système de fichiers où ces secteurs sont physiquement situés. Le système de fichiers donne à chaque secteur une adresse, qui est juste un numéro unique, et cette adresse est traduite par le contrôleur matériel dans une rotation de plateau spécifique et une position de tête de lecture pour commencer la lecture ou l'écriture.

Pour plus d'informations, les sections suivantes de ces articles Wikipedia sont très utiles:

Voir Intro et section 3.1 "Gestion de l'espace" ici: https://en.wikipedia.org/wiki/File_system

Voir la section 2.1 "Enregistrement magnétique" ici: https://en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.