1
Grado en Ingeniera de la Salud
Arquitectura de Computadores y Sistemas Operativos
Tema 1: Introduccin a los computadores
y representacin de la informacin.
2
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
3
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
Pascalina
baco
4
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
5
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
6
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
ENIAC
Mark I
7
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
Tarjeta perforada en FORTRAN (IBM)
Consola Univac I
Tubo de vaco
8
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
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
Transistores
9
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
IBM S/360
Circuitos integrados
10
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
IBM 3340
Microprocesador
Intel 4004
Apple II
11
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)
12
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
13
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.
14
El Mercado del Procesador
Crecimiento empotrados >> Crecimiento PCs
15
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
16
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
17
Ms all del programa
Software de aplicacin Escrito en un lenguaje de alto nivel
Software de sistema 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
Hardware
18
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
19
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.
20
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)
21
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
22
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
23
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
24
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
25
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.
26
Tendencias tecnolgicas
Tecnologa electrnica
en evolucin
Incremento de
capacidad y
rendimiento
Costes reducidos Ao Tecnologa Rendimiento/coste
1951 Tubo de vaco 1
1965 Transistor 35
1975 Circuito Integrado 900
1995 VLSI 2,400,000
2005 ULSI 6,200,000,000
Capacidad DRAM
27
Rendimiento Uniprocesador
Restringido por el consumo, paralelismo a nivel de instrucciones y latencia de memoria
28
Definiendo el Rendimiento
Qu avin tiene el mejor rendimiento?
0 100 200 300 400 500
Douglas
DC-8-50
BAC/Sud
Concorde
Boeing 747
Boeing 777
Capacidad de pasajeros
0 5000 10000 15000
Douglas DC-
8-50
BAC/Sud
Concorde
Boeing 747
Boeing 777
Recorrido de crucero (km)
0 500 1000 1500 2000 2500
Douglas
DC-8-50
BAC/Sud
Concorde
Boeing 747
Boeing 777
Velocidad de crucero (kmph)
0 1E+0
5
2E+0
5
3E+0
5
4E+0
5
5E+0
5
Douglas DC-
8-50
BAC/Sud
Concorde
Boeing 747
Boeing 777
Pasajeros x kmph
29
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
30
Rendimiento relativo
Se define el rendimiento como la inversa del tiempo de ejecucin
X es n veces ms rpido que Y
n
XY
YX
Ejecucin de TiempoEjecucin de Tiempo
oRendimientoRendimient
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
31
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
32
Reloj de CPU
HW Digital: Funcionamiento gobernado por reloj
de velocidad constante
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
Reloj (ciclos)
Transferencia de datos y computacin
Estado de actualizacin
Periodo de Reloj
33
Tiempo de CPU
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
Frecuencia
Ciclos
CiclosTiempo
Reloj
Reloj
ciclo de TiempoRelojCPU
34
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?
4GHz6s
1024
6s
10201.2Reloj
10202GHz10s
RelojCPUReloj
6s
Reloj1.2
CPU
RelojReloj
99
BFrecuencia
9
AFrecuenciaATiempoACiclos
ACiclos
BTiempo
BCiclos
BFrecuencia
35
Ciclos Por Instruccin
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
Frecuencia
Tiempo
Ciclos
Reloj
CPInesInstruccio Nmero
Ciclo de TiempoCPInesInstruccio NmeroCPU
nInstrucci Por CiclosnesInstruccio NmeroReloj
36
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?
1.2500psIns
600psIns
ACPU
BCPU
600psI500ps1.2Ins
BCiclo de Tiempo
BCPInesInstruccio Nmero
BCPU
500psI250ps2.0Ins
ACiclo de Tiempo
ACPInesInstruccio Nmero
ACPU
Tiempo
Tiempo
Tiempo
Tiempo
A es ms rpido
A se ejecuta a un 120% de la velocidad de B
37
CPI Efectivo (medio)
Calcular el CPI efectivo global se realiza mirando los diferentes tipos de instrucciones y sus correspondientes ciclos
n
1i
iiCiclos )ccionesNum.Instrus(Num.CicloReloj
CPI medio
n
1i total
ii
total
Ciclos
ccionesNum.Instru
ccionesNum.InstruNum.Ciclos
ccionesNum.Instru
RelojCPI Frecuencia Relativa
n: nmero de clases de instrucciones
38
Un ejemplo simple
Cmo mejora si le ponemos una cach que reduce el tiempo medio de carga (Load) a 2 ciclos?
Cmo mejora con un ciclo menos de salto (Branch) gracias a una BTB?
Cmo mejora si se pueden ejecutar en paralelo dos instrucciones de ALU?
Tipo Op. Frec CPIi Frec x CPIi
ALU 50% 1
Load 20% 5
Store 10% 3
Branch 20% 2
=
.5
1.0
.3
.4
2.2
Nuevo CPI = 1.6 2.2/1.6 = 1.375 37.5% ms rpido
1.6
.5
.4
.3
.4
.5
1.0
.3
.2
2.0
Nuevo CPI = 2.0 2.2/2.0 = 1,10 10% ms rpido
.25
1.0
.3
.4
1.95
Nuevo CPI= 1.95 2.2/1.95 = 1,128 12.8% ms rpido
39
Resumen de Rendimiento
El rendimiento depende de
Algoritmo: Afecta al IC, posiblemente al CPI
Lenguaje de programacin: IC, CPI
Compilador: IC, CPI
ISA: IC, CPI, Tc
Ciclo
CiclosTiempo
Reloj
Segundos
nInstrucci
Reloj
Programa
nesInstruccioCPU
40
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.)
Mejora de medidas del Rendimiento
41
Importancia de obtener medidas cuantitativas de
las prestaciones de un computador
42
Ley de Amdahl (1967)
parcialAF
42
1F0
os)normalizam (lo 1 t inicial ejec.
t ejec. inicial
t ejec. final
1-F
1-F
F
parcial
final ejec.A
F F1- t
parcial
final ejec.
inicial ejec.
total
A
F F1-
1
t
t A
LEMA: Optimizar (hacer rpido o simple) el caso
comn.
43
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) Cercana a 10 veces
b) 50%*10= 5 veces
c) En torno a 80%
d) Ninguna de las anteriores
43
44
Ejemplo:
44
180 lineas (90%) pero slo
10% del tiempo
20 lineas (10%) pero
el 90% del tiempo
Mejora de 90 en A:
Mejora de 10 en B:
Recommended