Anda di halaman 1dari 95

Arquitectura de Computadores

5to Semestre 2016 (P1)


Ing. Viviana Garcia Macias.

Objetivos
2

Objetivos
Arquitecturas

von Neumann
Otras
Unidad Central de Procesamiento (CPU)

Responsabilidades
Requisitos
Partes de una CPU
ALU
Control & Decode
Registros
Electrnica y buses

Arquitectura de Computadores

ndice
3

Captulo 1 : Arquitecturas

3. Arquitecturas
3.1 von Neumann

3.2 Harvard
3.3 Otras (Multiprocesador, Sistemas distribuidos)

Arquitectura de Computadores

Introduccin
Captulo 1 : Arquitecturas

Arquitectura de Computadores
Corresponde a la estructura, organizacin, e
interconexin de las diversas partes de un
computador

Arquitectura del set de instrucciones

Cantidad de instrucciones
Tamao de las instrucciones
Maneras de acceder a memoria

Organizacin funcional

Registros
Interconexin entre los componentes
Mecansmos de Entrada/Salida (I/O)
Jerarquas de memoria

Arquitectura de Computadores

Introduccin
Captulo
3 : Arquitecturas
5

Que hace un computador.


Almacenar Datos (leer - escribir).
Almacenar Programas.
Ejecutar operaciones sobre datos.
Ejecutar algoritmos.
Recibir nuevos datos.
Entregar resultados.

Arquitectura de Computadores

ndice
6

Captulo 1 : Arquitecturas

3.1 von Neumann


3.2 Harvard

3.3 Otras (Multiprocesador, Sistemas distribuidos)

Arquitectura de Computadores

Introduccin
7

Captulo 1 : Arquitecturas von Neumann

John von Neumann (se pronuncia fon


noiman)
(28 de diciembre de 1903 - 8 de febrero de 1957)

Fue un matemtico hngaroestadounidense, de ascendencia juda.

Fue pionero de la computadora digital


moderna y de la aplicacin de la teora
operadora a la mecnica cuntica.
Particip del Proyecto Manhattan

Arquitectura de Computadores

Introduccin
8

Captulo 1 : Arquitecturas von Neumann

Trabaj con Eckert y Mauchly en la


Universidad de Pennsylvania, donde
public un artculo acerca del
almacenamiento de programas.
El concepto de programa almacenado
permiti la lectura de un programa
directamente desde la memoria del
computador, as como la ejecucin
de las instrucciones del mismo sin
necesidad de un medio externo
(cinta).

Arquitectura de Computadores

Arquitectura de von Neumann


9

Captulo 1 : Arquitecturas von Neumann

John von Neumann propuso una manera de


estructurar un computador.
Almacenar Datos (leer - escribir).
Almacenar Programas.

Memoria

Ejecutar operaciones sobre datos.


Ejecutar algoritmos.
Recibir nuevos datos.
Entregar resultados.

Arquitectura de Computadores

CPU

Input/Output

Arquitectura de von Neumann


Captulo
1 : Arquitecturas von Neumann
10

CPU, Memoria e I/O se comunican a travs de Buses.

Data Bus
Control
Memoria

CPU

I/O

Control
Address Bus
Arquitectura de Computadores

ndice
Captulo
1 : Arquitecturas
11

3.1 von Neumann


3.2 Harvard

3.3 Otras (Multiprocesador, Sistemas distribuidos)

Arquitectura de Computadores

Arquitectura Harvard
Captulo
1 : Arquitecturas - Harvard
12

Utiliza 2 memorias independientes


Datos
Instrucciones

El trmino proviene de la computadora Harvard Mark


I, que almacenaba las instrucciones en cintas
perforadas y los datos en interruptores.

Arquitectura de Computadores

Arquitectura Harvard
Captulo
1 : Arquitecturas - Comparacin
13

Ventajas de la arquitectura Harvard


Instrucciones y datos de distinto largo
Memorias de distinto tamao
bits de direccionamiento distintos

Memorias con distinta tecnologa


Disminuyo el cuello de botella en el acceso a memoria
En controladores embebidos:
RAM para los datos
ROM para las instrucciones
Arquitectura de Computadores

Arquitectura de von Neumann


Captulo 1 : Arquitecturas - Comparacin

Ventajas de la arquitectura de von Neumann


