Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Electrónica
Área: Electrónica
(Programa del año 2018)
I - Oferta Académica
Materia Carrera Plan Año Periodo
PROCESADORES I ING.ELECT.O.S.D 010/05 2018 2° cuatrimestre
PROCESADORES I TEC.UNIV.ELECT. 15/13-CD 2018 2° cuatrimestre
PROCESADORES I PROF.TECN.ELECT 005/09 2018 2° cuatrimestre
PROCESADORES I TEC.UNIV.TELEC. 16/13 2018 2° cuatrimestre
PROCESADORES I ING.ELECT.O.S.D 13/08 2018 2° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
AIRABELLA, ANDRES MIGUEL Prof. Responsable P.Adj Simp 10 Hs
GABUTTI, DIEGO ORLANDO Responsable de Práctico JTP Simp 10 Hs
GARRO MARTINEZ, FELIX LEONARDO Auxiliar de Práctico A.1ra Simp 10 Hs
III - Características del Curso
Credito Horario Semanal Tipificación Duración
Teórico/Práctico Teóricas Prácticas de Aula Práct. de lab/ camp/ Resid/ PIP, etc. Total B - Teoria con prácticas de aula y laboratorio Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
0 Hs. 4 Hs. 1 Hs. 1 Hs. 6 Hs. 2º Cuatrimestre 06/08/2018 16/11/2018 15 90
IV - Fundamentación
El profesional de la electrónica debe ser capaz de resolver problemas que incluyen sistemas computacionales. Todo sistema de cómputo posee uno o más microprocesadores o microcontroladores. Este curso es el primer contacto que los alumnos tienen con un microprocesador y su arquitectura interna, y representa por lo tanto, un desafío pedagógico importante para la enseñanza de conceptos que serán aplicados en materias posteriores.
V - Objetivos / Resultados de Aprendizaje
El objetivo del curso es que los alumnos tengan una idea general de la arquitectura y funcionamiento de un microprocesador básico. Por otra parte, que adquieran un conocimiento profundo de un microprocesador actual. Para lograr esto se dedica mucho tiempo de laboratorio donde se realizan prácticas con distintos microprocesadores y microcontroladores, como así también prácticos de simulación en PCs.
Se trabaja para que el alumno se familiarice con los diseños de hardware (microprocesador conectado con memorias y distintos periféricos) y del software para determinada aplicación. Deberán estar familiarizados con distintos tipos de memorias implementadas en circuitos integrados: ROM, SRAM, DRAM, EPROM, EEPROM, FLASH.
Al finalizar el curso, los alumnos deberán poder identificar los distintos elementos de un sistema de cómputo, la importancia de cada uno de ellos y la forma en la que interactúan estos elementos con el procesador.
VI - Contenidos
Unidad 1: Memorias
Memorias. Memorias semiconductoras. Memorias no volátiles ROM, PROM, EPROM, EEPROM. Memorias de lectura/escritura. Tipos. Características principales. Acceso aleatorio. Arquitecturas. Memorias sincrónicas. Sistema de grabación y borrado. Líneas de control, diagramas de tiempo. Ciclo de lectura y ciclo de escritura. Expansión de memorias.

Unidad 2: Introducción a la organización de una computadora.
Breve descripción de un CPU, Entradas/Salidas, Memoria de Programa y Memoria de Datos. Definición de Unidad de Cómputo. Funciones de cada bloque de la unidad de cómputo: unidad de control, ALU, bus de direcciones, bus de datos y bus de control. Arquitecturas de buses: von Newmann y Harvard. Decodificación de direcciones. Uso de un decodificador para seleccionar diferentes chips de memoria y de E/S. Mapas de memoria.

Unidad 3: Microprocesadores
Histórica de los Microprocesadores desde los ’70 hasta la actualidad. Los primeros microprocesadores de 8 bits. Funciones de sus registros principales: contador de programa, registro de instrucción, acumulador, registros de uso general, flags de la ALU, punteros, etc.
Flujo de información por los buses. Ciclo de búsqueda y código de operación. Tipos de instrucciones: transferencia, aritmético/lógicas, control. Modos de direccionamiento. Subrutinas y uso de la Pila.

Unidad 4
Concepto de CISC y RISC. La filosofía RISC, primeros diseños, MIPS, ARM, RISC-V y tendencias actuales. Estudio del Microprocesador RISC-V. Descripción, bloques principales y registros internos. Modos de direccionamiento. Lenguaje assembly: conceptos generales, sintaxis y pseudo-instrucciones. Set de instrucciones y ejecución de instrucciones típicas. Ejemplos de programas en Python y Assembly para RISC-V. Llamados y retornos de subrutina. Implementación de una pila.

Unidad 5 Datapath del procesador y pipeline
Datapath del RISC-V para el conjunto de instrucciones estudiado. Conexión de memorias. Ejecución de instrucciones a lo largo del Datapath. Pipeline. Riesgos en el Pipeline. Técnicas para evitar riesgos.

Unidad 6
Atención a periféricos: polling, uso de flags o interrupciones. Interrupciones enmascarables y no-enmascarables. Prioridades. Temporizadores: RTC, timer y watchdog timer. Programación y uso con interrupciones.

Unidad 7
Definición de microcontrolador, generalidades. aplicaciones (control, adquisición, computación, etc.). Definición de sistema embebido. Elementos que constituyen un microcontrolador (memorias, EPROM, OTP, FLASH, puertos, timers, etc.). Breve descripción de diferentes familias de microcontroladores actuales.

Unidad 8
Tecnología de los circuitos digitales. Familias CMOS. Inversor. Otras compuertas. Niveles lógicos y márgenes de ruido, consumo de energía. Uso del transistor bipolar como llave. Inversor lógico. Familia TTL, niveles lógicos, margen de ruido y fan-out. Salida totem-pole y con colector abierto. Salidas tri-estado. Sub-Familias TTL. Interfaces TTL-CMOS. Otras tecnologías.

VII - Plan de Trabajos Prácticos
T.P.N°1:
Memorias. Análisis de las hojas de datos de algunas memorias comerciales. Práctica de laboratorio usando memorias EPROM. Lectura del contenido de la misma y comprobación de su característica de no volátil. Práctica de laboratorio usando una memoria RAM estática. Lectura y escritura de la misma y comprobación de su característica volátil.

T.P.N°2:
Expansión de memorias, expansión del número de bits, de la cantidad de direcciones y de ambas. Decodificación de direcciones, evitar el solapamiento de dispositivos. Realizar el mapa de memoria correspondiente.

T.P.N°3:
Elementos de una computadora elemental. Ejercicios básicos en assembly para el RISC-V para adquirir familiaridad con su set de instrucciones.

T.P.N°4:
Uso de un ensamblador/simulador en una PC. Pseudo-instrucciones o directivas. Simulación de programas del RISC-V usando una PC. Ejercicios de programación de complejidad creciente. Programas en assembly y en hexadecimal. Demostración del proceso de compilación y grabación de un programa en el RISC-V implementado en una FPGA.

T.P.N°5:
Trabajo de aprobación de la materia: Configuración y programación de un RISC-V en la FPGA para el control de entradas/salidas del sistema o Timer. Atención de interrupciones.
VIII - Regimen de Aprobación
La materia se aprueba con un examen final. Para rendir este examen, el alumno deberá obtener previamente la regularidad en la materia.
Para obtener la regularidad será necesario:
- Haber aprobado la totalidad de los exámenes parciales.
- Los exámenes parciales se consideran aprobados cuando se realiza correctamente al menos el 70% del mismo.
- Tener al menos el 80 % de asistencias a las clases teóricas y prácticas.
- Tener aprobados el 100% de los trabajos prácticos.
- Se podrán recuperar hasta dos trabajos prácticos.
- Ingresar a las clases prácticas con los conocimientos necesarios para realizar los trabajos de laboratorio.
- No se aceptan alumnos que no estén en condiciones regulares.
- La materia no podrá rendirse en forma libre.
IX - Bibliografía Básica
[1] D. Patterson, J. Hennessy - Computer Organization and Design - The hardware and Software Interface. RISC-V edition. Morgan Kaufmann.
[2] Diseño Digital Principios y Prácticas. John Wakerly.
[3] Apuntes de la materia.
X - Bibliografia Complementaria
[1] Roland N. Ibbett. HASE DLX Simulation Model. IEEE Micro, Vol 20, no 3, p 57-65, 2000.
[2] John L. Hennessy & David Patterson. Computer Architecture: A Quantitative Approach. 2nd Edition. Ed. Morgan and Kaufmann [1990].
XI - Resumen de Objetivos
Obtener una idea general de la arquitectura y funcionamiento de un microprocesador básico. Obtener conocimiento profundo de un microprocesador RISC-V.
Microprocesador conectado con memorias y distintos periféricos y software para determinada aplicación. Distintos tipos de memorias implementadas en circuitos integrados: ROM, SRAM, DRAM, EPROM, EEPROM, FLASH.
Identificar los distintos elementos de un sistema de cómputo, la importancia de cada uno de ellos y la forma en la que interactúan estos elementos con el procesador.
XII - Resumen del Programa
Memorias, no volátiles ROM, PROM, EPROM, EEPROM. Memorias de lectura/escritura. Acceso aleatorio. Sistema de grabación y borrado. Líneas de control, diagramas de tiempo. Expansión y mapa de memorias.

Breve descripción de un CPU, Entradas/Salidas, Memoria de Programa y Memoria de Datos. Arquitecturas de buses: von Newmann y Harvard. Decodificación de direcciones. Tipos de instrucciones: transferencia, aritmético/lógicas, control. Modos de direccionamiento. Subrutinas y uso de la Pila.

Concepto de CISC y RISC. La filosofía RISC, primeros diseños, MIPS, ARM, RISC-V y tendencias actuales. Estudio del Microprocesador RISC-V. Lenguaje assembly. Set de instrucciones y ejecución de instrucciones típicas.

Datapath del RISC-V para el conjunto de instrucciones estudiado. Pipeline. Riesgos en el Pipeline. Técnicas para evitar riesgos.

Atención a periféricos: polling, uso de flags o interrupciones. Interrupciones enmascarables y no-enmascarables. Prioridades. Temporizadores: RTC, timer y watchdog timer. Programación y uso con interrupciones.

Definición de microcontrolador, generalidades. aplicaciones (control, adquisición, computación, etc.). Definición de sistema embebido.

Tecnología de los circuitos digitales.
XIII - Imprevistos
 
XIV - Otros