Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Introducción al CPU (página 3)




Enviado por Pablo Turmero



Partes: 1, 2, 3, 4

Monografias.com
MEJORAR LAS PRESTACIONES
Dos opciones
Reducir el número de ciclos de reloj
Reducir el periodo del reloj

Ejemplo:
Un programa corre en 10 segundos en el ordenador X a 2 GHz
¿Cual es el número de ciclos de reloj?
Queremos que el ordenador Y corra el mismo programa en 6 segundos, pero Y necesita un 10% más de ciclos
¿Cual debe ser la frecuencia de reloj de Y?
31

Monografias.com
Solución:

CPU cycles on computer X = 10 sec × 2 × 109 cycles/s = 20 × 109 cycles
CPU cycles on computer Y = 1.1 × 20 × 109 = 22 × 109 cycles
Clock rate for computer Y = 22 × 109 cycles / 6 sec = 3.67 GHz

32
MEJORAR LAS PRESTACIONES

Monografias.com
CICLOS POR INSTRUCCIÓN (CPI)
Las instrucciones necesitan un número diferente de ciclos para ejecutarse.
Multiplicación > suma
Floating point > integer
Accesos a memoria > accesos a registros
CPI: media del número de ciclos de reloj por instrucción.
Ejemplo:
33
CPI= 14/7 = 2

Monografias.com
ECUACIÓN DE PRESTACIONES
34
Tiempo de ejecución CPU

Monografias.com
INFLUENCIA DE FACTORES EN LAS PRESTACIONES
35

Monografias.com
EJEMPLO
Supongamos que tenemos dos implementaciones de la misma ISA
Para un programa dado
La máquina A tiene un rejoj con período 250 ps y CPI de 2.0
La máquina B tiene un rejoj con período 500 ps y CPI de 1.2
¿Qué máquina es más rápida y por cuanto?

36

Monografias.com
SOLUCIÓN

En número de instrucciones es el mismo = I
CPU execution time (A) = I × 2.0 × 250 ps = 500 × I ps
CPU execution time (B) = I × 1.2 × 500 ps = 600 × I ps
La máquina A es más rápida que la B por un factor = 600 * I / 500 * I = 1.2
37

Monografias.com
CÁLCULO DEL CPI
CPIi= ciclos por instrucción del tipo i
Ci= número de instrucciones del tipo i
38

Monografias.com
EJEMPLO
Un diseñador de código decide entre dos secuencias de código para una máquina. Hay tres tipos de instrucciones
Clase A: requiere 1 ciclo/instr
Clase B: requiere 2 ciclo/instr
Clase C: requiere 3 ciclo/instr
El primer código tiene 5 instrucciones: 2 de A, 1 de B, y 2 de C
El segundo código tiene 5 instrucciones: 4 de A, 1 de B, y 1 de C
Calcular los ciclos de CPU para cada código. ¿Cual es más rápido?
¿Cual es la CPI de cada programa?
39

Monografias.com
SOLUCIÓN
CPU cycles (1er programa) = (2×1) + (1×2) + (2×3) = 2+2+6 = 10 cycles
CPU cycles (2º programa) = (4×1) + (1×2) + (1×3) = 4+2+3 = 9 cycles
El segundo programa es más rápido, aún ejecutando una instrucción más.

CPI (1er programa) = 10/5 = 2
CPI (2º programa) = 9/6 = 1.5
40

Monografias.com
EJEMPLO
Dada una ISA para un procesador RISC, ¿cual es la CPI?
¿Cual es el porcentaje de tiempo usado por cada clase de instrucción?

41

Monografias.com
EJEMPLO
Dada una ISA para un procesador RISC, ¿cual es el CPI?
¿Cual es el porcentaje de tiempo usado por cada clase de instrucción?

CPI = 0.5 + 1.0 + 0.3 + 0.4 = 2.2
42

Monografias.com
EJEMPLO: CÁLCULO DEL IMPACTO DE LOS SALTOS
Supongamos inicialmente que todas las instrucciones tardan en ejecutarse 1 ciclo, CPI = 1.0 (ignorando los saltos).
Supongamos que en cada salto se origina una penalización adicional de 3 ciclos.
Si el 30% de las instrucciones del programa fuesen saltos como afectaría al CPI.

43

Monografias.com
EJEMPLO: CÁLCULO DEL IMPACTO DE LOS SALTOS
Supongamos inicialmente que todas las instrucciones tardan en ejecutarse 1ciclo, CPI=1.0 (ignorando los saltos).
Supongamos que en cada salto se origina una penalización adicional de 3 ciclos.
Si el 30% de las instrucciones del programa fuesen saltos como afectaría al CPI.

El nuevo CPI sería: CPI=1.9
Es decir se ha reducido casi a la mitad las prestaciones reales de la CPU.
44

Monografias.com
MIPS COMO MEDIDA DE PRESTACIONES
MIPS: Millions Instructions Per Second
MIPS especifica la tasa de ejecución de instrucciones

De aquí se obtiene:
45

Monografias.com
DESVENTAJAS DEL MIPS
No tiene en cuenta las características de las instrucciones.

Varía entre programas del mismo ordenador.

Puede variar inversamente al rendimiento (ver ejemplo siguiente).
46

