Вы находитесь на странице: 1из 44

Tema 1: Introduccin a los computadores

y representacin de la informacin.
Grado en Ingeniera de la Salud
Arquitectura de Computadores y Sistemas Operativos

ndice de contenidos

1. Introduccin. Arquitectura Von Neumann.


2. Prestaciones y medidas del rendimiento
3. Representacin de los datos: Sistemas de
numeracin
4. Representacin de las instrucciones: Lenguaje
ensamblador

Historia de los computadores

baco chino (500 adC)


Realiza operaciones aritmticas
Primera calculadora mecnica

Pascalina (1642)
Calculadora mecnica inventada por
Blaise Pascal
Suma y resta nmeros de hasta 7
cifras por medio de un mecanismo
de ruedas y engranajes
En 1673 Gottfried von Leibniz
modica la pascalina y crea la
primera calculadora de propsito
general

baco

Pascalina

Historia de los computadores

La tarjeta perforada (1801)


Joseph Marie Jacquard utiliza
tarjetas perforadas para manejar
agujas de tejer en telares mecnicos
Posteriormente Hernan Hollenith
utiliz las tarjetas perforadas para
almacenar datos en un computador.

Control de telar con tarjetas

Tarjeta perforada en blanco

Historia de los computadores

Mquina diferencial (1822)


Calculadora mecnica
introducida por Charles
Babbage para tabular
funciones polinmicas
En 1833 Babbage propone el
diseo de un computador
moderno de uso general (la
mquina analtica)
Ada Augusta Lovelace
propone utilizar tarjetas
perforadas para la mquina
de Babbage

Rplica de la mquina diferencial

Historia de los computadores


Mark I (1944)
Construida por Howard H. Aiken en
la Universidad de Harvard
Empleaba seales electromagnticas
para mover las partes mecnicas

ENIAC (1946)
Electronic Numerical Integrator
And Computer
Construida por John Presper Eckert y
John William Mauchly en la
Universidad de Pennsylvania
Utilizaba tubos de vaco
Utilizada para investigacin balstica,
ocupaba 167m2

Mark I

ENIAC

Historia de los computadores


Primera generacin (19511958)
Tubos de vaco
Ingreso de datos por medio de tarjetas
perforadas
Alto consumo de energa y necesidades de
ventilacin
Uso de tambores giratorios para el
almacenamiento primario
Univac I (universal automatic computer I):
Primera computadora producida en forma
comercial
Utilizada por el departamento de censos
norteamericano (1951)

Crece industria de procesamiento de datos


Surgen FORTRAN y ALGOL
IBM comienza a construir computadoras

Consola Univac I

Tarjeta perforada en FORTRAN (IBM)

Tubo de vaco

Historia de los computadores


Segunda generacin (19591964)
Transistores
Aumento de velocidad, reduccin de espacio
Menor consumo de energa, reduccin de
costos
Memoria de ncleos magnticos

Transistores

Almacenan informacin por medio de las


propiedades magnticas de sus componentes
Memoria no voltil

Escribir un programa no requiere


comprensin plena del hardware
IBM vende su primer sistema de disco
magntico
Surgen terminales remotas: unidades que
transmiten datos a la mquina a distancia

Memoria de ncleos magnticos

IBM 1401

Historia de los computadores

Tercera generacin (19641971)


Circuitos integrados
Aumento de velocidad, reduccin de
tamao
Menor consumo de energa, reduccin de
costos
Flexibilidad de los programas y
estandarizacin de modelos
Surgimiento de sistemas operativos y
lenguajes estructurados: Ada y Pascal
Utilizacin de memorias RAM y ROM
IBM lanza al mercado la serie 360
Aparecen las primeras calculadoras de
bolsillo

Circuitos integrados

IBM S/360

Historia de los computadores


Cuarta generacin (19711981)
Microprocesadores (circuito integrado
independiente)
Reemplazo de memorias con ncleos
magnticos por memorias electrnicas
(chips de silicio)
IBM introduce los discos duros
Winchester (estndar de la industria)
Surgen las microcomputadoras o
Computadores Personales (PCs)
En 1975 William Henry Gates y Paul
Allen fundan Microsoft Corporation
En 1976 Steven Wozniak y Steven Jobs
crean Apple Computer
Ken Thompson, Dennis Ritchie y
Douglas Mcllroy desarrollan el sistema
operativo UNIX

Microprocesador
Intel 4004

IBM 3340

Apple II

10

Historia de los computadores


Quinta generacin (1982-1990)
Difcil establecer la divisin en las
siguientes generaciones
Grandes acontecimientos

Inteligencia artificial
Sistemas expertos
Redes neuronales
Teora del caos
Algoritmos genticos
Fibras pticas
Telecomunicaciones

Creacin en 1982 del Cray X-MP

diseada por Cray Research


Procesador vectorial
Memoria compartida
Proceso paralelo
2 procesadores a 105 MHz (200 MFLOPS por
procesador)

CRAY-XMP48 (CERN)

11

Historia de los computadores

Sexta Generacin (1990 - ?)


Se produce una revolucin en el ordenador
Progreso Progreso en la tecnologa de computadores
Acotado por la Ley de Moore

Se abren las puertas a nuevas aplicaciones

Ordenadores de abordo
Mviles
Proyecto del Genoma Humano
World Wide Web
Motores de bsqueda

OMNIPRESENCIA DE LOS ORDENADORES

12

Tipos de Ordenadores
Ordenadores de Escritorio

Diseados para aportar buen rendimiento a a un solo usuario a


un coste bajo. Normalmente se ejecutan programas realizados
por terceros, posee monitor, teclado y ratn.

Servidores

Utilizados para lanzar programas para gran cantidad de usuarios


en paralelo accediendo normalmente a travs de la red. Se da un
gran nfasis a la confianza y a la seguridad.

Supercomputadores

Un tipo de servidores de altas prestaciones y alto coste


compuesto por cientos de miles de procesadores, terabytes de
memoria principal y petabytes de almacenamiento. Utilizados
para fines cientficos y aplicaciones de ingeniera.

Ordenadores empotrados

Computador situado dentro de otro dispositivo y usado para


ejecutar una aplicacin predeterminada.

13

El Mercado del Procesador

Crecimiento empotrados >> Crecimiento PCs


14

Qu aprenderemos?

Cmo traducir programas al lenguaje mquina


y cmo los ejecuta el hardware

La interfaz Hardware/Software
Cmo determinar el rendimiento de un
programa
y cmo podemos mejorarlo

Cmo mejora el rendimiento un diseador de


hardware
Qu es el procesamiento paralelo
15

Entendiendo el rendimiento
Algoritmo
Determina el nmero de operaciones ejecutadas

Lenguaje de programacin, compilador,


arquitectura
Determinan el nmero de instrucciones de mquina
ejecutadas por operacin

Procesador y Sistema de Memoria


Determinan la rapidez de ejecucin de las instrucciones

Sistema de Entrada/Salida (incluyendo SSOO)


Determina la velocidad de ejecucin de las operaciones
de E/S

16

Ms all del programa


Software de aplicacin
Escrito en un lenguaje de alto nivel

Software de sistema

Hardware

Compilador: traduce programas escritos en un


lenguaje de alto nivel a instrucciones que el
hardware puede ejecutar (cdigo mquina)
SSOO: programa de supervisin que sirve de
interfaz entre programas de usuario y el
hardware (cdigo de servicio)
Maneja operaciones bsicas de E/S
Gestiona memoria y almacenamiento
Planifica tareas y comparte recursos

Hardware
Procesador, memoria, controladores de E/S

17

Ms all del programa (II)

Lenguaje de alto nivel


Nivel de abstraccin prximo al
dominio del problema
Productividad y portabilidad

Lenguaje ensamblador
Representacin textual de
instrucciones

Representacin hardware
Dgitos binarios (bits)
Instrucciones y datos codificados

18

Ventajas de los lenguajes de alto nivel


Permite al programador pensar en un lenguaje ms natural y
facilita el entendimiento.
Mejora la productividad: cdigo ms entendible es fcil de
depurar y validar.

Mejora la mantenibilidad del programa.


Programas independientes del ordenador dnde se han
desarrollado.
Aparicin de compiladores optimizados que producen
cdigo ensamblador muy eficiente y optimizado para el
dispositivo destino.
Como resultado, hoy da se programa muy poco a nivel ensamblador.

19

Abstracciones
Nos ayudan a lidiar con la complejidad
Ocultan los detalles de bajo nivel

Instruction Set Architecture (ISA)


Interfaz abstracta entre el hardware y el software de ms bajo
nivel
Abarca toda la informacin necesaria para escribir un
programa en lenguaje mquina, incluyendo instrucciones,
registros, accesos a memoria, E/S

La combinacin del conjunto bsico de instrucciones


(ISA) y el sistema operativo se denomina la Interfaz
Binaria de Aplicacin (ABI)

20

Arquitectura von Neumann


Fue establecida en 1945 por John von Neumann
Su caracterstica principal es que ejecuta instrucciones de mquina
de un programa almacenado en memoria

Bloques:
Memoria principal
Unidad aritmtica y
banco de registros
Unidad de control (UC)
Unidad de entrada/salida

Los buses son los elementos que interconectan los diferentes


elementos de la arquitectura: bus de datos, bus de direcciones y
bus de control
21

Arquitectura von Neumann

Concepto clave
Una instruccion es una operacin elemental que la
CPU sabe hacer por hardware
El nmero de instrucciones que posee una CPU es
finito
La secuencia en que se ejecuten las instrucciones da
lugar a diferentes coportamientos
Como el nmero de instrucciones es finito, se puede
asignar un cdigo diferente a cada una
Un algoritmo se convierte en una secuencia de
cdigos
Por tanto se puede almacenar como una masa de
bits

22

Dentro del procesador

AMD Opteron quad-core (Barcelona)

Cuatro ncleos en un chip


1.9 GHz de frecuencia de reloj
Tecnologa de 65nm

Tres niveles de cach (L1, L2, L3) en


el chip
Puente Norte integrado
23

ndice de contenidos

1. Introduccin. Arquitectura Von Neumann.


2. Prestaciones y medidas del rendimiento
3. Representacin de los datos: Sistemas de
numeracin
4. Representacin de las instrucciones: Lenguaje
ensamblador

24

Ley de Moore
En 1965, Gordon Moore predijo que el nmero de transistores
que pueden ser integrados en un nico chip se duplicara cada
dos aos aproximadamente.

25

Tendencias tecnolgicas

Tecnologa electrnica
en evolucin

Capacidad DRAM

Incremento de
capacidad y
rendimiento
Costes reducidos
Ao

Tecnologa

Rendimiento/coste

1951

Tubo de vaco

1965

Transistor

1975

Circuito Integrado

1995

VLSI

2,400,000

2005

ULSI

6,200,000,000

35
900

26

Rendimiento Uniprocesador

Restringido por el consumo, paralelismo a nivel de


instrucciones y latencia de memoria

27

Definiendo el Rendimiento

Qu avin tiene el mejor rendimiento?


Boeing 777

Boeing 777

Boeing 747

Boeing 747

BAC/Sud
Concorde

BAC/Sud
Concorde

Douglas
DC-8-50

Douglas DC8-50
0

100

200

300

400

500

Boeing 777

Boeing 777

Boeing 747

Boeing 747

BAC/Sud
Concorde

BAC/Sud
Concorde

Douglas
DC-8-50

Douglas DC8-50
500

1000

1500

2000

10000

15000

Recorrido de crucero (km)

Capacidad de pasajeros

5000

2500

Velocidad de crucero (kmph)

1E+0
5

2E+0 3E+0 4E+0


5
5
5
Pasajeros x kmph

5E+0
5

28

Tiempo de respuesta VS Volumen de trabajo


Tiempo de respuesta (tiempo de ejecucin)
Tiempo entre comienzo y finalizacin de una tarea

Volumen de trabajo
Trabajo terminado por unidad de tiempo
Por ejemplo tareas/transacciones/ por hora

Cmo se mejoran el tiempo de respuesta y el


volumen de trabajo?
Reemplazando el procesador por una versin ms rpida?
Aadiendo ms procesadores?

Nos centraremos en el tiempo de respuesta, por


ahora

29

Rendimiento relativo
Se define el rendimiento como la inversa del tiempo de
ejecucin
X es n veces ms rpido que Y

Rendimiento X Rendimiento Y
Tiempo de EjecucinY Tiempo de EjecucinX n

Ejemplo: Tiempo en ejecutar un programa

10s en A, 15s en B
Tiempo de EjecucinB / Tiempo de EjecucinA
= 15s / 10s = 1.5
Entonces, A es un 50% ms rpido que B

30

Midiendo tiempos de ejecucin

Tiempo consumido
Tiempo total de respuesta, incluyendo todos los aspectos
Procesamiento, E/S, overhead del SSOO, tiempo de
inactividad
Determina el rendimiento del sistema

Tiempo de CPU
Tiempo gastado procesando una tarea concreta
No se tiene en cuenta SSOO, E/S, ni inactividad
Tiempo de CPU: de usuario y del sistema
Los programas se ven afectados de forma diferente por la CPU
y el rendimiento del sistema

31

Reloj de CPU
HW Digital: Funcionamiento gobernado por reloj
de velocidad constante
Periodo de Reloj
Reloj (ciclos)
Transferencia de
datos y computacin
Estado de
actualizacin

Periodo de reloj: duracin de un ciclo de reloj

Por ejemplo, 250ps = 0.25ns = 2501012s

Frecuencia del reloj: ciclos por segundo

Por ejemplo, 4.0GHz = 4000MHz = 4.0109Hz

32

Tiempo de CPU
CPUTiempo RelojCiclos Tiempo de ciclo
RelojCiclos

RelojFrecuencia

Rendimiento mejorado por:


Reduccin del nmero de ciclos de reloj
Incrementando la frecuencia del reloj
Un diseador hardware renuncia a menudo al
nmero de ciclos en favor de la frecuencia del
reloj
33

Ejemplo Frecuencia Reloj


Ordenador A: reloj a 2GHz; tiempo de ejecucin de 10s
Diseando Ordenador B
Buscamos un tiempo de ejecucin de 6s
Requiere 1.2 veces el nmero de ciclos de reloj que A

Cul es la frecuencia del reloj de B?


RelojCiclosB 1.2 RelojCiclosA
RelojFrecuenciaB

CPUT iempoB
6s
RelojCiclosA CPUT iempoA RelojFrecuenciaA
10s 2GHz 20 109
RelojFrecuenciaB

1.2 20 109 24 109

4GHz
6s
6s
34

Ciclos Por Instruccin


RelojCiclos Nm eroIns trucciones CiclosPor Ins truccin
CPUTiempo Nm eroIns trucciones CPI Tiem pode Ciclo
Nm eroIns trucciones CPI

RelojFrecuencia
Nmero de instrucciones de un programa
Determinados por el programa, ISA y el compilador

Nmero de ciclos medio por instruccin (CPI)


Determinados por el hardware de la CPU
Si diferentes instrucciones tienen diferente CPI
CPI medio afectado por la mezcla de instrucciones

Una forma de comparar dos implementaciones diferentes del


mismo ISA
35

Ejemplo CPI

