A partir de la base de conocimientos obtenida en la materia previa "Introducción a los Sistemas Lógi-cos y Digitales", esta asignatura debe comenzar con la formación del alumno en los fundamentos de los sistemas de computación, a través de la comprensión de las funciones de cada subsistema, y los detalles de arquitectura, organización y realización física, vistos en el marco que ofrecen los micro-procesadores como componentes fundamentales en la tecnología digital moderna. Asimismo, se pro-cura lograr la iniciación en el uso de la programación como soporte lógico fundamental para el proce-samiento de datos y señales en las diversas aplicaciones de ingeniería.
PROGRAMA SINTÉTICO
- Introducción: Panorama general de los sistemas digitales y computadores. Microelectrónica y su evolución hasta llegar al microprocesador· - Computadores: conceptos básicos. Arquitectura, organización y realización física. Subsistemas y sus funciones. Significado de las instrucciones. Aplicaciones de los computadores.· - Subsistema procesador y microprocesadores: Generalidades sobre arquitectura, registros, transfe-rencias entre éstos y con la memoria. Formato de instrucciones y clasificación de las mismas. Refe-rencias a operandos. Modos de direccionamiento. Ciclos de procesamiento: descripción en lenguaje de transferencia de registros. Excepciones.· - Fundamentos de programación: Niveles de lenguajes. Traductores y utilitarios de programación. Ejercicios de programación en lenguaje simbólico de bajo nivel.· -Subsistema de memoria: Generalidades y jerarquía de dispositivos de memoria, parámetros caracte-rísticos. Organización de bloques de memoria. Memoria "caché": nociones básicas de su función y estructura.· - Subsistema de entrada / salida: Transferencias entre el sistema y los periféricos. Lógica de transfe-rencia y lógica de control. Puertas de E/S: tipos y características. Enlaces programables. Entrada / salida incluída en "mapa" de memoria o separada.· - Modos de entrada / salida: E/S programada, o por interrupción o por acceso directo a memoria (DMA); características generales de los controladores de interrupción y de DMA.·- Microcomputadores de uso específico: Diseño: especificaciones, asignación de hardware y softwa-re. Diseño de subsistemas, desarrollo de programas. Ejercicios de diseño.· -Microcomputadores de propósito general: Computadores Personales (PC): evolución, arquitectura típica, organización. Conceptos básicos sobre sistemas operativos. Llamados al sistema. Programa-ción en lenguaje ensamblador. Ejercicios.
PROGRAMA ANALÍTICO
Año: 2023, semestre: 1
Vigencia: 01/02/2002 - Actualidad
1.- INTRODUCCIÓN: Sistemas digitales y computadores: evolución de la tecnología e importancia de la Microelectrónica. Niveles de integración y desarrollo del soporte físico de los sistemas. Tecnologías bipolares y MOS: resumen de sus características principales. Componentes integrados standard LSI/VLSI: memorias, microprocesadores. Nociones sobre diseño de circuitos integrados: etapas del proceso y distintas modalidades: "gate arrays", "standard cells", "full custom". Consecuencias de la aparición del microprocesador.
2.- COMPUTADORES: Conceptos básicos: el computador como conversor de información: procesamiento de datos e información de control: el programa almacenado. Arquitectura clásica de Von Neumann. Subsistemas: procesador (unidad de control y unidad operativa), memoria y entrada/salida; definiciones y funciones. Exoarquitectura y endoarquitectura: distintos niveles de abstracción. El lenguaje de las instrucciones y el concepto de interpretación. Aplicaciones de los sistemas computadores: de procesamiento de datos; de adquisición y procesamiento; de adquisición, procesamiento y control. El microprocesador y los microcomputadores: su importancia en distintos campos de aplicación.
3.- EL SUBSISTEMA PROCESADOR: Exoarquitectura, registros, operaciones de transferencia entre registros y entre éstos y la memoria. Estructura de las instrucciones: código operación y referencias a ubicación de operandos; clasificación de los procesadores según el número de esas referencias; características de las arquitecturas de una y dos referencias y ejemplos de los procesadores de ambos tipos. Comunicación entre el procesador y los demás subsistemas: "buses de direcciones y datos, líneas de control. Endoarquitectura: descripción del procesamiento de instrucciones mediante lenguaje de transferencia entre registros; los ciclos de máquina y de instrucción. Búsqueda del código operación, decodificación, búsqueda de operandos, y ejecución.
4.- MICROPROCESADORES, EXOARQUITECTURA E INSTRUCCIONES: Evolución de las arquitecturas de microprocesadores de propósito general: Modelos de los registros programables, espacio total de direccionamiento, tipos de datos. Modos de direccionamiento: de registros, inmediato, directo, indirecto y calculado, con sus respectivas variantes. Instrucciones y su clasificación funcional: de transferencia de datos, aritmético- lógicas, de modificación de contenidos en memoria y registros, de control del programa, de control del sistema, y de entrada-salida. Ejemplos.
5.- MICROPROCESADORES, SEÑALES DE CONTROL, MODOS DE FUNCIONAMIENTO Y EXCEPCIONES: Clases de líneas de control y su manera de actuar: líneas de control de transferencia; de puesta en condición inicial; de control de los "buses"; y de interrupción. Casos de microprocesadores de 8 bits y comparación entre los mismos. Mecanismo de interrupción a nivel del procesador: formas de aplicación de las líneas enmascarables o no, prioridad entre ellas, respuesta del procesador. Microprocesadores de 16/32 bits: introducción de los modos de funcionamiento orientados al sistema operativo. Concepto de excepción y diferentes tipos de excepciones, interna y externamente generadas. Ejemplos.
6.- BASES DE LA PROGRAMACIÓN: Concepto de código absoluto y de lenguaje de bajo y alto nivel. Ejercicios elementales de programación en código absoluto. Traductores: ensambladores y compilador. Utilitarios para desarrollo de programas: editores, cargadores y "debuggers". Ejercicios de programación en lenguaje simbólico de bajo nivel: definición del problema y del algoritmo; proyecto del programa. Directivas del ensamblador; micro y macro ensambladores. Uso de subrutinas, cambio de contexto, pasaje de parámetros, retorno. Ejemplos.
7.- SUBSISTEMA DE MEMORIA: Panorama general de los dispositivos de almacenamiento de información. La jerarquía de las memorias: capacidad de almacenamiento y tiempo de acceso; "latencia" y "ancho de banda". Memorias semiconductoras que componen el subsistema de memoria: características y organización. Bloques de memoria en base a circuitos integrados; expansión de palabra, de dirección, o de ambas. La memoria "caché" y su funcionamiento: principio de localidad de las referencias; problemas de ubicación ("mapping") y reemplazo.
8.- SUBSISTEMA DE ENTRADA/ SALIDA: Funciones que debe cumplir. Formas de transferencia con la periferia. Lógica de transferencia y lógica de control. Puertas de entrada, de salida, de entrada/salida y bidireccionales. Circuitos integrados de enlace a periferia programables de uso general: ejemplos. Manejo de E/S por parte del procesador; subsistema de E/S incluído en el mapa de memoria, o separado; instrucciones específicas para este último caso. Ejemplos de enlaces a periferia típicos, y su programación.
BIBLIOGRAFÍA
Año: 2023, semestre: 1
Vigencia: 01/02/2002 - Actualidad
D. A. Patterson, J. L. Hennessy: "Estructura y Diseño de Computadores - Interface, Circuitería y Programación - Vols. 1, 2 y 3. Ed. Reverté, 2000.•
D. A. Patterson, J. L. Hennessy: "Organización y Diseño de Computadores”. Mc Graw-Hill, 1995.•
J. L. Hennessy, D. A. Patterson: "Arquitectura de Computadores. Un Enfoque Cuantitativo". Mc Graw-Hill, 1993.•
W. Stallings: “Computer Organization and Architecture”. Prentice Hall, 4 th. Edition, 1996.•
Van de Goor, A. J.: "Computer Architecture and Design". Addison-Wesley, 1989.•
F. Hill, G. Peterson: "Digital Logic and Microprocessors", J. Wiley and Sons, 1991 •
D. Givone, R. Roesser: "Microprocessors / Microcomputers: An Introduction", Mc Graw-Hill, 1980.•
J. Peatman: "Microcomputer-based Design", Mc Graw-Hill, 1978.•
L. A. Leventhal, "Introduction to Microprocessors: Software, Hardware, Programming", Prentice-Hall, 1978 •
Siemens Aktiengesellschaft: "Microcomputadores", Marcombo S. A., 1988•
H. Taub: "Circuitos Digitales y Microprocesadores", Mc Graw-Hill, 1989 •
M. De Blasi: "Computer Architecture", Addison-Wesley, 1990.•
D. A. Bradley: "Assembly Language Programming for the IBM Personal Computer", Prentice-Hall, 1984•
C. A. Ogdin: "Microcomputer Design", Prentice-Hall, 1978.•
C. A. Ogdin: "Software Design for Microcomputers", Prentice-Hall, 1978.•
Intel Corporation: "Microprocessor and Peripherals Handbook", diversas ediciones.•
Motorola Inc. "Microprocessor Handbook", diversas ediciones.
ACTIVIDADES PRÁCTICAS
4.1.- Prácticas llevadas a cabo en el aula (total 18 horas): Constan de explicaciones en el pizarrón, y trabajo de ejercitación en papel por parte de los alumnos. Cada uno de ellos requiere una carga hora-ria que se indica en cada caso:· Trabajo Práctico No. 1 - Microprocesadores de 8 bits. Explicaciones sobre conceptos de ensamblado, enlazado, lenguaje de máquina, modelo de programación, manejo e interpretación del set de instruc-ciones. Los alumnos realizan ejercicios de programación en lenguaje Assembler con un grado cre-ciente de dificultad. Tiempo dedicado: 6 horas.· Trabajo Práctico No. 2 - Memoria y Subsistema de entrada/salida: Decodificación y organización de la memoria. Dispositivos para enlace de entrada/salida. Se realizan ejercicios sobre el mapeo y deco-dificación de memoria en base a la subdivisión de la misma en bloques o "chips" de determinada ca-pacidad. También hay ejercicios de programación de enlaces a periferia característicos. Tiempo dedi-cado: 6 horas.· Trabajo Práctico No. 3 - Assembler de procesadores de PC: Análisis de rutinas: Introducción a los procesadores típicos y a la programación de PC en lenguaje Assembler. Los alumnos realizan la pro-gramación de casos simples con aplicación de subrutinas, que luego se someterán a prueba en labo-ratorio, como se indica en 4.2. Tiempo dedicado: 6 horas.4.2.- Prácticas de Laboratorio (total 30 horas):· Kit de desarrollo de un microprocesador de 8 bits: Se entrega a los alumnos una descripción general de la plaqueta, su finalidad y sus principales coman-dos. Los alumnos realizan el ensamblado manual en papel de algunos de los programas que escribie-ron para el Trabajo Práctico No.1, basándose en la información que suministra el set de instrucciones, para luego introducirlos en la memoria de la plaqueta a través del teclado (en forma de números hexadecimales), con la posterior ejecución y prueba (verificación de contenidos de memoria y de re-gistros). Tiempo dedicado: 6 horas.· Desarrollo de microcomputadores de uso específico: Se propone a grupos de alumnos el desarrollo de un diseño sencillo mediante un microcontrolador cuyas características son entregadas, al igual que un cross-assembler y un simulador para el mismo, utilizable sobre PC. Se realiza la simulación del diseño efectuado, y se observan los resultados en las PC. Luego se realiza la verificación experimen-tal sobre placas disponibles de los microcontroladores. Tiempo dedicado: 12 horas.·Familiarización con la PC, el sistema operativo y los recursos de programación: Reconocimiento del hardware y análisis de las propiedades del sistema operativo (inicialmente con MSDOS), sus archi-vos, directorios y utilitarios para programación en bajo nivel (editor, ensamblador, "linker", cargador, etc.) sobre el procesador de la PC. Ensayo de programas sencillos desarrollados en T.P. Nº3. Tiempo dedicado: 12 horas.
METODOLOGÍA DE ENSEÑANZA
La enseñanza teórica da por conocidos los principios de lógica y sistemas combinacionales y secuenciales monofuncionales, introduciendo el concepto del computador como convertidor entre datos de entrada y resultados de salida, por medio de la información de control, o sea el programa formado por las instrucciones. Esta componente de "software", es la novedad principal a reconocer, que obliga a considerar el subsistema procesador y su elemento fundamental, la unidad de control secuencial multifuncional reconfigurable al pasar de una instrucción a otra. Necesariamente, el curso debe recorrer muchos conceptos de arquitectura, organización y realización física, sin una distinción completa entre tales áreas que se ponen más de relieve en materias posteriores (Arquitectura de Computadores I y II). Es fundamental que el alumno comprenda la misión de los tres subsistemas del computador, haciendo inicialmente el mayor énfasis sobre el procesador; y a fin de llevarlo más cerca del "hardware", se insiste sobre las instrucciones en bajo nivel,. tratando de lograr la familiarización con el código en lenguaje ensamblador y su traducción en binario mediante ejercicios apropiados de programación aplicados inicialmente a un microprocesador de 8 bits, y comprobados en laboratorio en base a los equipos básicos de evaluación para el mismo dispositivo. Se ponen de relieve conceptos importantes como los que atañen a los ciclos de "máquina" y ciclos de instrucción, y los modos de direccionamiento de operandos, que son especialmente discutidos en los ejercicios para determinar el más adecuado en cada caso. No se pueden perder de vista los aspectos de organización (endoarquitectura), y para ello se realizan, en teoría y práctica, descripciones del procesamiento detallado de un conjunto de instrucciones (en ese caso sobre un procesador hipotético) mediante el uso de "lenguaje de transferencia de registros", aunque no se entra al detalle de aspectos de microprogramación, y sólo se menciona esta metodología de diseño en forma elemental, dejando su conocimiento más profundo para el curso de Arquitectura de Computadores I. En cuanto al subsistema de memoria, se intenta dar una imagen general de los dispositivos de almacenamiento de información, y de los parámetros que se deben conocer para llegar a diseños adecuados. Y centrando la atención sobre la memoria central, se contempla especialmente el proyecto de bloques de memoria mediante circuitos integrados, empleando los tipos de expansión necesarios, y discutiendo el asunto tanto en teoría como en la ejercitación práctica. Se considera muy importante el aprendizaje de los conceptos sobre entrada-salida, describiendo en detalle los dispositivos programables de enlace a periferia, y proponiendo ejercicios y prácticas de laboratorio donde se realiza la programación de los mismos. Toda esta metodología se completa con una ejercitación integradora de conceptos, a través de casos de diseño de sistemas sencillos de propósito específico, propuestos para distintos grupos de alumnos. Y finalmente, se dedica cierto tiempo a la familiarización con el microcomputador de propósito general, o sea el "PC", discutiendo y ensayando su arquitectura y organización, así como los recursos del sistema operativo, las ayudas disponibles de programación, y el uso de llamados al sistema.
SISTEMA DE EVALUACIÓN
Esta asignatura se desarrolla en el segundo cuatrimestre del cuarto año de estudios de Ingeniería Electrónica. El número de evaluaciones se ha fijado en dos (2). La primera evaluación se realiza en el mes de octubre, al completar el desarrollo, en teoría y práctica, de los temas que abarcan desde el principio hasta el estudio del subsistema procesador y su programación (Puntos 1, 2, 3 ,4 ,5 y 6 del programa analitico indicado en 3 del presente informe). La segunda evaluación tiene lugar en la primera quincena de diciembre, una vez terminado el curso, de acuerdo a la reglamentación vigente (Ordenanza 028/02). Ambos exámenes parciales son de tipo teórico-práctico, comprendiendo cada uno cuatro (4) puntos orientados a teoría y dos (2) ejercicios de tipo práctico, demandando en general, un promedio de tres horas para completar el parcial. En todos los casos se procura que el alumno no deba hacer esfuerzos de memoria para sus respuestas, dado que los temas son de tipo conceptual; y si en alguno de ellos pueden requerirse datos particulares, ellos son provistos en información complementaria que se agrega a los enunciados que se entregan impresos, en general formando dos grupos diferentes (Temas 1 y 2). La calificación final se determina en base a las notas parciales, de la manera reglamentariamente fijada.
MATERIAL DIDÁCTICO
- "Microprocesadores", por A. A. Quijano y E. Martínez, disponible en el CEILP. Se está realizando actualmente una nueva versión actualizada.- "Manejo del programa ensamblador del procesador 6809", que contiene además lo referente al "linker" y todos los pasos para poder simular los programas en Pc con un programa simulador.- Recopilación de datos sobre microprocesadores Motorola, y comentarios adicionales sobre los mismos· - Para cada uno de los trabajos prácticos de ejercitación en el aula, y para los trabajos de laboratorio, se entregan guías breves actualizadas para cada curso.