¿Cómo sabe un disco duro dónde comienzan los datos? [duplicar]

14

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?

Uzumaki
fuente
Por cierto (rara vez mencionado pero destacado) Hay una marca de índice para indicar el inicio (y el final) de la pista. Cuando el controlador de disco encuentra el índice por segunda vez, eso indica que ha leído todos los sectores de la pista.
aserrín

Respuestas:

2

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:

  1. 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.

  2. 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.

ShadSterling
fuente
¿Es esta codificación como la codificación de Huffman? Si alguien pudiera dar un ejemplo claro de cómo funciona esto en un nivel de hardware así: "El jefe lee un flujo de datos circular como 010111010010111010 ... donde cada 111 marca el comienzo de un sector, y luego ..." Entonces podría acepta la respuesta
uzumaki
Los discos duros deben codificar datos abstractos como propiedades físicas de los medios magnéticos, y el resultado debe ser fácilmente direccionable; La codificación de Huffman asigna un flujo de datos abstractos a un flujo (generalmente) más corto de datos abstractos (rompiendo la capacidad de direccionamiento). En su mayoría no están relacionados.
ShadSterling
Mi actualización no agregó ningún ejemplo, pero si sigue el enlace RLL tiene algunos.
ShadSterling
18

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.

psusi
fuente
3
Algunas referencias o enlaces harán que esta buena respuesta sea excelente. : D
gato
1
@cat, supongo "Cómo funcionan las computadoras" o "Inside the PC" de Peter Norton, si alguno de ellos todavía está impreso ... probablemente algunas ediciones nuevas desde las de mi estantería.
psusi
Esto no responde la pregunta. La pregunta es cómo la unidad sabe dónde comienza el encabezado o el campo de sincronización.
Martin Argerami
@MartinArgerami: esto responde a la pregunta porque corrige el concepto erróneo del OP e introduce el concepto más destacado de sectores. Profundizar en el nivel de lectura / escritura de dominios magnéticos parece demasiado intenso para el OP IMO. Si quiere más detalles, visite superuser.com/questions/427554/…
serrín el
1
@ user134593: los bytes de sincronización siempre aparecen después de un intervalo y son los primeros bytes del registro. Simplemente indican el inicio del registro. Por lo tanto, el controlador de disco nunca tiene un conflicto o confusión con la carga útil o los datos del usuario. Parece que cree que es un poco corriente (al igual que el OP), pero es un medio magnético, lo que significa que no puede simplemente leer o escribir en cualquier momento que desee.
aserrín
7

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 ...

quadruplebucky
fuente
2
Pero algo más arriba todavía es parte del disco duro. (Que está ordenado por algo fuera del disco duro, que está ordenado por algo fuera de la computadora, que está ordenado por algo metafísico, pero no estamos hablando de ninguna de esas cosas)
user253751
0

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 .

Mark K Cowan
fuente
3
Esto no es algo de lo que he oído hablar, ¿tiene alguna referencia?
ShadSterling
Sí, no ... eso no es una cosa.
psusi
Parece que se refiere a la superficie / plato del servo. . Pero eso es tecnología obsoleta que no he visto desde 14" paquetes de discos, que son anteriores a los ST-506 discos duros de la original de la IBM PC-XT Winchester y unidades de disco modernas utilizan un servo incorporado.
aserrín
Ah, bien, no he oído hablar de esto durante mucho tiempo también, aunque lo atribuyo a los discos modernos como cajas negras.
Mark K Cowan
0

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

Matthew Salvatore Viglione
fuente