Download Interfaces y arquitectura de hardware y Laboratorio
Document related concepts
no text concepts found
Transcript
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: 11325 - INTERFACES Y ARQUITECTURA HARDWARE Y LABORATORIO PRE: 11121 Lógica Digital y Laboratorio COR: 11326 Espacio de Laboratorio de Interfaces y Arquitectura Hardware. Ingenierías: Telemática – Sexto semestre Agosto a Noviembre de 2016 4 horas semanales + 2 horas de laboratorio. 4 Motivación La integración entre el hardware y el software de dispositivos embebidos junto con la incorporación de servicios de internet, juegan un papel importante en el diseño de sistemas teleinformáticos. Para ello, es importante que el estudiante adquiera criterios que le permita aplicar y seleccionar los tipos de arquitecturas y tecnologías hardware más adecuadas incluyendo los “System on Chip” (SoC). Por tal razón, el curso de Interfaces y Arquitectura Hardware Incluye un estudio de la relación hardware-software y se cubren aspectos generales de la arquitectura de los dispositivos de cómputo tales como: desempeño, conjunto de instrucciones, CPUs tipo RISC y CISC, jerarquías de memorias, dispositivos periféricos y de almacenamiento, así como la utilización de interfaces de comunicación y de entrada/salida más comunes en sistemas embebidos. Dentro de los roles del ingeniero telemático, es importante además, que el estudiante pueda verificar el cumplimiento de los requisitos establecidos con criterios técnicos a través de medidas de desempeño y diseño y conducción de experimentos sobre sistema de cómputo. Objetivos 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, haciendo énfasis en las diferentes interfaces de entrada/salida y de comunicación disponibles en los sistemas embebidos emergentes. 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 de un sistema de cómputo y comprender la interrelación entre sus elementos hardware internos con los componentes de software y las diferentes alternativas de interfaces de entrada / salida. Interfaces y arquitectura de Hardware y Laboratorio Página 1 de 11 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA 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. 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. Implementar sistemas y servicios informáticos básicos sobre sistemas embebidos incluyendo aspectos de interfaces de comunicación y computación física. 5. 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. Específicos De formación académica: UNIDAD 1: Introducción A La Estructura y Arquitectura De Los Computadores Objetivos específicos: Identificar los niveles de descripción de un computador convencional y su estructura básica. Ser capaz de identificar la frontera software-hardware, explorando los niveles del hardware conectados a este punto de contacto. 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) Interfaces y arquitectura de Hardware y Laboratorio Página 2 de 11 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA 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. 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. Análisis de errores de la aritmética del computador. Las banderas como bits de información adicional a las operaciones realizadas por la ALU. Información no numérica. Códigos ASCII y Unicode 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 concepto de programa almacenado, la representación de las instrucciones en memoria de una computadora y los pasos para su ejecución en un esquema basado en buses. 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. Interfaces y arquitectura de Hardware y Laboratorio Página 3 de 11 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA 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, de-multiplexores, 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) UNIDAD 4: Arquitectura Del Conjunto De Instrucciones: Interfaz Hardware / Software. 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. Establecer las diferencias generales en el lenguaje ensamblador que se genera al compilar aplicaciones sobre plataformas de 32 y 64 bits. Contenido: Estudio del conjunto de instrucciones de procesadores de uso comercial de equipos de escritorio y dispositivos móviles. Tipos de ISA: Procesadores RISC semejanzas y diferencias con los CISC. Estructura básica interna, características básicas del hardware y conjunto de instrucciones en los procesadores Intel y procesadores ARM. Modos de direccionamiento, manejo de la pila; subrutinas; ejemplos. 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: Sistema de Memoria y Sistema de Entrada/Salida Objetivos específicos: Interfaces y arquitectura de Hardware y Laboratorio Página 4 de 11 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA Dar razón de las jerarquías de memoria y poder diferenciar capacidades, rapidez y costos. Explicar el proceso completo que se lleva a cabo en el manejo de las interrupciones por parte del procesador y demás componentes hardware. Reconocer los “sockets interfaces” como conjunto de funciones que se utilizan en conjunción con las funciones de E/S del sistema operativo para construir aplicaciones de red. 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ípico. Ejemplos. 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. Introducción a los sockets, estructura de direccionamiento de sockets, las funciones socket en UNIX/Linux, ejemplo básico de cliente servidor. Puertos de entrada y salida (I/O digitales, ADC, RS232, USB, 1wire) Actividades de laboratorio: Manejo de puertos digitales y puerto RS232 sobre el PC embebido Raspberry Pi. (Semana 14) Sobre el simulador del Sistema microprocesador didáctico MSX88, se comprueba la técnica de interrupciones y subrutinas de atención de servicio. (Semana 15) Implementación de un sistema básico cliente servidor usando paso de mensajes e integración con sensores y actuadores y servicios Web. UNIDAD 6: Diseño Y Análisis de Experimentos Sobre Sistemas De Cómputo Objetivo: Identificar las etapas en el diseño de experimentos: objetivo, número de factores primarios y secundarios. Fuentes de ruido. 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 para diferentes configuraciones de computadores y relacionar dichos resultados con los componentes hardware y software específicos. Aplicar técnicas de evaluación de desempeño en plataformas RISC y CISC. Describir las técnicas a nivel de microarquitectura que permiten mejorar la eficiencia y desempeño de los procesadores modernos. Interfaces y arquitectura de Hardware y Laboratorio Página 5 de 11 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA Contenido: Escenarios e importancia de las métricas de desempeño. Benchmarking, Benchmarks clásicos (Whetstone, Dhrystone, Linpack y Livermore) para medición de desempeño de los sistemas embebidos. Planteamiento y declaración de hipótesis y objetivo de un experimento Importancia del diseño de los experimentos y Definición de variables, factores primarios y secundarios, restricciones de un experimento. Tipos y etapas de experimentos adecuadas sobre sistemas de cómputo. Análisis e interpretación de datos arrojados de un experimento aplicando técnicas y herramientas de estadística. Actividades de laboratorio: Estimación de parámetros usando datos experimentales (aplicación de inferencia estadística) Diseño y conducción de varios experimento para responder cuestiones sobre el rendimiento de la memoria RAM y CPU Vs un programa de aplicación. De formación en valores y capacidades 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 y evaluación de los componentes necesarios para resolver un problema planteado. 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. 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. Interfaces y arquitectura de Hardware y Laboratorio Página 6 de 11 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA 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. 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/64; 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. Interfaces y arquitectura de Hardware y Laboratorio Página 7 de 11 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA Evaluación Evaluaciones Individuales (70% de la nota final): Ponderación Global Evaluación Individual Evaluación Grupal 70% 30% 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) Proyecto final (PF) Trabajo de laboratorio: (LAB) a) Primer Parcial (1P) 28% 19,60% 28% 19,60% 28% 16% 19,60% 11,20% 50% 15,00% 50% 15,00% 100% (7a.semana) Objetivos de aprendizaje: Identificar los niveles de descripción de un computador convencional y su estructura básica. Ser capaz de identificar la frontera software-hardware, explorando los niveles del hardware conectados a este punto de contacto. Dar razón de la evolución de la computación desde el punto de vista de Arquitectura Von Neumann. 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. Detallar la organización interna básica de una CPU típica b) Segundo parcial (2P) Interfaces y arquitectura de Hardware y Laboratorio (11a.semana) Página 8 de 11 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA Objetivos de aprendizaje: Explicar el concepto de programa almacenado, la representación de las instrucciones en memoria de una computadora y los pasos para su ejecución en un esquema basado en buses. Identificar la relación entre lenguaje máquina y lenguaje ensamblador 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. Establecer las diferencias generales en el lenguaje ensamblador que se genera al compilar aplicaciones sobre plataformas de 32 y 64 bits. c) Tercer Parcial y final (3P) (17a. semana) Objetivos de aprendizaje: Dar razón de las jerarquías de memoria y poder diferenciar capacidades, rapidez y costos. Explicar el proceso completo que se lleva a cabo en el manejo de las interrupciones por parte del procesador y demás componentes hardware. Reconocer los “sockets interfaces” como conjunto de funciones que se utilizan en conjunción con las funciones de E/S del sistema operativo para construir aplicaciones de red. Reconocer la importancia de medir e interpretar las métricas de desempeño para sistemas de cómputo. Reconocer el consumo de potencia como un factor adicional a tener en cuenta en la evaluación de sistemas de cómputo, especialmente al comparar arquitectura RISC vs CISC Describir las técnicas a nivel de microarquitectura que permiten mejorar la eficiencia y desempeño de los procesadores modernos e) Tareas y quices (TAR) Las verificaciones de estudio se hacen sin previo aviso y no tienen supletorio. Evaluación Grupal (30% de la nota final): f) Trabajo final escrito y sustentado (PF) g) Trabajo de laboratorio: (LAB) Interfaces y arquitectura de Hardware y Laboratorio Página 9 de 11 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA La asistencia a las sesiones de laboratorio son obligatorias, la no asistencia corresponde a una nota de cero (0.0) Nota: La distribución de los objetivos asociados a las evaluaciones pueden variar de acuerdo a cambios en las fechas de los exámenes o tiempo de apropiación y estrategias de aprendizaje. De todas formas el profesor informará los objetivos que se evaluarán. Forma de calcular la nota definitiva: La nota definitiva (ND) se calcula de la siguiente manera: 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 Libros 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 (1 de 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. Digital Design and Computer Architecture, David Harris, Sarah Harris. Morgan Kaufmann; 1 edición, 2007. Estructura de Computadores y Periféricos, R.J. Martínez, José A. Boluda, Juan J. Pérez, Alfaomega Ra-Ma, 2001 Interfaces y arquitectura de Hardware y Laboratorio Página 10 de 11 FACULTAD DE INGENIERÍA DEPARTAMENTO CIENCIAS FÍSICAS Y TECNOLOGÍA Arquitectura y Organización de Computadoras, Stallings W. , Prentice Hall Interfaces y arquitectura de Hardware y Laboratorio Página 11 de 11