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 2019)
(Programa en trámite de aprobación)
(Programa presentado el 13/05/2019 11:07:38)
I - Oferta Académica
Materia Carrera Plan Año Periodo
ARQUITECTURA DEL PROCESADOR PROF.CS.COMPUT. 02/16 2019 1° cuatrimestre
ARQUITECTURA DEL PROCESADOR PROF.CS.COMPUT. 06/09 2019 1° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
AGUIRRE, GUILLERMO CARLOS Prof. Responsable P.Adj Exc 40 Hs
ARROYUELO, MONICA DEL VALLE Auxiliar de Práctico A.1ra Exc 40 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
3 Hs.  Hs. 2 Hs. 1 Hs. 6 Hs. 1º Cuatrimestre 13/03/2019 22/06/2019 15 90
IV - Fundamentación
Con esta asignatura se aborda 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.
V - Objetivos / Resultados de Aprendizaje
*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 1: Sistemas numéricos y Aritmética. Sistemas numéricos posicionales. Sistema binario, hexadecimal y octal. Conversión de decimal a binario y viceversa. Operaciones aritméticas en binario. Representación signo/magnitud: representación y operaciones.
Complemento a dos: representación y suma. Rango de representación en los distintos sistemas. Punto punto flotante Estándar IEEE 754: representación y operaciones.

Unidad 2: Circuitos Digitales.
Compuertas lógicas. Circuitos combinacionales. Ecuaciones Booleanas. Álgebra de Boole. Minimización. Mapas de Karnaugh. Bloques combinacionales. ALU. Señal de reloj. Biestables y Latches. Registros. Circuitos Sincrónicos. Máquina de estados finita o FSM. Máquinas de Moore y Mealy. Bloques digitales de construcción.

Unidad 3: Memorias
Arreglos de memoria. Especificación de filas y columnas. Celdas y palabras de memoria. Arreglos de memoria. Banco de registros. Tipos de memorias. Puertos de dirección y datos. Señales de control. Habilitación de módulos de memoria. Multiplicación de direcciones. Memoria entrelazada. Direccionamiento con 32 bits.

Unidad 4: Organización y Funcionamiento de una Unidad Central de Procesamiento.
Elementos de estado y caminos de datos. Máquina de primera generación. Conjunto de instrucciones. Ciclo de instrucción. Unidad de control. Señales de control del ciclo de instrucción. Ejecución de instrucciones. Acceso a datos en memoria. Segmentación y paginado. Máquina x86. Formato de instrucción. Modos de direccionamiento: conceptos generales. Modo registro, absoluto, inmediato, registro indirecto, postincremento,
pre-decremento. Modo de direccionamiento de múltiples componentes: indexado, relativos: a una base, a la próxima instrucción y a una página. Base indexado con desplazamiento.

Unidad 5:Arquitectura x86.
Lenguaje Assembly x86. Conjunto de Instrucciones. Estructuras de control: selección, iteración, selección por caso. Llamadas a subrutina y retornos de subrutina. Uso de la pila. Pasaje de parmetros a las subrutinas: por valor, por dirección. Formas de pasaje de parámetros: en registros, en la pila. Ejemplos en el procesador
x86.

Unidad 6:Entrada/Salida.
Características generales de la entrada/salida (I/O) y los sistema de interconexión (buses). 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 el espacio de memoria.

VII - Plan de Trabajos Prácticos
Prácticos de la Unidad N° 1

Representación de números en binario. Bases 2^k. Representación en binario con bit de signo. Representación en sistemas de complemento. Representación en complemento a la raíz y raíz disminuida. Operaciones aritméticas en los distintos sistemas de representación. Detección de desborde en los distintos sistemas de representación. Representación de números en BCD. Código ASCII. Representación y aritmética de números representados en punto flotante, rango de representación.

Prácticos de la Unidad N° 2

Compuertas Booleanas. Expresión Booleana. Tablas de verdad. Circuitos Booleanos. Expresiones Booleanas usando una sola conectiva. Simplificación de circuitos. Circuitos sumadores, restadores, multiplexores y demutiplexores, decodificadores y codificadores. Biestables, flip-flop R-S, flip-flop D. Registros. Contadores. Desplazamiento. Diseño de máquinas de estado finitas.

Prácticos de la Unidad N° 3

Arreglos de memoria. Especificación de fila y columna. Capacidad y organización de la memoria. Distintos tipos de memoria. Señales de control. Puertos de direcciones y datos. Multiplicación de direcciones. Memoria entrelazada.

Prácticos de la Unidad N° 4

Arquitectura y programación de máquinas de primera generación.
Camino de datos. Características generales de la arquitectura del i386. Organización de la memoria. Familiarización con el set de instrucciones del i386 y pseudo instrucciones. Programas en lenguaje assembly simples. Instrucciones aritméticas y lógicas. Instrucciones de control condicional.

Prácticos de la Unidad N° 5

Realizar programas en los que se usen los distintos modos de direccionamiento: inmediato, inherente, registro indirecto y indexado, relativos: a una base, a la próxima instrucción. Implementación de las estructuras de control if-then, if-then-else, case, while y repeat. Implementación de arreglos multidimensionales. Utilización del ensamblador "as", el linker "ld" y el depurador "gdb" bajo linux para la programación de los ejercicios de aula. Instrucciones de llamada a subrutina y de retorno de subrutina. Manejo de la pila. Implementación en lenguaje assembly de pasaje de parámetros.


Prácticos de la Unidad N° 6

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

Para regularizar la materia el alumno deberá cumplir con los siguientes requisitos:
Asistir al 80% de las clases prácticas. Realizar las actividades del aula virtual.
Aprobar los dos exámenes parciales o una de las dos recuperaciones para cada parcial.

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.
No está considerada la aprobación por promoción.

Alumnos libres

Los alumnos que desean rendir libre la materia se deberán poner en contacto con la cátedra 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] Sara Harris & David Money Harris. Digital Design and Computer Architecture. Ed. Morgan Kaufmann 2016.
[2] WILLIAM STALLINGS. Computer Organization and Architecture: Designing for Performance. ED. PEARSON PRENTICE HALL [2010].
[3] JHON F. WAKERLEY. Microcomputer Architecture and Programming. Ed. JOHN WILEY AND SONS [1981].
[4] NIKLAUS WIRTH. Digital Circuit Design. An Introductory Textbook. Springer [1995].
[5] HAYES J. Computer Architecture and Organization. ED. MC. GRAW HILL [1988].
[6] WILLIAM STALLINGS. Computer Organization and Architecture fourth edition. ED. PRENTICE HALL [1996].
[7] JOHN L. HENNESSY & DAVID PATTERSON. Computer Architecture: A Quantitative Approach. 2nd Edition. ED. MORGAN AND KAUFMANN [1990].
[8] JEAN-PIERRE MAINADIER. Estructura y Funcionamiento de los Computadores Digitales. Editorial AC, Madrid [1980].
[9] JHON CRAWFORD. Architecture of the Intel 80386. Readings in Computer Architecture, pag. 157-162. Edited by M. D. Hill, n. P. Jouppi and G. S. Sohi. ISBN 1-55860-539-8. [2000]
[10] Dandamudi Sivarama P.. Introduction to Assembly Language Programming, for Pentium and RISC Processors. Springer. ISBN 0-387-20636-1. [2004].
[11] Dandamudi Sivarama P.. Guide to Assembly Language Programming in Linux. Springer. ISBN 0-387-25897-3. [2005].
X - Bibliografia Complementaria
[1] GERRIT A. BLAAUW-FREDERICK P. BROOKS, Jr. Computer Architecture. Concepts and Evolution. ED. ADDISON-WESLEY. [1997].
[2] PETER J. ASHENDEN. The Designer's Guide to VHDL (Second Edition). ED. Morgan Kaufmann Publishers [2002].
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, Máquinas de estados finitas. Organización Básica de una Computadora. Unidad central de procesamiento (CPU). Memoria. Organización interna de una CPU. Ciclo de instrucción. Conjunto de instrucciones de un procesador. Tipos de arquitecturas secuenciales. Lenguaje assembly, assembler y programación en lenguaje assembly. Entrada / Salida. Interfaz con la CPU. Interfaz con los dispositivos.
XIII - Imprevistos
Comunicarse con la cátedra.
Arquitectura del Procesador.
Departamento de Informática.
Of. 25. Bloque II. 1er. Piso.
Facultad de Cs. Fisico, Matemáticas y Naturales.
Universidad Nacional de San Luis.
Ejercito de los Andes 950. CP 5700.
XIV - Otros