Universidad Católica de Córdoba Facultad de Ingeniería Circuitos IV - Año 2008 - 2do semestre Titular: Ing. John Coppens 1 Objetivos específicos Organización y arquitectura de computadoras (título de la matería) tiene como meta, la representación, en forma clara y concisa, de la naturaleza y las características de computadoras modernas. La enorme variedad de las máquinas disponibles actualmente, hace díficil la representación unificada de todos los modeles. Sin embargo, ciertos conceptos fundamentales son aplicables en todo el espectro de la computación. La intención de esta materia es de representar una discusión detallada de los fundamentos de la organización y arquitectura de computadoras en general y relacionarlos con 'el estado del arte' con la descripción de algunos elementos de procesadores modernos como la familia Pentium de Intel y Athlon de AMD. Introduccion a procesadores multiples y de 64 bits. Además presentar otras filosofías de diseño, optimizadas para ciertas aplicaciones, con finalidad de brindar criterios de selección en el ambiente ingenieril. Un elemento y objectivo importante de la materia es brindar al estudiante los elementos suficientes para encarar proyectos sobre una computadora: conocimientos sobre el hardware, el software, y la interacción entre ambos. 2 Programa sintético 2.1 Introducción Repaso de los conocimientos, método de trabajo, introducción a la materia. 2.2 Vías de comunicación Vias seriales, como el puerto serial asincrónico: RS-232, 422, 485..., de mediana velocidad, como FireWire y USB, I^{2}C (SMBUS), y de alta velocidad, como Ethernet de 10/100/1G/10G, ópticos, etc. Vias paralelas: modos modernos (ECP/EPP/IEEE1284), buses internos como (E)ISA, PCI, SCSI. Análisis de las capas de implementación: Hardware, actual y futuro. Redes Ethernet, Wireless, Ópticos. Empaquetado de la información, protocolos. 2.3 Organización de datos Datos en un disco rígido - estructura de archivos. Ejemplos y tendencias de organización: FAT16/32, Ext2/3, ReiserFS, NTFS. Comparación de las características. Otros medios de almacenamiento masivo: CD-R, CD-RW, DVD. Problemas particulares de estos medios. Sistemas de detección y recuperación de errores. Introducción a bases de datos. Acercamiento de la organización de datos en discos a bases de datos. Sistemas redundantes de discos - RAID. Diferentes niveles de implementación. 2.4 Soporte para sistemas operativos Cual es la influencia de los sistemas operativos (o del software en general) sobre los microprocesadores? Ejemplos. Introducción a sistemas multitareas y de tiempo real. Exigencias.Multitasking pre-emptivo y cooperativo. Ejemplos e implementaciones. 2.5 Variantes en la arquitectura de CPU Estructura y funciones avanzadas de la CPU. Técnicas avanzadas como procesadores superescalares. Multiprocesamiento, local y remoto. Problemática en multiprocesamiento. RISC/ CISC/ Aplicaciones para procesamiento digital de señales. Implementacions híbridas como el AMD Athlon. Extensiones especiales: MMX, 3D Now. 2.6 Procesamiento digital de señales Procesadores digitales de señales en particular: Motorola/TI/otros. Estudio mas detallado y comparativo entre las diferentes implementaciones. DSP de punto flotante y de punto fijo. Aplicaciones de procesadores digitales de señales. Introducción a los algoritmos de procesamiento digital de señales: Conversión, Algoritmo, Conversión. Convolución, FFT y otras técnicas de uso común. Ejemplos de aplicación. 3 Bibliografía obligatoria - Computer Organización and Architecture (William Stallings), Prentice Hall, ISBN 0-13-081294-3 - Organización y Arquitectura de Computadoras (William Stallings) 4 Bibliografía de consulta - 802.11 Wireless Networks - The definitive guide Matthew S. Gast, O'Reilly, ISBN 0-596-00183-5 - Pentium Processor Family Developer's Manual Intel Corp., (Developers' Insight CD-ROM: 24142805.pdf) - Pentium- Processor with MMX(TM) Technology Intel Corp., (Developers' Insight CD-ROM: 24318504.pdf) - USB in a Nutshell [http://www.jcoppens.com/univ/circ4/data/nutshell.pdf] - Philips official specification of the I2C bus [http://www.jcoppens.com/univ/circ4/data/philips.pdf] - Linux Extended Filesystem-2 [http://www.jcoppens.com/univ/circ4/data/ext2fs.pdf] - Linux Extended Filesystem-2 (Traducción) [http://www.jcoppens.com/univ/circ4/data/ext2fs_es.pdf] - AMD-K6 MMX Processor Data Sheet AMD Corp., AMD, document 20695C, [http://www.amd.com] - MMX Specification AMD Corp., AMD, document 20726c.pdf, [http://www.amd.com] - AMD-Athlon processor model 4 Data sheet AMD Corp., AMD, document 23792K, [http://www.amd.com] - AMD 3D-Now! Technology manual AMD Corp., AMD, document 21928, [http://www.amd.com] - Digital filters R.W. Hamming (Prentice Hall - 0-13-212571-4) - The Fast Fourier Transform E. Oran Brigham (Prentice Hall - 0-13-307496-X) - Digital Filters: Analysis and Design Andreas Antoniou (McGraw-Hill - 0-07-002117-1) - Información de la Cátedra de Sistemas Operativos de Tiempo Real [http://www.jcoppens.com/univ/treal] - Información sobre el Proyecto Globo [http://www.jcoppens.com/globo/] 5 Metodología En una matería que esta conectada con el uso diario de computadoras, es importante de mostrar en cada momento la relación entre el contenido del curso, y su aplicación. En los prácticos se realizarán ejercicios para comprobar lo explicado con experimentos que muestran el comportamiento y las ventajas/desventajas de las diferentes configuraciones. También se implementarán tareas para mostrar que las técnicas aplicadas en 'hardware', pueden tener aplicaciones para aumentar la performance de otros sistemas (por ejemplo, la implementación de caches en software). 6 Calendario 6.1 Teórico +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fecha | Unidad | Tema/actividad | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 06/08 | 1 | Repaso de los conocimientos, método de trabajo, introducción. | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 13/08 | 2.1 | Canales de comunicación: Puerto serial asincrónico: RS-232, 422, 485... Puerto paralelo: modos modernos (ECP/EPP/IEEE1284) USB (-2.0): arquitectura, hardware, protocolo I^{2}C (SMBUS) arquitectura, hardware, protocolo | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 20/08 | 2.2 | Canales de comunicación: Redes: Análisis de la las capas de implementación: Hardware, actual y futuro. Redes Ethernet, Wireless, Ópticos Empaquetado de la información, protocolos | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 27/08 | 2.4 | Organización de datos en un disco rígido - estructura de archivos Ejemplos de organización: FAT16/32, Ext2/3, ReiserFS, NTFS. Comparación de las características. Otros medios de almacenamiento masivo: CD-R, CD-RW, DVD. Problemas particulares de estos medios. Sistemas de recuperación de errores. | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 03/09 | 2.4 | Sistema de discos redundantes - RAID. Diferentes niveles de implementación RAID0 - 6 Implementaciones por hardware y por software. | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 10/09 | | Soporte para sistemas operativos. Cual es la influencia de los sistemas operativos (o del software en general) sobre los microprocesadores? Ejemplos. Multitasking pre-emptivo y cooperativo. Ejemplos e implementaciones | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 17/09 | | Primer Parcial | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 01/10 | 2.5 | Estructura y funciones avanzadas de la CPU. Técnicas avanzadas como procesadores superescalares. Multiprocesamiento, local y remoto. Problemática en multiprocesamiento. Sistemas operativos. | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 08/10 | | Otras arquitecturas de CPU: RISC/ CISC/ Aplicaciones para procesamiento digital de señales. | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 15/10 | 2.6 | Procesadores digitales de señales en particular: Motorola/TI/otros. Estudio mas detallado y comparativo entre las diferentes implementaciones. DSP de punto flotante y de punto fijo. | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 22/10 | 2.7 | Aplicaciones de procesadores digitales de señales. Introducción a los algoritmos de procesamiento digital de señales: Conversión, Algoritmo, Conversión. | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 29/10 | | Tutorial sobre DSP. | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 05/11 | | Segundo Parcial | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 12/11 | | Recuperatorio | +--------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6.2 Prácticos +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Fecha | Tema/Actividad | +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 08/08 | Protocolo EPP/ECP y extensiones IEEE-1284. Ejemplo del protocolo. Implementación del protocolo en un microcontrolador. Tarea 1: implementar rutinas para conmutar dos puertos. | +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 15/08 | Revisación de las rutinas. Extender las rutinas para implementar la actual transferencia de datos. | +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 22/08 | Implementación sencilla del protocolo I2C: interfase con la PC, comunicación entre ambos. | +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 29/08 | Implementación sencilla del protocolo I2C en un microcontrolador. | +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 05/09 | Generación de señales analógicas con un microcontrolador: simple D/A con red R-2R, o generación con otros métodos. | +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 12/09 | Protocolo X.25 - y variante AX.25. Implementación simplificado del protocolo. Experimentos con las rutinas anteriores para comunicación por radio. | +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 19/09 | Combinación de lo hecho anteriormente: protocolo ECP, generación de audio, y eventualmente AX.25 para adquirir imágenes, convertirlos a un formato de emisión | | 28/09 | | +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 03/10 | | +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 10/10 | Experimentos con kits de DSP: Escribir pequeñas rutinas de assembler, compilación, búsqueda de problemas. | +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 17/10 | Escribir pequeñas rutinas para la generación de ondas senosoidales en un DSP 56000 de Motorola. Demo de un analizador de espectro de alta resolución. | +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 24/10 | Experimentos con kits de DSP: Escribir pequeñas rutinas para el filtrado digital de señales. | | 31/10 | | +--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 7 Criterios y formas de evaluación 7.1 Durante el semestre Se considera muy importante, la colaboración y dedicación durante el semestre. Los prácticos fueron elegidos para lograr un objetivo práctico necesario en el marco de un proyecto más complejo. El trabajo entonces consistirá en la realización de un trabajo gradual: implementación de pequeñas rutinas, diseño de algunas interfases simples relacionados, etc. El trabajo se coordinadará a través de una lista de discusión por la internet, y los trabajos se presentarán por correo electrónico. Se evaluarán por su: originalidad, solidez de implementación, estructura, documentación. Aunque se trata de un proyecto 'continuo', se evaluarán los aportes en 'hitos', o milestones. Se indicará en clases la fecha de presentación de cada etapa del trabajo. 7.2 Parciales En la parte teórica se realizarán además dos parciales, evaluando el conocimiento sobre la materia en forma individual. Se generará uno o dos trabajos de investigación - recopilación de datos por la internet, catalogación, y aplicación de la información en un trabajo práctico (ver prácticos, abajo). En las notas finales se agregará una evaluación de la participación del alumno en las actividades. 7.3 Examen final: El examen final teórico consistirá en dos partes: una evaluación de los conocimientos teóricos de la matería y una confirmación individual de la participación en la realización de los trabajos presentados en grupos. El énfasis en los exámenes estará sobre la capacidad de resolución de problemas y razonamiento. 8 Condiciones para obtener la regularidad Las condiciones formales son las que actualmente rigen para todas las cátedras, según el reglamento vigente. 9 Trabajos prácticos Se asignará trabajos de investigación y recopilación de datos (tanto en literatura como en la Internet) sobre ciertos aspectos de la materia, para lograr la evaluación del conocimientos sobre los aspectos complejos de la materia. Posteriormente se dedicará tiempo en clases para discutir los resultados obtenidos. Las diferentes secciones fueron diseñadas para lograr un objetivo común: la transmisión sencilla de imágenes. Para sistemas operativos multi-tasking, se prevé la realización de prácticos bajo Windows y Unix. Para lograr lo anterior - se hará una comparación detallada de los idiomas actuales de programación, el estado de las herramientas de desarrollo, ventajas y desventajas, implicaciones sobre la velocidad, entornos gráficos para el usuario. Criterios de selección, disponibilidad, confiabilidad de sistemas. En máquinas modernas, se indicará proyectos de investigación: cambios de estrategías de asignación de memoría, tamaño de cache etc. Según el área de interés de los alumnos, se determinará un proyecto de desarrollo en común, donde se delega las tareas a grupos de trabajo, con elementos de investigación de otras implementaciones, y creacion de diseño nuevo.