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.