Cuando hablamos de arquitectura de ordenadores, nos referimos al conjunto de todos los bloques (uno o varios componentes) y las comunicaciones entre estos, que hacen que el ordenador funcione de forma coordinada, sirviendo a un propósito común. Cada bloque cumple una o varias tareas, cuya contribución ordenada y coordinada hace que el equipo cumpla con la función para la que fue diseñado.

¿Por qué arquitecturas?

En general, podemos emplear el término arquitectura para todo tipo de máquinas, refiriéndonos a los bloques que la forman y como funcionan de manera coordinada entre ellos. Por ejemplo, si hablamos de una impresora, simplificándolo mucho, tendríamos:

  • Una bandeja para colocar el papel.
  • Unos registros o memoria para guardar los datos a imprimir.
  • Un sistema de impresión para trasladar los datos al papel.
  • Buses que conecten todos los componentes y posibiliten la comunicación entre ellos.
  • Y un controlador que coordine el funcionamiento del conjunto.

Cabe entonces preguntarse porque definimos y trabajamos con arquitecturas, alguna ventaja deberá de tener. Pues si, ciertamente tiene bastantes ventajas entre las que destacaría:

  • El trabajar con bloques con funciones perfectamente definidas ayuda a simplificar los problemas y mejorar el rendimiento de cada bloque. Ayuda a trocear el sistema en partes más pequeñas y de más fácil manejo, que podemos tratar de forma independiente, abstrayéndonos del funcionamiento del resto de bloques.
  • Podemos cambiar partes del sistema sin tocar ni afectar al resto.
  • Resulta mucho más sencillo aislar los problemas y actuar sobre ellos.
  • Se desarrolla una mayor especialización en los bloques y es más rápido y sencillo desarrollar mejoras en estos para mejorar el rendimiento completo del sistema.

Arquitectura de un ordenador

Vale, ¿pero como aplicamos lo visto hasta ahora a un ordenador?

Si recordamos el primer post de esta serie, en el que decíamos que el ordenador es una máquina de propósito general, o lo que es lo mismo, sirve para muchas cosas, parece lógico pensar que la arquitectura de un equipo de este tipo debería ser algo así como cambiante o adaptativa.

Pues bien, para un ordenador, esta arquitectura adaptable podríamos traducirla como programable. Los bloques no cambian, a fin de cuentas son componentes físicos, pero la manera en la que se comunican y organizan si lo hacen. Y todo esto lo define el programa que estemos ejecutando.

Arquitectura de Von Neuman

Pero los ordenadores no han sido siempre programables. Al principio, los distintos bloques, tenían que cablearse para configurar el ordenador con el propósito de que realizara una tarea concreta. Y cuando queríamos pasar a realizar otra tarea, había que cambiar todos los cables y conectar los bloques de la manera correcta para realizar la nueva tarea. En fin, un lio.

John Von Neuman

John Von Neumann

No fue hasta 1945 cuando John Von Neuman, un genio y frikie de la época, propuso una nueva arquitectura que evitaba el tener que andar recableándolo todo cada vez que queríamos cambiar de tarea en el ordenador. Esta arquitectura ha sido bautizada con su nombre y es la base de todos los ordenadores modernos.

Neumann introdujo el concepto de programa almacenado, que se guardaba en memoria junto con los datos, y que básicamente contenía las instrucciones sobre que hacer, que bloques entran en juego y como manejar los resultados de estos para cumplir la tarea deseada.

La aportación de este señor fue mayúscula y sus implicaciones llegan hasta nuestros días. Si te paras a pensar como sería si cada vez que fuéramos a hacer algo en nuestro ordenador tuviéramos que cambiar todo un conjunto de conexiones… Supuso un punto de inflexión a partir del cual los ordenadores serían más versátiles y fáciles de usar, y empezarían a popularizarse.

En esta arquitectura, programa y datos se guardaban juntos en la memoria, y cuando el ordenador leía el contenido de la memoria, discriminaba si se trataba de datos o de un programa, y actuaba según correspondiera.

La arquitectura de Von Neuman distingue cuatro componentes fundamentales: el procesador (CPU), la memoria, los interfaces de Entrada y Salida, y los buses.

Arquitectura de Von Neuman

Arquitectura de Von Neumann

      • Procesador (CPU): Es el cerebro del ordenador, el bloque que realmente ejecuta todas las instrucciones y controla el funcionamiento del resto de los componentes.
      • Memoria: Almacena los datos que emplea el ordenador, ya sean programas o datos empleados por estos.
      • Interfaces de Entrada y Salida: Dispositivos que permiten intercambiar información con el exterior.
      • Los buses: las conexiones que interconectan los distintos bloques de la arquitectura.

Este post es parte de la colección “Arquitectura de Sistemas” que reproduce los apuntes de la clase que imparto sobre el tema en ESIC. Puedes ver el índice de esta colección aquí.