Uso mas eficiente de la memoria
Jerarqua de memoria no requiere estar dividida en 2

Ms simple arquitectnicamente
Un solo tipo de instrucciones para acceder a memoria
Un solo bus de datos y de direcciones
Una misma forma de acceso a datos e instrucciones

Mayor flexibilidad
til para el sistema operativo
Paginacin a disco
Cdigo automodificante

CPU con menos operaciones y mas flexible

14

Arquitectura de Computadores

ndice
15

Captulo 1 : Arquitecturas

3.1 von Neumann


3.2 Harvard

3.3 Otras (Multiprocesador, Sistemas distribuidos)

Arquitectura de Computadores

Multiprocesador
16

Captulo 1 : Arquitecturas

Procesador

Procesador

Procesador

Procesador

Memoria
local *

Memoria
local

Memoria
local

Memoria
local

Memoria Principal

I/O

* Memoria Local: mantiene


copia local de una porcin de la memoria principal
Arquitectura deuna
Computadores

Multiprocesador
17

Captulo 1 : Arquitecturas

Ventajas
Procesamiento paralelo
Cercana entre CPUs permite altas tasas de
transferencia de datos

Desventajas
No todo es paralelizable

Problemas de coherencia de memoria local con


memoria principal
Arquitectura de Computadores

Sistemas distribuidos
18

Captulo 1 : Arquitecturas

Procesador

Procesador

Memoria

Memoria

Procesador

Memoria
I/O

I/O

Red de interconexin

Arquitectura de Computadores

I/O

Sistemas distribuidos
Captulo
3 : Arquitecturas
19

Cada nodo funciona como un computador


independiente

Se comunican por red


Distintas topologas: estrella, anillo, etc.

Red de interconexin
Arquitectura de Computadores

Sistemas distribuidos
20

Ventajas

Captulo 1 : Arquitecturas

Procesamiento paralelo
Facilidad de incorporar y quitar
nodos del sistema

Desventajas

No todo es paralelizable
Overhead en la transferencia de datos es
considerablemente mayor
Problemas de coherencia de memorias
Arquitectura de Computadores

ndice
21

Captulo 2 : Unidad de Procesamiento Central (CPU)

4.Unidad de Central de Procesamiento (CPU)


4.1 Partes de la CPU.
4.2 Ciclo de la Instruccin.
4.3 Conjunto de Instrucciones y tipos de
funcionalidad.
4.4 Diseo de una CPU bsica.
4.5 CISC/RISC.
4.6 Modos de direccionamiento.
4.7 Instrucciones en lenguaje de mquina.
4.8 Subrutinas y Manejo de Stack.
4.9 Interrupciones de software y hadware.
Arquitectura de Computadores

Introduccin
Captulo 2 : Unidad de Procesamiento Central (CPU)

Unidad Central de Procesamiento


(CPU o procesador)

Componente principal de un computador,


encargado del control de flujo, decodificacin
y ejecucin de instrucciones, y
procesamiento y transferencia de datos.

Cerebro del computador


22

Arquitectura de Computadores

ndice
23

Captulo 2 : Unidad de Procesamiento Central (CPU)

4.1 Partes de la CPU.


4.2 Ciclo de la Instruccin.

4.3 Conjunto de Instrucciones y tipos de funcionalidad.


4.4 Diseo de una CPU bsica.
4.5 CISC/RISC.
4.6 Modos de direccionamiento.
4.7 Instrucciones en lenguaje de mquina.
4.8 Subrutinas y Manejo de Stack.
4.9 Interrupciones de software y hadware.

Arquitectura de Computadores

R.Mitnik

Partes de la CPU
24

Captulo 2 : Unidad de Procesamiento Central (CPU)

Responsabilidades
Ejecutar Operaciones y Algoritmos
Controlar Flujo del Programa
Controlar Circuitos Internos

Arquitectura de Computadores

Partes de la CPU
Captulo
2 : Unidad de Procesamiento Central (CPU)
25

Ejecutar Operaciones y Algoritmos

Memoria

1101110111
Load (7h)
01 1100011001
00

Requisitos:
Procesar
instruccin

Leer datos
Almacenar
Temporalmente los
datos

ALU

ALU FPU
Almacenar
Resultados
Arquitectura de Computadores

02

1110001010

03

1110000000

04

0110011000

05

0000011000

06

0001111000

07

0000000100

08

1111000000

09

0000000101

0A 0000000000
0000001001
R.Mitnik

Partes de la CPU
Captulo
2 : Unidad de Procesamiento Central (CPU)
26

Ej. programa anterior.

MOVE(0Ah)
GOTO(08h)

ALU

Control de Flujo

Instruction Pointer
Mecanismos de Salto
Arquitectura de Computadores

GOTO(08h)
1110000000

04

0110011000

05

0000011000

06

0001111000

07

0000000100

08

1111000000

09

0000000101

01

ADD (09h)

Requisitos

03

00

LOAD (07h)

02

Memoria
1101110111
LOAD (07h)
1100011001
ADD(09h)
1110001010
MOVE(0Ah)

0A 0000000000
0000001001

4
5

Partes de la CPU
Captulo
2 : Unidad de Procesamiento Central (CPU)
27

Ej. implementacin

Circuitos internos

contador
00000000
memoria

Requisitos
Buses internos.
Seales de control.
ALU (funcin)
Mux
Registros (Load,etc)
Contador (Inc,
Load,etc)

00

LOAD (07h)

01

ADD(09h)

02

MOVE(0Ah)

03

GOTO(08h)

04

0110011000

05

0000011000

06

0001111000

07

0000000100

08

1111000000

09

0000000101

0A

0000000000

Arquitectura de Computadores

m
u
x

A
L
U

registro
0001111000

Partes de la CPU
Captulo
2 : Unidad de Procesamiento Central (CPU)
28

Control & Decode procesa las instrucciones.


ROM
Espacio de Direccionamiento determina cantidad
de instrucciones
Las salidas son seales de control para ejecutar una
instruccin.

Control & Decode


Instruccin
de k bits

2k palabras
n bits por palabra

Arquitectura de Computadores

n seales de
control para
la instruccin

R.Mitnik

Partes de la CPU
Captulo
4 : Unidad de Procesamiento Central (CPU)
29

Registros de la CPU

Arquitectura de Computadores

Registros de la CPU
Captulo
4 : Unidad de Procesamiento Central (CPU) Partes de la CPU
30

Un procesador incluye:
registros visibles para el usuario
registros de control/estado.

Registros Visibles.

Pueden referenciarse en las instrucciones.


Se clasifican en:
Uso general.
Datos.
Direcciones.
Cdigos de Condicin
Arquitectura de Computadores

Registros de la CPU
Captulo
4 : Unidad de Procesamiento Central (CPU) Partes de la CPU
31

Cuntos registros de propsito general?

ptimo entre 8 y 32

Pocos registros demasiados accesos a memoria.


Muchos registros no reducen considerablemente las
referencias a memoria
Muchos registros CPU ms compleja.

Arquitectura de Computadores

Registros de la CPU
Captulo
4 : Unidad de Procesamiento Central (CPU) Partes de la CPU
32

De cuntos bits deben ser los registros?

Deben ser de un nmero suficiente tal que se


puedan manejar las direcciones a memoria.

Adems deben ser capaces de manejar una


palabra completa.

A veces se combinan dos registros para


conformar uno solo.
Arquitectura de Computadores

Registros de la CPU
Captulo
4 : Unidad de Procesamiento Central (CPU) Partes de la CPU
33

Registros Control/Estado.

controlar el funcionamiento de la CPU


PC = program counter: contiene la direccin de la
instruccin a captar
IR = instruction register: contiene la ltima
instruccin captada
MAR = memory address register: contiene la
direccin de una posicin de memoria.
MBR = memory buffer register: contiene la palabra
de datos a escribir en memoria, o la palabra leda
ms recientemente

Arquitectura de Computadores

Registros de la CPU
Captulo
4 : Unidad de Procesamiento Central (CPU) Partes de la CPU
34

Registros Control/Estado.

Adicionalmente se cuenta con PSW = program


status word:
Signo: contiene elbit de signo del resultado de ltima
operacin
Cero: puesto a uno cuando el resultado es 0
Acarreo: puesto a uno si en la suma hay acarreo o
en la resta hay un adeudo del bit ms significativo
Igual: puesto a uno si el el resultado de una
comparacin lgica es la igualdad
Desbordamiento: Usado para indicar
desbordamiento aritmtico
Arquitectura de Computadores

Registros de la CPU
Captulo
4 : Unidad de Procesamiento Central (CPU) Partes de la CPU
35

Registros Control/Estado.

Adicionalmente se cuenta con PSW = program


status word:
(continuacin)

Interrupciones: usado para permitir o inhabilitar


interrupciones
Supervisor: indica si la CPU funciona en modo
supervisor o usuario. nicamente en modo
supervisor se pueden ejecutar ciertas instrucciones
privilegiadas y se puede acceder a ciertas reas de
memoria

Arquitectura de Computadores

Partes de la CPU
Captulo
4 : Unidad de Procesamiento Central (CPU)
36

Ej.
Implementaci
n modificado

contador
00000000
memoria

00

LOAD (07)

01

ADD(09)

02

GOTO(0A)

03

1110000000

04

0110011000

05

0000011000

06

0001111000

07

0000000100

08

1111000000

09

0000000101

0A

0000000000

Arquitectura de Computadores

m
u
x

registro
0001111000

A
L
U

IR

Control &
Decode

Seales de
Control

Partes de la CPU
Captulo
4 : Unidad de Procesamiento Central (CPU)
37

Partes de la CPU.

Registros
Program Counter
Instruction Register
Uso general
ALU
FPU
Control & Decode
Buses
Circuitera

Arquitectura de Computadores

Resumen
38

Resumen
Distintas arquitecturas
Partes de la CPU y sus funciones
Registros
Visibles
Control/Estado
ALU, FPU
Control & Decode
Decodificacin de instrucciones
Seales de control
Buses Internos
Circuitera
Arquitectura de Computadores

Organizacin de
computadores
Procesadores
Memorias

Dispositivos de E/S

Computador

Procesador, memoria, dispositivos de E/S


CPU
Unidad de
control

Dispositivos de E/S

Unidad
aritmtica y
lgica

Registros

Memoria
principal

Disco

Impresora

Bus

Procesadores

La CPU es el cerebro del computador.


Funcin: ejecutar programas almacenados en la memoria principal.
Est compuesto de:
UC: se encarga de leer una tras otra las instrucciones del
programa en MP y generar las seales necesarias para su
ejecucin. Estas seales estn sincronizadas con un reloj.
UAL: encargada de realizar operaciones elementales sobre
los datos de la memoria.
Registros: pequea memoria de alta velocidad para
almacenar resultados intermedios y cierta informacin de
control (ej: PC)

Ejecucin de una
instruccin

Extrae de la memoria la siguiente instruccin, la lleva al IR


Incrementa PC
Determina el tipo de la instruccin
Comprueba si la instruccin necesita datos de la memoria
Extrae los datos y los carga en los registros
Ejecuta la instruccin
Almacena los resultados en el lugar apropiado
Va al primer paso

Ejecucin de instrucciones
en paralelo
Mquinas cada vez ms rpidas
Existen lmites fsicos
Es muy caro

Se puede conseguir con varias ALUs o varias CPUs


Las mquinas paralelas se dividen en 3 categoras (Flynn,1972),
segn el n de instrucciones y datos:
SISD: flujo

de instrucciones simple, flujo de datos simple.

SIMD: flujo

de instrucciones simple, flujo de datos mltiple.

MIMD: flujo

de instruc. mltiple, flujo de datos mltiple.

Mquinas SISD

Un program y un conjunto de datos.


Se extrae una instruccin y se ejecuta, se extrae otra y as.
Se logra el paralelismo extrayendo e iniciando la siguiente
instruccin antes de terminar aquella en curso.

Dos modelos:
varias unidades funcionales
procesamiento en lnea

Varias unidades funcionales


La UC extrae una inst. , la manda a una unidad funcional, extrae la siguiente y as hasta que no
se pueda avanzar. Se supone que el tiempo en ejecutar una instruccin es mayor que en
extraerla.
Registros

Procesamiento en lnea
Consiste en separar la ejecucin de cada instruccin en partes. Cada parte la ejecuta una
unidad de procesamiento de la CPU.
UP1
Unidad de
extraccin de
instruccin

UP2

UP3

UP4

UP5

Analizador de
instrucciones

Unidad de
clculo de
direcciones

Unidad de
extraccin
de datos

Unidad de
ejecucin de
instrucciones

P1
P2

1
8

P3

1
8

2
1

3
2

P4
P5
1
8

5
4
3
6

6
5
4
7

7
6
5
t

Mquinas SIMD

Un programa con mltiples conjuntos de datos


Dos modelos:
Mquinas vectoriales
Procesadores de arreglos

Mquina vectorial

Para cada entrada de la ALU se tiene un vector con n entradas


y no una sla variable.
La ALU es una unidad vectorial capaz de realizar operaciones
con vectores.
vector de entrada A

vector de entrada B

vector de salida A+B

Procesador de arreglos
Consiste de una malla cuadrangular de elementos procesador/memoria, que reciben las
instrucciones de la UC, stas son ejecutadas por todos los procesadores.

U.C

malla de procesador-memoria de 8x8

Mquinas MIMD

Distintas CPUs manejan distintos programas compartiendo a veces


una memoria comn.
Multiprocesador:

CPU

CPU

CPU

CPU

Memoria
compartida

Dificultades si un gran n de procesadores pretende acceder a la


Bus
memoria a travs del bus.

Mquinas MIMD

Posibles soluciones:
Memoria local a cada procesador donde se almacena datos y
programas no comunes.

memorias locales
CPU

CPU

CPU

CPU

memoria compartida

Tener ms de un bus.
Usar memoria cach: tcnica para mantener en cada procesador las
palabras de memoria usadas con mayor frecuencia.

Memoria

Para almacenar programas y datos.


Unidad bsica el bit.
Se divide en celdas.
Cada celda se identifica por una direccin.

Byte = 8 bits : unidad ms pequea direccionable


Los bytes se agrupan en palabras.
La mayor parte de las instrucciones operan sobre palabras.

Memoria

Los bytes en una palabra se pueden numerar de izquierda a


derecha (big endian, Motorola) o de derecha a izquierda
(little endian, Intel).
Problema: la falta de una norma en el ordenamiento produce
incompatibilidad en la transferecia de datos. No se soluciona
con el intercambio de los bytes.
Posible solucin: incluir un encabezado en los datos que indique
el tipo y el tamao de los datos.

Memoria secundaria

Cintas magnticas
Discos magnticos
Discos flexibles
Discos pticos

Discos RAM
Se utiliza como disco una parte de la memoria principal previamente
reservada.
Ventajas: acceso instantneo, facilidad para un ordenador sin disco.

Dispositivos de E/S

Para la comunicacin con el exterior.


Distintos dipositivos:
Terminales
Modems
Ratones
Impresoras

Dos enfoques diferentes.

Enfoque 1

Utilizado
en grandes computadores.
Memoria
principal
Bus de memoria
Bus de E/S

CPU

Procesadores de E/S
(canales)

Controlador
de terminales
Impresora
Terminales

Discos

Enfoque 2

Utilizado en computadores personales


Monitor
Teclado

CPU

Memoria

Contr.
de video

Contr. de
teclado

Unidad
de disco

Contr. de
disco

El controlador maneja la E/S al dispositivo y el acceso al bus.


Funcionan con interrupciones o mediante DMA
El arbitrador decide quin accede al bus.

Bus

Rendimiento de la CPU
y sus factores

Rendimiento

59

Cmo se puede definir el rendimiento de un sistema


computacional?
Tiempo de respuesta (tiempo de ejecucin). Tiempo
entre que llega y sale una tarea.

Throughput. Cantidad de trabajo hecho en un tiempo


dado.

Una disminucin del tiempo de respuesta implica un


aumento de throughput.
Pero, un aumento de throughput no siempre implica
una disminucin del tiempo de respuesta.

Arquitectura de Computadoras

Ejemplo

60

Reemplazar CPUs viejas por nuevas disminuye el


tiempo de respuesta y aumenta el throughput
(cantidad de trabajo hecho).
Aumentar el nmero de computadoras aumenta el
throughput pero no disminuye el tiempo de respuesta.
A menos que hubiera colas. En este caso, el aumento
en el nmero de computadoras aumenta el
throughput y si disminuye el tiempo de respuesta.

Arquitectura de Computadoras

Definicin de rendimiento
61

El rendimiento de una computadora X es:

RendimientoX

1
Tiempo de ejecucinX

Si una computadora X tiene mejor rendimiento que una


computadora Y:

RendimientoX > RendimientoY


1 / Tiempo de ejecucinX > 1 / Tiempo de ejecucinY

