La modulación de frecuencia modificada ( MFM ) es un código de línea de longitud de ejecución limitada (RLL) [1] que se utiliza para codificar datos en la mayoría de los disquetes y algunas unidades de disco duro . Se introdujo por primera vez en los discos duros en 1970 con el IBM 3330 y luego en las unidades de disquete a partir del IBM 53FD en 1976.
MFM es una modificación del código de codificación de modulación de frecuencia (FM) original específicamente para su uso con almacenamiento magnético . MFM permitió que los dispositivos duplicaran la velocidad a la que se escribían los datos en el medio, ya que el código garantizaba solo un cambio de polaridad por bit de datos codificados. Por este motivo, los discos MFM suelen conocerse como de "doble densidad", mientras que los FM anteriores se conocieron como de "densidad simple".
MFM se utiliza con una velocidad de datos de 250 a 500 kbit/s (codificación de 500 a 1000 kbit/s) en un formato de 5 bits estándar de la industria.+1 ⁄ 4 de pulgada y 3+Disquetes de 1 ⁄ 2 pulgada, tanto comunes como de alta densidad. La codificación MFM también se utilizó en los primeros diseños de discos duros, antes de la aparición de tipos más eficientes de códigos RLL. Fuera de las aplicaciones específicas, la codificación MFM está obsoleta en la grabación magnética.
Los dispositivos de almacenamiento magnético, como los discos duros y las cintas magnéticas , almacenan los datos no como valores absolutos, sino en los cambios de polaridad. Esto se debe a que un campo magnético cambiante inducirá una corriente eléctrica en un cable cercano y viceversa. Al enviar una serie de corrientes cambiantes al cabezal de lectura/escritura mientras el medio se mueve a su lado, el resultado será un patrón de polaridades magnéticas en el medio que cambian donde los datos eran un "1". La naturaleza exacta del medio determina cuántos de estos cambios pueden ocurrir dentro de un área de superficie determinada y, cuando esto se combina con la velocidad nominal de movimiento, produce la velocidad máxima de datos para ese sistema.
Las unidades de disco están sujetas a una variedad de efectos mecánicos y de materiales que hacen que el patrón original de datos "vibre" con el tiempo. Si se envía una larga cadena de "0" al disco, no hay nada que indique a qué bit podría pertenecer el siguiente "1"; debido a los efectos de la vibración, puede perder su lugar con el tiempo. Para realinear las señales en el disco con bits de datos individuales se requiere algún tipo de sincronización codificada en el disco junto con los datos.
Para este fin se ha desarrollado una amplia gama de codificaciones adecuadas, conocidas generalmente como códigos de línea . Su idoneidad depende del medio o mecanismo de transmisión que se utilice.
La codificación de modulación de frecuencia (FM) fue el primer sistema ampliamente utilizado para realizar esta operación. El controlador de la unidad incluye un reloj preciso que funciona a la mitad de la velocidad de datos seleccionada del medio de disco. Cuando se escriben datos en el disco, la señal del reloj se entrelaza con los datos. Al leer, las señales del reloj se utilizan como activadores de corto plazo para cronometrar la presencia o ausencia de una señal siguiente que representa los bits de datos. [2]
La ventaja del enfoque FM es que es extremadamente fácil implementar el circuito de escritura y la recuperación del reloj al leer también es relativamente simple. La desventaja es que utiliza la mitad de la superficie del disco para la señal de reloj, lo que reduce a la mitad la cantidad total de datos que el disco puede almacenar. Esto dio lugar a nuevas formas de codificación que eran más eficientes.
La modulación de frecuencia modificada codifica la señal de reloj y los datos en una única "ventana de reloj". A diferencia de la modulación de frecuencia modificada, un bit de reloj solo se escribe cuando es necesario para lograr la sincronización cuando los bits de datos actuales y anteriores no están configurados. En promedio, la modulación de frecuencia modificada logra el doble de densidad de información que la modulación de frecuencia modificada. [3]
La regla de codificación básica para MFM es que (x, y, z, ...) se codifica como (x, x NOR y, y, y NOR z, z, z NOR...). Un bit cero se codifica como 10 si va precedido de un bit cero en el flujo de entrada, y 00 si va precedido de un uno; un bit uno siempre se codifica como 01. El número de transiciones magnéticas por bit de datos codificados es, en promedio, de 0,75 a 1. [4]
Tenga en cuenta que a veces se conocen los bits de reloj circundantes, pero a veces es necesario conocer los bits de datos adyacentes. [ cita requerida ] Un ejemplo más extenso:
Datos: 0 0 0 1 1 0 1 1 ...FM codificado: 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1...Reloj MFM: ? 1 1 0 0 0 0 0 0...MFM codificado: ? 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0...
(Los bits en negrita son los bits de datos, los demás son los bits de reloj).
En la codificación FM, la cantidad de bits 0 que pueden aparecer entre bits 1 consecutivos es 0 o 1. En la codificación MFM hay un mínimo de 1 bit cero entre bits adyacentes (nunca hay dos bits uno adyacentes) y la cantidad máxima de ceros en una fila es 3. [ cita requerida ] Por lo tanto, FM es un código RLL (0,1), mientras que MFM es un código (1,3).
Debido a que el sistema MFM requiere una sincronización más precisa de la señal de reloj, no era posible construir económicamente los componentes analógicos y digitales requeridos en un solo circuito integrado utilizando tecnología de finales de los años 1970. En cambio, los controladores MFM requerían que el proveedor de la unidad diseñara su propio circuito de recuperación de reloj , un sistema conocido como separador de datos . El diseño de separadores de datos era una forma de arte en sí mismo. [5]
Entre los controladores más utilizados de la época se encontraba la serie Western Digital FD1771 . El FD1771 original solo admitía FM, pero rápidamente se emparejó con el FD1781 y el FD1791, que realizaban MFM basándose en una señal de reloj proporcionada externamente. La implementación de la compatibilidad con MFM con estos controladores requería un separador de datos externo. La rápida mejora en la fabricación de circuitos integrados a finales de la década de 1970 y principios de la de 1980 condujo a los primeros controladores MFM todo en uno de bajo coste a principios de la década de 1980. El WD2791 fue el primero en admitir directamente MFM mediante un bucle de enganche de fase analógico interno , pero requería una serie de componentes externos simples para implementar un sistema completo. El WD1770 fue el primero en implementar una solución MFM completa en un solo chip.
FM y MFM se utilizan para indicar la posición de bits individuales en los datos originales, pero los datos en sí no tienen un nivel de organización superior como los "archivos". Este es el propósito del formato del disco. Los discos suelen formatearse en sectores de tamaño fijo que contienen información de encabezado adicional para vincularlos a los archivos.
En los formatos IBM, el inicio de la información de cabecera de un sector y el inicio de los datos en sí se indican con una "marca de sincronización" especial, un patrón de 0 y 1 que no puede aparecer en los datos en sí. Esto se logra al no codificar estos datos utilizando la codificación FM o MFM, lo que facilita que el controlador los detecte. La marca de sincronización que se utiliza comúnmente en la codificación MFM se conoce como "sincronización A1", ya que los bits de datos forman el inicio del valor hexadecimal A1 (10100001), pero el quinto bit de reloj es diferente de la codificación normal del byte A1.
Datos: 1 0 1 0 0 0 0 1Reloj: 0 0 0 1 1 1 0Codificado: 1 0 0 0 1 0 0 1 0 1 0 1 0 0 1 Reloj de sincronización: 0 0 0 1 0 1 0Marca de sincronización: 100010010 0 01001 ^ Falta el bit del reloj
MMFM (Modified Modified Frequency Modulation), también abreviado M²FM o M2FM , es similar a MFM, pero suprime bits de reloj adicionales, lo que produce una longitud de ejecución máxima más larga (un código RLL (1,4)). En particular, un pulso de reloj solo se inserta entre un par de bits 0 adyacentes si el primer bit del par no tenía un pulso de reloj insertado antes. [6] En el siguiente ejemplo, los bits de reloj que habrían estado presentes en MFM se indican en negrita:
Datos: 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1Reloj: 0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0Codificado: 010100010010010010 0 0010010 0 010010010 0 010 0 001
En este sistema, las marcas de sincronización se crean insertando pulsos de reloj adicionales entre bits cero adyacentes (siguiendo la regla MFM) donde normalmente se omitirían. En particular, el patrón de bits de datos "100001" tiene un pulso de reloj insertado en el medio, donde normalmente se omitiría:
Datos: 1 0 0 0 0 1Normal: 0 1 0 1 0Sincronización: 0 1 1 1 0
Se proporciona una descripción detallada de las propiedades limitantes de las secuencias limitadas por longitud de ejecución.
Este artículo incorpora material de dominio público de la Norma Federal 1037C. Administración de Servicios Generales . Archivado desde el original el 22 de enero de 2022.