FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA Código-Materia: Requisito: Programa – Semestre: Período académico: Intensidad semanal: Créditos: 11313 - ARQUITECTURA DE COMPUTADORES Y LABORATORIO PRE: 11121 Lógica Digital y Laboratorio COR: 11314 Espacio de Laboratorio de Arquitectura de computadores. Ingeniería de Sistemas – séptimo semestre Agosto a Noviembre de 2016 4 horas semanales + 2 horas de Laboratorio 3 MOTIVACION El curso de Arquitectura de Computadores ayudará al estudiante a comprender el funcionamiento de los elementos constitutivos de una computadora y le permitirá reconocer las capacidades y limitaciones que tienen los sistemas informáticos en la ejecución de las operaciones para las cuales se va a utilizar y según una determinada configuración. Incluye un estudio de la relación hardware-software y se cubren aspectos generales de la arquitectura de computadores tales como: desempeño, conjunto de instrucciones, CPUs tipo RISC y CISC, jerarquías de memorias, dispositivos periféricos y de almacenamiento y demás elementos hardware que dan soporta a los sistemas operativos así como el uso y aplicación de plataformas hardware basadas en algunos procesadores comerciales, con el fin de dar solución a ciertos problemas tecnológicos en el campo de la ingeniería. OBJETIVOS Objetivo General Evaluar como las estructuras hardware y componentes software de un computador afectan el rendimiento y la utilidad de los programas de aplicación en el procesamiento, almacenamiento y transporte de información. Terminales: Al finalizar el curso el estudiante estará en capacidad de: 1. Identificar los diferentes niveles de abstracción usados para estudiar los componentes funcionales que son comunes a cualquier dispositivo de cómputo y comprender la relación entre dichos elementos hardware y componentes de software. 2. Examinar las limitaciones de los diferentes formatos de representación de datos empleados en los lenguajes de programación y reconocer además como dichas limitaciones afectan el rendimiento de los sistemas de cómputo desde la perspectiva del programador. Arquitectura de Computadores y Laboratorio Página 1 de 10 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA 3. Relacionar las estructuras básicas de programación secuencial usadas en lenguaje de alto con su equivalente en lenguaje ensamblador tanto para procesadores RISC y CISC e inferir como dicho tipo de arquitectura junto con los demás elementos funcionales del computador (sistema de memoria, sistema de entrada y salida, sistema operativo, entre otros) afecta el rendimiento y la utilidad de los programas de aplicación y sugerir formas de minimizar dicho impacto. 4. Comprobar y validar hipótesis sobre aspectos del comportamiento o desempeño del sistema de cómputo y relaciones entre los componentes hardware y software, aplicando para ello la metodología de diseño y conducción de experimentos, así como analizar e interpretar datos con el fin de emitir un juicio o conclusión referente a. Objetivos Específicos de formación académica: UNIDAD 1: INTRODUCCIÓN A LA ESTRUCTURA DE LOS COMPUTADORES Objetivos específicos: Identificar los niveles de descripción de un computador convencional y su estructura básica. Dar razón de la evolución de la computación desde el punto de vista de Arquitectura Von Neumann. Contenido: Introducción general a la estructura de computadores. Niveles de abstracción de un computador y repaso del nivel de lógica Digital. Generalidades sobre el curso e introducción los conceptos de máquinas Von Neumann. (8 horas) Actividades de laboratorio: Discusión general de la estructura de un PC convencional. (Semana 1) Descripción de la placa base un PC convencional. (Semana 2) UNIDAD 2: ARITMÉTICA DEL COMPUTADOR. Objetivos específicos: Examinar las ventajas de la aritmética “en complemento a 2” con respecto a otros sistemas de numeración. Manejar formatos de numeración en punto flotante mediante ejemplos concretos. Describir cómo opera una unidad aritmética y una Unidad de punto flotante. Identificar las limitaciones de los sistemas de numeración y reconocer los inconvenientes que puede ocasionar los cambios de tipo formato en los datos y análisis de errores por redondeo, truncamiento y desbordamiento. Arquitectura de Computadores y Laboratorio Página 2 de 10 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA Contenido: Aritmética del computador: operaciones aritméticas con números positivos y negativos con énfasis en aritmética “Complemento a 2” y el empleo de notación hexadecimal; revisión de otros sistemas de numeración. Generalidades sobre cantidades y operaciones en punto flotantes: números, formatos y descripción de algunas aplicaciones y restricciones de las unidades de punto flotante en el manejo de la información. Las banderas como bits de información adicional a las operaciones realizadas por la ALU. Actividades de laboratorio: Interconexión y Simulación de una ALU típica de 8 bits usando Quartus II. (Semana 3-4) UNIDAD 3: ORGANIZACIÓN DE UNA CPU Objetivos específicos: Detallar la organización interna básica de una CPU típica. Explicar el proceso en un esquema basado en buses (buses de datos, direcciones y de control) durante la búsqueda, decodificación y ejecución de instrucciones de los procesadores. Identificar la relación entre lenguaje máquina y lenguaje ensamblador Contenido: Estructura interna aplicable a toda CPU: Unidad aritmética – lógica, registros internos, unidades de control alambradas y micro-programadas. Ejemplos con un procesador básico de 8 bits. Relación entre Instrucciones en lenguaje de máquina y ensamblador y lenguajes de alto nivel. Proceso detallado de las diferentes fases en el tratamiento de las instrucciones por un procesador: 1) Búsqueda en memoria de las instrucciones (Fetch); 2) decodificación y 3) ejecución. Actividades de laboratorio: Módulo 3: Diseño y simulación de un procesador RISC simple de 8 bits, utilización de la ALU, registros, y bloques constructores vistos en la capa de lógica Digital (multiplexores, demultiplexores, decodificadores, codificadores, etc.). (Semana 5 - 6). Interconexión de la CPU diseñada con un sistema de memoria básico. Analizar las fases de tratamiento de una instrucción y concepto de lenguaje máquina. (Semana 7-8) Arquitectura de Computadores y Laboratorio Página 3 de 10 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA UNIDAD 4: MODELO DE PROGRAMACIÓN DE PORCESADORES CISC Y RISC Objetivos específicos: Explicar los pasos requeridos para cargar y ejecutar un programa que es escrito en lenguaje de alto nivel en un sistema de cómputo. Estar en capacidad de traducir un programa corto de alto nivel (sentencias secuenciales básicas) a lenguaje ensamblador y dar razón de lo que sucede en cada una de las capas de abstracción del sistema de cómputo. Estar en condiciones de mostrar y explicar las diferentes técnicas que se usan para mejorar la eficiencia de los procesadores RISC y CISC Contenido: Análisis del conjunto de instrucciones de procesadores de uso comercial de equipos de escritorio y dispositivos móviles. Qué son los procesadores RISC y cómo operan. Ejemplos; semejanzas y diferencias con los CISC. Estructura básica interna, características básicas del hardware y software de los procesadores Intel; procesadores ARM. Qué es y cómo opera la microprogramación, en contraste con el control alambrado. Modos de direccionamiento, manejo de la pila; subrutinas; ejemplos. Conceptos básicos sobre el proceso de instrucciones sometidas a un “Pipeline” y Microprocesadores Superescalares Actividades de laboratorio: Módulo 3: Programación Básica en Lenguaje Ensamblador. Ejemplos y ejercicios sobre un Software de emulación de procesadores INTEL y ARM (semana 9-10) Módulo 5: Prácticas Avanzadas –Análisis de Subrutinas e Interrupciones (Semana 12-13) UNIDAD 5: ORGANIZACIÓN DE MEMORIA Y SISTEMA DE ENTRADA/SALIDA Objetivos específicos: Dar razón de las jerarquías de memoria y poder diferenciar capacidades, rapidez y costos. Comprender el funcionamiento de la memoria caché y describir cómo afecta el rendimiento y la utilidad de los programas de aplicación. Arquitectura de Computadores y Laboratorio Página 4 de 10 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA Explicar el proceso completo que se lleva a cabo en el manejo de las interrupciones por parte del procesador y demás elementos hardware. Comprender el uso y la importancia de las interrupciones y cambio de contexto en el procesamiento concurrente en los sistemas operativos. Contenido: Organización jerárquica de la memoria, memoria principal y memoria secundaria. Memoria caché, concepto y descripción, análisis de prestaciones, métodos de implementación típicos, múltiples niveles. Ejemplos. Conceptos de memoria virtual y Paginación. Mecanismos generales de la comunicación con los periféricos y de su control por la CPU: Interrupciones de varias clases y procesos de atención a las mismas Actividades de laboratorio: Uso del SMC (Simulador de Memoria caché) que está diseñado con el fin de que el estudiante pueda comprender más fácilmente el modo de acceso a las cachés por parte de la CPU. (semana 14) Práctica tiene como objetivo fundamental la comprensión del funcionamiento de la paginación sobre una arquitectura real y su uso por un sistema operativo real. En particular, la arquitectura IA-32 y S.O Windows XP. (semana 14). Manejo de puertos digitales sobre el PC embebido Raspberry Pi. (Semana 15) Sobre el simulador del Sistema microprocesador didáctico MSX88, se comprueba la técnica de interrupciones y subrutinas de atención de servicio. (Semana 16) UNIDAD 6: DISEÑO Y ANÁLISIS DE EXPERIMENTOS SOBRE SISTEMAS DE CÓMPUTO Objetivos específicos: Identificar las etapas en el diseño de experimentos: objetivo, número de factores y efectos. Aplicar la metodología de diseño y conducción de experimentos partiendo de una hipótesis relacionada con el desempeño y comportamiento de un sistema de cómputo. Interpretar y analizar los datos obtenidos en un experimento así como de las pruebas de benchmarking para diferentes configuraciones de computadores y relacionar dichos resultados con los componentes hardware y software específicos. Contenido: Planteamiento y declaración de hipótesis y objetivo de un experimento Importancia del diseño de los experimentos Definición de variables, factores, restricciones de un experimento. Tipos y etapas de experimentos adecuadas en sistemas de cómputo. Arquitectura de Computadores y Laboratorio Página 5 de 10 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA Análisis e interpretación de datos arrojados de un experimento. Medidas de desempeño estándar para equipos de cómputo (RISC y CISC) Objetivos Específicos De formación en valores y capacidades: Al terminar el curso cada estudiante habrá tenido la oportunidad de reflexionar sobre los siguientes valores, así como de desarrollar habilidades tales como: Fomenten las capacidades y adquieran los conocimientos necesarios para el diálogo crítico Trabajo en equipo, se refiere a equipos más o menos numerosos de personas que trabajan en un mismo proyecto y que son multidisciplinares, ya que el proyecto final se realizará en conjunto con los estudiantes de ingeniería telemática. La tolerancia, y no en el sentido de desinterés por lo que piensa el otro sino más bien promover el respeto activo, el interés por comprender a los otros y por ayudar a cumplir los objetivos de aprendizaje. La autonomía e interés de querer ir más allá de los que se enseña. La perseverancia a través del desarrollo de los ejercicios y de talleres y que la motivación simplemente no se una nota si no su autoformación y amor por aprender cosas nuevas. La capacidad de análisis, a través de la identificación de los elementos necesarios para resolver un problema planteado (entradas, salidas, funciones lógicas). La capacidad cooperación y comunicación, ya que se deben presentar las soluciones a los problemas propuestos de una manera clara para los demás participantes del curso. La capacidad de trabajo bajo presión, ya que se cuenta con tiempos limitados para algunas actividades. METODOLOGÍA Presentación, lecturas y discusión de los temas teóricos; quices, preguntas, trabajo individual y en grupos; mediante guía del profesor el estudiante inferirá la manera como operan los principales componentes hardware de una máquina de cómputo; proyectos de fin de curso. Los alumnos estudiarán materiales basados en el texto guía, libros de referencia, notas del curso, e información extraída del Internet, de revistas, etc., para discusión en clase. Arquitectura de Computadores y Laboratorio Página 6 de 10 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA Experimentos de laboratorio: Simulación de algunos componentes funcionales de un computador Preparación y ejecución de programas en lenguaje en ensamblador para la arquitectura IA32; simulación de la operación de un microprocesador didáctico; Compilación y ejecución de programas sobre una arquitectura real y su uso por un sistema operativo real. Ayudas docentes tales como videos, proyecciones y uso de programas licenciados y “freeware”. Actividades del estudiante Antes de la clase: • Estudiar el material asignado para cada sesión, para ello debe consultar en moodle los temas de estudio de la unidad. • Responder las preguntas de preparación de cada tema. • Resolver los ejercicios propuestos para aplicar los conceptos estudiados. • Escribir las inquietudes y observaciones surgidas en el proceso de preparación del tema. Durante la clase: • Los estudiantes deben participar activamente (compartir experiencias, transmitir las dudas para ser aclaradas) en las actividades asignadas para cada tema partiendo del conocimiento previo adquirido a través de la lectura y de la elaboración de los informes. • Realizar los ejercicios complementarios que el profesor indique. Después de la clase: • Terminar los ejercicios presentados en cada clase. • Resolver los ejercicios propuestos por el profesor. • Aplicar los conocimientos y técnicas aprendidas en la realización de los ejercicios de cada tema. EVALUACIÓN (Características y ponderación de las evaluaciones) Ponderación Global Evaluación Individual 70% Primer Examen Parcial (1P) Semana 7 - Miércoles 14 septiembre. Segundo Examen parcial (2P) Semana 11 - Miércoles 12 de octubre. Tercer Examen Parcial y final (3P) Semana 17 – Miércoles 23 noviembre Tareas y verificaciones de estudio (TAR) Arquitectura de Computadores y Laboratorio 28% 19,60% 28% 19,60% 28% 16% 19,60% 11,20% Página 7 de 10 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA Evaluación Grupal 30% Proyecto final (PF) Trabajo de laboratorio: (LAB) 50% 15,00% 50% 15,00% 100% Evaluaciones Individuales (70% de la nota final): a) Primer Examen Parcial (1P) 28% (7a.semana) Objetivos de aprendizaje: Identificar los niveles de descripción de un computador convencional y su estructura básica Examinar las ventajas de la aritmética “en complemento a 2” con respecto a otros sistemas de numeración en el trabajo con computadores. Manejar formatos de numeración en punto flotante mediante ejemplos concretos y aplicaciones. Detallar la organización interna básica de una CPU típica. Describir cómo opera una unidad aritmética – lógica básica. Dar razón de la evolución de la computación desde el punto de vista de Arquitectura Von Neumann. Dar razón del ciclo de instrucción, diferenciar la fase de búsqueda, decodificación y ejecución de instrucciones algunos procesadores b) Segundo Examen parcial (2P) 28% (11a.semana) Objetivos de aprendizaje: Estar en condiciones de mostrar y explicar la secuencia de procesos que ocurren dentro de un procesador típico. Comparar y relacionar los diferentes lenguajes que se manejan en una máquina procesadora de información. Realizar con ayuda de un emulador ejemplos de un programa en lenguaje máquina y relacionarlo con estructuras de programación de alto nivel. Mostrar las semejanzas y diferencias entre los diferentes microprocesadores Analizar las instrucciones básicas de los procesadores Explicar las características de los procesadores superescalares y con pipeline Arquitectura de Computadores y Laboratorio Página 8 de 10 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA c) Tercer Examen Parcial y final (3P) 28% (17a. semana) Objetivos de aprendizaje: Dar razón de la memoria caché y sistema de paginación utilizada en sistemas operativos modernos. Dar razón sobre qué son los procesadores RISC y las diferencias con los CISC Manejar el conjunto de instrucciones de los procesadores INTEL con ayuda de emuladores y simuladores. Explicar las diferencias de los procesos de: POLLING o escrutinio continuo; interrupciones. Manejar el sistema de interrupciones de los procesadores y aplicarlo a un problema dado. Identificar las etapas en el diseño de experimentos: objetivo, número de factores y efectos. Aplicar el diseño y conducción de un experimento partiendo de una hipótesis relacionada con el desempeño y comportamiento de un sistema de cómputo. Interpretar y analizar los datos obtenidos en un experimento así como de las pruebas de bechmarking para diferentes configuraciones de computadores y relacionar dichos resultados con los componentes hardware y software específicos. Nota: En la evaluación final, se trata los temas de las evaluaciones anteriores. e) Tareas y quices (TAR) 16% Las verificaciones de estudio se hacen sin previo aviso y no tienen supletorio. Evaluación Grupal (30% de la nota final): f) Proyecto final (PF) 50% g) Trabajo de laboratorio: (LAB) 50% La asistencia a las sesiones de laboratorio son obligatorias, la no asistencia corresponde a una nota de cero (0.0) Nota: Algunos temas de los exámenes son acumulativos, dichos temas y objetivos serán informados por el profesor. FORMA DE CALCULAR LA NOTA DEFINITIVA: La nota definitiva (ND) se calcula de la siguiente manera: Arquitectura de Computadores y Laboratorio Página 9 de 10 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA La nota teórica (NT) está dada por: NT= 1P*0.28 + 2P*0.28 + 3P*0.28 + TAR*0.16 Si la nota teórica es mayor o igual a 3, entonces: ND= (NT*0.7) + PF*0.15 + LAB*0.15 Si la nota teórica es menor que 3 (NT<3) entonces la nota definitiva es: ND=NT BIBLIOGRAFÍA TEXTOS GUÍA. Principal: 1. Computer Systems: A Programmer's Perspective, Randal E. Bryant, David R. O'Hallaron. Addison Wesley Pub Co Inc; Edición: 0002 (Febrero de 2010). Secundarios: 2. Digital Desing and Computer Architecture, David Money Harris & Sarah L. Harris. Morgan Kaufmann; 1 edition (March 16, 2007) 3. Inside the Machine: An Illustrated Introduction to Microprocessors and Computer Architecture. Jon M. Stokes, 1 edition (November 30, 2006) REFERENCIAS GENERALES Microprocesadores de INTEL 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, Prentium ProProcessor, Pentium II, III, 4. BREY, Barry B. Prentice Hall; 7 edición, 2005. Estructura de Computadores y Periféricos, R.J. Martínez, José A. Boluda, Juan J. Pérez, Alfaomega Ra-Ma, 2001 Arquitectura y Organización de Computadoras, Stallings W. , Prentice Hall. Arquitectura de Computadores y Laboratorio Página 10 de 10