Tiempo de ejecucinX < Tiempo de ejecucinY


Es decir, X es ms rpida que Y.
Arquitectura de Computadoras

62

Rendimiento relativo

X es n veces ms rpida que Y significa:

RendimientoX
n 1
Rendimient
oY
Alternativamente:
Tiempo de ejecucinY
n 1
Tiempo de ejecucinX

Arquitectura de Computadoras

Ejemplo

63

La computadora A corre un programa en 10


segundos y la computadora B en 15 segundos.

RendimientoA / RendimientoB =
Tiempo de ejecucinB / Tiempo de ejecucinA
=
15 / 10 =

1.5
Conclusin: A es 1.5 veces ms rpida que B.
Arquitectura de Computadoras

Tiempo

64

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, recoleccin de basura, etc.

Arquitectura de Computadoras

Tiempo

65

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 cdigo 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 memoria.

Arquitectura de Computadoras

Tiempo

66

En conclusin, 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 mtricas que veremos se enfocan al rendimiento


de la CPU pero pueden aplicarse tambin al
rendimiento del sistema.

En general, se puede usar cualquier mtrica,


siempre y cuando se mida y compare
consistentemente.

Arquitectura de Computadoras

Reloj

67

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).

Arquitectura de Computadoras

68

Rendimiento de la CPU
El tiempo de ejecucin 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

Arquitectura de Computadoras

69

Rendimiento de la CPU
El tiempo de CPU de un programa puede mejorar
(disminuir) si:
El programa corre ms rpido (usa menos ciclos de
reloj).

El periodo de reloj de la CPU disminuye y por lo tanto,


aumenta la velocidad del reloj.

Arquitectura de Computadoras

Ejemplo

70

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 diseo, B va a necesitar 1.2 veces
mas ciclos de reloj que A para hacer la misma tarea.
Cul debe ser la velocidad de reloj de B para
cumplir la meta?

Arquitectura de Computadoras

Ejemplo

71

Encontrar el nmero 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.
Arquitectura de Computadoras

Ejemplo

72

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
Arquitectura de Computadoras

Ciclos de reloj

73

En la ecuacin

Tiempo CPU = Ciclos de reloj / Velocidad


del reloj
es tedioso contar el nmero de ciclos de reloj que usa
un programa.
Otra opcin:

Ciclos de reloj = Nmero de instrucciones x


CPI
Arquitectura de Computadoras

CPI = Promedio de ciclos de reloj por instruccin.

CPI

74

El CPI es til para comparar dos implementaciones de


un conjunto de instrucciones.
Para esto, se comparan los tiempos de ejecucin de
un mismo programa en las dos implementaciones.

Arquitectura de Computadoras

Ejemplo

75

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 ms rpida y en cuanto?

Arquitectura de Computadoras

Ejemplo

76

Se usan la ecuaciones:

Tiempo CPU = Ciclos de reloj para el


programa x Periodo del reloj
Ciclos de reloj = Nmero de instrucciones x
CPI
Tiempo de CPUA / Tiempo de CPUB = n

Arquitectura de Computadoras

Ejemplo

77

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 = Nmero de instruccionesA


x CPIA

=Ix2
Al final

Tiempo CPUA = I x 2 x 250 ps


Arquitectura de Computadoras

= I x 500 ps

Ejemplo

78

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 = Nmero de instruccionesB x


CPIB

= I x 1.2
Al final

Tiempo CPUB = I x 1.2 x 500 ps

Arquitectura de Computadoras

= I x 600 ps

79

Conclusin del ejemplo


Tiempo CPUA = I x 500 ps.
Tiempo CPUB = I x 600 ps.
A es ms rpida que B.

Tiempo de CPUB / Tiempo de CPUA


I x 600 ps / I x 500 ps = 1.2
A es ms rpida que B 1.2 veces.

Arquitectura de Computadoras

80

Rendimiento de la CPU
La ecuacin de rendimiento de la CPU puede
reescribirse como:

Tiempo CPU = Nmero de instrucciones x CPI x


Periodo del reloj
Alternativamente

Tiempo CPU = (Nmero de instrucciones x CPI) /


Velocidad del reloj
No es necesario contar el nmero de ciclos de reloj
Arquitectura de Computadoras
del programa.

Factores del rendimiento

81

Los factores son los elementos de la ecuacin de


rendimiento de la CPU.
1.

Nmero de instrucciones del programa.

2.

CPI (Nmero de ciclos por instruccin).

3.

Periodo de reloj / velocidad del reloj.

En vez del nmero de instrucciones y el CPI se puede


usar el nmero de ciclos del programa.

Arquitectura de Computadoras

82

Factores del rendimiento


Cmo se obtiene cada elemento de la ecuacin 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 documentacin de la computadora.
El nmero de instrucciones y el CPI pueden ser ms
complicados.

Arquitectura de Computadoras

Universida
d de
Sonora

83

Factores del rendimiento


El nmero 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 estn disponibles).

El CPI se puede obtener:


Usando un simulador de la implementacin.
Usando contadores de hardware.

A veces es ms fcil aproximar el nmero de ciclos


como se ver ms adelante.

Arquitectura de Computadoras

84

Consideraciones
El nmero de instrucciones depende del conjunto de
instrucciones (el ISA) y no de la implementacin.
El CPI depende de la implementacin 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.

Arquitectura de Computadoras

Nmero de ciclos

85

El nmero de ciclos se puede aproximar usando:

donde
Ci es el nmero de instrucciones de clase i ejecutadas.
CPIi es el promedio del nmero de ciclos por instruccin
para la clase i.

n es el nmero de clases de instrucciones.

Arquitectura de Computadoras

Ejemplo
86

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

CPI por clase

CPI

Arquitectura de Computadoras

Ejemplo
87

Hay dos secuencias de cdigo, S1 y S2, que se quieren comparar.


Cada secuencia requiere el siguiente nmero de instrucciones de
cada clase:

Secuencia
de cdigo

Nmero de instrucciones de cada clase


A
B
C

S1

S2

Arquitectura de Computadoras

Ejemplo

88

1.

Qu secuencia ejecuta ms instrucciones?

2.

Qu secuencia es ms rpida?

3.

Cul es el CPI de cada secuencia?

Arquitectura de Computadoras

Ejemplo

89

1.

Qu secuencia ejecuta ms instrucciones?


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

S1 ejecuta menos instrucciones que S2.

Arquitectura de Computadoras

Ejemplo

90

2.

Qu secuencia es ms rpida?
es decir, Qu secuencia ejecuta menos ciclos?

Se usa la ecuacin:

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 ms rpida que S1.

Arquitectura de Computadoras

Ejemplo

91

3.

Cul es el CPI de cada secuencia?

Se usa la ecuacin:

CPI = Nmero de ciclos / Nmero de


instrucciones.

Para S1 CPI = 10 / 5 = 2

Para S2 CPI = 9 / 6 = 1.5

Arquitectura de Computadoras

Resumen
92

Los factores bsicos del rendimiento de la CPU y sus medidas.

Componente

Unidad de medida

Tiempo de ejecucin de CPU para un Segundos.


programa.
Nmero de instrucciones.

Instrucciones ejecutadas por el


programa.

Ciclos de reloj por instruccin (CPI).

Nmero de ciclos de reloj en


promedio por instruccin.

Periodo de reloj.

Segundos por ciclo de reloj.

Arquitectura de Computadoras

Resumen

93

Sin olvidarse de:


Nmero de ciclos de reloj del programa = nmero de
instrucciones x CPI.
Velocidad del reloj = 1 / periodo de reloj.

Arquitectura de Computadoras

Universida
d de
Sonora

Resumen

94

Al comparar dos computadoras no basta fijarse en


una sola medida, hay que ver las 3 al mismo tiempo:
Nmero de instrucciones.
CPI.

Periodo de reloj.

Las 3 medidas juntas forman el tiempo de ejecucin


de CPU del programa.

Arquitectura de Computadoras

Universida
d de
Sonora

Resumen
95

Las partes de un programa afectan su tiempo de ejecucin.

Componente

Qu afectan?

Algoritmo.

Nmero de instrucciones.
Tal vez el CPI.

Lenguaje de programacin.

Nmero de instrucciones.
CPI.

Compilador

Nmero de instrucciones.
CPI.

ISA (conjunto de
instrucciones)

Nmero de instrucciones.
CPI.
Periodo de reloj.

Arquitectura de Computadoras

Universida
d de
Sonora

Anda mungkin juga menyukai