PDF de programación - Módulo 3: Diseño del procesador. Rendimiento

Imágen de pdf Módulo 3: Diseño del procesador. Rendimiento

Módulo 3: Diseño del procesador. Rendimientográfica de visualizaciones

Publicado el 13 de Junio del 2019
105 visualizaciones desde el 13 de Junio del 2019
990,8 KB
7 paginas
Creado hace 1a (01/02/2018)
T2

S

I

-


C
E

T2

S

I

-


C
E

1. Rendimiento en los procesadores
2. Medidas de rendimiento
3. Ley de Amdahl

 Bibliografía

– Hennessy Patterson Apendice A, 4ª ed.

1

2

T2

S

I

-


C
E

T2

S

I

-


C
E

“Los buenos programadores se han preocupado siempre
por el rendimiento de sus programas porque la rápida 

obtención de resultados es crucial para crear 

programas de éxito”

D. A. Patterson y J. L. Henessy

3

4

T2

S

I

-


C
E

T2

S

I

-


C
E

 Cuántos ciclos tarda en ejecutarse este programa 

– Depende del procesador: por ejemplo en el MIPS multiciclo

lw r1, 0(r0) → 5
lw r2, 4(r0) → 5
add r3, r1, r2 → 4
beq r3, r5, 1 → 4
sub r3, r3, r5 → 4
sw r3, 8(r0) → 4

 Y cuánto Tiempo

– Depende de la frecuencia del procesador

5

Para poder comparar diferentes procesadores hace falta establecer una medida 
del rendimiento que permita cuantificar los resultados de la comparación

‒ Métrica: establece la unidad de medida, que casi siempre es el tiempo, aunque hay que 

considerar dos aspectos diferentes del tiempo:

‒ Tiempo de ejecución: tiempo que tarda en realizarse una tarea determinada

‒ Productividad (througput): tareas realizadas por unidad de tiempo

El interés por uno u otro aspecto dependerá del punto de vista de quien realiza la medida: 
un usuario querrá minimizar el tiempo de respuesta de su tarea, mientras que el 
responsable de un centro de datos le interesará aumentar el número de trabajos que realiza 
el centro por unidad de tiempo (productividad)

‒ Patrón de medida:  establece los programas que se utilizan para realizar la medida 
(benchmarks). Existen muchos posibles benchmarks aunque los más utilizados son:

‒ Nucleos de programas reales: SPEC
‒ Programas sintéticos: TPC

6

T2

S

I

-


C
E

T2

S

I

-


C
E

 Formado por :

‒ Tiempo de respuesta: tiempo para completar una tarea (que percibe el usuario).
‒ Tiempo de CPU:  tiempo que tarda en ejecutarse un programa, sin contar el tiempo de  

E/S o el tiempo utilizado para ejecutar otros programas. Se divide en:

•Tiempo de CPU utilizado por el usuario: tiempo que la CPU utiliza para ejecutar el 
programa del usuario sin tener en cuenta el tiempo de espera debido a la  E/S 



•Tiempo de CPU utilizado por el S.O: tiempo que el S.O. emplea para realizar su 
gestión interna.
La función time de Unix visualiza estas componentes: 90.7u 12.9s 2:39 65%, donde:







Tiempo de CPU del usuario = 90.7 segundos
Tiempo de CPU utilizado por el sistema = 12.9 segundos
Tiempo de CPU= 90.7 seg.+ 12.9seg = 103.6
Tiempo de respuesta = 2 minutos 39 segundos =159 segundos
Tiempo de CPU = 65% del tiempo de respuesta = 159 segundos*0.65 = 103.6
Tiempo esperando operaciones de E/S y/o el tiempo ejecutando otras tareas 35% 
del tiempo de respuesta = 159 segundos*0.35 = 55.6 segundos

Tiempo de ejecución de un programa

T = N * CPI * Tc

Arquitectura del computador
Compilador

Organización del computador
Tecnología

Arquitectura del computador
Organización del computador

T = tiempo de ejecución del programa
N = número de instrucciones del programa
CPI = número medio de ciclos por instrucción
Tc = tiempo de ciclo



 CPI = Ciclos medios por instrucción 

– Una instrucción necesita varios ciclos de reloj para su ejecución
– Además, diferentes instrucciones tardan diferentes cantidades de tiempo
– CPI= Es una suma ponderada del número de ciclos que tarda por separado 

cada tipo de instrucción

7

8

T2

S

I

-


C
E

T2

S

I

-


C
E

Cálculo del CPI



El número total de ciclos de reloj  de la CPU se calcula como:

Número de ciclos de la CPU CPI NI





