Tradicionalmente, los mainframes han tenido una gran variedad de periféricos, según la tecnología de la época. Así pues, en los albores de la época, lo más común eran los dispositivos electro-mecánicos, utilizando tarjetas de cartón como soporte para el almacenamiento de la información.
Este tipo de tarjetas se perforaban y de ese modo, cada perforación marcaba un bit, que era 0 o 1 en función de si esta zona de la tarjeta se perforaba o no. Cada tarjeta representaba una línea de código, por lo que un programa tenía una cantidad importante de tarjetas que debían ir en secuencia, para cargar el programa en memoria. Luego, a petición del programa, se cargaban otra secuencia de tarjetas que representaban los datos que ese programa iba a utilizar.
¿Sabías por que el modo texto de las pantallas y las impresoras matriciales normales tipo A4, tienen 80 columnas? Porque esos eran los caracteres que podía llevar una tarjeta perforada. De hecho, llevaba 9 filas que marcaban 8 bits + un bit de paridad, y luego, 80 columnas. ¿Y sabéis por que una tarjeta perforada tenía 80 columnas? Porque la tarjeta perforada de ordenador se basó en el tipo de tarjetas perforadas que llevaban las máquinas de tejer de aquel entonces, que utilizaban 80 hilos para hacer motivos decorativos y encajes en las telas.
Pero al grano: Las tarjetas se introducían en una máquina lectora (READER) que era la que estaba conectada al procesador mediante unos cables de bus. Cuando la totalidad de las tarjetas se leían, se enviaba una señal al procesador para avisar de que el programa ya había sido leído y que por lo tanto podía comenzar su ejecución.
El procesador, por lo tanto, adquiría el control y ejecutaba el programa, pidiendo que se introdujeran las tarjetas perforadas de los datos a tratar y su resultado lo dejaba o en una impresora, o en una maquina perforadora de tarjetas (PUNCH) con los datos modificados. Hasta que el programa no terminaba, no se podía hacer nada mas que aguantar el estrepitoso ruido de las maquinas lectoras y perforadoras.
De ahí viene el sistema de proceso por lotes o BATCH, es decir, la ejecución repetitiva de programas que tratan una gran cantidad de datos, en este caso miles y miles de tarjetas. Cabe decir que los procesos tardaban muchísimo dada la complejidad mecánica de las maquinas de tarjetas perforadas, y sobre todo si el volumen de datos era inmenso, pero si ese tiempo se comparaba con el trabajo manual de la época, era todo un record.
Fue, con la llegada de la cinta magnética en 1953 por parte e IBM, cuando el panorama informático dio un salto de gigante en la rapidez y ejecución. Se basaba en una tira de plástico a la que se le había pintado un recubrimiento ferruginoso, de modo que si se imantaba cierta parte con una polaridad, se quedaba imantada para siempre. Os podréis entonces imaginar como se diferenciaba un 1 de un 0 con este método, ¿no?.
Los carretes de cinta magnética empezaron a sustituir poco a poco a las maquinas de lectura/perforación de tarjetas. La estructura era bien simple: en una cinta de media pulgada de ancho, cabían en fila india a lo ancho, 9 bits (8 bits del carácter y el bit de paridad, como con las tarjetas perforadas).
Y a lo largo, en una pulgada podían entrar, según la densidad, 700, 1600, 3000 o 6250 bits. Vamos, que en 2,5 centímetros, entraba lo equivalente a 78 tarjetas perforadas puestas en fila a lo largo. Como esos carretes podían guardar 3600 pies de cinta enrollada, pues te puedes imaginar el salto cualitativo que producía eso, además de que la velocidad de proceso se multiplico por 100 ya que la cinta magnética era muy rápida, a razón de 600 KB/seg –las de alta gama llegaban a 1 MB/seg, un record en aquella época-.
En ese trajín de añadir a todo una capa magnética, en 1957, un ingeniero de IBM se le ocurrió que si forraba unos platos de sustrato magnético, los ensartaba en un eje central y añadía un cabezal que se movía desde el exterior al interior del plato, podría leer cualquier información almacenada en cualquier lugar de esos platos en vez de tener que esperar a que una cinta magnética bobinara el carrete hasta llegar a ese dato concreto.
Se inventó pues el primer disco magnético de la historia, el RAMAC 650, por lo que los programas y datos se podían almacenar en un dispositivo que permitía el acceso directo y por lo tanto, mucho mas rápido que la cinta magnética, cuyo acceso como ya he dicho era secuencial y había que recorrer toda la cinta hasta recuperar el dato. Estos discos podían almacenar hasta 5 MB de datos, que para 1957, era una cantidad ingente de información.
Pero no fue el fin de las unidades de cinta. La razón era bien sencilla: Adquirir una unidad de disco costaba como 50 unidades de cinta, y por si fuera poco, cada carrete de cinta podía almacenar mas información que el propio disco, y encima cada carrete virgen costaba dos duros.
Por lo tanto, se creó el modelo de datos por niveles: Los datos de mayor acceso se almacenaban en disco, ese preciado aparato, y los datos que no se utilizaban tan a menudo, se guardaban en cinta (por ejemplo, históricos, dumps, logs, etc): Por lo tanto, lejos de extinguirse, fueron evolucionando, logrando mayor rapidez y densidades, hasta que en 1980 se introdujo por primera vez el sistema de cartuchos. La cinta estaba dentro de un cartucho de plástico, que se introducía en un cargador automático, con lo que el tiempo de montaje de una cinta de carrete se reducía a la mitad, y eso sin contar con los fallos de lectura que solían dar las tradicionales cintas de carrete y el mantenimiento y limpieza que debían tener.
Los primeros cartuchos (3480) podían almacenar 200 MB distribuidos en 18 pistas (no 9 con las cintas en carrete) dentro de un cartucho que ocupaba la 4ª parte que un carrete de cinta de 3600 pies. Además, estas unidades por primera vez incorporaron una lógica hardware similar al algoritmo ZIP llamada IDRC (Improved Data Recording Capability) que duplicaba o triplicaba la capacidad de almacenamiento dependiendo de los datos que almacenaba (y os puedo asegurar que el juego de caracteres EBCDIC se comprime que da gusto, mucho más incluso que el ASCII).
La evolución de 3480 fue el 3490, que podía almacenar 400 MB (800 con IDRC) y disponía de 36 pistas, 18 en un sentido y 18 en sentido contrario. Esto hacía que los cartuchos no se tendrían que rebobinar, ya que cuando llegaba al fin de la bobina y había escrito 18 pistas, el cabezal se movía 0,5 milímetros y seguía escribiendo 18 pistas en sentido contrario hasta que se rebobinaba el cartucho. Este sistema se perfeccionó con cartuchos de mayor densidad (800 MB, 1,2 GB) y ya en los 90, con 128 pistas, y 20 GB de capacidad nativa, las unidades 3590.
Actualmente las unidades de cinta de mainframe son de cartucho de 300 GB de capacidad, y en estos momentos se están comercializando unidades de 600 GB y 1,2 TB por cartucho, vamos, una sobrada, ya que cada cartucho de estos no llega a costar 60 euros, es con mucho el coste por gigabyte mas barato de la historia de la informática.
Pero volvamos a los años 60: aunque luego podías utilizar la cinta o los discos para grabar los datos, seguía haciendo falta algo para introducir programas la primera vez, por lo que seguía haciendo falta una tropa de gente que perforaba a mano las tarjetas. Hasta que apareció la consola.
La consola fue en sus principios, un teletipo, y mientras escribías en un teclado de maquina de escribir, te iba imprimiendo en papel lo que ibas haciendo (algo similar a las maquinas de escribir) y a la vez, se iba almacenando en memoria. Años mas tarde, en los 70, con la tecnología CRT, se inventó el terminal y en el se pudo visualizar lo que se escribía en vez de gastar tanto papel, y se creo la capacidad de edición y demás utilidades que facilitaron enormemente el trabajo de los programadores.
A partir de ese momento, surgieron numerosos dispositivos periféricos como unidades de comunicaciones de todo tipo, como modems, subsistemas de telecomunicación, terminales, impresoras, cintas, discos, lectores ópticos, robots, etc.
Estructura interna e interconexión de un mainframe
Un mainframe es grande. Es MUY grande, si lo comparamos con un PC, y visualmente aún hoy ocupan varios metros cuadrados con forma de armarios roperos puestos seguidos uno al lado del otro y de color negro. En el caso del mueble principal (de ahí viene lo de “main frame”) esta compuesto por varios módulos interconectados entre sí, formando un CPC (Central Processor Complex):
- MCM: Multi-Chip-Module: Viene a ser la CPU de un PC, y tiene su memoria cache interna, como en los PCs, solo que en este caso tiene muchas CPUs, de ahí lo de Multi-Chip.
- Main Storage: O lo que es lo mismo, la RAM de la máquina.
- Channel Subsystem: Es un modulo con varias CPUs que se encargan de gestionar el sistema de I/O entre el procesador y los dispositivos.
Este modulo esta compuesto también de varias tarjetas de I/O, que pueden ser conectores de cable tradicional paralelo con velocidades de 4,5 MB/seg, o la evolución de dichos conectores en forma de fibra óptica, que pueden variar entre los 20 MB/seg (ESCON) y los 4 Gb/Seg (FICON).
A estos canales se les conectan todos y cada uno de los dispositivos periféricos. También existen tarjetas de comunicaciones y de red, pero son evoluciones de la tecnología (en los años 80, una "tarjeta" de red Ethernet era como un frigorífico de grande, aunque el conector era RJ-45 o BNC).
El resto de armarios que ocupan el Centro de Proceso de datos son los periféricos. Estos periféricos, solían tener por lo menos 2 armarios: uno de ellos era la Unidad de Control y otro, el dispositivo periférico en sí (por ejemplo, la unidad de control de discos 3880 y las unidades de disco 3380).
Actualmente y por la disminución de los componentes electrónicos, es habitual que la unidad de control y el periférico estén dentro del mismo armario. La unidad de control es el sistema que está conectado directamente ente el mainframe y el dispositivo, y tiene su propio Sistema Operativo en forma de firmware o microcódigo que le da una cierta "inteligencia" a la hora de interpretar las ordenes que recibe del procesador central.
Un ejemplo puede ser el del uso eficiente de los discos: Si el mainframe le pide un dato concreto a un disco, la unidad de control recibe la instrucción y busca la manera mas fácil de dárselo, por ejemplo evaluando los caminos de fibra que tiene y decidiendo por que camino llevarlo, guardando ese dato y los siguientes en su cache, por si el mainframe pidiera el siguiente dato, etc.
Estas unidades de control también hacen las veces de buffer de datos y proporcionan un eficiente sistema de control de errores, además de que en caso de fallo de hardware, estas unidades se las arreglan para evitar la perdida de datos, porque tienen en todo momento los caminos duplicados para lograr redundancia.
Sin más, en otro tocho explicaré la evolución de los Sistemas Operativos de estas máquinas, y como el ámbito PC ha copiado toda la tecnología.
Comentarios