Copy Link
Add to Bookmark
Report

Almacenamiento magnético

Fulcrum Magazine #4
17 de Junio de 1996

eZine's profile picture
Published in 
Fulcrum Magazine
 · 1 Oct 2022

Editorial

Fue como un engaño, como una traición, como la vez que esa chica te dijo que no; la desilusión, una resignación, si, eso es lo que sentí al ver la ignorancia de los 'profesionales', los que 'viven de esto', es que de repente me di cuenta por qué anda tan mal la educación, que falta de profesionalismo, de desconocimiento que tienen las personas a las que le confiamos la tarea de educarnos. Por eso más que nunca valoro esas charlas remotas, el valor de la gente que se junta en este medio, con la gran decisión de mejorar, de saber algo más que ayer, de conocer, porque ese es el verdadero poder, el que no se que queda con lo que dicen los libros, los que investigan, los que creen si mismo, por eso quiero contribuir con mi grano de arena, para que de una vez por todo podamos erradicar este cáncer que vive entre nosotros.

Espero que les sean útiles las siguientes líneas, que descubran algo más, y a los que no, al resto, las puertas están abiertas para que juntos hagamos un sitio en el que puedan vivir estos valores.

by
[Biggs]

Fundamentos teóricos: Almacenamiento magnético

A diario almacenamos incalculables cantidades de información en diskettes o en los discos rígidos desconociendo por completo el mecanismo mediante el cual confiamos nuestros valiosos bits a un soporte magnético. Básicamente hay tres puntos a tocar, la tarjeta controladora que es la encargada de gestionar el flujo de datos; el disco rígido que es el que los almacena propiamente dicho y por último la organización lógica que se le da a dicha información. De más está decir entonces la importancia de comprender el funcionamiento de estos y su interacción.

GO FOR 'PLUS ULTRA' . . . . . .

TARJETA CONTROLADORA DE DISCOS

La tarjeta controladora suele tener dos conectores de borde. Por un lado se insertan a la placa base de la CPU y por otro al mecanismo de accionamiento de los discos (disquetera o disco duro).

El conector más largo es el que va colocado en el correspondiente slot de expansión en la tarjeta base. A través de él, la CPU le dice lo que tiene que hacer la unidad de disco y recibe información de lo que realmente ocurre en ella en cada instante.

El bus de expansión de la tarjeta base manda a la placa controladora una serie de líneas de información y control, tales como: un bus de datos de 8 bytes (DBO - DB7); un bus de direcciones de 8 ó 16 bytes, dependiendo del microprocesador que lleve incorporado el PC (ADO - AD7 ó ADO - AD15); una línea de lectura (RD); una línea de escritura (RD); y dos líneas de interrupción (reset y IRQ). Por otro lado, tenemos el conector que une la tarjeta controladora con las unidades de discos, éstas reciben las ordenes que manda la placa base y la ejecuta, devolviendo la información al circuito de control que lo procesará y mandará las señales correspondientes a la CPU.

Las líneas de información y control que se intercambian entre las dos unidades son las siguientes: lectura de datos, selección de unidad de disco, selección de cara, selección de dirección, escritura de datos, autorización de escritura, motor conectado, protección contra escritura, pista 00 e índice. Para ver más claramente lo expuesto arriba veamos que señal tiene cada pin del conector de 34 vías que enlaza la tarjeta controladora con la unidad de disco flexible en un INVES PC compatible:

…---À--------------------------À---À-------------------------ª 
|PIN| Señal |PIN| Señal |
Ã---Œ--------------------------Œ---Œ-------------------------π
| 2 |Escritura reducida | 18|Selección de dirección |
| 4 |Reservada | 20|Paso |
| 6 |Selección unidad de disco | 22|Escritura de datos |
| |3 | 24|Autorización de escritura|
| 8 |˛ndice | 26|Pista 0 |
| 10|Selección unidad de disco | 28|Protección contra lectura|
| |0 | 30|Lectura de datos |
| 12|Selección unidad de disco | 32|Selección de cara 1 |
| |1 | 34|Cambio de disquete |
| 14|Selección unidad de disco | | |
| |2 | | |
| 16|Motor ON | | |
»--- -------------------------- --- -------------------------º

Todos los pines impares son masa y los pines del 35 al 40 están reservados

En pocas palabras, podríamos explicarlo de la siguiente manera: es el circuito de control colocado entre el ordenador y el mecanismo de accionamiento que recibe temporalmente las ordenes del PC y las señales de datos, temporizándolas de forma adecuada para que la disquetera opere sin problemas. Cuando hay un gran flujo de datos del disco al ordenador, la tarjeta controladora ejecuta una función de control de tiempos, similar a la del PC. De esta forma, modula la forma y tiempo de transmisión-recepción de datos que el ordenador requiere, ayudando al correcto funcionamiento de ambos dispositivos. Todas estas operaciones se realizan a través de un microprocesador que es el alma de la tarjeta controladora. Veamos detenidamente como se realiza lo dicho anteriormente.

EL interfaz controlador utiliza el acceso directo a memoria (DMA) para la transferencia de información entre el sistema y las unidades de discos.

Cuando se introduce un floppy en una disquetera, la placa base le manda una cierta información a nuestra tarjeta de control, por medio de sus buses de datos y de direcciones, de la forma siguiente:

Primero, le dice a la unidad que está seleccionada para poder funcionar con ella.

Segundo, le da instrucciones para ver si efectivamente hemos introducido el disquete en la unidad correcta. Para ello, la tarjeta controladora mandará una señal a la disquetera para que ponga en marcha el motor de acciona miento de eje, por medio de la línea MOTOR ON, éste se pondrá a girar y, como las cabezas de lectura-escritura están en contacto con el disco, el circuito de control detectará que es la unidad correcta y que el disco, introducido en ella, está dispuesto para ser leído o escrito. Esto último se realiza gracias a la línea de detección de disco.

La transmisión entre circuito de control y unidad de disco sucede así: primero, carga la cabeza de lectura-escritura, a continuación detecta la pista 0 por su línea correspondiente. Una vez que esto ha sucedido, manda una señal para que aquella se coloque en la pista y sector en la que está almacenada la información a leer, por medio de la línea de determinación de la posición de la cabeza. Cuando está en esa posición, manda la señal de lectura de las caras 0 y 1, a las cabezas de lectura e scritura.

Las cabezas leerán la información en el disco, y la disquetera enviará todos los datos a través de la línea de lectura de datos a la tarjeta controladora.

El proceso de escritura sobre los disquetes, es algo análogo a lo explicado anteriormente, la diferencia estriba en que antes de realizar la operación, detecta si el disco está protegido por su lengÅeta contra la escritura, por medio de la señal de protección contra escritura; si el PC ve que la abertura para este fin está desprotegida, nos indicará que está listo para esa misión. Esta señal se envía desde la disquetera a la tarjeta controladora. Por otro lado, existe la línea de autorización de escritura que va del circuito de control a la unidad de disco, que es la que pregunta si está listo el disquete para recibir la información; una vez que éste le da respuesta afirmativa por la línea antes descrita, el PC nos ofrecerá mensajes tales como: "la información contenida en el disco puede ser borrada, quiere seguir con el proceso". Si vamos a escribir archivos con el mismo nombre pero con alguna modificación, nos dirá que ese archivo ya existe y si queremos grabar encima.

Pero todas estas operaciones se realizan gracias al alma del circuito de control, su microprocesador.

El circuito de control consta de varios integrados, junto con un microprocesador. El más habitual en todas las tarjetas es el PD765, que se encarga del control, supervisión y gestión de la transferencia de datos desde/hacia los discos. El resto de los circuitos integrados realizan la gestión del flujo de datos y las partes mecánicas de las disqueteras.

Los integrados que conectan la CPU con el microprocesador son tres, que básicamente son: un decodificador de direcciones entrada/salida, como puede ser un 74323; un excitador del bus de datos, que es bidireccional, por ejemplo un 74245; y, por último, un gestionador del circuito de control, como el 8288.

Existen otros tres integrados característicos que enlazan la tarjeta controladora con las disqueteras: un circuito excitador, como el 9421; un controlador de datos que hace de circuito receptor, por ejemplo el 16642; y, un integrado de control, tipo VFO, que marcará los tiempos de lectura de datos por la unidad central, para que no se produzca ningún tipo de solape entre ellos.

Pero el componente que controla todos estos circuitos integrados es el microprocesador PD765. Las características principales de este micro son:

  • Es programable mediante software,
  • El Formato de pista es compatible con cualquier PC.
  • Puede soportar hasta cuatro unidades de disquete.
  • Trabaja con códigos de simple (FM) y doble (MFM) den sidad.
  • Puede trabajar controlado directamente por el micro de la CPU (8088, 8086, etc.) o bien por medio del con trola

