Beruflich Dokumente
Kultur Dokumente
En los ltimos captulos se han descrito con mucho detalle el procesamiento superescalar. Junto a ejemplos de microarquitectura superescalares implementados en distintos procesadores. A continuacion se ver la evolucin de los procesadores en los ltimos aos.
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.
Como se ha descrito a lo largo de estos 2 captulos, las microarquitecturas superescalares incorporan elementos para realizar una planificacin dinmica de instrucciones que permita su ejecucin desordenada, y de esta manera aprovechar el maximo de paralelismo entre instrucciones.
Por otra parte se permite, para aprovechar las mejoras tecnolgicas, incorpor ms 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.
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 planificacin dinmica de instrucciones. La solucin a esto es dejar que el compilador se encargue de organizar, las instrucciones, para aprovechar mejor el paralelismo de las instrucciones.
EN CONCLUSIN, 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 tambin se le conoce como MULTIHEBRA SIMULTANEA.
Por otro lado en el ao 2002, en los procesadores intel XEON, se hace uso del HYPER HEBRA. Otra forma de aprovechar las posibilidades de integracin 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.
PROBLEMAS
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
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 instruccin xmovcc
Para setccb If (A<=B) then cbx=2; else cbx =Nombre 4; usamos ge cmpl B,A gt le setleb %al Lt Para el xmovcc eq Usamos cmoveq Nq (trabaja datos enteros y mueve en comparaciones de igualdad) Codigo optimizado xorl %al, %al //resetea el valor de al cmpl B,A A<=B setgeb %al //compara B con A al=1 si al=0 si A>B
cmpl $1,%al //si al =1 (A<=B) movemos a cbx el valor 2 cmoveq $2, %cbx cmpl $0,%al 4 //si al =0 (A>B) movemos a cbx el valor
Codigo optimizado xorl %al, %al //resetea el valor de al al=1 cmpl B,A A<=B setgeb %al //compara B con A al=1 si al=0 si A>B
al=0
4.-Utilizar las instrucciones cmovcc y setcc para reducir el numero de instrucciones de salto en el bucle siguiente Df cod optimizado
Df cod original
//banderas de control
al =1
//compara A,B //si (A>B) setea al=1 //compara al con #1 si es verdadero mueve al registro X el valor #1
Nombre ge gt le Lt eq Nq
// niega el valor de al
bl =1
//compara C,B si (C<D) setea bl=1 bl =(bl ) and (al) compara bl con #1 si es verdadero mueve al registro X el valor #2 //compara C,B si (C>=D) setea cl=1 cl =(cl ) and (al) compara cl con #1 si es verdadero mueve al registro X el valor #3
cl =1
* Anlisis de funcionamiento
al =1
al =0
Banderas al bl cl 1 0 0 0 1 0 0 0 1
bl =1
bl =0 Una bandera es un registro de control Que permite realizar una operacin Cuando esta en estado activo (valor =1) Y evitar la operacin en estado inactivo (valor =0)
cl =1
cl =0
Para el Ultra Sparc Numero de instrucciones :12 (4 memoria 4 aritmticas 4 actualizacin) Numero de repeticiones: 3000 Frecuencia 600 MHz * Calculo del numero de ciclos
Calculo del tiempo minimo Tmin = Nro ciclos x Periodo x nro de repeticiones
Para el ALPHA 21264 Numero de instrucciones :12 (4 memoria 4 aritmticas 4 actualizacin) Numero de repeticiones: 3000 Frecuencia 450 MHz * Calculo del numero de ciclos
Calculo del tiempo minimo Tmin = Nro ciclos x Periodo x nro de repeticiones