a) que la longitud de las instrucciones esta limitada por la unidad
de longitud de los datos, por lo tanto el microprocesador debe hacer varios
accesos a memoria para buscar instrucciones complejas,
b) que la velocidad de operación (o ancho de banda de operación)
esta limitada por el efecto de cuello de botella que significa un bus único
para datos e instrucciones que impide superponer ambos tiempos de acceso.
La arquitectura von Neumann permite el diseño de programas con
código automodificable, práctica bastante usada en las antiguas
computadoras que solo tenían acumulador y pocos modos de direccionamiento,
pero innecesaria, en las computadoras modernas.
La arquitectura Harvard y sus ventajas:
La arquitectura conocida como Harvard, consiste simplemente en un esquema
en el que el CPU esta conectado a dos memorias por intermedio de dos buses
separados. Una de las memorias contiene solamente las instrucciones del
programa, y es llamada Memoria de Programa. La otra memoria solo almacena
los datos y es llamada Memoria de Datos (figura 1.1.2). Ambos buses son
totalmente independientes y pueden ser de distintos anchos. Para un procesador
de Set de Instrucciones Reducido, o RISC (Reduced Instrucción Set
Computer), el set de instrucciones y el bus de la memoria de programa pueden
diseñarse de manera tal que todas las instrucciones tengan una sola
posición de memoria de programa de longitud. Además, como
los buses son independientes, el CPU puede estar accediendo a los datos
para completar la ejecución de una instrucción, y al mismo
tiempo estar leyendo la próxima instrucción a ejecutar. Se
puede observar claramente que las principales ventajas de esta arquitectura
son:
a) que el tamaño de las instrucciones no esta relacionado con
el de los datos, y por lo tanto puede ser optimizado para que cualquier
instrucción ocupe una sola posición de memoria de programa,
logrando así mayor velocidad y menor longitud de programa,
b) que el tiempo de acceso a las instrucciones puede superponerse con
el de los datos, logrando una mayor velocidad de operación.
Una pequeña desventaja de los procesadores con arquitectura Harvard, es que deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas, ya que estas tablas se encontraran físicamente en la memoria de programa (por ejemplo en la EPROM de un microprocesador).
Los microcontroladores PIC 16C5X, 16CXX y 17CXX poseen
arquitectura Harvard, con una memoria de datos de 8 bits, y una memoria
de programa que, según el modelo, puede ser de 12 bits para los
16C5X, 14 bits para los 16CXX y 16 bits para los 17CXX.