Download Arquitecturas de microprocesadores: Harvard y von Neuman
Document related concepts
no text concepts found
Transcript
Arquitecturas de microprocesadores: Harvard y von Neuman Las operaciones típicas de un µP requieren frecuentemente efectuar muchas sumas y multiplicaciones simples. Las sumas y multiplicaciones requieren: • • • encontrar los dos operandos efectuar la suma o multiplicación (usualmente ambas) almacenar el resultado o retenerlo para usarlo en forma repetitiva Una forma de acelerar la operación del procesador es poder buscar los dos operandos en un único ciclo de instrucción, esto implica efectuar dos accesos simultáneos a la memoria. Un simple análisis nos mostrará que, dado que también debemos almacenar el resultado, – además de leer la instrucción propiamente dicha -, necesitaremos más que dos accesos a la memoria por cada ciclo de instrucción. Por esta razón los procesadores que se usan en aplicaciones DSP (Digital Signal Processing) usualmente soportan múltiples accesos a memoria en el mismo ciclo de instrucción. Sin embargo, no es posible acceder a dos diferentes direcciones de memoria simultáneamente mediante un único bus de memoria. Los dos métodos utilizados habitualmente para lograr hacer múltiples accesos a memoria por cada ciclo de instrucción son: • • Arquitectura Harvard Arquitectura von Neuman modificada La arquitectura Harvard posee dos buses de memoria separados físicamente. Esto permite realizar dos accesos simultáneos a memoria: La verdadera arquitectura Harvard dedica un bus para obtener las instrucciones, con el otro disponible para obtener los operandos. Esto no es adecuado para las operaciones DSP, que usualmente involucran al menos dos operandos. Es así que las arquitecturas Harvard para DSP usualmente permiten que el bus de 'programa' sea usado además para acceder a operandos. Observe que a menudo es necesario obtener tres cosas - la instrucción más dos operandos – y la arquitectura Harvard es inadecuada para soportar esto: de modo que las arquitecturas “DSP Harvard” a menudo incluyen además una memoria caché que puede ser usada para almacenar instrucciones que serán reutilizadas, dejando ambos buses Harvard libres para obtener los operandos. Esta extensión arquitectura Harvard más caché - es a veces llamada una arquitectura Harvard extendida o Super Harvard ARChitecture (SHARC). La arquitectura Harvard requiere dos buses de memoria. Esto vuelve costosa la construcción del chip - por ejemplo un DSP que use palabras de 32 bits con un espacio de direccionamiento de 32 bits requiere al menos 64 pines para cada bus de memoria un total de 128 pines si se implementa la arquitectura Harvard en el chip. Esto resulta en chips muy grandes, difíciles de diseñar. Aún la más simple operación DSP - una suma de dos operandos con almacenamiento del resultado en memoria - requiere cuatro accesos a memoria (tres para obtener los dos operandos y la instrucción, más un cuarto para escribir el resultado). Esto excede las capacidades de una arquitectura Harvard. Algunos procesadores resuelven esto usando una arquitectura von Neuman modificada. La arquitectura von Neuman usa sólo un único bus de memoria: Esto es barato, requiere menos pines que la arquitectura Harvard, y es simple de usar porque el programador puede colocar las instrucciones o los datos en cualquier lugar de la memoria disponible. Pero no permite realizar múltiples accesos a la memoria. La arquitectura von Neuman modificada permite múltiples accesos a memoria por ciclo de instrucción mediante el simple truco de hacer funcionar el clock de la memoria más rápido que el ciclo de instrucción. Por ejemplo el Lucent DSP32C funciona con un clock de 80 MHz: éste es dividido por cuatro para ejecutar 20 millones de instrucciones por segundo (MIPS), pero el clock de memoria corre a la máxima velocidad de 80 MHz - cada ciclo de instrucción es dividido en cuatro 'estados de máquina' y es posible hacer un acceso a memoria en cada estado de máquina, permitiendo así un total de cuatro accesos a memoria por ciclo de instrucción: En este caso la arquitectura von Neuman modificada permite todos los accesos a memoria requeridos para soportar la suma o multiplicación: obtener la instrucción; obtener los dos operandos; y almacenar el resultado. Ambas arquitecturas Harvard y von Neuman requieren que el programador sea cuidadoso acerca de dónde se ubica el dato en la memoria: por ejemplo con la arquitectura Harvard, si los dos operandos que se requieren están ambos en el mismo banco de memoria, entonces no pueden ser accedidos simultáneamente.