Intro
Upcoming SlideShare
Loading in...5
×
 

Intro

on

  • 5,602 views

 

Statistics

Views

Total Views
5,602
Views on SlideShare
5,592
Embed Views
10

Actions

Likes
0
Downloads
119
Comments
0

1 Embed 10

http://www.slideshare.net 10

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Intro Intro Presentation Transcript

  • Arquitectura de Computadores 503351 Cecilia Hernández [email_address]
  • Contenidos del Curso
    • Introducción
    • Arquitectura de conjunto de instrucciones y programación assembly
    • Métricas de desempeño
    • Arquitectura y organización de procesadores
    • Sistemas de Memoria
    • Entrada/salida
  • Qué es un computador?
    • Computador es una máquina que ejecuta algoritmos expresados como un programa en lenguaje de máquina.
      • Fundamentalmente, un circuito secuencial sincrónico
    • Problema a resolver  Conjunto de algoritmos
    • Algoritmos  Programa en lenguaje de alto nivel (C, C++, Java, etc.)
    • Programa lenguaje de alto nivel  Programa lenguaje de máquina
  • ¿Por qué, para qué?
    • Especificar correctamente un equipo computacional dependiendo de requerimientos
      • Tipo de aplicaciones que debe soportar
      • Tipo y número de usuarios
    • Optimizar el desempeño de un programa en cualquier lenguaje
    • Diseñar sistemas digitales avanzados para aplicaciones de alto desempeño
    • La implementación de abstracciones es una de las bases de la ingeniería, y además es entretenido!
  • Organización de un Sistema computacional
    • Hardware y software
    • Datos y control
    • Arquitectura de conjunto de instrucciones (ISA)
  • Arquitectura y organización de computadores
    • Consiste en el estudio de
      • Estructura: Como se organizan los componentes internos en forma estática
      • Organización: Interacción dinámica entre sus partes y el control involucrado
      • Implementación: diseño de bloques específicos
      • Desempeño: estudio del comportamiento del sistema o de sus componentes
  • Estructura Modelo de Von Neumann Jerarquía De Memoria I/O control ALU Registros PC estado Buses memoria Buses Entrada/Salida CPU: sección datos, control +
  • Arquitectura de computadores Enfoque ISA
    • ISA: Instrucción Set Architecture
    • Arquitectura: interfaz entre niveles
    • ISA interfaz entre HW y SW
    • ISA es la parte visible al programador
    • ISA consiste en:
      • Instrucciones (operaciones con su respectiva codificación)
      • Formato de instrucciones
      • Tipos de datos soportados por la arquitectura
      • Modos de direccionamiento
      • Unidades de información (tamaño, como se direccionan)
      • Registros que representan el estado del procesador
      • Control Entrada/Salida
  • Interfaz HW/SW
  • Ejemplo: ISA MIPS 3000
    • Localización de datos
      • Instrucciones operan con datos en registros internos
      • Instrucciones para mover datos entre memoria y registros
    • Tipos de instrucciones
      • Load/store
      • Lógica y aritmética entera
      • Control de flujo (saltos)
      • Punto flotante
      • Excepciones
    • Tipos de datos
      • Enteros complemento a 2
      • Punto flotante IEEE
    R0 - R31 PC HI LO Registros Tres formatos de instrucciones: 32 bits OP OP OP rs rt rd sa funct rs rt immediate jump target
  • Organización
    • Implementación de la arquitectura
    • Cuáles son los componentes básicos de un computador y como se relacionan entre sí
      • Componentes básicos de la CPU
      • Componentes básicos de la jerarquía de memoria
      • Como están diseñados, controlados y conectados los componentes básicos
    • Organización utilizada en forma transparente a la arquitectura
    • ISA + Organización  Desempeño
  • Historia
    • Generación 0 : Dispositivos Mecánicos (1642 - 1945)
      • Pascal (1642): suma y resta
      • Von Leibniz (1672): multiplicación y división
      • Babbage (1792 - 1871): máquina diferencial y máquina analítica
      • 1930 - 1944: máquinas electromagnéticas, aritmética binaria, Aiken: Mark I y Mark II
  • Historia
    • Generación 1 : Tubos de Vacío (1945 - 1955)
      • ENIAC (1946):
        • 18000 tubos
        • 5000 sumas/segundo
        • 1500 relés
        • 30 toneladas
        • 140 KWatts
      • EDSAC, JOHNIAC, ILLIAC, MANIAC, WEIZAC, EDVAC
      • IAS: originó la arquitectura de von Neumann.
        • Programa representado digitalmente, almacenado en memoria junto a datos
        • Organización de máquinas contemporáneas
  • Historia
    • Generación 2 : Transistores (1955 - 1965)
      • DEC PDP-1 (1961): 4 KB memoria, 18 bits, 5 ms.
      • IBM 7090, 7094: 32K memoria, 36 bits, 2 ms.
      • IBM 1401 aplicaciones comerciales 4 KB
      • CDC 6600 (1964): alto desempeño en aplicaciones numéricas paralelismo interno en CPU
      • Burroughs B5000: diseñada para facilitar tarea al compilador
  • Historia
    • Generación 3 : Circuitos integrados (1965 - 1980)
      • IBM/360: familia de modelos compatibles (ISA diferente de implementación). Memoria de 250 nseg a 1 mseg, límite de 16 MB. Multiprogramación.
      • DEC PDP-11: minicomputador precio/desempeño
  • Historia
    • Generación 4 : Circuitos VLSI (1980 - ????)
      • PCs
      • Workstations
      • Mainframes
      • Supercomputadores
      • Redes de Computadores
      • Sistemas portables
  • Historia
    • Qué viene ahora?
      • portabilidad extrema?
      • Computación distribuida?
      • Grid Computing?
      • Nuevos modelos computacionales?
        • Cuántica, DNA?
  • Desarrollo histórico de la tecnología Arq de 64 bits Superescalares Multihebras Procesadores Dual core Micros y minis Mainframes Una CPU Estructura CPU Semiconductores Semiconductores (sustancia que no conduce bien la electricidad) Ferrite core Tubos al vacío Memorias VLSI (combina millones de transistores en un chip) Cirtuitos integrados (combina cientos de transistores en un chip) Transistores (on/off interruptor eléctrico) Tubos al vacío CPU
  • Relación entre Estructuras
    • Referencia: DAP Spr. 1998 ©UCB
  • Cambiando un poco
    • Razones de cambio
      • Avance tecnológico, costo, funcionalidad
    • Referencia: DAP Spr. 1998 ©UCB
  • Moore’s Law
    • The observation made in 1965 by Gordon Moore, co-founder of Intel , that the number of transistors per square inch on integrated circuits had doubled every year since the integrated circuit was invented. Moore predicted that this trend would continue for the foreseeable future. In subsequent years, the pace slowed down a bit, but data density has doubled approximately every 18 months, and this is the current definition of Moore's Law, which Moore himself has blessed. Most experts, including Moore himself, expect Moore's Law to hold for at least another two decades.
      • Definición en: http://www.webopedia.com/
  • Tendencia en tecnología
    • Referencia: Intel 2005
    • As of 2006, chip areas range from a few square mm to around 250 mm 2, with up to 1 million transistors per mm 2 (wikipedia)
  • Tendencia en velocidad de procesador intel
    • Referencia: Universidad USA
  • Tendencia en Capacidad y velocidad de Memoria DRAM
    • Referencia: DAP Spr. 1998 ©UCB
  • Tecnología: avances dramáticos
    • Ley de Moore: desempeño se duplica cada 18 meses
    DRAM Year Size 1980 64 Kb 1983 256 Kb 1986 1 Mb 1989 4 Mb 1992 16 Mb 1996 64 Mb 2000 256 Mb 2002 1 Gb Microprocessor Logic Density DRAM chip capacity
  • Algunas compañías importantes
    • IBM
      • 704, 709, 70xx etc.. De 1955 hasta 1965
      • 360, 370, 43xx, 33xx De 1965 hasta ahora
      • Power PC
    • DEC
      • PDP-11, VAX De 1970 hasta 1985
      • Alpha (Compaq, HP) en años 1990
    • SUN Microsystems
      • Sparc, Ultra Sparc desde 1985
    • Mips Silicon Graphics
      • Mips 2000, 3000, 4400, 10000 desde 1985
  • Algunas compañías importantes
    • Intel
      • Primeros microcomputadores 40xx in early 70’s
      • x86 (086,…,486, Pentium, Pentium Pro, Pentium 3, Pentium 4) desde 1980
      • IA-64 (Itanium) en 2001
    • AMD
      • Opteron
        • The world’s highest performing 2P and 4P servers are now powered by AMD Opteron™ processors. Receive the performance and security benefits of 64-bit computing, while getting the best 32-bit performance available anywhere. http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_8825,00.html
      • Athlon 64 bits. The FIRST Windows®-Compatible 64-bit PC Processor
      • Turion 64 bits
  • Pentium 4 en CMOS 90nm
    • Más de 125.000.000 transistores
    • Velocidad de operación de 3.2GHz
    • Más de 1MByte de memoria cache en el chip
    • Consumo energía menor que 100W
    • Tamaño: 112 mm 2
    • Precio inferior a US$200 permite su uso en computadores personales
    • Desempeño de procesadores se duplica consistentemente cada 18 meses (Ley de Moore)
  • Comparación: Xbox 360
    • Especificaciones técnicas
      • CPU IBM con tres procesadores de 3.2GHz en un solo chip
      • 512MBytes de RAM
      • Disco duro de 20GBytes
      • Tarjeta gráfica ATI de 500MHz
      • Lector de DVD
      • Tarjeta de red inalámbrica incorporada
      • Soporta televisión de alta definición
    • Precio: alrededor de US$400
    ¡Relación precio/desempeño ha mejorado en un factor de más de 8 órdenes de magnitud en los últimos 25 años! Comparar con otra industria
  • RISC vs. CISC
    • CISC: Complex Instruction Set Computer
      • Instrucciones poderosas
      • ISA más cercana a operaciones de lenguajes de alto nivel
      • Codificación variada de instrucciones, formatos complejos
      • Instrucciones más poderosas, pero también más difíciles de implementar
      • Ejemplos: VAX, Intel Pentium
    • RISC: Reduced Instruction Set Computer
      • Instrucciones sencillas
      • ALU sólo opera con operandos en registros
      • Codificación sencilla, pocos formatos
      • Únicas instrucciones que accesan la memoria son load/store
      • Más fácil de implementar  más rápido
      • Optimizaciones de código a cargo del compilador
      • Ejemplos: MIPS, PowerPC, Alpha
  • Registros
    • Son las unidades básicas de almacenamiento en la CPU
    • Son parte esencial de la arquitectura
      • Puente entre HW y programador
    • Son las unidades que proporcionan mayor velocidad de acceso en la CPU
    • Normalmente número de registros es reducido en la arquitectura (típicamente 32 o 64) por lo tanto fáciles de identificar
    • También se usan para direccionar la memoria
  • Registros
    • No todos son iguales en términos de funcionalidad
      • Algunos son de propósito específico
        • Ejemplos: PC (Contador de programas), estado (almacena estado de CPU)
      • Algunos son usados para operaciones enteras y otros para operaciones de punto flotante
    • Por qué tipicamente 32 o 64
      • Codificación para direccionamiento de registros requiere mas HW (más líneas para direccioarlos)
  • Almacenamiento
    • Sistema de almacenamiento definido mediante jerarquía de memoria
      • Registros
      • Caches (dentro y fuera del chip)
      • Memoria principal (DRAM)
      • Memoria secundaria (disco)
  • Unidades de información
    • Bit: Unidad básica
    • Bits: Agrupados para formar otras unidades
      • Byte: 8 bits
      • Word: 16 bits
      • Double word: 32 bits
  • Direccionamiento a Memoria
    • Memoria, arreglo de unidades de información
      • Cada unidad tiene el mismo tamaño
      • Cada unidad tiene su propia dirección
      • Direcciones y contenido de unidades son distintas
    -128 0 20 0 1 2 direcciones contenidos
  • Direccionamiento
    • En la mayoría de los computadores modernos, la unidad básica de direccionamiento es el byte
      • MIPS
    • Espacio de direccionamiento de un proceso es el conjunto de todas las unidades que un programa puede direccionar
      • El espacio de direccionamiento está ligado al largo de los registros
      • MIPS tiene registros de 32 bits. Por lo tanto su espacio de direccionamiento es 2^32 : 4GB
      • Procesadores mas antiguos tenían 16 bits, 2^16 : 64KB
      • Algunos procesadores actuales (Alpha, Itanium, Sparc, Althon) tienen 64 bits, 2^64 :
  • Direccionando words
    • A pesar que memorias son direccionables al byte, lo que mas se usa como unidad de almacenamiento es la word
    • Cada word comienza en una dirección divisible por cuatro
    0 4 8 12
  • Big-endian vs little-endian
    • Orden de bytes en una word
    0 1 2 3 Little-endian, MIPS 3 1 0 2 Big-endian
  • Qué es una instrucción?
    • Comando que le dice a la CPU que operación realizar
      • Mediante código de operación
        • Todas las instrucciones están codificadas
      • Donde se encuentran los operandos necesarios para ejecutar la operación
    • ISA de una instrucción especifica
      • Código de operación
      • Cuántos operandos son necesarios, tipos, tamaños, ubicación
    • Operandos
      • Registros (enteros, punto flotante, PC)
      • Dirección de memoria
      • Constantes
  • Ejecución de instrucción de máquina
    • CPU ejecuta instrucciones de un programa ciclo
    • Instrucciones especifican operaciones sobre operandos y generan resultados
    • Datos pueden encontrarse en memoria (RAM, ROM) o en registros internos al procesador
    • Instrucciones pueden también modificar el flujo de control (saltos, llamadas a procedimiento)
    • Instrucciones pueden crear excepciones