Capítulo 5
La evolución de la arquitectura (1960-1970)
La llegada de los transistores y los circuitos integrados no sólo permitió construir computadoras más rápidas y confiables, sino que también influyó profundamente en su arquitectura interna. En la década 1960-1970 surgieron nuevos conceptos arquitectónicos que se alejaron de los modelos monolíticos de los primeros mainframes, abriendo el camino a sistemas más modulares, flexibles y adecuados para una gama más amplia de aplicaciones.
5.1 La aparición de minicomputadoras y nuevas arquitecturas
Como se mencionó en el capítulo anterior, uno de los desarrollos más significativos de este período fue el surgimiento de minicomputadoras . Estos sistemas, como el DEC PDP-8 (introducido en 1965) y el HP 2100 (introducido en 1966), se diferenciaban de los grandes mainframes en varias características arquitectónicas:
- Longitud de palabra: Las minicomputadoras a menudo usaban longitudes de palabra más cortas que las mainframes (por ejemplo, 12 o 16 bits versus 36 o 60 bits en las mainframes). Esta compensación redujo la complejidad y el costo del hardware y al mismo tiempo proporcionó una potencia informática significativa para muchas aplicaciones.
- Tamaño de la memoria: La cantidad de memoria principal direccionable de las minicomputadoras era generalmente más pequeña que la de las mainframes, pero aún era suficiente para muchas aplicaciones científicas, de control de procesos y de procesamiento de datos de tamaño mediano.
- Conjuntos de instrucciones: Los conjuntos de instrucciones de minicomputadoras eran a menudo más simples y compactos que los de las mainframes, centrándose en las operaciones más utilizadas.
- Arquitectura más modular: Las minicomputadoras a menudo se diseñaban con una arquitectura más modular, lo que permitía configurar el sistema con diferentes cantidades de memoria, periféricos e interfaces según las necesidades específicas del usuario.
- Mayor énfasis en la interactividad: A diferencia de las computadoras centrales, que a menudo operaban en modo por lotes, las minicomputadoras comenzaron a admitir modos más directos de interacción con el usuario, allanando el camino para sistemas de tiempo compartido y aplicaciones interactivas.
La arquitectura del DEC PDP-8, por ejemplo, era considerablemente más simple que la de los grandes mainframes IBM de la época. Utilizaba un único bus (Omnibus) para interconectar la CPU, la memoria y los periféricos, simplificando el diseño y el mantenimiento del sistema. Esta arquitectura más simplificada contribuyó al éxito del PDP-8 y su difusión en numerosos laboratorios y universidades.
5.2 Conceptos de memoria más avanzados
La evolución de la arquitectura informática en este período estuvo estrechamente vinculada a los avances en las tecnologías de memoria. la memoria con núcleo de ferrita se convirtió en la tecnología dominante de memoria principal (RAM) debido a su confiabilidad, velocidad de acceso relativamente rápida (en comparación con los tambores magnéticos) y no volatilidad (datos retenidos incluso en ausencia de energía eléctrica).
La organización de la memoria del núcleo de ferrita era típicamente tridimensional, con los núcleos dispuestos en una cuadrícula atravesada por cables de selección y lectura/escritura.
El direccionamiento de la memoria se realizó seleccionando las líneas de cable apropiadas para magnetizar o leer el estado de un núcleo en particular. La capacidad de la memoria principal de las minicomputadoras creció significativamente durante la década de 1960, de unos pocos kilobytes a decenas de kilobytes.
Además, los primeros conceptos de jerarquía de la memoria comenzaron a aparecer en este período. La idea era utilizar diferentes tipos de memoria con diferentes características de velocidad y costo para optimizar el rendimiento del sistema. Por ejemplo, algunos sistemas pueden incluir una pequeña cantidad de memoria muy rápida (aunque costosa), utilizada como una especie de "caché" para los datos e instrucciones más utilizados, en combinación con una mayor cantidad de memoria principal más lenta y económica. Esta forma temprana de jerarquía de memoria anticipó los sofisticados sistemas de almacenamiento en caché que se convertirían en una característica fundamental de las arquitecturas informáticas modernas.
5.3 Introducción de la interrupción
Una innovación arquitectónica clave introducida en este período fue el mecanismo de interrupción . En las primeras computadoras, la CPU tenía que sondear constantemente los dispositivos de entrada/salida para ver si necesitaban atención (por ejemplo, si un dispositivo de entrada tenía nuevos datos listos o si un dispositivo de salida había completado una operación). Este enfoque era ineficiente, ya que la CPU desperdiciaba valiosos ciclos de reloj esperando eventos.
La introducción de interrupciones permitió que los dispositivos externos señalaran la necesidad de atención directamente a la CPU.
Cuando un dispositivo generaba una interrupción, la CPU suspendía temporalmente la ejecución del programa actual, guardaba su estado (por ejemplo, el contenido de los registros y la dirección de la siguiente instrucción a ejecutar) y continuaba ejecutando una rutina especial de manejo de interrupciones asociada con ese dispositivo. Una vez completado el manejo de la interrupción, la CPU restauró el estado del programa interrumpido y reanudó su ejecución desde el punto en el que fue interrumpido.
La introducción de interrupciones mejoró significativamente la eficiencia de los sistemas informáticos, permitiendo a la CPU dedicar más tiempo a ejecutar programas y responder más rápidamente a eventos externos. Este mecanismo fue crucial para el desarrollo de sistemas operativos más sofisticados y para soportar interacciones más dinámicas con los usuarios y el mundo exterior.
5.4 La introducción de DMA (acceso directo a memoria)
Otra evolución arquitectónica importante fue la introducción de DMA (acceso directo a memoria) . Inicialmente, todas las transferencias de datos entre los dispositivos de entrada/salida y la memoria principal tenían que pasar por la CPU. Este enfoque podría sobrecargar la CPU, especialmente para grandes transferencias de datos, como lectura o escritura en disco o cinta magnética.
DMA introdujo un mecanismo que permitía a ciertos dispositivos periféricos acceder directamente a la memoria principal para transferir datos, sin la intervención continua de la CPU. Un controlador DMA se encargaba de gestionar la transferencia de datos, liberando a la CPU para realizar otras operaciones.
Una vez que se completó la transferencia, el controlador DMA podría generar una interrupción para notificar a la CPU que los datos estaban listos en la memoria o que la escritura se había completado.
La introducción de DMA mejoró enormemente el rendimiento del sistema, especialmente para operaciones de entrada/salida de alta velocidad, permitiendo transferir grandes cantidades de datos de manera más eficiente y liberando la CPU para otras tareas de procesamiento.
5.5 Arquitectura de 16 bits y más allá
Como se mencionó anteriormente, las minicomputadoras a menudo adoptaron arquitecturas con longitudes de palabras más cortas que las mainframes. Sin embargo, durante la década de 1960, hubo una tendencia hacia palabras más largas. La introducción de arquitecturas de 16 bits en minicomputadoras, como la DEC PDP-11 (introducida en 1970), representó un importante paso adelante. Una longitud de palabra más larga permitió abordar más memoria y manipular datos más grandes en una sola operación, mejorando el rendimiento general del sistema y allanando el camino para software más complejo.
Al mismo tiempo, el mundo de los mainframes también continuó evolucionando hacia arquitecturas con longitudes de palabras más largas, como los sistemas IBM System/360 que utilizaban palabras de 32 bits (y también formatos de 64 bits para números de coma flotante), ofreciendo mayor potencia informática y capacidad de direccionamiento.
5.6 La influencia de los lenguajes de programación en la arquitectura
Es importante señalar que la evolución de la arquitectura informática no se produjo de forma aislada, sino que a menudo estuvo influenciada por las necesidades de los lenguajes de programación de alto nivel que estaban surgiendo. Lenguajes como FORTRAN y COBOL, con sus demandas específicas sobre la manipulación de números, matrices, cadenas y estructuras de datos, empujaron a los diseñadores arquitectónicos a incluir conjuntos de instrucciones y mecanismos de administración de memoria que pudieran soportar de manera eficiente tales operaciones. Esta interacción entre las necesidades del software y las capacidades del hardware fue un impulsor fundamental de la evolución de la informática.
La década 1960-1970 fue un período crucial en la evolución de la arquitectura informática. La aparición de minicomputadoras con sus arquitecturas más modulares e interactivas, la introducción de conceptos de memoria más avanzados, como la jerarquía de memoria, y la implementación de mecanismos fundamentales como las interrupciones y DMA representaron pasos significativos hacia sistemas informáticos más potentes, flexibles y eficientes. La tendencia hacia palabras más largas y la creciente influencia de los lenguajes de programación en la arquitectura prepararon el escenario para las innovaciones que caracterizarían las siguientes décadas, culminando con las revoluciones de los microprocesadores y las computadoras personales.