- 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 | Por sensado mediante la misma cabeza que | Disco rígido, disquete, Zip, Jazz, | |
Por modelado de hoyos formando una pista en | Sensado por rayo láser de la longitud de los hoyos | CD-ROM (sólo lectura) | DVD-ROM (sólo lectura) |
Por efecto térmico de un rayo láser se modifica la transparencia | Sensado por rayo láser de la longitud de | CD-R (Sólo lectura) | |
Por grabación magnética auxiliada | Sensado de campos magnéticos en las | MO (lectura y escritura) | |
Por efecto térmico de un rayo | Sensado por rayo láser del estado | CD-RW ó E (para lectura y | DVD-RAM, |
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 |