0% encontró este documento útil (0 votos)
45 vistas43 páginas

St314u Cisc Risc

Ggh
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
45 vistas43 páginas

St314u Cisc Risc

Ggh
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

ARQUITECTURA CISC-RISC

ARQUITECTURA DE INSTRUCCIONES
RENDIMIENTO DEL PROCESADOR
 La meta principal es incrementar el rendimiento del
procesador.
 Para esto se deben considerar tres áreas principales.
 La arquitectura.
 La tecnología de proceso.
 El encapsulado
 Tecnología de proceso: se refiere a los materiales y
técnicas utilizadas en la fabricación del circuito integrado.
 Encapsulado: se refiere a cómo se integra un procesador
con su entorno en un sistema funcional.
 Arquitectura: marca la diferencia en el rendimiento de los
procesadores
RENDIMIENTO DEL PROCESADOR
 RISC: Reduced‐Instruction Set Computer
– Término acuñado por Patterson al principio de los 80
– Primeros diseños:
• Berkeley RISC‐I (Patterson)
• Stanford MIPS (Hennessy)
• IBM 801 (Cocke)
– Manifiesto RISC: “Crear ISAs que …”
• Simplifiquen el diseño de los procesadores
• Faciliten la optimización del compilador
• Repertorio de instrucciones relativamente simple
• Modos de direccionamiento asociados a la instrucción
• Formatos de instrucción reducidos
• Hacer rápido lo más usado
– Ejemplos: PowerPC, ARM, SPARC, Alpha, PA‐RISC.
RENDIMIENTO DEL PROCESADOR

 CISC: Complex‐Instruction Set Computer


o El término no existía hasta que apareció “RISC”
o Conjunto de instrucciones complejas de carga variable
o Pocas instrucciones por programa
o Número limitado de registros de propósito general
o Mucho acceso a memoria
o Ejecución de instrucciones en varios ciclos de reloj
o Ejemplos: x86, VAX, Motorola 68000, IBM 360/ 370...
RENDIMIENTO DEL PROCESADOR
 CISC/RISC: Ventajas e inconvenientes
– Ecuación de rendimiento: T CPU= N * CPI * t
– CISC
• Reduce N, utilizando instrucciones complejas de tamaño
variable.
• Aumenta CPI
• Aumenta t: instrucciones más complejas tienden a
utilizar mayor tiempo de ciclo
– RISC
• Reduce CPI, por tener instrucciones más sencillas que
permiten reducir el tiempo de ciclo
• Reduce t
• Aumenta N , ya que los compiladores tienen una labor más
RENDIMIENTO DEL PROCESADOR

 ¿Cómo se puede definir el rendimiento de un sistema


computacional?
 Tiempo de respuesta (tiempo de ejecución). Tiempo
entre que llega y sale una tarea.
 Throughput. Cantidad de trabajo hecho en un tiempo
dado.
 Una disminución del tiempo de respuesta implica un
aumento de throughput.
 Pero, un aumento de throughput no siempre implica
una disminución del tiempo de respuesta.
7
Ejemplo
 Reemplazar CPUs viejas por nuevas disminuye el
tiempo de respuesta y aumenta el throughput
(cantidad de trabajo hecho).
 Aumentar el número de computadoras aumenta el
throughput pero no disminuye el tiempo de respuesta.
 A menos que hubiera colas. En este caso, el aumento
en el número de computadoras aumenta el throughput
y si disminuye el tiempo de respuesta.

8
Definición de rendimiento
 El rendimiento de una computadora X es:
1
Rendimient oX 
Tiempo de ejecución X

 Si una computadora X tiene mejor rendimiento que


una computadora Y:
RendimientoX > RendimientoY
1 / Tiempo de ejecuciónX > 1 / Tiempo de ejecuciónY
Tiempo de ejecuciónX < Tiempo de ejecuciónY

 Es decir, X es más rápida que Y.


9
Rendimiento relativo
 “X es n veces más rápida que Y” significa:
Rendimient oX
 n  1
Rendimient oY
 Alternativamente:
Tiempo de ejecuciónY
 n 1
Tiempo de ejecuciónX

10
Ejemplo
 La computadora A corre un programa en 10 segundos y
la computadora B en 15 segundos.
RendimientoA / RendimientoB =
Tiempo de ejecuciónB / Tiempo de ejecuciónA =
15 / 10 =
1.5

 Conclusión: A es 1.5 veces más rápida que B.

11
Tiempo
1. Tiempo de respuesta. Tiempo total para realizar una
tarea. Incluye:
 Tiempo de espera en cola.
 Accesos a disco.
 Accesos a memoria.
 Actividades de entrada y salida (I/O).
 Overhead del sistema operativo.
Tiempo que el sistema operativo dedica a sus tareas
propias y no al proceso que está ejecutando. Tiempo de
carga, scheduling, recolección de basura, etc.

12
Tiempo
2. Tiempo de CPU. Tiempo que la CPU dedica a la
tarea. No incluye tiempo dedicado a correr otras
tareas.
Se puede dividir en:
 Tiempo de CPU de usuario. Tiempo que la CPU dedica
al código de la tarea.
 Tiempo de CPU de sistema. Tiempo que la CPU dedica
al sistema operativo cuando éste realiza actividades
relacionadas con la tarea. Por ejemplo, tiempo para
cargar la tarea en emoria.

13
Tiempo
 En conclusión, se distinguen dos tiempos:
1. Rendimiento del sistema. Tiempo de respuesta en un
sistema sin carga (sin otros usuarios).
2. Rendimiento de la CPU. Tiempo de CPU de usuario.

 Las métricas que veremos se enfocan al rendimiento


de la CPU pero pueden aplicarse también al
rendimiento del sistema.
 En general, se puede usar cualquier métrica, siempre
y cuando se mida y compare consistentemente.

14
Reloj
El reloj del sistema determina cuando los eventos
ocurren en el hardware.
1. Periodo de reloj. Tiempo en que ocurre un ciclo
(pulso) de reloj Se mide en fracciones de segundo.
Por ejemplo 0.25 nanosegundos.
2. Velocidad de reloj. Es el inverso del periodo. Se mide
en ciclos por segundo. Por ejemplo 4GHz
(gigahertz).

15
Rendimiento de la CPU
 El tiempo de ejecución de CPU de un programa:
Tiempo CPU = Ciclos de reloj para el programa x Periodo del reloj

 Alternativamente
Tiempo CPU = Ciclos de reloj para el programa / Velocidad del reloj

16
Rendimiento de la CPU
 El tiempo de CPU de un programa puede mejorar
(disminuir) si:
 El programa corre más rápido (usa menos ciclos de
reloj).
 El periodo de reloj de la CPU disminuye y por lo tanto,
aumenta la velocidad del reloj.

17
Ejemplo
 Un programa tarda 10 segundos en correr en una
computadora A que tiene una velocidad de reloj de
4 GHZ.
 Se desea construir una computadora B que corra el
mismo programa en 6 segundos.
 Por problemas de diseño, B va a necesitar 1.2 veces mas
ciclos de reloj que A para hacer la misma tarea.
 ¿Cuál debe ser la velocidad de reloj de B para cumplir
la meta?

18
Ejemplo
 Encontrar el número de ciclos que usa el programa
en A.

Tiempo CPUA = Ciclos relojA / Velocidad relojA


10 segundos = Ciclos relojA / (4x109 ciclos / segundo)
Ciclos relojA = 10 segundos x (4x109 ciclos / segundo)
= 40 x 109 ciclos.

 Para correr en A el programa usa 40 x 109 ciclos de


reloj.

19
Ejemplo
 Encontrar la velocidad de B, sabiendo que B va a
necesitar 1.2 x 40 x 109 ciclos para correr el programa.
Tiempo CPUB = Ciclos relojB / Velocidad relojB
6 segundos = (1.2 x 40 x 109 ciclos) / Velocidad relojB
Velocidad relojB = (1.2 x 40 x 109 ciclos) / 6 segundos
= 8 x 109 ciclos / segundo
= 8 GHz

 B debe tener el doble de velocidad que A para ejecutar


el programa en 6 segundos.

20
Ciclos de reloj
 En la ecuación
Tiempo CPU = Ciclos de reloj / Velocidad del reloj

es tedioso contar el número de ciclos de reloj que usa


un programa.

 Otra opción:

Ciclos de reloj = Número de instrucciones x CPI

CPI = Promedio de ciclos de reloj por instrucción.


21
CPI
 El CPI es útil para comparar dos implementaciones de
un conjunto de instrucciones.
 Para esto, se comparan los tiempos de ejecución de un
mismo programa e las dos implementaciones.

22
Ejemplo
 La computadora A tiene un periodo de reloj de 250 ps
(pico segundos) y un CPI = 2 para cierto programa.
 La computadora B tiene un periodo de reloj de 500 ps y
un CPI = 1.2 para el mismo programa.
 ¿Qué computadora es más rápida y en cuanto?

23
Ejemplo
 Se usan la ecuaciones:
 Tiempo CPU = Ciclos de reloj para el programa x Periodo del reloj
 Ciclos de reloj = Número de instrucciones x CPI
 Tiempo de CPUA / Tiempo de CPUB = n

24
Ejemplo
 Tiempo de CPU para A:
Tiempo CPUA = Ciclos de relojA x Periodo del relojA
= Ciclos de relojA x 250 ps
 Ciclos de reloj del programa en la CPU A
Ciclos de relojA = Número de instruccionesA x CPIA
=Ix2
 Al final
Tiempo CPUA = I x 2 x 250 ps
= I x 500 ps

25
Ejemplo
 Tiempo de CPU para B:
Tiempo CPUB = Ciclos de relojB x Periodo del relojB
= Ciclos de relojB x 500 ps
 Ciclos de reloj del programa en la CPU B
Ciclos de relojB = Número de instruccionesB x CPIB
= I x 1.2
 Al final
Tiempo CPUB = I x 1.2 x 500 ps
= I x 600 ps

26
Conclusión del ejemplo
 Tiempo CPUA = I x 500 ps.
 Tiempo CPUB = I x 600 ps.
 A es más rápida que B.
Tiempo de CPUB / Tiempo de CPUA
I x 600 ps / I x 500 ps = 1.2

 A es más rápida que B 1.2 veces.

27
Rendimiento de la CPU
 La ecuación de rendimiento de la CPU puede
reescribirse como:

Tiempo CPU = Número de instrucciones x CPI x Periodo del reloj

 Alternativamente

Tiempo CPU = (Número de instrucciones x CPI) / Velocidad del reloj

 No es necesario contar el número de ciclos de reloj del


programa.

28
Factores del rendimiento
 Los factores son los elementos de la ecuación de
rendimiento de la CPU.
1. Número de instrucciones del programa.
2. CPI (Número de ciclos por instrucción).
3. Periodo de reloj / velocidad del reloj.
 En vez del número de instrucciones y el CPI se puede
usar el número de ciclos del programa.

29
Factores del rendimiento
 ¿Cómo se obtiene cada elemento de la ecuación de
rendimiento?
 El tiempo de CPU se obtiene corriendo el programa.
 La velocidad, y por lo tanto el periodo del reloj, es
parte de la documentación de la computadora.
 El número de instrucciones y el CPI pueden ser más
complicados.

30
Factores del rendimiento
 El número de instrucciones se puede obtener:
 Contando las instrucciones (sin seudos) del programa.
 Usando un simulador del ISA.
 Usando un programa profiler.
 Usando contadores de hardware (si están disponibles).
 El CPI se puede obtener:
 Usando un simulador de la implementación.
 Usando contadores de hardware.
 A veces es más fácil aproximar el número de ciclos
como se verá más adelante.

31
Consideraciones
 El número de instrucciones depende del conjunto de
instrucciones (el ISA) y no de la implementación.
 El CPI depende de la implementación porque depende
de:
 La estructura de la memoria.
 La estructura del procesador.
 Las instrucciones usadas en el programa.
 Dos implementaciones de MIPS pueden tener
distintos CPI.

32
Número de ciclos
 El número de ciclos se puede aproximar usando:

 donde
 Ci es el número de instrucciones de clase i ejecutadas.
 CPIi es el promedio del número de ciclos por instrucción
para la clase i.
 n es el número de clases de instrucciones.

33
Ejemplo
 Hay 3 clases de instrucciones: A, B y C, cada una con su
propio CPI.

CPI por clase


A B C
CPI 1 2 3

34
Ejemplo
 Hay dos secuencias de código, S1 y S2, que se quieren
comparar.
 Cada secuencia requiere el siguiente número de
instrucciones de cada clase:

Secuencia Número de instrucciones de cada clase


de código A B C
S1 2 1 2
S2 4 1 1

35
Ejemplo
1. ¿Qué secuencia ejecuta más instrucciones?
2. ¿Qué secuencia es más rápida?
3. ¿Cuál es el CPI de cada secuencia?

36
Ejemplo
1. ¿Qué secuencia ejecuta más instrucciones?

S1 ejecuta 2 + 1 + 2 = 5 instrucciones.
S2 ejecuta 4 + 1 + 1 = 6 instrucciones.

 S1 ejecuta menos instrucciones que S2.

37
Ejemplo
2. ¿Qué secuencia es más rápida?
es decir, ¿Qué secuencia ejecuta menos ciclos?
 Se usa la ecuación:

Ciclos de S1 = (2 x 1) + (1 x 2) + (2 x 3) = 10 ciclos
Ciclos de S2 = (4 x 1) + (1 x 2) + (1 x 3) = 9 ciclos

 S2 es más rápida que S1.


38
Ejemplo
3. ¿Cuál es el CPI de cada secuencia?
 Se usa la ecuación:

CPI = Número de ciclos / Número de instrucciones.

 Para S1 CPI = 10 / 5 = 2
 Para S2 CPI = 9 / 6 = 1.5

39
Resumen
 Los factores básicos del rendimiento de la CPU y sus
medidas.
Componente Unidad de medida
Tiempo de ejecución de CPU para un Segundos.
programa.
Número de instrucciones. Instrucciones ejecutadas por el
programa.
Ciclos de reloj por instrucción (CPI). Número de ciclos de reloj en
promedio por instrucción.
Periodo de reloj. Segundos por ciclo de reloj.

40
Resumen
 Sin olvidarse de:
 Número de ciclos de reloj del programa = número de
instrucciones x CPI.
 Velocidad del reloj = 1 / periodo de reloj.

41
Resumen
 Al comparar dos computadoras no basta fijarse en una
sola medida, hay que ver las 3 al mismo tiempo:
 Número de instrucciones.
 CPI.
 Periodo de reloj.
 Las 3 medidas juntas forman el tiempo de ejecución de
CPU del programa.

42
Resumen
 Las partes de un programa afectan su tiempo de
ejecución.
Componente ¿Qué afectan?
Algoritmo. Número de instrucciones.
Tal vez el CPI.
Lenguaje de programación. Número de instrucciones.
CPI.
Compilador Número de instrucciones.
CPI.
ISA (conjunto de Número de instrucciones.
instrucciones) CPI.
Periodo de reloj.

43

También podría gustarte