- Disco Rígido
- Propiedades y Funciones de los Discos Magnéticos
- Cantidad de Bytes que puede Almacenar un Disquete o un Disco Magnético
- Localización de un Sector de un Disco/disquete, y por qué se dice que es Direccionable
- Tiempos de Posicionamiento, Latencia y Acceso en un Disco o Disquete
- Funciones que Cumple una Unidad de Disquetes ("Floppy Disk Drive")
- Cómo están Organizados Físicamente los Sectores en las Pistas de los Discos Rígidos
- Funciones que realiza una unidad de disco ATA-IDE o FAST ATA
- Métodos de Grabación MFM y RLL
- Discos Ópticos
- Cómo se Fabrican los CD-ROM, y se Graban los Sectores de la Espiral
- Cómo Son y se Escriben los CD para Grabación por un Usuario Designados CD-R
- Cómo se Direcciona y Localiza un Sector de la Espiral en un CD-ROM o en un CD-R
- Qué es el Formato Lógico HSG/ISO 9660 para Organización Interna de un CD-ROM usado en Sistemas Operativos para Almacenar Archivos
- Las Técnicas Magneto-Ópticas (MO) y de Cambio de Fase usadas en Discos Ópticos Borrables
- Impresoras
- Monitores
Los discos, sean rígidos, CDs, o disquetes se consideran memoria auxiliar o secundaria, de gran capacidad de almacenamiento en relación con la memoria principal, pero de acceso un millón de veces más lento.
Las unidades de discos y de CD se designan periféricos de almacenamiento masivo. En una operación de entrada leen archivos de datos o programas archivados en esos discos, los cuales luego llegarán a memoria; y en una operación de salida permiten archivar resultados que estaban en memoria.
Desde CD-ROM y semejantes sólo son posibles operaciones de entrada.
Escritura | Lectura | Nombre | Tipos |
Por grabación magnética de pistas concéntricas mediante una cabeza constituida por un electroimán. | Por sensado mediante la misma cabeza que escribió actuando en forma inversa | Disco rígido, disquete, Zip, Jazz, Bernouilli Floptical. | |
Por modelado de hoyos formando una pista en espiral, por inyección de plástico en un molde metálico (producción masiva de CDs) | Sensado por rayo láser de la longitud de los hoyos grabados y de la distancia que separa dos hoyos sucesivos | CD-ROM (sólo lectura) | DVD-ROM (sólo lectura) |
Por efecto térmico de un rayo láser se modifica la transparencia de porciones de una pista en espiral, en una capa de material orgánico | Sensado por rayo láser de la longitud de las porciones transparentes y las no transparentes de la espiral grabada | CD-R (Sólo lectura) | |
Por grabación magnética auxiliada por acción térmica de una rayo láser de potencia | Sensado de campos magnéticos en las pistas por su efecto en un rayo láser | MO (lectura y escritura) | |
Por efecto térmico de un rayo láser de potencia se modifica el estado cristalino de un material | Sensado por rayo láser del estado cristalino del material de las pistas | CD-RW ó E (para lectura y escritura) | DVD-RAM, PD |
El cuerpo del disco esta construido en los discos rígidos por aluminio o cristal cerámico. Las pistas son circulares y cada una de estas está dividida en sectores.
Cuando un disco rígido graba lo que hace es: Mueve los brazos hacia el sector que desea, y luego a través de una bobina y de un núcleo ferromagnético que poseen los cabezales genera un campo magnético de polaridad reversible s-n o n-s que imanta la pista.
La distancia entre el cabezal y un disco es demasiada pequeña.
Una bobina de alambre arrollada sobre el cabezal genera dicho campo magnético al circular por ella una corriente eléctrica. Las pistas de un disco son escritas o leídas por el mismo cabezal. El cabezal queda quieto siempre gira el disco. Cuando se mueve el brazo de la cara de arriba también se mueve el brazo de la cara de abajo hacia la misma pista. Solo una cabeza se puede usar por vez.
Según como este cada partícula magnetizada ( N-S , S-N ) dependerá si hay un 0 o 1.
El proceso de lectura es inverso al de escritura, va girando y a medida que encuentra cambio de polarización cambia la corriente que mandara.
Ej : N – S , N – S , S – N , S – N es 0,0,1,1.
Al moverse las dos cabezas juntas se logra leer o escribir mas rápido ya que el cabezal se posicionan en el mismo lugar de distintas caras y sin moverse el brazo (que es lento porque es mecánico ) lee o escribe mas datos en el mismo tiempo.
Las pistas o cilindros se enumeran del exterior para el centro.
No se dice pista 20 si no pista del cilindro 20.
Para leer algún dato debe usarse tres números: El del sector, el de la cabeza y el del cilindro. Todas las pistas de un disco guardan la misma cantidad de bits y tienen la misma numero de sectores. En las pistas mas internas los bits están mas apretados que en las externas. Ya que en las externas en diámetro es mayor.
Propiedades y Funciones de los Discos Magnéticos
Un disco magnético (rígido o flexible) es sinónimo de soporte
de almacenamiento externo, complemento auxiliar de la memoria principal RAM de una computadora (memoria electrónica interna de capacidad limitada, un millón de veces más rápida de acceder que un disco, pero volátil).
- Tiene capacidad para almacenar masivamente grandes cantidades de información en reducidos espacios con el consiguiente bajo costo relativo por byte almacenado.
- Es memoria "no volátil": guarda largo tiempo los bits almacenados aunque se retire el suministro de energía eléctrica, propiedad que la memoria principal carece.
- Permite acceder en pocos segundos, casi directamente, al lugar donde se halla un bloque de datos a leer o escribir, sin necesidad de búsqueda en todos los bloques de datos que le preceden, como ocurre en una cinta magnética.
La información residente en un disco está agrupada y clasificada constituyendo archivos o ficheros ('files"), como quiera llamarse, identificables por su nombre. Un archivo puede contener datos o programas.
Con la tecnología actual de los sistemas de computación, gran parte de los procesos de Entrada y Salida de datos tienen como origen y destino los discos magnéticos. Esto se manifiesta en que:
- La mayoría de los programas están almacenados en disco, constituyendo archivos "ejecutables". Cuando se necesita un programa, una copia de éste pasa a memoria principal, para ser ejecutado.
- Generalmente pasa de disco a memoria una copia del archivo de datos que procesará un programa. Los resultados obtenidos van de memoria a disco, formando parte de dicho archivo o de otro.
- El disco sirve también para simular una "memoria virtual", de mucha mayor capacidad que la memoria principal existente.
Comúnmente, los disquetes son usados para copias de resguardo ("backup"), y para transportar archivos de programas o de datos.
Los discos rígidos y disquetes son medios de almacenamiento externos. Para ser leídos o escritos deben insertarse en el periférico "unidad de disco"' ("disk drive") que para los disquetes se denomina "disquetera".
Cantidad de Bytes que puede Almacenar un Disquete o un Disco Magnético
Todas las pistas de un disquete guardan la misma cantidad de bits y tienen igual número de sectores, por lo que en las pistas más internas los bits están
más "apretados" que en las de mayor radio, o sea que en las internas se tiene una mayor densidad de bits grabados por pulgada de pista (bits per inch = bpi). No ocurre lo mismo en los discos rígidos actuales.
La densidad depende del tipo de material magnetizable de las caras, del ancho del entrehierro de las cabezas, y de la técnica de codificación de bits empleada para grabar (MFM, RLL, o ARLL).
Una pista grabada en un viejo disquete de 5 ¼" con dos
caras ("sides") y doble densidad (indicado 2S/2D), puede tener por pista 9 sectores de 512 Bytes. O sea que se tendrá 512 x 9 = 4608 Bytes/pista.
Además de la cantidad de sectores por pista, en el cálculo de la capacidad de un disco interviene el número total de pistas (cilindros) que tiene en cada cara. Para el disquete este número es 40 pistas por cara. Entonces, la capacidad de almacenamiento por cara será 4608 x 40 = 184.320 Bytes. Puesto que se usan las dos caras, la capacidad total de estos disquetes era de 184.320 x 2 = 368.640 Bytes = 360 KB.
El número de pistas (cilindros) por cara depende de la cantidad de pistas ("tracks") que puedan grabarse por pulgada ("tracks per inch" = tpi") o centímetro, medidas en sentido radial.
Por lo tanto, en el cálculo de la capacidad total de almacenamiento de un disco magnético intervienen:
- De la densidad lineal de cada pista (indicada en bpi), la cual determina el número de sectores de una determinada longitud que existirán por pista. Para el DOS esta longitud debe ser de 512 bytes.
- De la densidad radial de pistas (indicada en tpi), que define el total de pistas (cilindros) por cara.
Son corrientes los disquetes de 5 ¼" en los que el material magnético admite en cada pista el doble de bits por inch que los de] tipo 2S/2D citados. En éstos, una pista puede tener 15 sectores de 512 Bytes, o sea 15 x 5l2 = 7.680 Bytes por pista. Además poseen el doble de densidad radial de pistas: 96 tpi, resultando concretamente 80 pistas por cara. Se conocen como 2S/HD, o sea dos caras y alta densidad ("high density"). Resulta así 7680 x 80 = 614.400 Bytes por cara, y para las dos caras un total de:
614.400 x 2 = 1.228.800 Bytes = 1,2 Megabytes (MB)'
Estos son los disquetes de 5 ¼" que ya casi no se usan.
Los disquetes de 3 ½" contienen cobalto en el material magnético. Los primeros fueron del tipo 2DD (dos caras y doble densidad), con 9 sectores/pista, o sea 512×9 = 4608 Bytes/pista. Tenían 135 tpi, por lo cual son posibles 80 pistas/cara.
Entonces resultaban: 4608 x 80 = 368.640 Bytes por cara; y en total 368.640 x 2 = 737.280 Bytes = 720 KB.
En 3 ½" se popularizaron los del tipo 2HD, de alta densidad, también de 135 tpi, (80 pistas) pero de 18 sectores por pista. La capacidad total será el doble que el anterior: 18 x 512 x 80 x 2 = 1.474560 Bytes = 1,44 MB.
Igual método de cálculo se aplica a discos rígidos. Así, un rígido de 8 platos, con 1024 pistas (cilindros) por cara, y 63 sectores (de 512 Bytes) por pista, tendrá una capacidad por cara de 63 x 512 x 1.024 = 33.030.144 Como tiene 8 platos = 16 caras, la capacidad neta total será: 33.030.144 x 16 = 520 MB.
Generalizando, la capacidad neta de un disco o disquete puede calcularse como:
Capacidad = Sectores por pista x Tamaño sector (Bytes ) x Pistas (cilindros) por cara x Nro de caras.
No es aconsejable forzar la capacidad máxima que admite cada tipo de disquete, so pena de que a mediano plazo pueda comenzar a perder datos almacenados.
Debe tenerse presente, que la capacidad que aparece indicada en discos rígidos es "bruta", no ocupable totalmente con archivos. Se pierde en promedio del orden de un 20%, puesto que en cada sector se deben escribir bits con el número que lo identifica, junto con información de control, amen de los bits de final e inicio que se usan para separar los sectores contiguos entre sí. Vale decir, que dicha capacidad se refiere a un disco "virgen", sin formatear.
Localización de un Sector de un Disco/disquete, y por qué se dice que es Direccionable
Durante una operación de E/S, el controlador de la unidad de disco o de la disquetera debe recibir tres números: el del cilindro que contiene la pista donde está ese sector, el de la cabeza (head) que accede a esa pista, y el número del sector dentro de la pista. Dichos números en inglés conforman un CHS.
En cada unidad existe una cabeza de lectura/escritura para cada cara de un disco. El controlador ordenará activar para escritura/lectura sólo la cabeza de la cara indicada, y dará la orden de posicionarla sobre el cilindro (pista) seleccionado, siendo que todas las cabezas avanzan al unísono.
Al comienzo de cada sector de un disco están escritos dichos tres números de CHS, formando un número compuesto, que es su "dirección", necesario para localizarlo, direccionarlo, como quiera decirse. Por este motivo se dice que un disco o disquete son dispositivos de memoria auxiliar direccionables.
Tiempos de Posicionamiento, Latencia y Acceso en un Disco o Disquete
Para acceder a un sector que está en una cara de un disco, primero el cabezal debe trasladarse hasta el cilindro que contiene la pista donde se encuentra dicho sector, y luego debe esperarse que al girar el disco ese sector quede debajo de la cabeza. Por lo tanto, deben tener lugar dos tiempos:
El brazo con la cabeza correspondiente a esa cara se sitúa en pocos milisegundos (tiempo "seek", de posicionamiento) directamente sobre el cilindro seleccionado, o sea sobre la pista del cilindro correspondiente a esa cara. Se considera un valor promedio para este tiempo.
Una vez que la cabeza se posicionó sobre dicha pista, los sectores de ésta desfilarán debajo de esa cabeza. Cada uno es leído hasta encontrar aquél cuyo número coincida con el enviado a la controladora, en cuyo caso su campo de datos será escrito o leído.
El tiempo que dura esta búsqueda secuencial es el tiempo de latencia o demora rotacional (en promedio es el tiempo de media vuelta). Si el sector buscado estaba en la posición señalada con "X" cuando la cabeza llegó a la pista indicada, este tiempo es el que tarda en llegar hasta la cabeza, para comenzar a ser leído.
La suma de estos dos tiempos promedio conforma el tiempo de acceso, o sea es el tiempo que transcurre desde que la controladora ordena al cabezal posicionarse sobre un cilindro, hasta que la cabeza indicada accede al sector buscado. La duración de este tiempo sólo depende del tipo de unidad de disco que se trate:
T acceso = t promedio posicionamiento + t promedio latencia
En un disquete este tiempo será del orden de (70 + 100) mseg. = 170 mseg.
En un disco rígido es mucho menor: hoy es común tener 10 mseg de seek, y 7 mseg de latencia (a 4500 r.p.m.) en total 17 mseg. Existen discos que esos totales son menores.
Los fabricantes especifican el tiempo de posicionamiento en vez del promedio total. También suelen "fabricar" un tiempo de acceso que pondera la mejora electrónica obtenida por la acción de un caché de disco, cuando se ordena leer una sucesión de sectores ubicados en una misma pista o cilindro, y suponen en forma optimista que esto ocurrirá en el 40% de los accesos ordenados.
Tiempo y Velocidad de Transferencia de Datos
Suponiendo una lectura, una vez que el sector requerido está frente a la cabeza activada -luego de transcurrir los tiempos de posicionamiento y de latencia- ella debe leer bit por bit dicho sector, pasando estos bits en serie hacia la electrónica, y luego hacia la interfaz del disco o disquete. El destino final de los bits que conforman el campo de datos de un sector, es la zona de memoria principal (buffer) reservada para esos datos. A esta zona esos bits leídos llegan en paralelo (de 16 ó 32 por vez) a través del bus que une la interfaz con la memoria principal.
Sea un disco de 32 sectores por pista, que gira a 3.600 r.p.m. = 60 r.p.seg. 1 revolución/ 16 mseg.
Un sector cualquiera de los 32 de una pista será recorrido por la cabeza en 1/32 de revolución, o sea en 16 mseg/32 = 0,5 mseg. Durante este tiempo de lectura, los bits del campo de datos (que forman 512 bytes) se van transfiriendo hacia la electrónica (IDE o SCSI) de la unidad de disco, a medida que la cabeza los va leyendo. O sea que durante dicho tiempo se están enviando a razón de 512/0,5 bytes/mseg. = 1024 bytes/mseg = 1.024.000 bytes/seg., casi 1 MB/seg.
Este valor constituye la velocidad de transferencia interna.
Inversamente, en una escritura del disco, a medida que frente a la cabeza seleccionada pasa el campo de datos del sector, la unidad (IDE ó SCSI) le debe enviar en serie los bits a escribir, los cuales fueron llegando a esta unidad (de a bytes) por el bus, desde memoria principal. Puesto que el disco gira a igual velocidad en lectura o escritura, el tiempo de escritura o lectura del campo de datos será el mismo, y por lo tanto también la velocidad de transferencia interna será igual en la escritura o lectura.
Estos MB/seg definen la velocidad de transferencia interna, que suele ser indicada como la "velocidad de transferencia" por los fabricantes de unidades de disco. Debe tomarse ésta como la velocidad con que una cabeza puede leer o escribir "al vuelo" los bits de un sector, siendo esta velocidad una medida de la velocidad máxima a la que se pueden transferir bits entre disco y memoria (o viceversa).
Esto es porque si consideramos el trayecto total que deben recorrer los datos en una operación de entrada (lectura de disco) o salida (escritura del mismo), no se puede dejar de lado el tiempo que insume su transferencia a través del bus (ISA, VESA o PCI) que comunica la porción central con el registro port de datos ubicado en la electrónica (como la ATA-IDE). Asimismo, importa la velocidad de respuesta de esta interfaz. Si ella o el bus no son lo suficiente rápidos, la velocidad real de transferencia de datos hacia o desde un disco a memoria puede ser bastante menor que la máxima citada.
La velocidad de transferencia interna será la velocidad de transferencia real sólo si a medida que la cabeza lee (o escribe) los datos de un sector, ellos se van transfiriendo hacia memoria (desde memoria) sin demoras. Conforme a lo anterior resulta que la velocidad de transferencia de un disco depende:
- De la velocidad de transferencia interna de la unidad de disco (dependiente de la densidad, y las r.p.m.).
- Del tiempo de respuesta de la interfaz controladora (EIDE, SCSI), y de la existencia de un caché en ella.
- De la velocidad del bus al cual la interfaz se conecta (hoy día debe ser PCI).
El tiempo de transferencia entre disco y memoria se halla dividiendo los bytes de un sector (512), por la velocidad de transferencia, y es por lo menos lo que tarda la cabeza en pasar por la zona de datos del sector.
Un disquete de 3 ½" y 1,44 MB, 80 cilindros y 18 sectores por pista gira a 300 rpm. o sea 200 mseg por vuelta. Por lo tanto, un sector será recorrido en (200/18) mseg = 11 mseg. La velocidad de transferencia interna será: 512 Bytes/11 mseg = 50 KB/seg. que también será la velocidad de transferencia puesto que aunque la controladora esté conectada a un bus ISA.
En general, a igualdad de velocidad de giro, si se aumenta la densidad lineal (número de bits por cm de pista) se transferirán más bits por segundo. Hoy día esta densidad va en aumento en los nuevos modelos de discos rígidos, dado que con los actuales tipos de cabeza desarrollados se pueden grabar y detectar más bits por cm de pista, por lo que cada vez resultan mayores velocidades de transferencia interna de bits. Esto debe tener como correlato interfaces (IDE o SCSI) que tengan listos rápidamente los datos a escribir o los leídos en un disco, y buses, con un ancho de banda apto para soportar tales velocidades de transferencia entre la interfaz y memoria.
También en muchos casos se ha aumentado la velocidad de giro de los rígidos, lo cual a su vez trae aparejado una mayor velocidad de transferencia.
Teniendo en cuenta los tiempos descriptos, el tiempo total de entrada/salida que se tarda en atender una orden de lectura (o escritura) que llegó al controlador de la unidad de disco será:
T E/S = t posicionamiento + t latencia + t transferencia
Se trata que este tiempo sea lo más corto posible, pues la escritura y lectura de archivos en disco (rígido) es una actividad frecuente en un sistema de computación.
Funciones que Cumple una Unidad de Disquetes ("Floppy Disk Drive")
Anteriormente se hizo mención al posicionamiento de las cabezas sobre el cilindro al cual se quiere acceder cuando el disquete está girando, y a las corrientes eléctricas que circulan en la cabeza que está escribiendo o leyendo, etc.
Estas acciones básicas de la "unidad de disquete" o "disquetera" ("drive" A 0 B) sirven a su objetivo de escribir o leer una pequeña superficie (sector) del disquete inserto en este periférico. Para tales acciones la disquetera presenta en esencia:
- Mecanismos de sujección y eyección del sobre protector (con el botón frontal), y para desplazar la ventana de protección.
- Motor para girar el disco.
- Otro motor "paso a paso"', para hacer avanzar de pista en pista (de un cilindro al siguiente), a la armadura que porta las dos cabezas (ampliada más en detalle y abierta a la derecha de la figura 2.21). Las cabezas así se mueven en movimiento radial rectilíneo -hacia delante o atrás- hasta el cilindro seleccionado.
- Sensores para detectar presencia de disquete, y si está protegido contra escritura en su cubierta.
- Bus de conexión a su interfaz, conocida como "controladora".
- Circuitos que constituyen la electrónica de este periférico, para accionar los elementos anteriores, conforme a las señales eléctricas que recibe de la controladora (interfaz) de las disqueteras (A y B), a través de conductores del bus de conexionado citado.
Capac. Almac.= Nro. pistas x Nro. de sectores x Nro. de caras x Nro. de bytes/sector
Las señales que llegan a la disquetera desde la interfaz ordenan, entre otras acciones:
- Poner en marcha el motor de giro de la unidad seleccionada (sea la A ó B).
- Posicionar (mediante el motor paso a paso) la armadura en un determinado cilindro del disquete.
- Seleccionar cuál de las dos cabezas se activará.
A su vez por cables de dicho bus de conexión, la electrónica puede enviar hacia la interfaz señales, como:
- Aviso de inicio de pista (cuando el agujero correspondiente del disquete coincide con el del sobre).
- Aviso de escritura protegida.
- Aviso que datos leídos son enviados a la interfaz.
Como resultado de estas señales, si todo está en orden, puede tener lugar la transferencia serie de bits leídos en un sector de un disquete hacia la interfaz (o en sentido contrario en una escritura de un sector) a través de uno de los cables del bus de conexionado citado.
Cómo están Organizados Físicamente los Sectores en las Pistas de los Discos Rígidos
La organización con igual número de sectores en cada pista, desperdicia capacidad de almacenamiento, pues las pistas exteriores podrían tener más que el doble de sectores que las más internas, de menor radio. La mayor densidad de bits de éstas (bpi) determina y limita el número de sectores que tendrán otras pistas más alejadas del centro.
En la mayoría de las unidades de disco actuales (tipo IDE o SCSI) se emplea igual densidad de grabación en todas las pistas (constant density recording = CDR), y "grabación zonal" ("zone recording"), que consiste en formar desde el centro del disco hacia afuera, varias zonas de cilindros, cada una con más sectores por pista que la mas interna anterior. Así se logra hasta un 50%, más de capacidad que con la otra disposición.
Fragmentación del Disco
El SO va llenando un disco con archivos, intentando ocupar sectores sucesivos de un mismo cilindro, aunque "no sabe" si esto ocurre realmente, o si un archivo está parte en un cilindro y parte en el siguiente, dado que el SO ignora que un disco tiene cilindros y pistas, como se explicó antes.
Esto trae aparejado más demoras en la lectura y escritura de archivos, las cuales se incrementan si un archivo está distribuido en varios cilindros distintos (pues el cabezal debe realizar muchos movimientos de posicionamiento para ir de un cilindro a otro). Asimismo, una vez que un disco fue escrito hasta el final, el SO amplía archivos en sectores que fueron dejados libres por haberse borrado en forma total o parcial otros archivos.
Resulta así una distribución azarosa de porciones de archivos por distintos cilindros, conocida como "fragmentación" externa. Esta tiene lugar al cabo de cierto tiempo, cuando se guardan, borran, y vuelven a escribir archivos, e inevitablemente cuando un disco está por colmar su capacidad. En definitiva, el DOS fue pensado para aprovechar al máximo la capacidad de un disco, dejando en segundo lugar la optimización del tiempo de lectura de los archivos.
Si un disco está muy fragmentado, cuando se debe leer un archivo se pierde mucho tiempo, pues el cabezal debe ir de un cilindro a otro donde están grabados sectores de dicho archivo.
Esto no ocurre si todos los sectores de un archivo están en un mismo cilindro. Para lograr esta distribución con todos los archivos de un disco, se recurre a un programa para "desfragmentar", cuando se nota que un disco duro se ha vuelto muy lento.
Funciones que realiza una unidad de disco ATA-IDE o FAST ATA
Unidades de discos rígidos anteriores, adecuadas al estándar ST506, requerían una interfaz – controladora cuya circuitería estaba en una plaqueta insertable en un zócalo ("slot"), con funciones análogas a las de la controladora de disquetera. Los discos con unos 30 MB de capacidad podían compartir una plaqueta con las unidades de disquetes; pero capacidades mayores requerían una plaqueta dedicada, que ocupaba un zócalo más.
Fue necesario que la interfaz – controladora esté localizada junto
a la unidad de disco rígido, integrada con la electrónica de este periférico, de donde provienen las siglas IDE de "integrated drive electronics". Las siglas ATA – AT Attachment son sinónimas de IDE. Dadas las actuales capacidades de los discos rígidos, y las velocidades de acceso y de transferencia de una unidad de disco
rígido (drive),
se requiere que la electrónica ligada a ella sea "inteligente", conteniendo un microcontrolador, con un programa en su ROM, y una RAM veloz para buffer del periférico.
El microcontrolador maneja los sistemas con servowriter, corrige sobre la marcha errores de lectura de un sector, maneja un caché de disco, simula hacia el exterior un disco compatible con el sistema operativo y BIOS existentes, y realiza rápidamente otras tareas complejas. También incluye la mayoría de las funciones de la interfaz controladora para la unidad de disquetes. La proximidad física entre la interfaz y las cabezas evita retardos e interferencias (ruidos eléctricos) en la lectura o escritura, que se produciría si se quiere transmitir a gran velocidad información entre la electrónica de la unidad de disco y una interfaz más alejada, como la existente para una unidad ST506.
Una unidad IDE es una buena solución de compromiso entre velocidad y costo para sistemas monotarea corrientes. No requiere de una plaqueta interfaz especial en la "mother" como la SCSI. Acorde con lo anterior, la electrónica de una unidad "inteligente" de disco IDE incorpora funciones tratadas en la interfaz – controladora de disquetera, en particular en lo concerniente a la existencia de registros direccionables ("ports") para enviarle un block de comandos y para recabar el estado de la unidad' mediante la ejecución de subrutinas del BIOS. El microcontrolador de la unidad de disco detecta y lleva a cabo estos comandos (del tipo posicionar las cabezas en un cilindro, leer o escribir un sector, etc.) mediante la ejecución de instrucciones contenidas en su ROM.
Debido a las limitaciones en la velocidad de los buses, a fin de lograr una mayor velocidad de transferencia de datos entre memoria principal y el port de datos o viceversa, ésta no se hace por ADM, sino por AIM, a través del registro AX, opción conocida como Programmed Input/Output (PIO). Para tal fin, se deben ejecutar instrucciones de subrutinas del BIOS.
En relación con el port de datos, en la electrónica de la unidad existe un "sector buffer", o sea un buffer con capacidad para un sector del disco, para dar tiempo a la corrección de datos leídos, que realiza el microcontrolador, usando el área ECC del sector. Sólo si los datos son correctos, se realiza la transferencia hacia memoria, para lo cual la circuitería que cumple funciones de interfaz controladora activa una línea IRQ, para que una subrutina -mediante AIM sucesivos de 2 bytes (hoy pueden ser 4 bytes)- pase los 512 bytes de datos.
Luego de acceder al disco para leer un sector solicitado, y sin que se mueva el cabezal, se van leyendo los siguientes sectores de la pista o cilindro (pues es probable que luego se solicita su lectura), los cuales pasan al cache de disco, constituido por una memoria DRAM manejada por el microcontrolador. Si se ordena escribir un sector, por sucesivos AIM llegan desde memoria al "sector buffer" 512 bytes para ser escritos, a través del port de datos citado. En caso que se envíen datos para ser escritos en sectores sucesivos, los mismos pueden guardarse transitoriamente en el caché citado.
Una unidad IDE realiza funciones de interfaz, siendo conectada a las líneas de datos, direcciones e IRQ del bus, mediante un cable plano terminado en un conector con agujeros para 40 terminales, para conectarse a igual número de "agujas" ("pines") vinculadas a chips de adaptación al bus ("host adapter"). Dichas "agujas" pueden estar en la plaqueta "multifunción" que también contiene la controladora de disquetera, citada al tratar ésta, o en el "mother", según sea el modelo de esta última.
El bus ISA, puede enviar como máximo menos de 8 Mbytes/seg. en grupos de 2 bytes, lo cual no es apto para las unidades IDE actuales, pues limita la velocidad de transferencia. Hoy día pueden transferirse grupos de 4 bytes.
Esta velocidad puede aumentarse si se conecta un drive IDE preparado para un bus como el PCI, al "mother" directamente, o usando la plaqueta "multifunción" para dicho bus. La electrónica IDE se presenta ante la ROM BIOS como una unidad ST-506 normalizada, y permite operar más de un disco rígido.
Mas en detalle, a la electrónica IDE le llegan comandos, que ordenan leer o escribir un sector, del cual se indican sus números de CHS. Merced a la ejecución de subrutinas del BIOS estos comandos que estaban en memoria principal, pasan al registro AX de la UCP, y de éste a los registros "ports de comandos" de la interfaz IDE, a través del bus de datos que llega a ésta.
La electrónica IDE, después de recibir estos comandos realiza las siguientes acciones:
Traduce dichos comandos en señales para que el cabezal se posicione en el cilindro elegido; y que luego la pista correspondiente a la cabeza seleccionada sea leída por ésta hasta encontrar el sector buscado.
La cabeza lee el número identificatorio de cada sector que encuentra en la pista que va leyendo, el cual es transmitido a la electrónica IDE, para determinar si es o no el comienzo del sector buscado, a fin de escribir o leer -según sea la orden- los datos en la zona correspondiente del sector buscado.
Si es una orden de lectura, todos los bits del sector son leídos en serie por la cabeza. A medida que son leídos se realiza la verificación ECC (semejante a la CRC) y pasan al sector buffer de la electrónica, para ser corregidos de ser necesario.
En caso de que dicha lectura sea correcta, la sección interfaz de la electrónica activa su línea IRQ del bus, para que la UCP interrumpa el programa en ejecución, y ejecute una subrutina del BIOS para hacer AIM, de modo de ir sacando del sector buffer los datos.
La ejecución de esta subrutina permite que por sucesivos AIM, los datos del sector buffer se transfieran (de a 2 bytes) a la zona buffer de memoria principal a través del bus, direccionando el port de datos.
De manera inversa, luego de una orden de escritura, los bytes a escribir en el sector van llegando (de a dos) por el bus (desde la memoria) al port de datos, y de éste al sector buffer, luego de lo cual se activa la línea IRQ. Luego los bits pasan en serie hacia la cabeza, para que los escriba en el sector.
A medida que escribe o lee los bits de un sector, realiza el cálculo del ECC, cuyo valor graba a continuación de la zona de datos en una escritura.
Realiza en una lectura o escritura, el manejo y control de errores, codificando en un registro port el tipo de error ocurrido.
En definitiva, subrutinas del BIOS al enviar comandos a los ports de la interfaz (IDE, SCSI u otra) dan origen a lecturas y escrituras en el disco, siendo que los tiempos de las señales involucradas están determinados por los circuitos de la interfaz Estos tiempos son más cortos en los últimos modelos.
El tiempo denominado "I/O read and write cycle time", es determinante de la velocidad de transferencia, siendo el mínimo lapso que puede mediar entre dos escrituras o lecturas sucesivas del registro port de datos de la interfaz ATA (IDE) de una unidad de disco rígido; registro que tiene un tamaño de 16 bits = 2 bytes.
Por ejemplo, de los 5 modos PIO (Programmed Input Output), para hacer AIM, en el PIO modo 0 que es el más lento, dicho tiempo de ciclo es de 600 nanoseg. Conocido este tiempo, puede deducirse que la máxima velocidad de transferencia para este modo es de 3,3 MB/seg.
Suponiendo que teóricamente en forma ininterrumpida se leen o escriben 2 bytes del port de datos cada 600 nseg = 0,0000006 seg., en un segundo podrían hacerse 1/0,0000006 transferencias de 2 bytes por AIM. 0 sea, que podrían transferirse 2/0,0000006 bytes/seg. 3.333.333,33 bytes/seg. 3,3 MB/seg., dado que 1 MB = 1.048.576 bytes. Lo anterior equivale a decir que en un segundo se transferirían: 3,3 x 2048 sectores = 6758 sectores, siendo que 2048 sectores de 512 bytes = 0,5 KB conforman 1 MB. En el presente existen unidades IDE estándar ATA-2, con PIO modo 4, tiempo de ciclo de 120 nseg, lo cual implica una velocidad de transferencia máxima teórica de 16,5 MB/seg. (5 veces mayor que el modo 0).
Cabe mencionar que esta velocidad de transferencia máxima para PIO es la misma que para ADM modo 3, dado que depende del tiempo de ciclo con que opera la unidad IDE. Si en lectura o escritura deben mediar 120 nseg entre dos direccionamientos al port de datos de 16 bits, este tiempo de ciclo debe respetarse, ya sea que los direccionamientos se hagan para efectuar transferencias por AIM (PIO) o ADM (DMA).
Que la transferencia entre memoria y dicho port (o viceversa) convenga hacerla por AIM o ADM, dependerá del sistema operativo en uso, y si se trabaja o no en "multitasking".
Las unidades con electrónica que sigue el estándar EIDE ó Fast ATA (1 ó 2) permiten además comandos para escritura o lectura múltiple, los que dan lugar al "Block Mode".
Enviando a los ports correspondientes uno de estos comandos y la cantidad de sectores a transferir (de 2 a 128) se evita que la electrónica active la línea de interrupción IRQ, con cada sector que debe ser pasado del sector buffer a memoria o en sentido inverso. Con esto se evitan las pérdidas de tiempo involucradas en cada interrupción (guardar registros de la UCP en la pila, llamar y ejecutar una subrutina, y volver a restaurar dichos registros en la UCP). Así, hasta 128 sectores pueden ser transferidos con un solo comando, con lo cual es factible ganar un máximo de 30% de tiempo.
Es factible conectar más de una unidad IDE a un bus de una PC (sean dos discos rígidos, un rígido y una lectora de CD, etc.), debiendo actuar el más rápido de ellos como "master", y el otro como "slave". Esto se define conectando los "jumpers" (puentes de contacto) como indica el manual de instalación.
Direccionando y escribiendo el valor (1 ó 0) de un bit del registro drive/head, se selecciona si un comando es para el "master" o el "slave".
Los adaptadores EIDE (Enhanced IDE, o sea IDE mejorado), permiten conectar cuatro unidades de disco (fijas o removibles), amen de tener mayor velocidad de transferencia.
Métodos de Grabación MFM y RLL
Una cabeza (bobina) mientras graba magnetiza en la pista grupos de pequeñas partículas microscópicas de óxido de hierro (no una sola), dando lugar a pequeños imanes que originan campos magnéticos en la superficie del disco, cuya polarización (S-N o N-S) depende del sentido de la corriente de la bobina.
Cuando la misma cabeza debe leer, sensa dichos campos, detectando campos magnéticos existentes debidos a imanes enfrentados (norte contra norte, sur contra sur). Vale decir, no detecta si existe o no campo magnético, sino inversiones en el flujo (campo) magnético, cuando se enfrentan dos polos iguales. En una lectura, al pasar la cabeza por cada una de estas inversiones, se genera en la bobina una corriente eléctrica que da lugar a una señal constituida por un breve pulso eléctrico. Los pulsos así generados, al ser decodificados por la electrónica correspondiente, permiten reconstruir la señal que excitó la bobina de la cabeza durante la escritura de la pista, y así decodificar los ceros y unos en el sector leído.
El número máximo de inversiones sucesivas de flujo magnético por centímetro o pulgada cuadrada debe permitir escrituras o lecturas seguras. Está limitado por las características del material magnético, por el ancho del entrehierro, y la sensibilidad de la cabeza.
Para un número máximo dado de tales inversiones, de lo que se trata, en principio, es codificar la mayor cantidad de unos y ceros por centímetro de pista, habiéndose desarrollado para tal fin varios métodos, que implicaron sucesivas mejoras en la densidad de almacenamiento. En todos ellos en una escritura, cada cambio de nivel de la señal eléctrica que se aplica a una cabeza, produce una inversión en el flujo magnético de la superficie de la pista que está siendo escrita. Por lo tanto, se busca codificar la mayor cantidad de unos y ceros con el menor número de cambios de nivel en dicha señal.
Los tres métodos de codificación tienen en común:
- Los unos y ceros a grabar están separados igual intervalo de tiempo entre sí;
- Cada bit de valor uno a escribir le corresponde siempre en la pista una inversión del campo magnético; mientras que en correspondencia con cada cero a escribir, no existe ninguna inversión de campo. Pero esta convención sin más no permite en la lectura detectar cuántos ceros sucesivos han sido grabados.
Una codificación emplea inversiones de flujo extras para separar bits, y otra las usa sólo para separar ceros. Estas inversiones usadas para demarcar bits -que en correspondencia requieren cambios de nivel en las señales eléctricas que se aplican a una cabeza- se denominan "clocks", en el sentido que sirven para autosincronismo, a fin de poder determinar tiempos de duración de bits.
En la grabación de disquetes se usa principalmente el método de codificación conocido como MFM (Modulación de Frecuencia Modificada). En los rígidos la técnica anterior se ha reemplazado por otra conocida como RLL ("Run Lenght Limited", traducible como "longitud limitada de ceros corridos" o sea sucesivos), que permite hasta un 50% más de densidad de grabación. Ambas codificaciones son mejoras sucesivas del denominado método de grabación FM ("Frecuencia Modulada").
En la grabación FM se emplea siempre una inversión de flujo antes de cada bit a escribir, sea uno o cero; y además se debe emplear otra inversión por cada bit de valor uno a escribir, inversión que se da a mitad de camino entre la inversión que indica su comienzo y la del comienzo del bit siguiente. 0 sea, que para escribir un uno se requiere dos cambios de nivel en la señal que recibe la cabeza: un cambio para indicar que empieza un bit, y otro para señalar que se trata de un uno.
A diferencia, la escritura de un cero implica sólo un cambio de nivel, para indicar el comienzo de dicho bit, siendo que la ausencia de otro cambio inmediatamente después identifica que se trata de un cero. La denominación FM se debe a que en la codificación de unos sucesivos, resulta una frecuencia de pulsos mayor que la existente para ceros sucesivos, o sea que existen dos frecuencias distintas para unos y ceros.
Dado que en la codificación FM, para grabar un uno se necesita dos inversiones de campo magnético en la pista, fue reemplazada por la MFM, que permite codificar un wio con una sola inversión de campo, siendo que sólo usa inversión para indicación de comienzo de bit, cuando un cero está precedido por otro cero.
Esta convención permite codificar, como se ejemplifica, la misma secuencia de unos y ceros como la ejemplificada (11111010000) con la mitad de inversiones de flujo que con FM. Por lo tanto en MFM se puede duplicar el número de bits por pulgada de pista, para una cantidad máxima de inversiones posibles por pulgada (que depende del material magnético usado).
Para los discos rígidos de gran capacidad fue necesario aumentar la densidad de grabación, para lo cual se creó la codificación RLL 2,7 que permite con un menor número de inversiones de flujo codificar una mayor cantidad de bits (hasta 50% más que con MFM). A tal fin, una sucesión de bits a escribir se descompone, a partir del primero, en sucesivos grupos de bits cuya.
Esta recodificación el número de unos a grabar, y por ende, inversiones de flujo, siendo que en MFM también se necesitan inversiones cuando hay ceros consecutivos (en RLL sólo se usan para los unos). En este ejemplo, los datos a escribir 11111010000 se descomponen en los grupos 11 11 10 10 000 codificados, como 100010000100010000010O. En RLL sólo se produce una inversión de flujo si hay un uno, sin emplear inversiones de comienzo de bit para los ceros en ninguna circunstancia.
La lectura de una pista exige una electrónica sofisticada, como la IDE o SCSI, para determinar correctamente, en función del tiempo transcurrido, cuántos ceros existen entre la detección de dos "unos".
Las siglas 2,7 de la codificación RLL 2,7 resultan de la tabla anterior. Después de un uno puede haber dos ceros como mínimo, y tres ceros como máximo. Antes de un uno como máximo pueden darse cuatro ceros. Por consiguiente, entre dos unos, como mínimo pueden haber dos ceros, y como máximo siete ceros. Ocho o más ceros seguidos, se descomponen en grupos de tres ceros, cada uno codificable como 000100. Existen también las codificaciones RLL 1,7 y RLL 3,9 también conocidas como ARLL (Advanced RLL), que permiten hasta un 90% de ganancia de densidad en relación con MFM.
Página siguiente |