Arquitectura Von Neumann: qué es y cómo funciona

La arquitectura de computadoras o arquitectura de ordenadores es vital para el propio funcionamiento del sistema informático, ya que es la forma en la que se organiza la lógica y componentes para ejercer el trabajo necesario para procesar la información. Se puede decir que la arquitectura de un ordenador define en sí el propio hardware, como la memoria principal, el sistema de E/S y también la CPU o sus buses. Un ejemplo de esta es la arquitectura Von Neumann la que trataremos aquí.

De ella dependerá el rendimiento, capacidades y los límites. Por tanto, es importante conocer qué es la arquitectura y los tipos existentes para comprender un poco mejor cómo funcionan los computadores que hoy todos usamos en nuestro día a día, y eso engloba no solo nuestros PCs de sobremesa y portátiles, también computadoras como los dispositivos móviles, Smart TVs, etc., ya que todas funcionan de forma similar.

¿Qué es la arquitectura de ordenadores?

ventajas de configurar tu PC a medida

Antes de comenzar a ver qué es la arquitectura Von Neuman, es importante primero comprender qué es una arquitectura de ordenadores. La arquitectura no es más que la organización lógica del hardware elemental de un ordenador. Es decir, un conjunto de principios que describen qué elementos tiene que tener y cómo interactúan estos elementos entre sí. Por eso es muy importante a la hora de determinar el rendimiento, capacidades y límites de un computador.

Como antes mencioné, estas arquitecturas no solo se aplican a tu PC de sobremesa o portátil, también estás rodeado de otros muchos equipos que también se consideran ordenadores o tienen alguna en su interior, desde los dispositivos móviles, algunos electrodomésticos, tu Smart TV, pasando por tu vehículo, los servidores o supercomputadoras de los centros de datos, etc. Y es que hay que tener claro la definición de computadora.

Un microcontrolador o MCU (MicroController Unit) también se puede considerar una computadora en un chip, ya que integra una CPU, una memoria RAM, una memoria tipo ROM, y también una unidad de E/S. Estos microcontroladores están en multitud de equipos, desde vehículos, hasta robots, pasando por electrodomésticos, y más…

Un ordenador básicamente es una CPU, una unidad de memoria, y otra de E/S (Entrada y Salida) para periféricos. Además, esta parte de hardware necesitará también de software, como el sistema operativo y otros programas. Con esta definición vemos que, por ejemplo, un router también se puede considerar un computador, ya que tiene un procesador o CPU, generalmente basado en ARM para procesar el tráfico de red, una memoria de la que hace uso esa CPU, y un sistema de E/S para la entrada y salida de datos de red. Por supuesto, los routers también tienen su propio sistema operativo embebido, como puede ser OpenWRT.

Diferencias entre microarquitectura, ISA y arquitectura

Ejemplo de microarquitectura AMD Zen
Ejemplo de diagrama de la microarquitectura Zen

Debes saber diferenciar qué es una microarquitectura, qué es una ISA y qué es una arquitectura de computadoras antes de pasar a ver qué es la arquitectura Von Neumann, ya que es algo que muchos confunden y existen muchas dudas al respecto:

  • Arquitectura: (véase el apartado anterior y apartados posteriores para saber más sobre ella y sus tipos).
  • ISA (Instruction Set Architecture): esta arquitectura describe a alto nivel la interfaz hardware/software. Es decir, definirá la forma en la que la CPU y el software interactuarán. Para ello, describe una serie de instrucciones que la CPU puede procesar (ADD, SUB, MUL, DIV,…), interrupciones y excepciones, tipos de datos, modos de direccionamiento, y registros necesarios. Es decir, cuando se programa un software y se compila, se pasará a un binario que contendrá datos e instrucciones. Esto se carga en la RAM por el sistema operativo y la CPU coge esas instrucciones y opera sobre los datos (sumando, restando, multiplicando, etc.) para obtener el resultado. Así es como el software se ejecuta. Por otro lado, es importante destacar que algunas ISAs conocidas son ARM, x86 (IA-32 y AMD64 o EM64T o x86-64), Power ISA, MIPS, RISC-V, SPARC, IA-64, PA-RISC, Alpha, z/Architecture, etc.
  • Microarquitectura: se dice de la implementación de una ISA, es decir, cómo se implementará la CPU o microprocesador para que pueda procesar esa ISA. Para ello, la microarquitectura define la pipeline, nivel de paralelismo, unidades de ejecución, predicción de saltos, caché y coherencia, etc. Por ejemplo, una misma ISA, como puede ser la x86-64, se puede implementar de muchas formas posibles. AMD la ha implementado como K8, K10, Bulldozer, Zen, Zen+, Zen 2, Zen 3, etc., mientras que Intel ha usado esa misma ISA implementándola como Nehalem, Sandy Bridge, Haswell, Skylake, Alder Lake, Raptor Lake, etc. Hay que agregar que las GPUs también tienen su propia ISA y su microarquitectura, al igual que la CPU. Lo mismo ocurría con los famosos co-procesadores que se usaban hace años para ayudar a la CPU, que también tenían su propia ISA. Actualmente, como la FPU (Floating Point Unit) se integra dentro de la CPU, las extensiones del coprocesador matemático (instrucciones que operan con datos en coma flotante) forman parte de la ISA de la CPU.

¿Qué importancia tiene la arquitectura Von Neumann?

La arquitectura de los ordenadores es importante en el sentido de que determina cómo funcionará un computador y para qué se puede emplear, es decir, su especificidad o su generalidad. Además, también determinará el coste, el tamaño, consumo de energía, rendimiento, etc.

Debes saber también diferenciar entre lo que representa una arquitectura de hardware, que es la implementación de la lógica de un ordenador; y la arquitectura de software, que es la implementación de la funcionalidad de un ordenador. Sin embargo, la arquitectura de software depende en gran medida de la arquitectura de hardware, por lo que la arquitectura de un ordenador también terminará afectando al software.

¿Para qué sirve la arquitectura de ordenadores?

Intel 13 Gen, placas base

Cuando se quiere construir un ordenador, primero hay que definir la arquitectura de ordenadores que se va a usar. De esa forma, se tendrán los principios para diseñar y construir ésta. En la actualidad, la mayoría de ordenadores se fabrican por diferentes empresas que crean los distintos elementos que intervienen en la computadora completa, pero todos ellos tienen que tener claro la arquitectura para poder crear sus productos.

Componentes principales de la arquitectura

Hay varios componentes principales de la arquitectura, como ya he comentado anteriormente:

  • CPU: también llamado procesador o microprocesador. Esta unidad central de procesamiento se encarga de ir ejecutando las diferentes instrucciones de la ISA y los datos que componen los programas a ejecutar.
  • Bus: es el sistema que interconecta las diferentes unidades o partes de un ordneador, como por ejemplo la CPU y la memoria principal, o la CPU con el E/S, etc. Puede haber diferentes buses según su propósito, como el bus de datos, el bus de control, el bus de direcciones, etc.
  • Memoria principal: es la memoria RAM donde se guardan los programas o procesos que se van a ejecutar, es decir, los datos e instrucciones necesarios para un proceso y que serán reclamados por la CPU. También se pueden almacenar resultados que emite la propia CPU que podrían ser necesarios más tarde.
  • E/S: también necesitan un sistema de entrada y salida de la información, es decir, puertos por donde enviar y recibir datos. Esto es fundamental para disponer de periféricos de entrada (teclado, ratón,…), de salida (monitor, impresora,…), o de entrada y salida a la vez. Estos periféricos se tratarán como direcciones de memoria donde poder escribir o leer datos. Por ejemplo, cuando escribes en un teclado, el sistema está leyendo datos del puerto donde está el teclado conectado, mientras que cuando se una imagen en el monitor, el sistema está escribiendo datos en el puerto del monitor…

En definitiva, los componentes esenciales de la arquitectura se corresponden con los componentes que forman parte de la descripción de un ordenador.

Tipos de arquitectura (arquitectura von Neuman vs Harvard)

Hay varios tipos de arquitectura de ordenadores que deberías conocer, entre ellas la famosa arquitectura Von Neumann:

Arquitectura von Neumann

arquitectura von neumann

La arquitectura von Neumann es una arquitectura secuencial en la que tenemos unas unidades elementales, como son la CPU, que incluye a su vez una unidad de control y una unidad ALU (Arithmetic Logic Unit) para realizar los cálculos necesarios. Es decir, las instrucciones serán interpretadas por la unidad de control y ésta pedirá a la ALU realizar la operación correcta sobre los datos. También incluye una unidad de memoria, donde también se puede meter el sistema de E/S como parte de dicha memoria, de hecho, se reservan algunas direcciones de memoria para controlar las direcciones de entrada y salida. Hay que destacar algo, y es que en la unidad de memoria estarán mezclados todos los tipos de datos.

Actualmente, esta arquitectura Von Neumann no se suele emplear para las PCs actuales.

Arquitectura Harvard

harvard arquitectura

Una modificación o mejora de la arquitectura Von Neumann es la arquitectura Harvard. Esta arquitectura es similar, pero tiene dos memorias separadas: una es para las instrucciones del programa y la segunda es para los datos. Como sabes, en los ordenadores actuales, concretamente dentro de la CPU, tenemos una memoria caché de datos y otra de instrucciones, aunque en niveles superiores esté unificada como en la Von Neumann pura.

Arquitectura Harvard modificada

La arquitectura Harvard modificada es una combinación de la arquitectura de flujo de datos y la arquitectura Harvard. En esta arquitectura, hay una memoria de programa o para instrucciones y una memoria de datos.

Arquitectura Dataflow

Por último, en la arquitectura de flujo de datos o Dataflow, es una arquitectura particular por donde los datos pasan por diferentes etapas de cálculo. El resultado del cálculo se usará como parte de la entrada para el siguiente cálculo. Es decir, tenemos un flujo de datos y se puede realizar en paralelo usando varios procesadores. Se trata de una arquitectura rara y que no tiene demasiadas aplicaciones prácticas.

Jaime Herrera

Jaime Herrera

Técnico electrónico y experto en el sector de los semiconductores y el hardware. Apasionado de la tecnología y la computación.

>
Guía Hardware
Logo