jueves, 23 de junio de 2011

ARQUITECTURAS DE SOFTWARE

ARQUITECTURA HARVARD

La arquitectura Harvard es una arquitectura de computadora con el almacenamiento separado físicamente y vías de señalización para las instrucciones y datos. El término se originó a partir de la computadora Harvard Mark I basado en relés, que almacena las instrucciones de la cinta perforada (24 bits de ancho) y los datos de los contadores electromecánicos. Estas primeras máquinas tenían el almacenamiento de datos totalmente dentro de la unidad central de procesamiento, y siempre que no tienen acceso a la instrucción de almacenamiento de los datos. Programas necesarios para ser cargados por el operador, el procesador no podía arrancar.

Hoy en día, la mayoría de los procesadores de aplicación de tales vías de señales separadas por razones de rendimiento, pero en realidad poner en práctica una versión modificada de arquitectura de Harvard, para que puedan apoyar las tareas como la carga de un programa de almacenamiento en disco como datos y luego ejecutarlo.

1- DETALLES DE LA MEMORIA

En una arquitectura de Harvard, no hay necesidad de hacer las dos características de compartir recuerdos. En particular, el ancho de palabra, tiempo, tecnología de implementación, y la estructura de dirección de memoria puede variar. En algunos sistemas, las instrucciones se pueden almacenar en la memoria de sólo lectura, mientras que la memoria de datos generalmente requiere de lectura y escritura de la memoria. En algunos sistemas, hay mucha más memoria que la memoria de la instrucción de datos para direcciones de instrucción son más anchas que las direcciones de los datos.

2- EL CONTRASTE CON LA ARQUITECTURA DE VON NEUMANN

En la forma pura de la arquitectura de von Neumann de la CPU, se  puede de hacer una instrucción o leer; escribir datos desde  o hacia  la memoria. Ambas cosas no pueden ocurrir al mismo tiempo, puesto que las instrucciones y los datos de utilización del sistema de bus.
 En un equipo que utiliza la arquitectura de la Universidad de Harvard, la CPU puede leer una instrucción y realizar una memoria de acceso de datos al mismo tiempo, incluso sin una memoria caché. Un equipo de arquitectura de Harvard, por lo tanto puede ser más rápido para un circuito determinado por la complejidad de instrucción y obtiene acceso a los datos no contender por un camino de memoria.

Además en una máquina de estructura Harvard, se tiene distintos espacios de código y dirección de datos: La instrucción de dirección cero, no es igual al dato de dirección cero. la instrucción de dirección cero podría ser un valor por debajo a los 24 bits. Mientras que  la dirección de datos cero nos indica un valor de 8 bits , esto no es parte del valor de 24 bits (de la instrucción).

3- EL CONTRASTE DE LA ARQUITECTURA HARVARD MODIFICADA 

Una máquina de modificar la arquitectura Harvard es muy parecido a una máquina de arquitectura de Harvard, pero relaja la estricta separación entre la instrucción y los datos al mismo tiempo permitir el acceso de la CPU simultáneamente dos (o más) buses de memoria. La modificación más común incluye la instrucción separada y los cachés de datos respaldado por un espacio de direcciones comunes. Mientras que la CPU ejecuta desde la memoria caché, que actúa como una pura máquina de Harvard. Al acceder a la memoria de respaldo, que actúa como una máquina de von Neumann (donde el código se puede mover como de datos, una técnica de gran alcance). Esta modificación se ha generalizado en los procesadores modernos, tales como la arquitectura ARM y procesadores X86. En ocasiones es llamada arquitectura Harvard, con vistas al hecho de que en realidad es "modificado".

Otra modificación proporciona un camino entre la memoria de instrucciones (como la ROM o flash) y la CPU para permitir que las palabras de la memoria de instrucciones para ser tratado como de sólo lectura de datos. Esta técnica se utiliza en algunos micros controladores, incluyendo el Atmel AVR. Esto permite que los datos constantes, tales como cadenas de texto o tablas de funciones, para acceder sin tener que ser copiado en la memoria de datos, la preservación de los escasos (y hambriento de poder) de memoria de datos de lectura / escritura de variables. Especial de instrucciones en lenguaje máquina se proporcionan para leer datos de la memoria de instrucciones. (Esto es distinto de instrucciones que se incrustan datos constantes, a pesar de las constantes individuales de los dos mecanismos pueden sustituir unos por otros.)
 
4- VELOCIDAD

En los últimos años, la velocidad de la CPU se ha convertido muchas veces en comparación con la velocidad de acceso de la memoria principal. Necesidades de atención que deben adoptarse para reducir el número de veces la memoria principal se accede con el fin de mantener el rendimiento. Si, por ejemplo, cada instrucción se ejecute en la CPU requiere un acceso a la memoria, el equipo no gana para aumentar la velocidad de una CPU de problema a que se refiere como "la memoria consolidados".

Es posible que la memoria muy rápida, pero esto sólo es práctico para pequeñas cantidades de memoria por razones de costo, poder y enrutamiento de la señal. La solución es proporcionar una pequeña cantidad de memoria muy rápida conocida como una caché de la CPU que contiene los datos recientemente. Siempre y cuando los datos que la CPU necesita está en la caché, el impacto en el rendimiento es mucho menor de lo que es cuando la memoria caché tiene que dar la vuelta y obtener los datos de la memoria principal.

5- ARQUITECTURA INTERNA FRENTE A DISEÑO EXTERNO

Modernos de alto rendimiento diseños de chips en la CPU incorporan aspectos de Harvard y arquitectura de von Neumann. En particular, la arquitectura modificada de Harvard es muy común. Memoria caché de la CPU se divide en una caché de instrucciones y una caché de datos. Arquitectura de Harvard se utiliza como el CPU accede a la memoria caché. En el caso de un error de caché, sin embargo, los datos se recuperan de la memoria principal, que no está formalmente dividido en instrucción por separado y las secciones de datos, aunque es muy posible que los controladores de memoria independiente utiliza para el acceso simultáneo a la memoria RAM, ROM y (NOR ) de memoria flash.

Así, mientras que una arquitectura de von Neumann es visible en algunos contextos, como cuando los datos y el código de venir a través del controlador de memoria, la implementación hardware de las ganancias de la eficiencia de la arquitectura de la Universidad de Harvard para los accesos a caché y por lo menos algunos accesos a memoria principal.

Además, a menudo tienen CPUs escribir buffers que permiten CPUs proceder después escribe sin almacenamiento en caché las regiones. La naturaleza de von Neumann de la memoria es entonces visible cuando las instrucciones se escriben los datos por la CPU y el software deben asegurarse de que las memorias caché (datos e instrucciones) y escribir el búfer se sincronizan antes de intentar ejecutar las instrucciones que se acaba de escribir.


6- USOS MODERNOS DE LA AQUITECTURA DE HARDVARD

La principal ventaja de la pura arquitectura Harvard es el acceso simultáneo a más de una memoria del sistema; se ha reducido en los procesadores de Harvard modificada a través de modernos sistemas de caché de la CPU. Las  Máquinas que usan arquitectura pura de Harvard relativamente se utilizan principalmente en aplicaciones en las ventajas y desventajas, tales como el costo y ahorro de energía de la omisión de cachés, superan a las penas de programación de código con distintos espacios y datos de la dirección.

Los procesadores de señal digital (DSPs) generalmente pequeñas,  ejecutan  procesos de algoritmos altamente  optimizados de audio y video, evitan el desgaste de cache debido a su capacidad de reproducción. Las dificultades de hacer frente a múltiples espacios de direcciones son de importancia secundaria a la velocidad de ejecución. Como resultado, algunos DSPs tienen memoria de datos múltiples en distintos espacios de direcciones para facilitar el procesamiento SIMD y VLIW. Texas Instruments TMS320 procesadores C55x, como un ejemplo, tiene varios buses de datos en paralelo (dos escribir, leer tres) y un bus de instrucciones.. Las dificultades de hacer frente a múltiples espacios de direcciones son de importancia secundaria a la velocidad de ejecución. Como resultado, algunos DSPs tienen memoria de datos múltiples en distintos espacios de direcciones para facilitar el procesamiento SIMD y VLIW. Texas Instruments TMS320 procesadores C55x, como un ejemplo, tiene varios buses de datos en paralelo (dos escribir, leer tres) y un bus de instrucciones.
Los Microcontroladores se caracterizan por tener pequeñas cantidades de programa (memoria flash) y memoria de datos (SRAM), sin caché, y tomar ventaja de la arquitectura de la Universidad de Harvard a la velocidad de procesamiento por la instrucción simultánea y acceso a datos. Almacenar por separado, significa que la memoria del programa y los datos pueden tener distintas profundidades de bits, por ejemplo, con instrucciones de 16 bits de ancho y amplio de datos de 8 bits. También significa que prefetch de instrucciones se puede realizar en paralelo a otras actividades. Los ejemplos incluyen, el AVR Atmel Corp, el PIC de Microchip Technology, Inc. y el procesador ARM Cortex-M3 (no todos los chips de ARM tienen arquitectura Harvard).

Incluso en estos casos, es común tener instrucciones especiales para acceder a la memoria del programa como los datos de las tablas de sólo lectura, o para su reprogramación.