Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico-Matemáticas y Naturales
Departamento: Informatica
Área: Area II: Sistemas de Computacion
(Programa del año 2006)
(Programa en trámite de aprobación)
(Programa presentado el 23/03/2006 13:12:26)
I - Oferta Académica
Materia Carrera Plan Año Periodo
ARQUITECTURA DEL PROCESADOR I LIC. CS. COMP. 006/05 2 1c
II - Equipo Docente
Docente Función Cargo Dedicación
GROSSO, ALEJANDRO LEONARDO Prof. Responsable P.ADJ EXC 40 Hs
AGUIRRE, GUILLERMO CARLOS Prof. Co-Responsable P.ADJ EXC 40 Hs
MOLINA, SILVIA MARTA Responsable de Práctico JTP EXC 40 Hs
ARROYUELO BILLIARDI, JORGE A. Auxiliar de Práctico A.1RA EXC 40 Hs
ARROYUELO, MONICA DEL VALLE Auxiliar de Práctico A.1RA SEM 20 Hs
LOPRESTI, OLGA MARIELA Auxiliar de Práctico A.1RA SIM 10 Hs
MALDOCENA, PAULINO DANIEL Auxiliar de Práctico A.1RA SEM 20 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 C - Teoria con prácticas de aula Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
0 Hs. 4 Hs. 4 Hs. 0 Hs. 8 Hs. 1 Cuatrimestre 13/03/2006 16/06/2006 14 112
IV - Fundamentación
Con esta asignatura se inicia el estudio de las arquitecturas de procesadores tomando como punto de partida los procesadores secuenciales de tipo Von Neumann.El alumno será involucrado en:
*Problemas de representación de los datos que serán manipulados por el procesador; en cómo diseñar dispositivos físicos que realicen la memorización y manipulación de los datos.
*Comprender cuál es el conjunto de manipulaciones provistas habitualmente por los procesadores.
*Cómo se controla la realización de estas manipulaciones a medida que transcurre el tiempo.
Esto conformará la base previa para el entendimiento de arquitecturas más avanzadas que intentan mejorar el rendimiento de los procesadores secuenciales. Dicha temática es objeto de la asignatura Arquitectura de Procesadores II.
V - Objetivos
*Aprender como representar datos y manipularlos usando circuitos digitales.
*Comprender como están diseñados los procesadores secuenciales y como es su ciclo de instrucción.
*Desarrollar una actitud crítica frente al diseño de distintos procesadores.
*Obtener experiencia en programación de bajo nivel.Comprender como interactúan los procesadores con su medio externo.
VI - Contenidos
PROGRAMA ANALÍTICO Y DE EXAMEN


Unidad N° 1: Sistemas Numéricos y Aritmética


Sistemas numéricos posicionales. Sistema binario, hexadecimal y octal. Cambios de base. Aritmética de números sin signo no fraccionarios. Representación de números negativos: representación signo y magnitud, complemento a la raíz, complemento a la raíz disminuida y en exceso. Operación de complementación. Números fraccionarios: representación en punto fijo y punto flotante. Representación de caracteres. Código BCD, ASCII y EBCDIC.


Unidad N° 2: Circuitos Digitales


Operaciones Booleanas: AND, OR, NOT, XOR, NAND, NOR. Definición de conjunto adecuado de conectivas. Circuitos combinacionales: semisumador, sumador completo, substractor completo, multiplexor y demutiplexor, decodificador. Circuitos secuenciales: biestable, FF-RS, FF-D, contadores ascendentes y descendentes módulo 2n, registros desplazadores a izquierda y a derecha. Implemantación de una fila.


Unidad N° 3: Organización Básica de una Computadora


Organización de un sistema de computadora: unidad central de procesamiento (CPU), memoria, entrada/salida (I/O) y sistema de interconexión (buses). Organización de la memoria. Organización básica de la CPU: unidad de control, unidad aritmética y lógica, registros y buses internos, ciclo de instrucción. Conjunto de instrucciones: elementos de una instrucción de la maquina, tipos de operandos y tipos de operaciones. Modos de direccionamiento: conceptos generales. Modos de direccionamiento de única componente: registro, absoluto, inmediato, registro indirecto, auto incremento, auto decremento. Modo de direccionamiento de múltiples componentes: indexado, base indexado, relativos: base, a la próxima instrucción y a página


Unidad N° 4: Lenguaje assembly, assembler y lenguaje de programación


Los procesadores M6809 y DLX: arquitectura, tipos de datos, conjunto de instrucciones, modos de direccionamiento, formato de instrucción de los procesadores M6809 y DLX. Lenguaje assembly: conceptos generales, sintaxis y pseudo operaciones. Assembler de dos pasadas. Operaciones en tiempo de ensamblado, de carga y de ejecución. Ejemplos de programas en el lenguaje del M6809 y del DLX. Llamadas a subrutina y retornos de subrutina. Uso de la pila. Pasaje de parámetros a las subrutinas. Ejemplos en el procesador DLX.


Unidad N° 5: Entrada/Salida


Módulos de entrada/salida: interfaz con la CPU e interfaz con el dispositivo. Protocolos de entrada/salida. Entrada/Salida programada. Organización de la entrada/salida: dedicada y embebida en memoria. Ejemplos de la entrada/salida en el procesador DLX.


Unidad N° 6: Interrupciones. Acceso directo a memoria


Concepto de multiprogramación. Problemas presentados con la multiprogramación. Cambios de control necesarios para soportar multiprogramación: Interrupciones. Despacho. Llamadas al sistema. Condiciones asíncronas y síncronas. Atención de una interrupción asíncrona. Finalización de una interrupción síncrona. Manejo típico de una interrupción. Permiso para interrumpir: prioridades y deshabilitación de interrupciones. Acceso directo a memoria. Robo de ciclo.


VII - Plan de Trabajos Prácticos
Práctico N° 1: Sistemas numéricos

Representación de números en binario. Bases múltiplo de potencias de dos. Representación en binario con bit de signo. Representación binaria en complemento a la raíz y raíz disminuida. Representación binaria en complemento a la raíz y raíz disminuida. Representación binaria en exceso. Operaciones aritméticas en los distintos sistemas de representación. Acarreo, overflow. Representación de números en BCD. Código ASCII. Representación y aritmética de números representados en punto fijo y flotante.

Práctico N° 2: Circuitos digitales

Compuertas lógicas. Expresión lógica. Tablas de verdad. Circuitos lógicos. Expresiones lógicas usando una sola conectiva. Circuitos sumadores, restadores, multiplexores y demutiplexores, decodificadores y codificadores. Biestables, flip-flop R-S, flip-flop D. Registros. Contadores. Desplazamiento. Decodificación de direcciones de memoria.

Práctico N° 3: Programación assembly en el M6809 (inicial)

Características generales de la arquitectura del M6809. Organización de la memoria. Familiarización con set de instrucciones del M6809 y pseudo instrucciones. Programas en lenguaje assembly simples. Instrucciones aritméticas y lógicas. Instrucciones de control condicional.

Práctico N° 4: Programación assembly en el M6809 (modos de direccionamiento)

Realizar programas en los que se usen los distintos modos de direccionamiento: inmediato, registro, registro indirecto y indexado, relativos: base, a la próxima instrucción y a página.

Práctico N° 5: Programación assembly en el DLX (subrutinas y pasaje de parámetros)

Instrucciones de llamada a subrutina y de retorno de subrutina. Manejo de la pila. Implementación en lenguaje assembly de las distintas formas de pasajes de parámetros: en registro, en área asociada al llamador, en área asociada a la rutina, en línea, en la pila. Pasaje por valor y por dirección.

Práctico N° 6: Programación assembly en el DLX (traducción a lenguaje de máquina)

Analizar los listados generados por el ensamblador. Traducción de diferentes tipos de instrucciones. Calcular los desplazamientos que conforman algunas instrucciones y son expresados en complemento a dos.


Práctico N° 7: Entrada / salida e interrupciones

Protocolo entre los dispositivos para hacer una entrada/salida programada. Programas que realicen entrada/salida en forma programada. Cuestionario sobre conceptos generales de interrupciones. Programas que realicen entrada/salida con interrupciones.
VIII - Regimen de Aprobación
Regularización

Para regularizar la materia el alumno deberá cumplir con los siguientes requisitos:
Aprobar dos exámenes parciales. Cada examen parcial tendrá sus correspondiente recuperación.

Examen Final

Los alumnos regulares deberán rendir un examen final (que podrá ser oral o escrito) que consistirá en preguntas sobre los temas desarrollados durante el dictado de la materia.


Alumnos libres

Los alumnos que desean rendir libre la materia se deberán poner en contacto con la cátedra con 15 días de anticipación a los efectos de realizar un práctico, el cual contendrá ejercicios similares a los desarrollados en los prácticos durante el dictado de la materia. Aprobando éste trabajo práctico el alumno tendrá derecho a rendir un examen oral con iguales características que el de los alumnos regulares.
IX - Bibliografía Básica
[1] JHON F. WAKERLEY. Microcomputer Architecture and Programming. Ed. JOHN WILEY AND SONS [1981].
[2] HAYES J. Computer Architecture and Organization. ED. MC. GRAW HILL [1988].
[3] C. WILLIAM GEAR. Computer Organization and Programing. ED. MC. GRAW HILL.
[4] WILLIAM STALLINGS. Computer Organization and Architecture. ED. MACMILLAN.
[5] WILLIAM STALLINGS. Computer Organization and Architecture fourth edition. ED. PRENTICE HALL [1996].
[6] JOHN L. HENNESSY & DAVID PATTERSON. Computer Architecture: A Quantitative Approach. 2nd Edition. ED. MORGAN AND KAUFMANN [1990].
[7] JEAN-PIERRE MAINADIER. Estructura y Funcionamiento de los Computadores Digitales. Editorial AC, Madid [1980].
X - Bibliografia Complementaria
[1] GERRIT A. BLAAUW-FREDERICK P. BROOKS, Jr. Computer Architecture. Concepts and Evolution. ED. ADDISON-WESLEY. [1997].
XI - Resumen de Objetivos

*Aprender como representar datos y manipularlos usando circuitos digitales.
*Comprender como están diseñados los procesadores secuenciales y como es su ciclo de instrucción.
*Desarrollar una actitud crítica frente al diseño de distintos procesadores.
*Obtener experiencia en programación de bajo nivel.Comprender como interactúan los procesadores con su medio externo.
XII - Resumen del Programa

Sistemas Numéricos. Representación y aritmética de números enteros y fraccionarios. Circuitos Digitales. Circuitos combinacionales básicos. Circuitos secueciales. Organización Básica de una Computadora. Unidad central de procesamiento (UCP). Memoria. Entrada / Salida. Organización interna de una UCP. Ciclo de instrucción. Conjunto de instrucciones de un procesador. Tipos de arquitecturas secuenciales. Lenguaje assembly, assembler y lenguaje de programación. Entrada / Salida. Interfaz con la UCP. Interfaz con los dispositivos. Interrupciones. Excepciones. Llamadas al sistema. Acceso directo a memoria.



XIII - Imprevistos
Comunicarse con la cátedra.
Arquitectura del Procesador I.
Departamento de Informática.
Facultad de Cs. Fisico, Matemáticas y Naturales.
Universidad Nacional de San Luis.
Ejercito de los Andes 950. CP 5700.