Hasta ahora, hemos estado hablando de una tarjeta controladora típica para discos flexibles, pero en la actualidad y como norma habitual, los circuitos controladores tiene una doble utilidad, discos flexibles y discos duros; incluso, en algunos casos, el control de los disquetes, viene, por medio de un chip sencillo, incluido en la tarjeta base de la CPU, con lo cual solo controlaremos la unidad de disco duro. La diferencia principal entre los antiguos circuitos de control convencionales y los modernos estriba en el tipo de comunicación de los registros. En los antiguos se utiliza el sistema MFM/ST-506 que usa 17 sectores por pista, y en las nuevas tarjetas el sistema ESDI que tiene típicamente 34 ' sectores por pista cuando actúa en el modo de sectorización "hard".

Analizaremos uno de los controladores de discos flexibles y duros más utilizado en la actualidad, para entender en pocas palabras su ventajas sobre los antiguos. Pondremos como ejemplo el WD 1007A/WA2 fabricado por Western Digital.

Este controlador tiene una ROM-BIOS opcional que la provee de una tabla de parámetros de control, una rutina de formateo a bajo nivel y una rutina de análisis de superficie, entre las características principales.

Veamos como se puede utilizar la BIOS de nuestro PC para compararlo posteriormente con la ROM-BIOS de la tarjeta controladora. Para determinar el modo de examinar la tabla de parámetros del sistema de los controladores ESDI, usaremos la utilidad DEBUG del sistema operativo MSDOS. Aunque algunos sistemas localizan los parámetros de las unidades de discos en otras direcciones, las más usuales en un AT son F000:E401. El comando a introducir después de DEBUG> es DFOOO:E401. Esto nos mostrará en pantalla las 8 líneas de datos de la ROM-BIOS. La primera línea corresponde a la disquetera tipo 1, la segunda a la tipo 2 y así sucesivamente hasta ocho. Si volvemos a pulsar "d", aparecerán otras ocho líneas de datos, en otros tantos tipos de disqueteras, y así hasta que se muestre toda la información de éstas. Cada tabla de parámetros tiene 16 bytes de datos, que aparecerán en hexadecimal, siendo los primeros los bytes menos significativos. Los 16 bytes que aparecen son los siguientes:

Byte 1 y 2:     número de cilindros 
Byte 3: número de cabezas
Byte 4 y 5: no usados
Byte 6 y 7: escritura del cilindro recompensación
Byte 8: no usado
Byte 9: byte de control
Byte 10,11 y 12:no usados
Byte 13 y 14: zona "landing "
Byte 15: sectores por pista
Byte 16: no usado

La ROM-BIOS opcional que tiene el 1007A está provista de funciones de ayuda para adecuar el controlador a la exigencias de un PC/AT. Las direcciones de la BIOS pueden residir en uno de los 3 lugares de memoria, dependiendo de la tarjeta utilizada, en nuestro caso está localizado en C8000 a C9FFF. Las características que diferencian a una BIOS de otra son: Help (Ayuda); rutina de formateo a nivel bajo; listado automático de defectos; rutina de verificación de disco; rutina de análisis de superficie; activación y desactivación de disqueteras. Estas y otras cualidades distinguen el sistema ST-502 del ESDl.

EL DISCO DURO

Los discos están compuestos por los siguientes elementos:

  • Soporte: están fabricados con una aleación de aluminio recubiertos por una capa magnética. De esta forma se obtienen coeficientes de rozamiento muy bajos, haciendo que el tiempo de acceso sea menor.
  • Motor de eje: Imprime al disco una velocidad de 3600 rpm. gracias a un generador de corriente continua que lleva incorporado permitiendo una alta precisión en la velocidad.
    Cabezal
    : Se compone de varios cabezales unidos entre sí, 'volando' por sobre la superficie del disco a tan solo unos micrómetros. El campo magnético es suficiente para realizar las operaciones de I/O pero a velocidades muy superiores a las de las floppy ya que el rozamiento es prácticamente nulo.
  • Motor de pasos: Mueve las cabezas sobre los discos en sentido radial posicionándolas sobre el sector apropiado.
  • Circuito controlador: Se encarga de controlar las velocidades de giro y la posición de las cabezas.

La densidad de info que se almacena en un rígido es del orden de 1000 tpi (tracks per inch) y se alcanzan densidades de flujo de 1500 fci (flux changes per inch). Para lograr estos resultados se han llevado al máximo todos los factores. Por esto, la zona donde se ubican los discos se encierra en una carcaza llamada burbuja dentro de la cual hay aire ultrafiltrado. Esta burbuja no es hermética sino que tiene una ventana con un filtro especial para evitar que el aire del interior se contamine. La burbuja necesita tener aire por tres causas: para que las cabezas planeen (el aire que generan los discos al girar pega en las cabezas levantándolas); para evitar que la burbuja deba soportar la presión atmosférica y para contribuir a la disipación del calor que se genera dentro de ella.

ORGANIZACION LOGICA (por parte del DOS y del WD1007A)

El DOS organiza los datos dentro del disco al dar formatearlo ya que aquí se crean las 4 áreas lógicas en que divide al diskette. Para mostrar la forma en que realiza la organización nos valdremos del siguiente ejemplo ....

Cuando compramos nuestra PC, una de las primeras cosas que hicimos con ella fue dar formato a un diskette. En el caso típico de una XT ( por ejemplo ) al darle formato la máquina informa que tenemos 362496 bytes libres.

El fabricante nos indica en la etiqueta del diskette que este posee 360 KB. Si hacemos la cuenta 360 Kb son 368640 bytes. Entonces es cuando surge la diferencia contra los 362496. Qué pasó con los 6144 bytes restantes?

La acción de dar formato organiza todo el sistema del almacenamiento de datos en nuestro diskette. Si no formateáramos un diskette cuando grabáramos un archivo en él se guardaría en cualquier parte. Cuando queramos ver que contiene ese diskette no sabríamos que información contiene y si lográsemos cargar nuestro archivo no sabría donde buscarlo, donde posicionar el cabezal, desde donde hasta donde leer información, etc. Está visto que es imprescindible organizar la estructura interna del diskette.

Formateo físico: A fin descentralizar el diskette se crean pequeñas zonas dentro de este ( clusters ) haciendo ( "dibujando" ) una matriz sobre el diskette. Para ello se crean 40 tracks ( en el caso de una XT pues varía según la capacidad y la densidad de almacenamiento) que no son ni más ni menos que 40 aros concéntricos al diskette y a su vez 9 sectores ( para una XT pues también varía ) que dividen al diskette formando así la matriz de , en este caso , 720 clusters ( tener en cuenta que se usan los dos lados del diskette ) de 512 bytes cada uno.

Esto es la acción de formateo físico.

Formateo lógico: Si bien ya hemos "dibujado" nuestro diskette, ahora debemos organizar de forma lógica el accionar de este para un correcto funcionamiento.
Cuando arrancamos nuestra máquina esta busca en el diskette ( si es que no tenemos un DOS en el disco rígido o no poseemos uno ) los archivos de arranque. Es obvio que no puede buscar en todo el diskette una secuencia lógica como es un programa.
Por eso es que se reserva un espacio en el diskette ( track 0 sector 0 ) para almacenar allí dichos archivos y que la máquina se remita a la búsqueda de estos archivos en esta posición solamente. Esta región es llamada área de boteo.
También se crea una región para almacenar una "lista" de los archivos que contenga el diskette. De esta manera podemos refrescar nuestra memoria y saber que archivos hay en el diskette. Esta área es llamada directorio.

Pero una vez que arranquemos nuestra PC ( gracias al área de boteo ) y que seleccionemos el archivo a cargar ( directorio ) la PC debe saber en qué clusters debe leer , desde y hasta donde. Toda esta información le es proporcionada por la FAT ( file allocated table ).
Finalmente la cuarta área del diskette es el área del usuario que es el espacio disponible para guardar nuestros archivos. Esta es la manera en que física y lógicamente divide al diskette, en tracks y sectores - que forman los clusters - ( físico ) y las cuatro áreas lógicas en que divide al diskette ( boteo, directorio, FAT y área del usuario )
Si tenemos esto en cuenta y sabemos que el sector de boteo ocupa 512 bytes ( un cluster ), que la FAT ocupa 2048 bytes ( dos clusters pero por seguridad se la graba dos veces ) y que el directorio ocupa siete sectores ( 3548 bytes ), vemos claramente que la suma de estos tres parámetros nos da justamente la diferencia de 6144 bytes que es la que nos faltaba.
De esta manera vemos en forma clara por qué no disponemos de la totalidad de los 360 KB

ORGANIZACION DEL WD1007A

Si consideramos a los bytes como entes aislados, se denomina sector a la estructura de información mínima en que se los agrupa. Si se quiere leer un byte determinado se deberán leer todos los bytes del sector en el que se encuentre ese byte. Los sectores están compuestos por 512 bytes en el caso típico de un diskette. Estos poseen a demás de los datos una identificación y un sicronismo, así también como de un CRC que le son provistos para corregir los errores de I/O. Todo este esquema el cual esta regido por el WD1007A hace que el espacio neto de datos sea aproximadamente un 30% inferior a la capacidad del disco.

Es por eso que, por ejemplo, los diskettes de 3´" dicen poseer 2.0 MB de capacidad y en realidad sabemos que tenemos disponibles 1.44 MB, que por lo hablado antes ni esta cantidad esta disponible ya que por la organización lógica del DOS nos quedan unos bytes menos que esto. Podemos decir que el trabajo que realiza el WD1007A sobre los sectores son funciones clásicas de los niveles 1 y 2 del modelo de 7 capas de la ISO, mientras que la organización del DOS son tareas de los niveles 3 y 4.

Entrando un poco en detalles sobre la organización que impone el WD1007A que es la parte mas oscura de esto, vemos que cada sector esta compuesto de un campo de identificación, los que están separados por 'gaps' (espaciadores). En el comienzo de cada campo existe un campo llamado 'ID DATA' que identifica univocamente al sector de todos los restantes del disco pues en sus 7 bytes de longitud posee toda la información necesaria para un acceso secuencial.

Analizando ahora en mayor detalle la organización de los datos vemos los siguientes campos:

  1. Es el preseparador del índice separa al ultimo sector del IAM y previene que este ultimo se destruya por una escritura en el ultimo sector de la pista.
  2. IAM: Es un byte del tipo marca de dirección y se colo ca siempre al comienzo de cada pista.
  3. El post-separador de índice que esta formado siempre por 26 bytes de valor FF y 6 bytes de sincronismo. Esta colocado entre el IAM y el ID del primer sector de la pis ta. Su función es prevenir que se destruya el ID por una escritura del ultimo sector físico de la pista.
  4. El campo de identificación (ID) se compone de 7 bytes distribuidos de la siguiente forma:
    • Marca de dirección del campo de identificación (IDAM): es un byte de marca de dirección y tiene el valor de C7 para el byte de reloj y FE para el byte de datos
    • Indicación de pista: este byte indica la pista so bre la que se halla la cabeza.
    • Indicación de lado: este byte vale cero para los diskettes de un solo lado y para el lado cero de los diskettes de doble cara.
    • Indicación de sector.
    • Indicación de cantidad de bytes que contiene un sector.
    • CRC: Son 2 bytes que se originan por el controlador al hacer la operación de escritura. Esta calculado por el siguiente polinomio: X^16+X^12+X^5+1.

  5. Separador post-ID: Esta compuesto por 11 bytes de FF y 6 bytes de sincronismo. Protege el campo de datos por variaciones en la velocidad del motor evitando la sobrees critura.
  6. El campo de datos esta subdividido en las siguientes áreas:
    • DAM: Es un byte de marca de dirección. Este adopta el valor de FB si contiene datos propiamente dichos o el de F8 si tiene datos borrados.
    • 512 bytes - típicamente hablando - de datos.
    • CRC: este es calculado de igual forma que se lo hace en el campo ID.

  7. Separador post-datos: La función que cumple es separar el área de datos del próximo ID. Esta para prevenir la sobreescritura por variaciones en la velocidad del motor de rotación de la unidad de discos.
  8. El separador final rellena el resto de la pista hasta la aparición del pulso de índice y su valor es variable.

⁄------¬---¬------¬--¬------¬----¬------¬------ø 
|presep|IAM|postse|ID|postdi|DATA|postda|sepfin|
¿--¬---¡---¡------¡¬-¡------¡--¬-¡------¡------Ÿ
| | |
⁄--¡-----ø | |
| FF-00 | | ¿----------ø
¿--------Ÿ | |
⁄----¬-----¬-----¬-¡--¬----¬----¬----ø |
|IDAM|PISTA|CABZ.|SECT|DATA|CRC1|CRC2| |
¿----¡-----¡-----¡----¡----¡----¡----Ÿ |
⁄-----¬-----¬--¡--¬-----ø
| DAM | DATA| CRC1| CRC2|
¿-----¡-----¡-----¡-----Ÿ

Los datos se almacenan en unidades de almacenamiento compuestas por uno o mas sectores denominadas clusters -sectores especiales-. En un diskette la relación es uno a uno, es decir que un sector es un cluster pero en los discos rígidos se agrupan varios sectores por clusters.


[Biggs]

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT