Un controlador de disquete ( FDC ) es un componente de hardware que dirige y controla la lectura y escritura en la unidad de disquete (FDD) de una computadora. Ha evolucionado desde un conjunto discreto de componentes en una o más placas de circuitos hasta un circuito integrado de propósito especial (IC o "chip") o un componente del mismo. Un FDC es responsable de leer los datos presentados desde la computadora host y convertirlos al formato en disco de la unidad utilizando uno de varios esquemas de codificación, como la codificación FM (densidad simple) o la codificación MFM (densidad doble), y leer esos formatos y devolverlos a sus valores binarios originales.
Dependiendo de la plataforma, las transferencias de datos entre el controlador y el ordenador anfitrión serían controladas por el propio microprocesador del ordenador , o por un microprocesador dedicado de bajo coste como el MOS 6507 o el Zilog Z80 . Los primeros controladores requerían circuitos adicionales para realizar tareas específicas, como proporcionar señales de reloj y configurar varias opciones. Los diseños posteriores incluyeron más de esta funcionalidad en el controlador y redujeron la complejidad de los circuitos externos; las soluciones de un solo chip eran comunes a finales de la década de 1980.
En la década de 1990, el disquete fue cediendo terreno a los discos duros , que requerían controladores similares. En estos sistemas, el controlador también solía combinar un microcontrolador para gestionar la transferencia de datos a través de conectores estandarizados como SCSI e IDE que se podían utilizar con cualquier ordenador. En los sistemas más modernos, el FDC, si es que está presente, suele ser parte de las muchas funciones que proporciona un único chip de E/S .
El primer controlador de unidad de disquete (FDC) como la primera unidad de disquete (la IBM 23FD) enviada en 1971 como un componente en la Unidad de Control de Almacenamiento IBM 2385 para la unidad de disco de cabezal fijo IBM 2305 , [1] y de los modelos 155 y 165 del Sistema 370. La Unidad de Control de Almacenamiento IBM 3830, un controlador contemporáneo y bastante similar, usa su procesador interno para controlar un 23FD. [2] El FDC resultante es una implementación simple en los circuitos híbridos MST de IBM en unas pocas tarjetas de circuito impreso. [2] La unidad, el FDC y los medios eran propiedad de IBM y aunque otros fabricantes proporcionaron FDD tempranos antes de 1973, no había estándares para FDC, unidades o medios.
La introducción del sistema de entrada de datos 3740 de IBM en 1973 creó el estándar de medios básico para el disquete de un solo lado de 8 pulgadas, el disquete "Tipo 1" de IBM , que junto con los crecientes requisitos de almacenamiento de acceso directo extraíble y económico para muchas aplicaciones pequeñas provocó un crecimiento espectacular en los envíos de unidades y controladores. [3]
Antes de la introducción de versiones de circuitos integrados de propósito especial, la mayoría de los FDC consistían en al menos un circuito impreso implementado con 40 o más circuitos integrados. [4] Algunos ejemplos de dichos FDC incluyen:
El primer FDC implementado como un circuito integrado de propósito especial es el Western Digital FD1771 [14] anunciado el 19 de julio de 1976. [15] El diseño inicial admitía un solo formato y requería circuitos adicionales pero con el tiempo, como familia, el diseño se volvió de múltiples fuentes y evolucionó para admitir muchos formatos y minimizar los circuitos externos.
El NEC μPD765 se anunció en 1978 [16] y en 1979 NEC introdujo el μPD72068, que era compatible con el software del μPD765 e incorporaba un PLL digital . [17] El μPD765 se convirtió en un estándar casi industrial cuando se adoptó en el IBM PC original (1981); el FDC estaba ubicado físicamente en su propia tarjeta adaptadora junto con los circuitos de soporte. Otros proveedores, como Intel, produjeron piezas compatibles. Este diseño evolucionó con el tiempo hasta convertirse en una familia que ofrecía un FDC casi completo en un chip. [18]
En marzo de 1986, Sharp había comercializado el FDC LH0110. [19]
A principios de 1987, Intel presentó el controlador de disquete integrado CHMOS 82072 para su uso en computadoras PC estándar de la industria. [20] [21]
Finalmente, en la mayoría de los sistemas informáticos, el FDC pasó a formar parte de un chip Super I/O o de un chip Southbridge . [18] [22] [23] Sin embargo, en las placas base posteriores, a medida que los usuarios de ordenadores personales fueron dejando de utilizar disquetes, esta interfaz se eliminó. Algunos fabricantes desarrollaron controladores de disquetes basados en USB . [24]
Un disquete almacena datos binarios no como una serie de valores, sino como una serie de cambios de valor. Cada uno de estos cambios, registrados en la polaridad del medio de grabación magnético, hace que se induzca un voltaje en el cabezal de la unidad a medida que la superficie del disco gira a su alrededor. Es la sincronización de estos cambios de polarización y los picos de voltaje resultantes lo que codifica los unos y los ceros de los datos originales. Una de las funciones del controlador es convertir los datos originales en el patrón adecuado de polarizaciones durante la escritura y luego recrearlos durante las lecturas.
Como el almacenamiento se basa en la sincronización, y esa sincronización se ve fácilmente afectada por perturbaciones mecánicas y eléctricas, la lectura precisa de los datos requiere algún tipo de señal de referencia, el reloj . Como la sincronización en el disco cambia constantemente, la señal del reloj debe ser proporcionada por el propio disco. Para ello, los datos originales se modifican con transiciones adicionales para permitir que la señal del reloj se codifique en los datos y luego se utiliza la recuperación del reloj durante las lecturas para recrear la señal original. Algunos controladores requieren que esta codificación se realice externamente, pero la mayoría de los diseños proporcionan codificaciones estándar como FM y MFM .
El controlador también proporciona una serie de otros servicios para controlar el mecanismo de la unidad en sí. Estos suelen incluir el movimiento del cabezal de la unidad para centrarlo sobre las pistas independientes del disco, el seguimiento de la ubicación del cabezal y su retorno a cero, y, a veces, funcionalmente, para formatear un disco en función de entradas simples como la cantidad de pistas, sectores por pista y cantidad de bytes por sector.
Para producir un sistema completo, el controlador debe combinarse con circuitos adicionales o software que actúen como puente entre el controlador y el sistema anfitrión. En algunos sistemas, como el Apple II y el IBM PC , esto se controla mediante software que se ejecuta en el microprocesador anfitrión del ordenador y la interfaz de la unidad se conecta directamente al procesador mediante una tarjeta de expansión . En otros sistemas, como los ordenadores Commodore 64 y Atari de 8 bits , no hay una ruta directa desde el controlador hasta la CPU anfitriona y se utiliza un segundo procesador como el MOS 6507 o el Zilog Z80 dentro de la unidad para este propósito.
El controlador original del Apple II tenía la forma de una tarjeta enchufable en el ordenador anfitrión. Podía admitir dos unidades y las unidades eliminaban la mayor parte de los circuitos integrados normales. Esto le permitió a Apple llegar a un acuerdo con Shugart Associates para obtener una unidad simplificada que carecía de la mayor parte de sus circuitos normales. [4] Esto significaba que el costo combinado de una sola unidad y una tarjeta controladora era aproximadamente el mismo que en otros sistemas, pero se podía conectar una segunda unidad por un costo adicional menor. [ cita requerida ]
El IBM PC adoptó un enfoque más convencional, su tarjeta adaptadora podía admitir hasta cuatro unidades; en el PC, el acceso directo a memoria (DMA) a las unidades se realizaba utilizando el canal DMA 2 e IRQ 6. El diagrama siguiente muestra un controlador de disquete convencional que se comunica con la CPU a través de un bus de arquitectura estándar de la industria (ISA) o un bus similar y se comunica con la unidad de disquete con un cable plano de 34 pines. Una disposición alternativa que es más habitual en los diseños recientes tiene el FDC incluido en un chip de E/S super que se comunica a través de un bus de bajo conteo de pines (LPC).
La mayoría de las funciones del controlador de disquete (FDC) las realiza el circuito integrado , pero algunas las realizan circuitos de hardware externos. A continuación se muestra la lista de funciones que realiza cada uno.
El FDC tiene tres puertos de E/S :
Los dos primeros se encuentran dentro del CI FDC, mientras que el puerto de control se encuentra en el hardware externo. Las direcciones de estos tres puertos son las siguientes.
El software utiliza este puerto para tres propósitos diferentes:
Este puerto es utilizado por el software para leer la información de estado general del CI FDC y las FDD. Antes de iniciar una operación con un disquete, el software lee este puerto para confirmar la condición de preparación del FDC y las unidades de disco para verificar el estado del comando iniciado anteriormente. Los diferentes bits de este registro representan:
El software utiliza este puerto para controlar determinadas funciones de los circuitos integrados FDD y FDC. Las asignaciones de bits de este puerto son:
Un controlador se conecta a una o más unidades mediante un cable plano, 50 cables para unidades de 8" y 34 cables para unidades de 3,5" y 5,25". Un "cable universal" tiene cuatro conectores de unidad, dos para cada unidad de 3,5" y 5,25". [25] En la familia IBM PC y compatibles, se utiliza una torsión en el cable para distinguir las unidades de disco por el zócalo al que están conectadas. Todas las unidades se instalan con el mismo conjunto de direcciones de selección de unidad y la torsión en el cable intercambia las líneas de selección de unidad en el zócalo. La unidad que está en el extremo más alejado del cable también tendría una resistencia de terminación instalada para mantener la calidad de la señal. [26]
Cuando el controlador y la unidad de disco se ensamblan como un solo dispositivo, como es el caso de algunas unidades de disquete externas, por ejemplo, las unidades de disquete Commodore 1540 y USB, [27] la unidad de disquete interna y su interfaz no se modifican, mientras que el dispositivo ensamblado presenta una interfaz diferente, como IEEE-488 , puerto paralelo o USB .
Son posibles muchos formatos de disquete entre sí incompatibles; además del formato físico del disco, también son posibles sistemas de archivos incompatibles.
[38]
Lados:
Densidad:
En Japón, principalmente, existen unidades de disquete de alta densidad de 3,5" que admiten tres modos de formatos de disco en lugar de los dos habituales: 1440 KB (2 MB sin formato), 1,2 MB (1,6 MB sin formato) y 720 KB (1 MB sin formato). Originalmente, los modos de alta densidad para unidades de disquete de 3,5" en Japón solo admitían una capacidad de 1,2 MB en lugar de los 1440 KB que se utilizaban en otros lugares. [39] Mientras que el formato más común de 1440 KB giraba a 300 rpm, los formatos de 1,2 MB giraban a 360 rpm, por lo que se parecían mucho a las geometrías del formato de 1,2 MB con 80 pistas, 15 sectores por pista y 512 bytes por sector que se encontraban anteriormente en los disquetes de alta densidad de 5,25" o el formato de 1,2 MB con 77 pistas, 8 sectores por pista y 1024 bytes por sector que se encontraba anteriormente en los disquetes de doble densidad de 8". Las unidades de disquete japonesas posteriores incorporaron soporte para ambos formatos de alta densidad (así como para el formato de doble densidad), de ahí el nombre de modo 3. Algunas BIOS tienen una opción de configuración para habilitar este modo para las unidades de disquete que lo admiten. [40]
La unidad de control contiene un dispositivo de acceso directo en miniatura que proporciona almacenamiento de solo lectura para la copia de seguridad de la lógica de control y el almacenamiento de microdiagnósticos no residentes. El medio de grabación es un cartucho de disco económico recubierto de Mylar.
El hardware ya ha añadido 64 palabras (pista 0, sector 0) y este microprograma cargará el resto del almacenamiento de control.
En ese momento, todos los controladores de disquete existentes eran de 40 o 50 chips...
El controlador es totalmente compatible con IBM 3740 y 3540 y todo el formateo y desformateo se realiza automáticamente dentro del controlador.
También se proporciona una interfaz de host de propósito general para una fácil interfaz con sistemas host como minicomputadoras, buses de E/S de microprocesadores, terminales CRT, instrumentos, microprocesadores TTL/MSI, controladores industriales y otros sistemas orientados a bytes.
Western Digital Corporation fue pionera en este campo y, en 1976, comenzó a muestrear el primer controlador de disquete LSI, el FD1771.
Controlador de disquete CMOS 765B con licencia