Ordenador A: Periodo de reloj = 250ps, CPI = 2.0


Ordenador B: Periodo de reloj = 500ps, CPI = 1.2
Igual ISA
Cul es ms rpido y por cunto?

CPUT iempo Nm eroIns trucciones CPI Tiem pode Ciclo


A
A
A
A es ms rpido
Ins 2.0 250ps I 500ps
CPUT iempo Nm eroIns trucciones CPI Tiem pode Ciclo
B
B
B
Ins 1.2 500ps I 600ps
CPUT iempo
B Ins 600ps 1.2
CPUT iempo
Ins 500ps
A

A se ejecuta a un 120%
de la velocidad de B

36

CPI Efectivo (medio)

Calcular el CPI efectivo global se realiza


mirando los diferentes tipos de instrucciones y
sus correspondientes ciclos
n

RelojCiclos (Num.Ciclosi Num.Instruccionesi )


i1

n: nmero de clases de instrucciones

CPI medio
RelojCiclos
CPI
Frecuencia Relativa
Num.Instruccionestotal
n
Num.Instruccionesi

Num.Ciclosi

Num.Instruccionestotal
i1
37

Un ejemplo simple
Tipo Op.

Frec

CPIi

Frec x CPIi

ALU

50%

.5

.5

.5

.25

Load

20%

1.0

.4

1.0

1.0

Store

10%

.3

.3

.3

.3

Branch

20%

.4

.4

.2

.4

2.2

1.6

2.0

1.95

Cmo mejora si le ponemos una cach que reduce el tiempo medio de carga
(Load) a 2 ciclos?
Nuevo CPI = 1.6 2.2/1.6 = 1.375 37.5% ms rpido
Cmo mejora con un ciclo menos de salto (Branch) gracias a una BTB?
Nuevo CPI = 2.0 2.2/2.0 = 1,10 10% ms rpido
Cmo mejora si se pueden ejecutar en paralelo dos instrucciones de ALU?
Nuevo CPI= 1.95 2.2/1.95 = 1,128 12.8% ms rpido

38

Resumen de Rendimiento

Instrucciones RelojCiclos Segundos


CPUTiempo

Programa Instruccin RelojCiclo

El rendimiento depende de

Algoritmo: Afecta al IC, posiblemente al CPI


Lenguaje de programacin: IC, CPI
Compilador: IC, CPI
ISA: IC, CPI, Tc

39

Mejora de medidas del Rendimiento


Muy usadas pero no son exactas
MIPS: Millones de instrucciones por segundo
MFLOPs (GFLOPs): Millones (G) de operaciones
en coma flotante por segundo
Slo + - * / y transcendentes
Para cdigo cientfico
Mejor: Medias de Coleccin benchmarks
Standard Performance Evaluation Corporation
(SPEC)
SPECint (programas enteros)
SPECfp (programas F.P.)

40

Importancia de obtener medidas cuantitativas de


las prestaciones de un computador

41

Ley de Amdahl (1967)


LEMA: Optimizar (hacer rpido o simple) el caso
comn.
t ejec. inicial

t ejec. inicial 1 (lo normalizamos)

1-F

0 F 1

t ejec.final 1- F
1-F

F
A parcial

A parcial

t ejec. final

A total

t ejec.inicial
t ejec.final

1- F

F
A parcial

42

42

EJERCICIO: Ley Amdahl


Supongamos que consigo paralelizar el 50% de un programa, de
forma que se pueden ejecutar en 10 procesadores a la vez
obteniendo una aceleracin parcial de 10. Cul sera la
aceleracin total?

a)
b)
c)
d)

Cercana a 10 veces
50%*10= 5 veces
En torno a 80%
Ninguna de las anteriores

43

43

Ejemplo:
Mejora de 90 en A:

Mejora de 10 en B:
20 lineas (10%) pero
el 90% del tiempo

180 lineas (90%) pero slo


10% del tiempo

44

44

Вам также может понравиться