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?
hard-drive
data-transfer
Uzumaki
la source
la source
Réponses:
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:
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.
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.
la source
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.
la source
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 ...
la source
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 .
la source
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
la source