PDF de programación - Tema 4: Rendimiento del procesador

Imágen de pdf Tema 4: Rendimiento del procesador

Tema 4: Rendimiento del procesadorgráfica de visualizaciones

Publicado el 5 de Abril del 2021
194 visualizaciones desde el 5 de Abril del 2021
475,1 KB
39 paginas
Creado hace 9a (02/10/2011)
Estructura de Computadores, Facultad de Informática, UCM, Curso 11-12



Tema 4: Rendimiento del procesador.



Objetivos:



Introducir los conceptos y criterios que permitan medir de forma cuantitativa el
rendimiento de los procesadores.

 Estudiar los diferentes patrones de medida (benchmark).
 Analizar de forma cualitativa y con datos reales la influencia que tienen las diferentes

alternativas de diseño, estudiadas en temas anteriores, sobre el rendimiento.

 Sintetizar el resultado del anterior análisis en un conjunto de alternativas de diseño que
son determinantes para aumentar el rendimiento del procesador y que se concretan en la
alternativa RISC.

 Analizar la forma de explotar al máximo el rendimiento del procesador desde análisis del

programa realizado por el compilador.

Contenido:

1. Medidas del rendimiento de un computador

2. Patrones de medida (Benchmarks)

3. Influencia en el rendimiento de las alternativas de diseño

4. Influencia de los compiladores de lenguajes de alto nivel

5. Procesadores RISC y CISC

1. Medidas del rendimiento de un computador

Cuando se quieren comparar diferentes procesadores es necesario establecer el criterio de
medida que permita cuantificar los resultados de la comparación. En este sentido existen dos
conceptos que conviene aclarar previamente: la unidad de medida y el patrón de medida. El
primero se refiere a la métrica utilizada para cuantificar la comparación. Y el segundo a la carga
de trabajo respecto a la que se realiza la comparación.

El tiempo es la unidad de medida por excelencia cuando se comparan varios
procesadores, aunque no siempre coincidan los puntos de vista de los diferentes observadores. Así,
el usuario de un procesador puede decir que el procesador A es mejor que el procesador B cuando A
ejecuta su programa en menor tiempo que B. En cambio el responsable de un centro de cálculo
entenderá que A es mejor que B si es capaz de ejecutar mayor número de trabajos por unidad de
tiempo. El primero estará interesado en el tiempo de respuesta (response time) del procesador
mientras que el segundo lo estará en la productividad (throughput). Pero en ambos casos la clave es
el tiempo: el procesador que realiza la misma cantidad de trabajo en el menor tiempo posible será
el más rápido, la diferencia estriba en si medimos una tarea (tiempo de respuesta) o muchas
(productividad).

El patrón de medida más significativo es el conjunto de programas reales que se
ejecutan en los procesadores. Sin embargo aquí surge de nuevo y con más intensidad la diversidad
de puntos de vista. En efecto, el usuario de un editor de texto querrá medir el rendimiento de un
procesador respecto a la eficiencia para ejecutar su programa, que posiblemente no coincida con el



1

Estructura de Computadores, Facultad de Informática, UCM, Curso 11-12



punto de vista del usuario de un programa de diseño gráfico. Fijar de la forma más objetiva posible
los patrones o programas respecto a los cuales se mida el rendimiento de un procesador será pues
una tarea polémica y siempre cuestionada por la comunidad de interesados en los resultados de la
medida.

1.1. Tiempo de ejecución
El tiempo que tarda un programa en ser ejecutado por un computador puede ser difícil de
medir, debido a los Sistemas Operativos Multitarea y a los dispositivos de E/S, que tienen tiempos
de respuesta que son independientes de la frecuencia de reloj del ordenador. Por ello es necesario
diferenciar entre el tiempo que tarda una CPU en ejecutar el código de un programa, el tiempo que
utiliza el S.O. para realizar sus tareas, y el tiempo necesario para acceder a los dispositivos de E/S.

El tiempo de ejecución de un programa lo dividiremos en las siguientes componentes:
• Tiempo de respuesta
• Tiempo de CPU
A su vez, el tiempo de CPU lo dividimos en:
• Tiempo de CPU utilizado por el usuario.
• Tiempo de CPU utilizado por el S.O.

 Tiempo de respuesta Es el tiempo necesario para completar una tarea, incluyendo los accesos
al disco, a la memoria, las actividades de E/S y los gastos del S.O. Es el tiempo que percibe el
usuario.

 Tiempo de CPU Es el tiempo que tarda en ejecutarse un programa, sin tener en cuenta el
tiempo de espera debido a la E/S o el tiempo utilizado para ejecutar otros programas. Se divide
en:

 Tiempo de CPU utilizado por el usuario. Es el tiempo que la CPU utiliza para ejecutar el
programa del usuario. No se tiene en cuenta el tiempo de espera debido a la E/S o el tiempo
utilizado para ejecutar otros programas

 Tiempo de CPU utilizado por el S.O. Es el tiempo que el S.O. emplea para realizar su

gestión interna.

La función time de Unix produce una salida de la forma: 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

El tiempo de respuesta se utiliza como medida del rendimiento del sistema (con el sistema no
cargado), mientras que el rendimiento de la CPU normalmente hace referencia al tiempo de CPU
del usuario sobre un sistema no cargado.

