Siempre me preguntaba cómo un disco duro encuentra el primer bit de datos.
Cuando un disco duro gira, lo que lee debe ser un flujo circular de datos hasta que el cabezal de lectura se mueva a una posición diferente.
Pero en una secuencia tan circular, ¿cómo sabe la unidad dónde se encuentran el primer bit y el último, para que pueda transmitir los datos en el orden correcto?
hard-drive
data-transfer
Uzumaki
fuente
fuente
Respuestas:
Lo lee desde el disco.
Los datos en el disco no solo están estructurados (como dice @psusi), sino que también están codificados. La codificación asegura que los datos grabados no se puedan confundir con los marcadores de posición en los encabezados de sector, por lo que el flujo circular se puede leer hasta que se encuentre el marcador de posición de destino.
Según tengo entendido, los discos duros modernos no lo hacen; leen todo el círculo en un búfer, realizan un seguimiento de dónde está cada sector y usan los búferes para enviar los datos solicitados.
ACTUALIZAR:
El medio magnético es un material que tiene un campo magnético con dos propiedades clave: 1) nunca cambia por sí solo, y 2) el dispositivo de grabación puede cambiar la orientación del campo en cualquier punto de la superficie. Al leer los medios, el sensor detecta dónde está orientado el campo hacia el sensor y dónde está orientado el campo lejos del sensor. A medida que el sensor se mueve por la superficie, detecta los tiempos de estas transiciones de polaridad; La primera capa de decodificación está traduciendo estos tiempos en valores de bit . Debido a las incertidumbres físicamente necesarias en este proceso, la codificación no debe requerir largos tramos de la misma polaridad; es decir, debe ser una codificación limitada de longitud de ejecución (RLL).
Los detalles de los diseños de discos duros generalmente son secretos comerciales, pero esencialmente hay dos formas de garantizar que los marcadores sectoriales nunca aparezcan en el contenido del sector:
Diseñe un RLL que permita valores especiales que nunca resultarán de codificar datos de contenido. Estos valores especiales podrían usarse no solo para marcar los límites del sector sino también para la corrección de errores o cualquier otro propósito secundario.
Use una segunda capa de codificación que garantice que los valores de los marcadores solo aparezcan en los marcadores. Esto es un poco como la codificación de URL para permitir que los caracteres especiales se "oculten" en las URL, pero con una restricción adicional equivalente a limitar cuántos caracteres se pueden agregar, por lo que termina más como la codificación base64 .
Entonces, el cabezal de lectura se mueve a través de la superficie detectando cambios de polaridad magnética, los tiempos de esos cambios se usan para determinar la secuencia correspondiente de valores de bit (posiblemente incluyendo algunos valores excepcionales que no representan datos almacenados), y esa secuencia se usa para determinar qué sectores se están leyendo y el contenido de esos sectores. A medida que se determina el contenido de los sectores, los datos pueden almacenarse en un búfer de estado sólido y / o almacenarse en un búfer de RAM y / o enviarse de vuelta para cumplir con una solicitud.
fuente
Los datos no se escriben como una secuencia arbitraria de unos y ceros. Está escrito en sectores. Cada sector tiene la carga útil de los datos del usuario y un encabezado. El encabezado contiene códigos de corrección de errores, así como un campo de sincronización especial que identifica el inicio del sector y el número de sector para que la unidad pueda saber cuándo ha encontrado el inicio de un sector y de qué sector se trata.
fuente
Psusi es correcto (los datos en el disco están estructurados , y diferentes partes de la computadora usan diferentes partes de esa estructura) pero realmente no responde a su pregunta.
La unidad realmente no "sabe" nada. Tiene componentes electrónicos de bajo nivel que pueden leer marcadores en el disco (generalmente escritos en la fábrica, o por el mismo cabezal de la unidad), leer bloques de datos del disco o escribir bloques de datos en el disco, o saber si hay un punto en particular en el disco. el disco está dañado o dañado o debe moverse a una ubicación particular en el disco. Eso es todo lo que "sabe". El cabezal de lectura no decide moverse solo a otro lugar, algo más arriba en la máquina le dice que ...
fuente
Además de las otras respuestas, los discos duros solían (y aún pueden tener) un plato ("cabeza" en términos de cilindro / cabeza / sector) que está reservado para los datos de calibración / posicionamiento, no se utiliza para el almacenamiento de datos del usuario .
fuente
La respuesta que busca tiene dos partes:
1) Un controlador de hardware
2) Un sistema de archivos
Como dijiste, en un HDD (a diferencia de otras tecnologías como SSD), los datos reales se escriben en placas de metal redondas como anillos circulares concéntricos que sostienen un campo magnético estampado. Sobre los platos que contienen estos datos está el cabezal de escritura que se mueve para leer y escribir datos, muy parecido a un reproductor de discos de vinilo. Los platos sobre los que se mueve están unidos a un motor eléctrico que controla su rotación.
Un controlador de hardware actúa como una interfaz entre el sistema operativo y el disco duro. El controlador puede leer la posición del cabezal de escritura, así como la rotación de los platos y utiliza esta información para decidir cómo colocar el cabezal y los platos para leer y escribir. Traduce las solicitudes de lectura y escritura del sistema operativo en señales de control que mueven el cabezal de escritura y giran los platos, además de convertir los datos paralelos que ingresan desde el sistema operativo en una sola línea de datos en serie. También divide esta línea serial y decide en qué ubicación física o sector colocar cada pieza y registra esta información de la manera especificada por el sistema de archivos.
El sistema de archivos es una especificación de cómo y dónde almacenar datos. El sistema operativo de la computadora sabe cómo interpretar este sistema de archivos y utiliza este conocimiento para comunicarse adecuadamente con el controlador de hardware, en este caso desglosando los anillos circulares de datos en segmentos utilizables llamados sectores e indicando al sistema de archivos dónde se encuentran físicamente estos sectores. El sistema de archivos le da a cada sector una dirección, que es solo un número único, y el controlador de hardware traduce esta dirección en una rotación de plato específica y en una posición del cabezal de lectura para comenzar a leer o escribir.
Para obtener más información, las siguientes secciones en estos artículos de Wikipedia son bastante útiles:
Consulte la Introducción y la sección 3.1 "Gestión del espacio" aquí: https://en.wikipedia.org/wiki/File_system
Consulte la sección 2.1 "Grabación magnética" aquí: https://en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording
fuente