La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitectura Avanzada Profesor: Juan José Muñoz Bussi Alumno: Macarena Ramallo 2° Cuatrimestre - 2011.

Presentaciones similares


Presentación del tema: "Arquitectura Avanzada Profesor: Juan José Muñoz Bussi Alumno: Macarena Ramallo 2° Cuatrimestre - 2011."— Transcripción de la presentación:

1 Arquitectura Avanzada Profesor: Juan José Muñoz Bussi Alumno: Macarena Ramallo 2° Cuatrimestre

2 PROCESADORES SEGMENTADOS INTRODUCCIÓN: Los procesadores segmentados sirven para mejorar el rendimiento sin necesidad de duplicar excesivamente el hardware. Se usaron por primera vez en los años 60 para los grandes sistemas(mainframes) de altas prestaciones, y fueron muy importantes en los años 80 para el enfoque RISC del diseño de computadores (la mayoría de técnicas RISC se relacionan con el objetivo de conseguir una buena segmentación). El Intel i486 fue la primera implementación segmentada de la arquitectura IA32.La segmentación se utiliza mucho actualmente para el desarrollo de juegos de instrucciones del procesador. Actualmente, la tendencia es lograr segmentaciones más profundas para obtener frecuencias de reloj muy altas. Es un método muy eficaz para obtener un mayor rendimiento. Existen 2 tipos de segmentación: la segmentación aritmética y la segmentación de instrucciones. Este documento se centra principalmente en la segunda, aunque se verá un ejemplo de la primera.

3 DISEÑO SEGMENTADO: Motivaciones: La principal motivación es la de incrementar el rendimiento (o ancho de banda) sin necesidad de muchohardware. Este rendimiento se mide en tareas realizadas por unidad de tiempo. Para un sistema de unatarea por unidad de tiempo, el rendimiento sería R=1/D, donde D es la latencia de la tarea. Si haymuchas tareas, se puede incrementar el rendimiento si segmentamos (aunque puede aumentarligeramente D).La segmentación consiste en dividir el sistema original en etapas de segmentación e incrementar elbuffer entre dichas etapas. Así pues, se divide el cálculo original en k subcálculos, siendo k el número deetapas. Cada tarea puede comenzar una vez que la anterior haya finalizado su primera etapa. Esto es, sepodría iniciar una tarea no cada D unidades de tiempo, sino cada D/k unidades de tiempo; solapando elprocesamiento de hasta k cálculos.Estamos suponiendo que los buffers no implican una demora adicional, pero en la realidad sí que la hay.Si no la hubiera y el número de tareas fuese muy grande, el rendimiento sería aproximadamente k vecesel del sistema no segmentado.

4 EJEMPLO DE ARITMÉTICA DE SEGMENTACIÓN: Existen dos tipos de segmentación: aritmética y de instrucciones. Ahora vamos a ver un ejemplo de laaritmética de segmentación, que nos servirá para comprobar su eficacia sin necesidad de profundizar enproblemas complejos del diseño de segmentación de instrucciones.Multiplicación de coma flotante:Utilizaremos como ejemplo el diseño de un multiplicador de coma flotante segmentado. Supone unformato de coma flotante de 64 bits que utiliza la notación 128 en exceso para el exponente e (8 bits) yla notación de fracción de signo magnitud con el bit oculto para la mantisa m (57 bits, bit ocultoincluido).Este es el algoritmo de multiplicación para este diseño:1. Comprobar si algún operando es 0. En tal caso, el resultado es automáticamente 0.2. Agregar las dos características (patrones físicos de bit de los exponentes) y corregir eldesplazamiento de 128 en exceso (e1 + (e2 128)).3. Multiplicar las mantisas m1 y m2 de coma fija.4. Normalizar el producto anterior (desplazar a la izquierda un bit y disminuir el exponente en 1(la representación normalizada de la mantisa no tiene ceros iniciales).5. Redondear el resultado sumando 1 al primer bit de guarda (inmediatamente a la derecha delbit menos significativo de la mantisa) (redondear por exceso). En caso de desbordamiento de lamantisa, desplazar hacia la derecha un bit e incrementar el exponente en 1 (para mantener larepresentación normalizada de la mantisa).

5 SEGMENTACIÓN IDEAL: El caso ideal de segmentación sería incrementar k veces el rendimiento. En el anterior ejemplo,teniendo 3 etapas, solamente se logra un aumento del 2.3. Esto es porque la segmentación ideal se basaen 3 supuestos ideales.Subcálculos uniformes:Este supuesto indica que un cálculo puede dividirse uniformemente en subcálculos de latenciauniforme. Es decir, si T es el periodo de sincronización de un sistema no segmentado, entonces el delsegmentado sería T/k. El aumento de k veces se lograría por la reducción de k veces de este periodo.Pero en la realidad esto sería muy complicado. En el anterior ejemplo se veía que la latencia de 400 nsse dividía en 125, 150 y 125 ns (no es uniforme). Como el periodo de sincronización lo determinan laslatencias más altas, las bajas suponen una fragmentación interna (en ese ejemplo, la 1ª y la 3ª tienenuna ineficacia de 25 ns cada uno).

6 SEGMENTACIÓN DE INSTRUCCIONES: Los 3 puntos anteriores son solamente supuestos. En la segmentación aritmética, la realidad puedeestar cercana a esos supuestos; pero en la segmentación de instrucciones no. Esto supone un retointeresante.Diseño de la segmentación de instrucciones:Los objetivos de la segmentación de instrucciones son los tres puntos anteriormente comentados. Elcálculo a realizar es el procesamiento de una instrucción. El ciclo de instrucción es la latencia necesariapara procesarla y la necesaria para cada etapa de segmentación se denomina ciclo de máquina. El ciclode instrucción es un concepto lógico que se define en la arquitectura del sistema, mientras que el demáquina es físico que se especifica en la implementación del sistema (implica la sincronización de loselementos de almacenamiento en circuitos digitales lógicos).Tomemos el ejemplo del multiplicador de coma flotante. Solamente tiene una instrucción, la cual sepuede dividir en las siguientes etapas:1. Generación parcial del producto (125 ns).2. Reducción parcial del producto (150 ns).3. Reducción final – Normalización – Redondeo (55 – 20 – 50 ns) (juntamos los 3 para simplificar).En la página 52 se pueden observar los esquemas del ciclo de instrucción y los ciclos de máquina. Elsegundo esquema es una implementación de la arquitectura del primer esquema.

7 Segmentación

8 La segmentación es un método por el cual se consigue aumentar el rendimiento de algunos sistemas electrónicos digitales. Es aplicado, sobre todo, en microprocesadores. El nombre viene de que para impulsar el gas en un oleoducto a la máxima velocidad es necesario dividir el oleoducto en tramos y colocar una bomba que dé un nuevo impulse al gas. El símil con la programación existe en que los cálculos deben ser registrados o sincronizados con el reloj cada cierto tiempo para que la ruta crítica (tramo con más carga o retardo computacional entre dos registros de reloj) se reduzca. La ruta crítica es en realidad la frecuencia máxima de trabajo alcanzada por el conjunto. A mayor ruta crítica (tiempo o retraso entre registros) menor es la frecuencia máxima de trabajo y a menor ruta crítica mayor frecuencia de trabajo. La una es la inversa de la otra. Repartir o segmentar equitativamente el cálculo hace que esa frecuencia sea la óptima a costa de más área para el almacenamiento o registro de los datos intervinientes y de un retraso o latencia (en ciclos de reloj/tiempo) en la salida del resultado equivalente al número de segmentaciones o registros realizados. La ventaja primordial de este sistema es que, tal y como se muestra en la imagen, una vez el pipe está lleno, es decir, después de una latencia de cuatro en la imagen, los resultados de cada comando vienen uno tras otro cada flanco de reloj y sin latencia extra por estar encadenados dentro del mismo pipe. Todo esto habiendo maximizado la frecuencia máxima de trabajo.


Descargar ppt "Arquitectura Avanzada Profesor: Juan José Muñoz Bussi Alumno: Macarena Ramallo 2° Cuatrimestre - 2011."

Presentaciones similares


Anuncios Google