Tema 1 parte 1 ACSO.pdf

44
1 Grado en Ingeniería de la Salud Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los computadores y representación de la información.

Transcript of Tema 1 parte 1 ACSO.pdf

  • 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: