Escolar Documentos
Profissional Documentos
Cultura Documentos
Definicin formal
Las computadoras son mquinas de arquitectura von Neumann cuando:
1. Tanto los programas como los datos se almacenan en una memoria en comn.
Esto hace posible la ejecucin de comandos de la misma forma que los datos.
2. Cada celda de memoria de la mquina se identifica con un nmero nico,
llamado direccin.
3. Las diferentes partes de la informacin (los comandos y los datos) tienen
diferente modos de uso, pero la estructura no se representa en memoria de
manera codificada.
El canal de transmisin de los datos compartido entre CPU y memoria genera un cuello
de botella de Von Neumann, un rendimiento limitado (tasa de transferencia de datos)
entre la CPU y la memoria en comparacin con la cantidad de memoria. En la mayora
de computadoras modernas, la velocidad de comunicacin entre la memoria y la CPU es
ms baja que la velocidad a la que puede trabajar esta ltima, reduciendo el rendimiento
del procesador y limitando seriamente la velocidad de proceso eficaz, sobre todo cuando
El problema de rendimiento puede ser aliviado (hasta cierto punto) utilizando diversos
mecanismos. Ofreciendo una memoria cach entre la CPU y la memoria principal,
proporcionando cachs separadas o vas de acceso independientes para datos e
instrucciones (la llamada arquitectura Harvard modificada), utilizando algoritmos y
lgica de predictor de saltos y proporcionando una limitada pila de CPU u otro en el
chip de memoria reutilizable para reducir el acceso a memoria, son cuatro de las
maneras que se dispone para aumentar el rendimiento. El problema tambin se puede
eludirse, cierta medida, usando computacin paralela, utilizando por ejemplo la
arquitectura de acceso a memoria no uniforme (NUMA), este enfoque es
comnmente empleado por las supercomputadoras. Est menos claro si el cuello de
botella intelectual que criticaba Backus ha cambiado mucho desde 1977. La solucin
que propuso Backus no ha tenido influencia importante.[cita requerida] La moderna
programacin funcional y la programacin orientada a objetos se preocupan mucho
menos de "empujar un gran nmero de palabras hacia un lado a otro" que los lenguajes
anteriores como era Fortran, pero internamente, esto sigue siendo lo que las
computadoras pasan gran parte del tiempo haciendo, incluso las supercomputadoras
altamente paralelas.
A partir de 1996, un estudio de referencia de base de datos se encontr que tres de cada
cuatro ciclos de CPU se dedican a la espera de memoria. Los investigadores esperan que
el aumento del nmero de instrucciones simultneas arroye con el multihilo o el
multiprocesamiento de un solo chip har de este cuello de botella an peor. [20]
Procesadores no von Neumann
La limitacin de la longitud de las instrucciones por el bus de datos, que hace que
el microprocesador tenga que realizar varios accesos a memoria para buscar
instrucciones complejas.
Los ordenadores con arquitectura Von Neumann constan de las siguientes partes:
Arquitectura Harvard: Este modelo, que utilizan los Microcontroladores PIC, tiene la
unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y
otra con los datos) por medio de dos buses diferentes.
Una de las memorias contiene solamente las instrucciones del programa (Memoria de
Programa), y la otra slo almacena datos (Memoria de Datos).
Ambos buses son totalmente independientes lo que permite que la CPU pueda acceder de
forma independiente y simultnea a la memoria de datos y a la de instrucciones. Como los
buses son independientes estos pueden tener distintos contenidos en la misma direccin y
tambin distinta longitud.
Tambin la longitud de los datos y las instrucciones puede ser distinta, lo que optimiza el
uso de la memoria en general.
Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instruccin
Set Computer), el set de instrucciones y el bus de memoria de programa pueden
disearse de tal manera que todas las instrucciones tengan una sola posicin de memoria
de programa de longitud.
Adems, al ser los buses independientes, la CPU puede acceder a los datos para
completar la ejecucin de una instruccin, y al mismo tiempo leer la siguiente instruccin a
ejecutar.
Ventajas de esta arquitectura:
* El tamao de las instrucciones no esta relacionado con el de los datos, y por lo tanto
puede ser optimizado para que cualquier instruccin ocupe una sola posicin de memoria
de programa, logrando as mayor velocidad y menor longitud de programa.
* El tiempo de acceso a las instrucciones puede superponerse con el de los datos,
logrando una mayor velocidad en cada operacin.