Monografias.com
EJEMPLO MIPS
Dos computadores ejecutan el mismo programa en una máquina a 4 GHz con tres tipos de instrucciones
Clase A: requiere 1 ciclo/instr
Clase B: requiere 2 ciclo/instr
Clase C: requiere 3 ciclo/instr
El número de instrucciones producido por la máquina 1:
5 billones Clase A
1 billones Clase B
1 billones Clase C
El número de instrucciones producido por la máquina 2:
10 billones Clase A
1 billones Clase B
1 billones Clase C
¿Qué compilador produce mejor tiempo de ejecución?
¿Y mejor MIPS?
47

Monografias.com
SOLUCIÓN
Ciclos de CPU
CPU cycles (compiler 1) = (5×1 + 1×2 + 1×3)×109 = 10×109 cycles
CPU cycles (compiler 2) = (10×1 + 1×2 + 1×3)×109 = 15×109 cycles

Tiempo de ejecución
Execution time (compiler 1) = 10×109 cycles / 4×109 Hz = 2.5 sec
Execution time (compiler 2) = 15×109 cycles / 4×109 Hz = 3.75 sec

El compilador 1 genera un programa más rápido (menor tiempo de ejecución)
48

Monografias.com
SOLUCIÓN
MIPS rate
MIPS = Instruction Count / (Execution Time × 106)
MIPS (compiler 1) = (5+1+1) × 109 / (2.5 × 106) = 2800
MIPS (compiler 2) = (10+1+1) × 109 / (3.75 × 106) = 3200

El compilador 2 tiene mejor MIPS!
49

Monografias.com
MEDIDAS DE PRESTACIONES: MFLOPS
Millones de instrucciones de coma flotante por segundo.

Sólo puede aplicarse a las instrucciones FP.
Las operaciones de FP no son consistentes entre máquinas.
Ejemplo:
Pentium tiene “sqrt,sin,cos” y CRAY C90 no
La medida cambia mucho dependiendo de la instrucciones FP utilizadas ya que las hay muy lentas.
50

Monografias.com
ACELERACIÓN: “Speed up”
Es la relación entre los tiempos de ejecución de un cierto programa en dos máquinas diferentes.
Aceleración asintótica: es la relación entre los tiempos de ejecución en un sistema monoprocesador y uno con infinitos procesadores.

Aceleración, ejemplo para un caso con dos procesadores frente al monoprocesador
51

Monografias.com
ACELERACIÓN EN UN PROCESADOR SEGMENTADO
Supongamos que un cierto programa tiene N instrucciones y supongamos que se realizan k etapas en la ejecución de cada instrucción en el procesador.
El tiempo de ejecución en un procesador no segmentado es:

El tiempo de ejecución en un procesador segmentado en k etapas es:

La aceleración es por lo tanto:

Expresión que tiende a k cuando N tiende a infinito.
52

Monografias.com
EVALUACIÓN MEDIANTE PROGRAMAS
Cuatro niveles:
Programas reales: compiladores de C, Tex, CAD y Spice
Kernels: extractos pequeños de programas (Livermoore loops, Linpack)
Benchmarks de juego: código con resultado conocido (criba de Erastótenes)
Benchmarks sintéticos: están especialmente diseñados para medir el rendimiento de un componente individual de un ordenador, normalmente llevando el componente escogido a su máxima capacidad.
53

Monografias.com
BENCHMARK SUITES: SPEC
SPEC: System Performance Evaluation Cooperative
SPEC89
Ejecuta 10 programas, devuelve un único valor.
SPEC92
6 programas con números enteros
14 programas con números en fp
Sin límites en las opciones de compilación
SPEC95
10 programas con números enteros
10 programas con números en fp
Dos opciones de compilación
La mejor posible para cada programa
La misma para todos
54

Monografias.com
SPEC2000 “CINT 2000”
CINT2000 (Integer Components of SPEC CPU 2000)
55

Monografias.com
SPEC2000 “CFP 2000”
CFP 2000 (Floating point Components of SPEC CPU 2000)
56

Monografias.com
SPEC PARA PENTIUM III Y PENTIUM IV
57

Monografias.com
SPEC 2GH G5, 3.06GHz XEON, 3GHz PENTIUM 4: SPEED
58

Monografias.com
SPEC 2GH G5, 3.06GHz XEON, 3GHz PENTIUM 4: THROUGHPUT
59

Monografias.com
PROBLEMAS DE LOS PROGRAMAS DE PRUEBA
Problemas:
Los benchmarks reducidos (toys) y los sintéticos no cargan la memoria principal del sistema de forma realista (todo el programa cabe en la memoria cache).
Una vez que el benchmark se estandariza inmediatamente aparecen mejoras específicas para el mismo elevando los resultados de rendimientos.
Si los benchmarks fuesen nuestros programas nos veríamos beneficiados ya que los interesados harían que nuestra aplicación fuese más rápida, pero no es este el caso.
Los benchmarks reales son difíciles de realizar, situación que se agudiza en los casos de:
Máquinas no construidas, simuladores más lentos.
Benchmarks no portables.
Compiladores no disponibles.
60

Partes: 1, 2, 3, 4
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter