El modelo de Von Neumann también conocido como Arquitectura Von Neumann o arquitectura Princeton es, como su nombre lo indica, una arquitectura de computadoras, es decir un modelo conceptual que muestra cómo funciona una computadora (Máquina electrónica digital programable para el tratamiento automático de la información, capaz de recibirla, operar sobre ella mediante procesos determinados y suministrar los resultados de dichas operaciones) y la forma en la que se interconectan los componentes de hardware. Este modelo está basado en el explicado por el físico y matemático John Von Neumann en el año 1945.
Modelo de Von Neumann
Está formado por una CPU (Central Processing Unit) o Unidad Central de Procesamiento que a su vez contiene una ALU (Arithmetic Logic Unit) o Unidad Aritmética Lógica y los registros del procesador, una unidad de control y un contador de programa. También posee una memoria principal y un mecanismo de entrada y salida.
Unidad Central de Procesamiento: Es la encargada de interpretar y procesar las instrucciones recibidas de un programa a través de la realización de operaciones básicas aritméticas (Suma, resta, multiplicación y división) y lógicas (AND, OR y NOT) realizadas por la Unidad Aritmética Lógica. Para esto utiliza los registros del procesador que son una pequeña memoria que almacena datos binarios y tiene un tiempo de acceso cinco a diez veces menor que la memoria principal, uno de los registros es denominado Program Counter y es quien calcula automáticamente la cantidad de ciclos de ejecución y apunta a la próxima instrucción en ser ejecutada. Y por último se encuentra la unidad de control que es aquella que tiene como objetivo buscar instrucciones en la memoria principal y ejecutarlas luego de decodificarlas.
Memoria principal: Es un conjunto de celdas del mismo tamaño que están asociadas con un número denominado dirección de memoria y sirve para almacenar datos de manera temporal para ser utilizados posteriormente.
Sistema de entrada y salida: Genera las señales necesarias para transferir datos y códigos desde y hacia periféricos. Un periférico es aquel dispositivo que es capaz de interactuar con los elementos externos ya sea emitiendo información o recibiéndola.
Cuello de botella de Von Neumann
Debido a que la memoria principal está separada de la Unidad Central de Procesamiento, se genera un cuello de botella o un rendimiento limitado entre estos dos componentes ya que la velocidad de transmisión de datos no está acorde a la cantidad de la misma. Para atenuar este inconveniente existen diferentes mecanismos. Unos de los más populares es la inclusión de una llamada memoria caché entre la CPU y la memoria o el denominado Pipeline que permite iniciar instrucciones antes de terminar el ciclo de instrucción del anterior, es decir que de esta forma existiría un trabajo en paralelo.