n

 

i

1


CPI NI



i

i

• NIi = número de veces que el grupo de instrucciones i es ejecutado en un

programa
CPIi = número medio de ciclos para el conjunto de instrucciones i





Podemos calcular el CPI multiplicando cada CPIi individual por la fracción de ocurrencias
de las instrucciones i en el programa.





CPI



n



i

1






i



CPI NI



i

NI

n



i

1


CPI
(

i



NI
i
NI

)

‒ CPIi debe ser medido, y no calculado a partir de la tabla del manual de referencia

 EL CPI ideal es 1

 Hay pérdidas de rendimiento por las paradas del pipe

CPI real = CPI ideal + Penaliz. media por instrucción =  

1

#

tipos

de

 

i

1


instr
Penaliz 

i Frec
i

 Caso de los saltos. Un programa típico 30% de saltos

– CPI = 1 + ( 1 x 0.3 ) = 1.3

=                                                    

=             =  3.84

Nº Instrucciones x nº de etapas         5          

Nº instrucciones x CPI                

1.3

Speedup

– Eficiencia :

 Speedup real / Speedup ideal =3.84 / 5 = 0.76

 Se pierde un 24 % respecto al caso ideal

9

10

T2

S

I

-


C
E

T2

S

I

-


C
E

MIPS (Millones de Instrucciones Por Segundo)

MIPS



Tiempo

_

de

NI
_

ejecución



10

6

1

CPI

* 10 *

6

Tiempo de ejecución





NI
MIPS

*10

6



Tc CPI

Fc
*10

6

‒ Dependen del repertorio de instrucciones, por lo que resulta un parámetro difícil de

utilizar para comparar máquinas con diferente repertorio de instrucciones

‒ Varían entre programas ejecutados en el mismo computador

‒ Pueden variar inversamente al rendimiento, como ocurre en máquinas con hardware

especial para punto flotante

MIPS

relativos



Tiempo de ejecución en la máquina de referencia



Tiempo de ejecución en la máquina a medir





MIPS

refeerencia

MIPSrefeerencia = 1 (MIPS del VAX-11/780)

MFLOPS (Millones de Operaciones en punto FLotante Por Segundo)

MFLOPS





Número de operaciones en coma flo
Tiempo de ejecución



tan
• 10
6



te de un programa







Existen operaciones en coma flotante rápidas (como la suma) o lentas (como la división),
por lo que puede resultar una medida poco significativa.

Se han utilizado los MFLOPS normalizados, que dan distinto peso a las diferentes
operaciones.

‒ Por ejemplo: suma, resta, comparación y multiplicación se les da peso 1; división y raíz

cuadrada peso 4; y exponenciación, trigonométricas, etc. peso 8:

Productividad (throughput)

‒ Número de tareas ejecutadas en la unidad de tiempo

11

12

T2

S

I

-


C
E

T2

S

I

-


C
E

Ganancia de velocidad (speedup): Ley de Amdahl
La mejora obtenida en el rendimiento global de un computador al utilizar un modo de ejecución
más rápido está limitada por la fracción de tiempo que se puede utilizar dicho modo

•Definición de ganancia de velocidad:

gv

global



Tiempo de ejecución sin mejora Tsin
)
Tiempo de ejecución con mejora Tcon
)

(
(



(1 - fm) * Tsin

Tsin

Tcon = (1 - fm) * Tsin + fm * Tsin / gvmejora

gvglobal

tiempo en
que se
puede
utilizar la
mejora

fm * Tsin

fm * Tsin / gvmejora

tiempo
ahorrado
en la
mejora

gv

global



Tsin
Tcon



Tsin
Tsin



(1



f

m

)*



Tsin

1

(1



fm

)



f
*
m
gv

mejora

1/(1-fm)

gvmejora



1


1

f

m

lim gv

_

global

gv

mejora

 

f

m

gv

mejora

Ejemplo





En un computador se sustituye el disco magnético por otro 10 veces más rápido.
El disco se utiliza sólo el 40% del tiempo de ejecución.
¿Cuál es la ganancia de velocidad global?

fr=0.4
gvmejora = 10

gvglobal

CPU

gvmejora = 10;

fm = 0.4 ==> gvglobal =

1
(1 0.4)





0.4
10

=

1
0.64

= 1.56

lim gvglobal =
gvmejora ‐‐> 

1


(1 0.4)

= 1.666 (máxima ganancia para velocidad del disco infinita)

13

14
  • Links de descarga
http://lwp-l.com/pdf16117

Comentarios de: Módulo 3: Diseño del procesador. Rendimiento (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad