6002: Organización y Estructura del Computador II Clase 1: Introducción a la materia Prof. Jaime A. Parada D. y Prof. Jesús Lares 6002, Semestre 1-2014 Escuela de Computación Universidad Central de Venezuela Caracas, 16 de junio de 2014 1 Agenda • Aspectos administrativos de la materia • Qué vamos a estudiar este semestre 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 2 Agenda • Aspectos administrativos de la materia • Qué vamos a estudiar este semestre 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 3 Objetivo del curso • Cerrar la brecha entre el hardware y el software – ¿cómo funciona un procesador? – ¿cómo está organizado un computador? • Establecer las bases para la construcción de aplicaciones de alto nivel – ¿cómo entender/interpreter el rendimiento de un programa? – ¿cómo entender los movimientos tecnológicos que están aconteciendo? 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 4 Grupo Docente • Sección C1: – Profesor: Jaime A. Parada D. (Coordinador) • • • • Lunes y miércoles de 7-9 am Oficina: CCPD – Escuela de Computación email: jaime.parada@ciens.ucv.ve Consulta: Lunes y miércoles después de clase – Preparadora: María Fernanda Cordobés • Viernes de 9-11 am • email: mfcj307@gmail.com 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 5 Grupo Docente • Sección C2: – Profesor: Jesús Láres • Lunes y miércoles de 7-9 am • email: jesus.lares@gmail.com • Consulta: Lunes y miércoles después de clase – Preparador: Carlos Mora • Viernes de 9-11 am • email: carlos.mora.ucv@gmail.com 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 6 Grupo Docente • Por favor, no utilicen los correos para comunicaciones de la materia (a menos que sea estrictamente necesario). Este semestre utilizaremos una página web en piazza. 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 7 Información General • Nota Informativa: – Código: 6002 – Créditos: 5 – Semestre: 3ro. • Requisitos: – Organización y Estructura del Computador I (6001) • Modalidad: Básica • Tipo: Obligatoria • Horas de clase: – Cuatro (4) de teoría – Dos (2) de práctica – Tendremos algunos talleres! 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 8 Página web y noticias • Información de la materia: – Página web: http://www.ciens.ucv.ve/portalasig/organización_y_estruc tura_del_computador_ii/1-2014/informacion_general • Nota informativa • Láminas de clase • Anuncios y discusiones: Piazza – Página web: https://piazza.com/universidad_central_de_venezuela/spr ing2014/cs6002/home • Preguntas sobre todos los aspectos de la materia • ¡Utilicen esta página con frecuencia! 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 9 Bibliografía • El temario de esta materia de basa principalmente en los libros: – David Harris & Sarah Harris. Digital Design and Computer Architecture. 2da. edición. Morgan Kaufmann Publishers, 2012 – David A. Patterson & John L. Hennessy. Estructura y Diseño de Computadores: La Interfaz Hardware/Software. 4ta edición. Editorial Reverté,Barcelona, 2011 (o la 5ta edición en inglés–2014) 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 10 Trabajo por delante… • Asistir a clases puntualmente – Participar en clase – Trabajar en las clases prácticas – REALIZAR LOS PROYECTOS!!! • Leer el libro – Las lecturas se publicarán en la página web 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 11 Evaluación • Exámenes prácticos: – – – – 1ero - 3,33% - 09/07/14 2do - 3,33% - 24/09/14 3ro. - 3,33% - 29/10/14 Sirven como preparación para el parcial... • Exámenes teóricos: – 1ero - 25% - 16/07/14 – 2do - 25% - 01/10/14 – 3ro. - 20% - Fijado por Control de Estudios • Proyectos: Cuatro (4) miniproyectos - 5% c/u • Talleres: No tienen nota – Son sumamente importantes para realizar los proyectos! 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 12 Notas importantes • Para aprobar la materia el alumno deberá obtener una nota definitiva mayor o igual a 10 puntos • La asistencia puntual a cada una de las clases de teoría, practica y talleres es obligatoria – Como obligatoria se entiende que el alumno será evaluado de acuerdo a las actividades desarrolladas durante las clases • No se acepta la entrega de trabajos, reportes u otra asignación escrita a través de medios electrónicos y/o digitales • No hay exámenes de recuperación 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 13 Notas importantes • Existe un único bloque horario para las dos secciones, por tanto no hay cambios de sección • Los exámenes son departamentales y las fechas de realización de éstos son impostergables • Una vez dada revisión sobre alguna evaluación no habrá segunda revisión. Las revisiones de cada evaluación SOLO serán dadas en las fechas estipuladas por el grupo docente • Cualquier duda o inquietud debe plantearla al profesor de su sección o en su defecto al coordinador de la materia. De forma similar se recomienda que copien cualquier email de interés al coordinador de la materia 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 14 Honestidad académica • Usted está en la capacidad de discutir técnicas de resolución de problemas en las diversas actividades de la asignatura con sus compañeros – Las soluciones para cada asignación deben ser PROPIAS y expresadas en sus propias palabras • Está permitido buscar ayuda de otros (compañeros, libros, Internet, etc.) para tratar de comprender la asignación planteada – Las respuestas provistas deben ser expresadas en sus propias palabras, en la forma en que entendió el contenido investigado – Cualquier material consultado y tomado textualmente, debe ser citado con las referencias pertinentes 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 15 Honestidad académica • NO se permiten “las colaboraciones” durante las evaluaciones en clase – El incumplimiento de esta política acarreará la pérdida de la evaluación correspondiente, y la notificación a las autoridades pertinentes • Las copias serán sancionadas con pérdida total de la evaluación para las partes involucradas (ambas) • Con la finalidad de velar por el cumplimiento de la política de honestidad académica expuesta con anterioridad, el GDOECII utilizara herramientas de software para descartar el plagio o copia en las actividad de programación (proyectos y laboratorios) asignados a los estudiantes 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 16 Respecto a las evaluaciones • El material a evaluar en los exámenes tendrá relación con: – Clases teóricas – Ejercicios prácticos – Proyectos – Tareas y asignaciones 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 17 ¿Cuándo empezamos? • Teoría: – El día de hoy • Práctica: – El viernes 20/06/14 • Talleres – Ya está publicado el primer taller!!! 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 18 Objetivos del curso • Analizar y sintetizar circuitos combinacionales y secuenciales. Además, dibujar esquemas lógicos de cada uno de los bloques combinacionales que realizan las operaciones aritméticas básicas. • Comprender el diseño de un procesador RISC sencillo de propósito de propósito general y comprender las diferencias más relevantes entre los computadores RISC y CISC. • Explicar el funcionamiento de un bloque de memoria RAM mediante un cronograma de sus señales de E/S. Conocer detalles de diseño e implementación de la jerarquía memoria. • Explicar las diferentes funcionalidades de una interfaz de E/S, definir los parámetros principales y detallar el esquema bloques de los diferentes subsistemas de entrada/salida. • Describir las técnicas empleadas en el diseño de computadores basadas en paralelismo y sus principios de funcionamiento. 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 19 Temas a discutir • TEMA 1: Diseño Digital • TEMA 2: Medición del Rendimiento de Computadores • TEMA 3: Diseño del Procesador. • TEMA 4: Diseño e Implementación del Sistema de Memoria • TEMA 5: Entrada/Salida, Buses, Interfaces y Periféricos • TEMA 6: Arquitecturas de Computadores Paralelos 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 20 ¿Cómo aprovechar al máximo cada clase? • Lea sobre lo que se va a discutir con antelación • Asista a la clase – Preste atención a las discusiones que se presenten – Haga preguntas, participe • Haga los ejercicios que se plantean en clase – Muchas veces el profesor selecciona éstos para los parciales • Inicie la tarea el día que se le entrega, no el día final!!! 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 21 ¿Preguntas? • ¿Dudas?, ¿Inquietudes? • Hablemos de la organización y arquitectura del computador! 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 22 Agenda • Aspectos administrativos de la materia • Qué vamos a estudiar este semestre 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 23 8 grandes ideas en la arquitectura del computador 1. Ley de Moore 2. Abstracción para simplificar el diseño (Capas de Representación/Interpretación) 3. Hacer el caso común más rápido 4. Mejora del rendimiento: Paralelismo 5. Mejora del rendimiento: Segmentación 6. Mejora del rendimiento: Predicción 7. Principio de Localidad/Jerarquía de Memoria 8. Fiabilidad a través de la Redundancia 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 24 Introducción a los sistemas computacionales • Interruptor eléctrico (switch) – Encendido/apagado (on/off) – Binario • Transistor 6/16/2014 El primer transistor en una mesa de trabajo en los laboratorios ATT Bell en 1947 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 25 Ley de Moore • ¿Quién es Moore?... Cofundador de Intel quien en 1965 planteó: – El número de transistores que pueden ser integrados en una oblea se dobla cada 18 a 24 meses (es decir, crece exponencialmente con el tiempo) • Un increible visionario! – – – – 2300 transistores, reloj de 1 MHz (Intel 4004) - 1971 16 millones de transistores (Ultra Sparc III) 42 millones de transistores, reloj 2 GHz (Intel Xeon) - 2001 55 millones de transistores, 3 GHz, tecnología de 130nm, oblea de 250mm2 (Intel Pentium 4) - 2004 – 290+ millones de transistores, 3 GHz (Intel Core 2 Duo) - 2007 – 721 millones de transistores, 2 GHz (Nehalem) - 2009 – 1.4 millardos de transistores, 3.4 GHz Intel Haswell (Quad core) - 2013 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 26 Número de transistores en un microprocesador desde 1971-2011 & Ley de Moore 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 27 Número de transistores en un microprocesador desde 1971-2011 & Ley de Moore 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 28 Paralelismo CPU: Central Processing Unit (Unidad Central de Procesamiento) 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 29 Los inicios y la época actual • El primer transistor • Un Intel Haswell • 1.4 millardos de transistores • Mesa de trabajo en los • 177 milímetros cuadrados AT&T Labs • Cuatro núcleos de procesamiento • 1947 • Bardeen, Brattain y Shockley 6002: Organización y Estructura del Computador II 6/16/2014 Semestre 1-2014 – Clase #1 30 Los inicios y la época actual • El primer transistor • Exynos 5 Octa de Samsung. Combina: • Cortex-A15 cuatro-núcleos de alto rendimiento • Mesa de trabajo en los • Cortex-A7 cuatro-núcleos de bajo consumo AT&T Labs • Diseñado para tabletas y teléfonos inteligentes • 1947 de alta gama (Galaxy Note 3, Galaxy S4) • Bardeen, Brattain y Shockley 6002: Organización y Estructura del Computador II 6/16/2014 Semestre 1-2014 – Clase #1 31 Paralelismo CPU: Central Processing Unit (Unidad Central de Procesamiento) 6/16/2014 GPU: Graphics Processing Unit (Unidad de Procesamiento “Gráfico”) 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 32 Los cómputos que se adaptan bien al GPU ofrecen mayores GFlops 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 33 Supercomputadores • Petaflops (1015) – GPUs/multicore/100s-1000s cores 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 34 Se acabó el “free lunch” de la programación monohilo!!! 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 35 ¿Por qué los estudiantes de computación necesitan esta materia? • Funcionalidad y rendimiento 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 36 ¿Por qué los estudiantes de computación necesitan esta materia? • Para ser mejores computistas • • • • Abstracción: formas de simplificar la complejidad ¿Cómo está organizado un sistema computacional? ¿Cómo se contruye? ¿Cómo se programa? ¿cómo puede modificarse? ¿Cómo la organización/diseño afectan el rendimiento del computador? 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 37 Organización de un Computador 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 38 Dispositivos móviles personales Personal Mobile Devices 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 39 Centros de cómputo a grandes escalas Warehouse Scale Computer 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 40 Organización de un Sistema de Sistema de Cómputo = ? Cómputo Entrada + Salida + Memoria + Camino de datos + Control Video Keyboard Network Mouse USB Registers bus bus Serial CPU Memory 6/16/2014 Disk 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 Audio 41 Niveles de código de un programa • Lenguaje de alto nivel – Nivel de abstracción más cercano al dominio del problema – Se emplea para productividad y portabilidad • Lenguaje ensamblador – Representación textual de las instrucciones • Representación hardware – Dígitos binarios (bits) – Instrucciones y datos codificados 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 42 Compiladores y Ensambladores C int x = 10; x = 2 * x + 15; r0 = 0 compiler MIPS assembly language addi r5, r0, 10 muli r5, r5, 2 addi r5, r5, 15 r5 = r0 + 10 r5 = r5 * 2 r5 = r15 + 15 assembler MIPS machine language 6/16/2014 op = addi r0 r5 10 00100000000001010000000000001010 00000000000001010010100001000000 00100000101001010000000000001111 op = addi r5 r5 15 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 43 Arquitectura del Conjunto de Instrucciones • ISA – Interfaz abstracta entre el hardware y el nivel más bajo del software – Porción del conjunto de instrucciones que visualiza el usuario mas las interfaces del sistema operativo utilizadas por los programadores de aplicación 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 44 Computador sencillo • Un procesador ejecuta instrucciones – El procesador posee algún estado interno en los elementos de almacenamiento (registros) • Una memoria almacena instrucciones y datos – Arquitectura von Neumann: instrucciones y datos combinados • Ambos están conectados por un bus regs procesador 6/16/2014 01010000 10010100 … bus dirección, datos, r/w memoria 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 45 ¿Cómo diseñar un procesador simple? 10 r5 inst memory 32 register file r0 10 5 5 5 new pc calculation control 00: addi 04: muli 08: addi 6/16/2014 alu 2 00 pc 0 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 r5, r0, 10 r5, r5, 2 r5, r5, 15 46 Dentro del procesador • AMD Barcelona: 4 processor cores 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 47 ¿Cómo programar el procesador? ISA MIPS R3000 • Categorias de las instrucciones – – – – Registers Carga/Almacenamiento Computacionales Saltos y bifurcaciones Punto flotante R0 - R31 PC HI • coprocesador – Administración de memoria OP rs rt OP rs rt OP 6/16/2014 LO rd sa funct immediate jump target 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 48 Visión general de las materias Organización y Estructura del Computador Applicación (ej: navegador) Compilador Software Hardware Ensamblador Procesador Sistema Operativo (Linux) Memoria Sistema de E/S 6001 y 6002 Arquitectura del Conjunto de Instrucciones Camino de datos & Control Diseño Digital Diseño de Circuitos Transistores 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 49 Aplicaciones • En estos últimos años, casi todo! – Teléfonos, carros, televisión, juegos, computadores,… 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 50 Aplicaciones 1200 millions 1000 Cell Phones PCs TVs 785 800 Xilinx FPGA 600 400 200 405 502 295 265 202 200 189 136 135 114 110 93 0 1997 1999 2001 Computación en Nube 2005 2007 Berkeley mote NVidia GPU 6/16/2014 2003 Teléfonos celulares 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 Carros 51 Vamos a cubrir en Organización y Estructura del Computador II Applicación (ej: navegador) Compilador Software Hardware Ensamblador Procesador Sistema Operativo (Linux) Memoria Sistema de E/S Arquitectura del Conjunto de Instrucciones Camino de datos & Control Diseño Digital Diseño de Circuitos Transistores 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 6002 52 Importancia • ¿Por qué esforzarme en esta materia? – Se presenta conocimiento básico que es necesario para las demás áreas de la ciencia de la computación: • Sistemas operativos, compiladores, … – Los niveles no son independientes • Diseño del hardware ↔ diseño del software ↔ rendimiento – Atravesar estas fronteras es retador, pero importante • Manejadores de dispositivos – Técnicas de diseño importantes • Abstracción, organización en capas, segmentación, paralelo vs. serial, … – Comprender los cambios tecnológicos que acontecen 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 53 Resumen • Cómo se diseñan componentes sencillos empleando la lógica digital • Estudiaremos los detalles de implementación de un procesador • Procesadores segmentados • Cómo se puede lograr programación de alto rendimiento aprovechando el paralelismo 6/16/2014 6002: Organización y Estructura del Computador II Semestre 1-2014 – Clase #1 54