Post Actualizado en noviembre 22, 2023
Arquitectura de las Computadoras
La arquitectura de computadoras se refiere al diseño conceptual y estructural esencial de un sistema que constituye una computadora. En otras palabras, se trata de un modelo y descripción funcional que detalla los requisitos y las implementaciones de diseño de diversas partes de una computadora, centrándose especialmente en cómo la Unidad Central de Procesamiento (CPU) opera internamente y accede a las direcciones de memoria.
Conceptos iniciales.
Un computador es un sistema secuencial síncrono complejo que procesa información, esta se trata de información binaria, utilizando solamente los dígitos de valores lógicos ‘1’ y ‘0’. Estos valores lógicos binarios se corresponden con valores de tensión eléctrica, de manera que un ‘1’ lógico corresponde a un nivel alto a 5 voltios y un ‘0’ lógico corresponde a un nivel bajo de tensión cercano a 0 voltios; estos voltajes dependen de la tecnología que utilicen los dispositivos del computador.
Antecedentes.
A inicios de 1800, Charles Babbage, profesor de la Universidad de Cambridge, fue el primero en idear las variables involucradas en los sistemas mecánicos de la época y define los 3 elementos que intervienen: la máquina, el programa y el artífice ó programador.
Arquitectura de Von Neumman.
En 1945 aproximadamente, se construye una computadora basada en el uso de tecnología de bulbos denominada ENIAC (“Electronic Numerical Intergator and Calculator”), que pesaba cerca de 30,000 Kg, se instaló en una gran habitación y requirió de gran ventilación. Bien, esta gran máquina funcionaba a base de estar conectando y desconectando cables según la función que se quería que realizara, esta función de “recablear”, es sinónimo de programar pero era muy complicado el proceso.
En 1947 el matemático John Von Neumann ideó una solución que evitaría el “recablear” la ENIAC, la cual consistía en introducir las operaciones por medio de tarjetas perforadas, por lo que un programa previamente “almacenado” y en las tarjetas, se podía mantener latente en memoria para su uso. Este modelo permite que las instrucciones se encuentren residentes en una memoria listas para ser leídas y ejecutadas.
El método de Flynn.
En 1966 Michael Flynn propuso un mecanismo de clasificación de las computadoras. La taxonomía de Flynn es la manera clásica de organizar las computadoras, y aunque no cubre todas las posibles arquitecturas, proporciona una importante penetración en varias arquitecturas de computadoras. El método de Flynn se basa en el número de instrucciones y de la secuencia de datos que la computadora utiliza para procesar información. Puede haber secuencias de instrucciones sencillas o múltiples y secuencias de datos sencillas o múltiples. Esto da lugar a 4 tipos de computadoras, de las cuales solamente dos son aplicables a las computadoras paralelas.
Tipos de Arquitectura:
SISD (Single Instruction Single Data):
Este es el modelo tradicional de computación secuencial donde una unidad de procesamiento recibe una sola secuencia de instrucciones que operan en una secuencia de datos.
SIMD (Single Instruction Multiple Data):
A diferencia de SISD, en este caso se tienen múltiples procesadores que de manera sincronizada ejecutan la misma secuencia de instrucciones, pero en diferentes datos. El tipo de memoria que estos sistemas utilizan es distribuida.
MIMD (Multiple Instruction Multiple Data):
Este tipo de computadora es paralela al igual que las SIMD, la diferencia con estos sistemas es que MIMD es asíncrono. No tiene un reloj central. Cada procesador en un sistema MIMD puede ejecutar su propia secuencia de instrucciones y tener sus propios datos. Esta característica es la más general y poderosa de esta clasificación.
Cada procesador opera bajo el control de una secuencia de instrucciones, ejecutada por su propia unidad de control, es decir cada procesador es capaz de ejecutar su propio programa con diferentes datos. Esto significa que los procesadores operan asíncronamente, o en términos simples, pueden estar haciendo diferentes cosas en diferentes datos al mismo tiempo. Los sistemas
MIMD se clasifican en:
Sistemas de Memoria Compartida:
En este tipo de sistemas cada procesador tiene acceso a toda la memoria, es decir hay un espacio de direccionamiento compartido. Se tienen tiempos de acceso a memoria uniformes ya que todos los procesadores se encuentran igualmente comunicados con la memoria principal y las lecturas y escrituras de todos los procesadores tienen exactamente las mismas latencias; y además el acceso a memoria es por medio de un ducto común. En esta configuración, debe asegurarse que los procesadores no tengan acceso simultáneamente a regiones de memoria de una manera en la que pueda ocurrir algún error.
Sistemas de Memoria Distribuida:
Estos sistemas tienen su propia memoria local. Los procesadores pueden compartir información solamente enviando mensajes, es decir, si un procesador requiere los datos contenidos en la memoria de otro procesador, deberá enviar un mensaje solicitándolos. Esta comunicación se le conoce como Paso de Mensajes.
Sistemas de Memoria Compartida Distribuida:
Es un cluster o una partición de procesadores que tienen acceso a una memoria compartida común pero sin un canal compartido. Esto es, físicamente cada procesador posee su memoria local y se interconecta con otros procesadores por medio de un dispositivo de alta velocidad, y todos ven las memorias de cada uno como un espacio de direcciones globales. El acceso a la memoria de diferentes clusters se realiza bajo el esquema de Acceso a Memoria No Uniforme (NUMA), la cual toma menos tiempo en accesar a la memoria local de un procesador que accesar a memoria remota de otro procesador.
MISD (Multiple Instruction Single Data).
En este modelo, secuencias de instrucciones pasan a través de múltiples procesadores. Diferentes operaciones son realizadas en diversos procesadores. N procesadores, cada uno con su propia unidad de control comparten una memoria común.
Conclusión:
Para poder existir un desarrollo o una evolución requiere de la necesidad de una. Probablemente con el tiempo las computadoras pudieron seguir teniendo un funcionamiento similar al ENIAC o al EDVAC, pero mil veces más potente. Sin embargo, sus usos eran muy complejos y fue requerido un rediseño para mejorar este aspecto y con el tiempo los nuevos diseños también eran modificados hasta llegar a lo que hoy conocemos son las computadoras.
Siempre se puede aprender de la historia y de los procesos que se dieron para llegar a como son las cosas ahora. Gracias a ello podemos visionar un futuro muy avanzado, considerando los grandes pasos que da la tecnología, donde las nuevas computadoras quizá no sea nada que hayamos visto nunca.