El tiempo de CPU de un programa podemos expresarlo como:

Tiempo_de_CPU = Número_de_ciclos_de_reloj_de_la_ CPU • Tc
donde Tc = Duración_del_ciclo_de_reloj

Tiempo

_

de

_

CPU



Número

_

de

_

ciclos

_

_

reloj

_

de

_

la

_

CPU



de
Fc



2



donde Fc = Frecuencia_de_reloj = 1/Tc

Estructura de Computadores, Facultad de Informática, UCM, Curso 11-12

Además del número de ciclos de reloj que necesita la ejecución de un programa, también se
puede medir el número de instrucciones NI ejecutadas, y podremos calcular el número medio de
Ciclos de reloj Por Instrucción o CPI como:
_de_

_la_de_

Número

_de_

ciclos

CPU

reloj

CPI 

NI



por lo que el tiempo de CPU podemos expresarlo como:

Tiempo_de_CPU = NI • CPI • Tc.

o bien:

Tiempo

_

de

_

CPU



NI

CPI

Fc



 NI: depende del compilador y la arquitectura utilizada, y se expresa en

 CPI: depende de la arquitectura y estructura (organización) de la máquina, y se expresa en

 Tc: Depende de la estructura y la tecnología de la máquina, y se expresa en segundos/ciclo

instrucciones/programa

ciclos de reloj/instrucción

de reloj

En determinadas situaciones de diseño puede ser útil calcular el número total de ciclos de

reloj de la CPU como:

Número_de_ciclos_de_reloj_de_la_CPU =

CPI 
i NI

i



n

1i


donde NIi representa el número de veces que el grupo de instrucciones i es ejecutado en un
programa, y CPIi representa el número medio de ciclos de reloj para el conjunto de instrucciones i.
El tiempo de CPU se evalúa en este caso mediante una de las 2 siguientes expresiones:

Tiempo_de_CPU =





n



i

1


CPI

i NI


i





 Tc

Tiempo

_

de

_

CPU







n

i
1

CPI

i



NI

i

Fc







El número medio de ciclos por instrucción vendrá dado por:



3

Estructura de Computadores, Facultad de Informática, UCM, Curso 11-12







n

i
1


CPI







CPI

i



NI

i

NI



n

i
1


CPI
(

i



NI
i
NI

)



Esta última expresión calcula el CPI multiplicando cada CPIi individual por la fracción de
ocurrencias de las instrucciones i en el programa. CPIi debe ser medido, y no calculado a partir de
la tabla del manual de referencia, ya que se deben incluir los fallos de caché y otras ineficiencias
del sistema de memoria.

Ejemplo
Se consideran 2 alternativas para implementar el salto condicional en un procesador:
CPU A: Una instrucción de comparación genera el código de condición, y una de salto bifurca

en función del valor de código generado.

CPU B: Una única instrucción de salto que incluye la comparación.
En ambos casos la instrucción de salto consume 2 ciclos de reloj, las demás instrucciones

consumen 1 ciclo. Se ignoran las pérdidas debidas al sistema de memoria.

En la CPU A, el 20% de las instrucciones ejecutadas son saltos condicionales, y como en esta
CPU cada salto es precedido por una comparación, otro 20% de las instrucciones ejecutadas son
comparaciones.

Debido a que la CPU A no incluye la comparación en el salto, su ciclo de reloj es un 25% más

rápido que el de la CPU B.

Bajo estas condiciones ¿Qué CPU es más rápida?
Solución

Comparaciones

Saltos

Otras
instrucciones

CPU A
20 %
20 %

60 %

CPU B
20 %

60 %

100

80



Tc_B/ Tc_A = 1.25 ==> Tc_B = 1.25 • Tc_A
NI_B = 0.8 • NI_A
Tiempo de CPU_A = NI_A • CPI_A • Tc_A
Tiempo de CPU_B = NI_B • CPI_B • Tc_B
Tiempo de CPU_B = (0. 8 • NI_A ) • CPI_B• ( 1.25 • Tc_ A )
Tiempo de CPU_B = (0.8 • 1.25) • NI_A * CPI_B • Tc_A.



4

Estructura de Computadores, Facultad de Informática, UCM, Curso 11-12


CPI_A = (NI_salto_A /NI_A) •CPI_salto + (NI_resto_A/NI_A) •CPI_resto =
(20/100) •2 + (80/100)•1 = 0.2 • 2 + 0.8 • 1 = 1.2
CPI_B = (NI_salto_B /NI_B) •CPI_salto + (NI_resto_B/NI_B) •CPI_resto =
(20/80) •2 + (60/80)•1 = 0.25•2 + 0.75•1 = 1.25
Luego la alternativa de diseño correspondiente a la CPU A sería más rápida. La ganancia de

velocidad de la alternativa A sobre la B valdrá:

Tiempo de CPU_A = 1.2 • NI_A • Tc_A.
Tiempo de CPU_B = 1.25 • NI_A • Tc_A
La ganancia de velocidad valdrá:
Tiempo
25.1
Tiempo
2.1

CPU_B
CPU_A

de
de

0416

.1







1.2. Otros parámetros de rendimiento
 MIPS (Millones de Instrucciones Por Segundo)

MIPS

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

Comentarios de: Tema 4: Rendimiento del procesador (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad