31/01/2012 Universidad Autónoma de San Luis Potosí Unidad 1 Facultad de Ciencias Departamento de Electrónica Organización y conceptos básicos del Software Arquitectura de Computadoras Primavera 2012 Organización y conceptos básicos del Hardware Unidad 1 Tecnología y Abstracción Computacional Circuitos Integrados 1 2 Introducción Bajo tu Programa • Los comandos individuales que le damos a la computadora son llamados instrucciones. • El lenguaje de maquina esta constituido por los símbolos que la computadora puede entender • Estos símbolos están restringidos a • Las instrucciones son colecciones de bits que la computadora entiende, por ejemplo: – Encendido (1) – Apagado (0) – 100010011100 • Por lo tanto, el lenguaje de maquina esta representado por código binario • Cada digito es referido como digito binario o bit. comando para sumar 2 números • Los números binarios son usados para representar instrucciones y datos 3 4 Bajo tu programa Bajo tu programa • El lenguaje ensamblador fue usado para facilitar a los programadores la escritura de las instrucciones Lenguajes de Alto Nivel C, C++, Java • Los lenguajes de alto nivel son mas cercanos al lenguaje humano. Es mas fácil para el programador expresar sus ideas en este tipo de lenguajes Lenguajes de maquina 5 Swap(int v[], int k) { int temp; temp = v[k]; v[k] = v[k+1]; v[K+1] = temp; } 0000100101000 1000100101111 1001111010000 1010101010101 1000000100011 1000000001111 Compilador Swap: muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) Lenguajes lw $16, 4($2) Ensamblador sw $16, 0($2) sw $15, 4($2) jr $31 6 1 31/01/2012 Ventajas de los lenguajes de Alto nivel Librerías • Facilidad de programación • Varias rutinas son usadas continuamente tales como: – Permiten que el programador piense en un lenguaje mas natural usando palabras en ingles y ecuaciones algebraicas resultando en un programa mucho mas entendible – Crear un archivo – Leer un archivo – Escribir un archivo – Escribir en la pantalla – Leer del teclado • Mejora la productividad del programador – En menos líneas se puede expresar una idea • Portabilidad • Las librerías son un conjunto de programas que contienen rutinas comúnmente usadas. – Los programas son independientes de la computadora donde fueron desarrollados. 7 Capas de Software • El sistema operativo es un grupo de programas que administran los recursos del sistema computacional. • El software se clasifica en base a su uso en dos grupos: 8 Clasificación del Software Software Hardware Software de Aplicación Software de Sistema Word Software de Sistema Compiladores Software de Aplicación – Software de Sistema – Software de Aplicación Sistemas Operativos Ensambladores Excell Visual C++ Manejo de Memoria As Firefox gcc Sistema de Archivos …. Visual java Manejadores de dispositivos 9 Revolución Computacional Tipo de Computadoras • Progreso en la tecnología computacional • Computadoras de Escritorio (Desktop Computer) – Ley de Moore – Propósito general / Variedad de Software – Sujetas a un compromiso entre el costo y el desempeño • Hace que las aplicaciones novedosas sean posibles – – – – – 10 • Servidores (Server computers) Computadoras en automóviles Teléfonos celulares Proyecto genoma humano World Wide Web Métodos de búsqueda (Search Engines), google, yahoo, dr. ask, etc. – Basadas en red – Alta capacidad, desempeño y confiabilidad • Computadoras Embebidas (Embedded computers) – Ocultas como componentes del sistema – Fuertes restricciones en cuanto a la potencia, desempeño y costo • Las computadoras son dominantes. 11 12 2 31/01/2012 Bajo la Cubierta Mercado de Procesadores • Los componentes principales del hardware de una computadora son: – Dispositivos de entrada – Dispositivos de salida – Memoria – Procesador 14 13 Entrada/Salida Dispositivos de Entrada • Los dispositivos de entrada alimentan a la computadora con datos. • Dispositivos de entrada y salida incluyen – Dispositivos de interfaz al usuario – Dispositivos de almacenamiento Teclado Network cable • Pantalla, teclado, mouse Dispositivos Apuntadores Output device Entrada de Voz • Discos duros, CD/DVD, flash – Adaptadores de red • Para comunicación con otras computadoras Input device Cámaras Digitales Input device Video Scanner 15 Dispositivos de Salida 16 Anatomia de un Mouse • Los dispositivos de salida son aquellos que nos muestran los datos después de que han sido procesados. • Mouse Óptico – LED ilumina el escritorio – Pequeña cámara de baja resolución – Procesador de imágenes básico Monitores • Busca movimientos en x, y – Botones y wheel Impresoras • Toma el lugar de los mouse mecánicos con rueda-giratoria (roller-ball) Bocinas Fax Proyectores 17 18 3 31/01/2012 Abriendo la Caja Through the Looking Glass • LCD screen: picture elements (pixels) – Mirrors content of frame buffer memory 20 19 Abriendo la caja EPROM Memoria Borrable • La tarjeta principal (Mainboard) esta compuesta por: EEPROM Flash Read-Only Memory (ROM) Masked ROM Permanente Primaria – Conexión a los dispositivos de I/O – Memoria – Procesador PROM Estática Read/Write Memory Dinámica Memoria • La memoria mantiene tanto datos como instrucciones Floppy Acceso Aleatorio Discos Duro Acceso Serial Cintas Magneticas CD-ROM Secundaria 21 22 Memoria Primaria Random Acess Memory • La memoria RAM es volátil, lo que significa que cuando la alimentación se apaga, pierde toda la información • Existen dos tipos de memoria RAM – Memoria Estática – Memoria Dinámica 23 • Almacena los bits como voltaje • Tiene una baja densidad pero alta velocidad • Es una memoria cara y consume mayor potencia que la dinámica • La memoria Cache incluida en los microprocesadores es SRAM Memoria Dinámica (DRAM) Memoria Estática (SRAM) • Memoria de Lectura y Escritura comúnmente conocida como RAM (Random Access Memory) • Almacena bits como carga • Tiene una alta densidad y bajo consumo de potencia • Es mas barata que la memoria SRAM • Su principal desventaja es que la carga se fuga, por lo cual se requiere refrescarla. Por lo cual requiere circuitería extra, aumentando el costo del sistema. • Para memorias pequeñas de menos de 8K es mas apropiada SRAM. 24 4 31/01/2012 Dentro del Procesador (CPU) Read-Only Memory • ROM es una memoria no volátil, es decir, retiene la información aun si la alimentación es apagada. • Datapath: – desempeña las operaciones en los datos • Control: – indica al datapath la secuencia de operaciones a realizar, indica a la memoria y dispositivos de entrada y salida que hacer de acuerdo a las instrucciones del programa • Esta memoria es usada para almacenar datos y programas que no deben ser alterados • Existen 5 tipos de ROM • Memoria Cache – Masked ROM – PROM, EPROM EEPROM – Flash memory – Memoria pequeña y rápida (SRAM) para acceso de datos inmediatos 26 25 Abstracción Inside the Processor • AMD Barcelona: 4 processor cores 28 27 Abstracción • Hardware y software ocultan detalles de implementación en las capas altas • Abstracción nos ayuda a lidiar con la complejidad – Oculta los detalles de bajo-nivel • Arquitectura del Conjunto de Instruccions (Instruction set architecture (ISA)) Aplicaciones Software Abstracción Sistema Operativo Lenguaje Ensamblador Lenguaje de Maquina – La interfaz hardware/software Unidades Funcionales • Esto significa que ambos son diseñados usando diferentes niveles de abstracción. – la interfaz ISA mas software de sistema • Implementación – Detalles debajo de la interfaz 29 Compuertas Hardware • Interfaz de aplicación binaria Transistores Materiales 30 5 31/01/2012 Arquitectura de Computadoras Arquitectura Computacional • Arquitectura Computacional comprende tres aspectos: • La arquitectura del conjunto de instrucciones de una computadora es la interfaz entre el nivel de abstracción mas bajo del software y el nivel mas alto del hardware – Conjunto de Instrucciones – Organización de la Computadora – Hardware de la Computadora Aplicación Sistema Operativo Compilador Instr. Set Proc. Firmware Sistema E/S Arquitectura del Conjunto de Instrucciones • Los últimos dos aspectos se refieren a la implementación física de la computadora Datapath & Control Diseño Digital Diseño de Circuitos Layout 31 32 Fuerzas en Arquitectura Computacional Conjunto de Instrucciones • El conjunto de instrucciones es la interfaz visible entre el hardware y la programación Tecnología de fabricación Lenguajes de Programación Aplicaciones • Las dos principales aproximaciones al conjunto de instrucciones son: Arquitectura de Computadora – CISC (Complex Instruction Set Computer) – RISC (Reduced Instruction Set Computer) Sistemas Operativos Historia 34 33 Tecnología usada en las computadoras Tecnología: Circuitos Integrados DRAM capacity • La tecnología electrónica continua evolucionando: Incrementa el desempeño Incrementa capacidad Disminuye costo Año Tecnología Desempeño Relativo / Unidad de Costo 1951 Bulbos 1965 Transistores 1 1975 Circuitos Integrados 1995 Circuitos Integrados de Muy Alta Escala (VLSI) 2,400,000 2005 Circuitos Integrados de Ultra Alta Escala (ULSI) 6,200,000,000 35 900 35 • Un transistor es un interruptor (On/Off) controlado por voltaje o corriente • Un circuito integrado combina docenas a cientos de transistores en un chip • Circuito VLSI integra cientos a millones de transistores • Circuito ULSI integra millones a cientos de millones de transistores 36 6 31/01/2012 Proceso de Manufactura de Circuitos Integrados Rédito: proporción de dados funcionales de cada oblea AMD Opteron X2 Wafer • X2: 300mm wafer, 117 chips, 90nm technology • X4: 45nm technology 37 38 Integrated Circuit Cost Ley de Moore • La Ley de Moore establece que la capacidad de integración se dobla cada 18 meses Costo por oblea Dados por oblea Yield Dados por oblea Area de la Oblea Area del Dado 1 Yield (1 (Defectos por area Area del Dado/2))2 Costo por dado DRAM capacity • Relación no-lineal entre el área y la razón de defectos – Costo de oblea y el área son cantidades fijas – La razón de defectos es determinada por el proceso de manufactura – Área del dado es determinada por el diseño de la arquitectura y el diseño de circuitos 39 Tecnología 40 Cambios Dramáticos • Ley de Moore: – Densidad del Chip (transistores) se dobla cada 18 meses • Procesador – Capacidad Lógica: alrededor de 30% por año – Velocidad del Reloj: alrededor de 20% por año • Memoria – Capacidad DRAM: alrededor de 60% por año (4x cada 3 años) – Velocidad de Memoria: alrededor de 10% por año – Costo por bit: mejora cerca de 25% por año • Disco – Capacidad: alrededor de 60% por año 41 42 7 31/01/2012 Tipos de Computación Desempeño del Procesador Desempeño mejora 50% por año – Alrededor de 2X cada 1.5 años 300 250 Performance RISC 200 150 Introducción de RISC 100 Intel x86 50 35%/yr 1995 1994 1993 1992 1991 1990 1989 1988 1987 1986 1985 1984 1983 1982 0 Y ear 44 43 Arquitecturas Perspectiva Histórica • ENIAC (Electronic Numerical Integrator Calculator) fue la primera computadora diseñada 1946 por Eckert y Mauchly. • La programación se realizaba manualmente por medio de conexión manual de cables e interrupciones. 45 46 Perspectiva Histórica Perspectiva histórica • Las características de esta arquitectura, conocida como Arquitectura Von Neumann son: • En 1944, John Von Neumann se unió al proyecto ENIAC. – Una memoria principal que almacena tanto datos como instrucciones – Una Unidad Lógica y Aritmética (ALU) capaz de operar datos binarios – Una unidad de control que interpreta y provoca la ejecución de instrucciones – Dispositivos de Entrada y Salida operados por la unidad de control • Von Neumann discutió la forma de mejorar la programación y por primera vez almacenar el programa. • La computadora basada en estas ideas fue llamada EDVAC (Electronic Discrete Variable Automatic Computer) 47 48 8 31/01/2012 Neumann vs Harvard Perspectiva Histórica • En un proyecto alterno Howard Aiken en la Universidad de Harvard desarrollo una computadora electromecánica llamada MARK-I • Mark-I fue precedida por Mark-II realizada con relevadores. Después realizó Mark-III y Mark IV realizadas con bulbos. • Estas maquinas tenían la característica de tener memorias separadas para datos e instrucciones. • La arquitectura Harvard es conocida como aquella que tiene memoria separada para datos y programa NEUMANN HARVARD • Una sola memoria principal para instrucciones y datos • Un solo bus de datos que transfiere tanto datos como instrucciones • Las instrucciones y datos no pueden ser procesadas al mismo tiempo • La velocidad de procesamiento es mucho mayor que la velocidad de acceso a una sola memoria • El procesador tiene una complejidad baja • Memoria separada para instrucciones y datos • Dos o mas buses, lo cual permite la transferencia simultanea de datos y programa • La arquitectura es mas rápida porque permite el acceso simultaneo a instrucciones y datos • La complejidad del sistema aumenta debido a la inclusión de rutas separadas para datos e instrucciones 50 49 Resumen de la Unidad 1 Resumen • El diseño de una computadora se realiza usando diferentes niveles de abstracción • Los principales componentes de un sistema computacional son: • La arquitectura de una computadora es la interfaz entre el nivel mas bajo de abstracción del software y el nivel mas alto de abstracción del hardware. Computadora Procesador Control Memoria Dispositivos de Entrada Datapath Memoria Cache • Arquitectura Computacional comprende tres aspectos: Dispositivos de Salida – Conjunto de Instrucciones – Organización de la Computadora – Hardware de la Computadora 51 52 Resumen • La arquitectura se puede clasificar en – Neumann • Una sola memoria principal para instrucciones y datos – Harvard • Dos memoria separadas, una para datos y la otra para instrucciones permitiendo el acceso simultaneo. • El conjunto de instrucciones se clasifica en: – CISC (Complex Instruction Set Computer) – RISC (Reduced Instruction Set Computer) 53 9