Problemas 4

30
CONCLUSIONES

Transcript of Problemas 4

Page 1: Problemas 4

CONCLUSIONES

Page 2: Problemas 4

En los últimos capítulos se han descrito con mucho detalle el procesamiento superescalar.

Junto a ejemplos de microarquitectura superescalares implementados en distintos procesadores.

A continuacion se verá la evolución de los procesadores en los últimos años.

Page 3: Problemas 4
Page 4: Problemas 4

EVOLUCION DE PROCESADORES INTEL

Page 5: Problemas 4
Page 6: Problemas 4
Page 7: Problemas 4

EVOLUCION ROCESADORES AMD

Page 8: Problemas 4
Page 9: Problemas 4

En el siguiente cuadro se disponen de datos , que determinan las mediciones absolutas de las prestaciones, y las mediciones relativas a la frecuencia del reloj del procesador.

Page 10: Problemas 4
Page 11: Problemas 4

Como se ha descrito a lo largo de estos 2 capítulos, las microarquitecturas superescalares incorporan elementos para realizar una planificación dinámica de instrucciones que permita su ejecución desordenada, y de esta manera aprovechar el maximo de paralelismo entre instrucciones.

Page 12: Problemas 4

Por otra parte se permite, para aprovechar las mejoras tecnológicas, incorpor más y mejores posibilidades de instrucciones por ciclo.

Aumentar Unidades Funcionales, Aumentando caché, y aumentando el ancho del bus de datos, etc. se logra una mejora sustancial en la velocidad de procesamiento.

Page 13: Problemas 4

Al mismo tiempo si logramos emitir un mayor numero de instrucciones por ciclo, pero aumentamos la complejidad asociada a los elementos que permiten realizar la planificación dinámica de instrucciones.

La solución a esto es dejar que el compilador se encargue de organizar, las instrucciones, para aprovechar mejor el paralelismo de las instrucciones.

Page 14: Problemas 4

EN CONCLUSIÓN, los procesadores no aumentan sus prestaciones no aumentando la velocidad de procesamiento, sino aumentando el rendimiento de procesamiento de VARIAS HEBRAS de instrucciones.

A esta alternativa también se le conoce como MULTIHEBRA SIMULTANEA.

Page 15: Problemas 4

Por otro lado en el año 2002, en los procesadores intel XEON, se hace uso del HYPER HEBRA.

Otra forma de aprovechar las posibilidades de integración que ofrece la electronica, es la de incluir varios procesadores en un chip, llamado MULTIPROCESSOR, pero esto ya se explicará al concluir el capitulo siguiente.

Page 16: Problemas 4

PROBLEMAS

Page 17: Problemas 4

1.- Estimar las velocidades pico de los procesadores que se describen en el capitulo utilizando los datos respecto a las frecuencias de reloj, instrucciones que se retiran por ciclo y unidades funcionales que se indican en el texto

Velocidad_pico = Frecuencia del reloj X finalizan_por_cicloEjemplo para el microprocesador Mips R8000 en tabla 4.1 tenemosFrecuencia en Mhz = 75Finalizan/ciclo = 6Vp = 75x6= 450 Mhz

Page 18: Problemas 4

Velocidad pico para los procesadores en la tabla 4.1 - 4.2 -4.3

Velocidad_pico = Frecuencia del reloj X finalizan_por_ciclo

Page 19: Problemas 4

2.-Para el siguiente codigo optimizar las instrucciones usando la instrucción setccb

* Obtenemos el código original y su diagrama de flujo

Page 20: Problemas 4

*Análisis de funcionamiento de la instrucción setccb

*tabla de condiciones de comparación Nombre Condicionge Mayor igualgt Mayorle Menor igualLt Menoreq IgualNq diferente

*Entonces para el problema tenemos

cmpl B,ASetgeb %bl

cmpl B,ASetltb %bl

Page 21: Problemas 4
Page 22: Problemas 4

3.-Utilizar las instrucciones con predicado setccb y cmovcc para reducir el numero de instrucciones En If (A<=B) then cbx=2; else cbx = 4;

* Funcionamiento de la instrucción xmovcc

Page 23: Problemas 4

•Para setccb If (A<=B) then cbx=2; else cbx = 4; usamoscmpl B,Asetleb %al• Para el xmovcc Usamos cmoveq(trabaja datos enteros y mueve en comparaciones de igualdad)

Nombre Condicionge Mayor igualgt Mayorle Menor igualLt Menoreq IgualNq diferente

•Codigo optimizadoxorl %al, %al //resetea el valor de al

cmpl B,A //compara B con A al=1 si A<=B setgeb %al al=0 si A>B

cmpl $1,%al //si al =1 (A<=B) movemos a cbx el valor 2cmoveq $2, %cbx cmpl $0,%al //si al =0 (A>B) movemos a cbx el valor 4cmoveq $4,%cbx

Page 24: Problemas 4

•Codigo optimizadoxorl %al, %al //resetea el valor de al

cmpl B,A //compara B con A al=1 si A<=B setgeb %al al=0 si A>B

cmpl $1,%al //si al =1 movemos a cbx el valor 2cmoveq $2, %cbx cmpl $0,%al //si al =0 movemos a cbx el valor 4cmoveq $4,%cbx

* Diagrama de flujo del código optimizado

al=1

al=0

al se comporta como un semáforo realiza una acción dependiendo del estado en que se encuentra

Page 25: Problemas 4

4.-Utilizar las instrucciones cmovcc y setcc para reducir el numero de instruccionesde salto en el bucle siguiente

Df cod original

Df cod optimizado

Page 26: Problemas 4

xor %al, %al xor %bl, %bl xor %cl, %cl

cmpl B,A setgtb %al cmpl $1,%al cmoveq $1,X neg al

cmpl C,D setgtb %bl and %al ,% blcmpl $1,%bl cmoveq $2,X

cmpl C,D setleb %cl and %al , %clcmpl $1,%cl cmoveq $3,X

Nombre Condicionge Mayor igualgt Mayorle Menor igualLt Menoreq IgualNq diferenteal =1

bl =1

cl =1

//banderas de control

//compara A,B//si (A>B) setea al=1//compara al con ·#1 sies verdadero mueve alregistro X el valor #1

// niega el valor de al

//compara C,Bsi (C<D) setea bl=1bl =(bl ) and (al)compara bl con ·#1 sies verdadero mueve alregistro X el valor #2

//compara C,Bsi (C>=D) setea cl=1cl =(cl ) and (al)compara cl con ·#1 sies verdadero mueve alregistro X el valor #3

Page 27: Problemas 4

al =1 al =0

bl =1 bl =0

cl =1 cl =0

Banderas Operacional bl cl1 0 0 X=10 1 0 X=20 0 1 X=3

Una bandera es un registro de controlQue permite realizar una operación Cuando esta en estado activo (valor =1)Y evitar la operación en estado inactivo(valor =0)

* Análisis de funcionamiento

Page 28: Problemas 4
Page 29: Problemas 4

Para el Ultra SparcNumero de instrucciones :12 (4 memoria 4 aritméticas 4 actualización)Numero de repeticiones: 3000Frecuencia 600 MHz

* Calculo del numero de ciclos

•Calculo del tiempo minimoTmin = Nro ciclos x Periodo x nro de repeticiones

Page 30: Problemas 4

Para el ALPHA 21264Numero de instrucciones :12 (4 memoria 4 aritméticas 4 actualización)Numero de repeticiones: 3000Frecuencia 450 MHz

* Calculo del numero de ciclos

•Calculo del tiempo minimoTmin = Nro ciclos x Periodo x nro de repeticiones